10.2 梯度下降-机器学习笔记-斯坦福吴恩达教授
梯度下降
批量梯度下降法(Batch gradient descent)
拥有了大数据,就意味着,我们的算法模型中得面临一个很大的 m 值。回顾到我们的批量梯度下降法:
重复直到收敛:重复直到收敛:重复直到收敛:θj:=θj−α1m∑i=1m(hθ(x(i))−y(i))xj(i),forj=0,...,nθ_j:=θ_j−α\frac1m∑_{i=1}^m(h_θ(x^{(i)})−y^{(i)})x^{(i)}_j,\quad for\ j=0,...,nθj:=θj−αm1i=1∑m(hθ(x(i))−y(i))xj(i),for j=0,...,n
可以看到,每更新一个参数 θjθ_jθj ,我们都不得不遍历一遍样本集,在 mmm 很大时,该算法就显得比较低效。但是,批量梯度下降法能找到全局最优解:
随机梯度下降法(Stochastic gradient descent)
针对大数据集,又引入了随机梯度下降法,该算法的执行过程为:
重复直到收敛:重复直到收敛:重复直到收敛:fori=0,...,m\quad\quad for\ i=0,...,mfor i=0,...,mθj:=θj−α(hθ(x(i))−y(i))xj(i),forj=0,...,nθ_j:=θ_j−α(h_θ(x^{(i)})−y^{(i)})x^{(i)}_j,\quad for\ j=0,...,nθj:=θj−α(hθ(x(i))−y(i))xj(i),for j=0,...,n
相较于批量梯度下降法,随机梯度下降法每次更新 θjθ_jθj 只会用当前遍历的样本。虽然外层循环仍需要遍历所有样本,但是,往往我们能在样本尚未遍历完时就已经收敛,因此,面临大数据集时,随机梯度下降法性能卓越。
上图反映了随机梯度下降法找寻最优解的过程,相较于批量梯度下降法,随机梯度下降法的曲线就显得不是那么平滑,而是很曲折了,其也倾向于找到局部最优解而不是全局最优解。因此,我们通常需要绘制调试曲线来监控随机梯度的工作过程是否正确。例如,假定误差定义为 cost(θ,(x(i),y(i)))=12(hθ(x(i))−y(i))2cost(θ,(x^{(i)},y^{(i)}))=\frac12(h_θ(x^{(i)})−y^{(i)})^2cost(θ,(x(i),y(i)))=21(hθ(x(i))−y(i))2 ,则每完成 1000 次迭代,即遍历了 1000 个样本,我们求取平均误差并进行绘制,得到误差随迭代次数的变化曲线:
另外,遇到下面的曲线也不用担心,其并不意味着我们的学习率出了问题,有可能是我们的平均间隔取的太小:
如果,我们每进行 5000 次迭代才进行绘制,那么曲线将更加平滑:
如果我们面临明显上升态势的曲线,就要考虑降低学习率 ααα 了:
另外,学习率 ααα 还可以随着迭代次数进行优化
α=constant1iterationNumber+constant2α=\frac{constant1}{iterationNumber+constant2}α=iterationNumber+constant2constant1
这样,随着迭代次数的增多,我们的下降步调就会放缓,避免出现抖动:
随机梯度下降法工作前,需要先乱序数据集,是的遍历样本的过程更加分散。
Mini 批量梯度下降法(Mini-batch gradient descent)
Mini 批量梯度下降法是批量梯度下降法和随机梯度下降法的折中,通过参数 bbb 指明了每次迭代时,用于更新 θθθ 的样本数。假定 b=10,m=1000b=10,m=1000b=10,m=1000 ,Mini 批量梯度下降法的工作过程如下:
重复直到收敛:重复直到收敛:重复直到收敛:fori=1,11,21,...,991:\quad\quad for\ i=1,11,21,...,991:for i=1,11,21,...,991:θj:=θj−α110∑k=ii+9(hθ(x(i))−y(i))xj(i),forj=0,...,nθ_j:=θ_j−α\frac1{10}\sum_{k=i}^{i+9}(h_θ(x^{(i)})−y^{(i)})x^{(i)}_j,\quad for\ j=0,...,nθj:=θj−α101k=i∑i+9(hθ(x(i))−y(i))xj(i),for j=0,...,n
总结
以上是生活随笔为你收集整理的10.2 梯度下降-机器学习笔记-斯坦福吴恩达教授的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 10.1 掌握大数据-机器学习笔记-斯坦
- 下一篇: 10.3 在线学习与 MapReduce