4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

自然言語処理のチューニングtrick:学習率の調整

Posted at

自然言語処理のBERTでほぼ100%精度を上げられる→学習率の調整手法を共有したいと思います。
そこまで難しい手法ではないですが、知っている人は意外と少ないです。
具体的には、全ての層で同じ学習率を使うのではなく、層ごとに異なる学習率を設定することです。

手動と自動の2つの調整方法があります。

①手動
まずBERTは学習率に非常に影響されやすいので、学習率を少し大きくしたらモデルがうまく学習できなくなります。
そのために、基本的な学習率の設定は「1e-5から5e-5」の範囲でおすすめです。
BERTは学習済みモデルで、inputに近い下層はあまり高い学習率は必要ないです。
一方で、outputに近いBERTのトップ層はtask specificなので、ここでは少し高めの学習率の設定が必要です。
具体的には、output層には5e-5、BERTには2e-5に設定するなどの方法が考えられます。
もう少し複雑なやり方なら、層ごとに徐々上げていく方法もあります。

②自動
これはSchedulerに学習率の調整を任せます。Schedulerは自動的に学習率を調整してくれるパラメータです。
私がよく使うのはCosineAnnealingWarmRestartsというSchedulerです。
Schedulerを使ったら、学習率が周期的に変わりますので、他のパラメータの調整も楽になります。(例えばstepの調整とか要らなくなります)

興味ある方ぜひ試してみてください。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?