这次接着一元线性回归继续介绍多元线性回归,同样还是参靠周志华老师的《机器学习》,把其中我一开始学习时花了较大精力弄通的推导环节详细叙述一下。
本文用到的部分关于向量求导的知识可以参看博文标量、向量、矩阵求导
数据集D={(x1,y1),(x2,y2)⋯(xm,ym)},其中 xi=[x(1)i,x(2)i⋯x(d)i]T 表示一条样本数据有 d 个属性,我们的目标是寻找 d 维列向量 w 和常数 b,使得模型
f(xi)=wTxi+b(1)
所得的预测值与真实值
yi 尽可能接近。
我们可以采用一些小策略把式(2)统一用矩阵和向量表示,把常数 b 放入权值向量 w 得到一个 (d+1) 维的权值向量 w^=(w;b),同时在每个样本实例中添加第 (d+1) 个属性,置为 1,xi^=(xi;1)。将样本所有属性排列为矩阵可以得到:
X=⎡⎣⎢⎢⎢⎢x1^x2^⋮xm^⎤⎦⎥⎥⎥⎥
令
y=(y1,y2⋯ym)T ,同一元线性回归中最小化预测值与真实值误差平方和一样,在多元回归中我们要最小化
||y−Xw^||2
即
w∗=argw^min(y−Xw^)T(y−Xw^)
此处将最小化的目标函数视为
w^ 的“单变量”函数,令
h(w^)=(y−Xw^)T(y−Xw^),求它的最小值只需其对
w^ 求导,导数值为 0 时
w^ 的取值即为所求。
∂h(w^)∂w^=∂[(y−Xw^)T(y−Xw^)]∂w^=2∂(y−Xw^)T∂w^(y−Xw^)=2∂yT∂w^(y−Xw^)−2∂(Xw^)T∂w^(y−Xw^)=0−2XT(y−Xw^)=2XT(Xw^−y)(2)(3)(4)(5)
上述步骤(2)运用了
链接博文的式(9):

步骤(3)简单求导的拆分
步骤(4)第一项中
yT 与
w^ 无关,所以求导为0;第二项运用了
链接博文的式(6):
最后我们令式(5)为0,此时的 w^ 即为所求 w∗
∵2XT(Xw^−y)=2XTXw^−2XTy=0∴XTXw^=XTy∴w^=(XTX)−1XTy∴w∗=(XTX)−1XTy
至此,权值向量被样本集中的数据估计出来了,完成了学习任务,当然此处仍有有待解决的问题:方阵 XTX 只有在满秩时才可逆,而这一条件并非所有学习任务均能满足,可以引进正则化等方法来选择非满秩时多解的 w^。这一点以后再写。
下一篇准备写一下广义线性模型和逻辑回归,keep going!