激活函数

为什么要引入激活函数?

为神经网络引入非线性属性,也就是说,我们希望神经网络既能计算线形函数,也能计算非线性函数。

1.sigmoid

在这里插入图片描述
优点:

  • 输出在0-1之间,单调连续,输出范围有限
  • 容易求导: f ( x ) ′ = f ( x ) ( 1 − f ( x ) ) f{\left( x \right)^\prime } = f\left( x \right)\left( {1 - f\left( x \right)} \right) f(x)=f(x)(1f(x))
    缺点:
  • 导致模型的梯度消失
    误差反向传播时会有: ∂ E ∂ y ( x ) ∂ y ( x ) ∂ θ \frac{{\partial E}}{{\partial y\left( x \right)}}\frac{{\partial y\left( x \right)}}{{\partial \theta }} y(x)Eθy(x) ,而一次反向传播,对激活函数有: ∂ σ ( x ) ∂ θ = σ ( 1 − σ ) < 1 \frac{{\partial \sigma \left( x \right)}}{{\partial \theta }} = \sigma (1 - \sigma ) < 1 θσ(x)=σ(1σ)<1,这样反向传播多次以后,会有 ( σ ( 1 − σ ) ) n → 0 {\left( {\sigma (1 - \sigma )} \right)^n} \to {\rm{0}} (σ(1σ))n0 ,也就是梯度会消失,参数没有办法学习。
  • 输出不是以0为基准的,(函数值总为正的,权重的梯度会全部为正或者为负,这会导致梯度向完全不同的方向更新,使得优化困难)
  • 指数运算比较慢,计算机使用泰勒展开求的。

2.tanh

因为sigmoid函数不是以0为基准,想把它变为0为基准,一个简单的办法是把sigmoid乘2-1,把0.5那一点拉回原点。这就得到了tanh函数

在这里插入图片描述

f ( x ) = tanh ⁡ ( x ) = e x − e − x e x + e − x f(x) = \tanh (x) = \frac{{{e^x} - {e^{ - x}}}}{{{e^x} + {e^{ - x}}}} f(x)=tanh(x)=ex+exexex
= 1 − e − 2 x 1 + e − 2 x {\rm{ = }}\frac{{1 - {e^{ - 2x}}}}{{1 + {e^{ - 2x}}}} =1+e2x1e2x
= 2 1 + e − 2 x − 1 {\rm{ = }}\frac{2}{{1 + {e^{ - 2x}}}} - 1 =1+e2x21
= 2 s i g m o i d ( 2 x ) − 1 {\rm{ = 2sigmoid(2x) - 1}} =2sigmoid(2x)1
优点:

  • 收敛速度比sigmoid快

  • 因为均值在原点,输出中心以0为中心
    缺点:

  • 梯度消失

  • 指数运算

为什么要以0为中心? 对sigmoid而言取其梯度,中心点在0.5,则均值在0.5处,当大量的数据叠加的时候,再进行反向传播时,会导致其均值不断叠加,见下图红点处。但如果刚开始均值就在零点处,后面也一直会在零点附近波动,使得梯度可以控制。

在这里插入图片描述

3.1 Relu

f ( x ) = max ⁡ ( x , 0 ) f\left( x \right) = \max (x,0) f(x)=max(x,0)
在这里插入图片描述
优点:

  • 非饱和,收敛速度快
  • 计算简单
  • 缓解了梯度消失问题,导数是个常数
    缺点:
  • 在x小于0的时候,梯度为0,参数无法更新,会导致神经元出现死亡

3.2 Leaky Relu / PRelu

为了防止神经元死亡的问题,在x负半轴,把那部分的梯度变为一个很小的值,比如说图中乘以一个很小的系数:

在这里插入图片描述
Leaky Relu中该系数是固定的,是人为定义的。
PRelu中该系数是通过数据学习到的,而不是预先定义的。

3.3 Leaky Relu / PRelu

还有一种是RRelu,即该系数的范围是从一个均匀的分布中随机抽取的数值
在这里插入图片描述

关于relu的总结:
常用于隐藏层,很少用于输出的激活函数
输出层如果是多分类问题,用softmax函数,如果是回归问题,用线形函数
参考:https://www.bilibili.com/video/av43533515?from=search&seid=12719173884000066379

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

通信仿真爱好者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值