机器学习——参数学习
Machine Learning —— Parameter Learning
梯度下降算法,可以将代价函数最小化,可用于线性回归
梯度下降算法最小化代价函数J
梯度下降——定义
Gradient Descent——Definition
代价函数:
Have some function
J(θ0,θ1)
J
(
θ
0
,
θ
1
)
Want
minθ0,θ1
m
i
n
θ
0
,
θ
1
J(\theta_0,\theta_1)
Outline 构想:
Start with θ0,θ1 θ 0 , θ 1 ,一般情况下初始化 θ0,θ1 θ 0 , θ 1 都为0,即 θ0=0,θ1=0 θ 0 = 0 , θ 1 = 0
Keep changing θ0,θ1 θ 0 , θ 1 to reduce J(θ0,θ1) J ( θ 0 , θ 1 ) until we hopefully end up at minimum.一直改变参数知道达到我们预期的最小值。
梯度下降算法 Gradient descent algorithm:
图例:
参数初始化的不同可能会导致局部最小值的不同
重复直至收敛 repeat until convergence{
其中 := := 是赋值运算; α α 是学习速率(Learning rate)。 注:需要同时更新 θ0,θ1 θ 0 , θ 1
正确的同时更新步骤为:
temp0:=θ0−α∂∂θ0J(θ0,θ1) t e m p 0 := θ 0 − α ∂ ∂ θ 0 J ( θ 0 , θ 1 )
temp1:=θ1−α∂∂θ1J(θ0,θ1) t e m p 1 := θ 1 − α ∂ ∂ θ 1 J ( θ 0 , θ 1 )
θ0:=temp0 θ 0 := t e m p 0
θ1:=temp1 θ 1 := t e m p 1
梯度下降 原理
Gradient Descent Intution
Review:
repeat until convergence{
简单实例
假设 θ0=0 θ 0 = 0 , 求代价函数 J() 的最小值
-偏导数变化
偏导数为正数时, θ1 θ 1 向左边移动变化
偏导数为负数时, θ0 θ 0 向左边移动变化
- α α 变化
θ1:=θ1−α∂∂θ1J(θ1) θ 1 := θ 1 − α ∂ ∂ θ 1 J ( θ 1 )
α α 过小,梯度下降会很缓慢
α α 过大,梯度下降会跳过最小值。可能会收敛失败甚至发散(diverge)
线性回归中的梯度下降
Gradient Descent For Linear Regression
梯度下降不仅被用于线性回归,还被用于线性回归和代价函数相结合的情况
Review
Gradient descent algorithm:
repeat until convergence{
}
Linear Regression Model:
Goal:
用梯度下降的算法最小化线性回归的代价函数
计算过程:
θ0 θ 0 即 j=0:∂∂θ0J(θ0,θ1)=1m∑mi=1(hθ(x(i))−y(i)) j = 0 : ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) )
θ1 θ 1 即 j=1:∂∂θ1J(θ0,θ1)=1m∑mi=1(hθ(x(i))−y(i))⋅x(i) j = 1 : ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i )
所以,梯度下降在线性回归中的算法为:
repeat until convergence{
}
简化公式:
repeat until convergence{
}
and update θ0 θ 0 and θ1 θ 1 simultaneously