本文主要是介绍第一周-机器学习-梯度下降(gradient descent),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 这仅是本人在cousera上学习机器学习的笔记,不能保证其正确性,谨慎参考
1、梯度下降函数,一直重复下面公式直到收敛(repeat until convergence),此时即可收敛得到局部最小值(converge to local minimum),该梯度下降法对多参数也可用(例如θ0,θ1,θ2,θ3,θ4,θ5……θn),注意该过程对每一次的j迭代是需要同步更新参数的(At each iteration j, one should simultaneously update the parameters),而且每迭代一次,需要用到数据集的所有数据(映射函数J(θ0,θ1)的表达式要用到)共n次。α表示学习速率(learning rate),当α越大时,每一次迭代的跨步越大,可以参考第2点的3维图:
2、图形化理解(intuition),每一个小黑点代表一次迭代,(θ0,θ1)同时变换,直到迭代至收敛:
3、假设θ0=0,然后采用梯度下降法(gradient descent)来处理代价函数J(θ1),偏导数可以控制梯度下降的方向,是θ1往j(θ1)减小的方向改变:
4、α即学习速率(learning rate)的作用,控制梯度下降的幅度,α过大会导致跳过收敛(fail to converge)或者偏离(diverge),过小则导致到达收敛的速度慢,且计算量增加:
5、梯度下降的具体过程,随着接近local minimum,偏导数(绿框框住的)会逐渐变小,梯度下降的步子会变得更小,因此不需要过度的减小α:
6、不假设θ0=0的情况,用梯度下降法来求最小化的平方代价误差函数(minimize squared error cost function):
7、求J(θ0,θ1)偏导数:
8、拟合数据集的过程:
- 初始(通常都将θ0,θ1初始化为0,这里为了看到明显效果,初始化数据如图,拟合过程根据的是7中求偏微分后的方程):
- 拟合直至J(θ0,θ1)收敛,红点的每一步相当7中偏微分方程的一次迭代:
9、批量梯度下降(“patch”gradient descent),每一次迭代需要用到所有的训练集(即批量之意):
10、练习,偏导数会随着迭代次数增加而变小,从而是梯度下降的步子变小,从而接近收敛值,a错,c对(kept fixed为固定的意思)。线性回归的J函数图像为一个锅头形状,只存在一个收敛值,也是最小值,d对。梯度下降求的是local minimum,而不是global minimum:
注:图片来源都为 机器学习-吴恩达 中的视频截图
这篇关于第一周-机器学习-梯度下降(gradient descent)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!