目录
1.引言
2.激活函数类
2.1 Sigmoid
2.1.1 表达式与图像
2.1.2 优缺点
2.2 Tanh
2.2.1 表达式与图像
【深度学习|神经网络之激活函数】2.2.2 优缺点
2.3 Relu
2.3.1 表达式与图像
2.3.2 优缺点
2.4 Elu
2.4.1 表达式与图像
2.4.2 优缺点
3. 激活函数的选取
1.引言 上一篇文章我们提到了神经网络中前向传播中数据经过线性变换后会传入一个激活函数(activation function),以满足我们解决非线性问题的需求。
2.激活函数类 常见的激活函数有以下四种。
2.1 Sigmoid
2.1.1 表达式与图像
表达式:
文章图片
图像:
文章图片
2.1.2 优缺点
优点:
- 将整个实轴映射到
文章图片
区间内,输出值适合充当下一层的输入值。
- 由于该函数的导数最大值只有0.25,经过一层梯度值变为原来的四分之一,经过多层后梯度值会变得越来越接近0,在反向传播时容易出现梯度消失。
- 该函数图像不关于原点中心对称,称为不是0-均值的(zero-centered),会导致经过一层后梯度值同正或者同负,会使收敛缓慢。
- 该函数表达式中含有指幂,计算速度相对较慢,训练时间长。
表达式:
文章图片
图像:
文章图片
2.2.2 优缺点
优点:
- 修正了Sigmoid函数非0-均值的问题。
- 梯度爆炸和梯度消失的线性仍然存在。
- 运输缓慢
表达式:
文章图片
图像:
文章图片
2.3.2 优缺点
优点:
- 不存在梯度消失的现象
- 表达式简单,计算迅速
- 非0-均值的
-
文章图片
为不可导点,但是可以采用次梯度(sub-gradient)解决 - 由于该函数负半轴恒为0,参数设置不当可能会导致部分神经元的值始终不发生改变,该现象称为神经元死亡(Dead ReLU Problem)
表达式:
文章图片
图像:
文章图片
2.4.2 优缺点
优点:
- 近似0-均值的
- 避免了神经元死亡现象
- 含有指幂,计算速度略慢
首先,深度学习中我们一般不选取Sigmoid函数,Tanh函数倒是可以一试,通常使用Relu函数或者Elu函数,因为它们收敛速度较快。
其次,要注意的是,如果选取Relu函数一定要选择合适的学习率(learning rate)
总的来说,我们要根据数据特点尽量选择收敛速度快的,0-均值的激活函数。
推荐阅读
- 超分辨率技术AI人工智能老照片修复自动人像脑补照片高清重建人脸模糊图片变清晰软件
- 人工智能|隐马尔可夫模型基础介绍
- ★MATLAB算法仿真经验|在隧道内放置多个地感线圈,车辆通过时、对通过的相邻两个线圈的脉冲信号数据进行实时采集,首先利用云模型算法,计算得到车速
- 从零开始的神经网络构建历程(一)
- python|numpy刷题——02
- opencv|OpenCV imread报错 error: (-215) size.width > 0 && size.height > 0 in function
- 人工智能|硕士小哥将iphoneX充电口改成Type-C,成品在eBay上拍卖,出价已超过56万元
- 物联网|鸿蒙用户突破3亿,拳打谷歌安卓,脚踢苹果iOS
- [开发环境部署]Python3.8下载和安装教程