您的位置:首页 > 其它

机器学习笔记(VI)线性模型(II)多维最小二乘法

2017-12-12 22:37 330 查看
数据集是

D={(x1,y1),(x2,y2),…,(xm,ym)}其中xi=(xi1;xi2;…;xid),yi∈R

此时试图学得

f(xi)=wTxi+b,使得f(xi)≈yi

也称为多元线性回归

此时可以使用最小二乘法来对w和b进行估计

步骤:

1:将w和b吸入向量形式w^=(w;b),

2:将数据集D表示为一个m×(d+1)大小的矩阵X

X=⎛⎝⎜⎜⎜⎜⎜x11x21⋮xm1x12x22⋮xm2……⋱…x1dx2d⋮xmd11⋮1⎞⎠⎟⎟⎟⎟⎟=⎛⎝⎜⎜⎜⎜⎜xT1xT2⋮xTm11⋮1⎞⎠⎟⎟⎟⎟⎟

3:把标记写成向量形式

y=(y1;y2;⋯;ym)

于是类似一维形式

w^∗=argminw^(y−Xw^)T(y−Xw^)

4:令Ew^=(y−Xw^)T(y−Xw^),对w^进行求导

∂Ew^∂w^

展开

(y−Xw^)T(y−Xw^)=(yT−w^TXT)(y−Xw^)=yTy−yTXw^−w^TXTy+w^TXTXw^(1)

如何对式1进行化简

yTy−yTXw^−w^TXTy+w^TXTXw^↓↓(yTy)−(yTXw^+w^TXTy)+(w^TXTXw^)

一共有三个部分

第一个部分:

∂yTy∂w^=0

因为对w^求导,yTy相当于常数,因此求偏导的结果是0

第二个部分:

对于

yTXw^+w^TXTy(2)

在这里yTXw^和w^TXTy都是1×1的矩阵此时

yTXw^=(w^TXTy)T

对于1×1的矩阵A有AT=A

因此对于式(2)有

(2)=2(yTXw^)

于是

∂yTXw^∂w^=?

分开来看

yT=(y1,y2,…,ym);X=⎛⎝⎜⎜⎜⎜⎜x11x21⋮xm1x12x22⋮xm2……⋱…x1dx2d⋮xmd11⋮1⎞⎠⎟⎟⎟⎟⎟;w^=(w1;w2;…;wd;b);

相乘的结果

yTX=(∑i=1mxi1yi,∑i=1mxi2yi…,∑i=1mxidyi,∑i=1myi)(part1)

(part1)w^=(∑i=1mxi1yi,∑i=1mxi2yi…,∑i=1mxidyi,∑i=1myi)×(w1;w2;…;wd;b)=∑j=1d∑i=1mxijyiwj+b∑i=1myi(part1sum)

求导

∂part1sum∂w^=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜∂part1sum∂w1∂part1sum∂w2⋮∂part1sum∂wd∂part1sum∂b⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜∑i=1mxi1yi∑i=1mxi2yi⋮∑i=1mxidyi∑i=1myi⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

结果是一个(d+1)×1的矩阵也就是列向量

而XTy=⎛⎝⎜⎜⎜⎜⎜⎜⎜x11x12⋮x1d1x21x22⋮x2d1⋯⋯⋱⋯⋯xm1xm2⋮xmd1⎞⎠⎟⎟⎟⎟⎟⎟⎟×⎛⎝⎜⎜⎜⎜y1y2⋮ym⎞⎠⎟⎟⎟⎟=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜∑i=1mxi1yi∑i=1mxi2yi⋮∑i=1mxidyi∑i=1myi⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟=∂part1sum∂w^

同样的方法可以得到

∂(w^TXTXw^)∂w^=2XTXw^

于是得到最终结果

∂Ew^w^=2XT(Xw^−y)

5:令求导结果等于0

∂Ew^w^=2XT(Xw^−y)XTXw^=0=XTy

此时如果有解则:XTX必须是可逆矩阵

所以得到:

w^∗=(XTX)−1XTy

因为我们试图学得

f(xi)=wTxi+b,使得f(xi)≈yi

但是我们在前面做出了一些调整:将w和b吸入向量形式w^=(w;b),

此时可以令x^i=(xi;1)可以得到学得的模型是

f(xi)=(w;b)T(xi;1)→f(x^i)=w^Tx^i

然后将w^∗代入

得到:

f(x^i)=((XTX)−1XTy)Tx^i⇕f(x^i)=x^Ti(XTX)−1XTy
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习 数据