ANN vs BNN

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/longshanks/article/details/2819671
ANN vs BNN
莫华枫

毋庸置疑,ann是对bnn的模拟。(也有人不这么认为,打算闹独立。且不说版权问题,认为自己能够牛过上帝他老人家,也是不应该的)。这两天奥运,心血来潮,想让ann和bnn PK一下,看看咱们人类同上帝他老人家之间还差多少。
在bnn中,神经细胞是基础,先pk这个。尽管神经细胞也叫神经元,但是为了方便裁判,还是得区分一下:bnn的叫神经细胞,ann的叫神经元。
神经细胞有个重要的特性,它带电。(放心,连个草履虫也电不死)。神经细胞膜拥有-70mV的电位差。不过,这只是神经细胞安静下来的状态。在特定的情况下,神经细胞会很激动,膜电位会一下子达到+40mV。而且会传播开来,直到传遍整个细胞。在传播的过程中,每到一处,都会激起膜电位的逆转。在某些特定的部位,细胞膜上的众多特殊开关会放出集聚多时的化学物质,刺激其他的神经细胞。一个神经细胞会尽量收集来自其他神经细胞的刺激。当刺激积累到一定程度,超过了一个特定值(阈值)之后,便也会变得激动起来,也去刺激其他神经细胞。(听起来很像我们传小道消息:))。
回过来看看ann。在ann中,与神经细胞对应的,叫神经元。 ann是抽象模型,神经元自然不会有细胞膜了。但是膜电位还是有的,只是用一个变量来表达了。一个神经元会通过一个数学公式从其他神经元那里收集数据,作 为自己的状态值。当然不是简单地一股脑加起来,而是要为每一个神经元的状态乘上一个“权重”值。这样累加起来之后的,便可以作为神经元自身的状态。每个神 经元都有一个阈值。当状态值超过阈值,则它是“激活的”,状态为1,否则为0。
这么看来,ann对于bnn的模拟还是相当贴近的:神经细胞有表明自身状态的膜电位,神经元有状态值;神经细胞膜电位会传播,神经元的状态可以加权;神经细胞有突触,神经元有权重;神经细胞的会集聚其他神经细胞的刺激,神经元会加权累加。
就此断定ann已经是bnn完整的模拟,还为时尚早。这仅仅是第一节。

