NTT高级科学家:光子是深度学习的未来!光子有望替代电子计算机加速神经网络计算...


来源:AI科技评论

作者:Ryan Hamerly

编译:陈彩娴

近日,来自日本 NTT 研究所的高级科学家 Ryan Hamerly 在 IEEE Spectrum 上发表了一篇文章(“The Future of Deep Learning Is Photonic”),谈论了光学计算在未来的强大潜力。他解释了为何光学计算会降低神经网络计算的能耗,以及光子设备取代电子设备的可能。

Ryan Hamerly 的本科就读于加州理工学院物理专业,2016年从斯坦福大学获得应用物理学博士学位。博士毕业后,他先是在日本 NTT 研究所担任博士后研究员,与日本知名研究员 Yoshihisa Yamamoto、Shoko Utsunomiya 研究光学与量子计算,一年后又到 MIT 做了两年博士后,博士后导师为 Dirk Englund 教授。

图注:Ryan Hamerly

我们注意到,之前获得麻省理工科技评论“35岁以下科技创新35人”的中国青年科学家沈亦晨也在光子研究上有所成就。沈亦晨的博士毕业于 MIT,在2017年与 Nicholas Harris 发表了一篇如今谷歌学术引用接近1000的论文(“Deep learning with coherent nanophotonic circuits”),谈到将光学应用于机器学习任务,比如语音和图像识别。

图注:沈亦晨

在2017年的工作中,沈亦晨也曾提出一个开创性的想法,即用光子替代电子来进行神经网络计算。同年,他在创立了Lightelligence公司,一年半后开发出了世界上第一款光子芯片原型板卡,初步验证了光子的潜力。

以下,AI科技评论对 Ryan Hamerly 一文作了不改原理的整理:

1

研究背景

近年来,计算机技术被应用到许多原先需要依靠人类感官的任务中,会识别图像中的物体、转录语音、跨语言翻译、诊断疾病、玩复杂的游戏和驾驶汽车等等。

直接促成这些惊人发展的技术被称为“深度学习”。深度学习指的是一种被称为人工神经网络的数学模型。深度学习是机器学习的一个子领域,而机器学习是计算机科学下一个基于复杂模型与数据拟合的的分支。

虽然机器学习已经发展了很长时间,但深度学习是近年来才崛起,主要是因为计算资源增加、变得广泛可用,同时可以轻松收集用于训练神经网络的大量数据。算力的增长加快,但深度学习的计算需求增长得更快。这促使了工程师开发专门针对深度学习的电子硬件加速器,谷歌的张量处理单元 (TPU) 就是一个很好的例子。

在这里,我将描述一种解决该问题的新方法,就是使用光学处理器来执行神经网络计算,用光子替代电子。要了解光学如何解决神经网络的计算问题之前,我们首先要了解目前计算机如何进行神经网络的计算。

 

2

电子难以满足神经网络的计算需求

在绝大多数情况下,人工神经元是由在数字电子计算机上运行的特殊软件构建而成。这个软件会为特定的神经元输送多个输入和一个输出。每个神经元的状态都取决于其输入的加权和,这个过程会使用到一个非线性函数(称为“激活函数”)。这个神经元的输出,也就是“结果”,又会成为其他神经元的输入。

为了提高计算效率,这些神经元会被一组一组地分到不同的层中,神经元只会与相邻层的神经元连接。这样做的好处是可以使用线性代数的某些数学技巧来加快计算的速度。

这些线性代数计算是深度学习中对计算要求最高的部分,而且随着神经网络规模的增长,它们对计算的要求也会增长。训练(确定对每个神经元的输入应用哪个权重的过程)和推理(当神经网络给出想要的结果时)步骤也是同样的原理。

这些神秘的线性代数计算是怎样的?它们其实没有那么复杂。它们涉及对矩阵的运算,而矩阵只是数字的矩形数组。

这是个好消息,因为现代计算机硬件已经针对矩阵运算进行了很好的优化。在深度学习兴起很久之前,矩阵运算就已经是高性能计算的重要基础。用于深度学习的相关矩阵计算可以归结为大量的乘法和累加运算,就是将成对的数字相乘并将它们的乘积相加。

这些年来,深度学习需要越来越多的乘法累加运算。比如 LeNet,这是一个开创性的深度神经网络,主要用于图像分类。1998 年,它被证明在识别手写字母和数字方面优于其他机器技术。到了 2012 年,神经网络 AlexNet 出现,能够识别图像中数千种不同类型的物体,但它的乘法累加运算却是 LeNet 的 1600 倍。

