【がくしゅうりつ】
学習率 とは?
💡 山を下りるときの「歩幅を決めるつまみ」
📌 このページのポイント
- 1回の学習ステップでパラメーターを動かす量を決める
- 大きすぎると最適値を飛び越えて発散する
- 小さすぎると学習が遅く局所最適に陥りやすい
- 学習率スケジューラーで学習中に動的に調整することが多い
学習率って大きい方が早く学習できていいんじゃないの?
一見そう思えるけど、大きすぎると「谷底を目指してジャンプしたら谷の反対側の山に飛び出してしまう」状態になるんだ。損失が下がるどころか増えたり、あちこち飛び跳ねて全然収束しなくなる。かといって小さすぎると学習に何万回もかかって効率が悪いんだよ。
正しい学習率ってどうやって見つけるの?
ざっくりした方法は「0.1, 0.01, 0.001, 0.0001」のように10分の1ずつ変えてどれが一番学習が進むか試すんだ。最近はAdamのような最適化アルゴリズムが学習率を自動で調整してくれるから、初期値を0.001に設定しておくだけでも多くの場合はうまくいくよ。
学習が進むにつれて学習率を変えるって聞いたけど?
「学習率スケジューラー」という仕組みがあって、最初は大きな歩幅で谷に向かって進み、近づいたら小さな歩幅で細かく調整する、という戦略だよ。ウォームアップ(最初はゆっくり始めて徐々に上げる)とコサインアニーリング(波のように下げていく)が代表的だね。
学習率が違うと同じデータでも全然違う結果になるって本当?
まとめ:ざっくりこれだけ覚えればOK!
「学習率」って出てきたら「AIが1回の学習でどれだけパラメーターを更新するかを決める重要な設定値のことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Learning Rate」 = 学習の速さ・割合
💬 パラメーターを「どのくらいの速さで(Rate)学習させるか(Learning)」を決める値だよ