bnn 在神经细胞的层面上还有许多有趣的特性。首先,神经细胞兴奋程度的表达。神经细胞尽管拥有0-1特性(兴奋-静息),但这并不表明它无法表达自身的兴奋程 度。这一点在神经系统运作方面非常重要。比如,假设有一组神经细胞代表狗这个概念,而另一组是代表猫。当看到一只狗的时候,狗神经细胞的兴奋程度应该比猫 神经细胞更强。(否则,怎么知道是狗呢?)但是猫神经细胞也不会不兴奋,因为狗和猫毕竟还是有几分相像的。尽管猫神经细胞兴奋程度比不上狗神经细胞,但肯 定会比牛神经细胞来的兴奋。猫毕竟比牛更像狗。
表达神经细胞兴奋程度的最直接的方法莫过于膜电位。就是说,20mV比 10mV更加兴奋。很多ann模型也是采用了直接使用神经元状态值表示神经元兴奋的程度。这样最直观,最简单。但实际上,神经细胞却采用了另一个方案—— 时间编码。通俗地讲,就是用神经元发放的频率表示神经细胞的兴奋程度。而每次兴奋时的膜电位都是一样的,不管神经细胞有多兴奋。
相 比之下,似乎神经细胞不很高明。如果使用膜电位表示兴奋程度,可以比时间编码方式在信息处理速度上快很多。神经细胞采用这种“不理想”的方案,是有原因 的。要知道,神经系统可不是电路构成的,无法精确地控制电位。维持神经系统运作的是电化学反应,无法象电路那样精确地控制电压。另一方面,对于生物体而 言,细胞维持一个固定的膜电位要容易得多,也更加高效、节能、环保、绿色...。
这么看来,上帝他老人家也不怎么高明,为神 经细胞设计了不够理想的方案。似乎还是人类的设计更加高明些。但是千万别这么想,如果你不想遭雷劈的话。实际上,时间编码方案有着很多优势。如果神经细胞 用膜电位表达兴奋程度,那么一个神经细胞如何持续地跟踪了解其他神经细胞的状态变化呢?两个神经细胞之间是通过突触传递信号,而突触是通过神经递质刺激目 标。如果要持续了解其他神经细胞状态,这些细胞必须不停地发放神经递质,并且通过控制神经递质发放的数量表示神经细胞的状态。如此高强度的神经递质消耗是 生物体所负担不起的。
其实,这种情况对于ann而言同样是一个严重的问题。如果一个神经元试图持续了解其他神经元的兴奋程 度,必须没完没了地执行加权汇总。对于所有的神经元都是如此。一般情况下,计算资源无法支撑这种运算。因而,ann的很多模型实际上放弃了神经元之间的动 态互动,而是采用“快照”的方式,统一周期性地计算所有神经元的状态。这在小规模的ann中尚可应用,但在大型系统中,则无法获得很好的效果。
反 过来,如果神经细胞采用发放频率表示兴奋程度,那么问题就简单了。因为频率编码同时包含了神经细胞兴奋的状态和状态随时间的变化情况。一个神经细胞只需要 老老实实地按照自己的状态(实际上是其他神经细胞对其的刺激的汇总)发放神经脉冲。当外界刺激增强了,那么发放自然就会变得频繁。当一个神经细胞持续收到 另一个的高频发放,那么它就知道“那个家伙已经很兴奋了”。这种高频刺激在时间上的积累效应,同样会提升目标神经细胞的兴奋状态。
在bnn中,神经细胞间的这种动态互动有着至关重要的作用。一个神经细胞可以不断地知道其他神经细胞的兴奋状态和变化,同样做出持续不断地状态响应。这种特性可以帮助处理那些时间相关的信息。比如运动检测等。
时 间编码的实现,还依赖于上帝他老人家的另外一个设计。神经细胞的膜电位在受到单个刺激后上升,然后逐步回落,回到静息电位。这种“漏电”现象保证了不同频 率的刺激,会对神经细胞产生不同的影响。当刺激频率超过膜电位回落速度时,膜电位会不断上升,直到超过阈值,导致神经细胞兴奋。
此 处,还有一个与此相关的有趣的现象。通常,兴奋的神经细胞们向某个神经细胞发放的时候,所有的刺激会叠加在一起,并且使得该神经细胞兴奋。但是这种叠加并 不一定要同时发生。有时,一连串不足以引发神经细胞兴奋的阈下刺激,会在时间上叠加,最终引起神经细胞的兴奋。这种特性对LTPLTD等与神经系统学习有关的机制起着重要的作用。
最 后,任何一个神经细胞都有所谓的“不应期”。也就是,当一个神经细胞发放之后,会进入一个短暂的“休眠期”,不再受其他神经细胞影响,直到该阶段结束。这 样一来,一个神经细胞的最大兴奋频率是不应期长度的倒数。这有着现实意义。神经细胞的每次发放都需要消耗各种营养物质和能量,因而必须补充。无法想象一个 神经细胞没完没了地兴奋,还能够生存。这一点对于ann有着同等意义。尽管构成ann的是数字或者电路,但是资源同样也不是无限的。我们当然无法容忍个别 神经元长期占用计算资源,而使得其他神经元的歇工。上帝的设计,永远是最精简,最高效的。

上 半场就此结束。实际上ann和bnn还有很多方面可以进一步比较。到目前为止,仅仅比较了细胞层面的基本特性。总的说来,bnn更具柔性和灵活性,并且 bnn更加注重对资源的利用.尽管看起来神经细胞的行为更加复杂,但是它实际上使用了更加简单可靠的方式达到所需的目标。或许这种形式并非最快的,或者最 简单的,但却是在所面对的需求和约束下最好的选择。
此后的pk就延期吧,因为在更高的层面上,比如神经细胞/神经元的组织,功能模块的构成等等,bnn明显地在ann之上。我们不应当再怀疑上帝他老人家的设计了,自大往往不会有好结果的。别忘了,我们也是上帝设计的。
展开阅读全文

没有更多推荐了,返回首页