python 人脸识别:从入门到精通 (5.5)激活函数

5.5 激活函数

引入激活函数可以增加神经网络模型的非线性,以便增强对样本的拟合能力。

5.5.1 Sigmoid函数

S ( x ) = 1 1 + e − x S(x)=\frac{1}{1+e^{-x}} S(x)=1+ex1
S ( x ) ′ = S ( x ) [ 1 − S ( x ) ] S(x)'=S(x)[1-S(x)] S(x)=S(x)[1S(x)]
在这里插入图片描述

优点:
  1. 函数的导数容易计算
  2. 函数曲线平滑,在变量接近0时变化幅度最大
缺点:
  1. 函数的计算相对耗时
  2. 函数容易造成梯度弥散,在两侧

前面介绍的BN层可以用来防止梯度消失的发生。

5.5.2 Softmax激活函数

S i = e v i ∑ j C e v j S_i=\frac{e^{v_i}}{\sum_j^Ce^{v_j}} Si=jCevjevi

5.5.3 ReLU激活函数

ReLU激活函数,即修正线性单元(Rectified linear unit, ReLU).
R ( x ) = m a x ( 0 , x ) R(x)=max(0,x) R(x)=max(0,x)
在这里插入图片描述

优点:
  1. 单侧抑制,可以使得神经网络中的神经元具有稀疏激活的特性,让激活的更加“专一”,使模型更好挖掘相关特征
  2. 不会有梯度消失,加快收敛
  3. 导数易求

5.5.4 Keras中激活函数的使用

from keras.models import Sequential
from keras.layers import Conv2D,Dense
model = Sequential()
model.add(Conv2D(
    kernel_size=(9, 9),
    activation='relu',
    filters=48,
    strides=(4,4),
    input_shape=input_shape
))
from keras.layers import Activation, Dense
model.add(Dense(64))
model.add(Activation('sigmoid'))

model.add(Dense(64, activation='sigmoid'))
  • 指数线性单元 elu
  • 可伸缩的指数线性单元 SELU
  • 双曲正切激活函数 tanh
  • Softplus激活函数
  • Softsign激活函数
  • Hard sigmoid 激活函数
  • 带泄露的修正线性单元 LeakyReLU
  • 参数化的修正线性单元 PReLU
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值