符号定义:
单变量线性回归,也叫univariate regression
符号定义:
选取 θ 0 θ_0 θ0, θ 1 θ_1 θ1,使得对于训练样本 ( x , y ) (x, y) (x,y),有 h θ ( x ) h_θ(x) hθ(x)接近 y y y
平方误差代价函数(square error cost function)【垂直距离之和】:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0,\theta_1)=\frac{1}{2m}\displaystyle\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
线性回归目标:
min θ 0 , θ 1 J ( θ 0 , θ 1 ) \min_{\theta_0, \theta_1}J(\theta_0,\theta_1) θ0,θ1minJ(θ0,θ1)
平方误差代价函数是线性回归的常用代价函数
*损失函数≠代价函数
- 损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。
- 代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
- 目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。
来源:【机器学习】代价函数,损失函数,目标函数区别
线性回归的代价函数是碗状(bow-shaped)曲面(凸函数,convex function)
为便于分析,使用等高线图(Contour Plots)展示
用于最小化代价函数J
适用于线性回归和机器学习等问题
outline
梯度下降的特点:初始值的差异可能导致收敛至不同的局部最小值
梯度下降算法:
repeat until convergence {
θ 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) (for j j j = 0 and j j j = 1)
}
上式中, α \alpha α为学习速率(learning rate)
梯度下降的正确计算方法:同时更新(Simultaneous Update)
先计算参数的更新值(即上式赋值符号右边的部分),所有参数的更新值计算完成后,再更新参数【避免先更新参数后计算梯度值导致错误】
学习率低:收敛速度慢
学习率高:可能错过最低点,或导致无法收敛,甚至发散
即使学习率不变,在接近最低点的过程中,随着偏导数的值的不断变小(即曲线越来越平缓),每一步的参数更新的幅度会越来越小
线性回归的梯度下降参数更新公式:
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \theta_0:=\theta_0-\alpha\frac{1}{m}\displaystyle\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)}) θ0:=θ0−αm1i=1∑m(hθ(x(i))−y(i))
θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) \theta_1:=\theta_1-\alpha\frac{1}{m}\displaystyle\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})\cdot x^{(i)} θ1:=θ1−αm1i=1∑m(hθ(x(i))−y(i))⋅x(i)
这里用到的梯度下降是批梯度下降(Batch Gradient Descent):每步更新需要遍历所有训练集
*其他的梯度下降有些只需要使用训练集的子集
求解代价函数J的最小值时,存在其他不需要梯度下降的解法,如正规方程组(normal equations),但正规方程组在面对更大的数据量时不如梯度下降的扩展性好
两个扩展: