Keras モデル
Keras モデルとは?
Keras とは、Theano と Tensorflow 上に構築された深層学習のためのハイレベルのライブラリです。Keras は、Python で記述され、深層学習モデルの範囲を作成するためのクリーンで便利な方法を提供します。Keras は、ニューラルネットワークの開発とテストに関して最も使用されている高レベルのニューラルネットワーク API の 1 つです。現在では、 ニューラルネットワークのレイヤーの作成や複雑なアーキテクチャの設定が、Keras の高レベル API により簡単に行われています。Keras モデルは、シーケンスまたはスタンドアロングラフで構成されます。完全に構成可能なモジュールがいくつかあり、それらを組み合わせて新しいモデルを作成できます。これらの構成可能なモジュールの中には、ニューラルレイヤー、コスト関数、オプティマイザ、初期化スキーム、ドロップアウト、ロス、活性化関数、および正規化スキームがあります。新たな機能を別々のモジュールとして容易に追加できることは、モジュール化によってもたらされるメリットの 1 です。Keras の高い柔軟性は、革新的な研究に適しています。Keras モデルを開発する方法には、Sequential と Functional があります。
Sequential API
Sequential API モデルは、極めてシンプルなモデルであり、ほとんどの問題に対してレイヤーごとにモデルを構成できるようにする線形のレイヤーの積み重ねで構成されています。Sequential モデルは非常に簡単に使えますが、トポロジでは制限されています。この制限は、共有レイヤーを使用したモデルの構成や、複数の入力または出力を持つモデルを構成できないことから生じています。
Functional API
一方、Functional API は、柔軟性を高める複雑なモデルを作成するのに最適です。Functional API により、フィーチャレイヤーが前後のレイヤー以外の複数のレイヤーに接続するモデルを定義できます。モデルとは、レイヤーのインスタンス を作成し、それらを直接ペアで接続することで定義されます。実際、このモデルを使用することで他のレイヤーにレイヤーを接続することが可能です。このモデを用いることで、シャムネットワーク、残余ネットワーク、マルチ入力/マルチ出力モデル、有向非巡回グラフ(DAG)、共有レイヤーを持つモデルなどの複雑なネットワークを作成することが可能になります。