1.1 什么是最小二乘法(least square method)

最小二乘法: 基于均方误差最小化来进行模型求解的方法称为 “最小二乘法(least square method)”。

1.2 线性模型(linear model)基本形式

线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即
f(x)=w1x1+w2x2+...+wdxd+b(1.1) f(\mathbb{x}) = w_1x_1 + w_2x_2+...+w_dx_d+b \tag{1.1} f(x)=w1x1+w2x2+...+wdxd+b(1.1)
一般用向量形式写成
f(x)=wTx+b(1.2) f(\mathbb{x})=\mathbf{w}^\text{T}\mathbf{x}+{b} \tag{1.2} f(x)=wTx+b(1.2)
其中 w=(w1;w2;...;wd)\mathbf{w}=(w_1;w_2;...;w_d)w=(w1;w2;...;wd)w\mathbf{w}wbbb 学得之后,模型就得以确定。

摘录自《机器学习》周志华 著 清华大学出版社

1.3 公式推导 1

假设第 iii 个数据 xix_ixi 对应的真实值为 yiy_iyi,模型的输出值为 f(xi)f(x_i)f(xi),所以我们的目标是使得 f(xi)f(x_i)f(xi) 尽可能等于真实值 yiy_iyi,假设训练后 f(xi)≈yif(x_i) \approx y_if(xi)yi 时,对应的参数为 w∗w^*wb∗b^*b,其中 w∗w^*w 代表一组参数(w1,w2,...,wmw_1,w_2,...,w_mw1,w2,...,wm,其中 mmm 是特征的数目)。

此时 求解目标 可以表示为:
(w∗,b∗)=arg min⁡(w,b)∑i=1m(f(xi)−yi)2=arg min⁡(w,b)∑i=1m(yi−(wxi+b))2(1.3) (w^*,b^*)=\argmin_{(w,b)} \sum_{i=1}^m(f(x_i)-y_i)^2 \\ = \argmin_{(w,b)} \sum_{i=1}^m(y_i - (wx_i+b))^2 \tag{1.3} (w,b)=(w,b)argmini=1m(f(xi)yi)2=(w,b)argmini=1m(yi(wxi+b))2(1.3)

即求解当 E(w,b)=∑i=1m(f(xi)−yi)2E_{(w, b)} = \sum_{i=1}^m(f(x_i)-y_i)^2E(w,b)=i=1m(f(xi)yi)2 取得最小值时参数 w∗w^*wb∗b^*b 的值。

现在分别对这两参数求偏导,可得
∂E(w,b)∂w=2(w∑i=1mxi2−∑i=1m(yi−b)xi)(1.4) \frac{\partial_{E_{(w,b)}}}{\partial_w}=2 \Bigl( w\sum_{i=1}^mx_i^2 - \sum_{i=1}^m(y_i-b)x_i \Bigr) \tag{1.4} wE(w,b)=2(wi=1mxi2i=1m(yib)xi)(1.4)

∂E(w,b)∂b=2(mb−∑i=1m(yi−wxi))(1.5) \frac{\partial_{E_{(w,b)}}}{\partial_b}=2 \Bigl( mb - \sum_{i=1}^m(y_i-wx_i)\Bigr) \tag{1.5} bE(w,b)=2(mbi=1m(yiwxi))(1.5)

当 公式 (1.4) 与 公式 (1.5) 等于 0,可得到 wwwbbb 的最优解的闭式解(closed-form)。

先求解公式 (1.5) ,如下:

2(mb−∑i=1m(yi−wxi))=0⟹mb=∑i=1m(yi−wxi)⟹b=1m∑i=1m(yi−wxi) ⟹b=y‾−wx‾(1.6) 2 \Bigl( mb - \sum_{i=1}^m(y_i-wx_i)\Bigr) = 0 \\ \Longrightarrow mb = \sum_{i=1}^m(y_i-wx_i) \\ \Longrightarrow b = \frac{1}{m} \sum_{i=1}^m(y_i-wx_i) \ \Longrightarrow b = \overline{y} -w\overline{x} \tag{1.6} 2(mbi=1m(yiwxi))=0mb=i=1m(yiwxi)b=m1i=1m(yiwxi) b=ywx(1.6)

再来求解公式 (1.4),需要代入刚刚求解得到的公式 (1.6),

