深度学习(DL)或者人工神经网络(ANN)模拟了生物神经元?
这是个很大的误解。
ANN充其量模仿了一个1957年面世的低配版神经元。
任何宣称深度学习的灵感来源于生物的人都是出于种种营销目的,或者他压根就没读过生物学文献。
不过,仿生系统研究怕是要遇到阻碍了。
两篇最近发表于Cell上的神经元基因Arc的新发现,揭示了生物神经元更大的复杂性,其远比我们想象得复杂得多。
深度学习里的神经元实质上是数学函数,即相似度函数。在每个人工神经元内,带权重的输入信号和神经元的阈值进行比较,匹配度越高,激活函数值为1并执行某种动作的可能性就越大,不执行(对应函数值为0)的可能性越小。
虽然有个别例外情况(比如自回归神经网络Autoregressive networks),但多数深度学习算法都是这样工作的,比如感知器(perceptron)、卷积神经网络(Convolutional Neural Network,CNN)以及循环神经网络(Recurrent Neural Network, RNN)。
生物神经元和深度学习的概念大不相同。
生物神经元并不会保持连续信号,而是产生动作电位,或者依据事件做出相应行为。
因此,所谓“神经形态”(neuromorphic)的硬件,也就是受到“整合信息,然后发送信号”(integrate and spike)的神经元的启发。
如果你对构建一个仿生认知系统感兴趣,可以看看今年2月这篇普度大学的论文。你必须知道的是,这类系统并不像深度学习框架那样具有连续作用性。
从本质上来讲,生物系统利用最少的能量来维持生存,但深度学习系统需要消耗非常多的能量,对比十分鲜明。深度学习采用蛮力手段(不断尝试和犯错)来实现认知,我们知道它的运作原理,但是还不知道怎么减少深度学习的能耗。
一直以来,学术界一直以来希望用仿生手段创造出比深度学习更加强大的体系,虽然在这个方面努力了很久,但是进展尚不明显。已经取得的进展有HTM神经元,它更贴近新大脑皮层(neo-cortex)结构。从下图中可以看出,这种神经元模型要比深度学习中的神经元复杂得多。
左:深度学习ANN,中:生物神经元,右:HTM神经元
相比之下,深度学习方法虽然用的是和卡通一样简单的神经元模型,近一段时间以来却意外大显身手,在认知方面取得了让人难以置信的成效。深度学习所做的事情非常正确,只是我们还不了解它做的究竟是什么。
不过,仿生系统研究怕是要遇到阻碍了。以色列的一个关于神经元性质的新实验表明,生物中的神经元比我们想象得复杂得多:
总结一下,生物神经元的这些特性我们才刚刚知道:
-
单个神经元的峰电位波形通常随着刺激部位的不同而改变,两者的关系可以用函数表达;
-
在细胞外,从不同方向施加的刺激并不能引起空间性加成(Spatial summation);
-
当细胞内外刺激交叠时,不会产生空间性加成或者空间性相减(Spatial subtraction)。如果这些刺激的精确时值互不相关,那么非局部时间的干扰也不能奏效。
简而言之,一个神经元里所发生的事情远不止“计算-输出”这么简单。
生物神经元很可能不是随着单一参数(也就是权重)而改变的纯函数能够描述的。它们更像是能显示各种状态的机器。换句话说,权重或许不是单值,而是多重值的,甚至是更高维度的。这些神经元的性质仍有待探索,我们对此几乎一无所知。
如果你觉得这样的解释让理解神经元性质变得更难了,那还有两篇最近发表于Cell上的神经元基因Arc的新发现,揭示了更大的复杂性。
神经元释放的细胞外囊泡中,很多都含有一种叫做Arc的基因,可以帮助神经元之间相互建立连接。那些被基因改造后缺乏Arc基因的小鼠难以形成长期记忆,而人类的一些神经功能障碍也与这个基因有关。
这项研究表明,神经元之间的交流是通过发送成套RNA编码实现的。更准确地说,是成套的指令而非数据。发送编码和发送数据完全是两码事。这也就意味着,一个神经元的行为可以改变另一个神经元的行为;不是通过观察,而是通过彼此修正。
这种编码交换机制隐隐证实了一些早期的猜想:“生物大脑仅仅是由离散的逻辑构成的吗?”
实验结果揭示了一个新的事实。即使在我们认知的最小单位,也就是单个神经元之间,也存在着一种对话式的认知(conversational cognition)。这种认知不断修正神经元彼此的行为。
因此,神经元不仅是有不同状态的机器,也是预先设定了指令的、能相互发送编码的通路。
这些实验对我们有两点明确的启示。
第一,我们对人类大脑计算能力的估计可能偏差了至少一个数量级。
如果粗略地设定一个神经元只执行一次运算,那么整体上看人类大脑可以完成每秒38拍字节(Peta)的运算(1拍字节=10^15字节)。
如果假定深度学习模型里的运算都等价于浮点数的运算,那么大脑的性能可以匹敌一个每秒3.8亿亿次浮点运算的电脑系统。当前最顶尖的超级计算机——中国的神威·太湖之光(Sunway Taihulight)的峰值性能是每秒12.5亿亿次/秒。
然而,大脑的实际运算能力很有可能是我们认为的10倍之多,也就是38亿亿次/秒。不过显而易见的是,生物大脑实际上只用了较少的计算就实现了非常多的认知。
第二,未来在探究深度学习架构时,人们会很热心地采用内部结构更复杂的神经元或者节点。
现在到了重新开始,并探究更复杂的神经元的时候了。迄今为止,我们遇到的比较复杂的神经元类型来自于长短期记忆(Long Short Term Memory, LSTM)。以下展示的是针对LSTM神经元的蛮力架构搜索:
目前尚不清楚为什么这些更复杂的LSTM更为有效,只有架构搜索算法才明白其中缘由,不过算法可不会解释自己是怎么回事的。
最近发布的一篇来自CMU和蒙特利尔大学的论文探究了设计更为复杂的LSTMs。
Nested LSTMs相对于标准的LSTMs实现了重大改进。
综上所述,致力于探究更加复杂的神经元类型的研究计划可能会带来丰硕的成果,甚至可以和把复数值应用于神经网络上带来的硕果相提并论。
在复数神经网络中,只有应用于RNN才能体现出性能的改善。这也表明,要想超越简单的感知,内部神经元复杂度可能是必需的。
这些复杂性对于更高级的认知是必要的,这是现有深度学习认知系统所不具备的。无论是对抗特征的强健性,还是让机器学会忘记、学会忽略什么、学习抽象和识别上下文语境的切换,都是相当复杂的事。
预计在不久的将来,这一领域会出现更多积极大胆的研究。毕竟,大自然已经明确地告诉我们,神经元个体是更复杂的,因而我们创造的神经元模型也可能需要更复杂。
原文发布时间为:2018-05-10
本文作者:文摘菌