激活函数

  • 激活函数是什么?
  • 激活函数有什么用
  • 非线性因素解决什么问题
  • 参考资料

激活函数是什么?

激活函数的主要作用是提供网络的非线性建模能力。如果没有激活函数,那么该网络仅能够表达线性映射,此时即便有再多的隐藏层,其整个网络跟单层神经网络也是等价的。因此也可以认为,只有加入了激活函数之后,深度神经网络才具备了分层的非线性映射学习能力。 那么激活函数应该具有什么样的性质呢?

可微性: 当优化方法是基于梯度的时候,这个性质是必须的。
单调性当激活函数是单调的时候,单层网络能够保证是凸函数。
输出值的范围: 当激活函数输出值是 有限 的时候,基于梯度的优化方法会更加 稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是 无限 的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的learning rate

激活函数有什么用

激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题

非线性因素解决什么问题

首先我们有这个需求,就是二分类问题,如我要将下面的三角形和圆形点进行正确的分类,如下图:

利用我们单层的感知机, 用它可以划出一条线, 把平面分割开:


上图直线是由w1x1+w2x2+b=0w_1x_1+w_2x_2+b=0w1​x1​+w2​x2​+b=0得到,那么该感知器实现预测的功能步骤如下,就是我已经训练好了一个感知器模型,后面对于要预测的样本点,带入模型中,如果y>0y>0y>0那么就说明是直线的右侧,也就是正类(我们这里是三角形),如果y<0y<0y<0,那么就说明是直线的左侧,也就是负类(我们这里是圆形),虽然这和我们的题目关系不大,但是还是提一下~

好吧,很容易能够看出,我给出的样本点根本不是线性可分的,一个感知器无论得到的直线怎么动,都不可能完全正确的将三角形与圆形区分出来,那么我们很容易想到用多个感知器来进行组合,以便获得更大的分类问题,好的,下面我们上图,看是否可行:

好的,我们已经得到了多感知器分类器了,那么它的分类能力是否强大到能将非线性数据点正确分类开呢~我们来分析一下:

我们能够得到


哎呀呀,不得了,这个式子看起来非常复杂,估计应该可以处理我上面的情况了吧,哈哈哈哈~不一定额,我们来给它变个形.上面公式合并同类项后等价于下面公式:

啧啧,估计大家都看出了,不管它怎么组合,最多就是线性方程的组合,最后得到的分类器本质还是一个线性方程,该处理不了的非线性问题,它还是处理不了。

就好像下图,直线无论在平面上如果旋转,都不可能完全正确的分开三角形和圆形点:

既然是非线性问题,总有线性方程不能正确分类的地方~

那么抛开神经网络中神经元需不需要激活函数这点不说,如果没有激活函数,仅仅是线性函数的组合解决的问题太有限了,碰到非线性问题就束手无策了.那么加入激活函数是否可能能够解决呢?

在上面线性方程的组合过程中(在加入阶跃激活函数的时候),我们其实类似在做三条直线的组合,如下图:

下面我们来讲一下激活函数,我们都知道,每一层叠加完了之后,我们需要加入一个激活函数(激活函数的种类也很多,如sigmoid等等~)这里就给出sigmoid例子,如下图:


通过这个激活函数映射之后,输出很明显就是一个非线性函数!能不能解决一开始的非线性分类问题不清楚,但是至少说明有可能啊,上面不加入激活函数神经网络压根就不可能解决这个问题~

同理,扩展到多个神经元组合的情况时候,表达能力就会更强~对应的组合图如下:(现在已经升级为三个非线性感知器在组合了)

跟上面线性组合相对应的非线性组合如下:

这看起来厉害多了,是不是?最后再通过最优化损失函数的做法,我们能够学习到不断学习靠近能够正确分类三角形和圆形点的曲线,到底会学到什么曲线,不知道到底具体的样子,也许是下面这个~

那么随着不断训练优化,我们也就能够解决非线性的问题了~

所以到这里为止,我们就解释了这个观点,加入激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题。

参考资料

https://zhuanlan.zhihu.com/p/25279356
https://www.cnblogs.com/missidiot/p/9378079.html
https://www.zhihu.com/question/38549801

