1. 机器学习
“A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.”
- 监督学习:回归/分类(已知训练集对应的正确答案)
- 回归:预测一个连续值,即试图将输入变量和输出用一个连续函数对应起来。参考课程中的房价预测。
- 分类:预测一个离散值,即试图将输入变量与离散的类别对应起来。参考课程中的癌症恶性和良性预测。
(支持向量机SVM:让计算机处理无限多特征)
- 非监督学习:聚类(数据集无标签)/ 降维
- 强化学习
2. 单变量线性回归
2.1 模型表示(监督学习问题)
给定训练集,学习函数
h
:
X
→
Y
h:X→Y
h:X→Y,使
h
(
x
)
h(x)
h(x)是对应
y
y
y值的“良好”预测因子:
+ 若要预测的目标变量是连续的(ex.预测住房价格):回归问题
+ 若
y
y
y只能采用少量离散值时(ex.给定居住面积,预测某个住宅是房子还是公寓):分类问题
单变量线性回归模型: h θ ( x ) = θ 0 + θ 1 x h_\theta (x) = \theta_0 + \theta_1 x hθ(x)=θ0+θ1x
2.2 代价函数(ex.平方误差函数)
a. 直线方程假设:
h
θ
(
x
)
=
θ
0
+
θ
1
x
h_\theta (x) = \theta_0 + \theta_1 x
hθ(x)=θ0+θ1x
b. 代价函数定义:
J
(
θ
0
,
θ
1
)
=
1
2
m
∑
i
=
1
m
(
y
^
(
i
)
−
y
(
i
)
)
2
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m (\hat y^{(i)}−y^{(i)})^2=\frac{1}{2m}\sum_{i=1}^m (h_\theta(x^{(i)})−y^{(i)})^2
J(θ0,θ1)=2m1∑i=1m(y^(i)−y(i))2=2m1∑i=1m(hθ(x(i))−y(i))2
with
m
=
2
m=2
m=2
c. 优化目标:
arg
m
i
n
θ
0
,
θ
1
J
(
θ
0
,
θ
1
)
\arg min_{\theta_0,\theta_1} J(\theta_0,\theta_1)
argminθ0,θ1J(θ0,θ1)
⚠️
1
2
\frac{1}{2}
21用于抵消平方函数的导数项以方便计算梯度下降。
2.3 梯度下降
- 基本步骤:
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) \theta_j:=\theta_j−\alpha \frac{\partial}{\partial \theta_j} J(\theta_0,\theta_1) θj:=θj−α∂θj∂J(θ0,θ1)
step1 : 初始化 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1,比如 θ 0 = 0 , θ 1 = 0 \theta_0=0,\theta_1=0 θ0=0,θ1=0
step2 : 沿着梯度下降的方向,不断更新 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1,从而使得 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1)不断减少,最终达到最小(全局或者局部最小)值。
⚠️同步更新所有
θ
\theta
θ值(
J
(
θ
0
,
θ
1
)
J(\theta_0,\theta_1)
J(θ0,θ1)在所有
θ
\theta
θ更新完后重新计算)
⚠️代价函数为凸函数:全局极小值
2. 学习率
α
\alpha
α:
控制每次更新
θ
0
,
θ
1
\theta_0,\theta_1
θ0,θ1的幅度。
α
\alpha
α太小:容易造成训练时间过长,收敛过慢
α
\alpha
α太大:容易造成不收敛,甚至发散
- 梯度下降应用于线性回归:
θ 0 : = θ 0 − α ∂ ∂ θ 0 J ( θ 0 ) = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \theta_0:=\theta_0−\alpha \frac{\partial}{\partial \theta_0} J(\theta_0)=\theta_0 − \alpha \frac{1}{m} \sum^m_{i=1} (h_\theta(x^{(i)})−y^{(i)}) θ0:=θ0−α∂θ0∂J(θ0)=θ0−αm1∑i=1m(hθ(x(i))−y(i))
θ 1 : = θ 1 − α ∂ ∂ θ 1 J ( θ 1 ) = θ 1 − α 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y i ) x ( i ) ) \theta_1:=\theta_1−\alpha \frac{\partial}{\partial \theta_1} J(\theta_1)=\theta_1 − \alpha \frac{1}{m} \sum^m_{i=1} ((h_\theta(x^{(i)})−y_i)x^{(i)}) θ1:=θ1−α∂θ1∂J(θ1)=θ1−αm1∑i=1m((hθ(x(i))−yi)x(i))
- 批量(batch)梯度下降:
指的是在梯度下降的每一步中,我们都用到了所有的训练样本。
3. 矩阵基础
- 矩阵的乘法不满足交换律:
A
×
B
≠
B
×
A
A \times B \neq B \times A
A×B=B×A
满足结合律: A × ( B × C ) = ( A × B ) × C A \times (B \times C) = (A \times B) \times C A×(B×C)=(A×B)×C - 矩阵转置:
(
A
±
B
)
T
=
A
T
±
B
T
(A \pm B)^T=A^T \pm B^T
(A±B)T=AT±BT
( A × B ) T = B T × A T (A \times B)^T=B^T \times A^T (A×B)T=BT×AT
⚠️补充:凸优化 [待完善] 链接