神经网络中有个词叫做 activation——激活函数
现假设一神经网络N,其中w为权值参数,x为输入,b为偏置。神经网络中上层的信号  wx+b 在作为下层的输入 之前,需要 使用 激活函数激活。

why?从两个角度解释

A:如果不用激活函数(其实相当于激活函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了。引入非线性函数作为激活函数,这样深层神经网络就有意义了(不再是输入的线性组合,可以逼近任意函数)。

B : 在网络N中,并不是所有的上一层信号都可以激活下一层,如果所有的上一层信号都可以激活下一层,那么这一层相当于什么都没有做。因此需要选择一些信号激活下一层的神经元。如何表示激活呢?就是当activation function的输出结果是0,就代表抑制;是1,就代表激活。

Q2:为什么引入Relu呢?
第一,采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。
第二,对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失,参见

@Haofeng Li答案的第三点),从而无法完成深层网络的训练。

第三,Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生(以及一些人的生物解释balabala)。

当然现在也有一些对relu的改进,比如prelu,random relu等,在不同的数据集上会有一些训练速度上或者准确率上的改进,具体的大家可以找相关的paper看。
多加一句,现在主流的做法,会多做一步batch normalization,尽可能保证每一层网络的输入具有相同的分布[1]。而最新的paper[2],他们在加入bypass connection之后,发现改变batch normalization的位置会有更好的效果。大家有兴趣可以看下。

[1] Ioffe S, Szegedy C. Batch normalization: Accelerating deep network training by reducing internal covariate shift[J]. arXiv preprint arXiv:1502.03167, 2015.
[2] He, Kaiming, et al. "Identity Mappings in Deep Residual Networks." arXiv preprint arXiv:1603.05027 (2016).



深度学习——神经网络中的activation相关推荐

  1. [深度学习] 神经网络中的 batch 和 epoch

    参考文章为 神经网络中Batch和Epoch之间的区别是什么? Sample Sample是单个数据.即有意义的数据的最小单位. 训练数据集由许多Sample组成. batch batch是一个人为设 ...

  2. 深度学习神经网络中的MASK机制

    简单来说就是得出A然后结合A与下一个特征得出B,结合A,B与下一个特征得出C,那么整个句子的内在关联就是Z=A+B+C

  3. 深度学习算法中卷积神经网络的应用

    下面一起来探讨一下关于深度学习算法中卷积神经网络的基本概念和应用: 1.卷积神经网络基本概念 卷积神经网络也是在传统人工神经网络的基础上发展起来的,它与 BP 神经网络有很大的相似之处,但也有很大的区 ...

  4. matlab在图像识别(深度学习神经网络)中的使用(转)

    前言: 1)图像识别用途甚广,解决的算法之一,是深度学习神经网络.matlab近几个版本,对这块的语法修改较多,总体而言,用户用起来更方便了: 2)这里以2018a版本为例,做一些粗略的说明. 1.概 ...

  5. 从参数数量视角理解深度学习神经网络算法 DNN, CNN, RNN, LSTM 以python为工具

    从参数数量视角理解深度学习神经网络算法 DNN, CNN, RNN, LSTM 以python为工具 文章目录 1. 神经网络数据预处理 1.1 常规预测情景 1.2 文本预测场景 2.全连接神经网络 ...

  6. DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略

    DL:深度学习(神经网络)的简介.基础知识(神经元/感知机.训练策略.预测原理).算法分类.经典案例应用之详细攻略 目录 深度学习(神经网络)的简介 1.深度学习浪潮兴起的三大因素 深度学习(神经网络 ...

  7. 【AI初识境】深度学习模型中的Normalization,你懂了多少?

    文章首发于微信公众号<有三AI> [AI初识境]深度学习模型中的Normalization,你懂了多少? 这是<AI初识境>第6篇,这次我们说说Normalization.所谓 ...

  8. 寻找下一款Prisma APP:深度学习在图像处理中的应用探讨

    在9月23日到9月24日的MDCC 2016年中国移动者开发大会"人工智能与机器人"专场中,阿里云技术专家周昌进行了题为<寻找下一款Prisma APP:深度学习在图像处理中 ...

  9. Keras 深度学习框架中文文档

    2019独角兽企业重金招聘Python工程师标准>>> Keras深度学习框架中文文档 Keras官网:http://keras.io/ Github项目:https://githu ...

最新文章

  1. LoRa VS NB-IoT,一场物联网时代C位争夺战
  2. [推荐]最强最全的电脑硬件知识
  3. MOSS字段编辑权限控制方案--发布源码
  4. 实战SSM_O2O商铺_07【商铺注册】DAO层-新增与更新商铺
  5. linux tomcat apr安装,Linux下Tomcat安装并开启APR模式-Go语言中文社区
  6. ios 监听数组个数的变化_【iOS】KVO方式监听数组的变化动态刷新tableView
  7. git命令提交本地代码到远程仓库
  8. 大数据开发笔记(七):Kafka分布式流式处理
  9. 基于堆叠卷积长短期神经网络【CNNLSTM】模型的时序数据预测分析
  10. Java测试用例简介
  11. 杰控组态自定义串口通讯的经验
  12. shell脚本实现彩色进度条
  13. java算法编程题:利用单链表求集合的交集、并集和补集
  14. 【倒计时1天】PPP全球数字资产投资峰会-中国区北京首站之金融科技区块链支持可持续发展...
  15. Leco题目:寻找两个正序数组的中位数
  16. 计算机系统结构专业学什么,江苏大学专业介绍:计算机系统结构
  17. Onenote 同步 PAC加速方式
  18. 网站项目计划书的写法如何写网站设计策划书
  19. 2天,我把MySQL索引、锁、事务、分库分表撸干净了!
  20. 基于高通X55平台的5G模组iperf灌包参数配置

热门文章

  1. ubuntu如何卸载软件
  2. (42)2021-03-01(物体运动、swiper软件、自执行函数)
  3. “ORA-28007: the password cannot be reused”解决
  4. 基于Android的记账APP论文,基于Android平台的手机记账系统的设计与实现
  5. Flask Web学习(5)----Markdown 和Flask -Pagedown的使用
  6. emqttd 2.2安装和测试使用
  7. 【实习日志】SSM用户管理系统搭建+更新
  8. linux syscall
  9. 安卓SDK——人脸识别
  10. 【每日一句】名人金句学英语(1130)