ReLU函数进行Batch Normalization意义分析

版权声明:本文为williamyi原创,未经许可禁止转载或直接挪作他用! https://blog.csdn.net/williamyi96/article/details/77544638

我们都知道,正则化是一种防止训练参数过拟合的一种极为有效的方式。激活函数的主要作用是提升圣经网络的非线性性。之前常用的激活函数,如Sigmoid, tanh函数,由于其饱和区的接近于0,因此需要将其进行正则化,转换为正态分布,将数据大部分规范到线性范围之内,然后通过两个额外的线性转换参数来进行微调,从而避免后续梯度消失问题的产生。

那么就有一个问题了,ReLU这一函数并没有上界,也就是其导数不存在趋近于0的情况,那么为什么在进行图像处理相关的神经网络的时候还是需要将其进行正则化呢?

这是因为,我们前面的讨论过程中,忽略了一个很重要的问题,那就是输入变量的分布。理论上而言,如果输入的数据是不同分布的,那么相当于我们的神经网络还要针对这种不同分布去提升网络参数的适应性,从而使得网络变得难以训练。实践表明,将输入数据规范化为正态分布确实有利于提升网络的整体效果。因此在ReLU函数之后接上了一个Batch Normalization层。

阅读更多

没有更多推荐了,返回首页