从 LeNet 的雏形成果到 AlexNet,神经网络对计算性能的需求提高了近 11 倍。在这 14 年里,摩尔定律促进了大部分算力的增长,但目前的挑战是难以再保持过去的增长趋势,因为摩尔定律已经失去发展的动力。这时候,要提高算力,通常的解决方案是在一个问题上投入更多的计算资源,以及时间、金钱和精力。

图注:两束光线撞上一个光束分束器(蓝色方块),光束的强度与它们要相乘的数字 x 与 y 相当。离开分束器的光束照在光电探测器(椭圆形)上,提供与光强度平方成正比的电信号。将一个光电探测器信号调反,并将其与另一个信号相加,就会产生一个与两个输入的乘积成正比的信号。

所以,训练当今的大型神经网络通常会带来显著的环境问题。例如,2019 年的一项研究(“Energy and Policy Considerations for Deep Learning in NLP”)发现,训练一个特定的深度神经网络来进行自然语言处理所产生的二氧化碳排放量是汽车在整个生命周期内的驾驶所产生的二氧化碳排放量的五倍。

论文地址:https://arxiv.org/pdf/1906.02243.pdf

 

3

光学应运而生

可以肯定的是,数字电子计算机的进步促进了深度学习的蓬勃发展,但这并不意味电子计算机是执行神经网络计算的唯一机器。数十年前,当数字计算机还相对原始时,一些工程师是使用模拟计算机来解决困难的计算。随着数字电子技术的进步,那些模拟计算机被淘汰了。

但现在也许是再次使用模拟计算机的好时机,尤其是当模拟计算可以通过光学的方式来完成时。

我们知道,光纤可以支持比电线高得多的数据速率。这也是为什么从 1970 年代后期开始,所有长途通信线路都采用光纤的原因。从那时起,光数据线路取代了铜线,已实现越来越短的跨度,一路延伸到数据中心的机架到机架通信。光数据通信速度更快,能耗也更低。光学计算也有同样的优势。

但数据传播与用数据进行计算有很大的区别。这也是模拟光学所遇到的障碍。传统的计算机是基于晶体管,而晶体管是高度非线性的电路元件——这意味着它们的输出不仅与输入成正比,至少在用于计算时是这样。非线性决定了晶体管的开关,使得它们可以被塑造成逻辑门电路。这种切换很容易用电子设备来完成,所以电子设备的非线性十分重要。但光子遵循的是麦克斯韦方程,是线性的,这就意味着光学设备的输出通常与其输入成正比。

在这里,一个诀窍是利用光学设备的线性来做深度学习最依赖的部分——线性代数。

为了解释如何做到这一点,我将在这里描述这样一个光子设备:当它与一些简单的模拟电子设备耦合时,它可以将两个矩阵相乘。这种乘法将一个矩阵的行与另一个矩阵的列组合在一起。更准确地说,它将这些行和列中的数对相乘,并将它们的乘积加在一起——也就是我之前描述的乘法和累加运算。我和我在 MIT 的同事在 2019 年发表了一篇文章(“Large-Scale Optical Neural Networks Based on Photoelectric Multiplication”),解释了为什么可以光子设备做到这一点。我们正在努力构建这样一个光学矩阵乘法器。

论文地址:https://journals.aps.org/prx/abstract/10.1103/PhysRevX.9.021032

在这个光子设备中,最基础的计算单元是一个被称为“分束器”的光学元件。分束器的实际组装很复杂,但你可以把它想象成一个 45 度角的半镀银镜子。如果您从侧面向其发送一束光,分束器将允许一半光直接穿过它,而另一半则从有角度的镜子中反射,使其与入射光束成 90 度反弹。

图注:分束器

现在将第二束光垂直于第一束光照射到该分束器中,使其照射到成角度的镜子的另一侧。第二光束的一半将类似地以 90 度角透射和反射。两个输出光束将与第一个光束的两个输出成组合。所以这个分束器会有两个输入和两个输出。

要使用此设备进行矩阵乘法,你需要生成两个光束,且光束的电场强度与要相乘的两个数字成正比。我们将这些电场强度称为 x 和 y。将这两束光照射到分束器中,分束器会将这两束光合并在一起。这种特殊的分束器会产生两个输出,其电场值为 (x + y)/√2 和 (x − y)/√2。

