【干货】二值神经网络:让 AlphaGo 能在手腕运行

赢得围棋人机大战的AlphaGo为了运行神经网络,用了280块GPU,功率超过一百个李世石[1]。

这种使用浮点计算的神经网络要求的大存储空间和大计算量,严重阻碍了其在手机、手表和移动机器人等设备上的应用。二值神经网络设法让计算主要在正1或负1间进行,几十倍地降低了网络大小和计算量,但一直以来难以达到高预测准确率。最新的进展大幅提高了二值神经网络的预测准确率并接近实用水平。

康奈尔大学管理的预印本网站arxiv.org以第一时间发表最新研究结果而闻名,比如佩雷尔曼关于庞加莱猜想关键步骤的证明。从2015年年底以来,有心人可以注意到,一场没有发令枪声的赛跑正在arxiv.org上进行。这次的主角是二值神经网络——一种大部分运算在正1或负1间进行的革命性的神经网络。

自2012年Alex Krizhevsky与GeoffreyHinton在百万图片量级的ImageNet数据集上的突破性工作以来,神经网络迅速在计算机视觉、语音识别、自然语言处理等领域更新了多项纪录,并在手写体汉字识别、自然图片分类等问题上先后超过了人类的平均水平。这一轮以深度学习为名的神经网络的应用热潮由多方面因素催生。其中,Alex等人贡献的强有力的神经网络构型产生了广泛的影响。这个以Alex命名的名为AlexNet的神经网络,包含超过6000万个浮点参数,处理一张长宽为224的彩色图片需要超过十亿次浮点运算。

在当时的硬件条件下,Alex被迫将网络拆分在两块显卡上才能进行实验。后续的VGG-16网络相比AlexNet提高了预测准确率,却更是一个网络大小超过500M,单图片浮点计算量超过280亿次的庞然大物。人们对预测准确率的追求甚至催生了ResNet这样的层数高达1001的网络。进一步的,即使是相同的网络,如果能对输入的各种情况做更详尽的计算,则能继续提高预测准确率。事实上,人们发现”大网络+多次计算=高质量”的公式在一定范围内成立。比如GoogleDeepMind在实验中发现,拥有280块GPU(图形处理单元)的分布式版AlphaGo,对战只有8个GPU的单机版时,达到了75%的胜率。

然而现在主流的GPU显卡单卡功耗就有275W,相当于三分钟内耗尽一部IPhone6的电池。高功耗还意味着对散热的苛刻要求,因此显卡的标准照片上更显眼的是一个大风扇而不是芯片。因此,功耗、计算能力等瓶颈制约了AlexNet为代表的神经网络被应用到更多的设备里。特别的,手表和Google Glass等可穿戴设备上,传统的触摸等交互方式捉襟见肘,特别需要语音等更智能的交互方式。然而恰恰这些平台因为重量与电池容量的苛刻限制无法承载AlexNet这性的强力神经网络。虽然云计算可以将一部分计算转移到云端,但在需要处理高流量输入信号和要求高实时性的场合中,云计算的带宽、延迟和全时可用性都受到挑战,而无法完全替代本地计算。因此,迫切需要一种小、快、强的网络来激活这些设备的智能。

二值神经网络是神经网络“小型化”探索中重要的一个方向。神经网络中有两个部分可以被二值化,一是网络的系数,二是网络的中间结果。通过把浮点单精度的系数变成正1或负1,系数的二值化能达成存储大小变为原来的1/32,也就是3%。另一方面,如果中间结果也变为二值,由于大部分计算都在1间进行,可以将浮点计算替换成整数位运算。在支持64位运算的CPU和GPU上,这意味着64倍的理论加速比。而64倍的加速比如果按摩尔定律折算,意味着提前9年用上了未来的硬件。如果打开各种设备的存储与计算能力比照表。二值网络将允许把一个此前只能在服务器上运行的神经网络运行在智能手表上,比如VGG-16网络。