2(w∑i=1mxi2−∑i=1m(yi−b)xi)=0⟹w∑i=1mxi2=∑i=1m(yi−b)xi⟹w∑i=1mxi2=∑i=1m(yi−(y‾−wx‾))xi⟹w∑i=1mxi2=∑i=1m(yi−y‾)xi+wx‾∑i=1mxi⟹w(∑i=1mxi2−x‾∑i=1mxi)=∑i=1m(yi−y‾)xi⟹w=∑i=1m(yi−y‾)xi∑i=1mxi2−x‾∑i=1mxi(1.7) 2 \Bigl( w\sum_{i=1}^m x_i^2 - \sum_{i=1}^m(y_i-b)x_i \Bigr) = 0 \\ \Longrightarrow w\sum_{i=1}^m x_i^2 = \sum_{i=1}^m(y_i-b)x_i \\ \Longrightarrow w\sum_{i=1}^m x_i^2 = \sum_{i=1}^m(y_i- (\overline{y}-w\overline{x}))x_i \\ \Longrightarrow w\sum_{i=1}^m x_i^2 = \sum_{i=1}^m (y_i - \overline{y})x_i + w\overline{x}\sum_{i=1}^m x_i \\ \Longrightarrow w\Bigl(\sum_{i=1}^mx_i^2 - \overline{x}\sum_{i=1}^mx_i\Bigr) = \sum_{i=1}^m(y_i-\overline y)x_i \\ \Longrightarrow w=\frac{\sum_{i=1}^m(y_i-\overline y)x_i}{\sum_{i=1}^mx_i^2 - \overline{x}\sum_{i=1}^mx_i} \tag{1.7} 2(wi=1mxi2i=1m(yib)xi)=0wi=1mxi2=i=1m(yib)xiwi=1mxi2=i=1m(yi(ywx))xiwi=1mxi2=i=1m(yiy)xi+wxi=1mxiw(i=1mxi2xi=1mxi)=i=1m(yiy)xiw=i=1mxi2xi=1mxii=1m(yiy)xi(1.7)

为了方便也可以变形为:
w=∑i=1mxiyi−mx‾ y‾∑i=1mxi2−mx‾2(1.8) w = \frac{\sum_{i=1}^m x_iy_i - m\overline{x} \ \overline{y}}{\sum_{i=1}^mx_i^2 - m\overline{x}^2} \tag{1.8} w=i=1mxi2mx2i=1mxiyimx y(1.8)

也可以变形为:
w=∑i=1m(yi−y‾)xi∑i=1mxi2−x‾∑i=1mxi=∑i=1m(yi−1m∑i=1myi)xi∑i=1mxi2−1m∑i=1mxi∑i=1mxi=∑i=1myi(xi−1m∑i=1nxi)∑i=1mxi2−1m(∑i=1mxi)2=∑i=1myi(xi−x‾)∑i=1mxi2−1m(∑i=1mxi)2(1.9) w=\frac{\sum_{i=1}^m(y_i-\overline y)x_i}{\sum_{i=1}^mx_i^2 - \overline{x}\sum_{i=1}^mx_i} \\ = \frac{\sum_{i=1}^m(y_i - \frac{1}{m}\sum_{i=1}^m y_i)x_i}{\sum_{i=1}^mx_i^2 - \frac{1}{m}\sum_{i=1}^mx_i \sum_{i=1}^mx_i} \\ = \frac{\sum_{i=1}^m y_i(x_i-\frac{1}{m}\sum_{i=1}^n x_i)}{\sum_{i=1}^mx_i^2 - \frac{1}{m}(\sum_{i=1}^mx_i )^2} \\ = \frac{\sum_{i=1}^m y_i(x_i - \overline{x})}{\sum_{i=1}^mx_i^2 - \frac{1}{m}(\sum_{i=1}^mx_i )^2} \tag{1.9} w=i=1mxi2xi=1mxii=1m(yiy)xi=i=1mxi2m1i=1mxii=1mxii=1m(yim1i=1myi)xi=i=1mxi2m1(i=1mxi)2i=1myi(xim1i=1nxi)=i=1mxi2m1(i=1mxi)2i=1myi(xix)(1.9)

1.4 公式推导 2

当样本的特征更多时,上面的推导公式也应做相应的调整,以适应更一般的情况。

假设数据样本集 DDD,每个样本由 ddd 个属性描述,此时学习目标转换为

f(xi)=wTxi+b(1.10) f(x_i) = w^\text{T}x_i + b \tag{1.10} f(xi)=wTxi+b(1.10)

使得 f(xi)≈yif(x_i) \approx y_if(xi)yi

接下来会基于矩阵运算来推导参数的表达式,为了方便,让常量 b∗b^*b 凑如到 w∗w^*w 中,即,原表达式转换为

