AWS DeepRacerを始めましたが、ハイパーパラメータチューニングの壁にぶつかっています。(理解が難しい)
本記事ではハイパーパラメータの理解の仕方からチューニングについてのノウハウを記載していきます。
※DeepRacer参加方法については下記にまとめています
ハイパーパラメータ基礎
ハイパーパラメータについて理解する
下記のブログはトレーニングアルゴリズムから説明していて図もあって分かりやすい解説が書いてあります。
まずはざっくり理解します。
ハイパーパラメータの項目確認
公式のマニュアルでさらに理解を深めます。
バッチサイズについて
バッチサイズについては理解があいまいだったのですが、下記の記事が分かりやすかったです。
なぜかは分からないですが分割して学習することで高い成果が出るようです。
ハイパーパラメータ変更影響
概要を理解したら、実例2つを確認します。
ハイパラチューニングがどのように影響を与えるのか見ておきます。
各ハイパーパラメータの意味と影響の理解
上記と同じ記事ですが、改めて各パラメータが何に影響するのかをざっくり把握します。
2019年世界一取った方のハイパラチューニング
JAWS DAYS 2020 AWS DeepRacerリーグで世界一になるには
https://www.dnp-ds.co.jp/tech_fun/pdf/tech_fun_007_1.pdf
下記の通り(ハイパーパラメータチューニング箇所のみ抜粋)
■P10抜粋
クローン時にハイパーパラメータを変更
・主に以下の5つ
・Learning late(学習レート)
・Batch size(バッチサイズ)
・Number of epochs
・Entropy
・Number of experience episodes between each policy-updating iteration (各ポリシー更新反復間のエクスペリエンスエピソーの数)
・バッチサイズ、エポック数、エピソード数は最初に大きな値を設定した
・2時間くらい学習後、ログを見て値を小さくしていったり、最初から小さな値を
設定して4~5時間学習させた
・あとは学習レートやエントロピーの値を調整していた
・値は報酬関数のグラフやログを見て適当な値を入れて調整していた
■P13抜粋
Training
・トレーニングジョブのエントロピーの値をチェック
・途中で値が上昇し始めてたら、トレーニング時間を短くしたりハイパーパラメータを調節して再トレーニング
・優勝モデルで0.4くらい
WorkShopのハイパラ解説に変更影響の一例あり
スピード、学習率、エポック数、バッチサイズを変えて、学習効率がどの程度変わるかをグラフで図示してくれている。
「大きな学習レートをより有効に活用するには、小さなバッチサイズでトレーニングする必要があるようです。」
の一文を参考にする
https://catalog.us-east-1.prod.workshops.aws/v2/workshops/03f7e662-e3b1-4c5b-8fbe-b6af0c00c7b2/ja-JP/2-handson/2-2/2-2-7
モデルの作成4 - アルゴリズムとハイパーパラメータ
観察事項 : 収束を得るための最大速度とハイパーパラメータを変えてみる
ハイパーパラメータチューニング実践
2021/11/29
Learning late(学習レート)のチューニングを実施
学習コース:Vivalas Speedway
学習レートを最大値の0.001(デフォルトは0.0003)に変更し学習開始
Rewardが見たことない挙動になった(後半は報酬が底辺になっている)
学習レートだけを上げても収束されないことを確認(これは上記に紹介したブログ記載の通り)
2022/1/31
2019年世界一取った方のハイパラチューニング
「バッチサイズ、エポック数、エピソード数は最初に大きな値を設定した」
これでどれだけ走りが安定するのかを試す
下記の通り設定。
コース:VivalasSpeedway
バッチサイズ 64→128
エポック数 3→10(最大値)
エピソード数 20→40(推奨される値は10、20 および 40 )
MinimumSpeed 0.5→1
Maximu speed 1→2
学習時間 120分
※こちらは2021年10月のハイパーパラメータデフォルト値のままで学習させたモデルの走り。
ジグザグ運転が課題でした。
2022/2/7
「大きな学習レートをより有効に活用するには、小さなバッチサイズでトレーニングする必要があるようです。」
の実証実験を実施。
コース:Summit Speedway
バッチサイズ 64→32
エポック数 3→5
LearningRate 0.0003→0.001
MinimumSpeed 0.5→1
Maximu speed 1→3
学習時間 120分
学習結果。報酬は右肩上がりだが、学習継続してもこれ以上良い結果にはならなかった。
※学習継続した結果の詳細は下記の2/21、2/28に記載。
比較的簡単なコースではあるが、
学習時間が2時間でMaxスピード3でコースアウト4回しかないのはかなり上々だと思う。
このモデルで上位10%を達成できた。(101/1090位)
まとめ
ハイパーパラメータをうまくチューニングできるようになれば
トレーニング効率を上げられることは分かったので、
これから最適解を探っていきたいと思います!