文章目录
什么是梯度
-
首先,可以梯度理解为函数的斜率。
-
之后,这个斜率,说的是损失函数的斜率,如果我们的损失函数仅仅有一个参数,那么梯度就是斜率。
-
在这里我假设损失函数有两个参数(就是二维损失函数),那么损失函数的3D图像就如下图,中间是损失率最低的点,也是我们所要去寻找的点:
-
在此,梯度是一个向量,表示某一函数在该点处的方向导数沿该方向取得最大值,即函数在该点处沿着该方向变化最快,变化率最大。
-
我们就是根据梯度这个东西,来确定误差函数的最小点(或者说相对最小点),而损失函数的值为我们提供了网络在给定数据集上的表现离完美有多远的尺度。
-
目前优化神经网络的方法都是基于梯度的反向传播的思想,即根据损失函数计算的误差通过梯度反向传播的方式,指导深度网络权值的更新优化。
一般来讲,卷积神经网络的流程如下:
- 图像输入经过卷积提取特征
- 特征矩阵经过激活函数激活生成新矩阵
- 新矩阵生成误差函数,对新矩阵进行梯度求导,求出loss
- 之后根据loss来反向传播更新卷积核的权重。
- 一层彻底结束,继续迭代。
【这里不算严谨,欢迎评论区或私聊指出错误】
梯度消失
- 梯度消失就是在第4步反向传播时,由于激活函数选取不正确等原因,导致前面的隐层的网络权重(就是卷积核的参数)不能得到更新的问题。
- 因为通常神经网络所用的激活函数是sigmoid函数,这个函数有个特点,就是能将负无穷