[ML笔记]梯度下降和线性梯度下降
2017-07-13 17:35
337 查看
引导
前一篇讲解代价函数作用,在监督学习的回归问题上,我们使用代价函数求解最优解,以确定假设函数。代价函数公式
J(θ0,θ1)=12m∑m1(hθ(xi)−yi)2
上文也提到,在参数较为复杂的情况下,代价函数的轮廓图可能如下图,该如何找到合适的θ0,θ1呢?
预备知识
有关导数,偏导数,方向导数,梯度,向量的概念请参考博文:[机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)
梯度下降
梯度下降是一种找到代价函数最优解的方法。梯度下降原理
代价函数是一座山,我们站在山上某个点上,我们环视四周,从上往下看,找到一个方向,向下走,下降得最快,直到下降到最底部。梯度下降步骤
确定向下 每一步的步长,我们称作learning rate;给定一个初始值(到山上某个点去);
确定一个向下的方向,向下走一步,步长为step 2规定的步长;
更新当前位置,回到step 3继续;
当下降的高度小于某个定义的值(比如0),则停止下降。
梯度下降算法
repeat util convergence: {θj:=θj−α∂∂θjJ(θ0,θ1) (simultaneously update j=0,j=1)
}
其中,α为learning rate,∂∂θjJ(θ0,θ1)是代价函数J(θ0,θ1)在θj方向的偏导数。
梯度下降算法特点
初始点不同,获得的最小值也不同,因此梯度下降算法求得的只是局部最小值;越接近最小值,下降速度越慢(偏导数越来越小)
梯度下降过程
如图,按照X一步步下降,起始点不同,下降到的最低点也可能不同。
需要注意的点
α值该如何选择?会有什么影响?答: 如果取得一个合适的learning rate, 则代价函数应该越来越小(下降),正确做法是实时观察代价函数变化,如果代价函数变小了,则learning rate取得合适,如果代价函数变大了,则应该减小learning rate的值。
如果learning rate 太小了,梯度下降就会很慢,如果learning rate太大,那么梯度下降可能掠过最小值,就可能出现无法收敛,甚至出现发散的现象。
如果(θ0,θ1)已经处于局部最小值,那么(θ0,θ1)会如何变化?
答: leave (θ0,θ1) unchanged,因为已经在局部最小值,则导数肯定为0,则(θ0,θ1)不会变化。
固定learning rate梯度下降如何收敛?
答: 在convex函数(凸函数)底部,我们可以看到偏导数接近与0,因此最小值时,我们可以得到,
θj:=θj−α∗0
越到底部,偏导数越小。因此固定步长时,收敛到底部时下降速度会越慢(特点中提到过),因此,无需慢慢减小α的值。
线性梯度下降
高数复习
开始之前,我们先来复习一点高数知识,复合函数求导法则
假设y=f(u),u=φ(x),且f(u)和φ(x)均可导,则复合函数y=f(φ(x))的导数为:
dydx=dydududx 或 y′=f′(u)φ′(x)
如果函数u=φ(t)及v==ψ(t)都在点t可导,函数z=f(u,v)在对应(u,v)具有连续偏导数,则复合函数z=f[φ(t),ψ(t)]在点t可导,且,
dzdt=∂z∂ududt+∂z∂vdvdt
和的导数等于导数的和
复习完毕,我们继续
(TODO:高数复习篇)
线性回归梯度下降
假设函数:hθ(x)=θ0+θ1x
代价函数:
J(θ0,θ1)=12m∑m1(hθ(xi)−yi)2
梯度下降算法:
repeat util convergence: {
θj:=θj−α∂∂θjJ(θ0,θ1) (simultaneously update j=0,j=1)
}
在线性回归中,我们使用真实的代价函数和假设函数可以推导出梯度下降方程如下:
repeat util convergence: {
θ0:=θ0−α1m∑m1(hθ(xi)−yi)
θ1:=θ1−α1m∑m1((hθ(xi)−yi)xi)
}
推导过程关键在于如何求∂∂θjJ(θ0,θ1),
∂∂θjJ(θ0,θ1)=∂∂θj12m∑m1(hθ(xi)−yi)2
假设f(θ)=hθ(xi)−yi ,则,
∂∂θjJ(θ0,θ1)=∂∂θj12m∑m1f2(θ)=12m∗2f(θ)∑m1f′(θ)=1mf(θ)∑m1f′(θ)
因此
j=0,
f(θ)∑m1f′(θ)=(hθ(xi)−yi)∑m1∂∂θ0(hθ(xi)−yi),
∑m1∂∂θ0(hθ(xi)−yi)=∑m1∂∂θ0(θ0+θ1xi−yi)=∑m11,那么,
θ0:=θ0−α1m∑m1(hθ(xi)−yi)
j=1,
f(θ)∑m1f′(θ)=(hθ(xi)−yi)∑m1∂∂θ1(hθ(xi)−yi),
∑m1∂∂θ1(hθ(xi)−yi)=∑m1∂∂θ1(θ0+θ1xi−yi)=∑m1xi,那么,
θ1:=θ1−α1m∑m1((hθ(xi)−yi)xi)
推导结束。
具体怎么使用,请听下回分解。
相关文章推荐
- Machine Learning(Stanford)| 斯坦福大学机器学习笔记--第一周(5.线性回归的梯度下降)
- Andrew Ng 机器学习笔记 02 :线性回归与梯度下降
- 【学习笔记】斯坦福大学公开课(机器学习) 之一:线性回归、梯度下降
- 机器学习笔记一二 - 线性规划 梯度下降 正规方程
- 机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)
- CS229学习笔记之线性回归与梯度下降
- 斯坦福大学机器学习笔记--第一周(5.线性回归的梯度下降)
- 机器学习推导笔记1--机器学习的任务、步骤、线性回归、误差、梯度下降
- Ng深度学习笔记 1-线性回归、监督学习、成本函数、梯度下降
- 【机器学习-斯坦福】学习笔记2 - 监督学习应用与梯度下降
- 机器学习入门:线性回归及梯度下降
- 机器学习第一篇(stanford大学公开课学习笔记) —机器学习的概念和梯度下降
- Machine Learning机器学习课堂笔记6(梯度下降直观解释)
- Machine Learning 机器学习课堂笔记5(梯度下降)
- 机器学习学习笔记(二)-- 梯度下降
- Stanford机器学习课程笔记——单变量线性回归和梯度下降法
- 线性回归与梯度下降
- 机器学习入门:线性回归及梯度下降
- 机器学习入门:线性回归及梯度下降
- 线性回归和批量梯度下降法python