说明
本系列笔记是笔者在学习2022年6月吴恩达机器学习专项课程时创作的,用以巩固知识点和日后复习。
学习目标
掌握线性回归的原理和实现。
笔记
1 线性回归
线性回归的表达式为:
f
w
,
b
(
x
)
=
w
0
x
0
+
w
1
x
1
+
.
.
.
+
w
n
−
1
x
n
−
1
+
b
f_{\mathbf{w},b}(\mathbf{x}) = w_0x_0 + w_1x_1 +... + w_{n-1}x_{n-1} + b
fw,b(x)=w0x0+w1x1+...+wn−1xn−1+b
矩阵形式是:
f
w
,
b
(
x
)
=
w
⋅
x
+
b
f_{\mathbf{w},b}(\mathbf{x}) = \mathbf{w} \cdot \mathbf{x} + b
fw,b(x)=w⋅x+b
其中,
X
=
(
x
0
(
0
)
x
1
(
0
)
⋯
x
n
−
1
(
0
)
x
0
(
1
)
x
1
(
1
)
⋯
x
n
−
1
(
1
)
⋯
x
0
(
m
−
1
)
x
1
(
m
−
1
)
⋯
x
n
−
1
(
m
−
1
)
)
\mathbf{X} = \begin{pmatrix} x^{(0)}_0 & x^{(0)}_1 & \cdots & x^{(0)}_{n-1} \\ x^{(1)}_0 & x^{(1)}_1 & \cdots & x^{(1)}_{n-1} \\ \cdots \\ x^{(m-1)}_0 & x^{(m-1)}_1 & \cdots & x^{(m-1)}_{n-1} \end{pmatrix}
X=⎝⎜⎜⎜⎛x0(0)x0(1)⋯x0(m−1)x1(0)x1(1)x1(m−1)⋯⋯⋯xn−1(0)xn−1(1)xn−1(m−1)⎠⎟⎟⎟⎞
w
=
(
w
0
w
1
⋯
w
n
−
1
)
\mathbf{w} = \begin{pmatrix} w_0 \\ w_1 \\ \cdots\\ w_{n-1} \end{pmatrix}
w=⎝⎜⎜⎛w0w1⋯wn−1⎠⎟⎟⎞
2 线性回归的损失函数
线性回归的损失函数是均方误差损失: J ( w , b ) = 1 2 m ∑ i = 0 m − 1 ( f w , b ( x ( i ) ) − y ( i ) ) 2 J(\mathbf{w},b) = \frac{1}{2m} \sum\limits_{i = 0}^{m-1} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)})^2 J(w,b)=2m1i=0∑m−1(fw,b(x(i))−y(i))2
3 线性回归的梯度下降
w
j
=
w
j
−
α
∂
J
(
w
,
b
)
∂
w
j
(1)
w_j = w_j - \alpha \frac{\partial J(\mathbf{w},b)}{\partial w_j} \tag{1}
wj=wj−α∂wj∂J(w,b)(1)
b
=
b
−
α
∂
J
(
w
,
b
)
∂
b
(2)
b = b - \alpha \frac{\partial J(\mathbf{w},b)}{\partial b} \tag{2}
b=b−α∂b∂J(w,b)(2)
其中,
∂
J
(
w
,
b
)
∂
w
j
=
1
m
∑
i
=
0
m
−
1
(
f
w
,
b
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
(3)
\frac{\partial J(\mathbf{w},b)}{\partial w_j} = \frac{1}{m} \sum\limits_{i = 0}^{m-1} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)})x_{j}^{(i)} \tag{3}
∂wj∂J(w,b)=m1i=0∑m−1(fw,b(x(i))−y(i))xj(i)(3)
∂
J
(
w
,
b
)
∂
b
=
1
m
∑
i
=
0
m
−
1
(
f
w
,
b
(
x
(
i
)
)
−
y
(
i
)
)
(4)
\frac{\partial J(\mathbf{w},b)}{\partial b} = \frac{1}{m} \sum\limits_{i = 0}^{m-1} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)})\tag{4}
∂b∂J(w,b)=m1i=0∑m−1(fw,b(x(i))−y(i))(4)
4 多项式回归(Polynomial Regression)
利用特征工程,线性回归可以拟合复杂的非线性方程。
4.1 特征工程(Feature Engineering)
什么是特征工程?
根据学科知识,将现有的特征变量x进行某种变换形成新的特征的过程就是特征工程。
怎么选择特征变量?
识别重要的特征看其权重,如果权重的绝对值越大,该特征的重要性越大。
注意:
特征工程后要对新构建的特征进行缩放以加快梯度下降。
4.2 多项式回归
泰勒展开式
5 正则化的线性回归
在线性回归模型中使用正则化技术可以减小过拟合,通过向损失函数添加正则化项来实现。(损失函数变了,梯度下降中求偏导数的公式也要发生相应的变化)
5.1 计算损失
向线性回归的损失函数
J
(
w
,
b
)
J(\mathbf{w},b)
J(w,b)中添加L2正则化项
λ
2
m
∑
j
=
0
n
−
1
w
j
2
\frac{\lambda}{2m} \sum_{j=0}^{n-1} w_j^2
2mλ∑j=0n−1wj2 :
J
(
w
,
b
)
=
1
2
m
∑
i
=
0
m
−
1
(
f
w
,
b
(
x
(
i
)
)
−
y
(
i
)
)
2
+
λ
2
m
∑
j
=
0
n
−
1
w
j
2
J(\mathbf{w},b) = \frac{1}{2m} \sum\limits_{i = 0}^{m-1} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)})^2 + \frac{\lambda}{2m} \sum_{j=0}^{n-1} w_j^2
J(w,b)=2m1i=0∑m−1(fw,b(x(i))−y(i))2+2mλj=0∑n−1wj2
5.2 梯度下降
正则化也影响了线性回归的梯度下降中L对w的偏导数的计算:
w
j
=
w
j
−
α
∂
J
(
w
,
b
)
∂
w
j
w_j = w_j - \alpha \frac{\partial J(\mathbf{w},b)}{\partial w_j}
wj=wj−α∂wj∂J(w,b)
∂ J ( w , b ) ∂ w j = 1 m ∑ i = 0 m − 1 ( f w , b ( x ( i ) ) − y ( i ) ) x j ( i ) + λ m w j \frac{\partial J(\mathbf{w},b)}{\partial w_j} = \frac{1}{m} \sum\limits_{i = 0}^{m-1} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)})x_{j}^{(i)} + \frac{\lambda}{m} w_j ∂wj∂J(w,b)=m1i=0∑m−1(fw,b(x(i))−y(i))xj(i)+mλwj
其中, λ \lambda λ控制正则化的强度, λ \lambda λ越大,模型越平滑,减小过拟合; λ = 0 \lambda=0 λ=0时,正则项为0,模型不受正则化影响。
需要注意的地方
- 线性回归不适合用于解决分类问题;
- 特征工程部分之后需要补充。