卷积神经网络——非线性激活

卷积神经网络——非线性激活

首先我们回顾一下在《卷积神经网络简介》一文中提到的经典LeNet网络结构,如图1所示:

图 1  LeNet网络结构

我们注意到在每个卷积操作“Convolution”之后紧跟了一个“ReLU”操作,没错,这里的ReLU就是一种非线性激活函数,用于在每个卷积操作后进行附加运算。

ReLU(Rectified Linear Unit),又称为修正线性单元,是一种非线性运算。其输出如下:

                                                                                               Output = Max(zero, Input)

图 2  ReLU

 ReLU是一种按元素的操作(应用于每个像素),并将特征图中的所有负像素值替换为零。 ReLU的目的是在我们的CNN中引入非线性,因为我们希望ConvNet学习的大多数现实世界数据都是非线性的(卷积是线性运算–按元素的矩阵乘法和加法运算),因此我们通过引入诸如ReLU之类的非线性函数来解决非线性问题。

Tips:“大多数现实世界数据都是非线性的”,如何理解这句话呢?举个例子:加入你在寒冷的冬天,手上握着1个火把能让你的体温上升1度,那么握着2个火把可能让你的体温上升1.5度。因为火把的个数和体温上升并不是线性关系。

那我们看一下卷积操作得到的特征图在通过ReLU函数非线性激活之后得到的修正特征图,如图3所示:

问题:细心的小伙伴可能会发现,图像的像素值范围不是0~255吗,为什么特征图里会有负值?(答案在文末)

图 3 ReLU修正特征图

 当然,我们也可以使用其他非线性函数(例如tanh或Sigmoid)代替ReLU,但是已经发现ReLU在大多数情况下的性能更好。不过,ReLU本身也有一些弊端,例如特征图中的负像素可能也包含有价值的信息,ReLU则将其全部置零。因此,人们也对ReLU进行了改进,有了ReLU,Leaky ReLU,PReLU,RReLU等。

答案:确实原始图像的像素值只能是0~255,但是卷积核里的数值可以为负,所以使用卷积核卷积得到的特征图也会有负像素值出现。

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值