「Keras」の概要について紹介します。
Keras(ケラス)とは、高水準ニューラルネットワークライブラリです。
Python実装で、「Theano」または「TensorFlow」上で動作します。
コンパクトなコーディングにより、迅速な実験を可能にすることを重点に設計されています。
CPUとGPUに対応しています。
Kerasは、バックエンドとして「Theano」と「Tensorflow」を選択して使用できるラッパーライブラリです。
もともとは、バックエンドテンソル計算ライブラリとして「Theano」のみを採用していたのですが、「TensorFlow」も選択できるようになりました。
「Theano」「Tensorflow」はKerasフロントから完全に隠蔽されています。そのため、プログラムの変更を必要とせずに、「Theano」と「Tensorflow」の切り替えを行えます。
Kerasでは、処理を直感的にコンパクトに記述できます。
入力層から出力層への処理の流れ通り(ネットワーク図に描かれる順番通り)に、必要なノード定義や活性化関数を定義して、ネットワークを構成できます。さまざまな深層学習アルゴリズム表現が可能です。
「Theanoによる実装」と比べて、「Kerasによる実装」は、大幅にシンプルに記述できます。冗長要素を排除できるため、「Theanoでは数十行必要な処理」を「Kerasでは数行」で記述できるパターンもあります。
モデルはPythonコードで記述します。別個の宣言形式モデル設定ファイルは必要ありません。
容易なデバッグと拡張が可能です。
以下の2つのニューラルネットワークをサポートしています。
・畳み込みニューラルネットワーク (CNN:Convolutional Neural Networks)
・再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)」
これらの2つの組み合わせもサポートします。
Kerasは、2種類の方法でディープラニング構造を記述できます。
・「Sequential」=層をシンプルに重ねていく構造に適しています
・「Functional」=複雑なモデル(複数出力、有向非巡回グラフなど)に適しています
「ニューラルネットワーク層」「損失関数」「最適化」「初期化」「活性化関数」「正規化」などの各機能は、それぞれ完全に独立したモジュールになっています。モデル作成時に結合して利用できます。
それぞれのモジュールは、短くシンプルに構成されています。ブラックボックス化されている部分はありません。
新しいモジュールを追加する場合には、クラス/関数として、簡単に追加できます。
既存モジュールには多くの実装例があるため、活用しやすくなっています。
参考元サイト
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
OSS×Cloud ACCESS RANKING