機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

線形回帰を最尤推定で解く(尤度とは?)

誤差を正規分布と仮定した最尤推定と、最小二乗法は等しいことを既に書きました。(参考:最小二乗法はなぜ二乗和誤差(残差平方和)を計算するのか)今回は解を求めることが目的ではなく、尤度とは何を意味するのかを確認したいと思います。

まず近似のモデルはいつも通り多項式とします。


y = \mathbf{w}^{T} \boldsymbol{\phi}(x) \tag{1}

ここで \phi_{i}(x) = x^{i}, \boldsymbol{\phi}=(\phi_0, \cdots , \phi_M)^{T}です。つまり式(1)は、以下のように多項式を簡略に表したものになります。


y = \mathbf{w}^{T} \boldsymbol{\phi}(x) = w_{0}+w_{1}x+w_{2}x^{2}+\cdots+w_{M}x^{M} \tag{2}

いま、訓練データ (x_1,t_1),\cdots,(x_N,t_N)が得られたとします。そして観測された t_iは、真の値 y_iに対して平均0、分散 \sigma^{2}の正規分布に従う誤差が加わっているとします。すると誤差 \epsilon_i


\epsilon_i = t_i - \mathbf{w}^{T} \boldsymbol{\phi}(x_i)\tag{3}

ですから、これが平均0、分散 \sigma^{2}の正規分布に従うことより


\displaystyle p(t_i) = \frac{1}{\sqrt{2\pi\sigma^2}}\exp\left\{ \frac{ -( t_i - \mathbf{w}^{T} \boldsymbol{\phi}(x_i))^2 }{ 2 \sigma ^2}\right\} \tag{4}

と書けます。正規分布の確率密度関数の形をしていますが、 t_iは既に観測済みですから揺らがない値です。これは確率ではなく t_iの尤度といいます。分布 p(t_i)がどのような形をしていると t_iが観測されたという事象をよく表すか?を考えます。式(4)の中の未知数は \mathbf wですから、 \mathbf wの関数と捉えます。数式は確率密度関数と全く同じですが解釈が違います。確率と解釈するのではなく尤度と解釈することがポイントです。確率ではありませんから、全区間で積分しても1にはなりません。確率密度関数は揺らぐ値を横軸にとり、その値はどういう確率で発生するか?を表しますが、尤度は観測された値は固定で分布のほうを変化させ、どのような分布ならば観測値が尤もらしいか?を考えます。図で表すと以下のようなイメージです。

青色の点が観測された t_iとします。そして曲線は、 \mathbf wをいくつか変化させたときの p(t_i)です。つまり縦軸は尤度 p(t_i)です。図から明らかですが、 t_iは赤線の分布から発生したと考えるのが尤もらしいといえます。尤度 p(t_i)が大きいほど、その分布から発生した可能性が高いといえる、ということです。

さて、線形回帰の最尤推定ではこれを訓練データ数分考えます。図で表すと以下のようなイメージです。

観測値が6点あったとしてそれぞれグラフにしています。 \mathbf wを決めると全てのグラフにおける分布の形が決まります。(形というか、中心値\mathbf{w}^{T} \boldsymbol{\phi}(x_{i})が違うだけですが) この図だと t_4は分布の中心ですが、 t_3がちょっと外れているので、最適ではないかもしれません。各尤度の積が最大となる \mathbf wが最適解になります。数式にすれば、


\displaystyle L(\mathbf{w}) = \prod_{i=1}^{N}\frac{1}{\sqrt{2\pi\sigma^2}}\exp\left\{ \frac{ -( t_i - \mathbf{w}^{T} \boldsymbol{\phi}(x_i))^2 }{ 2 \sigma ^2}\right\} \tag{5}

となり、これを最大にする \mathbf wを求めます。これは結局二乗和誤差を最小にすることに等しく、計算結果は最小二乗法と同じですから省略します。(参考:最小二乗法の解の導出