在多元线性回归部分,西瓜书的省略实在是太多了,有时候会让读者很无奈。这篇博客便针对这些问题进行详细的解答,希望对大家理解西瓜书有帮助。
在多元线性回归这一章节中,或许是囿于篇幅,西瓜书中(1)没有解释清楚w和b怎么组合成w^的(注:此处的w和w^都是向量,因为这是多元线性回归了)(2)没有解释损失函数Ew^怎么来的。(3)没有解释为什么∂w^∂Ew^=0时,就有最小值。
1、w向量和b组合成w^向量
对于多元的情况,我们可以的到一个回归公式,
f(xi)=wTxi+b,因为w和x都是列向量,所以我们可以将其展开,得到如下的式子。f(xi)=w1xi1+w2xi2+⋯+wdxid+b i代表第几个样本,d代表样本的维度。
令b=wd+1⋅1,所以f(xi)又可以变成如下的式子:
f(xi^)=w^T(w1w2⋯wdwd+1)xi^⎝⎜⎜⎜⎜⎜⎛xi1xi2⋮xid1⎠⎟⎟⎟⎟⎟⎞=w^T⋅xi^
所以我们这样就表示出了w^和x^
2、损失函数Ew^的“前世今生”
损失函数Ew^=i=1∑m(yi−f(xi^))2=i=1∑m(yi−w^Txi^)2但这和西瓜书上的损失函数表达式不同,所以还应该进行恒等变形。所以我们现在求得的就是损失函数的“前世”了。由上一篇博客可知,一个求和符号就代表了两个向量相乘。所以我们接下来进行向量化。
2.1、向量化
首先我们先来定义一个矩阵X和向量y:
X=⎝⎜⎜⎜⎜⎜⎛x11x21⋮xm1x12x22⋮xm2x13x23⋮xm3⋯⋯⋱⋯x1dx2d⋮xmd11⋮1⎠⎟⎟⎟⎟⎟⎞=⎝⎜⎜⎜⎛x1Tx2T⋮xmT111⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x1^Tx2^T⋮xm^T⎠⎟⎟⎟⎞
y=⎝⎜⎜⎜⎜⎜⎛y1y2y3⋮ym⎠⎟⎟⎟⎟⎟⎞
准备工作结束了,我们先将Ew^的求和项展开成矩阵相乘的形式。
Ew^=(y1−w^Tx1^)2+(y2−w^Tx2^)2+⋯+(ym−w^Txm^)2
Ew^=[(y1−w^Tx1^)(y1−w^Tx1^)⋯(ym−w^Txm^)]⎣⎢⎢⎢⎡(y1−w^Tx1^)(y2−w^Tx2^)⋮(ym−w^Txm^)⎦⎥⎥⎥⎤
再对里面的小项进行恒等变形,
⎣⎢⎢⎢⎡(y1−w^Tx1^)(y2−w^Tx2^)⋮(ym−w^Txm^)⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡y1y2y3⋮ym⎦⎥⎥⎥⎥⎥⎤−⎣⎢⎢⎢⎡w^Tx1^w^Tx2^⋮w^Txm^⎦⎥⎥⎥⎤=y−⎣⎢⎢⎢⎡w^Tx1^w^Tx2^⋮w^Txm^⎦⎥⎥⎥⎤
发现w^Txi^是一个标量而非向量,根据矩阵转置的法则,标量转置还是等于原先的标量。所以我们就把w^Txi^转置成xi^Tw^再进行恒等变形。
⎣⎢⎢⎢⎡w^Tx1^w^Tx2^⋮w^Txm^⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x1^Tw^x2^Tw^⋮xm^Tw^⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x1^Tx2^T⋮xm^T⎦⎥⎥⎥⎤w^=X⋅w^
所以损失函数Ew^的“今生”就得到了,
Ew^=(y−Xw^)T(y−Xw^)
3、证明损失函数为凸函数
证明多元函数为凸函数的方法与证明一元函数(详情请见一元线性回归(一))有所不同,又有点相似之处。
最大的不同之处就是一元函数求偏导,是对标量求偏导;而多元则是对向量求偏导,所以这里要补充一些概念(只是图有点多而已,概念不难只需了解就好)。





下面的这个公式将用来恒等变形(公式里的x,a,B都是矩阵或者向量)
现在可以开始着手证明Ew^是个凸函数了。
∂w^∂Ew^=∂w^∂(y−Xw^)T(y−Xw^)
恒等变形,得
∂w^∂Ew^=∂w^∂(−yTXw^−w^TXTy+w^TXTXw^)
再用上面给出的公式对每一项进行化简,最后得,
∂w^∂Ew^=2XT(Xw^−y)
一阶导数已经求出来了,但是根据多元函数凹凸性的定理,我们需要求出二阶导数,所以继续求偏导。
∂w^∂(∂w^∂Ew^)=∂w^∂[2XT(Xw^−y)]=∂w^∂(2XTXw^)
再次利用公式,所以
∂w^∂(∂w^∂Ew^)=2XTX(Hession矩阵)
根据多元函数凹凸性判定定理,Hession矩阵需要是正定矩阵,这样才能证明是凸函数,事实上Hession矩阵不一定是正定矩阵,因为X代表的是我们的样本数据,如果没有经过处理的话,是很难符合条件的。所以西瓜书为了简便起见,直接假设Hession矩阵是正定的。
我们同样也假设Hession矩阵是正定的,那么根据判定定理,损失函数应该为凸函数。
再由凸充分性定理可知当一阶导数=0时,w^为全局解。
∂w^∂Ew^=2XT(Xw^−y)=0
XTXw^=XTy
w^=(XTX)−1XTy
花了一下午写这篇博客,深感疲惫,得抱着我的吉他弹弹“5323”了
