激活函数

激活函数概览


激活函数(activation function)层又称非线性映射(non-linearity mapping)层,激活函数的引入为的是增加整个网络的表达能力(即非线性)。否则,若干线性操作层的堆叠仍然只能起到线性映射的作用,无法形成复杂的函数。在实际应用中,有多达十几种激活函数可以选择。本文就先讲讲Sigmoid 型函数和ReLU函数的优缺点。

Sigmoid函数

直观上,激活函数模拟了生物神经元特性:接受一组输入信号并产生输出。在神经科学中,生物神经元通常有一个阈值,当神经元所获得的输入信号累积效果超过了该阈值时,神经元就被激活而处于兴奋状态;否则处于抑制状态。在人工神经网络中,因Sigmoid型函数可以模拟这一生物过程,从而在神经网络发展历史进程中曾处于相当重要的地位。
Sigmoid型函数也被称为Logistic函数:
在这里插入图片描述
在这里插入图片描述
由上图可以看出,经过Sigmoid 型函数作用后,输出响应的值域被压缩到[0,1]之间,而0对应了生物神经元的“抑制状态”,1则恰好对应了“兴奋状态”。
同时,观察发现,在Sigmoid型函数两端,对于大于5(或者小于-5)的值无论多大(或者多小),都会被压缩到1(或0)。如此便带来一个严重问题,即梯度的“饱和效应”。对照Sigmoid型函数的梯度图,大于5(或者小于-5)部分的梯度接近0,这会导致在误差返现传播过程中,导数处于该区域的误差将很难甚至无法传递至前层,进而导致整个网络无法训练(导数为0将无法更新网络参数)。此外,在参数初始化的时候还需要特别注意,要避免初始化参数直接将输出值域带入这一区域。一种可能的情形是当初始化参数过大时,将直接引发梯度饱和效应而无法训练。

ReLU函数

为了避免梯度饱和效应的发生,进而引入了ReLU函数,ReLU函数是目前深度卷积神经网络中最为常用的激活函数之一。
ReLU实际上是一个分段函数,其定义为:
在这里插入图片描述
ReLU函数的梯度在x>=0时为1,反之为0。对于x>=0的部分完全消除了Sigmoid型函数的梯度饱和效应。同时,在实验中还发现相比Sigmoid型函数,ReLU函数有助于随机梯度下降方法收敛,收敛速度约快6倍左右。正是由于ReLU函数的这些优秀特性,ReLU函数已成为目前卷积神经网络及其他深度学习模型(如递归神经网络RNN等)激活函数的首选之一。
在这里插入图片描述
:文章选自《解析深度学习—卷积神经网络原理与视觉实践》魏秀参著

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毛毛真nice

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值