1.最小二乘法
最小二乘法其实就是利用误差最小化求解线性回归参数的方法。
一元多维线性回归:
Y
=
∑
i
=
1
d
a
i
⋅
X
i
+
a
d
+
1
Y=\sum_{i=1}^{d} a_{i} \cdot X_{i}+a_{d+1}
Y=i=1∑dai⋅Xi+ad+1
分析其中一维:
y
j
=
∑
i
=
1
d
a
i
⋅
x
j
i
+
a
d
+
1
+
ϵ
j
y_{j}=\sum_{i=1}^{d} a_{i} \cdot x_{j i}+a_{d+1}+\epsilon_{j}
yj=i=1∑dai⋅xji+ad+1+ϵj
以
U
U
U代表
N
×
(
d
+
1
)
N \times (d+1)
N×(d+1)的自变量矩阵,以
A
A
A 代表
(
d
+
1
)
×
1
(d+1) \times 1
(d+1)×1 的系数矩阵
(
a
1
.
.
.
a
d
+
1
)
T
(a_{1}...a_{d+1})^{T}
(a1...ad+1)T。那么误差的目标函数为:
L
(
A
)
=
1
2
∣
Y
−
U
⋅
A
∣
2
L(A) = \frac{1}{2}{\left| {Y - U \cdot A} \right|^2}
L(A)=21∣Y−U⋅A∣2
想要求误差最小值,那么就对L(A) 求偏导:
∂ L ( A ) ∂ A = 1 2 ∂ ∣ Y − U ⋅ A ∣ 2 ∂ A = − U T ( Y − U ⋅ A ) \frac{{\partial L(A)}}{{\partial A}} = \frac{1}{2}\frac{{\partial {{\left| {Y - U \cdot A} \right|}^2}}}{{\partial A}} = - {U^T}(Y - U \cdot A) ∂A∂L(A)=21∂A∂∣Y−U⋅A∣2=−UT(Y−U⋅A)
令 ∂ L ( A ) ∂ A = 0 \frac{{\partial L(A)}}{{\partial A}}=0 ∂A∂L(A)=0,得到最优参数为:
A
=
(
U
T
⋅
U
)
−
1
⋅
(
U
T
⋅
Y
)
A=\left(U^{T} \cdot U\right)^{-1} \cdot\left(U^{T} \cdot Y\right)
A=(UT⋅U)−1⋅(UT⋅Y)
算出A即可得到最终的回归方程。
这里附上通俗易懂的最小二乘法解释:link
2.梯度下降法
主要用于优化损失函数
l
(
i
)
(
w
,
b
)
=
1
2
(
y
^
(
i
)
−
y
(
i
)
)
2
l^{(i)}(\mathbf{w}, b)=\frac{1}{2}\left(\hat{y}^{(i)}-y^{(i)}\right)^{2}
l(i)(w,b)=21(y^(i)−y(i))2$
L ( w , b ) = 1 n ∑ i = 1 n l ( i ) ( w , b ) = 1 n ∑ i = 1 n 1 2 ( w ⊤ x ( i ) + b − y ( i ) ) 2 L(\mathbf{w}, b)=\frac{1}{n} \sum_{i=1}^{n} l^{(i)}(\mathbf{w}, b)=\frac{1}{n} \sum_{i=1}^{n} \frac{1}{2}\left(\mathbf{w}^{\top} \mathbf{x}^{(i)}+b-y^{(i)}\right)^{2} L(w,b)=n1i=1∑nl(i)(w,b)=n1i=1∑n21(w⊤x(i)+b−y(i))2
迭代公式:
(
w
,
b
)
←
(
w
,
b
)
−
η
∣
B
∣
∑
i
∈
B
∂
(
w
,
b
)
l
(
i
)
(
w
,
b
)
(\mathbf{w}, b) \leftarrow(\mathbf{w}, b)-\frac{\eta}{|\mathcal{B}|} \sum_{i \in \mathcal{B}} \partial_{(\mathbf{w}, b)} l^{(i)}(\mathbf{w}, b)
(w,b)←(w,b)−∣B∣ηi∈B∑∂(w,b)l(i)(w,b)
字面来讲就是,下一次迭代的代入值是函数在上一次的代入值减去在该点的导数乘以学习率
学习率。
(
η
\eta
η): 代表在每次优化中,能够学习的步长的大小 ,一般设置小于1,批量大小(
B
B
B): 是小批量计算中的批量大小。
不太好懂,再附一个通俗易懂的链接吧:link
2.1可视化展示梯度下降法
用一个一元函数的例子尝试一下梯度下降法找极值点:
每次迭代所得到的数值都会变小,越来越接近极值点。
循环迭代的效果:
换一个方向看看结果怎么样:
最后还是会收敛到x=-4这个极值点
下面试一下三维的:
f
(
x
1
,
x
2
)
=
x
1
4
+
x
2
4
+
2
f(x1,x2)=x_1^4+x_2^4+2
f(x1,x2)=x14+x24+2
表面图像是这样的:
用梯度下降法求极值点:
效果图如下:
多元函数就是把自变量变成了矩阵,就可以得到上面的式子了,图没办法画,自行脑补吧。
3.最小二乘法和梯度下降法结合
最小二乘法是为了求解最优的超平面,然后用梯度下降法可以求得极值点的数值解,也就是求解最小二乘法的各个参数。