深度学习-为什么用激活函数相关推荐

  1. Homepage Machine Learning Algorithm 浅谈深度学习中的激活函数 - The Activation Function in Deep Learning

    原文地址:http://www.cnblogs.com/rgvb178/p/6055213.html 版权声明:本文为博主原创文章,未经博主允许不得转载. 激活函数的作用 首先,激活函数不是真的要去激 ...

  2. Keras深度学习实战(4)——深度学习中常用激活函数和损失函数详解

    Keras深度学习实战(4)--深度学习中常用激活函数和损失函数详解 常用激活函数 Sigmoid 激活函数 Tanh 激活函数 ReLU 激活函数 线性激活函数 Softmax 激活函数 损失函数 ...

  3. 盘点 深度学习妖怪 之 激活函数妖

    盘点 深度学习妖怪 之 激活函数妖 哈哈,捉妖师的我这次给大家简单盘点一下那些在深度神经网络中兴风作浪的激活函数都有哪些妖怪吧,个个身手不凡,狡猾狡猾滴! 在此之前先给说下我们在使用神经网络的时候为啥 ...

  4. 深度学习入门之激活函数

    深度学习入门之激活函数 参考书籍:深度学习入门--基于pyhthon的理论与实现 文章目录 深度学习入门之激活函数 前言 一.sigmoid函数 1.简介 2.python实现 3.函数用法 二.阶跃 ...

  5. R语言使用自定义函数编写深度学习Leaky ReLU激活函数、并可视化Leaky ReLU激活函数

    R语言使用自定义函数编写深度学习Leaky ReLU激活函数.并可视化Leaky ReLU激活函数 目录

  6. 浅谈深度学习中的激活函数 - The Activation Function in Deep Learning

    原文地址:http://www.cnblogs.com/rgvb178/p/6055213.html 版权声明:本文为博主原创文章,未经博主允许不得转载. 激活函数的作用 首先,激活函数不是真的要去激 ...

  7. 深度学习中的激活函数与梯度消失

    转载请注明出处:http://www.cnblogs.com/willnote/p/6912798.html 前言 深度学习的基本原理是基于人工神经网络,信号从一个神经元进入,经过非线性的激活函数,传 ...

  8. 深度学习中各激活函数的优缺点

    转自:https://blog.csdn.net/NOT_GUY/article/details/78749509 在深度学习中,信号从一个神经元传入到下一层神经元之前是通过线性叠加来计算的,而进入下 ...

  9. 吴恩达深度学习 —— 3.6 激活函数

    要搭建一个神经网络,可以选择的是选择隐层里用哪一个激活函数,还有神经网络的输出单元用什么激活函数. 到目前为止,我们一直用的是sigmoid激活函数,但有时候其它函数效果要好得多,我们看看一些可供选择 ...

  10. 深入理解深度学习中的激活函数

    1. 什么是激活函数? 生物神经网络是人工神经网络的起源.然而,人工神经网络(ANNs)的工作机制与大脑的工作机制并不是十分的相似.不过在我们了解为什么把激活函数应用在人工神经网络中之前,了解一下激活 ...

最新文章

  1. 终于有人把如何精通C++讲明白了!
  2. 说说“偏差处理”那点事
  3. c语言普通变量间接访问,C语言学习笔记-指针
  4. 3没有样式重置_系统重置新增选项,99%的人不知道怎么选
  5. 计算机用户名密码策略,设置域用户帐户密码策略
  6. 第四篇 Python循环
  7. echart 饼图标题title的详细参数配置
  8. VirtualBox中的虚拟网络环境设置
  9. Javascript项目
  10. HTML5解密——HTML5无法盈利
  11. html 导航菜单切换效果,纯CSS实现Tab导航栏切换
  12. zabbix 3.2 php,zabbix3.2.3安装教程
  13. 腾讯信鸽推送php,腾讯信鸽推送业务封装类-PHP版
  14. html5 css3 JavaScript响应式中文静态网页模板js源代码
  15. vue表格根据属性值设置背景颜色、vue表格设置鼠标悬浮背景颜色、vue表格的隔行变色修改背景颜色
  16. 怎么让热图显示基因名_如何将 qPCR 数据做成热图
  17. 【汇正财经】企业资本的意义
  18. 修改CAD图纸背景颜色的方法?
  19. python结束线程_python终止线程
  20. ble l2cap 工作过程_从车联网安全到BLE安全(二)

热门文章

  1. linux运维实战练习--用户和组管理各命令的使用
  2. showModalDialog模态对话框 的使用及一般问题的解决
  3. Debian操作系统的源配置信息详解--Source.list配置文件详解
  4. ZooKeeper观察员--ZooKeeperObservers
  5. yarn报错:error An unexpected error occurred: “https://registry.yarnpkg.com/-/user/org.couchdb。。。
  6. 【Python爬虫】股票数据定向爬虫
  7. 【Python】玫瑰花绘制
  8. 【网站】Bing每日壁纸API分享
  9. 【C语言】分别用下标法,地址法和指针法输出数组中的全部元素
  10. C#LeetCode刷题之#415-字符串相加(Add Strings)