二值神经网络的历史不短于使用单精度浮点运算的神经网络(以下简称单精度网络)。事实上,1943年Warren McCulloch和Walter Pitts提出的人工神经元模型就是一个二值神经网络。然而一直以来困扰二值神经网络的是缺乏有效的从训练数据中学习网络系数的算法。与此不同,单精度神经网络拥有带有坚实理论基础的梯度下降算法,从而迅速超越二值网络成为神经网络研究应用中的主流。一直到2014年,二值神经网络只在手写数字MNIST这种简单的任务上达到了可观的预测准确率,而同时的单精度神经网络已经可以在手写体汉字识别、1000类物体分类等问题上打败人类了。当时的一个估计是神经网络的系数至少需要10位左右精度,再少即会因为参数量化引入的噪声造成无法有效学习和使用。但对作为计算与生物学交叉的神经网络而言,有一个疑问一直挥之不去,单精度神经网络是生物可行的吗?人脑里的神经网络真的能以32位的精度来处理信号吗?

这一局面,在2015年底被突然打破。

首先点燃战火的是Matthieu Courbariaux,他来自深度学习巨头之一的Yoshua Bengio领导的蒙特利尔大学的研究组。他们的文章于2015年11月出现在arxiv.org上。与此前二值神经网络的实验不同,Matthieu只关心系数的二值化,并采取了一种混和的策略,构建了一个混有单精度与二值的神经网络BinaryConnect:当网络被用来学习时,系数是单精度的,因此不会受量化噪声影响;而当被使用时,系数从单精度的概率抽样变为二值,从而获得加速的好处。这一方法在街拍门牌号码数据集(SVHN)上石破天惊地达到超越单精度神经网络的预测准确率,同时超越了人类水平,打破了此前对二值网络的一般印象,并奠定了之后一系列工作的基础。然而由于只有系数被二值化,Matthieu的BinaryConnect只能消减乘法运算,在CPU和GPU上一般只有2倍的理论加速比,但在FPGA甚至ASIC这样的专用硬件上则有更大潜力。

一石激起千层浪。Matthieu组很快发现自己的工作引起的兴趣超乎想像。事实上,3个月后,ItayHubara在以色列理工的研究组甚至比Matthieu组早了一天在arxiv.org上发表了同时实现系数和中间结果二值化,并在SVHN上达到了可观预测准确率的二值网络。由于双方的工作太过相似,三个星期后,也就是2016年2月29日,双方的论文被合并后以Matthieu与Itay并列一作的方式再次发表到arxiv.org上。这个同时实现系数和中间结果二值化的网络被命名为BinaryNet。由于达成了中间结果的二值化,BinaryNet的一个样例实现无需额外硬件,在现有的GPU上即达成了7倍加速。

每年的年初是机器学习相关会议扎堆的时段,Matthieu与Itay于3月17日更新了他们的合作论文,进行了一些细节的调整,看起来是投稿前的最后准备。但就在一天前的3月16日,来自西雅图的Allen institute for AI和华盛顿大学的Mohammad Rastegari等人用新方法改进了二值系数网络BinaryConnect和全二值网络BinaryNet,在大规模数据集ImageNet上分别提高预测准确率十几个百分点。其中,改进后的二值系数网络BWN已达到被普遍接受的神经网络质量标准:只差单精度AlexNet3个百分点。

而Mohammad改进BinaryNet的产物XNOR-Net,离单精度的AlexNet也只差13个百分点了。考虑到XNOR-Net相比AlexNet的惊人的实测58倍运行时加速,达到二值神经网络的理论上限的光明未来已近在眼前了。

Mohammad的方法的关键是达成了计算量与量化噪声间的一个巧妙平衡:用二值来进行AlexNet中最昂贵的卷积操作,而用一部分单精度值计算来降低量化噪声。也就是说,XNOR-Net不是一个纯粹的二值网络,却保留了二值网络绝大部分的好处。从数学的角度,Mohammad提出了一种用二值矩阵与单精度值对角阵之积近似一个单精度值矩阵的算法。这在数学里中可归为矩阵近似的一种。矩阵近似包含一大类方法,比如笔者所在的研究组此前提出的KroneckerFully-Connect方法,即用一系列小矩阵对的Kronecker积的和来近似一个大矩阵。类似的以减少存储大小和计算量为目的的工作还有利用随机投影的“DeepFried Network”,利用循环矩阵的”Circulant Network”等等。由于Mohammad的二值化方法也是一种近似,因此不可避免地会造成预测准确率的降低。寻找能快速计算的更好的矩阵近似方法,可能是下一步的主要目标。

现在,人类已经进入向二值神经网络完全潜力冲刺的最后出发阵地。关心的人们正在翘首期待这一天的到来,也许明天,也许后天的arxiv.org就会揭晓谁是那个撞线的人。

