1.学習率
学習率とは、
『どれくらいのステップで機械学習モデルが学習していくか』
をコントロールするものです。
学習率の調整に失敗すると⋯
学習率が高すぎると、学習が不安定になります。具体的には、一度の更新で大きすぎるステップを取ってしまうため、最適な解を見つける前に飛び越えてしまうことがあります。その結果、収束しない、または精度が悪くなる可能性があります。
一方、学習率が低すぎると、モデルが誤差を適切に修正できなくなります。誤差とは、機械学習モデルが予測した結果と、実際の正解との間のズレのことです。
学習率の調整に成功すると
適切なステップ数で安定した学習が可能です。
2.エポック
エポックとは、
『1つのトレーニングデータを1周したときを1とするとき、何回トレーニングデータを全て使い切ったかを表す数』
です。
- 例えば、1,000件のデータを使ってモデルを訓練するとき、エポック数を10に設定すると、モデルは1,000件のデータを10回繰り返して学習することになります。
エポック数を増やすと⋯
モデルがトレーニングデータに複数回アクセスし、より多くの学習を行うため、精度が向上する可能性があります。エポックを増やすための時間やコストに余裕がある場合は、エポックを回すほど精度は高まります。
エポック数が多すぎると⋯(オーバーフィッティング)
モデルがトレーニングデータに過度に適合し、テストデータや実際のデータに対する汎化性能が低下する場合があります。
この現象が
『過学習』
です。
エポック数が少なすぎると⋯(アンダーフィッティング)
モデルが十分に学習せず、
『未学習・学習不足状態』
になります。
3.バッチサイズ
バッチサイズとは、
『機械学習モデルのトレーニング中に一度に処理するデータの量』
を指します。
バッチサイズが大きいと⋯
学習速度が速くなるが、メモリ消費が増えます。
バッチサイズがトレーニングデータ全体のサイズと等しい場合、1エポックで1回だけ重みの更新が行われます。これにより学習の効率が低下することがあります。
バッチサイズが小さいと⋯
メモリ消費が少なく学習が安定しやすくなるが、速度が遅くなります。
バッチサイズがトレーニングデータ全体のサイズと等しい場合
1エポックで1回だけ重みの更新が行われます。
↓
これにより学習の効率が低下することがあります。