web-dev-qa-db-ja.com

「学習率ウォームアップ」とはどういう意味ですか?

機械学習、特にディープラーニングでは、ウォームアップとはどういう意味ですか?

一部のモデルでは、ウォーミングアップがトレーニングのフェーズであると聞いたことがあります。正直なところ、私はMLが非常に新しいので、それが何であるかわかりません。今まで使ったことも、見つけたこともありませんが、役に立つと思うので知りたいです。そう:

学習率のウォームアップとは何ですか?いつ必要ですか?

前もって感謝します。

15
Peyman

データセットが高度に差別化されている場合、一種の「早期オーバーフィット」に悩まされる可能性があります。シャッフルされたデータに、関連する強く特徴付けられた観測のクラスターが含まれている場合、モデルの初期トレーニングは、それらの特徴にひどく歪む可能性があり、さらに悪いことに、まったくトピックにまったく関係のない付随的な特徴にゆがめる可能性があります。

ウォームアップは、初期のトレーニング例のプライマシー効果を減らす方法です。それがなければ、モデルがそれらの初期迷信を訓練しないので、望ましい収束を得るためにいくつかの追加のエポックを実行する必要があるかもしれません。

多くのモデルでは、これをコマンドラインオプションとして提供しています。学習率はウォームアップ期間中に直線的に増加します。目標学習率がpであり、ウォームアップ期間がnの場合、最初のバッチ反復では、学習率に1*p/nを使用します。 2番目は2*p/nを使用し、以下同様です。反復iは、反復nで公称レートに到達するまでi*p/nを使用します。

つまり、最初の反復では、プライマシー効果の1/nしか得られません。これは、その影響のバランスをとるための合理的な仕事をします。

ランプアップは通常1エポック程度ですが、特に歪んだデータの場合は長くなる場合があり、より均一な分布の場合は短くなる場合があります。シャッフルアルゴリズムがトレーニングセットに適用されたときにバッチがどれだけ機能的に極端になるかに応じて、調整することをお勧めします。

25
Prune

つまり、学習率を2e-5と指定すると、トレーニング中に、学習率は最初の約10,000ステップ以内で約0から2e-5に直線的に増加します。

7
Patel