tensorflow学习004——梯度下降算法

梯度下降算法是机器学习的一个核心算法

梯度下降法是一种致力于找到函数极值点的算法。机器学习的“学习”便是改进模型参数,以便通过大量训练步骤将损失最小化。而梯度下降法就是应用于寻找损失函数的极值点便构成了依据输入数据的模型学习。

前两小节的损失函数loss=(f(x)-y)^2/n=(ax+b-y)^2/n, 现在就是找到一个合适的a,b使得loss最小。我们可以画一个关于loss,a,b的三维立体图形。

随机初始化a,b找到它的梯度,按照梯度方向改变a,b使得loss减少,每次改变a,b的多少,取决于其学习速率的多少。学习速率过小,我们需要迭代很多轮才能找到正确的结果,使得效率降低;如果速率过大,则算法可能会“跳过”极小值点并且因周期性的“跳跃”而永远无法找到极小值点。

这里介绍的梯度下降算法,看似因为初始化的位置,可能只能找到局部极值点,但是实际上其并不是这么简单,是可以找到全局极值点的,不过整体算法比较复杂,这里就只简单介绍一下


作者:孙建钊
出处:http://www.cnblogs.com/sunjianzhao/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/sunjianzhao/p/15551127.html