机器学习笔记:激活函数

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的训练方式同理)

 

 

 

 

上一篇:激活函数篇(整理自网上的资源,侵删)


下一篇:机器学习--接基本概念