数据集是
D={(x1,y1),(x2,y2),…,(xm,ym)}其中xi=(xi1;xi2;…;xid),yi∈R
此时试图学得
f(xi)=wTxi+b,使得f(xi)≈yi
也称为多元线性回归
此时可以使用最小二乘法来对 w 和 b 进行估计
步骤:
1:将
2:将数据集 D 表示为一个
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∂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 吸入向量形式
此时可以令 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