除了分束器之外,这个模拟乘法器还需要两个简单的电子元件(两个光电探测器)来测量两个输出光束。不过,它们不测量这些光束的电场强度,而是测量光束的功率,该功率与其电场强度的平方成正比。

为什么这种联系很重要?要理解这一点,需要一些代数知识,但都是高中阶段的内容:当你对 (x + y)/√2 平方时,你会得到 (x2 + 2xy + y2)/2。当你平方 (x − y)/√2 时,你会得到 (x2 − 2xy + y2)/2。从前者中减去后者得到 2xy。

现在停下来思考这个简单数学的重要性。这意味着:如果你将一个数字编码为具有一定强度的光束,将另一个数字编码为另一种强度的光束,然后将它们通过这样的分束器发送,用光学探测器来测量两个输出,并在将它们相加之前抵消所产生的电信号之一,你就会得到一个与两个数字的乘积成正比的信号。

图注:Lightmatter 的神经网络加速器中集成的 Mach-Zehnder 干涉仪模拟显示了三种不同的状态,其中在干涉仪的两个分支中传播的光经历了不同的相对相移。

我的描述听起来像是这些光束中的每一个光束都必须保持稳定。但事实上,你可以在两个输入光束中短暂地震动光并测量输出脉冲。更好的做法是,你可以将输出信号馈送到电容器中,只要震动持续,电容器就会积累电荷。然后,你可以在相同的时间段内再次脉冲输入,编码两个要相乘的新数字。它们的产品为电容器增加了一些电荷。你可以根据需要多次重复此过程,每一次都进行一次新的乘法累加运算。

以这种方式使用脉冲光可以让你飞速执行许多此类运算。其中,最耗能的部分是读取该电容器上的电压,这时需要一个模数转换器。但是你不必在每个脉冲后都这样做。你可以等到 N 个脉冲后结束后再统一读取。这意味着:该设备可以使用相同的能量来执行 N 次乘法累加运算,不管 N 是大是小。在这里,N 对应神经网络中每层的神经元数量,很容易达到数千个,所以用光子执行神经网络计算的能耗会很少。

有时候,你也可以在输入端节省能源,因为相同的值经常被用作多个神经元的输入。它不用多次将数字转换为光(每转换一次就会消耗一次能量),而是可以一次性转换所有,产生的光束可以被分成多个电流波段。通过这种方式,输入转换的能源成本可以在多次运算中分摊。

将一束光束分成多个波段需要透镜,但透镜很难安装在芯片上。因此,我们正在开发的以光学方式执行神经网络计算的设备很可能会是一种结合高集成光子芯片与单个光学元件的混合体。

 

4

其他实践案例

我在这里概述了我和我的同事一直在追求的策略,但从光学角度解决这个问题的方法不止一种。比如,另一个很有前景的方案是基于 Mach-Zehnder 干涉仪,它结合了两个分束器和两个全反射镜,也可以用光学方式运算矩阵乘法。两家有 MIT 学术背景的初创公司 Lightmatter 和 Lightelligence(沈亦晨创办) 正在开发基于 Mach-Zehnder 干涉仪的光学神经网络加速器。Lightmatter 已经制造出一个光学芯片原型,并有望在今年年底开始销售使用该芯片的光加速器板。

另一家使用光学进行计算的初创公司是 Optalysis。早在 1960 年代,光学计算的首批用途之一就是处理合成孔径雷达数据。但这有一个重大挑战,就是如何将傅立叶变换(一种数学运算)应用于要测量的数据上。当时的数字计算机一直在努力解决这些问题。即使是现在,将傅立叶变换应用于大规模数据也需要密集的计算。但是,傅立叶变换可以以光学的方式执行,只需要一个透镜(lens)——这也是多年来工程师处理合成孔径数据的方式。Optalysis 希望根据当前的需求改进这种方法,并广泛应用。

还有一家叫做 Luminous 的公司,源于普林斯顿大学,他们正致力于创建基于激光神经元的脉冲神经网络(spiking neural networks)。脉冲神经网络更像是模仿生物神经网络的运作方式,比如我们的大脑,能够使用低能量进行计算。Luminous 的硬件仍处于早期开发阶段,但结合脉冲和光学两种节能方法的潜力还是非常令人期待的!

 

5

光学的机遇与挑战

当然,目前仍有许多技术挑战需要克服。

