머신러닝에서 선형회귀모델의 최소제곱법 학습
📂機械学習머신러닝에서 선형회귀모델의 최소제곱법 학습
概要
線形回帰モデルの学習方法の一つである最小二乗法least squaresを用いた方法を紹介する。
説明
データ集合をX={xi}i=1N、ラベル集合をY={yi}i=1Nとする。そして次のような線形回帰モデルを仮定しよう。
y^=j=0∑n−1wjxj=wTx
このときx=[x0…xn−1]T、w=[w0…wn−1]Tである。最小二乗法とは、モデルの予測値y^i=wTxiと実際の正解であるラベルyiとの誤差の二乗を最小化することによってモデルを学習させる方法だ。すなわち損失関数Jを次のようにMSEとする。
J(w)=21i=1∑N(yi−wTxi)2=21∥y−Xw∥2
このときy=[y1…yN]T、X=[x1…xN]Tである。するとXwは次のようになる。
Xw=x1Tw⋮xNTw
先頭の定数21がつく理由は、Jを微分する際に2が現れるが、これを約分するためだ。どうせJを最小化するのも、21Jを最小化するのも同じだからだ。つまり、目的は与えられたXとYについて、次のような最小二乗解wLSを見つけることだ。
wLS=wargmin(J(w)=21∥y−Xw∥2)
勾配降下法を用いた学習では反復的なiterative approachアルゴリズムを通じて重みを最適解に収束させるのに対して、ここで紹介する方法は解析的に一発で最適解を見つける方法one-shot approachを紹介する。
学習
場合1: 正確で唯一の解が存在
データの数N、重みの次元n、およびXのランクがすべて等しいとしよう。つまりXがフルランクfull rankの場合だ。
N=n=rank(X)
上記の状況で、XはN×Nの正方行列で、ランクがNであるため逆行列を持つ。したがって、連立方程式y=Xwは次のように唯一の解を持つ。
w=X−1y
上記のような重みwに対して、損失関数の関数値は0である。
J(X−1y)=21y−XX−1y2=0
これにより、勾配降下法などを用いずに一発で最適な重みを見つけることができるが、実際の状況ではこのような仮定はほとんど成立しない。つまり理想的な場合と言える。
場合2: フルランクと過剰決定
データの数Nと重みの次元n、およびrank(X)について次のようにしよう。実際には多くの場合でこの仮定が満たされる。
N>n=rank(X)
線形システムXw=yが過剰決定である場合、最小二乗問題の解が無数に存在する。まずJを展開して計算するとベクトルのノルムは、
J(w)=21y−XX−1y2=21(y−Xw)T(y−Xw)=21(yT−wTXT)(y−Xw)=21(yTy−yTXw−wTXTy+wTXTXw)
このときwTXTyはスカラーなので、
wTXTy=(wTXTy)T=yTXw
したがって次を得る。
J(w)=21(yTy−2yTXw+wTXTXw)
数学式でベクトルと行列しか見えないが、上の値はスカラーである。混乱しないように注意しよう。この値が最小になるときを見つけるために勾配を計算すると、
∇J(w)=∂w∂J(w)=21∂w∂(yTy−2yTXw+wTXTXw)=21(−2XTy+2XTXw)=XTXw−XTy
微分計算の結果はここを参照しよう。すると次の式を得る。
∇J=0⟹XTXw=XTy
ここで式XTXw=XTyを正規方程式normal equationと言う。フルランクの場合、この問題は唯一のソリューションを持つ。XTXはn×n行列で、Xと同じランクを持つ。
rank(XTX)=n
したがって逆行列が存在し、次のような最小二乗解を得る。
w=(XTX)−1XTy
場合3: フルランクと不足決定
データの数Nと重みの次元n、およびrank(X)について次のようにしよう。
n>N=rank(X)
すると連立方程式Xw=yは不足決定系である。この場合も場合2と同様に唯一の最小二乗解が存在せず、無数にある。解が無数にあるので、その中でもノルムが最小のwを求めることを目標としよう。
wargmin21∥w∥2
この問題の解法をラグランジュ乗数法でアプローチしよう。すると、我々が持っている制約条件y−Xwに乗数λ=[λ1…λN]Tを掛けたものを足して、次のような関数を最小化する問題となる。
L(w,λ)=21∥w∥2+λT(y−Xw)
Lの勾配は次のようになる。微分計算はここを参照しよう。
∇L=∂w∂L=w−XTλ
したがって微分して0となる重みはw=XTλである。すると次の式を得る。
y=Xw=XXTλ
したがってλ=(XXT)−1yであり、我々が求めるソリューションは次のとおりだ。
w=XT(XXT)−1y
場合4: ランクディフィシェント
ランクディフィシェントであると仮定しよう。
overdetermined: N>n>rank(X)underdetermined: n>N>rank(X)
この場合も同様に最小二乗解は唯一でなく無数に存在する。また、Xがフルランクでないため、XTXの逆行列は存在しない。したがって場合2や場合3のようには解けない。