激活函数


关于激活函数

激活函数,英文:Activation Function

大部分工具,都要考虑他使用的场景。百度词条上会将激活函数,和他所服务的神经网络联系在一起。他们注重全面、无错误,却没有解释到本质;不够熟悉神经网络这个体系架构、以及各种专业词的人,看这个解释基本都是云里雾里,这代表根本不理解。

什么叫激活?就是说,原来是死的,使用这个函数后活了。
不同的激活函数,体现的是:
1、有的继续死,有的活过来了;(有条件/阈值)
2、活过来的的血量不同,有人 80%,有人 40%。(有权重 )


下面介绍常用的不同的激活函数


阶跃函数

在这里插入图片描述

在这里插入图片描述

是有限段分段常数函数的组合

意思就是:
1、大于0 就为1,小于0就为0;
2、你可以想象成,达成某个标准就OK,没达成就不行。
比如 60分就及格,60分一下就不及格,简单粗暴。


sigmoid 函数

在这里插入图片描述

公式
$ g(z) = \frac{1}{1+e^{-z}} $

  • g : R → [ 0 , 1 ] g:\mathbb{R} \to [0,1] g:R[0,1]
  • g ( 0 ) = 0.5 g(0)=0.5 g(0)=0.5
  • g ( − ∞ ) = 0 g(- \infty)=0 g()=0
  • g ( + ∞ ) = 1 g(+ \infty)=1 g(+)=1

  • 0-1的优势,可以表示为概率。可用于数据的归一化。
  • 缺点:梯度消失 和 偏置现象。

梯度消失
导数 f’(x)=f(x)(1-f(x)), 当x趋于无穷时,f(x)的两侧 导数逐渐趋于0。
在后向传递时,sigmoid向下传递的梯度包含了一个 f’(x)因子,因此,一旦落入两端的平滑区,f’(x) 就变得接近于0,导致了向后传递的梯度也非常小。
此时,网络参数很难得到有效训练,这种现象被称为梯度消失,一般在5层以内就会产生梯度消失的现 象。

sigmoid函数的输出均大于0,使得输出不是0 均值,称为偏置现象。


代码实现

def sigmoid(z):
    return 1 / (1 + np.exp(-z))

nums = np.arange(-10, 10, step=1) #creates a vector containing 20 equally spaced values from -10 to 10
fig, ax = plt.subplots(figsize=(12,4))
ax.plot(nums, sigmoid(nums), 'r')

RELU 函数

RELU:Rectified Linear Units,线性整流单元,或 修正线性单元。
在这里插入图片描述


公式
f ( x ) = m a x ( 0 , x ) f(x) = max(0, x) f(x)=max(0,x)


1、小于0,就全视为0;大于0,会去看你是多少;
2、可以通俗理解:有些地区女生相亲要看男方的房子,没房子就直接无视,不论其他方面有多优秀;有房子,再来看你的其他表现。


  • 计算简单,能节省训练时间
  • 当x>0时,梯度不变,解决了 sigmoid及tanh常见的梯度消失问题。
  • 常用于多层感知机以及 CNN。
  • 在RNN中不常见, 因为在多次循环神经元的操作之后,可能具有非常大的输出,与有界值的情况相比,更 容易发生输出值爆炸的情况。

tanh 函数

在这里插入图片描述


  • 输入映射到-1和1之间,以0为中心对称。
  • 梯度比sigmoid形梯度强(导数更陡 峭),因此收敛更快。
  • 也存在着与sigmoid函数类似的 对两端值不敏感梯度消失的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值