f(xi)=w1x1+w2x2+⋯+wmxm+b⋅1 f(x_i ) = w_1x_1 + w_2x_2 + \cdots + w_mx_m + b \cdot 1 f(xi)=w1x1+w2x2++wmxm+b1
也就是说,对于原数据集,补充一列全部为 1 的特征,方便乘以孤孤单单无人作伴的 b∗b^*b,此时 X\mathbf{X}X 可表示为:

X=(x11x12x13⋯x1d1x21x22x23⋯x2d1⋮⋮⋮⋱⋮1xm1xm2xm3⋯xmd1)=(x1T1x2T1⋮⋮xmT1) \mathbf{X} = \begin{pmatrix} x_{11} & x_{12} & x_{13} & \cdots & x_{1d} & 1 \\ x_{21} & x_{22} & x_{23} & \cdots & x_{2d} & 1 \\ \vdots & \vdots & \vdots & \ddots & \vdots & 1 \\ x_{m1} & x_{m2} & x_{m3} & \cdots & x_{md} & 1 \\ \end{pmatrix} = \begin{pmatrix} \mathbf{x}_1^\textbf{T} & 1 \\ \mathbf{x}_2^\textbf{T} & 1 \\ \vdots & \vdots \\ \mathbf{x}_m^\textbf{T} & 1 \\ \end{pmatrix} X= x11x21xm1x12x22xm2x13x23xm3x1dx2dxmd1111 = x1Tx2TxmT111

为了方便,记 y=(y1;y2;⋯ ;ym)\mathbf{y} = (y_1; y_2; \cdots;y_m)y=(y1;y2;;ym),接着同样引用最小二乘法,注意此时对矩阵运行不能单纯的平方了,而是转置后相乘。

w^∗=arg min⁡w^(y−Xw^)T(y−Xw^)(1.11) \hat{\mathbf{w}}^* = \argmin_{\hat{\mathbf{w}}}(\mathbf{y}-\mathbf{X\hat{w}})^\text{T}(\mathbf{y}-\mathbf{X\hat{w}}) \tag{1.11} w^=w^argmin(yXw^)T(yXw^)(1.11)

Ew^=(y−Xw^)T(y−Xw^)E_{\hat{\mathbf{w}}}=(\mathbf{y}-\mathbf{X\hat{w}})^\text{T}(\mathbf{y}-\mathbf{X\hat{w}})Ew^=(yXw^)T(yXw^),对 w^\hat{\mathbf{w}}w^ 求导,得

∂Ew^∂w^=2XT(Xw^−y)(1.12) \frac{\partial_{E_{\hat{\mathbf{w}}}}}{\partial_{\hat{\mathbf{w}}}} = 2 \mathbf{X}^{\text{T}}(\mathbf{X}\hat{\mathbf{w}} - \mathbf{y}) \tag{1.12} w^Ew^=2XT(Xw^y)(1.12)

类似地,这里不考虑数据不足、特征量不足、特征量过多的情况,只从数学角度推导,可以得知,当公式 1.12 等于 0 时,得到对应的 w^∗\hat w^*w^

2XT(Xw^−y)=0⟹XTXw^=XTy⟹w^∗=(XTX)−1XTy(1.13) 2 \mathbf{X}^{\text{T}}(\mathbf{X}\hat{\mathbf{w}} - \mathbf{y}) = 0\\ \Longrightarrow \mathbf{X}^{\text{T}}\mathbf{X}\hat{\mathbf{w}} = \mathbf{X}^{\text{T}}\mathbf{y} \\ \Longrightarrow \hat w^* = (\mathbf{X}^{\text{T}}\mathbf{X})^{-1}\mathbf{X}^{\text{T}}\mathbf{y} \tag{1.13} 2XT(Xw^y)=0XTXw^=XTyw^=(XTX)1XTy(1.13)

从第二行到第三行的过程是在等式等号两边分别在左边乘以 (XTX)−1(\mathbf{X}^{\text{T}}\mathbf{X})^{-1}(XTX)1 而得到的。

其中 (XTX)−1(\mathbf{X}^{\text{T}}\mathbf{X})^{-1}(XTX)1 时矩阵 (XTX)(\mathbf{X}^{\text{T}}\mathbf{X})(XTX) 的逆矩阵。

1.5 本章总结

因为验证拟合效果是比较各个点的 预测值 与 真实值之间的差异,为了避免 差异抵消 情况的出现,也是为了求导的方便,对目标表达式平方以后再求最小值时的参数情况更加合理一些。这里的差异抵消是指,前一行预测值比真实值小,而后一行预测值比真实值大,如果简单把差异总和加起来的可能出现抵消的情况,不能反应整体的拟合结果。

此外,这个公式推导的过程应该是比较简单的,可以考虑自己多推导推导,就当做是打发时间好了。

Smileyan
2022.8.26 23:50

`

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