ニューラルネットワークの過剰適合を避ける 5 つのテクニック

ニューラルネットワークの過剰適合を避ける 5 つのテクニック

この記事では、ニューラル ネットワークをトレーニングするときに過剰適合を回避する 5 つの手法を紹介します。

過去 1 年間、私はディープラーニングの分野で働いてきました。この間、私は畳み込みニューラル ネットワーク、再帰型ニューラル ネットワーク、オートエンコーダーなど、多くのニューラル ネットワークを使用してきました。ディープ ニューラル ネットワークで遭遇する最も一般的な問題の 1 つは、トレーニング中の過剰適合です。

モデルがノイズの多いデータの傾向を予測しようとすると、モデル パラメータの数が多くなり、複雑さが増すため、過剰適合が発生する可能性があります。過剰適合モデルは、予測される傾向がデータの実際の状態を反映していないため、不正確になることがよくあります。モデルが既知のデータ (トレーニング セット) に対しては良好な予測結果を示し、未知のデータ (テスト セット) に対してはパフォーマンスが低いという事実によって、オーバーフィッティングが発生しているかどうかを判断できます。機械学習モデルの目標は、モデルが未知のデータを予測できるようにするために、トレーニング セットから問題領域内の任意のデータセットに適切に一般化することです。

この記事では、ニューラル ネットワークをトレーニングするときに過剰適合を回避する 5 つの手法を紹介します。

1. 簡略化されたモデル

過剰適合に対処するための最初のステップは、モデルの複雑さを軽減することです。複雑さを軽減するには、単にレイヤーを削除するか、ニューロンの数を減らしてネットワークを小さくします。同時に、ニューラル ネットワーク内のさまざまなレイヤーの入力次元と出力次元を計算することも非常に重要です。削除するレイヤーの数やニューラル ネットワークのサイズに関する一般的なルールはありませんが、ニューラル ネットワークが過剰適合している場合は、サイズを縮小してみてください。

2. 早期終了

早期停止は、勾配降下法などの反復法を使用してモデルをトレーニングする場合の正規化の一種です。すべてのニューラル ネットワークは勾配降下法で学習するため、早期停止はすべての問題に適用される一般的な手法です。このアプローチを使用してモデルを更新し、各反復でトレーニング セットに適合するようにします。この方法により、テスト セットでのモデルのパフォーマンスをある程度向上させることができます。しかし、それ以上に、トレーニング セットへのモデルの適合性を向上させると、一般化エラーが増加します。早期停止ルールは、モデルが過剰適合し始める前に実行できる反復回数を指定します。

早期停止

上の画像はこのテクニックを示しています。ご覧のとおり、数回の反復後、トレーニング エラーは依然として減少しているにもかかわらず、テスト エラーは増加し始めます。

3. データ拡張を使用する

ニューラル ネットワークでは、データ拡張とは、単にデータのサイズを増やすこと、つまりデータセット内の画像の数を増やすことを意味します。一般的な画像強調技術としては、反転、変換、回転、拡大縮小、明るさの変更、ノイズの追加などがあります。より包括的な参考資料については、以下をご覧ください。

アルバムメンテーション:

https://github.com/albumentations-team/albumentations

画像:

https://github.com/aleju/imgaug

データ拡張

上図に示すように、データ拡張を使用すると、複数の類似した画像を生成できます。これにより、データセットのサイズを増やし、過剰適合を減らすことができます。データ量が増えると、モデルはすべてのサンプルに過剰適合できなくなるため、一般化する必要があります。

4. 正規化を使用する

正規化はモデルの複雑さを軽減する方法です。損失関数にペナルティ項を追加することで正規化を実現します。最も一般的な手法は、L1 正規化と L2 正規化です。

  • L1 ペナルティ項の目的は、重みの絶対値を最小化することです。式は次のとおりです。

L1 正規化

  • L2 ペナルティ項の目的は、重みの二乗を最小化することです。式は次のとおりです。

L2 正規化

次の表は、2 つの正規化方法を比較したものです。

L1 正規化

L2 正則化

1. L1ペナルティ重みの絶対値の合計

1. L2ペナルティ重みの二乗の合計

2. L1はシンプルで解釈可能なモデルを生成する

2. L2正則化は複雑なデータパターンを学習できる

3. L1は極端な値の影響を受けにくい

3. L2は極端な値に大きく影響される

L1 正則化と L2 正則化

