为什么要使用sigmoid,tanh,ReLU等非线性函数?
参考:https://zhuanlan.zhihu.com/p/46255482
修正线性单元,是人工神经网络中常用的激活函数,通常指代以斜坡函数及其变种为代表的非线性函数。
这个原因大家都知道,为了增加非线性呗!
深度学习的目的是用一堆神经元堆出一个函数大致的样子,然后通过大量的数据去反向拟合出这个函数的各个参数,最终勾勒出函数的完整形状。
那如果激活函数只是线性函数,那一层层的线性函数堆起来还是线性的,这年头线性函数能干啥呀?
肯定不行,这样整个网络表现能力有限,所以要引入非线性的激活函数进来。
就是铅笔不够画的,咱得上带颜色、笔触更丰富的油画笔。
那为什么用ReLU呢?
我们先看ReLU和他的老对手sigmoid长什么样:
ReLU函数:
对比这俩函数能看出来,sigmoid有一个“梯度消失”的问题。
梯度消失什么意思呢?就是我们希望对每个神经元,激励函数都能尽量区分出z值变化,这样每个神经元的表达能力更强,但sigmoid明显在|z|>4的区间的梯度就不够看了,即它的梯度消失了。
相比之下,ReLU输出就很稳定,因为他z>0区间就是一个线性函数!不存在sigmoid的梯度消失的问题。
另一个ReLU很给力的地方就是稀疏度问题。就是我们希望每个神经元都能最大化的发挥它筛选的作用,符合某一个特征的中间值,使劲儿放大;不符合的,一刀切掉。
反观sigmoid就要黏糊的多。这个函数是很对称很美,但它面对负的z值仍然剪不断理还乱,会输出一个小的激励值(tanh会好一些但仍不能避免),形成所谓的“稠密表示”。
最后的最后,ReLU运算速度快,这个很明显了,max肯定比幂指数快的多。
为什么要使用sigmoid,tanh,ReLU等非线性函数?相关推荐
- 三种激活函数——Sigmoid,Tanh, ReLU以及卷积感受野的计算
1. 三种激活函数--Sigmoid, Tanh, ReLU 1.1 Sigmoid 1.1.1 公式 S ( x ) = 1 1 + e − x S(x) = \frac{1}{1 + e^{-x} ...
- 【Pytorch神经网络理论篇】 07 激活函数+Sigmoid+tanh+ReLU+Swish+Mish+GELU
①激活函数:主要通过加入非线性因素,你不线性模型表达能力不足的缺陷,因为神经网络中的数学基础是处处可微分的函数,故要求激活函数也应该保证数据的输入与输出是可微分. ②激活函数可以分为饱和激活函数与不饱 ...
- 激活函数总结sigmoid,tanh,relu,Leaky ReLU,RRelu,ELU,PRelu,SELU,swish
本文总结深度学习的损失函数及其优缺点. 激活函数是深度学习模型的重要成分,目的是将线性输入转换为非线性.常见的激活函数有sigmoid,tanh,ReLU等 1.sigmoid Sigmoid 非线性 ...
- 常见激活函数持续更新)sigmoid Tanh Relu Leaky-ReLU RReLU
激活函数是来向神经网络中引入非线性因素的,通过激活函数,神经网络就可以拟合各种曲线. sigmoid 公式: 函数图像: Sigmoid函数也叫 Logistic 函数,用于隐层神经元输出,取值范 ...
- 常用的激活函数汇总-Sigmoid, tanh, relu, elu
激活函数(又叫激励函数,后面就全部统称为激活函数)是模型整个结构中的非线性扭曲力,神经网络的每层都会有一个激活函数.那他到底是什么,有什么作用?都有哪些常见的激活函数呢? 深度学习的基本原理就是基于人 ...
- 【深度学习】激活函数:原理+常见激活函数(Sigmoid\Tanh\ReLU\Leaky ReLU\Softmax)
首先需要知道为什么要引入激活函数:激活函数是用来加入非线性因素的,因为线性模型的表达能力不够.引入非线性激活函数,可使深层神经网络的表达能力更加强大. 在深度学习中,线性模型只需要简单的全连接层就能实 ...
- 激活函数--Sigmoid,tanh,RELU,RELU6,Mish,Leaky ReLU等
激活函数 目前自己使用比较多的激活函数RELU, RELU6; LeakyReLU; SELU; Mish :激活函数看:计算量:准确率: 大多数激活函数pytorch里有已经包装好了: Non-li ...
- 深度学习- 激活函数总结(Sigmoid, Tanh, Relu, leaky Relu, PReLU, Maxout, ELU, Softmax,交叉熵函数)
激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题 激活函数通常有以下性质 – 非线性 – 可微性 – 单调性 –
- 【学习经验分享NO.16】超全代码-python画Sigmoid,ReLU,Tanh等十多种激活函数曲线及其梯度曲线(持续更新)
文章目录 前言 1. Sigmoid 2. tanh 3. ReLU 4. Leaky ReLU 5. ELU 6.PReLU 7. Softmax 8. Swish 9. Maxout 10. So ...
最新文章
- 零代码如何打造自己的实时监控预警系统
- 一次写多个字节的方法 || 数据追加续写
- element ui 空格_空格是您的UI朋友。 大量使用它。
- BlueHost Gzip优化JS和CSS传输
- AES-加密解密工具类
- 基于知识图谱的推荐系统综述
- 在 Mac 上如何获取扩展来自定 Safari 浏览器?
- java xss 参数_JAVA 重写HttpServletRequest的获取参数防止xss攻击
- DB9串口和RJ45接线图
- 基于51单片机的8x8x8LED光立方设计
- ADS入门,使用ADS创建和仿真一个简单的线路
- 解决mescroll固定位置上拉加载无效果?真的只需一步
- 基于STM32的AT24C08数据读写
- UE4 Sequencer的事件调用
- 使用 Docker Compose 构建复杂的多容器 App
- 模具冲压与模具设计知识点
- 淘淘商城第44讲——搭建搜索系统工程
- 欧拉路和欧拉回路知识
- SAP的成本中心和利润中心的关系
- BOOM!你的游戏手机突然出现
热门文章
- 170亿参数加持,微软发布史上最大Transformer模型
- 从4个月到7天,Netflix开源Python框架Metaflow有何提升性能的魔法?
- 旷视推出鼻纹识别,用AI寻找丢失宠物
- 售价1万7的华为Mate X很贵吗?
- 为什么让A.I.“顶天立地”需要6个多月?
- 如何在浏览器上跑深度学习模型?并且一行JS代码都不用写
- 重磅 | 李飞飞最新演讲:ImageNet后,我专注于这五件事——视觉理解、场景图,段落整合、视频分割及CLEVR数据集
- 漫画 | 阿姨,我不想努力了
- 为什么国内流行的 MyBatis ,国外 Java 工程师却不愿意使用?
- 支付宝二面:Mybatis接口Mapper内的方法为啥不能重载吗?我直接懵逼了...