ドロップアウトは、過学習を防ぐために一般的に使用される正則化手法です。Kerasは、ドロップアウトを簡単に実装するための便利なツールを提供しています。以下に、Kerasを使用してドロップアウトを実装する方法を説明します。
まず、Kerasのモデルを作成します。例えば、次のような単純なモデルを考えましょう。
from keras.models import Sequential
from keras.layers import Dense, Dropout
model = Sequential()
model.add(Dense(64, activation='relu', input_dim=100))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
上記の例では、Dense
レイヤーとDropout
レイヤーを交互に追加しています。Dense
レイヤーは通常の全結合層ですが、Dropout
レイヤーはランダムに一部のユニットを無効化することで、過学習を防ぎます。Dropout
レイヤーの引数には、無効化するユニットの割合を指定します。上記の例では、各Dropout
レイヤーで50%のユニットが無効化されます。
モデルのコンパイルとトレーニングも行いましょう。
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10, batch_size=32)
上記の例では、多クラス分類のモデルを想定しています。適切な損失関数と最適化アルゴリズムを選択してください。
ドロップアウトはトレーニング中のみ適用されます。モデルを評価する際には、ドロップアウトをオフにするため、次のようにmodel.evaluate
を使用します。
score = model.evaluate(x_test, y_test, batch_size=32)
以上が、Kerasを使用してドロップアウトを実装する方法の基本的な例です。必要に応じてモデルのアーキテクチャやハイパーパラメータを調整してみてください。