来自: Datartisan数据工匠(微信号: shujugongjiang)
链接:http://datartisan.com/article/detail/99.html
最优化问题是机器学习算法中非常重要的一部分,几乎每一个机器学习算法的核心都是在处理最优化问题。
- 什么是梯度下降法?
- 如何将梯度下降法运用到线性回归模型中?
- 如何利用梯度下降法处理大规模的数据?
- 梯度下降法的一些技巧
让我们开始吧!
想象一个你经常用来吃谷物或储存受过的大碗,成本函数的形状类似于这个碗的造型。
梯度下降法的过程
梯度下降法首先需要设定一个初始参数值,通常情况下我们将初值设为零(coefficient=0coefficient=0),接下来需要计算成本函数 cost=f(coefficient)cost=f(coefficient) 或者 cost=evaluate(f(coefficient))cost=evaluate(f(coefficient))。然后我们需要计算函数的导数(导数是微积分的一个概念,它是指函数中某个点处的斜率值),并设定学习效率参数(alpha)的值。
coefficient=coefficient−(alpha∗delta) coefficient=coefficient−(alpha∗delta) 重复执行上述过程,直到参数值收敛,这样我们就能获得函数的最优解。
你可以看出梯度下降法的思路多么简单,你只需知道成本函数的梯度值或者需要优化的函数情况即可。接下来我将介绍如何将梯度下降法运用到机器学习领域中。
批量梯度下降法是机器学习领域中常见的一种梯度下降方法。
对于大规模数据来说,随机梯度下降法的收敛速度明显高于其他算法,通常情况下你只需要一个小的迭代次数就能得到一个相对较优的拟合参数。
- 绘制成本函数随时间变化的曲线:收集并绘制每次迭代过程中所得到的成本函数值。对于梯度下降法来说,每次迭代计算都能降低成本函数值。如果无法降低成本函数值,那么可以尝试减少学习效率值。
- 学习效率:梯度下降算法中的学习效率值通常为0.1,0.001或者0.0001。你可以尝试不同的值然后选出最佳学习效率值。
- 标准化处理:如果成本函数不是偏态形式的话,那么梯度下降法很快就能收敛。隐蔽你可以事先对输入变量进行标准化处理。
- 绘制成本均值趋势图:随机梯度下降法的更新过程通常会带来一些随机噪声,所以我们可以考虑观察10次、100次或1000次更新过程误差均值变化情况来度量算法的收敛趋势。
- 最优化理论是机器学习中非常重要的一部分。
- 梯度下降法是一个简单的最优化算法,你可以将它运用到许多机器学习算法中。
- 批量梯度下降法先计算所有参数的导数值,然后再执行参数更新过程。
- 随机梯度下降法是指从每个训练实例中计算出导数并执行参数更新过程。