和風ましらに

機械学習とか勉強したことを書き認めるブログ

最急降下法とニュートン法

機械学習で用いられているパラメーター学習法である、最急降下法ニュートン法について整理。

基本的には、こちらの文章を参考にさせていただきました。 https://brage.bibsys.no/xmlui/bitstream/handle/11250/2433761/16128_FULLTEXT.pdf

書いていて面倒臭くなったので、数式は載せてません。 ざっくりとした特徴だけまとめていきます。

最急降下法確率的勾配降下法

ロジスティック回帰のパラメーター更新に使われている方法。

主な特徴としては、

  1. 誤差関数のパラメーターでの微分した際の、符号の向きにパラメーター更新が行われる
  2. 進む方向しかわからないので、学習率という概念を導入して、どれくらいの幅更新するかを決める必要がある

(イメージ図) こんな感じで、関数を微分した時の符号の方向にパラメーターを更新していくイメージ。

ニュートン法

XGboostで使われている“Newton boosting”のベースとなった最適化手法。
“Newton boosting”と言う単語自体は、Didrik Nielsenさんの造語っぽい。


最急降下法が、一次微分を利用したのに対して、ニュートン法は二次微分を利用します。 イメージ、以下の感じです。

この図を見ると分かるように、最急降下法とは違い次のパラメーターの更新値が求まる。 (図の赤い点)

ざっくり、最適化手法としての各特徴としては、こんな感じかなと思ってます。 最後にまとめると
最急降下法微分した傾きの方向に少しずつ動かす一方で、ニュートン法は、対象のxt時点での二次微分を利用し、パラメータを更新する。この際、更新値は自動的に決まるので学習率という概念を使用する必要はない」

次は、“Newton boosting”についてまとめていきます。