2.6 从与非门到计算机

优质
小牛编辑
123浏览
2023-12-01

多层感知机可以实现比之前见到的电路更复杂的电路。比如,进行加法运算的加法器也可以用感知机实现。此外,将二进制转换为十进制的编码器、满足某些条件就输出 1 的电路(用于等价检验的电路)等也可以用感知机表示。实际上,使用感知机甚至可以表示计算机!

计算机是处理信息的机器。向计算机中输入一些信息后,它会按照某种既定的方法进行处理,然后输出结果。所谓按照某种既定的方法进行处理是指,计算机和感知机一样,也有输入和输出,会按照某个既定的规则进行计算。

人们一般会认为计算机内部进行的处理非常复杂,而令人惊讶的是,实际上只需要通过与非门的组合,就能再现计算机进行的处理。这一令人吃惊的事实说明了什么呢?说明使用感知机也可以表示计算机。前面也介绍了,与非门可以使用感知机实现。也就是说,如果通过组合与非门可以实现计算机的话,那么通过组合感知机也可以表示计算机(感知机的组合可以通过叠加了多层的单层感知机来表示)。

 说到仅通过与非门的组合就能实现计算机,大家也许一下子很难相信。建议有兴趣的读者看一下《计算机系统要素:从零开始构建现代计算机》。这本书以深入理解计算机为主题,论述了通过 NAND构建可运行俄罗斯方块的计算机的过程。此书能让读者真实体会到,通过简单的 NAND元件就可以实现计算机这样复杂的系统。

综上,多层感知机能够进行复杂的表示,甚至可以构建计算机。那么,什么构造的感知机才能表示计算机呢?层级多深才可以构建计算机呢?

理论上可以说 2 层感知机就能构建计算机。这是因为,已有研究证明,2 层感知机(严格地说是激活函数使用了非线性的 sigmoid 函数的感知机,具体请参照下一章)可以表示任意函数。但是,使用 2 层感知机的构造,通过设定合适的权重来构建计算机是一件非常累人的事情。实际上,在用与非门等低层的元件构建计算机的情况下,分阶段地制作所需的零件(模块)会比较自然,即先实现与门和或门,然后实现半加器和全加器,接着实现算数逻辑单元(ALU),然后实现 CPU。因此,通过感知机表示计算机时,使用叠加了多层的构造来实现是比较自然的流程。

本书中不会实际来实现计算机,但是希望读者能够记住,感知机通过叠加层能够进行非线性的表示,理论上还可以表示计算机进行的处理。