为啥在卷积神经网络中使用 ReLU 作为激活单元?

Posted

技术标签:

【中文标题】为啥在卷积神经网络中使用 ReLU 作为激活单元?【英文标题】:Why is ReLU is used as activation unit in Convolutional Neural Network?为什么在卷积神经网络中使用 ReLU 作为激活单元? 【发布时间】:2018-05-02 09:39:43 【问题描述】:

我正在尝试使用 CNN 对图像进行分类,据我所知,ReLu 是每个卷积层中激活单元的流行选择。根据我的理解,ReLU 会保留所有正图像强度并将负图像强度转换为 0。对我来说,这就像处理步骤,根本不是真正的“触发”步骤 .那么这里使用ReLU的目的是什么?

【问题讨论】:

this question 的可能重复项。有关 ReLU 的更多信息,请参阅this question。 另见stats.stackexchange.com/questions/141960/… 【参考方案1】:

首先,它引入了非线性。没有它,整个 CNN 将只不过是一系列矩阵乘法和最大池化(因此您将无法近似和学习复杂的函数)。但我想你是在问为什么 ReLU 特别受欢迎。想到的一个原因是其他激活函数,如tanh 或 sigmoid,存在梯度饱和问题。这意味着一旦它们输出的值接近最大值,它们的梯度就变得微不足道(只需查看它们的图表,例如wikipedia),它们会在反向传播时杀死梯度。 ReLU 没有这个问题。此外,ReLU 为负值生成零这一事实意味着网络生成的中间表示往往更稀疏。

【讨论】:

以上是关于为啥在卷积神经网络中使用 ReLU 作为激活单元?的主要内容,如果未能解决你的问题,请参考以下文章

FPGA教程案例55深度学习案例2——基于FPGA的CNN卷积神经网络之ReLu激活层verilog实现

R中的“神经网络”包,整流线性单元(ReLU)激活函数?

卷积神经网络中的损失函数

当我使用 RELU 激活时,为啥我的 TensorFlow 网络权重和成本为 NaN?

第三周作业:卷积神经网络(Part1)

使用 ReLU 作为激活函数的注意事项