最終兵器AdamのアルゴリズムをExcelに実装して具体例を解いてみた。

2023年10月7日

当ページのリンクには広告やプロモーションが含まれています。

勾配降下法の最良アルゴリズムAdam

AI君の頭の良さは、式の中のパラメータの調整具合にかかっています。

そして良いパラメータかどうかを判断するために、損失関数を使います。

式で予測した値が実際の値(正解)と比べてどのくらい違うかを示す関数です。

 

この損失関数の値が一番小さくなるようなパラメータを求められれば、そのパラメータは最適といえます。

これを最適化問題と言い、最小二乗法はその一つです。

そして、そのためのアルゴリズム(方法)を過去数回に渡って紹介してきました。

 

>> 【例題をExcelでわかりやすく】最急降下法で単回帰の最小二乗法を解いてみる

>> 【Excelでアルゴリズムを実装】確率的勾配降下法を使って最小二乗法を解いてみる

>> 【Excelでアルゴリズムを実装】モーメンタム法を使って最小二乗法を解いてみる

>> 【Excelでアルゴリズムを実装】RMSPropを使って最小二乗法を解いてみる

 

今回はいよいよ最終章で、これまでの方法をいいとこどりをしたアルゴリズムを紹介します。

その名もAdam(Adaptive Moment Estimationです。

 

Adamのアルゴリズムはモーメンタム法とRMSProp法の合成

Adamはモーメンタム法RMSPropを理解できている人にとっては簡単です。

これらのいいとこどりをしているだけで、何も新しいことはありません。

でも機械学習人工知能ディープラーニングなどを使って仕事をしている人たちにとっては、知らない人はいないほど有名でよく使われているアルゴリズムです。

 

早速、どのように組み合わせているのかを見ていきましょう。

説明を簡単にするために、パラメータaの更新方法についてだけ見ていきます。

パラメータが増えても、同じようにするだけですので。

 

モーメンタム法では次式でパラメータaを更新しました。

an+1=an-η{前回の∂Qn(a,b)/∂a×β+今回の∂Qn+1(a,b)/∂a×(1-β)}

 

これが、RMSPropでは次のような2式でした。

An+1=βAn+(1-β)(∂Qn+1(a,b)/∂a)2

an+1=an-η/√( An+1+ε)×∂Qn+1(a,b)/∂a

 

このRMSPropの式の最後の青字の箇所の代わりに、モーメンタム法の青字の箇所を入れます。

すると、

An+1=βAn+(1-β)(∂Qn+1(a,b)/∂a)2

an+1=an-η/√( An+1+ε)× {前回の∂Qn(a,b)/∂a×β+今回の∂Qn+1(a,b)/∂a×(1-β)}

となりました。

これがAdamの更新式です。

簡単ですね。

 

よく見ると、1式目と2式目の両式に同じβが含まれています。

でもこれらは別物です。

ですのでβ1β2として区別しておきましょう。

すると、

 

An+1=β2An+(1-β2)(∂Qn+1(a,b)/∂a)2

an+1=an-η/√( An+1+ε)× {前回の∂Qn(a,b)/∂a×β1+今回の∂Qn+1(a,b)/∂a×(1-β1)}

 

これがAdamのすべてです。

理解が怪しい人はモーメンタム法RMSPropの解説をもう一度読み返してみて下さい。

 

AdamをExcelに実装する

それでは実際にExcelで実装してみましょう。

前回、RMSPropで行ったのと同じ例題でやってみます。

更新式をExcelシートに入力する場合の概略設計は次の通りです。

クリックすると拡大します

 

実際の入力関数は下記のようにしました。

シートが横に長いので2つに分けます。

クリックすると拡大します

 

クリックすると拡大します

 

初期値a=b=10から出発して、2,498回目で収束しました。

収束する様子はこのような感じです。

 

オーバーシュートもせず、綺麗にムダなく収束値に向かっていますね。

 

他アルゴリズムと比べた収束の様子をグラフで確認

でも他のアルゴリズムと比べると、どれくらい性能がいいのでしょうか?

確率的勾配降下法、モーメンタム法、RMSPropとスケールを合せて比べてみましょう。

 

確率的勾配降下法

 

モーメンタム法

 

RMSProp

 

Adam

 

一目瞭然、Adamが一番ですね。

今までの最高だったRMSPropよりも少ない更新回数で、しかも綺麗な軌道を描いて収束しました。

 

Udemyの関連講座

データ分析シリーズ① AI数学-文系でも理解できる!高校から始めるデータ分析、AIのための数学-

データ分析、機械学習に関わる数学に絞り、効率的に学習できるようカリキュラムを構成しました。文系でも理解できるよう丁寧な説明をしています。Pythonエンジニア育成推進協会認定スクールによる高品質な数学コースです。

 

本当にわかる、AI時代の数学【超初心者からの数学入門】

数学アレルギーでも大丈夫/やさしく丁寧な解説/コード無し キーワード:基礎/数学/行列/線形代数/ベクトル/微分/データサイエンス/AI/機械学習/ディープラーニング/データドリブン/人工知能

 

【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 初級編 –

1000人以上が受講している(株)キカガクの『脱ブラックボックスセミナー』が遂に登場!機械学習の参考書を「閉じてしまった人」への再入門に最適な講座です。微分・線形代数といった数学の基礎からPythonでの実装まで短時間で習得しましょう。