ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

机器学习笔记:激活函数

2021-09-09 19:00:04  阅读:191  来源: 互联网

标签:输出 函数 sigmoid relu 笔记 input 激活


1 激活函数综述

激活函数:对输入信号进行线性/非线性变换

2 为什么激活函数要是非线性函数

        如果不用激活函数,在这种情况下你每一层节点的输入都是上层输出的线性函数,很容易验证,无论你神经网络 有多少层,输出都是输入的线性组合,与没有隐藏层效果相当。那么网络的逼近能力就相当有限。

        正因为上面的原因,我们决定引入非线性函数作为激活函 数,这样深层神经网络表达能力就更加强大(不再是输入的线性组合,而是几乎可以逼近任 意函数)

3 激活函数举例

3.1 softmax

一般最后一个输出层可能用它来归一化

经过softmax后每一个单元取值都是介于0和1之间的概率值 ,且和为1——>这是变换后可被解释成概率的基本前提。

选择概率值最大的类别作为最终的分类结果(对于多分类问题来说)

3.2 tanh

和sigmoid类似 ,也是将(-∞,∞)压缩到一个有限的空间中。

和sigmoid不一样的地方是,sigmoid 压缩至[0,1],tanh压缩至(-1,1)

 3.3 sigmoid

将所有结果压缩到[0~1]上——可以用来进行二元分类,σ(x)表示了一个类的概率

 3.4 ReLU(线性整流单元)

 

  • 便于计算
  • 可以解决梯度衰减问题

 小于0的输出值,经过激活函数之后,输出为0,那么这些值我们可以去除:变成一个细长的线性网络

        但这并不是说明通过relu之后,我们得到了一个线性模型,因为随着input的不同,模型是一直在变的(经过后,那些神经元有值是变化的。也就是说,relu连接的边会发生变化)

3.4.1 relu的变体

 3.5 Maxout

 relu是特殊的maxout,相当于一个虚拟神经元的输出肯定为0,然后进行比较,看保留哪个

 

 maxout对应的分段函数有几段,取决于一次性比较几个输出

 3.5.1 maxout的训练

每一次给定不同的input,连接的边都是不一样的,训练的方式也自然不同。(每一次只更新目前连着的这些参数)

但因为不同的input对应不同的连接方式,所以每个weight实际上都会被train到(CNN中的max pooling的训练方式同理)

 

 

 

 

标签:输出,函数,sigmoid,relu,笔记,input,激活
来源: https://blog.csdn.net/qq_40206371/article/details/120207049

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有