• 《机器学习——数学公式推导合集》1. 最小二乘法(least square method)求解线性模型


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

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

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

    线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即
    f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + 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 ) = w T x + b (1.2) f(\mathbb{x})=\mathbf{w}^\text{T}\mathbf{x}+{b} \tag{1.2} f(x)=wTx+b(1.2)
    其中 w = ( w 1 ; w 2 ; . . . ; w d ) \mathbf{w}=(w_1;w_2;...;w_d) w=(w1;w2;...;wd) w \mathbf{w} w b b b 学得之后,模型就得以确定。

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

    1.3 公式推导 1

    假设第 i i i 个数据 x i x_i xi 对应的真实值为 y i y_i yi,模型的输出值为 f ( x i ) f(x_i) f(xi),所以我们的目标是使得 f ( x i ) f(x_i) f(xi) 尽可能等于真实值 y i y_i yi,假设训练后 f ( x i ) ≈ y i f(x_i) \approx y_i f(xi)yi 时,对应的参数为 w ∗ w^* w b ∗ b^* b,其中 w ∗ w^* w 代表一组参数( w 1 , w 2 , . . . , w m w_1,w_2,...,w_m w1,w2,...,wm,其中 m m m 是特征的数目)。

    此时 求解目标 可以表示为:
    ( w ∗ , b ∗ ) = arg min ⁡ ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 = arg min ⁡ ( w , b ) ∑ i = 1 m ( y i − ( w x i + 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 = 1 m ( f ( x i ) − y i ) 2 E_{(w, b)} = \sum_{i=1}^m(f(x_i)-y_i)^2 E(w,b)=i=1m(f(xi)yi)2 取得最小值时参数 w ∗ w^* w b ∗ b^* b 的值。

    现在分别对这两参数求偏导,可得
    ∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) (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 ( m b − ∑ i = 1 m ( y i − w x i ) ) (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,可得到 w w w b b b 的最优解的闭式解(closed-form)。

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

    2 ( m b − ∑ i = 1 m ( y i − w x i ) ) = 0 ⟹ m b = ∑ i = 1 m ( y i − w x i ) ⟹ b = 1 m ∑ i = 1 m ( y i − w x i )   ⟹ b = y ‾ − w x ‾ (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 = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) = 0 ⟹ w ∑ i = 1 m x i 2 = ∑ i = 1 m ( y i − b ) x i ⟹ w ∑ i = 1 m x i 2 = ∑ i = 1 m ( y i − ( y ‾ − w x ‾ ) ) x i ⟹ w ∑ i = 1 m x i 2 = ∑ i = 1 m ( y i − y ‾ ) x i + w x ‾ ∑ i = 1 m x i ⟹ w ( ∑ i = 1 m x i 2 − x ‾ ∑ i = 1 m x i ) = ∑ i = 1 m ( y i − y ‾ ) x i ⟹ w = ∑ i = 1 m ( y i − y ‾ ) x i ∑ i = 1 m x i 2 − x ‾ ∑ i = 1 m x i (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 = 1 m x i y i − m x ‾   y ‾ ∑ i = 1 m x i 2 − m x ‾ 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 = 1 m ( y i − y ‾ ) x i ∑ i = 1 m x i 2 − x ‾ ∑ i = 1 m x i = ∑ i = 1 m ( y i − 1 m ∑ i = 1 m y i ) x i ∑ i = 1 m x i 2 − 1 m ∑ i = 1 m x i ∑ i = 1 m x i = ∑ i = 1 m y i ( x i − 1 m ∑ i = 1 n x i ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 = ∑ i = 1 m y i ( x i − x ‾ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 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

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

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

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

    使得 f ( x i ) ≈ y i f(x_i) \approx y_i f(xi)yi

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

    f ( x i ) = w 1 x 1 + w 2 x 2 + ⋯ + w m x m + 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 = ( x 11 x 12 x 13 ⋯ x 1 d 1 x 21 x 22 x 23 ⋯ x 2 d 1 ⋮ ⋮ ⋮ ⋱ ⋮ 1 x m 1 x m 2 x m 3 ⋯ x m d 1 ) = ( x 1 T 1 x 2 T 1 ⋮ ⋮ x m T 1 ) \mathbf{X} = (x11x12x13x1d1x21x22x23x2d11xm1xm2xm3xmd1) = (xT11xT21xTm1) X= x11x21xm1x12x22xm2x13x23xm3x1dx2dxmd1111 = x1Tx2TxmT111

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

    w ^ ∗ = arg min ⁡ w ^ ( y − X w ^ ) T ( y − X w ^ ) (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)

    E w ^ = ( y − X w ^ ) T ( y − X w ^ ) 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^ 求导,得

    ∂ E w ^ ∂ w ^ = 2 X T ( X w ^ − 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^

    2 X T ( X w ^ − y ) = 0 ⟹ X T X w ^ = X T y ⟹ w ^ ∗ = ( X T X ) − 1 X T y (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)

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

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

    1.5 本章总结

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

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

    Smileyan
    2022.8.26 23:50

    `

  • 相关阅读:
    运动耳机哪种佩戴方式好?佩戴稳固舒适的运动耳机
    No module named ‘pyqt5‘解决办法
    计网第四章(网络层)(九)
    无人机航迹规划:五种最新智能优化算法(SWO、COA、LSO、GRO、LO)求解无人机路径规划MATLAB
    MySQL的InnoDB存储引擎中的自适应哈希索引技术
    5年测试,面试结束后被HR怼了..(心塞)
    牛客网SQL大厂真题—SQL158:每类视频近一个月的转发量/率
    系统与应用监控的缜密思路
    鼠标划过改变子元素的属性 vue
    气象站有什么用?有哪些类型
  • 原文地址:https://blog.csdn.net/smileyan9/article/details/126510725