Keras-deep-learning
Keras-深層学習
Kerasは、あらゆるタイプのニューラルネットワークを作成するための完全なフレームワークを提供します。 Kerasは革新的で、習得も非常に簡単です。 シンプルなニューラルネットワークから非常に大きく複雑なニューラルネットワークモデルまでサポートしています。 この章では、Kerasフレームワークのアーキテクチャと、Kerasがディープラーニングにどのように役立つかを理解しましょう。
ケラスの建築
Keras APIは3つの主なカテゴリに分類できます-
- モデル
- 層
- コアモジュール
Kerasでは、すべてのANNは* Kerasモデル*で表されます。 次に、すべてのKerasモデルは* Kerasレイヤー*の構成であり、入力、非表示レイヤー、出力レイヤー、畳み込みレイヤー、プーリングレイヤーなどのANNレイヤーを表します。Kerasモデルとアクティベーション関数、損失関数用の* Kerasモジュール* 、正則化関数など。Kerasモデル、Keras Layer、およびKerasモジュールを使用して、任意のANNアルゴリズム(CNN、RNNなど)をシンプルで効率的な方法で表すことができます。
次の図は、モデル、レイヤー、コアモジュールの関係を示しています-
Kerasモデル、Kerasレイヤー、Kerasモジュールの概要を見てみましょう。
モデル
Kerasモデルは、以下に述べるように2つのタイプがあります-
シーケンシャルモデル-シーケンシャルモデルは、基本的にKerasレイヤーの線形構成です。 シーケンシャルモデルは簡単で最小限であり、利用可能なほぼすべてのニューラルネットワークを表すことができます。
単純な順次モデルは次のとおりです-
from keras.models import Sequential
from keras.layers import Dense, Activation
model = Sequential()
model.add(Dense(512, activation = 'relu', input_shape = (784,)))
どこで、
Line 1 はKerasモデルから Sequential モデルをインポートします
Line 2 は Dense レイヤーと Activation モジュールをインポートします
* 4行目* Sequential APIを使用して新しい順次モデルを作成する
行5 *は、 *relu アクティベーション(アクティベーションモジュールを使用)機能を持つ高密度レイヤー(Dense API)を追加します。
*Sequential* モデルは *Model* クラスを公開して、カスタマイズされたモデルも作成します。 サブクラス化の概念を使用して、独自の複雑なモデルを作成できます。
- 関数型API *-関数型APIは、基本的に複雑なモデルを作成するために使用されます。
層
Kerasモデルの各Kerasレイヤーは、実際に提案されたニューラルネットワークモデルの対応するレイヤー(入力レイヤー、非表示レイヤー、出力レイヤー)を表します。 Kerasは、複雑なニューラルネットワークを簡単に作成できるように、多くの事前構築レイヤーを提供します。 重要なKerasレイヤーのいくつかを以下に示します、
コアレイヤー
畳み込み層
プーリング層
再発層
*sequential* モデルを使用してニューラルネットワークモデルを表す単純なpythonコードは次のとおりです-
from keras.models import Sequential
from keras.layers import Dense, Activation, Dropout model = Sequential()
model.add(Dense(512, activation = 'relu', input_shape = (784,)))
model.add(Dropout(0.2))
model.add(Dense(512, activation = 'relu')) model.add(Dropout(0.2))
model.add(Dense(num_classes, activation = 'softmax'))
どこで、
- Line 1 はKerasモデルから Sequential モデルをインポートします
- Line 2 は Dense レイヤーと Activation モジュールをインポートします
- * 4行目* Sequential APIを使用して新しい順次モデルを作成する
- 行5 *は、 *relu アクティベーション(アクティベーションモジュールを使用)機能を持つ高密度レイヤー(Dense API)を追加します。
- * 6行目*は、過剰適合を処理するためにドロップアウトレイヤー(Dropout API)を追加します。
- 行7 *は、 *relu アクティベーション(アクティベーションモジュールを使用)機能を持つ別の高密度レイヤー(Dense API)を追加します。
- * 8行目*は、過剰適合を処理する別のドロップアウトレイヤー(ドロップアウトAPI)を追加します。
- Line 9 は、 softmax アクティベーション(アクティベーションモジュールを使用)機能を備えた最終密層(Dense API)を追加します。
Kerasは、独自にカスタマイズしたレイヤーを作成するオプションも提供します。 Keras.Layer クラスをサブクラス化することにより、カスタマイズされたレイヤーを作成できます。これは、Kerasモデルをサブクラス化するのと似ています。
コアモジュール
Kerasはまた、KerasモデルとKerasレイヤーを適切に作成するための多くの組み込みニューラルネットワーク関連機能を提供します。 関数のいくつかは次のとおりです-
- アクティベーションモジュール-アクティベーション機能はANNの重要な概念であり、アクティベーションモジュールはsoftmax、reluなどの多くのアクティベーション機能を提供します。
- 損失モジュール-損失モジュールは、mean_squared_error、mean_absolute_error、poissonなどの損失関数を提供します。
- オプティマイザモジュール-オプティマイザモジュールは、adam、sgdなどのオプティマイザ機能を提供します。
- Regularizers -レギュラライザーモジュールは、L1レギュラライザー、L2レギュラライザーなどの機能を提供します。
次の章でKerasモジュールについて詳しく学びましょう。