等比数列の極限として理解する勾配降下法|直感と数学 #2

『数学って難しそう』ってよく聞きますが、確かに数式だけ追ってると難しく感じる時もあるかもしれません。ですが、ちょっと視点を変えてみるだけで新しい洞察が得られる時があります。
この直感的な感覚をわかっていただければということで、一見難しそうな話を直感的に理解することができるような形で諸々取り扱っていければと考えています。勉強しているというより遊んでいる感覚で見てもらえれば嬉しいです。

#1ではポワソン分布について取り扱いました。

#2では機械学習でよく用いられるアルゴリズムである勾配降下法(Gradient Descent)について高校数学レベルの問題を用いて解説できればと思います。

 

◆ 問1
f(x)=x^2が最小となる際のxf'(x)=2xであることを利用して求めよ。

例えば、上記の問題があったとします。最小値を求めること自体はグラフを書けば一目瞭然で非常に簡単です。が、この後の話との兼ね合い上、f'(x)=2xを用いるという制約を設けました。これにより、微分を用いて解いていくことになります。

◆ 解答1

微分がその点の傾きであるため、基本方針としてはそれを利用します。

f'(x)=2xなので、大元の関数の増減はx=0まで単調減少し、それ以降は単調増加します。そのため、x=0で最小値f(x)=0を取ります。

この問題の微分を用いた解法は上記になります。微分はその点における傾きであるため、今回のような下に凸の関数(二階微分が正)においては微分した値が0である点が最小値となりその点はx=0ということで求まります。


さて、ここで終わっては単なる高校数学の復習であり、今更な内容になってしまいます。もちろんここからが本題です。

◆ 問2

f(x)=x^2f'(x)=2xα=0.25x_{0}=2のとき、
 {\large x_{n+1} = x_{n}-α f'(x_{n})}   ・・(※)

を用いて、x_{1}x_{2}x_{n}\displaystyle \lim_{n \to \infty} x_{n}を求めよ。

上記の問題はいかがでしょうか。早速解いてみましょう。

◆ 解答2

 x_{n+1} = x_{n}-0.25 × 2x_{n}    ・・(1)

上記は(※)にα=0.25f'(x_{n})=2x_{n}を代入したものになります。

x_{n+1} = 0.5x_{n}     ・・(2)

(1)を変形すると(2)のようになります。(2)は高校数学の数列で習う漸化式であり、n+1番目がn番目の0.5倍になっているので{ x_{n}}は公比0.5の等比数列になります。数列の基本的な解き方に基づいて下記のように解いていくことができます。

x_{1}=0.5×x_{0}=0.5×2=1

x_{2}=0.5×x_{1}=0.5×1=0.5

x_{n}=0.5×x_{n-1}=0.5^2×x_{n-2}=...=0.5^n×x_{0}=0.5^n×2

\displaystyle \lim_{n \to \infty} x_{n}\displaystyle \lim_{n \to \infty} 0.5^n×2=0

それぞれが問題2の求めたい答えとなっています。

上記がこの問題全体を通しての解法となります。これも高校数学の範囲の問題でした。
上記の問題だけを意識するとこれはただの高校数学の問題ですが、ここで途中で用いた(※)の式について考えてみましょう。これは実は勾配降下法の式なのです。この勾配降下法の式を用いて何を行ったのでしょうか。
答えとしては、問題に明示はされていないのですが、冒頭の問題と同じくこの問題も実は最小値問題を解いています。\displaystyle \lim_{n \to \infty} x_{n}は実はf(x)が最小値となるxの値と一致します。(数値的な解を求めるにあたっての都合上極限は大きな値となるのでこれは近似解です)

 

また、なぜ勾配降下法を用いることで最小値を求めることができるかですが、こちらについては傾きの逆方向に動くと言うのがポイントです。傾きが負の際は正の向きに進むとf(x)の値は小さくなるし、傾きが正の際は負の向きに進むとf(x)の値が小さくなります。これにαを学習率としてかけることで更新の度合いを制御します。

したがって勾配降下法を用いることで局所的な最適解(最小値)を求めることができます。局所的なとはしましたが、今回の2次関数については全ての区間において二階微分が正なので大域的な最適解です。

 

結論として勾配降下法は等比数列の極限と同様に理解することができ、実は高校数学の範囲内でも理解することが可能です。学習を行う際のイメージに困った際はこの問題を思い出していただけると直感が働きやすくなって良いのではと思います!