一是要提高模拟光学计算的精度和动态范围,这方面还远不及数字电子设备所能达到的效果。这是因为这些光学处理器受到各种噪声源的影响,而且用于输入和输出数据的数模转换器和模数转换器精度有限。事实上,很难想象一个光学神经网络的运行精度超过 8 到 10 位。虽然存在 8 位电子深度学习硬件(比如 Google 的 TPU),但这个行业还需要更高的精度,尤其是用于神经网络训练时。

将光学元件集成到一块芯片上也很难。由于这些元件的尺寸为数十微米,它们无法像晶体管一样进行紧密封装,所以目标芯片的面积也会加大。2017年,来自 MIT 的团队(沈亦晨为一作)就针对这个问题发表了一篇工作(“Deep learning with coherent nanophotonic circuits”),谈到一种尺寸为 1.5 毫米的芯片。即使是最大的芯片也不会超过几平方厘米,这限制了可以用这种方式并行处理的矩阵的大小。

论文地址:https://www.nature.com/articles/nphoton.2017.93.epdf

在计算机的架构方面,光学研究人员还有许多其他问题要解决。但可以肯定的是,至少在理论上,光学有希望将深度学习的发展加速几个数量级。

基于当前可用于各种组件(光调制器、检测器、放大器、模数转换器)的技术,我们有理由相信,神经网络计算的能源效率可以比当今的电子处理器提高 1,000 倍。如果用新兴的光学技术作出更激进的假设,神经网络计算的能源效率甚至可能提高一百万倍。而且,由于电子处理器的功率有限,这些能源效率的进步很可能会转化为相应的速度改进。

模拟光学计算中的许多概念已有数十年历史。有些概念的诞生甚至早于硅计算机。光学矩阵乘法、甚至光学神经网络的首次出现甚至可以追溯到1970年代。但当时这种方法并没有流行起来。但如今时代不同,光学计算的命运可能会有所改变,原因主要有三点:

  • 首先,如今深度学习有真正的用途,而不仅仅是学术上的好奇;

  • 其次,我们不能仅仅依靠摩尔定律来改进电子产品;

  • 最后,我们有了前几代人没有的新技术:集成光子学。

这些因素表明,光神经网络将真正到来,而且,神经网络计算的未来可能是光子的。

原文链接:

https://spectrum.ieee.org/computing/hardware/the-future-of-deep-learning-is-photonic?utm_source=dlvr.it&utm_medium=twitter

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity3D-InstantOC遮挡剔除

InstantOC(插件) 渲染管线 图形数据在GPU上经过运算处理,最后输出到屏幕的过程。对于显示出来的图形,CPU与GPU的分工 CPU判断需要显示的图形图像调用图形API;绘制调用(Draw Call):每…

WCF系列(一)BasicHttpBinding 和 WsHttpBinding 的不同点

aaaaaaaaaaaaaaaaaa WCF系列(一)【翻译】BasicHttpBinding 和 WsHttpBinding 的不同点 2010-02-21 12:23 by Virus-BeautyCode, 20206 阅读, 7 评论, 收藏, 编辑 原文地址:Difference between BasicHttpBinding and WsHttpBinding 1、简介 WC…

Unity3D-光照系统

光照系统 1. Global Illumination(全局光照) GI,能够计算直接光,间接光,环境光以及反射光的光照系统。通过GI算法,渲染出光照效果更为真实的场景。 2. 直接光 从光源直接放出的光,通过Light组件实现。 …

Tomaso A.Poggio教授丨人工智能的下一个突破点在何处?

来源:图灵人工智能AI的成功故事在过去的25年中,尤其是在刚刚过去的十年中,AI,特别是机器学习,已经拥有了十足可观的进展。两个主要的成功故事第一个是AlphaGo。在虚拟的游戏世界中,AI绝对已经战胜了人类。A…

Unity3D-声音系统

声音 1.Unity3D支持的音频文件 mp3、ogg、wav、aif、mod、it、s3m、xm。 2.声音分为2D,3D两种 3D声音:有空间感,近大远小;2D声音:适合做背景音乐。 3.在场景中产生声音,主要有两个总要的组件: Audio …

当可解释人工智能遇上知识图谱

来源:知乎—机器学习小谈地址:https://zhuanlan.zhihu.com/p/386458680本文按照以下章节进行组织:1. 背景意义2. 基于路径的方法3. 基于嵌入的方法4. 总结与展望01背景意义1.1 什么是可解释性?首先,什么是可解释性。由…

