第三部分 NN-ANN 70年前的逆向推演
从这部分开始,调整一下视角主要学习神经网络算法,将其与生物神经网络进行横向的比较,以窥探一二。 现在基于NN的AI应用几乎是满地都是,效果也不错,这种貌似神奇的玩意怎么想出来的。个人不禁好奇,随后一通乱找。想理出来个线头,谁知一挖发现这线后面的故事太丰富,这里特意分享出来。
其实对神经元的认知是比较早的,在机制和功能方面多是偏向生物学解释,在这个领域最前面的自然是神经学和生物学家。在生物学框架下成果在二战前后推进速度飞快(二战期间德国和英美科研投入特别大,这也算是战争福利),逐步搞清楚一系列关于脑神经微观上事实。直到1943年,神经学家McCulloch和逻辑学家(其实文章发表的时候他连高中文凭都没有)Walter Pitts一篇共同的论文出现,一把将一堆其他门类的学者拉进了大脑研究的大坑中。
这篇叫做“A Logical Calculus of Ideas Immanent in Nervous Activity”的文章(第一次学神经网络算法的同学必看),其中提出来一个假说:在细胞在通过网络连接可以实现计算的能力,也就是是说”大脑是台计算器“。说明了在细胞的基础上可以构建一套图灵机,而这个工作模式可能就是大脑工作的本质。更进一步的是pitts给神经元设计了几种基本连接模式,构成了完备的逻辑集合(类似于罗素搞出来的 与 或 非)进一步解释一种大脑可能存在的运作机制。也就是说他找到了一组通过神经元简单逻辑单元构建复杂计算的框架。在这套框架下生物学的机能解释被逻辑框架组装了起来。之后几十年内,最主要的神经网络算法都是在此基础上调整改进.乃至到围棋大师AlphaGo还是得认它为亲妈。随后Pitts被MIT和Norbert Wienner看中,招为研究生。 没错,这个Wienner就是那个折磨万千自动化系学生的[控制论]作者(此书很值得读,轻薄小巧),Cybernetic学科的创始人。说到Cybernetic,这个被我们叫做"控制论的"学习小组事实上在不只是干自动控制这一个事情,事实上这是一个杂学小组,目标是用数学逻辑的方法解释所有能动的东西的机制,特别是活的。按照Wienner他老人家的说法,这个学科的目的就一个:统一通信,控制,统计力学的核心问题。(Cybernetic本身是拉丁文翻译出来的,原来的意思是"掌舵",听听看人家这气魄.)重要的是这是一帮子实践派,他们不满足于单纯的学术研究,还总试图把这些活的东西用别的方法造出来。所以这里面的人就显得特别神奇,一个学科里面充满了,数学家,生物学家,社会学家,物理学家,甚至还有心理学家以及各种工程师,唯独没有一个叫做控制学家。就这样的一个杂学学科,在今天我们的高校以单一技能专业化的方式授课,自动化系普遍成了电子系第二专业,实在为教学方式捏一把汗,Wienner若泉下有知不知会不会吐血再死一次。Pitts自然在wienner的带领下参加Cybernetic组织。按照wienner在书里面的说法,pitts认识了Claude Shannon,这时候的Shannon还没开始搞信息论,主要工作是跟着Vannevar Bush(这货搞的曼哈顿计划)写论文等毕业,当时他的毕业研究是搞开关电路(其实就是数字电路)。当时Wienner的把他两搓到一起就是想让pitts去找到把“脑牌计算机”用数字电路造出来,让Shannon给他传播数字电路的知识。随后又将pittes拉去参加小聚会,期间接触到John von Neumann(这个现代计算机的发明人也是这个组织成员),这期间pitts主要给von Neumann和Goldstone的团队说明“脑牌计算机”的故事,同时还做神经学的科普。这跨组织,跨学科的效果就是好,von Neumann把"Pitts's loops "用到了EDVAC的改进中(就是那篇文章的成果之一,这个loops具体说来就是通过闭环网络实现内存),这下计算机的指令和数据基本存储体系才算是基本补全了。读完这通才恍然明白,计算机和脑结构在很多方面的相似性原来不是偶然的,这帮人是在一起混的。Cybernetic和计算机的产生其实还对研究现实问题在基本方法上产生根本性的影响,这个找时间我们再说。
按控制论导论里面的说法,McCulloch 和Pitts1947年还设计了一套盲人阅读机,这套机器能模仿视觉皮层第四层的,可惜年代久远不能得见,甚至论文都找不到了。后来Pitts加入了一个小组,试图用统计学,信息论,数学,生物学来搞清楚神经网络的工作机制。当时他觉得神经元结构的学习形成过程可以用统计力学来做过程建模。 1959年他们弄出来一篇关于青蛙视觉论文,里面揭示了视觉到大脑的信息传递过程和内容和眼球本身对视觉信息的预处理机制。这对神经元网络的数据输入信息内容有了来自生物实验的准确观测,今天看来成效卓著。随着着他对生物细节的了解,pitts对这条路渐渐感到绝望和Wienner的关系也产生了激烈的矛盾,一怒之下把博士论文给烧了。在后续能查阅到的研究中pitts对网络结构本身的过程建模没能做出更大的突破。没多少年这位仁兄就挂了,实乃一大遗憾。Pitts这条故事线基本也就到这里。之后在NN的研究就再没有按照使用数学逻辑+生物学逆向工程的基本逻辑走下去的,逐渐与生物学分家了。神经学的研究又回到微观细节上。
而此后的NN真的就成了ANN(人工神经网络),更多是在算法和逻辑上直接发展了 ,这也就不难理解今天的神经网络算法压根不需要学习生物学了。
先丢开故事的精彩和神奇,仔细看看这个Pitts留下的遗产是什么?
1:给出了神经元建模 ,也是NN沿用下来的McCulloch-Pitts Neurons 就是常说的MP/MCP 神经元。
2:找到了完备的基本的计算逻辑连接集合。图中的每个具体连接形式。
3:说明了如何用这些算子在开环结构中如何用这些基本的逻辑结构组建计算的功能。即是生物逻辑的图灵机
4:数学上解释了如果在网络中环装连接会产生的递归效应(环状网络计算自身的效应)。
5:揭示了时间在环装结构中的不存在。听起来很诡异,一旦进入环装逻辑以后就只有顺序但时间被消除掉了,这个观点在后来的很多学说上都被承认,但直观上不容易理解。
这对40年代简直是个奇迹,这些信息可以说是一套逻辑上的“现代计算机”模型了(尽管没造出来),你可以通过设计输入"公式"和"数据"它就能帮你完成计算过程。事实上这也是我们日常的“编程",“录入”的基本模式。但往前一步,这和人脑比较下来任在工作范式上存在本质的差异---从“录入”的信息中生长出“公式”的能力。这种能力就是“学习”,具备“学习”能力的系统,只需要向它输入数据,它自身就能形成与之匹配的计算模式。 同样在40年代Donald Hebb 搞出来一套叫做Hebbian learning的假说,歌词大意就是当两个神经元反复激活,连接的关系会得到加强。这个Hebbian是个心理学家,里面没有做复杂的数学逻辑论证和建模,Hebbian learning在后续过程就一直被当做工具或方法被沿用,直到后来发现LTP这个假说才得到验证。这个先放下不表。
基本上40年代NN最大的遗产就是MP 神经元和Hebbian Learning的基本思路,一直用到今天。后面我们将MP神经元应用的发展作为一条主线,看看pitts的这个假说到底带来如何巨大的变革。