では、どの方法が過剰適合を回避するのにより効果的でしょうか?答えは「それは場合による」です。データが複雑すぎて正確にモデル化できない場合は、データ内に存在する固有のパターンを学習できるため、L2 の方が適しています。データが正確にモデル化できるほど単純な場合は、L1 がより適しています。私が遭遇するほとんどのコンピューター ビジョンの問題では、L2 正規化によってほぼ常により良い結果が得られます。ただし、L1 は外れ値の影響を受けにくいです。したがって、適切な正規化オプションは、解決したい問題によって異なります。

5. ドロップアウトを使用する

ドロップアウトは、ニューラル ネットワークの過剰適合を防ぐための正規化手法です。 L1 や L2 などの正規化手法は、コスト関数を変更することで過剰適合を減らします。ドロップアウトはニューラル ネットワーク自体を変更します。トレーニングの各反復中に、ニューラル ネットワークからニューロンをランダムに削除します。異なるニューロンのセットを破棄することは、異なるニューラル ネットワークをトレーニングすることと同じです。ニューラル ネットワークによってオーバーフィットの方法は異なるため、ドロップアウトの最終的な効果はオーバーフィットの発生を減らすことです。

破棄方法を使用する

上の図に示すように、ドロップアウトは、トレーニング プロセス中にニューラル ネットワーク内のニューロンをランダムにドロップするために使用されます。この手法は、画像分類、画像セグメンテーション、単語埋め込み、意味マッチングなど、多くの問題で過剰適合を軽減することが示されています。

結論は

要約すると、オーバーフィッティングとは何か、そしてなぜそれがニューラル ネットワークで一般的な問題なのかを説明しました。次に、ニューラル ネットワークのトレーニング プロセスで過剰適合を回避するための最も一般的な 5 つの方法 (モデルの簡素化、早期停止、データ拡張、正規化、ドロップアウト) を紹介します。

<<:  2019年にRedditの機械学習セクションで人気のプロジェクト17選:最新のコードとリソースがすべて利用可能

>>:  インタビュアー: 「最後にアルゴリズムを書いてください。単一のリンクリストを使用して加算を実行してみましょう...」

ブログ    

推薦する

...

来年のIT投資の見通しは有望です。成長率はGDPの3倍です。 CIOの75%がAIへの支出を増やす

現在、世界経済の回復は依然として緩やかです。国際通貨基金(IMF)が最近発表した世界経済見通しレポー...

...

...

ビッグデータと AI: 3 つの実際の使用例

ビッグデータと人工知能は、企業が新しい方法で顧客体験を向上させるのに役立ちます。 AIとビッグデータ...

科学者たちは、人間のチームが海洋ゴミを見つけるのを助けるために人工知能を搭載したドローンを開発している

ニューアトラス誌の報道によると、海洋ゴミは、海に漂うゴミと海岸に打ち上げられるゴミの両方の形で大きな...

DeepMindの最新研究がNatureに掲載され、AI時代の科学研究の新たなパラダイムを明らかにし、未知の領域を探索し、新たな課題をもたらしている。

AIがさまざまな科学分野と融合するにつれ、可能性と課題に満ちた技術革命が起こっています。 AI は...

Metaの最新自社開発チップの結果が明らかに、7nmプロセス、RISC-V CPUを統合

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

AI と ML はデータの理解方法をどのように変えているのでしょうか?

[[337098]] 【51CTO.com クイック翻訳】今日のデジタル時代では、データをどのよう...

Google Gemini: CMU の総合評価では、Gemini Pro は GPT 3.5 Turbo より劣っていることが判明

少し前に、Google はOpenAI の GPT モデルの競合製品であるGemini をリリースし...

Linux オブジェクトアロケータ スラブアルゴリズム

[[414991]]この記事はWeChatの公開アカウント「Linux Kernel Things」...

1つの記事で基本モデルの定義と動作原理を理解する

翻訳者 |ブガッティレビュー | Chonglou 1.基本モデルの定義ベースモデルは、大量のデータ...

AIが認知症患者の自立した生活にどのように役立つか

[[279905]]写真はインターネットから照明や音楽を Alexa や Siri などの音声制御テ...

...

[文字列処理アルゴリズム] 文字列を整数に変換するアルゴリズム設計とCコード実装

1. 要件の説明数字の文字列を入力し、その文字列を整数に変換して出力するプログラムを作成します。たと...