概要
Google が提供する A I機械学習講座「Machine Learning in the Enterprise」を学習しました。
講座の中で、学習率とバッチサイズについて実践的な内容が説明されていたので、本記事にてご紹介します。
講座: Machine Learning in the Enterprise
対象者
- 機械学習に関心があり、実践的な知識やスキルを習得したい
- 学習率やバッチサイズをどのように設定すればよいか知りたい
機械学習における学習率とミニバッチサイズ
機械学習において、モデルの性能に大きく影響するパラメータとして、学習率とバッチサイズが挙げられます。学習率とミニバッチサイズについて、概要、重要性、適正値の考え方について説明します。
学習率とは
機械学習の最適化において、重みパラメータを一度にどの程度変化させるかを表すハイパーパラメータであり、言い換えると、重み空間におけるステップの大きさを制御するパラメータとなります。
たとえば、学習率が"0.001"の場合、重み空間の"1000分の1"に等しいステップサイズであることを意味します。
学習率の重要性
学習率の値が高いほど、一度に変更する重みパラメータの大きさが大きくなり学習のスピードは上がります。逆に低い場合は学習のスピードが下がります。
学習率の適正値の考え方
現段階では、まだ適正値を選ぶための厳密なルールはないものの、
"特徴数の平方根の逆数" と "0.2" の小さい方を選択する考え方があります。
特徴数が "100個"であれば、1 / 10 = 0.1 (< 0.2) のため、0.1となります。
なお、TensorFlowのLinear regressor estimator では、学習率のデフォルト値は "0.2" となっています。
ミニバッチサイズとは
データセットを幾つかのサブセットに分けて学習に使うデータの数を指します。
言い換えると、勾配を計算する際に使用するサンプル数を制御するパラメータとなります。
具体的には、全データを使って関数の最小値を探す「勾配降下法」において、学習データをいくつかのグループ(バッチ)に分けて処理する際に、それぞれのグループのサイズを指します。
ミニバッチサイズの重要性
ミニバッチサイズが小さい場合は、損失曲線において跳ね返りが見られるなど、学習が不安定になることがあります。一方で、バッチサイズが大きい場合は、モデルの学習能力が高まりますが、同時にコストやトレーニング時間も増える傾向があります。
ミニバッチサイズの適正値の考え方
現段階では、まだ適正値を選ぶための厳密なルールはないものの、
経験則では、"40から100"くらいで、より小さなバッチサイズから始めた方が良いとのこと。
最近の研究によれば、ミニバッチサイズを小さくすることで、より最新の勾配計算が可能となり、より安定した信頼性の高い学習ができるとのことで、具体的には、最良のパフォーマンスは一貫してミニバッチサイズが "m=2" から "m=32" の範囲で得られたとのことです。
まとめ
学習率とミニバッチサイズについて、講座"Machine Learning in the Enterprise"から得られた情報をまとめました。
本講座は、わかりやすいだけでなく、実践的な知識も得られるため、非常に有用でした。
また、生成AIにつながる話題も含まれており、機械学習や生成AIに興味がある方にとって今後何を学べばよいかを考える際の参考になると思いますので、ご興味のある方はぜひ学習してみていただければと思います。
以上