![图深度学习从理论到实践](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=1739258911-aIJv5CGpVvIA6Jmd7kT1SjZpm4vZ5ZgU-0-c24440cd1c4a4e22bbb26957a4a2b9dd)
图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=1739258911-zlszOJGE1AGCTTK5PbtB0qT2qVCAnzk7-0-e76c16926a65a814e577db8bc5692f9f)
图1-5 激活函数
Sigmoid函数的表达式为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9920.jpg?sign=1739258911-QBfXgVlLSjvIGqrUeUjs3c5BdzOCIPH4-0-7b93785867201ccc6397f1110206ef92)
Sigmoid函数的输出值映射在(0,1)之间,单调连续,可求导数,如图1-5(a)所示。但是包含指数计算和除法计算,导致计算复杂度高,同时求导后容易产生梯度趋近于0的问题,不利于神经网络的训练。
ReLU函数可以有效解决梯度消失问题,其函数形式为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9922.jpg?sign=1739258911-UuwsarDyE9S2C4QGfi9vppcej6YCNFPW-0-168990ffbe74f5ccec241566f419949c)
如图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=1739258911-ylE6be0gjYe3RNzYU14E0PpthYSPmipg-0-6b40abe096f60d36e732d31e9584fd1d)
输出层为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9927.jpg?sign=1739258911-jw8xhFvNcEK4MiYMtkC0rmLZq2Sm5iqj-0-4dfbc1fe6dc444e0b5e65507e75fed32)
下面用矩阵形式简化表达,令
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9929.jpg?sign=1739258911-sAU6iHelfHSODUb4YD3uXngTGsQBX4Sa-0-5341d993cb6045c142cea8abdd6f7e76)
则式(1.6)、式(1.7)可以简化为
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9930.jpg?sign=1739258911-ms88QVDYgjOr9hb43v8UUuoiHGLczShT-0-58bc8f32aa3f986d382ca68dfb8335f0)
![](https://epubservercos.yuewen.com/A97910/26580960009092706/epubprivate/OEBPS/Images/Figure-P13_9931.jpg?sign=1739258911-R8V2LbgKOrMEl67P0vY8HIHdepHJky5N-0-c4a44ab51efb450a21647f600ee45a59)
其中,C为偏置参数矩阵。由于,则图1-4中的三层结构可以压缩为两层感知机,采用数学归纳法,可以证明对每个神经元的激活函数都是线性函数的多层神经网络,故压缩为单层感知机。