作者: Yoshua Bengio, CIFAR Senior Fellow
Montreal Institute for Learning Algorithms, University of Montreal
翻译:Not_GOD
本文揭示了在含隐藏变量的能量模型中的 Langevin MCMC 推断满足在进入稳定分布后的前期推断对应于误差梯度到内层的传播,和反向传播类似。被反向传播的错误是和课件单元相对应的,这些单元受到让他们远离稳定分布的外部驱动力的影响。反向传播误差梯度对应于隐藏单元激活函数当前的导数。这个发现可以作为解释大脑在深层结构中如何进行想反向传播那样高效地 credit 分配的理论基点。在该理论中,连续值的隐藏变量对应于平均的电势差(根据时间、激发和在同一微柱体(minicolumn)的神经元而定),而神经计算对应于同一时刻的近似推断和误差的反向传播。
minicolumn,人脑中最小的组件
很多科学家已经给出了下面的假设,给定可感知信息的状态(当前和过去的输入),神经元可以进行归并式的推断,即,转至更好地解释可感知信息的设定。我们可以将内部神经元(隐藏变量或者隐藏神经元)的设定当成是已观测到的感知数据的解释。
在这个假设下,当一个不可预知的信号抵达感知(visible)神经元时,其他的神经元会改变他们的自身状态(已经处于一种随机均衡状态),以反应输入中的变化。如果这个错误信息缓慢地让感知神经元导向外部观测值,那么这会给整个网络造成扰动。本文,我们考虑了在由于感知神经元的不正确的预测造成的扰动传播到大脑的内部区域过程中的早期发生的情况。我们说明了扰动的传播其实在数学上等价于在深度神经网络中反向传播算法的激活函数的梯度的传播。
这个结果假设了隐藏变量是实值的(不像 Boltzmann Machine 中那样),所以该系统是一个能量模型,通过在感知神经元和隐藏神经元上定义一个能量函数给出。同样还假设了神经元是噪声注入的遗漏积分器(leaky integrator),这样的神经计算会出现随着噪声增加能量逐步下降的现象,这就对应了 Langevin MCMC 的推断机制。
leaky integrator: A kind of deliberately imperfect integration used in numerical work is called leaky integration. The name derives from the analogous situation of electrical circuits, where the voltage on a capacitor is the integral of the current: in real life, some of the current leaks away. An equation to model leaky integration is
当然这只是一个垫脚石。在完备的学习、推断和 credit 分配理论生物学合理,并且符合机器学习的观点(整个网络的全局优化,不受限于感知神经元的学习)出现前,很多地方仍然需要阐释清楚。特别地,能量模型需要连接的对称性,但是需要注意的是,模型中的隐藏元史不需要完全和大脑中的神经元完全一致的(比如说,这些隐藏元可以是皮质微电路的神经元的群组)。还要对如何从学习过程本身产生对称性进行探究。另一个有趣的问题是学习算法本身。正如本文阐述的,突触根据相对于预测误差的随机梯度的比例改变,如果突触更新类似于模仿局部目标函数的最小化过程模仿脉冲时间依赖的可塑性(STDP),参见 Bengio 2015b。
我们考虑下面的假设:神经计算的核心解释(在一个短时间区域内,神经元的权重保持不变,神经元的行为)就是在进行迭代式推断。迭代式推断表示网络的隐藏元 $$h$$ 逐步地在给定输入的感知数据 $$x$$ 时根据当前的在一定的参数设定下的模型状态进行改变到更加可能的设定。换言之,他们在进行近似地改变到在 $$P(h|x)$$ 下的设定,最终能够从 $$P(h|x)$$ 中进行取样。
在对 Boltzmann Machine或者能量模型和反向传播间建立联系 前,我们看看一些数学上的细节——神经计算如何被解释为推断的。
首先,我们看看经典的遗漏计分神经计算方程。令 $$s_t$$ 表示在时间 $$t$$ 系统的状态,每个单元一个元素的向量,其中 $$s_{t,i}$$ 是关联于第 $$i$$ 个单元的实值,对应于和时间相关的电势能。
让我们用 $$x_t$$ 表示感知元,这是 $$s_t$$ 的一个子集(就是外部驱动输入);$$h_t$$ 表示隐藏元集合($$s_t = x_t + h_t$$)。令 $$f$$ 为根据之前完整的状态计算 $$s_t$$ 新值的函数,$$f = (f_x, f_h)$$ 表示 $$f$$ 是分别在感知元和隐藏元上输出预测的。隐藏元上的时间演化要求符合遗漏积分方程,即:
其中
表示网络在神经元上产生压力,就是说,$$R_i(s)$$ 是网络剩下的部分要求神经元 $$i$$ 进行改变,而 $$\tilde{s}$$ 是源自突触噪声和脉冲效应。这里我们粗略给出噪声模型:
我们看到上面的方程对应于下面微分方程的离散化:
这将使得 $$h$$ 指数级地快速导向目标值 $$R_h(s)$$,伴随着一系列由 $$\eta$$ 导致的随机游走。我们假设$$R_i(s)$$ 是源自那些和神经元 $$i$$ 连接的神经元的输入信号的带权和,尽管下面的推导并不依赖 $$R$$ 具体的形式,只是要保证它对应于一个能量梯度。
在公式(1) 中的 $$R({\tilde{s}_t})$$ 表示对一个新设定的猜测,$$R({\tilde{s}_t})-s_t$$ 表示移动的噪声方向。不含噪声的移动为 $$R(s_t)-s_t$$,但是注入噪声是探索 $$P(h|x) $$整个分布而不是单个mode的重要保证。
我们现在给出这和当前在使用去噪自编码器和去噪分数匹配技术的无监督学习的有趣的关联。如果 $$R(s)$$ 是输入率 $$\rho(s)$$ 的线性组合,上面的论文给出了 $$R(s)-s$$ 和概率模型 $$P(s) \approx e^{-E(s)}$$ 的能量之间的关系,发现有
在这个解释下,公式(1)的遗漏积分神经计算就和 Langevin MCMC 一致了:
其中对最后一行,我们使用了公式(3) (2),这样就从 $$\tilde{s}_t$$ 得到了梯度。因此从噪声状态 $$\tilde{s}$$ 的角度看,我们看到更新方程如下:
这就类似于能量的梯度和“学习率” $$\epsilon$$ 和 增加的“噪声” $$\eta_{t+1}-(1-\epsilon)\eta_t$$。
为了修正想法和解释驱动函数 $$R$$ 对应于能量函数的梯度的可能性,我们给出了下面的能量函数,和 Boltzmann Machine 比较类似,但是有连续的非线性性的保证。
其中 $$W_{i,j}$$ 表示单元 $$j$$ 到单元 $$i$$ 的权重,$$\rho$$ 是神经非线性性,某种单调的有界函数,输出是 $$0$$ 和 $$1$$ 之间的值,对应于一个激发率(firing rate)。使用这个能量函数,驱动函数 $$R$$ 就是
为了获得这个,我们已经假设了 $$W_{i,j} = W_{j,i}$$。否则,我们会得到 $$R_i(s) = \rho'(s_i)(b_i + \sum_j \frac{1}{2}(W_{i,j} + W_{j,i})\rho(s_j))$$,这其实是等价的。
这个公式类似于通常使用的激发率的带权和,除了一个新式的因子 $$\rho'(s_i)$$,这表示神经元什么时候是饱和的(saturated)(或者关闭或者在最高的激发率出激发),外部输入对这些状态没有影响。在神经更新方程(1)中剩下的项是让状态向 $$0$$ 导向的那个,将神经元从饱和状态带出来,重新能够反映外界的变化,只要 $$\rho(0)$$ 不是饱和的。这个想法下面会继续阐述。
特别地,有个有趣的关于状态的动态的不动点现象。
这表示
让我们看看那些单元是饱和的假设,即 $$\rho'(s_i) \equiv 0$$。这样 $$R_i(s) = 0$$ 神经更新公式就是
这个会收敛到 $$s_i= 0$$。如果原始的对应导数明显非零的区域($$|\rho'(0)|>0$$),我们得到当 $$\rho'(s_i)=0$$,网络不可能处于不动点状态。否则状态会导向 $$0$$ 最终不可能处于不动点处。
现在我们开始讲述主要结果,神经计算作为能量模型的推断和预测误差梯度的反向传播。
假设网络处于均衡状态——方程(8)的不动点处。能量的平均梯度为 $$0$$,平均权重更新同样是 $$0$$。 为了让与监督反向传播的联系更简单一些,我们考虑两种感知单元:输入元 $$x$$ 和输出元 $$y$$,所以 $$s = (x,y,h)$$。假设我们开始将网络设置在不动点处,$$x$$ 就表示观测输入值。那么我们得到了在不动点 $$\hat{s}$$ 处的输出 $$\hat{y}$$ ,其中 $$R_y(\hat{s}) = \hat{y}$$, $$R_h(\hat{s}) = \hat{h}$$。等价的,我们有:
自由元(隐藏和输出)已经设置为和输入元一致的值了。
现在假设目标值 y 被观测到,逐步让输出元远离其不动点的值 $$\hat{y}$$,到 $$y$$ 处。这是因为输出元同样是遗漏积分神经元,其状态会逐步地根据其输入信号改变,方向则是 $$y$$ 而非原来的 $$R_y(\hat{s})$$。我们用
表示 $$\hat{y}$$ 在从时间步 $$0$$ 变化到 $$1$$ 的初始变化(依照公式(1),但是已经用 $$y$$ 替代 $$R_y(\hat{s})$$)。这会让全局状态 $$\hat{s}$$ 导离均衡,到达一个 $$\partial E(s)/\partial s$$ 非零的区域。初始时,STDP 目标函数(22)的唯一一部分是非零的,因为预测误差:
这对应于预测 $$R_y(\hat{s})$$ 和目标值 $$y$$ 之间的差异,或者这样子
因为在均衡处,$$R_y(\hat{s}) =\hat{y}$$。注意
其中 $$\epsilon$$ 可以看做是学习率如果我们直接在 $$\hat{y}$$ 上进行 SGD 的话。现在,网络剩下的部分会对这个外部扰动有什么反应呢?每个隐藏元可能近似地根据 $$C$$ 的梯度方向进行偏移,但仅仅是这些直接连接在输出层的神经元会最先感受到最小化 $$C$$ 的压力。这个扰动(对真实的神经元会有以脉冲电强的形式)会流向下一圈的神经元,那些直接和 $$h_1$$ 相邻的神经元,如此类推。
让我们看看这里的细节。考虑一个典型的 MLP 结构,输出层 $$\hat{y}$$ 和最顶隐藏层 $$\hat{h}_1$$,$$\hat{h}_1$$ 和 $$\hat{h}_2$$ 等等之间的连接。改变 $$\Delta y$$ 会传递给 $$\hat{h}_1$$ 通过神经更新,当我们忽略掉注入噪声的影响,会得到一个 $$\hat{h}_1$$ 的变化:
如果 $$\Delta y$$ 很小(根据假设感知元只会逐步地导向目标处),我们可以通过使用 $$R$$ 在 $$\hat{y}$$ 处的 Taylor 展开式近似上面的值
在不动点处检查 $$R_{h_1}(\hat{s}) = \hat{h}_1$$,得到
所以,我们有
为了获得反向传播,尽管不是 而是,因为这对应于一个链式法则的应用,我们有 $$\Delta h_1 \approx \partial C/\partial \hat{h}_1$$。好的消息是,这个等式是正确的因为 $$R$$ 是与下面的能量函数关联的函数的一阶导数:
3.2 随机梯度下降权重更新
上面的结果是受 Hinton(2007)的启发,结果也是一致的,时序变化可以编码反向传播的梯度。在层 $$k$$ 用到的 $$\Delta \hat{h}k$$ 转而成为根据预测误差 $$||y-\hat{y}||^2$$ 的随机梯度下降的权重更新会是什么?因为状态改变 $$\dot{s}$$ 表示了对应于 $$s$$ 的预测误差的梯度,SGD 对 $$W{i,j}$$ 需要的权重改变 $$\Delta W_{i,j}$$ 会成比例于后突触神经元状态改变率,$$\dot{s}i$$,并和前突触神经元激发率,$$\rho(s_j)$$ 成比例,也就是对于 $$\partial s_i/\partial W{i,j}$$:
这意味着这样的学习规则允许我们根据 STDP 来模拟脉冲时序和突触改变的关系,正如在 Bengio 2015a 中所示。这样产生出一个预测性目标函数的随机梯度步骤
因此,根据这个符合 STDP 学习规则,根据内部绕的权重的改变应该是和反向传播的更新成比例的,因为它对应于 $$\Delta h \partial h/ \partial W$$。但是,注意到对层 $$k$$ 的 $$\hat{h}_k$$ 的 乘子 $$\epsilon^{k+2}$$,使得初始改变对更远的层变得相当缓慢。这是因为遗漏积分神经元没有时间来对已经产生的信息进行总合,所以实践上她会使用时间常量乘以 $$k$$ 作为 $$\hat{h}_k$$ 的改变让效果更加明显,除非我们适当调整学习率。
尽管我们看到提出来的神经动态系统和权重更新和反向传播表现的很近似,不过这里还存在很多的差异,特别是我们考虑到更远步骤之后。但是可能本文传达出来最重要的信息就是,我们知道反向传播在监督学习和非监督学习上的效果特别好。这里,反向传播在推断是无穷小的时候本质上对应于一个变分更新,我们仅仅运行推断的单步对应于能量函数中下降的方向上的一小步移动。
本文受到 Hinton 2007 年工作的重要启发,大脑可以通过时序导数来表示激活梯度来实现反向传播,同时还有组合此假说和 STDP 得到突触权重的 SGD。
神经计算的想法对应于一种形式的随机松弛到更低能量配置的老想法(Hinton and Sejnowski,1986)和其 Gibbs 采样技术。更多近期的研究参考(Berkes et al 2011)。而这里和 Boltzmann Machine 不同的是我们考虑了状态空间是连续的(这与期望电势相关,并整合了由脉冲决定的随机效应),而非离散的空间。我们也考虑了非常小的步(能量下降的梯度),这更加类似于 Langevin MCMC,而非允许像 Gibbs 采样那样在给定邻居设定的情形下,每个神经元依照更高的概率随机跳到一个更优状态。
同样还有很多在理论上关于 STDP 讨论的论文,读者可以参考 Markram et al. 2012,但是有关 STDP 和可以用来训练不仅仅一层网络(如 PCA 和 Hebbian 更新那样)还有深层的非监督模型的无监督学习目标函数工作还需要很多努力。很多观点 (Fiete and Seung, 2006; Rezende and Gerstner, 2014) 依赖于 强化学习观点来估计全局目标函数的梯度(通过关联在每个神经元随机变化和整个目标函数的改变)。尽管这些原理是简单的,还不清楚这会扩展到非常大的网络,因为随神经元个数变化导致估计的方差线性增长。所以尝试寻找其他的途径,我们希望本文提出的基础和能量观点下的变分推断可以形成有用的更加有效的无监督学习的原理,用于那些和 STDP 一致的深层网络。
本工作的实践上的成果就是做出了关于突触权重改变应该随着后突触激发率保持常数时消失的预测,正如在公式(21)中所示。这应该会在实际的生物实验中变得相当有趣。
很多剩下的工作及时获得一种完备的关于跟 STDP 一致的无监督学习概率理论,但是我们相信我们已经给出了一些有趣的元素了。一个方面就是需要关于 STDP 目标函数如何帮助我们拟合感知观测 $$x$$ 更深发展。如果,根据上面的假设,神经计算是近似的推断(Langevin MCMC)那么在每一个推断的步中,平均看来,就把我们导向了更加可能的 $$h$$ 的设定。因此每步都是近似导向了 $$P(h|x)$$ 的能量下降的方向。现在,在一个 EM 或者 变分 EM 场景下,如果 $$x$$ 固定,我们希望建模的分布,并考虑一个目标——参数应该被更新肯定是$$ h ~ P(h|x) $$ 和$$ x$$ 的联合分布,现在称为$$ Q(h,x)$$ (推断分布),按照下面论文的术语Neal and Hinton (1999); Kingma and Welling (2014); Bengio et al. (2015b)。通过最小化预测标准如 $$J_{STDP}$$ 我们推测,模型参数移动的方向让模型和 $$Q(h,x)$$ 更为一致,这也就能够最大化变分 EM 在数据似然 $$P(x)$$ 的上界。这个想法就是我们改变推断过程,使得它能够更快地抵达最终状态,这对应于可以很好地拟合观测 $$x$$ 的 $$h$$ 的设定。
另一个开放问题就是如何调和因能量函数出现的权重的对称性和实际上 $$W_{i,j}$$ 和 $$W_{j,i}$$ 在生物神经元中物理分开的两处的矛盾。有个振奋人心的观测是在自编码器上的早期工作实验性地给出了在前向和反向传播时权重并没有绑定,倾向于收敛到对称的值,在线性场景下,重建误差的最小化也给出了对称的权重(Vincent et al. 2010)。
The authors would like to thank Benjamin Scellier, Asja Fischer, Thomas Mesnard, Saizheng Zhang, Yuhuai Wu, Dong-Hyun Lee, Jyri Kivinen, Jorg Bornschein, Roland Memisevic and Tim Lillicrap for feedback and discussions, as well as NSERC, CIFAR, Samsung and Canada Research Chairs for funding.
在能量模型中使用提前推断近似反向传播:https://tigerneil.gitbooks.io/deep-learning-researchers/content/chapter1.html
Early Inference in Energy-Based Models Approximates Back-Propagation:http://arxiv.org/abs/1510.02777