能不能通俗易懂翻译翻译“梯度下降法是什么”?

前面文章(通过 AutoGrad 来理解 TextGrad ,反向传播中的自动微分)提到梯度了,那么梯度、梯度下降法是什么?本篇再深入一点来看看。

梯度下降法对于神经网络来说,真的是太重要了。可以说是没有梯度下降法,就不会有现代的神经网络。如果没有梯度下降法,神经网络可能都没有办法被训练。梯度其实是微积分里的一个技术概念。

通过前文介绍,对损失函数有了一定理解,损失函数计算出来的值其实就是神经网络里的概率模型和理想中的概率模型之间的差距的定量表达。

那么差距找到了,接下来就是要缩短差距了。至于怎么缩短呢?肯定是要调整神经网络里的那些参数。参数有这么多,如果我们没有什么策略,只凭直觉去调整的话,理论上虽然也有可能把它调好,但是估计得调整到宇宙爆炸了。所以,要想把这么多的参数能快速调整好,必须要有策略。这个策略就是反向传播,梯度下降法就是反向传播中的一种方法。

正向传播我们其实都能知道,就是把数据输入到神经网络,这些数据会沿着神经网络向前传递,传递的过程中,一层一层地进行操作,最后得出一个结果。

反向传播也一样,一个神经网络还没有训练好的时候,它的输出结果是有偏差的。当我们已经知道了偏差值的时候,要把这个偏差缩小,肯定是优先调整那些对最后输出结果有重大影响的参数,这样性价比最高。反的那个传递的信息,传递的是偏差的信息,这些偏差最后传递到各个参数上,然后根据这些参数对偏差的贡献大小,来承担相应的修改责任。原理上是这样子的。

具体是怎么修改呢?我们先来脑补一个符合自己直觉的一种分配方式。

假设神经网络最后输出层的一个输出值是A3来表示,具体的这个输出值分别由W系数、偏置系数和上一层的输出值来决定的。知道了这些之后,我们就能计算出它的损失函数。

比如说我们就用交叉熵的方式(损失函数),整个神经网络计算完之后存在偏差,目的是这个偏差越小越好,最好是减到0,要通过神经网络里的这些各个感知机,以及感知机上的参数来调整。其实是可以把偏差分成三部分,分别对应着感知机里的W系数、偏置系数以及上一层的输出结果。如果贡献大的就多调整一点,如果贡献小就少调整一点,通过调整来减小最终的数值。

这种分配偏差的方法,虽然直观容易理解,但操作起来却没有那么简单。如果想要定量的去调整每一个参数,这些参数的数值具体大小应该是怎样子呢?它们相互之间的依赖关系又是怎样?这些都很麻烦。

我们还可以考虑另外一种方法。上述利用的是数值的加法。除了数值的加法,还有没有别的加法呢?比如说向量的加法!!

向量的合力等于两个分力的矢合,这就是向量的加法。向量它是有方向的,而偏差值只是一个数值没有方向,所以我们还需要找到一个确定的方向。到这里,其实就要引出我们这次要讲的梯度。

梯度的方向是变化率最快的方向,顺着这个方向就能找到变化率最大的值,在梯度下降法里面,我们要做的是沿着梯度的反方向走,取反就是减小最快的方向,就能找到最佳的调整方式了。

相关推荐
MUTA️3 分钟前
RT-DETR学习笔记(2)
人工智能·笔记·深度学习·学习·机器学习·计算机视觉
Domain-zhuo31 分钟前
Git常用命令
前端·git·gitee·github·gitea·gitcode
开发者每周简报37 分钟前
求职市场变化
人工智能·面试·职场和发展
aPurpleBerry44 分钟前
解决 fatal: detected dubious ownership in repository at ‘XXXX‘ 问题
github
AI前沿技术追踪1 小时前
OpenAI 12天发布会:AI革命的里程碑@附35页PDF文件下载
人工智能
余~~185381628001 小时前
稳定的碰一碰发视频、碰一碰矩阵源码技术开发,支持OEM
开发语言·人工智能·python·音视频
galileo20161 小时前
LLM与金融
人工智能
DREAM依旧2 小时前
隐马尔科夫模型|前向算法|Viterbi 算法
人工智能
GocNeverGiveUp2 小时前
机器学习2-NumPy
人工智能·机器学习·numpy
B站计算机毕业设计超人3 小时前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化