ReLU 和 MaxOut 网络

1 sigmoid激活函数的不足之处

在网络结构非常深的情况下,由于梯度消失问题的存在,可能会导致靠近输入附近的隐藏层的权重变化较慢,导致结果训练效果较差。

2. Relu

在这里插入图片描述
修正线性单元(Rectified linear unit,ReLU)是神经网络中最常用的激活函数。它保留了 step 函数的生物学启发(只有输入超出阈值时神经元才激活),不过当输入为正的时候,导数不为零,从而允许基于梯度的学习(尽管在 x=0 的时候,导数是未定义的)。

使用这个函数能使计算变得很快,因为无论是函数还是其导数都不包含复杂的数学运算。然而,当输入为负值的时候,ReLU 的学习速度可能会变得很慢,甚至使神经元直接无效,因为此时输入小于零而梯度为零,从而其权重无法得到更新,在剩下的训练过程中会一直保持静默。

所以,你看到的网络可能是这样的:
在这里插入图片描述
实际上它可能是这样的:
在这里插入图片描述

question 1:这样的网络结构,输出结果难道不是线性的吗?
是的,还是非线性的,因为对于同一个激活函数的神经元来说,当输入数据的不同,可能使得激活函数对应的区域不同,可能处于线性状态,可能出于0状态,所以还是处于非线性状态。

question 2:ReLU 是不可导的,怎样训练?
只是在0点处不可导,不可能都是处于0的状态吧?

3. Relu的变种

3.1 LeakReLU

在这里插入图片描述
经典(以及广泛使用的)ReLU 激活函数的变体,带泄露修正线性单元(Leaky ReLU)的输出对负值输入有很小的坡度。由于导数总是不为零,这能减少静默神经元的出现,允许基于梯度的学习(虽然会很慢)。

3.2 PReLU

在这里插入图片描述
参数化修正线性单元(Parameteric Rectified Linear Unit,PReLU)属于 ReLU 修正类激活函数的一员。它和 RReLU 以及 Leaky ReLU 有一些共同点,即为负值输入添加了一个线性项。而最关键的区别是,这个线性项的斜率实际上是在模型训练中学习到的。

3.3 RReLU

在这里插入图片描述
随机带泄露的修正线性单元(Randomized Leaky Rectified Linear Unit,RReLU)也属于 ReLU 修正类激活函数的一员。和 Leaky ReLU 以及 PReLU 很相似,为负值输入添加了一个线性项。而最关键的区别是,这个线性项的斜率在每一个节点上都是随机分配的(通常服从均匀分布)。

4. MaxOut 网络

Learnable activation function

首先让每一层的输出结果按照两两或者其他数量进行分组,每一组仅取最大值,于是就有:
在这里插入图片描述

4.1 与ReLU的关系

在这里插入图片描述

当MaxOut的weight不同时,可能激活函数为下面这个样子:
在这里插入图片描述

所以,MaxOut是可训练的激活函数。

4.2 可能训练处激活函数的样子

在这里插入图片描述

4.3 MaxOut 的训练

在这里插入图片描述

question:如果有的神经元没有被训练到怎么办?
在这里插入图片描述
其实不存在的,因为随着输入数据的不同,使用的神经元也不同,所以基本上不会存在没有被训练的神经元。和卷积神经网络中的Max pooling的训练算法是一样的。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值