Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Joshua Chou作者Hao Wang编辑

同步SGD等现有分布式训练方式将过时,Yoshua Bengio谈迈向硬件友好的深度学习

2018 年 7 月 9 日,深度学习大牛 Yoshua Bengio 在多伦多大学的 Bahen 中心发表了一篇题为《Computing Hardware for Emerging Intelligent Sensory Applications》(服务于新兴智能感官应用的计算硬件)的演讲,该演讲是 NSERC 战略网络的一部分,聚焦于缩小深度学习方法与其实际应用之间的差距。

2018 年 AlphaGo Zero 所需的计算量是 2013 年 AlexNet 的 30 万倍。当前数据集空前巨大,模型准确率也很高,在此背景下,深度学习算法的设计需要更多地考虑硬件。

1 QNN:量化神经网络

目前很多研究都聚焦于量化信息以实现低精度的神经网络,Bengio 等研究者的早期研究尝试在训练和推断过程中尽可能降低精度。他们团队在实验中将变量的精度由 32 位降低到 16 位,并尝试组合不同的精度以观察模型准确率在什么时候会导致模型无效。

Bengio 团队发现,当使用低精度的变量训练神经网络时,模型会学习适应这种低精度,这就令神经网络的激活值与权重可以通过量化技术由 32 或 16 位的精度降低到 1、2 或 3 位的精度。 

Bengio 团队已经量化了前馈过程,但并不能量化梯度计算。在结束训练时,它们能获得允许在低精度参数上进行推断的神经网络。然而对于需要大量算力的训练过程来说,我们仍然需要高精度变量以计算梯度和反向传播。这主要是因为梯度下降非常慢,且每一次迭代都只能令参数朝着梯度减小的方向逐渐修正一点点,因此更高的精度才能令参数修正更准确。例如,如果系统是二值神经网络,其中权重要么是-1 要么是 1,且我们希望逐渐修正这些权重以获得更好的性能。那么这个「逐渐」的过程就要求我们使用更高的精度从 -1 到 1。

一旦完成训练,系统就不需要再使用高精度而只需要保留符号信息。因为降低了参数精度且保留相同的网络架构,系统会经历一些性能上的损失,而我们需要权衡的就是计算成本与模型准确率

图 1:Bengio 等人研究的在训练过程中进行位宽缩减的方法。

图 2:由 Bengio 提供的展示使用低精度方法得到的误差结果。

2 均衡传播和基于能量的模型

演讲的第二个主题是均衡传播,这是一个填补基于能量的模型(EBM)和反向传播之间鸿沟的模型。Bengio 认为,这是一个研究风险更大的领域(人少、资金少),但有可能给模拟计算系统的设计带来深刻影响。这一概念和方法的灵感来自物理系统,当收敛到静止状态时,合力为零,因此有了「均衡」一词。

2.1 什么是基于能量的模型(EBM)?

首先,简要介绍一下 EBM。EBM 的基础设定是一个动力学的物理系统,这个系统具有能量,即动能。此外,根据热力学定律,此系统将从高能构型变为低能构型。通过一个基于这些原理的神经网络和一个能控制结构随时间改变的能量函数,能量函数往往会收敛到低能构型。如果不同的结构对同一问题有不同解,那这种情况下,「学习」就意味着能量函数的形成,以使对应合适解的构型有更低的能量。

在这里,Bengio 将硬件更多地与问题联系起来。假设有一些物理机器,它们遵循一组微分方程。这些微分方程定义了上述物理系统的动力学。需要研究的数学问题是「如何计算衡量了此物理系统性能的代价函数的梯度」。因为对于这种系统,是无法使用反向传播的标准的基于图像模型(因为该系统具有多个微分方程,用来描述系统如何随时间变化)。为了回答这个问题,可以假设一个这样的能量函数——物理系统的动力学收敛于一些局部极小的能量。

2.2 EBM 中的优化问题

在这一节里,Bengio 向观众介绍了通常情况下如何定义和推导训练 EBM 的梯度。这基于能量函数可以被分解成两部分。第一部分叫作内部势能(internal potential),管理不同神经元彼此之间的相互作用。第二部分叫作外部势能(external potential),定义外部世界对神经元的影响。

任何系统的训练都是在进行某种优化,而 EBM 的梯度优化问题可以理解成: 在每一次的梯度运算后,所得值可代表系统中的能量。这一概念的解释见图 3。对于每个神经元,优化问题都需要处理内部势能和外部势能。训练将在两个阶段中推进:free phase 和 weakly clamped phase。free 阶段中网络尝试收敛至固定点 (優化問題的局部极小值),并读取网络输出的预测值。weakly clamped 阶段「推动」输出向目标的前进(目标和给定输入相关)、误差信号的传播,并找到其他固定点。这两个阶段是对标准反向传播中前向传输和反向传输的模拟。

图 3:训练基于能量的模型的概念解释。训练过程涉及寻找局部极小值,其中能量函数被最小化。

2.3 EBM 的作用