2015年4月时,一则新闻引起人们的注意:格鲁吉亚国际象棋特级大师在迪拜国际象棋公开赛时装作去厕所,实则是用手机上的对战软件作弊被发现。时间距离IBM用拥有30个结点的超级计算机“深蓝”战胜当时的国际象棋第一人卡斯帕罗夫过去了18年。按此推断,和李世石对战的AlphaGo,2034年左右也可能跑在手机上。现在有了二值神经网络,这一时间可能被提前到2025年,也就是9年后。如果那时柯洁还在现役,他要小心一个使用iPhone11s的人。

注:

[1] : 280块Titan X GPU的满负荷功率为77千瓦(不计外围电路和空调)。一个68kg成年人每日平均需要热量7208 kJ,折合功率为83瓦。大力士比赛时的输出功率为400瓦。因此保守估计,AlphaGo的功率超过100个李世石。

作者周舒畅:旷视科技(Face++)研究员,曾就职Google Research。旷视科技(Face++)以让机器看懂世界及至真正思考为使命,对于神经网络在视觉问题中的应用,和神经网络架构的优化、加速及其一般方法具有浓厚兴趣和深度积累。目前已在人脸识别、文字及图像识别技术领域取得多项突破性进展。

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2016-03-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

专访 | 诺基亚首席科学家范力欣:用模糊逻辑实现可解释的深度神经网络

深度学习发展到今天,很大程度上依然是一个「实验主导」的、「先有实验结果再找可能解释」的学科。对实验结果的理论解释,争议不断,而且随着时间的推移,研究者们给出的解...

16020
来自专栏目标检测和深度学习

CVPR 2018视频行为识别挑战赛结果出炉:前三名均由国内团队包揽

Moment 是由 MIT-IBM Watson AI Lab 开发的研究项目。该项目致力于构建超大规模数据集来帮助 AI 系统识别和理解视频中的动作和事件。

18420
来自专栏华章科技

数据科学家最常用的十种算法(KDnuggets官方调查)

最新一期的 KDnuggets 调查展示了一份数据科学家使用度最高的算法列表,这份列表中包含了很多惊喜,包括最学术的算法和面向产业化的算法。

8540
来自专栏数据科学与人工智能

【数据挖掘】机器学习与数据挖掘的学习路线图1

应部分朋友要求,特奉上“机器学习与数据挖掘的学习路线图”,供有兴趣的读者研究。 说起机器学习和数据挖掘,当然两者并不完全等同。如果想简单的理清二者的关系,不妨这...

25990
来自专栏AI科技大本营的专栏

开讲 | 对抗样本攻击,AI安全专家90分钟聊GAN货

刚刚我们在音频里所提到的,是一年前轰动全球的大事件: 2016年5月7号,在美国的佛罗里达州,一辆特斯拉径直撞上一辆行驶中的白色大货车,酿成了世界上自动驾驶系统...

32450
来自专栏华章科技

500款各领域机器学习数据集,总有一个是你要找的

美国劳工部统计局官方发布数据:http://dataju.cn/Dataju/web/datasetInstanceDetail/139

31510
来自专栏AI科技评论

学界 | Ian Goodfellow和Papernot半年三篇博文,对机器学习的安全隐私来了个大起底

AI 科技评论按:随着人工智能研究的不断发展,由机器学习模型在背后提供支持的功能越来越多地开始商业化,最终用户的生活里机器学习能造成的影响也越来越大。这时候,机...

442120
来自专栏机器学习算法与Python学习

800万中文词,腾讯AI Lab开源大规模NLP数据集

10 月19 日,腾讯 AI Lab 宣布开源大规模、高质量的中文词向量数据。该数据包含 800 多万中文词汇。

21730
来自专栏大数据

一位 TalkingData 员工学习人大统计学课程的笔记及感想

引言 新的一年,想必不少人都给自己树立了学习目标,要想学习上得去,先得学会做笔记。记笔记是我们在学习过程中消化总结的好方式,良好的记笔记习惯能起到事半功倍的效果...

21690
来自专栏量子位

杨强教授第四范式内部分享:漫谈《西部世界》、GAN及迁移学习

本文转载自第四范式公众号,量子位已获授权。 「范式大学」由第四范式发起,致力于成为“数据科学家”的黄埔军校,校长为第四范式首席科学家,华人界首个国际人工智能协会...

35950

扫码关注云+社区

领取腾讯云代金券