HELLO CYBERNETICS

深層学習、機械学習、強化学習、信号処理、制御工学、量子計算などをテーマに扱っていきます

線形回帰モデルと最小二乗法

 

 

follow us in feedly

f:id:s0sem0y:20160424052431p:plain

はじめに

今回は線形回帰モデルを確率的なモデルで考え、これと最小二乗法の関係を見ていきます。

この部分は機械学習を始める最も根っこの部分に当たるので是非完全な理解をしたいところです。

 

線形回帰

線形関数

重みベクトルを{\bf w} = (w_0,w_1,w_2,...,w_d)^Tと表し

入力データを{\bf x} = (1,x_1,x_2,...,x_d)^Tとして

 

h({\bf w,x}) = \bf w^Tx

 

を線形関数と言います。

データは、本来d次元だったとして、最初の成分に1を挿入していることに注意してください。仮にデータ\bf x1次元の場合には

 

h(w_0,w_1,x)=w_0+w_1x

 

のような形になり、最初の成分が切片を与えます。

線形というのは「比例」という概念を多次元に拡張したものです。以下のように、\bf wに比例したような形(実際には線形という)を線形関数というわけです。

 

h({\bf w,x}) = \bf w^Tx

 

線形回帰の目的

線形回帰の目的は、入力\bf xと出力yの関係をh({\bf w,x}) =\bf w^Tx\bf wを上手く調整することで表現しようというものです。

例えば\bf xの各成分は、土地の広さ、駅からの距離、築年数となっておりyは不動産の価格のような状態です。

 

ここでyh({\bf w,x}) =\bf w^Txで表されるのだが、何らかの測定誤差やノイズの混入によりズレた結果が得られると考えます。h({\bf w,x}) =\bf w^Txのズレ具合は何らかの確率分布から生じているとしてモデル化します。以降それを見ていきます。

 

ガウスノイズモデル

ガウスノイズとは、ガウス分布から生じる雑音のことを言います。

雑音は平均的には0である(つまり、+と−方向に均等に現れると思えばいい)が、1個1個を見ると本来のh({\bf w,x}) =\bf w^Txからズレを生じされます。ズレの大きさを分散σ^2で評価することにしましょう。

平均μで分散σ^2のガウス分布のことをN(μ,σ^2)などと表記します。今は平均0で分散σ^2のガウス分布を想定しているのでN(0,σ^2)を扱います。

 

雑音の記号はεで表現することにして、

 

ε〜N(0,σ)

 

と書くことにします。(通常x〜pとは、xが確率分布pから生起するという意味)

まとめると、線形回帰モデルというのは


y = h({\bf w,x})+ε ={\bf w^Tx}+ε , ε〜N(0,σ^2)

 

 

と表せることになります。

雑音εが確率的に生起するせいで、yも確率的に振る舞うことになり

 

y〜N({\bf w^Tx},σ^2)

 

と表せます。ここでこの式は、ノイズは平均的には0であるので、yは平均的には正しく\bf w^Txとなるが、分散σ^2の影響を受けるという意味です。

 

結局yの確率分布を明示的に書けば

 

p(y|{\bf x;w},σ)=\frac{1}{\sqrt{2 \pi σ^2}}\exp \left( -\frac{(y-{\bf w^Tx})^2}{2σ^2} \right)

 

と表せます。これで入力データ\bf xに対する出力データyを確率的にモデル化することができました。あとは上手く\bf wを決めてやるだけです。

 

最尤推定法

今、入力データ\bf x_1に対して出力データy_1が手元にあるとしましょう。

この手元にあるデータから上手く\bf wを決めてやりたいです。

ここでこのようなデータが得られた背景には以下のようなデータの生起が起こっているはずで

 

y_1〜N({\bf w^Tx_1},σ^2)

 

これは現実に起こったことであるので、それ相応に確率は高いであろうと考えられます。

しかしデータが1つでは怪しいです。たまたま珍しいデータが得られた可能性もあります。

そこで、データをN個かき集めてきたとしましょう。当然i番目のデータは

 

y_i〜N({\bf w^Tx_i},σ^2)

 

という生起の過程をたどっており、これら全てのデータが得られる確率は

 

\prod_{i=1}^{N}N({\bf w^Tx_i},σ^2)

 

となっています。個々のデータは互いに独立であるとすれば上記のように個々のデータの生起の積で確率を表すことができます。このように実際に実現した確率的事象の確率を尤度と呼び、この尤度を最大にするようにパラメータ\bf wを決定するのが最尤推定法です。

通常はデータをまとめてDで表し、

 

p(D;{\bf w})=\prod_{i=1}^{N}N({\bf w^Tx_i},σ^2)

 

などと表記します。

 

対数尤度

パラメータを決定するためには、尤度を最大化しなければなりません。

 

p(D;{\bf w})

 

\bf wで微分して、0となる点で極値を取るはずです。まずは極値を探したいのですが、尤度は積の形で微分が難しいです。

