深度学习入门:“感知机”小结
说明
以下内容是我阅读学习《深度学习入门:基于Python的理论与实现》一书的个人小结。本人新手入门,理解可能会不到位,以下内容仅用作个人学习记录并与大家交流分享。
什么是感知机?
依照我的理解,有信号输入,然后有一个信号输出的机器(或者说机制)就是一个感知机。下图1便是一个简单的感知机:有两个信号输入,分别乘以权重便得到中间值tmp,即 tmp=,然后判断tmp是否大于阈值 ,若大于阈值输出,否则。
通过修改权重和阈值的数值大小可以构建简单的逻辑电路,比如与门、或门和与非门。关于详细的构建方法与Python实现可以参考《深度学习入门:基于Python的理论与实现》一书。顺便一提,因为感知机可以构建与非门,因此理论上还能用来构建计算机。
单层感知机的局限性
画个图可以看出,与门、或门和与非门都可以线性分割,但对于异或门却不能用线性分割。所谓线性分割就是用一条直线去区分不同的输出情况。以或门为例,如图2所示,用一条直线可以区分△和○(△:○:),不同的权重和阈值可以构建不同的直线,理论上是无数条。但对于异或门(如图3)却不可能用一条直线将△和○(△:○:)区分开,只能用曲线将△和○划分为两个空间。这里,用直线区分得到的两个空间,如或门的△和○空间,叫做线性空间;用曲线区分得到的两个空间,如异或门的△和○空间,叫做非线性空间。线性空间和非线性空间是机器学习领域中非常常见的术语,务必熟悉。显然,单层感知机只能构建线性空间,因此没办法用单层感知机构建非线性空间的异或门。
多层感知机
多层感知机就是叠加了多个感知机。如图4所示,第0层是信号输入层,有两个信号输入给第一层的两个感知机;信号经过第一层的两个感知机得到两个输出信号;两个输出信号作为第二层感知机的输入信号,经过第二层感知机,从而得到输出信号。我个人认为图4这个图画的还不是很准确,应该再多加一个输出层,如图5所示,这样才能更好的反映感知机的作用。图1也应该多加一个输出层。
为了解决单层感知机无法表示异或门的情况,我们可以用双层感知机来表示,如图6所示。真值表如图7所示。
小结
至此,感知机的概念就讲完了。本质上来说,感知机就是一个信号转换器。单层感知机就是一个单层神经网络;如图5所示的用感知机来表示的异或门是一个双层神经网络。
参考文献
[1] 《深度学习入门:基于Python的理论与实现》第2章 感知机
[2] https://www.jianshu.com/p/a25788130897