什么是反向传播?
反向传播全称叫“误差反向传播”,英文Backpropagation,缩写为BP算法。作为训练神经网络的基本算法之一,反向传播对于新智元的程序员读者们来说一定不陌生。
它的特点在于会求输出层和隐藏层的响应误差,并在更新权重时对其取反,从而确保权重引起的误差在减小。
说得简单一点,BP的核心思路其实就是负反馈,希望通过负反馈实现神经网络系统面对给定目标的自动迭代、校准。
随着更强的计算能力、更大的数据集和更多的技术改进,现在用反向传播训练的多层神经网络已经足以与人类竞争。
问题提出:反向传播适用于人脑吗?
因此,很自然的一个问题就是,人脑也是通过修改神经元之间的突触链接来学习的,那么深度学习(Deep Learning)中的反向传播在人脑神经网络中也存在吗?反向传播的引入在神经科学界引起了兴奋。
如果说它存在于人脑中,这是符合逻辑的。机器学习的最新研究表明,人类对各种复杂技能的学习,依靠的是强大而通用的学习算法,从下棋、计算机编程,到打游戏、弹钢琴曲。
从宏观上来看,人在学习过程中肯定会校准自己行为的误差,就比如你学习打羽毛球,一开始总是不能把球打到一个确切位置,后来你不断校准自己出手的角度、力度, 所以就越打越准了。这就是个宏观的反向传播。
但是,这仍然面临一些问题:从微观上来看,反向传播过程是如何在脑神经中实现的呢?大脑会纠正单个突触的行为吗?改变单个突触,又何以优化整个人脑神经网络的行为方式呢?
反向传播是一个监督式学习算法,但人脑主要是无监督学习,它又是如何实现从目标反向修正神经网络行为的呢?
Hinton:人脑可以执行反向传播的核心原理
抱着从DL神经网络反推人脑学习机制的兴趣,DL三巨头之一Geoffrey Hinton与来自Deepmind的Timothy P. Lillicrap等人近日在Nature 子刊《Nature Reviews Neuroscience》发表了研究文章。
Hinton正是反向传播算法的发明人,也被誉为“深度学习之父”,甚至“AI教父”。此文出自他手,意义相当不凡。
Geoffrey Hinton,2018年与DL另外两巨头Yoshua Bengio、Yann LeCun共获2018年图灵奖
我们先看结论:他们认为,尽管人脑和DL神经网络存在明显的物理差异,但大脑仍具有执行反向传播的核心原理的能力。
主要思想是:大脑神经活动中,局部计算出的差异会被编码为类似反向传播的误差信号,从而促进大脑深层网络中的有效学习。
结论:NGRAD就是人脑中的反向传播神经回路
研究团队认为,反向传播提供了一个理解人脑皮质如何学习的概念框架,但是关于大脑如何对算法进行近似,仍然存在许多谜团。
其中一些谜团很小,很容易解决。例如,人脑的反向传播网络通常基于速率而不是神经脉冲,并且和Dale定律不同,一个神经元可以同时拥有兴奋性和抑制性连接。然而,其他谜团,例如误差信号的计算和向后传递,则带来了更深层的概念性问题。
NGRAD以一种直观、且与我们认为生物回路如何运作的方式相一致的方式,解决了反向传播技术的重大弊端。它们消除了误差的显式传播,而是通过传播活动中的差异在本地进行了计算。
事实上,大脑中是否存在反向传播?
目前,通过直接观测,能否发现大脑中存在类似于反向传播的神经机制?
目前尚无直接证据,但是,反向传播训练的模型确实可以解释部分观察到的人脑神经反应(例如,顶叶后皮质和原发性运动皮质中神经元)。 而且,反向传播训练出来的多层模型在匹配灵长类动物的一种视觉神经回路(用来感知形状的视觉腹侧通路)的运作方式时,往往比其他模型表现更好,如下图所示:
a:反向传播训练的模型(蓝色)比其他模型(灰色)更好地解释了颞下皮质层的多单元反应。b:具有更好分类性能的模型与颞下皮质层表示更为相似。
在人脑中模拟反向传播的三个困难,都被Hinton一一化解
困难一,反向传播回路中,回馈连接的强度与前馈连接一致,即信号强度得一样。
幸好,近期研究已经表明,在人脑中不一定非要对称。在神经中,有一种令人惊讶的现象称为“反馈对齐”:使用随机反馈权重计算出的虚假误差导数会导致前馈权重的更新,从而使真实误差导数更接近虚假导数。这证明,反向传播所采用的那种精确对称性并非总是必需的。
困难二,大脑中的反馈会改变神经活动。
在误差的反向传播中,反馈连接传递的误差信号不能影响前馈传播的神经元的活动状态。也就是说,后面的信号不能影响前面。这听起来很合理。
但与之相反,脑皮层中的神经通路之间相互影响的可能方式非常丰富,反着来也很正常,比如反馈连接也会对前馈神经传递信号,甚至成为它活动的驱动力。在大脑中,前馈和反馈途径有的时候甚至是同时相互作用的。
这也难不倒Hinton大神。他们发现,已知的生物神经元其实都包含着不同的、彼此独立的区室,不同区室的活动会对细胞产生完全不同的影响。这相当于,生物神经元上确实自带了这样一来就说得通了。
困难三,反向传播中的误差信号可能出现极值。
在反向传播训练过程中,误差信号经过签名,其变化经常达到几个数量级,这种现象被称为“梯度爆炸”和”梯度消失”。
这种巨大的变化,肯定没法出现在人的神经元里,要不然实在是太一惊一乍了,估计人都要癫痫。那这怎么解决?
NGRAD:用神经梯度活动差异代替
研究人员知道,已经有很多DL机制在利用活动状态的差异来驱动突触变化,而不是用梯度信号来驱动。
于是,他们引入了一种近似反向传播的算法——用活动差异表示神经梯度(neural gradient representation by activity differences,简称NGRAD)。
NGRAD假设,大脑皮层会采取利用神经活动状态的不同来驱动突触变化,从而进行了类似于梯度下降的机制。这样一来,神经元就不需要再传递误差导数了。
取而代之的是,NGRAD基于这样的思想:
第一,来自更大的空间或时间范围的高层活动,可以推动较低层次的活动得到与高层活动更一致的值或所需的输出。
第二,在较低级别活动中引起的变化可用于仅使用本地可用信号来计算类似反向传播的权重更新。
简单来说可以这么理解:大脑中的高级神经活动可以对低级神经活动起到推动和领导的作用;误差是通过每一层(主要是底层)神经元的局部信号来计算的,而不是像反向传播一样在层之间传播。
图 3:NGRAD的目标传播算法。a)在每一层使用完美逆函数;b)利用目标传播差异纠正反向连接或许无法实现完美逆函数的情况;c)差异目标传播在单层的原理图。更新前向突触权重W1,以使前向隐藏活动靠近校正后的隐藏目标。
浅紫色,深蓝色和绿色圆圈代表的是在相同神经元中执行的不同处理阶段。隐藏目标的计算为自下而上活动与自上而下反馈的混合。 详解Hinton的反向传播生物神经元系统
为了在神经回路中发挥作用,NGRAD必须具备以下能力:协调前馈和反馈途径之间的相互作用,计算神经活动模式之间的差异,并利用这一差异进行适当的突触更新。
与生物实现有关的另一个有趣的细节在于,许多NGRAD算法(而非反向传播算法)使用反馈驱动的对下层活动的改进来计算其学习更新。这些算法的这一方面与生理学证据非常吻合,这些证据表明自上而下的反馈积极参与了自下而上的信息处理。总之,这些新发现和相关理论正在扩大可能被认为生物学上可行的信用分配机制的范围。
下面我们看到的实验中的这个生物神经结构,可能就是理解多层学习的自然起点:
输入隔离: 1前馈区室 2反馈区室
区室间沟通: 3反向传播动作电位 4平台电位5多因素突触可塑性 6跨神经元调制
反向传播首次进行时,通常将神经元(灰色细胞)建构为单个电压区室,前馈信号(蓝色,例如来自低级皮层区域)进入单个电压区室,反馈信号(红色,比如来自更高级皮质区域)将无差别地到达。
皮质锥体神经元(灰色细胞)的当代示意图。前馈(1)和反馈(2)输入是不同的。它们到达细胞的不同区室(例如分别为基底树突和顶端树突),并可能被电隔离。区室可以通过神经脉冲触发的反向传播动作电位或相反方向的平台电位有选择地进行通讯。
每个区室的可塑性可以取决于自身突触事件和另一区室中触发的事件(5)。
例如,顶端产生的平台电位的到来可能会改变“向前”的基础突触可塑性。最后,局部抑制性神经元(黄色细胞)可以调节亚细胞区室之间的通讯,并且自身可以被高阶输入差异性地募集,从而可以调节正向和反向路径之间的相互作用(6)。
相信在未来,生物学与神经网络学习的相互借鉴,将激发更多令人振奋的新灵感。
参考链接:
Nature: 反向传播与大脑