卷积神经网络(CNN):原理、架构与实现
1. ReLU激活函数
在卷积神经网络中,体积滤波器或特征图的输出本质上是输入层的加权和。如同普通神经网络一样,它需要通过一个激活函数。在卷积层中,发现 max(0, x) 函数比Sigmoid函数在激活方面更有效。 max(0, x) 基本上是一个修正线性函数,因为它只是将 y = x 的负半部分修正为0。因此,它常被称为整流器,由整流器激活的节点也被称为修正线性单元(ReLU)。
ReLU函数的表达式为:
[
ReLU(x) = max(0, x)
]
层C1中节点r的输出最终表示为:
[
y_{mn}^r = ReLU(f_{mn}^r)
]
ReLU激活通常作为卷积层之后的一个独立层来实现。
2. 批量归一化(Batch Normalization)
在CNN中,学习率或收敛速度是一个主要问题。由于卷积操作,每一层滤波器的输出值范围差异很大。也就是说,卷积改变了输入数据的原始分布,打破了输入数据独立同分布(i.i.d.)的假设。更糟糕的是,每一层都必须适应来自较低层的分布漂移,以修正自己的权重。这使得学习效率非常低,收敛速度非常慢,特别是对于使用Sigmoid或tanh激活函数的层。这种现象被称为内部协方差偏移,即数据分布相对于输入数据分布的变化。
为了克服这种不良影响,在激活层之前引入了批量归一化程序,试图保持输入数据的均值和方差固定,使各层之间的学习或多或少相互独立。基本思想是将网络中所有层的输入数据归一化为均值为0、方差为1。在实践中
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



