Tensorflow深度学习之梯度下降算法

发布时间:2024年01月10日

梯度下降算法是一种致力于找到函数极值点的算法。

模型学习的本质就是不断改变模型的参数,以便通过大量的训练步骤将损失最小化,即梯度下降算法应用于寻找损失函数的极值点便会构成依据输入数据学习的模型学习。

1、梯度的含义

梯度的输出是一个由若干偏导数构成的向量,它的每个分量对应于函数对输入向量的相应分量的偏导:

\bigtriangledown \equiv \left ( \frac{\partial }{\partial x1},\frac{\partial }{\partial x2},\cdots ,\frac{\partial }{\partial xN}\right )^{T}

梯度的输出向量表明了在每个位置损失函数增长最快的方向,可将它视为表示了在函数每个位置向哪个方向移动函数值可以增长。

2、通过实例理解:

以上节线性回归为例,设损失函数为z,则z=\left ( f\left ( x \right )-y \right )^{2}/n,z主要受两个权重影响,分别为a和b,在深度学习中,采用随机初始化的方法,初始化a,b。且它会随机初始化大量的a,b组合。接着需要计算梯度,使梯度z变化最快的方向,不断改变学习速率(每次向极值方向移动,损失函数不断减少),进而使a,b发生变化,求得极值,进而求得最小值。

注意:学习速率是一种超参数或对模型的一种手工可配置的设置。学习速率过小,则需要迭代的次数过多;学习速率过大,有可能跨过当前的极值点,并在极值点左右附近来回跳动,故需要为它指定正确的值。

结论:在深度学习中,不用考虑局部极值点,因为本身初始化就是采用的随机初始化,更深的不予讲解。



文章来源:https://blog.csdn.net/m0_64578069/article/details/135484174
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。