目前,具有人类直觉的计算机被应用在很多情况下,例如计算机日常识别图像中的物体、转录语音、翻译外语、诊断医疗状况、玩复杂的游戏等和驾驶汽车等等。实现这些惊人发展的技术称为深度学习,该术语指的是称为人工神经网络的数学模型。深度学习是机器学习的一个子领域,是基于将复杂模型拟合到数据的计算机科学的一个分支。虽然机器学习已经存在了很长时间,但深度学习是最近几年才出现的。因为越来越多的计算能力被广泛应用于各个领域——大量的数据可以很容易地收集并用于训练神经网络。计算能力在千禧年之交开始爆炸式增长,当时图形处理单元(GPU)开始用于非图形计算,并且这种趋势在过去十年中越来越流行。但深度学习的计算需求增长得更快,这种动态促使工程师开发专门用于深度学习的电子硬件加速器,谷歌的TPU就是一个很好的例子。在这篇文章中,作者描述了解决这个问题的不同方法——使用光学处理器用光子而不是电子来执行神经网络计算。人工神经元是使用在某种数字电子计算机上运行的特殊软件构建的。该软件为给定的神经元提供多个输入和一个输出。每个神经元的状态取决于其输入的加权和,对其应用非线性函数(称为激活函数)。最后,这个神经元的输出成为其他各种神经元的输入。此计算机渲染图描绘了光子芯片上的模式,作者和同事设计该芯片用于使用光执行神经网络计算。降低神经网络的能量需求可能需要使用光计算加持。为了保证计算效率,我们将神经元分组,并在相邻组之间传递数据。科学计算是通过线性计算进行的,但是随着网络规模的增长,神经元和组越来越多,线性计算也越来越复杂。现代计算机硬件已经针对矩阵运算进行了很好的优化,线性计算已经是高性能计算的基础。深度学习需要越来越多的乘法累加运算。以LeNet为例,这是一种专为图像分类而设计的开创性深度神经网络。1998年,它被证明在识别手写字母和数字方面优于其他机器技术。但到了2012年,神经网络AlexNet的乘法累加运算次数是LeNet的1600倍,可以识别图像中数千种不同类型的物体。从LeNet的最初成功转向AlexNet需要将计算性能提高近11倍。在这14年的时间里,摩尔定律提供了大部分的成长条件。现在的挑战是让这个趋势继续下去,因为摩尔定律已经到了瓶颈,通常的解决办法是投入更多的计算资源以及时间、金钱和精力来解决这个问题。今天训练大型神经网络通常会对重要的环境因素做出反应。例如,2019年的一个案例发现,为自然语言处理训练深度神经网络产生的二氧化碳排放量是汽车在其使用寿命期间通常相关排放量的五倍。不可否认的是,数字电子计算机的改进让深度学习得以蓬勃发展。但这并不意味着进行神经网络计算的唯一方法就是使用此类机器。几十年前,当数字计算机还比较原始时,一些工程师使用模拟计算机来解决困难的计算。随着数字电子技术的改进,那些模拟计算机变得过时了。现在可能是再次采用该策略的时候了,尤其是当模拟计算可以通过光学方式完成时。光纤可以支持比有线更高的数据速率。这就是为什么从20世纪70年代后期开始,所有长途通信线路都使用光纤。从那时起,光数据链路在越来越短的跨度上取代了铜线,一直到数据中心的端到端通信。光学数据通信速度更快,功耗更低。光学计算具有相同的优势。但是数据通信和数据计算之间存在很大差异。这就是模拟光学方法遇到障碍的地方。传统计算机基于晶体管,晶体管是高度非线性的电路元件——这意味着它们的输出不仅仅与输入成正比。非线性算法在晶体管上执行开关命令,执行逻辑命令通常由电子设备完成。但是光子服从麦克斯韦方程,这意味着光学设备的输出通常与其输入成正比。为了展示如何做到这一点,我将在这里描述一种光子设备,当它与一些简单的模拟电子设备结合使用时,可以将两个矩阵相乘。该乘法将一个矩阵的行与另一个矩阵的列组合在一起。光学计算速度更快,功耗更低。该设备中的基本计算单元是一种称为分束器的光学元件,可以将其视为45度角的半镀银镜。将一束光从侧面射入,分束器将使一半光直接通过它,而另一半则从与入射光束成90度反射的倾斜镜反射。现在,将第二束光垂直于第一束光射入分束器,使其射到倾斜镜的另一侧。第二束的一半将类似地以90度角传输和反射。两个输出光束将与第一个光束的两个输出组合。所以这个分束器有两个输入和两个输出。为了使用该设备执行矩阵乘法,会产生两个光束,其电场强度与要相乘的两个数成正比。我们称这些场强为x和y。将两束光照射到分束器中,分束器将合并两束光。这种特殊的分束器产生电场值为(x+y)/√2和(x?y)/√2的两个输出。除了分束器之外,这个模拟倍增器还需要两个简单的电子元件——光电探测器——来测量两个输出光束。不是测量这些光束的电场强度,而是测量光束的功率,它与其电场强度的平方成正比。这意味着,如果你将一个数字编码成具有一定强度的光束,将另一个数字编码成另一种强度的光束,将它们发送通过这样的分束器,用光电探测器测量两个输出,并结合它们抵消部分电信号在求和之前产生,你会得到一个与两个数字的乘积成正比的信号。将输出信号馈入电容器,然后在脉冲持续期间积累电荷。然后再次脉冲输入相同的持续时间,这次对要相乘的两个新数字进行编码。这个过程需要重复多次,每次进行一次乘加运算。其中最耗能的部分是读取该电容器两端的电压,这需要一个模数转换器。但是你不必在每个脉冲之后都这样做-你可以等到系列结束,比如N个脉冲。这意味着该设备可以使用相同的能量执行N次乘法累加运算,以读取N是小还是大的答案。这里,N对应于神经网络中每一层的神经元数量。因为同一个值经常被用作多个神经元的输入。与其将这个数字多次转换成光——每次都消耗能量——它可以只转换一次,产生的光束可以分成许多通道。通过这种方式,输入转换的能源成本可以在许多操作中分摊。将一束光分成多个通道并不比光学透镜复杂,但将透镜放在芯片上却很棘手。因此,正在开发的以光学方式执行神经网络计算的设备很可能最终成为一种混合体,将高度集成的光子芯片与独立的光学元件结合在一起。光子学有可能将深度学习加速几个数量级。光学计算技术仍有许多挑战需要克服。一是提高模拟光学计算的精度和动态范围,以达到电子设备所需的效果。这些光学处理器受到各种噪声源的影响,用于输入和输出数据的数模和模数转换器精度有限。这需要更高的精度,特别是对于神经网络训练。将光学元件集成到芯片上也存在困难。由于这些元件的尺寸只有几十微米,它们无法像晶体管那样紧密封装,而且所需的芯片面积会迅速增加。麻省理工学院研究人员在2017年对该方法的演示涉及一个边长为1.5毫米的芯片,即使是最大的芯片也不超过几平方厘米,这限制了可以通过这种方式并行处理的矩阵数量。尺寸。理论上,光子学有可能将深度学习加速几个数量级。基于目前可用于各种组件(光调制器、检测器、放大器、模数转换器)的技术,可以合理地假设神经网络计算的能效可能是当今电子处理器的1,000倍。模拟光学计算中的许多概念已有数十年历史。有些甚至早于硅计算机。光学矩阵乘法,甚至光学神经网络的方案,在1970年代首次得到展示。但这种方法并没有流行起来。这次会有所不同吗?可能出于三个原因。首先,深度学习不仅仅是学术上的理论知识,现在已经实际应用到生活中了。其次,我们不能仅仅依靠摩尔定律继续改进电子产品。最后,我们有了一项新技术:集成光子学。这些因素表明,光学神经网络将成为深度学习的计算关键技术。