Unity3D-C#脚本介绍

Unity3D脚本介绍 脚本就是附加在游戏物体上用于定义游戏对象行为的指令代码。Unity支持C#高级编程语言。 1.语法结构 using 命名空间; public class 类名:Monobehaviour {void 方法名(){Debug.Log("调试信息.");print("调用…

JConsole连接远程linux服务器配置

1.在远程机的tomcat的catalina.sh中加入配置 (catalina.sh路径在tomcat/bin下面 如/usr/local/tomcat/bin) 1 if [ "$1" "start" ];then 2 JAVA_OPTS"$JAVA_OPTS -Djava.rmi.server.hostname192.168.10.98 -Dcom.sun.management.jmxremote"…

缺缺缺!IoT行业的“芯”选择是什么?

来源:北京物联网智能技术应用协会“最初,没有人在意这场灾难,直到这场灾难和每个人息息相关。”这是电影《流浪地球》的开头,预示着一场即将来临的危机。如今,这句话正在现实中应验,不过,这次遭…

Unity3D-相关函数功能

函数功能 1.每隔固定时间执行一次,时间间隔固定(0.02s),时间间隔可以修改。 适用性:适合对物体作移动,旋转等物理操作。 函数执行不受渲染影响。 private void FixedUpdate() {Debug.Log(Time.time); }设置更新频率&…

JMeter4.0以上 分布式测试报错 server failed start Listen failed on port

使用JMeter4.0做分布式测试的是否,我的电脑作为肉鸡(执行机),双击jmeter-server.bat后显示失败 Found ApacheJMeter_core.jarUsing local port: 1888Server failed to start: java.rmi.server.ExportException: Listen failed on …

Unity-基本函数用法

1.常用组件 组件作用Transform存储个处理游戏对象的位置、旋转和缩放Mesh Filter显示网格Rigidbody刚体,使物体能在物理控制下运动Collider碰撞器,和刚体一起来是游戏对象发生碰撞Renderer渲染器,使物体在屏幕上显示出来Audio Source音频源&…

AI芯片的未来之战:“霸主”英伟达真就无人能挡了吗?

来源: AI前线作者:NICOLE KOBIE译者:王强英伟达,AI 芯片市场的统治者业内有一个传说,讲的是英伟达怎样从游戏和图形硬件转向了 AI 芯片市场的统治者 — 这个故事中有猫的身影。早在 2010 年,现任英伟达首席科学家 Bill Dally 有一天正与斯坦福…

计算机网络(一)-概述(补充)

一.概述 1.新型网络 1.1 基本特点: 网络用语计算机之间的数据传送;网络能够连接不同类型的计算机;所有的网络结点都重要,大大提高了网络的生存性;计算机在进行通信时,必须有冗余的路由;网络结…

费米悖论的三十种解释 | 观点

© David B. Mattingly来源:公众号利维坦(ID:liweitan2014)文:Ella Alderson译:Rachel校对:Yord原文:medium.com/predict/30-solutions-to-the-fermi-paradox-aaabfce56280我常常在思索,我们大多数人选择相信其他星球上存在生…

计算机网络(一)-概述

一.计算机网络 (一)计算机网络概述 1. 概述 1.1 计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 1.2 互联互通,自治的计算机集…

json数组格式问题

---恢复内容开始--- 使用jsonserver来模拟后台数据接口时犯了一个很低级的错误 找了很久没有发现有什么不对劲的地方,后来仔细发现原来是一个很细微的语法问题:}] 中间不能有逗号!! ---恢复内容结束---转载于:https://www.cnblog…

图灵奖得主Judea Pearl谈机器学习:不能只靠数据

来源:选自Journal of Causal Inference作者:Judea Pearl编译:机器之心编辑:Panda在当前的人工智能研究社区,以数据为中心的方法占据了绝对的主导地位,并且这类方法也确实成就非凡,为语音识别、计…

计算机网络(二)-性能指标

一、计算机网络性能指标 1.时延 1.1 指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟 延。单位是s。 数据到达路由器是,需要等待,产生排队时延,在路由器里面需要处理数据,包括检错和查找输…

axios请求本地的json文件在打包部署到子目录域名下,路径找不到

前言: 因为要同时部署两个项目,有一个是部署到域名下面的子目录下,如:https://xxx.com/siot-admin vue 项目中使用axios请求了本地项目的static文件夹下的json文件,使用npm run build 打包后,json文件请求不…