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

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

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

  1. NTT 高级科学家:光子是深度学习的未来!

    作者 | Ryan Hamerly 编译 | 陈彩娴 转自:AI科技评论 近日,来自日本 NTT 研究所的高级科学家 Ryan Hamerly 在 IEEE Spectrum 上发表了一篇文章(&qu ...

  2. 京东DNN Lab首席科学家:用深度学习搞定80%的客服工作

     京东DNN Lab首席科学家:用深度学习搞定80%的客服工作 发表于2014-12-30 18:05| 6968次阅读| 来源CSDN| 8 条评论| 作者周建丁 深度学习京东dnn自然语言处理 ...

  3. 错误率减半需要超过500倍算力!深度学习的未来,光靠烧钱能行吗?

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 编译 | 陈彩娴 深度学习的诞生,可以追溯到1958年. 那一年,时 ...

  4. Keras深度学习实战(2)——使用Keras构建神经网络

    Keras深度学习实战(2)--使用Keras构建神经网络 0 前言 1. Keras 简介与安装 2. Keras 构建神经网络初体验 3. 训练香草神经网络 3.1 香草神经网络与 MNIST 数 ...

  5. 深度学习入门(三十二)卷积神经网络——BN批量归一化

    深度学习入门(三十二)卷积神经网络--BN批量归一化 前言 批量归一化batch normalization 课件 批量归一化 批量归一化层 批量归一化在做什么? 总结 教材 1 训练深层网络 2 批 ...

  6. 深度学习入门(五十六)循环神经网络——循环神经网络RNN

    深度学习入门(五十六)循环神经网络--循环神经网络RNN 前言 循环神经网络--循环神经网络RNN 课件 潜变量自回归模型 循环神经网络 使用循环神经网络的语言模型 困惑度(perplexity) 梯 ...

  7. 对话无政府主义者:诺姆·乔姆斯基谈深度学习的未来

    全文共3392字,预计学习时长9分钟 图源:forbes 在过去的几周里,笔者一直在和最喜欢的无政府主义辛迪加主义者诺姆·乔姆斯基进行电子邮件交流.最初联系是为了确认,人工神经网络(ANNs)的最新发 ...

  8. 深度学习与计算机视觉系列(10)_细说卷积神经网络

    转载自: 深度学习与计算机视觉系列(10)_细说卷积神经网络 - 龙心尘 - 博客频道 - CSDN.NET http://blog.csdn.net/longxinchen_ml/article/d ...

  9. 吴恩达《神经网络与深度学习》精炼笔记(5)-- 深层神经网络

    上节课我们主要介绍了浅层神经网络.首先介绍神经网络的基本结构,包括输入层,隐藏层和输出层.然后以简单的2 layer NN为例,详细推导了其正向传播过程和反向传播过程,使用梯度下降的方法优化神经网络参 ...

最新文章

  1. python路径文件api
  2. [AlwaysOn Availability Groups]CLUSTER.LOG(AG)
  3. 基于分位数回归的动态CoVaR计算 案例与代码
  4. 3-AIV--使用ContentProvider获得所有图片路径
  5. win10系统更新补丁时进度条一直卡在0%不动的解决方案
  6. 微信小程序实现下拉刷新
  7. 实用软件工程(吕云翔版)——第一章
  8. 某代理网站免费IP地址抓取测试
  9. 基于Mono.Cecil的静态注入
  10. python之sklearn学习笔记
  11. 机器学习中的数据级联:被低估的数据,被高估的模型
  12. 如何极速下载网页上的文件? 怎么批量下载文献
  13. c++primer第十六章模板特例化
  14. 记录python下载的第三方安装包
  15. Matlab kaiser窗 C++实现
  16. adc0804模数转换实验报告_51proteus仿真:adc0804实现模数转换
  17. Wins下安装Mac系统(亲测可用)
  18. 我不是英雄:是他干掉了WannaCry的域名开关
  19. 【FPGA实验】VGA显示
  20. ros支持python_在ROS中使用Python3

热门文章

  1. 黑帽SEO:Google为什么会屏蔽你的网站
  2. 图灵科普系列丛书封面有奖征集(贴图送书)
  3. C++编程的175条“军规”
  4. 从一线撤回二三线城市的程序员们,最后都怎么样了?
  5. 如何写论文?看下这份《科研论文撰写策略》
  6. android sql 顺序执行问题,怎么才能执行第一个完毕,才能继续执行第二个
  7. YOLO-Fastest:目前最快的YOLO网络!移动端上可达148 FPS
  8. NeurIPS 2020 大变动,领域主席可拒稿20%,作者即评审,布局远程会议!
  9. 宁‘内卷‘,勿‘躺平‘
  10. 如何看待亚马逊 AI 李沐团队大批人员离职?