模型表示
约定记法:
x ( i ) x^{(i)} x(i) 表示输入变量(或输入特征)
y ( i ) y^{(i)} y(i) 表示输出变量(或目标变量)
一个 ( x ( i ) , y ( i ) ) (x^{(i)}, y^{(i)}) (x(i),y(i)) 对是一条训练数据。m条数据组成训练集。
X X X 表示输入空间
Y Y Y 表示输出空间
监督学习的更正式的定义:
给定一个训练集,对于对应的 y y y 值,学习一个函数 h : X → Y h: X \rightarrow Y h:X→Y 使得 h ( x ) h(x) h(x) 是一个好的预测器。
h是单词 hypothesis 的首字母
训练过程
监督学习的两个类型:
当目标变量是连续的,称之为回归问题。
当目标变量是离散的,称之为分类问题。
代价函数
代价函数用来衡量猜想 h ( x ) h(x) h(x) 的正确率。
一种代价函数:
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)=2m1i=1∑m(y^i−yi)2=2m1i=1∑m(hθ(xi)−yi)2
表示预测值和真实值的误差,称之为平方误差函数(Squared error function)或平均平方误差(Mean squared error)
前面乘上 1 2 \frac{1}{2} 21 ,为了方便之后进行梯度下降的计算。对平方的微分导致前面出现乘数2,刚好抵消。
一张图总结:
梯度下降
代价函数的可视化:
目标:找到对应的 θ 0 , θ 1 \theta_0, \theta_1 θ0,θ1 使得代价函数 J ( θ 0 , θ 1 ) J(\theta_0, \theta_1) J(θ0,θ1) 最小
方法:梯度下降法
原理:
- 求代价函数的导数(derivative)
- 沿着梯度(gradient)相反的方向下降。(对应下方算法的减号)
- 参数 α \alpha α 控制学习速率。
算法:
θ 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)
注意:每次迭代,同时更新所有的 θ \theta θ
线性回归中的梯度下降法
将线性回归的代价函数公式
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)=2m1i=1∑m(y^i−yi)2=2m1i=1∑m(hθ(xi)−yi)2
带入到梯度下降法的算法
θ 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)
中,我们得到:
{
\{
{
θ
0
:
=
θ
0
−
α
m
∑
i
=
1
m
(
h
θ
(
x
i
)
−
y
i
)
\theta_0 := \theta_0 -\frac{\alpha}{m}\sum_{i=1}^{m}(h_{\theta}(x_i)-y_i)
θ0:=θ0−mαi=1∑m(hθ(xi)−yi)
θ
1
:
=
θ
1
−
α
m
∑
i
=
1
m
(
(
h
θ
(
x
i
)
−
y
i
)
x
i
)
\theta_1 := \theta_1 -\frac{\alpha}{m}\sum_{i=1}^{m}((h_{\theta}(x_i)-y_i)x_i)
θ1:=θ1−mαi=1∑m((hθ(xi)−yi)xi)
}
\}
}
上述公式的偏微分项的推导:
因为这个方法对每个 θ \theta θ 进行了梯度下降,所以又称为 批量梯度下降法(batch gradient descent)
附:这个方法可能收敛到局部最优,但是因为单变量线性回归模型只有一个最小值,所以必定收敛到全局最优(假设 α \alpha α 足够小。