お疲れ様です。
今回は機械学習の界隈で話題のRAdamScheduleFreeという新しいoptimizerを試したいと思います。
なんでもAdamWと同等かそれ以上の性能だとか…!
詳しい内容は作成者さんのZennをご確認ください。今回私がやるのはとりあえずの実装のみ…。
条件設定(実行環境、使用モデルなど)
実行環境は以下になります。
CPU: 13th Gen Intel(R) Core(TM) i7-13700F 2.10 GHz
メモリ: 32 GB
GPU: NVIDIA GeForce RTX 4060 Ti
VRAM: 16GB
OS: Windows11 Pro
使用するモデルは物体検出モデルのDETRです。これまで私が実装してきたものです。
また、データセットはVOC2012の物体検出用データセットを使用しました。
ソースコードはこちらにあります。実装も反映済みです。
学習設定は以下になります。比較のモデルでも同じ設定を使用しています。
[parameters]
num_epoches = 100
batch_size = 32
classes = [
"person", "bird", "cat", "cow", "dog", "horse", "sheep",
"aeroplane", "bicycle", "boat", "bus", "car", "motorbike",
"train", "bottle", "chair", "diningtable",
"pottedplant", "sofa", "tvmonitor"
]
# 入力画像サイズ: (height, width)
input_size = [512, 512]
# データセットの形式("coco" or "pascal_voc")
dataset_type = "pascal_voc"
[optimizer]
lr = 1e-4
lr_backbone = 1e-5
weight_decay = 1e-4
実装
今回使用するRAdamScheduleFreeはすでにMetaのScheduleFreeのGitHubリポジトリにマージ済みです。実装自体もすごく簡単でしたね…!
MNISTの画像分類に適用したサンプルコードがあるので、こちらを参考に実装しました。
結果
- 学習曲線

- 推論画像の一部

比較(AdamWでの結果)
- 学習曲線

- 推論画像の一部

所感
AdamWと比べてめちゃくちゃ安定していたことにまず驚きました。(AdamW側の学習率の設定が適正でなかった可能性もありますが…。)学習が安定した分最終的な精度もAdamWと比べてよかったように思います。ここはちゃんと評価指標で算出した方がよいのですが、実装がまだなので…。
実装は本当に簡単だったので今ある訓練用のソースのoptimizerを変えるだけですぐ試せてしまいますね…!
社内でも結構話題になっており、検証の段階ですが使ってみたいという声も結構出ている印象です。
これまで主流だったAdamにとって代わるのか今から楽しみです。