激活函数

激活函数

因为线性的卷积运算,无法形成复杂的空间表示,故很难提取出高语义的信息,因此需要加入非线性的映射,称为激活函数,可以逼近任意的非线性函数,以提升整个神经网络的表达能力.

常用的激活函数

  1. Sigmoid 函数

σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1+e^{-x}} σ(x)=1+ex1
\sigma(x) 的导数计算

σ ( x ) ′ = ( 1 1 + e − x ) ′ = 1 − 1 1 + e − x = 1 − σ ( x ) \sigma(x)' = \left(\frac{1}{1+e^{-x}}\right)' = 1 - \frac{1}{1+e^{-x}} = 1- \sigma(x) σ(x)=(1+ex1)=11+ex1=1σ(x)
目的是将一个实数输入转化到 0~1 之间的输出,具体的说也是将越大的负数转化到越靠近 0, 将越大的正数转化到越靠近 1. 即 0 端对应抑制状态,1 端对应激活状态. 中间部分梯度大.

在这里插入图片描述

缺点:

(1) Sigmoid 函数会造成梯度消失. 靠近 0 和 1 两端时,梯度几乎变为 0,
(2) Sigmoid 输出不是以 0 为均值, 这会导致经过 SIgmoid 激活函数之后的输出,作为最后一层网络的输入时候是非 0 均值,这个时候如果输入进入下一层神经元时全是正的,这就导梯度全是正的, 更新参数时永远是整的。

  1. ReLU 函数
    为了缓解梯度消失现象,修正线性单元,引入 ReLU 函数,

$$
ReLU(x) = max(0, x) = \left{

$$

R e L U ( x ) = m a x ( 0 , x ) = { 0 = i f x < 0 x = i f x ≥ 0 ReLU(x)=max(0, x)=\left\{ \begin{aligned} 0 & = & if x < 0 \\ x & = & if x \geq 0 \\ \end{aligned} \right. ReLU(x)=max(0,x)={0x==ifx<0ifx0

在这里插入图片描述

ReLU 函数在 小于 0 的部分,值与梯度皆为 0,而在大于 0 的部分中导数保持为 1,避免 SIgmoid 函数的梯度消失问题.

还有很多激活函数这不一一介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值