logo

確率的勾配降下法 📂最適化理論

確率的勾配降下法

定義

目的関数 QQ とラーニングレート α>0\alpha > 0、バッチサイズ mm、そしてii番目のデータに対して、 ωn+1:=ωnα1ni=1mQi(ωn) \omega_{n+1} := \omega_{n} - \alpha {{ 1 } \over { n }} \sum_{i=1}^{m} \nabla Q_{i} ( \omega_{n} ) 確率的勾配降下法という。

説明

マシンラーニング

確率的勾配降下法はデータを扱う以上、必然的にマシンラーニングと深い関係を持つ。いくつかの言葉が慣れないかもしれないが、例を通して理解することがいい:

x1x_{1}x2x_{2} が与えられたとき、yy を予測する問題があるとする。推測されるモデルは線形結合 y=ax1+bx2y = ax_{1} + bx_{2} だ。私たちのデータセットは約30兆個の観測値を含んでおり、それを処理するコンピュータのスペックが乏しいため、問題を少しずつ分けて解くとする。 yx1x25.22.00.92.11.20.09.03.81.36.73.70.5 \begin{matrix} y & x_{1} & x_{2} \\ 5.2 & 2.0 & 0.9 \\ 2.1 & 1.2 & 0.0 \\ 9.0 & 3.8 & 1.3 \\ 6.7 & 3.7 & -0.5 \end{matrix} たとえ上記のように44 個のデータに分けて処理するならバッチサイズm=4m=4 になる。これは単なる例であり、問題は非常に単純で、目で見てもa2,b1a \approx 2, b \approx 1 が答えであることがわかる。典型的な回帰分析問題なので、単に最小二乗法で解くこともできるが、理解を助けるためにわざわざ最適化技術で解くことを考えよう。

最適化技術にはまず目的関数が必要である。ここで、目的関数 QQ は次のように定義でき、私たちの目標は目的関数を最小にするω=(a,b)\omega = (a, b) を見つけることである。 Q(a,b):=(ax1+bx2y)2 Q (a,b) := \left( ax_{1} + bx_{2} - y \right)^2 ここで、私たちが関心を持つ変数がa,ba,b であることを再度思い出しておこう。与えられたデータに基づいてa,ba,b を見つけることは、次のようにi=1,,mi=1,\cdots , m 番目のデータに対する4つの関数を同時に考えることと同じである。 Q1(a,b):=(2.0a+0.9b5.2)2Q2(a,b):=(1.2a+0.0b2.1)2Q3(a,b):=(3.8a+1.3b9.0)2Q4(a,b):=(3.7a0.5b6.7)2 Q_{1} (a,b) := \left( 2.0a + 0.9b - 5.2 \right)^2 \\ Q_{2} (a,b) := \left( 1.2a + 0.0b - 2.1 \right)^2 \\ Q_{3} (a,b) := \left( 3.8a + 1.3b - 9.0 \right)^2 \\ Q_{4} (a,b) := \left( 3.7a - 0.5b - 6.7 \right)^2 ここで「確率的」という名前の動機が出てきた。確率論的な概念がないにも関わらず、確率的勾配降下法と呼ぶ理由は、通常このように選ばれるデータがランダムだからである。これに対する導関数の平均で新しい値をアップデートすることは、もちろん当然である。

勾配降下法?

確率的勾配降下法は式的に通常の勾配降下法と変わりない。本質的な違いはデータの有無であり、確率的勾配降下法から発展した最適化技術もデータを気にすることだけを覚えておけば良い。