你好,游客 登录
背景:
阅读新闻

深度学习与神经科学相遇(二)[译]

[日期:2016-11-20] 来源:知乎  作者: [字体: ]

  作者:张嘉伟

  链接:https://zhuanlan.zhihu.com/p/23804250

  来源:知乎

  著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  注:阅读本文需要一定的机器学习、深度学习以及神经科学基础

  2. 大脑能够进行成本函数优化

  许多机器学习方法(如典型的监督式学习)是基于有效地函数优化,并且,使用误差的反向传播(Werbos, 1974; Rumelhart et al., 1986)来计算任意参数化函数的梯度的能力是一个很关键的突破,这在下文我们将详细描述。在假设1中,我们声称大脑也是,至少部分是,优化机(optimization machine,指具有优化函数能力的装置)。但是,究竟说大脑可以优化成本函数是什么意思呢?毕竟,许多自然界中的许多过程都可以被视为优化。例如,物理定律通常被认为是最小化一个动作的功能,而进化优化的是复制基因(replicator)在长时间尺度上的适应性。要明确的是,我们的主张是:(a)大脑在学习期间具有强大的信用分配机制,允许它通过调整每个神经元的属性以提升全局输出结果,以此来优化多层网络中的全局目标函数,以及(b)大脑具有确定哪些成本函数对应其哪些子网络的机制,即,成本函数是高度可调的,这是由进化逐步形成并与动物的生理需求相匹配。因此,大脑使用成本函数作为其发展的关键驱动力,就像现代机器学习系统一样。

  可能部分读者在系列一中对credit assignment(信用分配)还存在疑惑,这里解释一下:信用分配问题主要考虑的是如何确定系统的整体性能的成功是由系统组件的各种贡献哪些部分决定的(Minsky,1963),这是人工智能先驱Marvin Minsky提出的,本质上应属于对目标函数优化的一部分,实际上神经网络权重调节的机制就是一直信用分配。

  为了理解这些主张的基础,我们现在必须深入了解大脑如何有效地执行大型多层网络中的信用分配的细节,以优化更为复杂的函数。我们认为大脑使用几种不同类型的优化来解决不同的问题。在一些结构中,其可以使用遗传基因预先规定的神经回路去解决仅需要基于数据即可快速学习的问题,或者可以利用局部优化以避免通过多层神经元来分配信用的需要。它还可以使用许多后天发展出来的电路结构(神经回路),允许其通过多层神经元网络执行误差的反向传播(这里误差来至于网络实际输出与真实期望值之间的差距),这个过程使用生物学上实际存在的机制是可以实现的 - 曾经一度被广泛认为是不具有生物学可解释性的(Crick, 1989; Stork, 1989)。潜在的此类机制包括:以常规的方式反向传播误差导数(gradient,梯度)的神经电路,以及提供对梯度进行有效估计(gradient approximation,最近也有突破,避免了直接从目标函数开始求导计算)的神经回路,即快速计算成本函数对于任何给定连接权重的近似梯度。最后,大脑可以利用某些特定的神经生理学方面的算法,例如神经脉冲的时间依赖可塑性(spike timing dependent plasticity)、树突计算(dendritic computation)、局部兴奋性抑制网络或其他性质,以及更高级别大脑系统的综合性质。这样的机制可以允许学习能力甚至超过当前基于反向传播的网络。

  2.1 无多层信用分配的局部自组织与优化

  不是所有的学习过程都需要一个通用的优化机制,如梯度下降。许多关于神经皮质的理论(George and Hawkins, 2009; Kappel et al., 2014)强调潜在的自组织和无监督的学习属性,可以消除多层反向传播的需要。 根据突触前后活动的相关性来调整权重的神经元Hebbian可塑性理论已经被很好的确立。Hebbian可塑性(Miller and MacKay, 1994)有很多版本,例如,加入非线性(Brito and Gerstner, 2016),可以引发神经元之间的不同形式的相关和竞争,导致自我组织(self-organized)的眼优势柱(ocular dominance columns)、自组织图和定向列形成(Miller et al., 1989; Ferster and Miller, 2000)。通常这些类型的局部自组织也可以被视为优化成本函数:例如,某些形式的Hebbian可塑性可以被视为提取输入的主要分量,这最小化重建误差(Pehlevan and Chklovskii, 2015) 。

  Auto-encoders 这类人工神经网络就是上述功能的代表。

  为了生成复杂的具有时间关联的学习模式,大脑还可以实现任何与不需要通过多层网络的完全反向传播等效的其他形式的学习。例如,“液体状态机”(Maass et al., 2002)或“回波状态机(echo state)”(Jaeger and Haas, 2004)是随机连接的复现网络(recurrent net),其可形成随机的基础滤波器集合(也称为“库滤波器),并利用可调谐的读出层权重来学习。体现混沌(chaotic)和自发动力(spontaneous dynamics)的变体甚至可以通过将输出层结果反馈到网络中并抑制混沌活动(chaotic activity )来训练(Sussillo and Abbott, 2009)。仅学习读出层使得优化问题更简单(实际上,等价于监督学习的回归)。此外,回波状态网络可以通过强化学习以及监督学习来训练(Bush, 2007; Hoerzer et al., 2014)。随机非线性滤波器的储层(reservoirs)是对许多神经元的多样化、高维度、混合选择性调谐特性的一种解释,例如这种现象存在与大脑前额叶皮质中(Enel et al., 2016)。其他学习规则去仅修改随机网络内部的一部分突触的变体,正发展成为生物短期记忆(working memory)和序列生成的模型(Rajan et al., 2016)。

  这段读起来非常吃力,但值得注意的是其中提到的只对输出层进行无监督训练的方式,是否一定能使优化变得简单呢?可以尝试做实验验证一下。另外,局部自组织,也可理解为“局部无监督学习”。

  2.2 优化的生物学实现

  我们认为上述局部自组织的机制可能不足以解释大脑的强大学习表现(Brea and Gerstner, 2016)。 为了详细说明在大脑中需要有效的梯度计算方法,我们首先将反向传播置于其计算的上下文环境中(Hinton, 1989; Baldi and Sadowski, 2015)。 然后我们将解释大脑如何合理地实现梯度下降的近似。

  这里厉害了,gradient approximation (梯度近似)是深度学习里最迫切需要解决的问题,因为这样将大大减少对计算资源的消耗。

  2.2.1 多层神经网络对高效梯度下降的需求

  执行成本函数优化的最简单的机制有时被称为“旋转”算法,或更技术上称为“串扰”。这种机制通过以小增量扰动(即“twiddling”) 网络中的一个权重,以及通过测量网络性能(对比成本函数的变化,相对于未受干扰的权重)来验证改进。 如果改进是显著的,扰动被用作权重的变化方向; 否则,权重沿相反方向改变(或根本不改变)。 因此串行扰动是对成本“coordinate descent”的方法,但是它是缓慢的并且需要全局协调:每个突触按顺序被扰动而要求其他保持固定。

  总的来说,twiddling思想是比较简单的,但是在全局范围实现却很困难,并不是一个可行的解决方案。

  另一方面,自然地我们会想到全局权重扰动(或平行扰动)即同时扰动网络中的所有权重。 它能够优化小型网络以执行任务,但通常引发高方差。 也就是说,梯度方向的测量是有噪声的,并且其在不同扰动之间剧烈变化,因为权重对成本函数的影响被所有其他权重的变化掩蔽,然而只有一个标量反馈信号指示成本的变化。 对于大型网络,全局权重扰动是非常低效的。 事实上,如果时间测量计数网络从输入到输出传播信息的次数,则并行和串行扰动以大致相同的速率学习(Werfel et al., 2005)。

  上述的过程,在反向传播过程中形成了一对多(目标函数标量变化对应多种可能的权重变化)的映射关系,这是任何一般意义上的函数都无法拟合的(信息不能被完全学习),因为这种映射不属于函数。

  一些效率增益可以通过扰乱神经活动而不是突触权重来实现,遵循神经突触的任何长程效应通过神经元介导的事实。就像在权重扰动中,而不同于串扰的是,最小的全局协调是必须的:每个神经元仅需要接收指示全局成本函数的反馈信号。在假定所有神经元或所有权重分别被扰动并且它们在相同频率处被扰动的假设下,节点扰动梯度估计的方差远小于权重扰动的方差。在这种情况下,节点扰动的方差与网络中的细胞数量成比例,而不是突触的数量。

  所有这些方法都是缓慢的,不是由于对所有权重的串行迭代所需的时间复杂度大,就是对于低信噪比梯度估计的平均所需的时间复杂度大。然而,他们的信誉(credit),这些方法都不需要超过关于局部活动和单一全局成本信号的知识。大脑中的真实神经回路似乎具有编码与实现那些算法相关的信号的机制(例如,可扩散神经调节器)。在许多情况下,例如在强化学习中,基于未知环境的交互计算的成本函数不能直接进行微分,并且代理(agent,智能代理,强化学习中的术语)不得不部署聪明的twiddling以在系统的某个级别进行探索(Williams, 1992)。

  这个方法对于不可微的目标函数是非常有用的,在我的知识范围内,目前还没有发现深度学习还没有对不可微分的目标函数探索过。但如上文所述,这是非常缓慢的,可能也只适合强化学习(reinforcement learning)

  相反,反向传播通过基于系统的分层结构计算成本函数对每个权重的灵敏度来工作。 相对于最后一层的成本函数的导数可以用于计算关于倒数第二层的成本函数的导数,等等,一直到最早的输入层。 可以快速计算反向传播,并且对于单个输入 - 输出模式,其在其梯度估计中不存在方差(variance = 0)。 反向传播的梯度对于大型系统而言比对于小系统没有更多的噪声,因此可以使用强大计算能力有效地训练深而宽的架构。

  这段基本解释了目前的深度神经网络为什么使用BP可以被有效训练。

  # 系列二就到这里告一段落,精彩的还在后面,待续...

收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款