1. 序章

このチュートリアルでは、ニューラルネットワークのエポックの意味について学習します。 次に、ニューラルネットワークトレーニングの収束とエポック数の関係を調査します。 最後に、早期打ち切りを使用してモデルをより一般化する方法を理解しようとします。

2. ニューラルネットワーク

ニューラルネットワークは教師あり機械学習アルゴリズムです。分類または回帰の問題を解決するためにニューラルネットワークをトレーニングできます。 それでも、機械学習の問題にニューラルネットワークを利用することには、長所と短所があります。

ニューラルネットワークモデルを構築するには、アーキテクチャ指向の多くの質問に答える必要があります。 問題の複雑さと利用可能なデータに応じて、さまざまなサイズと深さでニューラルネットワークをトレーニングできます。 さらに、入力機能を前処理し、 重みを初期化し、必要に応じてバイアスを追加、適切な活性化関数を選択する必要があります。

3. ニューラルネットワークの時代

エポックとは、1サイクルのすべてのトレーニングデータを使用してニューラルネットワークをトレーニングすることを意味します。 エポックでは、すべてのデータを1回だけ使用します。 フォワードパスとバックワードパスを合わせて、1つのパスとしてカウントされます。

エポックは1つ以上のバッチで構成され、データセットの一部を使用してニューラルネットワークをトレーニングします。 トレーニング例をバッチで通過することを反復と呼びます。

エポックは、反復と混合されることがあります。 概念を明確にするために、次の図に示すように1000個のデータポイントがある簡単な例を考えてみましょう。

バッチサイズが1000の場合、1回の反復でエポックを完了することができます。 同様に、バッチサイズが500の場合、エポックは2回の反復を取ります。 したがって、バッチサイズが100の場合、エポックは10回の反復で完了します。 簡単に言うと、エポックごとに、必要な反復回数にバッチサイズを掛けると、データポイントの数がわかります。

トレーニングでは複数のエポックを使用できます。 この場合、ニューラルネットワークには同じデータが複数回供給されます。

4. ニューラルネットワークトレーニングコンバージェンス

ニューラルネットワークのアーキテクチャを決定することは、モデル構築の大きなステップです。 それでも、モデルをトレーニングし、途中でさらにハイパーパラメーターを調整する必要があります。

トレーニングフェーズでは、エラー率を最小限に抑え、モデルが新しいデータで適切に一般化されるようにすることを目指しています。 偏りと分散のトレードオフは、他の教師あり機械学習アルゴリズムと同様に、回避したい潜在的な落とし穴です。

モデルがトレーニング例に完全に適合しているが、機能の一般化が制限されている場合、過剰適合(分散が大きい)に直面します。 一方、モデルがデータを十分に学習していなかった場合、モデルが不適合(高バイアス)であると言われる場合:

優れたモデルは、データの基礎となる構造をキャプチャすることが期待されます。 言い換えれば、それは過剰適合または過適合ではありません。

ニューラルネットワークモデルを構築する場合、トレーニングを開始する前にエポック数パラメーターを設定します。 ただし、最初は、モデルに適したエポックの数を知ることはできません。 ニューラルネットワークのアーキテクチャとデータセットに応じて、ニューラルネットワークの重みがいつ収束するかを決定する必要があります。

ニューラルネットワークモデルの場合、学習曲線グラフを調べてモデルの収束を決定するのが一般的です。一般に、損失(またはエラー)との関係をプロットします。 エポックまたは精度vs。 エポックグラフ。 トレーニング中、エポックの数が増えるにつれて、損失は減少し、精度は向上すると予想されます。 ただし、損失と精度の両方がある程度安定すると予想されます。

通常どおり、データセットをトレーニングセットと検証セットに分割することをお勧めします。そうすることで、さまざまなセットの学習曲線グラフをプロットできます。 これらのグラフは、モデルが過剰学習、過少学習、または学習セットに適合しているかどうかを診断するのに役立ちます。

ニューラルネットワークは、いくつかのエポックのトレーニング後に収束することが期待されます。 利用可能なアーキテクチャとデータに応じて、トレーニングするエポックの数をハイパーパラメータとして扱うことができます。

ニューラルネットワークの重みは、勾配降下ベースのアルゴリズムであるため、繰り返し更新されます。 トレーニングの1つのエポックでは不十分であり、不適合につながります。 現実世界の問題の複雑さを考えると、ニューラルネットワークのトレーニングには数百エポックかかる可能性があります。

その結果、収束するまで学習曲線のグラフがどんどん良くなっていくことが期待されます。 次に、モデルのトレーニングを続けると、モデルが過剰適合し、検証エラーが増加し始めます。

現在の技術を使用しても、ニューラルネットワークのトレーニングにはかなりの時間がかかります。 モデル構築フェーズでは、エポック数を低く設定しすぎると、モデルが収束する前でもトレーニングが停止します。 逆に、エポック数を高く設定しすぎると、過剰適合に直面します。 その上、計算能力と時間を浪費します。

この問題に対して広く採用されている解決策は、早期打ち切りを使用することです。 これは正則化の一形態です。

名前が示すように、早期打ち切りの主なアイデアは、特定の基準が満たされたときにトレーニングを停止することです。 通常、汎化誤差が増加し始めたとき(モデルの損失が増加し始めたとき、または精度が低下し始めたとき)にモデルのトレーニングを停止します。 汎化誤差の変化を決定するために、各エポックの後に検証セットでモデルを評価します。

早期打ち切りを利用することで、最初はエポック数を多く設定することができます。 このようにして、結果のモデルがデータから学習したことを確認します。 トレーニングが完了すると、学習曲線グラフをいつでもチェックして、モデルが適切に適合していることを確認できます。

5. 結論

この記事では、ニューラルネットワークのエポックコンセプトについて学びました。 次に、ニューラルネットワークモデルのトレーニングと、過剰適合または過適合なしでモデルをトレーニングする方法について説明しました。