![图深度学习从理论到实践](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=1739398438-FjXJGSQr2DblCHMsmbshMzJ07oVqkhAh-0-a4349cd064102acbe5ea073f0b8b3987)
图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=1739398438-SHX2fFFGRSsCGvdWqeFjrHRFJjR2ntIL-0-1c20a0fb9bd415c404b7f2b3a7311f73)
图1-5 激活函数
Sigmoid函数的表达式为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9920.jpg?sign=1739398438-hSPVBNuqMDRQQMopnU3RfXVZ9MjuGfb3-0-dd7c806ecb287218f49cc6c35c85a8ad)
Sigmoid函数的输出值映射在(0,1)之间,单调连续,可求导数,如图1-5(a)所示。但是包含指数计算和除法计算,导致计算复杂度高,同时求导后容易产生梯度趋近于0的问题,不利于神经网络的训练。
ReLU函数可以有效解决梯度消失问题,其函数形式为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9922.jpg?sign=1739398438-3xw2eHuEmKF6moN2KqJuo83oMC7su84K-0-5f1d4ea0cb9cf62956f306497cff2d01)
如图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=1739398438-TiHSvk5u3LL3aVoZec9UpHZE6ScnMHjB-0-64e5d6d7466f3ea1a5fe9f69a7be012d)
输出层为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9927.jpg?sign=1739398438-LDNNbD3IFoaSQ102UOdQualIXG6u6Mbr-0-a04107ad039fd35a5053e72c5ab89cee)
下面用矩阵形式简化表达,令
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9929.jpg?sign=1739398438-r9uEc4B2Wttej0a2V29ZhZL0msNSe3ur-0-4f42861fc459bfe072c229424c393a79)
则式(1.6)、式(1.7)可以简化为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9930.jpg?sign=1739398438-hCedOCJiWN6rV2JLwr6TIUXSuM4fqbvH-0-9cdb5db11e5b5aaa5520eb573070d9c0)
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9931.jpg?sign=1739398438-d9KLxGH6bL5rGf2Gy5LiB2VTNKPqgXQ1-0-47f22e4fd9a088bb4f3a29b76a769116)
其中,C为偏置参数矩阵。由于,则图1-4中的三层结构可以压缩为两层感知机,采用数学归纳法,可以证明对每个神经元的激活函数都是线性函数的多层神经网络,故压缩为单层感知机。