AdaDelta (G検定)

AdaDelta

1. 定義と概要

AdaDeltaとは、AdaGradの学習率減衰問題を、勾配(値をどの向きに動かせば誤差が小さくなるかを示す指標)だけでなく過去の更新量の情報も使って解消した最適化アルゴリズムです。学習率というハイパーパラメータを実質的に指定しなくてよい設計になっています。確率的勾配降下法(損失が小さくなる方向にパラメータ〔モデルが学習によって調整する重みなどの数値〕を少しずつ更新していく最適化の基本手法)を土台に、2012年にZeilerが提案しました。

AdaGrad(過去の勾配の二乗を蓄積して学習率を調整する手法)が抱える、学習が進むほど学習率が0に近づき更新がほぼ止まるという問題があります。これに対しAdaDeltaは、勾配の二乗の指数移動平均(直近のデータほど重みを大きくして計算する平均で、過去の影響を少しずつ薄めていく仕組み)を使って直近の勾配を重視します。

さらに、過去の更新量(パラメータの変化量Δx)の二乗の指数移動平均も保持し、両者のRMS(二乗平均平方根。値を二乗して平均し平方根をとった値で、ばらつきの大きさを表す指標)の比を使って更新幅を決める点が最大の特徴です。更新式はΔx_t = -(RMS[Δx]_{t-1}/RMS[g]_t)×g_tで表され、この設計により学習率ηを人が明示的に指定する必要がなくなります。

従来のAdaGradは、勾配の二乗和を学習開始から累積し続けるため、学習が進むほど学習率が単調に小さくなり更新がほぼ止まってしまうという課題を抱えていました。RMSprop(勾配の大きさの直近の変化に応じて学習率を調整する手法)はこの課題を、直近の勾配だけを重視する指数移動平均によって緩和しましたが、学習率ηそのものは依然として人が手動で設定する必要が残りました。

Zeilerは、パラメータの更新量は本来パラメータ自身と同じ単位を持つべきであるという着想から、過去の更新量の二乗の指数移動平均も追加で保持し、その比を学習率の代わりに使うことでηの指定を不要にする設計にたどり着きました。

2. 試験対策ポイント

まず整理しておきたいのは、AdaGradの学習率減衰問題です。勾配の二乗和を学習開始から累積し続けるため学習率が単調に小さくなり、やがて更新がほぼ止まってしまうという弱点でした(詳細は姉妹記事『AdaGrad』に譲ります)。AdaDeltaもRMSpropと同じく、指数移動平均で直近の勾配だけを重視することでこの問題を緩和します。

そのうえでAdaDelta最大の特徴は、RMSpropがなお必要とする学習率というハイパーパラメータ(学習を始める前に人があらかじめ決めておく設定値)を置き換えた点にあります。過去の更新量Δxの二乗の指数移動平均RMS[Δx]を分子に使うことで、実質的に指定しなくてよい設計にしています。

背景にあるのは単位(次元)の整合という着想です。パラメータの更新量は本来パラメータ自身と同じ単位を持つべきという考え方に基づき、分子・分母のRMSの比を取ることで単位を揃えています。この発想は、ニュートン法(関数の曲がり具合〔二階微分〕の情報を使って最適解に効率よく近づく最適化手法)が、曲がり具合を並べたヘシアン行列(関数の曲がり具合を並べた行列)の逆数を使って単位を揃える仕組みに近いとされます。

RMSpropとの違いは、学習率の指定要否という一点に集約されます。両者ともAdaGradの学習率減衰問題を指数移動平均で解決しましたが、RMSpropは学習率ηを人が設定する必要があるのに対し、AdaDeltaはRMS[Δx]を使うことでηの指定を不要にしました。

ただし、減衰率ρ(ロー。指数移動平均で過去の値をどれだけ重視するかを決める係数で、典型値は0.95です)や、数値安定化定数ε(イプシロン。割り算の分母が0になって計算が破綻するのを防ぐために加える、ごく小さな値で、典型値は1e-6です)は、AdaDeltaでも残るハイパーパラメータです。

3. 関連概念との比較・相違点

AdaGradとの最大の違いは、学習率減衰問題への対処の仕方にあります。AdaGradは勾配の二乗和を学習開始から累積し続けるため学習率が単調に減少し、更新が止まりやすいという弱点を抱えます(AdaGrad自体の仕組みは姉妹記事に譲ります)。

これに対しAdaDeltaは、指数移動平均で過去の影響を徐々に薄めることでこの問題を防ぎます。勾配を際限なく積み上げる仕組みから、直近の勾配だけを重視する仕組みへと発想を切り替えた点が、両者の分かれ目です。

