最適化手法(シラバス 技術16)
学習目標
誤差が小さくなる向きに重みを少しずつ動かす勾配降下法の仕組みと、その弱点を補う改良手法を説明し、学習を効率よく進める工夫やハイパーパラメータの決め方を挙げられるようにします。
要点
勾配降下法の基本
誤差関数の値を小さくするため、勾配(誤差を重みで微分した値)と逆の向きに重みを少しずつ動かす方法です。1回にどれだけ動かすかを決める係数を学習率と呼びます。大きすぎると誤差が振動・発散し、小さすぎると学習がなかなか進みません。
更新に使うデータの量
- バッチ学習:学習データ全体で勾配を計算して1回更新します。
- オンライン学習:データを1件ずつ使って更新します。
- ミニバッチ学習:データを小さな塊(ミニバッチ)に分けて塊ごとに更新します。GPUで並列計算しやすく、ディープラーニングで広く使われます。
- 確率的勾配降下法(SGD):無作為に選んだ一部のデータ(1件やミニバッチ)で勾配を計算して更新します。
重みの1回の更新をイテレーション、学習データ全体の1周をエポックと呼びます。1,000件をバッチサイズ100で学習すると、1エポックは10イテレーションです。
勾配降下法の落とし穴
誤差が全体で最も小さい点が大域最適解、周りより小さいだけの谷底が局所最適解です。勾配降下法は手近な谷底で止まることがあります。ある方向では谷底、別の方向では山頂になる鞍点でも勾配がほぼ0になり、学習が停滞しやすくなります。
改良された最適化手法
- モーメンタム:前回までの更新の向きを慣性として加え、振動を抑えます。
- AdaGrad:パラメータごとに、過去の勾配の2乗の合計の平方根で学習率を割ります。合計は増え続けるので、やがて学習が止まりやすくなります。
- RMSprop:勾配の2乗を合計ではなく指数移動平均で扱い、学習率が小さくなりすぎるのを防ぎます。
- AdaDelta:AdaGradの弱点を改善し、学習率の設定も不要にしました。
- Adam:モーメンタム(勾配の移動平均)とRMSprop(勾配の2乗の移動平均)を組み合わせた手法です。
- AdaBound・AMSBound:学習率の上限と下限を学習とともに狭め、序盤はAdamのように、終盤はSGDのように振る舞わせます。AdaBoundはAdamを、AMSBoundはAMSGradをもとにしています。
学習の止めどき
早期終了は、検証用データの誤差が下がらなくなった時点で学習を打ち切り、過学習を防ぐ方法です。ただし、モデルの大きさやエポック数を増やすと、テスト誤差がいったん悪化してから再び下がる二重降下現象も知られています。
ハイパーパラメータの調整
学習率やバッチサイズ、層の数など、学習の前に人が決める設定値をハイパーパラメータと呼びます。グリッドサーチは候補値のすべての組み合わせを試し、ランダムサーチは組み合わせを無作為に選んで試します。効く設定が一部に限られる場合は、同じ試行回数ならランダムサーチのほうが効率よく探せます。
ノーフリーランチの定理は、あらゆる問題で平均すると、どの最適化手法の性能も同じになるという定理です。問題に合わせて手法を選ぶ必要があります。
G検定で問われる深さ
更新式の暗記は不要です。モーメンタム、AdaGrad、RMSprop・AdaDelta、Adam、AdaBound・AMSBoundが、それぞれ前の手法の何を改善したかを説明できること、エポックとイテレーションの関係を計算できることが目安です。
つまずきやすい点
- エポックは学習データ全体を1周する単位、イテレーションは重みを1回更新する単位で、1エポックのイテレーション数は「データ数 ÷ バッチサイズ」で決まる点
- AdaGradは学習率が小さくなり続けて学習が止まりやすく、RMSpropやAdaDeltaは過去の勾配の2乗を移動平均で扱ってこれを改善した、という系譜の取り違え
- 鞍点は勾配がほぼ0でも最適解ではなく、高次元の問題では局所最適解より鞍点で学習が停滞しやすいと指摘されている点
- ハイパーパラメータは学習で自動的に決まる重みとは別に、学習前に人が決める設定値である点
シラバスのキーワード
AdaBound、AdaDelta、AdaGrad、Adam、AMSBound、RMSprop、鞍点、イテレーション、エポック、オンライン学習、学習率、確率的勾配降下法(SGD)、グリッドサーチ、勾配降下法、局所最適解、早期終了、大域最適解、二重降下現象、ノーフリーランチの定理、ハイパーパラメータ、バッチ学習、ミニバッチ学習、モーメンタム、ランダムサーチ
練習問題
混同しやすい用語
出典と作成について
作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)
最終更新日: 最終確認日:
対応シラバス:シラバス第1.4版 技術16
出典
- G検定 試験出題範囲(シラバス2024)第1.4版(技術分野 項目16 最適化手法)2026年10月30日閲覧
- Boris T. Polyak, Some methods of speeding up the convergence of iteration methods, USSR Computational Mathematics and Mathematical Physics 4(5), 1–17 (1964)2026年10月30日閲覧
- John Duchi, Elad Hazan, Yoram Singer, Adaptive Subgradient Methods for Online Learning and Stochastic Optimization, Journal of Machine Learning Research 12, 2121–2159 (2011)2026年10月30日閲覧
- Geoffrey Hinton, Nitish Srivastava, Kevin Swersky, Neural Networks for Machine Learning, Lecture 6 slides (rmsprop)2026年10月30日閲覧
- Matthew D. Zeiler, ADADELTA: An Adaptive Learning Rate Method, arXiv:1212.5701 (2012)2026年10月30日閲覧
- Diederik P. Kingma, Jimmy Ba, Adam: A Method for Stochastic Optimization, arXiv:1412.6980 (2014)2026年10月30日閲覧
- Sashank J. Reddi, Satyen Kale, Sanjiv Kumar, On the Convergence of Adam and Beyond, arXiv:1904.09237 (ICLR 2018)2026年10月30日閲覧
- Liangchen Luo, Yuanhao Xiong, Yan Liu, Xu Sun, Adaptive Gradient Methods with Dynamic Bound of Learning Rate, arXiv:1902.09843 (ICLR 2019)2026年10月30日閲覧
- Yann Dauphin et al., Identifying and attacking the saddle point problem in high-dimensional non-convex optimization, arXiv:1406.2572 (2014)2026年10月30日閲覧
- Preetum Nakkiran et al., Deep Double Descent: Where Bigger Models and More Data Hurt, arXiv:1912.02292 (2019)2026年10月30日閲覧
- Mikhail Belkin, Daniel Hsu, Siyuan Ma, Soumik Mandal, Reconciling modern machine-learning practice and the classical bias–variance trade-off, PNAS 116(32), 15849–15854 (2019)2026年10月30日閲覧
- David H. Wolpert, William G. Macready, No free lunch theorems for optimization, IEEE Transactions on Evolutionary Computation 1(1), 67–82 (1997)2026年10月30日閲覧
- James Bergstra, Yoshua Bengio, Random Search for Hyper-Parameter Optimization, Journal of Machine Learning Research 13, 281–305 (2012)2026年10月30日閲覧