多層パーセプトロン (MLP) は、分類や回帰などのタスクに使用される一般的に使用される深層学習モデルです。ただし、MLP は過剰適合の問題が発生する傾向があります。つまり、トレーニング セットでは優れたパフォーマンスを発揮しますが、テスト セットではパフォーマンスが低下します。この問題を解決するために、研究者はさまざまな正則化方法を提案していますが、その中で最も一般的に使用されているのはドロップアウトです。トレーニング中に一部のニューロンの出力をランダムに破棄することで、ドロップアウトによってニューラル ネットワークの複雑さが軽減され、それによって過学習のリスクが軽減されます。この手法は深層学習モデルで広く使用されており、大幅な改善を達成しています。
Dropout は、2014 年に Srivastava らによって最初に提案された、ニューラル ネットワーク正則化の手法です。この方法では、ニューロンをランダムに削除することで過剰適合を軽減します。具体的には、ドロップアウト層はいくつかのニューロンをランダムに選択し、その出力を 0 に設定することで、モデルが特定のニューロンに依存するのを防ぎます。テスト中、ドロップアウト層はすべてのニューロンの出力に保持確率を乗算して、すべてのニューロンを保持します。このように、ドロップアウトにより、モデルはトレーニング中により堅牢で一般化可能な特徴を学習することができ、それによってモデルの一般化能力が向上します。モデルの複雑さを軽減することにより、ドロップアウトは過剰適合のリスクを効果的に軽減することもできます。したがって、ドロップアウトは、多くの深層学習モデルで一般的に使用される正則化手法の 1 つになりました。
ドロップアウトの原則はシンプルですが効果的です。ニューロンをランダムに削除することでモデルに堅牢な特徴を強制的に学習させ、それによって過学習のリスクを軽減します。さらに、ドロップアウトはニューロンの同時適応を妨げ、特定のニューロンへの依存を回避します。
実際には、ドロップアウトの使用は非常に簡単です。多層パーセプトロンを構築する場合、各隠れ層の後にドロップアウト層を追加し、保持確率を設定できます。たとえば、2 つの隠れ層を持つ MLP でドロップアウトを使用する場合は、次のようにモデルを構築できます。 1. 入力層、隠れ層、出力層の構造を定義します。 2. 最初の隠れ層の後にドロップアウト層を追加し、保持確率を p に設定します。 3. 2 番目の隠れ層の後に別のドロップアウト層を追加し、同じ保持確率 p を設定します。 4. 出力層を定義し、前の隠れ層を出力層に接続します。 5. 損失関数とオプティマイザを定義します。 6. モデルのトレーニングと予測を実行します。 このようにして、ドロップアウト層は保持確率 p
model = Sequential() model.add(Dense(64, input_dim=20,activation='relu')) model.add(Dropout(0.5)) model.add(Dense(64, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(10, activation='softmax'))
に基づきます。この例では、各隠れ層の後にドロップアウト層を追加し、保持確率を 0.5 に設定しました。これは、各ニューロンがトレーニング中に削除される確率が 50% であることを意味します。テスト中、すべてのニューロンが保持されます。
ドロップアウトはトレーニング中に使用する必要があり、テスト中には使用しないことに注意してください。これは、テスト中に一部のニューロンだけではなく、すべてのニューロンを使用して予測を行う必要があるためです。
一般に、ドロップアウトは、過学習のリスクを軽減するのに役立つ非常に効果的な正則化方法です。ドロップアウトは、トレーニング中にニューロンをランダムに削除することで、モデルにより堅牢な特徴を学習させ、ニューロン間の同時適応を防ぐことができます。実際には、ドロップアウトを使用する方法は非常に簡単で、各隠れ層の後にドロップアウト層を追加し、保持確率を指定するだけです。
以上がドロップアウト層を使用した多層パーセプトロンへの正則化手法の適用に成功の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。