Keras-deep-learning

提供:Dev Guides
移動先:案内検索

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 2Dense レイヤーと 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 2Dense レイヤーと 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モジュールについて詳しく学びましょう。