神经网络基础-多层感知机

1. 多层感知机的概念

由于单层感知机被证明不能解决异或问题,神经网络的发展一度进入寒潮期,直到多层感知机的提出。多层感知机(Multi Layer Perceptron, MLP)在单层感知机的基础上引入了隐藏层。

图1 多层感知机 

H=XW_{1}=[x1,x2,x3,x4]\begin{bmatrix} w11 & w12& w13& w14& w15\\ w21 & w22 & w23& w24 &w25 \\ w31 & w32& w33& w34& w35\\ w41 & w42& w43& w44 &w45 \end{bmatrix}_{4\times 5}=[h1,h2,h3,h4,h5]

O=HW_{2}=[h1,h2,h3,h4,h5]\begin{bmatrix} w11 & w12& w13\\ w21 & w22& w23\\ w31& w32& w33\\ w41& w42& w43\\ w51& w52& w53 \end{pmatrix}_{5\times 3}=[o1,o2,o3]

权重矩阵的行数是输入层的变量个数,列数是输出层的变量个数。

2. 多层感知机的激活函数

激活函数在多层感知机中至关重要,如果没有激活函数,多层感知机将退化为单层网络

那么输出O可以整理为:

说到底,多次线性变换可以用一次线性变换得到。

但是,非线性的激活函数加入可以避免网络退化,输出O没办法整理为一层变换。

3. 常见激活函数

 在每一层线性变换后,引入激活函数,可以避免多层感知机退化为一层,多层感知机成为真正意义上的多层。

激活函数将非线性引入神经网络,非线性+线性的组合使神经网络可以逼近任意非线性函数,原理参考万能逼近定理(universal approximator)。

  • 激活函数需要具备如下几个特点:

(1)连续可导,但允许少数点上不可导,这样有利于实现数值优化的方法学习网络参数;

(2)激活函数及其导数应尽可能简单,便于计算;

(3)激活函数的导数值域要在合适的区间范围内,不能太大或太小,防止梯度消失或梯度爆炸。

  •  以下是三种常见激活函数。

(1)Sigmoid函数,经常用于二分输出的激活函数,将结果变换到[0,1]区间,使其符合概率分布的形式;在RNN中使用也较多,作为门控单元的激活函数,控制保留或遗忘。

(2)Tanh函数与Sigmoid函数相近,但值域有所不同,相比sigmoid函数,tanh函数更适合对值域有对称性要求的情况。

(3)Relu函数与前两种不同,不存在饱和区,因此经常被使用。可以观察到relu的导函数在Z=0处不可导,也就是激活函数的要求连续可导(但允许少数点上不可导)的情况。在实际使用中可以将z=0处的导数设置为0或1。

Sigmoid函数 和 Tanh函数 被称为饱和函数,都存在饱和区,即函数曲率为0,导函数值为0的区域,此区域会使梯度消失。Relu函数是非饱和函数。

图2 激活函数(蓝色线为函数曲线,橙色线为导函数曲线)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值