激活函数

激活函数

这次看看激活函数及其相关。
先来看看一个简单神经元的结构吧!在这里插入图片描述
在胞体之前是有一个WX的计算,再加上一个bias,从而求算出新的数值,这时候激活函数出场了,它的目的就是对刚刚的数值进行一个转换,使得转换后的数值更加易于后期的处理。激活函数家族中大家比较熟悉的就是我们在反向传播的时候引例中的Sigmoid函数。那么我们就看看Sigmoid函数的特性。

Sigmoid 函数

在这里插入图片描述
首先一个比较显然的就是它会把输入值转化为一个(0,1)内的数值,其实在计算机中写成[0,1]也差不多啦。在人工智能还不是很蓬勃发展的时候,人们比较认可这个函数的存在,因为在生物学角度上它很像神经元的饱和放电率(firing rate)的图像。但在它的背后有几个比较坑人而又不适用的缺陷。

  • 首先,饱和神经元会导致梯度消失。假设我的输入值是10,那么不难看出它的梯度基本是0,那么还会导致梯度的显著而有效的变化吗?显然不会!又假设我的输入值是0,那梯度基本是可以算出来的,很赞!那如果变成-10呢?又不行了QAQ……
  • 回忆反向传播的内容,也就是说数值的绝对值过大导致Sigmoid门处的神经元的饱和从而让本地梯度变为0,从而导致在反向传播的时候它下游的中间变量变化值也为0,那自变量就会基本不变了。
  • 其次,该函数并不是零中心函数。假设我们输入的X全是正的,这就会使得每次变化的时候,梯度值总会保留上游梯度的符号,从而每一个权值的变化都是相同的符号,都朝一个方向变化,这样会发生什么问题呢?看看下面这张图吧!

在这里插入图片描述

  • 上图是以两个权值为例的,蓝线是我们期望的梯度方向,红线是探索的过程,“zig-zag、zig-zag,是魔鬼的步伐”,是不是看着就觉得替红线捏一把汗呀?
    所以Sigmoid函数还是比较鬼畜的。
tanh 函数

接下来简单介绍一下另一个函数——tanh。这个比较好的性质是满足零中心原则,但是饱和时仍然会发生梯度消失的现象。
在这里插入图片描述

ReLU / 修正线性单元 / 线性整流函数

ReLU(Rectified Linear Unit),中文名一般是修正线性单元。
在这里插入图片描述
函数形式较为简单:ReLU=max(0,x),这样的运算至少要比幂运算要快得多。因而它的运算要比tanh和Sigmoid快,快到6倍左右,而且在生物学角度上,它更符合生物学规律(WTF?)。来看看它的特征:

  • 在正半轴部分,这个函数永远不会饱和,假设我的输入值是10,那么不难看出它的梯度是1;又假设我的输入值是0,那梯度可以规定为0;那如果变成-10呢?出现了梯度消失。这个被称为dead ReLU,这种情况出现的原因是初始权值设置不恰当。
其它线性单元

接下来简要展示一些其它不错的线性单元(LU)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此外,还有Maxout等可供了解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值