梯度下降法是一种致力于找到函数极值点的算法。
所谓“学习”便是改进模型参数,以便通过大量训练步骤将损失最小化。
将梯度下降法应用于寻找损失函数的极值点便构成了依据输入数据的模型学习。
梯度的输出是一个由若干偏导数构成的向量,它的每个分量对应于函数对输入向量的相应分量的偏导:
梯度的输出向量表明了在每个位置损失函数增长最快的方向,可将它视为表示了在函数的每个位置向哪个方向移动函数值
可以增长。
可以将梯度下降简单理解为寻找函数最小值得过程,这个过程大概可以理解为如上图所示,在函数上随机取一个点,然后向函数的导数为零得方向移动
如何处理上面这种有多个导数为零的点呢?它的过程是随机初始化多个点,在函数上移动,找到倒数为零的点,然后进行比较,找到最小值的点。移动的距离称为学习速率,学习速率不能太小或太大,如果太大,可能会在极值点附近来回跳动,太小需要迭代很多次,tensorflow中adam算法的默认学习速率为0.01
三个变量的模型