公众号的第一篇笔记
基于硅光芯片的深度学习
介绍了MIT研究组在硅光芯片上实现机器学习的实验进展。一年多之后,7月份以来又有好几篇相关的进展报道。这一篇笔记主要深入介绍下其中两篇,分别是Optica 5, 864 (2018)Training of photonic neural networks through in situ backpropagation and gradient measurement 和APL Photonics 3, 106101 (2018)Design, fabrication, and metrology of 10*100 multi-planar integrated photonicrouting manifolds for neural networks。
第一篇进展是由斯坦福大学范汕洄研究组完成,他们提出了基于反向传播训练神经网络的新方案。光学神经网络的核心思想是:光场在由多个Mach-Zehnder干涉器(以下简称MZI)构成的光路中传播,可以对应矩阵乘法。在深度学习中,需要进行大量的矩阵乘法计算,耗时较多。而使用光学神经网络的方法,光经过光路的时间非常短,可以大大降低矩阵乘法所需的时间。
神经网络的示意图如下,可以将每一层神经元的数值看成一维向量,这些向量之间的转换即对应矩阵的乘法。
(图片来自https://en.wikipedia.org/wiki/Artificial_neural_network)
在深度学习中,通过寻找合适的矩阵元,使得训练样本的预测输出值与原始输出值一致,即找到最优的训练模型。对应到光学神经网络中,也就是通过改变相移器的相位,改变MZI的分光比,进而改变矩阵元,寻找最优的模型。但是MZI构成的光路只能进行线性变换,无法实现每个神经元的非线性激活函数。MIT研究组的做法是在光芯片外部实现激活函数操作,进而决定每一个相移器如何改变。该方法的弊端是外部电路中的计算模型需要与实际光路完全匹配。斯坦福研究组的创新点是通过将光束反向传播,得到代价函数(cost function)的梯度,进而优化每一个相移器的相位, 其基本原理如下图所示。
(图片来自文献1)
在深度学习中,反向传播法(back propagation method)是一种常用的方法,通过对每一个参数梯度的计算,判断出该参数优化的方向,从而较快地找到最优的训练模型。文献1的思路正是鉴于此想法,经过一系列的数学推导,他们提出了伴随变量的方法求解代价函数的梯度。
整个方案的步骤如下,
(图片来自文献1)
1) 从光芯片左侧输入初始光场X_(l-1), 测量每个相移器处的光强
2) 从光芯片右侧输入光场delta_l, delta_l与误差矢量(error vector)相关,测量每个相移器处的光强
3)计算得到光场X_TR*
4) 将初始光场X_(l-1)与X_TR的干涉光场从芯片左侧输入,测量每个相移器处的光强
5) 数据处理,得到代价函数的梯度。
在文献1中,研究人员进行了一系列相关的数值仿真验证。小豆芽的几点看法:首先,如何实现对每个相移器处的光强在线测量?随着训练模型的复杂,会存在大量的相移器,记录与存储这些相移器处的光强会消耗较多的资源。每个相移器处光强测量都会带来一定的损耗,整个芯片的损耗也相应增大。其次在步骤4中使用到两个光场的干涉光场,数学处理是两个光场直接相加,而实际操作时并非如此简单,涉及到对光场强度和相位的控制。该方案相比于MIT研究组的优势在于,避免了实际光路与理论值需要完全一致的要求。该方案的想法比较超前,但物理实现非常困难。
第二篇进展由美国NIST(National Institute of Standards and Technology)完成。他们实现了双层氮化硅集成光路,该光路含有10个输入端口,100个输出端口,对应含10个神经元的不同层之间的运算。
整个光路的示意图如下图所示,
(图片来自文献2)
上层SiN为红色波导,下层SiN为绿色波导。通过层间耦合器(inter plane coupler, 简称IPC)的作用,光场可以从上层SiN波导转移到下层SiN波导中。IPC其实就是改进的定向耦合器,如上图e所示。
NIST研究组首先对其中的基本单元进行了测试表征,包括波导损耗,上下层波导串扰,IPC结构,beam-tap结构等。由于整个芯片的输出端口非常多,对每个端口的强度进行测量,比较耗时并且不够准确。NIST研究组采用对光芯片显微成像的方法,借助于GaAs传感器阵列,得到整个芯片的成像图案,后续在通过对光斑的信号处理,得到每个端口的强度。下图是他们的一幅芯片成像图案,
(图片来自文献2)
该测量方案简单快速,是一个很好的idea。
在此基础上,研究人员通过改变输入条件(均匀分布光场与高斯分布光场),得到对应的光强分布,如下图所示,
(图片来自文献2)
该进展演示了双层SiN集成光路,光路比较复杂,但是整个光路中没有引入相移器,只是简单地进行光强的分配,输入条件固定后,输出光强是确定的。如果后续想以此平台进行光学神经网络的演示,还是存在很多问题的。SiN波导的热光系数比较小,基于热光效应的相移器调节能力较弱。另外,两个含10个神经元的层,对应10x100 (输入、输出端口的数目)的光芯片,结构相对复杂,并没有带来任何益处。
总体说来,这两篇进展,一个是理论方案,一个是新型的双层SiN光芯片实验进展。两者的目的相同,都希望对光学神经网络进行优化改良。两篇工作都比较扎实,第一篇工作理论新颖,分析推导详实,第二篇工作提出了新的实验测量方法,并且对每个基本单元的参数进行了详细的测试表征。但是两篇工作都存在一定的局限性,距离真正实用还存在很多问题有待解决。庆幸的是,会有更多的研究人员投入到光学神经网络的研究中,小豆芽会持续关注相关的进展。
文章中如果有任何错误和不严谨之处,还望大家不吝指出,欢迎大家留言讨论。
参考文献:
T. Huges, et.al., “Training of photonic neural networks through in situ backpropagation and gradient measurement”, Optica 5, 864 (2018)
J. Chiles, et.al., “Design, fabrication, and metrology of 10*100 multi-planar integrated photonic routing manifolds for neural networks”,APL Photonics 3, 106101 (2018)
领取专属 10元无门槛券
私享最新 技术干货