浅谈深度学习归一化加快模型收敛速度

在训练模型时,我们经常会对数据进行归一化,甚至在隐藏层中也加入归一化。这样做的主要目的是为了加快模型收敛速度。
假设特征在经过卷积层后没有经过归一化的数据如下图分布(xx表示数据点),用sigmoid函数作为激活函数。那么在不经过归一化的时候数据所在的分布会使sigmoid的函数值接近0,这样会导致出现梯度消失的情况。

浅谈深度学习归一化加快模型收敛速度
假设在对经过卷积层的数据进行归一化后,数据分布如下图所示,分布会处在中间状态,sigmoid的函数值会取到比较大的值(相对于0)。这样便会加快模型的收敛速度。
浅谈深度学习归一化加快模型收敛速度
但是,我们一般并不是简单的对数据进行归一化,即让数据表现一个正态分布,如果简单地把数据进行标准化,那么就会改变原始数据的分布状态,这不利于神经网络学习原始数据的分布状态,所以在对数据进行标准化后(x-u/方差),会对标准化后的结果在进行处理。
假设标准化后的结果是x,那么再对x进行处理
z = γ * x + β
为什么要多加两个可学习的参数呢,如下图
左边为没有对x再进行处理,右边为对x再进行处理
对x再进行处理可以使x可贴近原始数据的分布,而不会单纯地让数据分布集中地处于中间那一部分。
浅谈深度学习归一化加快模型收敛速度

另外,如果数据集中地处于中间那一部分,那么sigmoid中间那一部分也可以看成线性函数了,这样也弱化了加激活函数的作用。激活函数本身就是想增强网络的非线性能力。

浅谈深度学习归一化加快模型收敛速度
以上处于个人理解,如果有错误欢迎指正。

Original: https://blog.csdn.net/weixin_45413024/article/details/122043591
Author: 菜就多练,不要多想
Title: 浅谈深度学习归一化加快模型收敛速度

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/691563/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球