ライブラリとフレームワーク

この章では、ディープラーニングをさまざまなライブラリとフレームワークに関連付けます。

ディープラーニングとTheano

ディープニューラルネットワークのコーディングを開始したい場合は、Theano、TensorFlow、Keras、PyTorchなどのさまざまなフレームワークがどのように機能するかを理解しておくとよいでしょう。

TheanoはPythonライブラリであり、マシン上ですばやくトレーニングするディープネットを構築するための一連の関数を提供します。

Theanoは、カナダのモントリオール大学で、ディープネットのパイオニアであるYoshuaBengioのリーダーシップの下で開発されました。

Theanoを使用すると、数値の長方形配列であるベクトルと行列を使用して数式を定義および評価できます。

技術的に言えば、ニューラルネットと入力データの両方を行列として表すことができ、すべての標準的なネット演算を行列演算として再定義できます。コンピューターは行列演算を非常に迅速に実行できるため、これは重要です。

複数の行列値を並列に処理できます。この基礎となる構造でニューラルネットを構築すると、GPUを備えた単一のマシンを使用して、妥当な時間枠で巨大なネットをトレーニングできます。

ただし、Theanoを使用する場合は、ゼロからディープネットを構築する必要があります。ライブラリは、特定のタイプのディープネットを作成するための完全な機能を提供していません。

代わりに、モデル、レイヤー、アクティベーション、トレーニング方法、および過剰適合を防ぐための特別な方法など、ディープネットのあらゆる側面をコーディングする必要があります。

ただし、幸いなことに、Theanoを使用すると、ベクトル化された関数の上に実装を構築して、高度に最適化されたソリューションを提供できます。

Theanoの機能を拡張するライブラリは他にもたくさんあります。TensorFlowとKerasは、Theanoをバックエンドとして使用できます。

TensorFlowによるディープラーニング

GoogleのTensorFlowはPythonライブラリです。このライブラリは、商用グレードの深層学習アプリケーションを構築するのに最適です。

TensorFlowは、Google BrainProjectの一部である別のライブラリDistBeliefV2から生まれました。このライブラリは、機械学習の移植性を拡張して、研究モデルを商用グレードのアプリケーションに適用できるようにすることを目的としています。

Theanoライブラリと同様に、TensorFlowは計算グラフに基づいており、ノードは永続的なデータまたは数学演算を表し、エッジはノード間のデータの流れを表します。これは多次元配列またはテンソルです。したがって、TensorFlowという名前

1つの操作または一連の操作からの出力は、次の入力として供給されます。

TensorFlowはニューラルネットワーク用に設計されていますが、計算をデータフローグラフとしてモデル化できる他のネットでもうまく機能します。

TensorFlowは、共通変数と部分式除去、自動微分、共有変数、シンボリック変数など、Theanoのいくつかの機能も使用します。

畳み込みネット、オートエンコーダー、RNTN、RNN、RBM、DBM / MLPなど、さまざまなタイプのディープネットをTensorFlowを使用して構築できます。

ただし、TensorFlowではハイパーパラメータ設定はサポートされていません。この機能には、Kerasを使用できます。

ディープラーニングとKeras

Kerasは、深層学習モデルを開発および評価するための強力で使いやすいPythonライブラリです。

ミニマリストデザインで、レイヤーごとにネットを構築できます。それを訓練し、それを実行します。

効率的な数値計算ライブラリTheanoとTensorFlowをラップし、数行の短いコードでニューラルネットワークモデルを定義およびトレーニングできるようにします。

これは高レベルのニューラルネットワークAPIであり、ディープラーニングと人工知能を幅広く活用するのに役立ちます。TensorFlow、Theanoなどを含む多くの低レベルライブラリ上で実行されます。Kerasコードは移植可能です。コードを変更せずに、TheanoまたはTensorFlowをバックエンドとして使用してKerasにニューラルネットワークを実装できます。