代码改变世界

最小二乘法least square

2016-03-01 11:37  GarfieldEr007  阅读(614)  评论(0编辑  收藏  举报

上研究生的时候接触的第一个Loss function就是least square。最近又研究了一下,做个总结吧。

定义看wiki就够了。公式如下

E(w)=12n=1N{yxWT}2E(w)=12∑n=1N{y−xWT}2

其中yy代表类标列向量,xx代表特征行向量,WW代表回归或者分类参数矩阵。通过令欧式距离最小化优化得到最优的WW。

我遇到的第一个问题是,这个公式是怎么得到的,motivation是什么。我个人倾向于最大似然这个角度来解释。具体如下:

假设回归或分类模型公式如下:

y=WTx+ϵy=WTx+ϵ

ϵN(0,σ2)ϵ∼N(0,σ2)代表加性高斯噪声,所以yN(WTx,σ2)y∼N(WTx,σ2)。这时通过独立观测xx得到一系列的观测值X=(x1,y1).,(xN,yN)X=(x1,y1)….,(xN,yN),则可写出对应的似然函数

p(yX,w,σ)=ΠNn=1N(WTx,σ2)p(y∣X,w,σ)=Πn=1NN(WTx,σ2)

两边同取自然对数,则

ln(p(yX,w,σ))=i=1Nln(N(WTx,σ2))ln(p(y∣X,w,σ))=∑i=1Nln(N(WTx,σ2))

N(WTx,σ2)=12πσ2√exp((yWTx2)2σ2)N(WTx,σ2)=12πσ2exp⁡(−(y−WTx)22σ2)

ln(p(yX,w,σ))=12σ2n=1N{ynWTxn}212ln(2πσ2)ln(p(y∣X,w,σ))=−12σ2∑n=1N{yn−WTxn}2−12ln(2πσ2)

最大似然函数,求解W,

W=argminW12σ2n=1N{ynWTxn}212ln(2πσ2)W∗=argminW−12σ2∑n=1N{yn−WTxn}2−12ln(2πσ2)

上式中第二项与WW无关,可以省略,故

W=argminW12σ2n=1N{ynWTxn}2W∗=argminW−12σ2∑n=1N{yn−WTxn}2

把上式中的σ2σ2取掉,就是我们熟悉的最小二乘法啦。

求解时,对对数似然函数求偏导(注意矩阵求导的规则)

ln(p(yX,w,σ))=Nn=1{ynWTxn}xTn∇ln(p(y∣X,w,σ))=−∑n=1N{yn−WTxn}xnT 令上式为0,则有

n=1NynxTn=WTn=1NxnxTn∑n=1NynxnT=WT∑n=1NxnxnT

两边同取矩阵的逆,则有: Nn=1xnyTn=Nn=1xnxTnW∑n=1NxnynT=∑n=1NxnxnTW

如果用YY表示类标矩阵,XX表示特征矩阵,则有 XYT=XXTWXYT=XXTW W=(XXT)1XYTW=(XXT)−1XYT

上面的公式称为normal equation。可以求得WW的封闭解,但是只要做过实验的都知道,如果XX的维数稍微一大,求逆的过程非常非常非常慢,且要消耗非常非常多的资源。所以WW一般用梯度下降法求解。

最大似然法在一定程度上证明了最小二乘法的合理性,但是事实上在历史上最小二乘的出现早于前者,所以可以从其它的角度思考一下最小二乘的合理性。比如最小二乘的几何意义,这篇文章讲的挺好的,看了之后受益匪浅。

 

from: http://bucktoothsir.github.io/blog/2015/12/04/leastsquare/