概述
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=1∑m(f(xi)−yi)2=(w,b)argmini=1∑m(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( wsum_{i=1}^mx_i^2 - sum_{i=1}^m(y_i-b)x_i Bigr) tag{1.4}
∂w∂E(w,b)=2(wi=1∑mxi2−i=1∑m(yi−b)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} ∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi))(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} -woverline{x} tag{1.6} 2(mb−i=1∑m(yi−wxi))=0⟹mb=i=1∑m(yi−wxi)⟹b=m1i=1∑m(yi−wxi) ⟹b=y−wx(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( wsum_{i=1}^m x_i^2 - sum_{i=1}^m(y_i-b)x_i Bigr) = 0 \ Longrightarrow wsum_{i=1}^m x_i^2 = sum_{i=1}^m(y_i-b)x_i \ Longrightarrow wsum_{i=1}^m x_i^2 = sum_{i=1}^m(y_i- (overline{y}-woverline{x}))x_i \ Longrightarrow wsum_{i=1}^m x_i^2 = sum_{i=1}^m (y_i - overline{y})x_i + woverline{x}sum_{i=1}^m x_i \ Longrightarrow wBigl(sum_{i=1}^mx_i^2 - overline{x}sum_{i=1}^mx_iBigr) = 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=1∑mxi2−i=1∑m(yi−b)xi)=0⟹wi=1∑mxi2=i=1∑m(yi−b)xi⟹wi=1∑mxi2=i=1∑m(yi−(y−wx))xi⟹wi=1∑mxi2=i=1∑m(yi−y)xi+wxi=1∑mxi⟹w(i=1∑mxi2−xi=1∑mxi)=i=1∑m(yi−y)xi⟹w=∑i=1mxi2−x∑i=1mxi∑i=1m(yi−y)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 - moverline{x} overline{y}}{sum_{i=1}^mx_i^2 - moverline{x}^2} tag{1.8}
w=∑i=1mxi2−mx2∑i=1mxiyi−mx 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=1mxi2−x∑i=1mxi∑i=1m(yi−y)xi=∑i=1mxi2−m1∑i=1mxi∑i=1mxi∑i=1m(yi−m1∑i=1myi)xi=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−m1∑i=1nxi)=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−x)(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+b⋅1
也就是说,对于原数据集,补充一列全部为 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} = 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= x11x21⋮xm1x12x22⋮xm2x13x23⋮xm3⋯⋯⋱⋯x1dx2d⋮xmd1111 = x1Tx2T⋮xmT11⋮1
为了方便,记 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{Xhat{w}})^text{T}(mathbf{y}-mathbf{Xhat{w}}) tag{1.11} w^∗=w^argmin(y−Xw^)T(y−Xw^)(1.11)
令 E w ^ = ( y − X w ^ ) T ( y − X w ^ ) E_{hat{mathbf{w}}}=(mathbf{y}-mathbf{Xhat{w}})^text{T}(mathbf{y}-mathbf{Xhat{w}}) Ew^=(y−Xw^)T(y−Xw^),对 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)=0⟹XTXw^=XTy⟹w^∗=(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
`
最后
以上就是鲤鱼仙人掌为你收集整理的《机器学习——数学公式推导合集》1. 线性模型之最小二乘法(least square method)求解线性模型的全部内容,希望文章能够帮你解决《机器学习——数学公式推导合集》1. 线性模型之最小二乘法(least square method)求解线性模型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复