![图深度学习从理论到实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/488/47216488/b_47216488.jpg)
1.2.2 多层感知机
为了进一步挖掘感知机的能力,20世纪80年代,多层感知机(Multilayer Perception,MLP)被提了出来。多层感知机是单个感知机的推广,用来克服感知机不能对线性不可分数据进行识别的弱点。多层感知机在单层感知机的基础上引入了一到多个隐藏层,基本结构由三层组成。第一层为输入层(Input Layer),第二层为隐藏层(Hidden Layer),第三层为输出层(Output Layer),如图1-4所示。
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P12_5514.jpg?sign=1739287544-znc4jxHo4vqRksmifJFAALXgiMoSccm9-0-dbef64fb72bcff3a84e1d89f45c7c61f)
图1-4 多层感知机示例
多层感知机相比单个感知机,除层数多之外,还增加了激活函数(Activation Function)。类似于图1-3中的阶跃函数的作用,神经元节点对上层输入权重求和之后,经历一个函数变换后作为最终输出,这个变换称为激活函数。阶跃函数就是一种激活函数,除此之外,神经网络中常见的激活函数还有Sigmoid和线性整流(Rectified Linear Unit,ReLU)函数,如图1-5所示。下面分别介绍。
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_5519.jpg?sign=1739287544-PHs9gr36OUVLmdEDXs0hSxD4ZZK9vygh-0-fdd495074ce03c22e817fc0fe792c30c)
图1-5 激活函数
Sigmoid函数的表达式为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9920.jpg?sign=1739287544-lyNBoR4571rTV5diVv7AkJWKeblkddrI-0-c5c8504ee0ee91cea8c4865dddc03cfe)
Sigmoid函数的输出值映射在(0,1)之间,单调连续,可求导数,如图1-5(a)所示。但是包含指数计算和除法计算,导致计算复杂度高,同时求导后容易产生梯度趋近于0的问题,不利于神经网络的训练。
ReLU函数可以有效解决梯度消失问题,其函数形式为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9922.jpg?sign=1739287544-cJw5xTTvYMGKOY1xNQZa433XwWtDHGB4-0-f9bf63c9f0aafcd6f717da980ab28249)
如图1-5(b)所示,当输入为正时,输出为正,当输入为负时,输出为0。
对于激活函数,需要注意的一点是,若每个神经元的激活函数都是线性函数,那么任意层数多层感知机都可被简化成一个等价的单层感知器。下面做简单证明,假设线性激活函数为f1(x)=k1x+c1,f2(x)=k2x+c2,那么隐藏层为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9926.jpg?sign=1739287544-ArMCcH5hNO5ljJdJIuH5lw6uAZjyyJdS-0-3db19c5f87e079c759340dd12cd63a8e)
输出层为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9927.jpg?sign=1739287544-db0W6hKgbR2KUiq7Xf8BVi7tSEkujW9s-0-990d262b69769f2666644fe3d0a4aee8)
下面用矩阵形式简化表达,令
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9929.jpg?sign=1739287544-w0YRjDFYsRtyDnE7FgvBiwyacnmOpvZ3-0-dfe4a5e3a2451da7376cd7fdd3e9c672)
则式(1.6)、式(1.7)可以简化为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9930.jpg?sign=1739287544-AoGh3EfnmehE9cGWUJrjbP3MVIhxnWHL-0-b1b623b6d6a569f60615b7e9bde55132)
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9931.jpg?sign=1739287544-Vu7abrr3GDlE9eOPQuNeddOEiddDqAwM-0-fd496ed2d07ba0fc0222a15167eccde0)
其中,C为偏置参数矩阵。由于,则图1-4中的三层结构可以压缩为两层感知机,采用数学归纳法,可以证明对每个神经元的激活函数都是线性函数的多层神经网络,故压缩为单层感知机。