为什么在卷积神经网络中使用 ReLU 作为激活单元?
Why is ReLU is used as activation unit in Convolutional Neural Network?
我正在尝试使用 CNN 对图像进行分类,据我所知,ReLu 是每个卷积层中激活单元的流行选择。根据我的理解,ReLU 会保留所有正图像强度并将负图像强度转换为 0。对我来说,这就像处理步骤,根本不是 "firing" 步骤
.那么这里使用ReLU的目的是什么?
首先,它引入了非线性。没有它,整个 CNN 只不过是一连串的矩阵乘法和最大池化(因此您将无法近似和学习复杂的函数)。但我想你是在问为什么 ReLU 特别受欢迎。想到的一个原因是 tanh
或 sigmoids 等其他激活函数存在梯度饱和问题。这意味着一旦它们输出的值接近最大值,它们的梯度就会变得微不足道(只要看看它们的图表,例如wikipedia上的)并且它们会杀死梯度反向传播。 ReLU 没有这个问题。此外,ReLU 为负值生成零这一事实意味着网络生成的中间表示往往更稀疏。
我正在尝试使用 CNN 对图像进行分类,据我所知,ReLu 是每个卷积层中激活单元的流行选择。根据我的理解,ReLU 会保留所有正图像强度并将负图像强度转换为 0。对我来说,这就像处理步骤,根本不是 "firing" 步骤 .那么这里使用ReLU的目的是什么?
首先,它引入了非线性。没有它,整个 CNN 只不过是一连串的矩阵乘法和最大池化(因此您将无法近似和学习复杂的函数)。但我想你是在问为什么 ReLU 特别受欢迎。想到的一个原因是 tanh
或 sigmoids 等其他激活函数存在梯度饱和问题。这意味着一旦它们输出的值接近最大值,它们的梯度就会变得微不足道(只要看看它们的图表,例如wikipedia上的)并且它们会杀死梯度反向传播。 ReLU 没有这个问题。此外,ReLU 为负值生成零这一事实意味着网络生成的中间表示往往更稀疏。