Kerasは、人工ニューラルネットワーク用のPythonインターフェースを提供するオープンソースライブラリである。ディープニューラルネットワークでの迅速な実験を可能にするよう設計されており、ユーザーフレンドリーで、モジュール式で、拡張可能なことに重点を置いている。このライブラリは2015年に独立したソフトウェアとして初めてリリースされ、後にTensorFlowライブラリに統合され、最終的に追加のバックエンドをサポートするよう拡張された。全面書き直しであるKeras 3は、カスタムコンポーネント(レイヤー、モデル、メトリクスなど)を開発するための低水準のクロスフレームワーク言語として機能し、JAX、TensorFlow、またはPyTorchのネイティブワークフローで単一のコードベースで使用できる。TensorFlow 2.16の時点で、Keras 3がデフォルトバージョンであるが、Keras 2もレガシー用途のために引き続き利用可能である。
歴史
「Keras」という名前は、古代ギリシャ語のκέρας(Keras)に由来し、「角」を意味する。このライブラリは、プロジェクトONEIROS(オープンエンドの神経電子知的ロボットオペレーティングシステム)の研究活動の一部として開発された。主要な作者でありメンテナーは、2024年にGoogleを退社するまでGoogleのエンジニアだったフランソワ・ショレである。ショレは、Xceptionディープニューラルネットワークモデルの作者でもある。バージョン2.3までは、KerasはTensorFlow、Microsoft Cognitive Toolkit、Theano、PlaidMLを含む複数のバックエンドをサポートしていた。バージョン2.4からバージョン3.0までは、TensorFlowのみがサポートされた。バージョン3.0からは、そのプレビュー版であるKeras Coreと同様に、ライブラリはTensorFlow、JAX、PyTorch、および追加でOpenVINOをサポートするマルチバックエンドに戻った。
特徴
Kerasには、レイヤー、目的関数、活性化関数、オプティマイザー、および画像とテキストデータを処理するためのツールなど、一般的に使用されるニューラルネットワークの構成要素の多数の実装が含まれている。これらは、ディープニューラルネットワークのプログラミングを簡素化する。コードはGitHubでホストされ、コミュニティサポートフォーラムにはGitHubのイシューページが含まれる。標準のニューラルネットワークに加えて、Kerasは畳み込みニューラルネットワークと再帰型ニューラルネットワークをサポートしている。また、ドロップアウト、バッチ正規化、プーリングなどの一般的なユーティリティレイヤーも含まれているこのライブラリにより、ユーザーはスマートフォン(iOSとAndroid)、Web、Javaバーチャルマシン上でディープモデルを生成できる。さらに、GPUとTPUのクラスタ上でのディープラーニングモデルの分散トレーニングも可能にする。
採用と影響
Kerasは、特にDeep learningのコミュニティ内で、モデル構築のための主要なインターフェースとしてTensorFlowに統合された後、広く採用される高水準のAPIとなった。そのシンプルさと迅速なプロトタイピングへの重点は、Machine learningとArtificial intelligenceの実践者にとって一般的な入門点となった。このライブラリの設計は、後のフレームワークに影響を与え、Neural network開発の広いアクセシビリティに寄与した。バージョン3.0での複数バックエンドのサポートにより、Kerasは研究および本番環境で使用されるものを含むさまざまな計算生態系にわたって統一されたインターフェースを提供することを目指した。
技術的進化
Keras 3への移行は、重要なアーキテクチャ的なシフトであり、JAX、TensorFlow、またはPyTorchで変更なしでネイティブに実行できるカスタムレイヤー、モデル、またはメトリクスを書くことをユーザーに可能にした。このクロスフレームワーク機能は、ディープラーニングツールの断片化に対処した。また、このライブラロリはData Augmentation技術と統合され、多様なワークフローをサポートした。以前のバージョンであるKeras 2は、特定の動作に依存するプロジェクトのために機能し続けて、既存のコードベースの後方互換性を確実にしている。