新人工智能技术“向前向前”算法是什么?
在 2022上发表的一篇新论文中,介绍了“向前向前算法,“一种新的人工神经网络学习算法,灵感来自我们对大脑中神经激活的了解。尽管仍处于早期试验阶段,前向-前向有可能在未来取代反向传播。该论文还提出了一个新的“死亡计算”模型,它使我们更接近大脑的节能机制,并支持向前向前算法。
反向传播的问题是
当深度神经网络在训练时,它经历两个阶段。首先是正向传递,其中输入要素穿过模型的各层,并通过权重、激活函数和其他变换进行修改以创建预测。然后将预测值与地面真实值进行比较,并计算误差。
在第二阶段,反向传播,误差以相反的顺序通过各层传播,人工神经元的权重被校正。反向传播使用偏导数和链规则来计算梯度,并基于每个人工神经元对误差的贡献来调整每个人工神经元。
虽然反向传播非常有用,但它与我们对大脑的了解非常不同。
作为皮层如何学习的模型,反向传播仍然令人难以置信,尽管人们付出了相当大的努力来发明可以由真实神经元实现的方法。没有令人信服的证据表明,皮层明确传播误差导数或存储神经活动,以供随后的反向传递使用。
例如,在视觉系统中,不同皮层区域之间的连接并不反映基于反向传播的深度学习模型的自下而上的连接。相反,它们是循环的,其中神经信号穿过几个皮层,然后返回到更早的区域。
反向传播的主要限制之一是学习和推理的分离。若要调整神经网络的权重,训练算法必须停止推理以执行反向传播。在现实世界中,大脑接收不断的信息流,感知系统需要实时进行推理和学习,而不是停下来进行反向传播。
如果前向传递中完成的计算不可微,反向传播也不起作用。如果我们将一个黑盒插入到正向传递中,就不可能再进行反向传播,除非我们知道了黑盒的一个可微分模型。
在不可能反向传播的情况下,强化学习可以作为训练神经网络的替代算法。但当神经网络包含数百万或数十亿个参数时,强化学习在计算上是昂贵的、缓慢的和不稳定的。
向前向前算法
在视觉皮层(右),信息向几个方向移动。在神经网络(左)中,信息是单向移动的。
前向-前向算法背后的思想是用两次前向传递代替反向传播的前向和后向传递。这两个过程是相似的,但是它们处理不同的数据并且具有相反的目标。
“正向传递”对真实数据进行操作,并调整网络的权重,以增加每一层的“良好度”。“负传递”对负数据进行操作,并调整权重以降低优度。
在论文中,用神经活动的平方之和以及活动平方的负和来衡量善。学习的目的是调整神经网络的权重,使其对于真实的例子高于某个阈值,而对于负面数据低于阈值。
在训练期间,样本和它们的标签被合并到单个向量中,以创建正数据。为了创建负数据,使用了相同的过程,稍微不同的是在示例上附加了错误的标签。在数据通过神经网络之后,调整权重以增加正面示例的良好度(例如,激活的平方和),并减少负面示例的良好度。不需要反向传播。
这个过程对于具有单个隐藏层的神经网络来说非常有效。对于多层深度学习模型,每个隐藏层的输出在被传递到下一层之前被归一化。
FF算法也可以受益于某种形式的自我监督学习这可以使神经网络更加健壮,同时减少手动标记样本的需要。在论文中,展示了简单的掩蔽技术如何创建负样本来训练模型。
与反向传播不同,如果FF算法包含黑盒模块,它也可以工作。由于该算法不需要可微函数,它仍然可以调整其可训练参数,而无需知道模型中每一层的内部工作原理。
前向-前向算法(FF)在速度上与反向传播相当,但它的优势在于,当正向计算的精确细节未知时,可以使用它。
测试转发转发算法
在由四个完全连接的层组成的神经网络上测试了FF算法,每个层包含2000个神经元和ReLU激活。该网络在MNIST数据集上训练60个时期,达到1.36%的错误率。相比之下,反向传播需要20个时期才能达到类似的结果。通过将学习率提高一倍,能够在40个时期内达到1.40%的错误率。
前向-前向算法不能很好地概括本文研究的几个玩具问题,因此它不太可能取代后向传播,用于功率不是问题的应用。
根据说法,前向-前向算法可能优于反向传播的两个领域是“皮层中的学习模型”和“在不求助于强化学习的情况下利用非常低功率的模拟硬件的方法。”
与此同时,南加州大学计算机科学副教授Saty Raghavachary指出,虽然FF似乎是backprop的替代方案,但它需要进一步研究。
“与BP相比,FF在生物学上更合理。但从更大的角度来看,它只是一种从捕获的数据中学习现有模式的替代方式,本身不会导致类似人类的智能——因为它只处理人类生成的、人类标记的数据(学习模式),”Raghavachary说。
凡人电脑
在论文中,挑战了现有的计算范式,并提出了一个新的方向。
“通用数字计算机被设计成忠实地遵循指令,因为人们认为让通用计算机执行特定任务的唯一方法是编写一个程序,以极其详细的细节准确地指定要做什么。“这不再是真的,但研究界对深度学习对计算机制造方式的长期影响理解缓慢。”
特别挑战了将软件和硬件分开的想法。虽然这种分离有很多好处,包括将相同的软件复制到数百万台计算机上,但它也有局限性。
如果……我们愿意放弃永生,应该有可能在执行计算所需的能源和制造执行计算的硬件的成本方面实现巨大的节约。我们可以允许旨在执行相同任务的不同硬件实例的连接性和非线性存在较大且未知的变化,并依靠学习过程来发现有效利用硬件的每个特定实例的未知属性的参数值。
基本上,这意味着软件是逐渐建立在每个硬件实例上的,并且只对那个实例有用。相应地,软件变成了“凡人”,这意味着它和硬件一起死去。即一台普通的计算机如何通过训练将其知识转移到另一个硬件实例。根据辛顿的说法,尽管有缺点,人类计算也有明显的优势。
如果你希望你的万亿参数神经网络只消耗几瓦,人类计算可能是唯一的选择,尽管他也断言,它的可行性将取决于找到一种可以在精确细节未知的硬件中有效运行的学习程序。
前向-前向算法是一个有前途的候选算法,尽管它在大型神经网络中的应用还有待观察。
我认为数字计算机和大脑之间的(错误)类比适得其反地促进了突触可能类似于晶体管(二进制开关)的想法,而事实上,突触要复杂得多。一旦人们意识到FF模型可以做什么,这可能会导致一些关于皮层计算的构建模块的新想法,包括大脑中的反馈(自上而下)连接。鉴于大脑中充满了循环和并行连接,FF似乎非常有可能在大脑中实现。
然而,Raghavachary认为,类似生物的智能需要一种架构,它可以通过直接、物理、交互和持续(DPIC)与世界接触来了解世界,以便非象征性地体验世界。
在足够复杂的架构中,符号处理(如语言习得)可能会发生,这将通过潜在的和互补的非符号体验来“扎根”。FF似乎是进行符号处理的另一种方式,这很有用,但在我看来,一个成熟的AGI建筑需要直接的经验,非符号的,对应的,只有体现才能提供。
生物学习
它在连通。它存在于每个单独突触连接的分子组成中,这不仅仅是一个“突触重量”。这一切都是通过学习之前的基因编码发展而来的——至少在生物学上是这样说。
根据说法,基因编码发展解决了提出的两个问题。首先,它决定了如何让“万亿参数”进入网络。第二,作为发展基础的基因组进化编程是一个“学习过程”,它有效地“运行”在硬件中,而硬件的精确细节是未知的。
事实上,一个'可以在不知道其精确细节的硬件中有效运行的过程'回到辛顿质疑的问题:程序(软件)与硬件的分离在生物学中,硬件的精确细节是一个漫长的信息编码过程的结果,通过生长过程进化编程和展开。
生物学习的效率在于这种渐进的信息编码过程:硬件的开发永无止境,学习程序的运行永无止境。相反,网络中的信息编码,包括亚细胞和分子,首先在没有神经元活动的情况下连续发生,后来随着神经元活动发生。
在处理环境信息之前,神经元和突触水平的学习已经作为一个纯粹的基因编码过程发生了。“没有‘接通’开关,只有逐渐增加的信息编码,才能形成一个网络其具体细节不得而知仅从学习的角度来看,忽略了在将数据输入网络之前编码的信息。
生物硬件给定状态的精确细节很难知道,因为描述这一切需要太多的信息。对于什么是相关的,也没有一致的意见。
在当前的人工智能中,除了突触重量,什么都不重要。但是,如果没有及时的属性、动力学和功能,突触功能的许多方面都无法模拟,无数的单个分子使突触以一种通过梯度下降上调或下调突触重量的方式做出反应。