ここで通常は尤度の対数を取って、積を和に変換します。

 

\log p(D;{\bf w})=\sum_{i=1}^{N} \log N({\bf w^Tx_i},σ^2)

 

となります。これを最大化しましょう。(\log (xy)=\log x + \log yを使っているだけです)

ガウス分布の式を代入して、以下のように表します。

 

\log p(D;{\bf w})=\sum_{i=1}^{N} \log \frac{1}{\sqrt{2 \pi σ^2}}\exp \left( -\frac{(y_i-{\bf w^Tx_i})^2}{2σ^2} \right)

 

すると、更に\logの性質を使ってΣの中身を

 

\log \frac{1}{\sqrt{2 \pi σ^2}}\exp \left( -\frac{(y_i-{\bf w^Tx_i})^2}{2σ^2} \right)=\log \frac{1}{\sqrt{2 \pi σ^2}} + \log \exp \left( -\frac{(y_i-{\bf w^Tx_i})^2}{2σ^2} \right)

 

と書き換えられます。第一項は\bf wに無関係なのでただの定数項です(今から\bf wで微分しようとしているので無視できます)。また、第二項は指数を取って対数を取るという演算が施されているので、この部分は打ち消され、結局のところ

 

-\frac{(y_i-{\bf w^Tx_i})^2}{2σ^2}

 

だけがΣの中身として残ります。従って対数尤度は定数項Cを使って

 

\log p(D;{\bf w})=C + \sum_{i=1}^{N} \left( -\frac{(y_i-{\bf w^Tx_i})^2}{2σ^2} \right)

 

と表せます。

 

-\frac{(y_i-{\bf w^Tx_i})^2}{2σ^2}

 

の分母は、\bf wにとって定数倍なのでこれも、適当にC'として外に出してしまいましょう。最終的に対数尤度は以下のような形で表されます。

 

\log p(D;{\bf w})=C + C'\sum_{i=1}^{N} \left( -(y_i-{\bf w^Tx_i})^2 \right)

 

最小二乗法との関係

対数尤度を最大化するというのはどういうことでしょうか。

 

\log p(D;{\bf w})=C + C'\sum_{i=1}^{N} \left( -(y_i-{\bf w^Tx_i})^2 \right)

 

\bf wに関する最大値を求めることは定数項や定数倍を無視して

 

\log p(D;{\bf w})=\sum_{i=1}^{N} \left( -(y_i-{\bf w^Tx_i})^2 \right)

 

を最大化することです。更に負符号を付けて

 

-\log p(D;{\bf w})=\sum_{i=1}^{N} \left( y_i-{\bf w^Tx_i} \right)^2

 

を最小化するという問題に書き換えられます。

これはよくみる単なる最小二乗法です。

直線フィッティングに、当たり前のように使っていた最小二乗法とは、ガウスノイズが生じているという線形回帰モデルに相当していたのです。もしもノイズがガウスノイズでないのならば、最小二乗法はなにかおかしなことをやっていることになります。

確率的なモデルで考えると、実はモデルの詳細を検討できて便利です。

 

 

 

最小二乗法はどんなときに使えるか

実は最小二乗法は多くの場合ある程度妥当な選択となります。

いま考えているモデルというのは

 

y = h({\bf w,x})+ε ={\bf w^Tx}+ε , ε〜N(0,σ^2)

 

というものでした。ノイズの正体は何か分かりませんが、ともかくデータを揺るがすものです。

このノイズを細分化して考えた場合、つまり

 

ε = ε_1+ε_2+ε_3+...

 

というように、ノイズが複数のファクターに由来しているとしましょう。(例えば大雑把に計測機器の誤差、計算機による誤差、写し間違いによる誤差と言った具合です。(写し間違いなんてあるかしらんけど))

 

それぞれのε_iの分布がどんなものであるかはわからないにしても、「確率変数の和」という確率変数はガウス分布に近くなることが知られています(和の数が増えれば増えるほど)。

ここで強力なことに、ε_iの分布は本当になんでもいいのです。それぞれ別々で任意の確率分布であったとしても、和を取っていくとガウス分布に近づきます。これを中心極限定理と言い、確率統計における非常に強力な定理となっています。

 

ガウス分布というものが如何に特別であるかは、実は中心極限定理に支えられているのです。

 

やけにガウス分布をノイズに仕立て上げることが多いのには、このような理由があったわけです。

しかし、和の数が少ない(つまりノイズのファクターが少ない)ならば、そのファクターの分布を調べたほうが正確でしょう。現実では、無限に多くのファクターが合わさっているとは考えられない場合も多く、ある1つのファクターが支配的にノイズを発生している可能性があるのも注意しましょう。

 

 

次に読む記事

最尤推定より更に実用上強力なMAP推定

s0sem0y.hatenablog.com

 

 

分類問題では最小二乗法は用いない

s0sem0y.hatenablog.com