到底,基于能量的系统在构建模拟硬件的情况下起到了哪些作用?数字硬件的问题之一是它们是基于模拟硬件构建的。数字系统是模拟硬件的近似。为了使数字系统良好运行,该系统需要其组件按某些理想化原则运行。例如,按照 V-C 特性曲线为晶体管建模。追求這種理想化的后果之一就是它需要大量能量来使模拟组件保证正确运行。现在看一下当前的模拟硬件,一个问题是当电路构建完成时,不同的设备表现不同,且不完全按照完美的方式运行。此外,如果电路太小的话,还会出现大量噪声。因此,EBM 没有尝试量化这些带噪声信号,而是允许该系统把这些组件作为一个整体来处理。如图 4 所示,用户可以不用处理电路组件的输出,只需专注于整体输出值即可,整体输出值对应用户感兴趣的度量(在本案例中,该度量是能量)。

图 4:基于能量的模型的潜在优势。 

3 文化演进

Bengio 最后讨论的话题和大脑神经元并不是很相关,而跟社会中的人类更加相关。深度学习中关于硬件的一个问题是研究者是否可以利用并行计算的优势。正如人们所知,GPU 工作得如此之好的原因是它们相比 CPU 能更好地实现并行计算。

更基本地,存在一个计算资源成本的问题。随着人们尝试建立更大规模、更复杂的系统,研究瓶颈变成了电路不同部分之间交流的能耗。这在 GPU 和 CPU 中最为明显,其中芯片必须从内存中迁移大量的数据到芯片的其它部分中。通常来说,这些信息传输过程的能耗相当大。

如图 5 所示,当前最优的分布式训练方式是通过参数服务器(Parameter Server)执行的同步随机梯度下降算法(SGD)。这是一种简单的分布式算法,其中存在一组节点,每个节点都拥有经过训练的神经网络的一个版本。这些节点通过一个服务器共享梯度和权重等信息。当试图扩展节点数量时,问题出现了。考虑到如今的问题涉及的巨大维度,当扩展节点数量(到什么级别)时,节点将不得不交流大量的信息。如何解决扩展性问题?一个可能的解决方案是文化演进。

图 5:以同步随机梯度下降为代表的分布式训练方式将在 10 年后过时,图为 2012 年 Jeff Dean 等人的 NIPS 研究。

3.1 什么是文化演进?

文化演进是一种高效通信的分布式训练方法,其灵感来自于人们在一个网络群体中发现的协作机制,这些网络正在(通过语言)学习和分享发现的概念。例如,假设人类是节点,每个人脑都有大量的突触权重。让两个大脑同步的方法不是分享它们的权重,而是交流想法。如何做到这一点?分享「表征」,这是神经元活动的离散总结。

 Hinton 等人探索了通过传递激活而不是传递权重的方法同步两个网络。他们的想法大致为:有两个权重不同的网络,这两个网络将尝试同步它们正在计算的函数(而不是权重)。例如,从人类互动中获得灵感,A 的大脑与 B 的大脑运作方式不同,但是只要 A 和 B 的大脑都理解相同的概念,他们就能共享上下文,从而进行合作。 

 这种方法基于一个旧思路:训练一个能够总结多个网络知识的单个网络。做到这一点需要采用「teaching」网络的输出,然后在训练中使用这些输出作为网络的「targets」。文化演进的不同之处在于两种网络同时学习。Bengio 的团队已经试验过这些概念,他们观察到除了网络自己数据的 targets,让网络之间共享输出作为额外的 targets 能够极大地改进对网络群体的训练。下图对文化演进给出了简要总结。

图 6:文化演进总结。

工程Yoshua Bengio硬件深度学习
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

阿尔法围棋技术

阿尔法围棋是于2014年开始由英国伦敦Google DeepMind公司开发的人工智能围棋程序。AlphaGo是第一个打败人类职业棋手的计算机程序,也是第一个打败围棋世界冠军的计算机程序,可以说是历史上最强的棋手。 技术上来说,AlphaGo的算法结合了机器学习(machine learning)和树搜索(tree search)技术,并使用了大量的人类、电脑的对弈来进行训练。AlphaGo使用蒙特卡洛树搜索(MCTS:Monte-Carlo Tree Search),以价值网络(value network)和策略网络(policy network)为指导,其中价值网络用于预测游戏的胜利者,策略网络用于选择下一步行动。价值网络和策略网络都是使用深度神经网络技术实现的,神经网络的输入是经过预处理的围棋面板的描述(description of Go board)。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

Alex网络技术

AlexNet是一个卷积神经网络的名字,最初是与CUDA一起使用GPU支持运行的,AlexNet是2012年ImageNet竞赛冠军获得者Alex Krizhevsky设计的。该网络达错误率大大减小了15.3%,比亚军高出10.8个百分点。AlexNet是由SuperVision组设计的,由Alex Krizhevsky, Geoffrey Hinton和Ilya Sutskever组成。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

推荐文章
暂无评论
暂无评论~