話題のRAdamScheduleFreeをざっくり試す

お疲れ様です。

今回は機械学習の界隈で話題のRAdamScheduleFreeという新しいoptimizerを試したいと思います。 なんでもAdamWと同等かそれ以上の性能だとか…!
詳しい内容は作成者さんのZennをご確認ください。今回私がやるのはとりあえずの実装のみ…。

zenn.dev

条件設定(実行環境、使用モデルなど)

実行環境は以下になります。

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の物体検出用データセットを使用しました。

fallpoke-tech.hatenadiary.jp

ソースコードはこちらにあります。実装も反映済みです。

github.com

学習設定は以下になります。比較のモデルでも同じ設定を使用しています。

[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の画像分類に適用したサンプルコードがあるので、こちらを参考に実装しました。

github.com

結果

  • 学習曲線
  • 推論画像の一部

比較(AdamWでの結果)

  • 学習曲線
  • 推論画像の一部

所感

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