RMSpropとの最大の違いは、学習率を人が指定する必要があるかどうかです。何を保持して更新幅を決めるかとあわせて並べると、両者の関係が見通せます(RMSprop自体の詳細は姉妹記事に譲ります)。

手法 更新幅の決定に使うもの 学習率ηの指定
RMSprop 勾配の二乗の指数移動平均RMS[g] 人が手動で設定する必要がある
AdaDelta RMS[g]に加えて、過去の更新量の二乗の指数移動平均RMS[Δx] 不要

この違いを支えているのは、更新量とパラメータ自身の単位を揃えるという発想です。分子・分母のRMSの比を使うことでηという人手の調整項を置き換え、学習率の候補を探る作業そのものを設計から取り除いています。

ただし、減衰率ρや数値安定化定数εという別の調整値はAdaDeltaにも残るため、ハイパーパラメータがすべて不要になるわけではありません。学習率だけを狙って置き換えた設計思想こそが、RMSpropとAdaDeltaを分ける最大のポイントといえます。

4. ビジネス・実務での活用シナリオ

研究開発におけるPoC(概念実証。新しい手法が実務で使えるか小規模に検証する取り組み)の段階では、学習率の候補を複数試すグリッドサーチ(ハイパーパラメータの候補をいくつも用意して総当たりで試し、最良の組み合わせを探す手法)に工数がかかることが課題になります。

AdaDeltaのように学習率を指定しない最適化アルゴリズムを使えば、この探索の手間を減らせるため、初期検証の段階で選ばれることがあります。学習率の当たりを付ける作業を省けることは、限られた期間で複数の手法を比較検証したいPoCの現場にとって実利的な意味を持ちます。

音声認識の分野では、Zeilerの原論文において、手書き数字画像のデータセットMNISTに加えて、複数の計算機に処理を分担させる大規模な音声データセットの学習環境での評価が行われています。ノイズを含む勾配情報に対しても頑健に動作することが確認されており、収録環境や話者によってばらつきが大きい音声データの学習でも、安定した収束が期待できる根拠になっています。

MLOps(機械学習モデルの運用管理。学習・評価・再学習を継続的に回す仕組み)の現場では、ハイパーパラメータ調整の手動介入を減らせるAdaDeltaの特性が、再学習を自動化するパイプラインの運用の手間を抑える方向に寄与します。人が学習率を都度調整し直す作業が発生しにくいため、自動再学習の仕組みに組み込みやすい最適化アルゴリズムの一つといえます。

5. 要点まとめ

  • AdaDeltaは、AdaGradの学習率減衰問題を勾配二乗の指数移動平均で緩和する点はRMSpropと共通しますが、過去の更新量の二乗の指数移動平均RMS[Δx]も使うことで学習率ηの指定を不要にした設計が特徴です。
  • 更新式はΔx_t = -(RMS[Δx]_{t-1}/RMS[g]_t)×g_tで表され、分子・分母のRMSの比によってパラメータ更新の単位をパラメータ自身の単位に揃える工夫がなされています。
  • RMSpropとの違いは学習率の指定要否にあり、減衰率ρや数値安定化定数εはAdaDeltaでも残るハイパーパラメータとして扱われます。

6. 確認問題

問1AdaDeltaは、AdaGradで生じる学習率が単調に減少して更新がほぼ止まる問題に対応するため、勾配の二乗の指数移動平均を計算する。

解答・解説をみる

○ 正しい

AdaDeltaはRMSpropと同様、勾配の二乗の指数移動平均を使って直近の勾配だけを重視し、AdaGradの学習率減衰問題を緩和します。

問2AdaDeltaはRMSpropと同様に、学習率ηをハイパーパラメータとして人が明示的に設定する必要がある。

解答・解説をみる

× 誤り

正しくは、AdaDeltaは過去の更新量の二乗の指数移動平均RMS[Δx]を使うことで学習率ηの指定を不要にしています。学習率ηを人が設定する必要が残るのはRMSpropです。

問3AdaDeltaは、過去の勾配の二乗の指数移動平均に加えて過去のパラメータ更新量の二乗の指数移動平均も保持し、両者の比を使って更新幅を決定する。

解答・解説をみる

○ 正しい

AdaDeltaはRMS[g](勾配の二乗の指数移動平均)とRMS[Δx](更新量の二乗の指数移動平均)の2つを保持し、その比を使って更新幅を決めます。二重の指数移動平均を使う設計が最大の特徴です。