李柏霖,林 剑
(上海理工大学 光电信息与计算机工程学院,上海市 200093)
神经网络自问世以来,一直在刺激着各个领域最新成果的诞生[1-2],如图像识别[3]、物品分类[4]、通用语言的处理和语义分割[5-6]等。神经网络在光子学领域的各种应用也推动了该领域的全新发展,如显微成像和全息成像等技术的出现[7-9]。此外,神经网络还被广泛应用于光学问题的逆设计[10]中。上述应用的成效也激发了光学衍射神经网络和其他光学相关计算技术的兴起。这一切都得益于神经网络在并行化、可扩展性、功率效率和计算速度等方面的优势[11]。目前,出现了一种全光学深度学习框架,其神经网络由多层衍射层组合而成,这些衍射层协同工作,以光学方式执行任务。尽管该物理网络的推断和预测机制都是光学的,但其训练过程是通过计算机完成的。此网络被称为光学衍射深度神经网络(diffractive deep neural network,D2NN),已经有相关的仿真和实验验证了其推理能力[11]。
D2NN 在计算机的训练过程中,可以通过误差反向传播算法[12]、随机梯度下降算法[13]等深度学习的方法,设计出连续的衍射层。其中,衍射层可以分为透射层和反射层两种。这些衍射层都是由调制衍射的元件(称为神经元)组成。入射光则根据惠更斯-菲涅耳原理,通过球面波将一个衍射层连接到下一个衍射层,形成连续的衍射层,如图1(a)所示。利用空间和时间上的相干照明,这些不同层的神经元根据学习到的给定任务共同计算输出平面上的空间光分布[2]。衍射层有多种实现方法,包括3D 打印[2],构建可编程超表面阵列[14-15],也可以通过空间光调制器(spatial light modulator,SLM)来生成[12]。目前,利用D2NN 已经实现了对宽带太赫兹波段光谱的一系列可调谐的单通带、双通带光谱滤波和空间控制波长的解复用[2]。大量的实验已经证明,利用该框架设计并通过3D 打印或者其他光学器件制作的光学衍射神经网络可实现物体分类的全光推理和数据泛化[11]。多层衍射神经网络也被证明可以通过额外的衍射层,或者其他相关参数的改进,实现盲测精度、衍射效率和成像效果等的增强[12]。
图1 使用D2NN 设计的带通光谱滤波器Fig.1 Design of a bandpass spectral filter using D2NN
本文展示了一个自主设计的宽带光学衍射神经网络模型,用于对光谱进行处理。该网络包括两个衍射层和一个探测层,其中衍射层的每个神经元对光进行纯相位调制。网络的设计使用了基于角谱公式[16]的前向传播和基于梯度下降的反向传播算法[12]。该模型可以应用于不同的衍射层像素尺寸,从SLM 到激光打印均可实现。波长参数的加入使网络可以处理宽带信号,通过对损失函数的控制,可以实现对输出光谱的控制。本文以350~750 nm 波段范围的输入光为例,实现了单通带和双通带滤波的效果,中心波长的聚焦效率在50%以上,同时研究了衍射层神经元数量和探测面距离变化对光谱处理效果的影响。
本文设计的宽带光学衍射神经网络由3 部分组成,分别是入射光、2 层衍射层以及接收面,如图1(b)所示。入射光是波长范围为350~750 nm的平行宽带可见光,所有波长的强度相同。衍射层由 512×512 个神经元组成,根据目前市场上主流SLM 的像素尺寸,每个神经元的尺寸设置为8 µm×8 µm。探测器位于接收面的中心,是一个直径为50 µm 的圆。网络的设计使用基于编程语言Python 的机器学习库Tensorflow 进行,具体算法如下。
宽带光学衍射神经网络的计算模拟的是入射光在空气中的自由传播,以及经过衍射层时受到相位调制的光学过程。根据角谱理论,假设衍射层第l层和第l+1 层的距离为z,则复振幅的分布分别为Ul(x,y,0,λ) 和Ul+1(x,y,z,λ),它们所对应的角谱分布是Al(u,v,λ) 和Al+1(u,v,λ) 。在角谱理论 中Al(u,v,λ) 和Al+1(u,v,λ)分别是Ul(x,y,0,λ) 和Ul+1(x,y,z,λ) 的傅里叶变换[16]。其中,表示空间频率;而α,β 是次波衍射函数沿x轴、y轴各自的方位角;λ表示入射波长。
因此波长为λ的入射光从第l层传播到第l+1层时,光场的变化如下:
其中 exp(jkzcosγ) 的表达式如下[16]
式中:exp(jkzcosγ) 代表的是当光由第l层传播到第l+1 层时,引入的一个相位因子,其中z表示第l层和第l+1 层之间的传播距离;j 是复数形式的虚部;α,β,γ 是次波衍射函数沿x轴、y轴、z轴方向各自的方位角;k是波数,λ表示入射波长。
本文设计的宽带光学衍射网络输入的光谱波长是350~750 nm 可见光波长,整个波段范围内的波长被离散化为均匀分布的1 000 个采样点,用于训练。在训练过程中,最大迭代次数设置为100,学习率为0.01。每一次迭代,都会从这1 000 个离散波长中随机选取50 个波长输入神经网络,通过衍射层进行传播,并根据所需的任务在输出平面上计算损失函数。每次迭代中,前向传播过程结束后,计算损失函数,产生的误差被反向传播,用来更新衍射层中与光调制相关的物理参数,然后继续训练,直到达到最大迭代次数。在该宽带光学衍射神经网络的设计中,衍射层的相位信息是需要优化的物理参数[2]。衍射层对输入光谱中的每个波长都会有不同的相位和振幅的调制,对应于每个神经元的传输系数,这是一个可训练的参数,适用于衍射光网络的所有层。
光通过衍射网络的所有衍射层后,到达接收面,探测器位于接收面的中心,是一个直径为50 µm 的圆。网络训练的目标是对到达探测器的宽带光谱进行整型,因此损失函数中包括了对每个离散化波长强度的控制,其具体定义为
式中:αi是训练阶段设置的标签,即目标光谱;Ud(x,y,z,λi) 是在接收面光场的复振幅;B代表每个训练批次中随机选取的50 个离散波长;Det表示探测器所在的坐标范围。通过设计不同的目标光谱,可以实现针对特定目标的网络训练。
网络训练完成后,其对特定波段光谱处理的能量效率定义为
式中,T为需要计算效率的波段范围。
首先设计了4 个单通带滤波器,中心波长分别为450 nm,500 nm,550 nm 和600 nm。在网络训练时,损失函数中的目标光谱设置为平顶带通形状,中心波长为目标波长,宽度为20 nm。训练得到的衍射层相位分布和衍射网络输出结果如图2(a)~(d)所示。可以看到,2 个衍射层的相位分布与衍射聚焦透镜类似,网络输出的光谱峰值与目标光谱一致,半高宽为20 nm,达到了设计目标。每个单通带光谱滤波器的功率效率可以用式(6)进行计算,分别为63.2%,61.1%,60.3%和58.8%。而其他执行类似的单通带滤波任务的神经网络,其聚焦效率只有20%左右[2]。在实际器件中,衍射层的功率损耗会导致效率的降低。对于SLM,功率损耗主要是由于反射效率和像素占空比都小于1。对于介质材料加工的衍射层,材料对光的吸收是功率损耗的主要原因,另外还有材料加工精度的影响,相位调制阶数有限,并且实际参数可能会偏离计算值,这些因素都会导致网络实际效率的降低。
图2 单通带光谱滤波器Fig.2 Single passband spectral filter
为了理解单通带滤波器的工作原理,本文计算了不同波长的光经过探测器时的传播过程。图2(e)~(g)显示了入射光通过第2 层衍射层后一定距离范围内,光场强度在x-z平面上的分布(y=0)。单通带滤波器的中心波长为550 nm,第2 层衍射层到探测器的距离为20 cm。从图2(f)可以看到,波长为550 nm 的光聚焦在20 cm处,即探测器的位置,几乎全部能量都可以被探测器收集;而偏离中心波长的光则聚焦在探测器之前或之后的位置(图2(e)和2(g)),无法被探测器有效收集。因此,单通带滤波器实现了对单一波长的有效探测,并抑制其他波长。
在完成了上述所介绍的利用宽带光学衍射神经网络设计的单通带可调光谱滤波器后,本文还设计了一个更精确、复杂的光学任务,使用相同的设计框架制造1 个双通带光谱滤波器,实现对2 个波长的光的探测,同时抑制其他波长的光。双通带光谱滤波器的光学衍射神经网络结构与之前单通带光谱滤波器相同,结构如图1 所示,均由2 个衍射层和1 个探测器组成。设计了中心波长为400 nm/ 700 nm,450 nm/ 650 nm 和500 nm/ 600 nm 的3 组双通带光谱滤波器。在网络训练时,损失函数中的目标光谱设置为2 个平顶带通形状,中心波长分别为2 个目标波长,宽度都为20 nm。图3(a)~(c)是生成的3 组双通带光谱滤波器,并且用式(6)计算了每个双通带光谱滤波器对2 个中心波长的聚焦效率,分别为:55.6%/25.8%;54.5%/34.6%;49.1%/42.5%。而其他执行类似的双通带滤波任务的神经网络,其双峰的聚焦效率均只有10%左右[2]。
图3 双通带光谱滤波器Fig.3 Dual pass band spectral filter
此外,该神经网络还可以通过调节损失函数,也就是目标平顶曲线的宽度和相对高度,调节2 个峰的相对强度和半高宽,从而更精准地控制输出的不同波长光的光强。图3(d)与图3(a)都是中心波长为 400 nm/700 nm 的双通带光谱滤波器的输出结果。可以发现,相对于图3(a)所示的结果,改变损失函数后,图3(d)中波长为700 nm 的输出光相对强度明显增强,700 nm 与400 nm 处峰值的比由1∶1 变成2∶1。图3(d)中400 nm 和700 nm 的聚焦效率分别为43.5%和46.6%,与图3(a)中400 nm 和700 nm 的聚焦效率55.6%和25.8%相比,400 nm 处的聚焦效率下降,700 nm 处的聚焦效率得到提高。而图3(e)与图3(c)都是中心波长为500 nm/600 nm的双通带光谱滤波器的输出结果。通过损失函数调节半高宽后,相对图3(c),图3(e)中500 nm峰的半高宽由20 nm 增加到40 nm,而600 nm峰的半高宽由20 nm 减小到10 nm。
同样,本文也计算了不同波长的光经过探测器时的传播过程。图3(f)~(h)显示了入射光通过第2 层衍射层后一定距离范围内,光场强度在x-z平面上的分布(y=0)。双通带滤波器的中心波长为500 nm/ 600 nm,第2 层衍射层到探测器的距离为20 cm。从图3(f)与图3(h)可以看到,波长为500 nm 与600 nm 的光聚焦在20 cm处即探测器的位置,几乎全部能量都可以被探测器收集;而偏离中心波长的光,强度明显较弱,且传播过程中逐渐发散,无法被探测器有效收集,见图3(g)。因此,该双通带光谱滤波器实现了对双波长的有效探测,并抑制其他波长。
神经元的数量是神经网络的重要参数之一,目前可见光波段的光学衍射神经网络的衍射层一般使用SLM 或者激光打印的衍射板,SLM 的分辨率通常大于1 000×1 000,而激光打印的衍射层分辨率可能小于100×100[17]。本文计算了不同神经元数量对光谱处理效果的影响。图4 所示为每一层衍射层上神经元数量N对神经网络光谱处理效果的影响,每层衍射层上神经元数量分别为512×512,40×40,30×30,20×20。
图4 衍射层神经元数量对带通滤波器的影响Fig.4 The impact of the number of neurons in the diffraction layer on the bandpass filter
图4(a)~(d)显示了神经元数量改变导致的中心波长为550 nm 的单通带光谱滤波器性能的变化。可以看到,当神经元数量由512×512 下降到30×30 时,网络的输出光谱曲线略显不平滑,并且聚焦效率由60.3%降低到13.8%,但是整体效果仍然与设定目标一致,可以实现明显的滤波效果。当神经元数量下降到20×20 时,神经网络对于中心波长以外某些波长的抑制能力几乎丧失,出现了中心波长以外的波峰,可以认为该单通带光谱滤波器失效。图4(e)~(h)是神经元数量的改变导致的中心波长为500 nm/600 nm的双通带光谱滤波器性能的变化,变化趋势与单通带光谱滤波器基本相似。综上所述,神经元的数量会影响神经网络的稳定性,当该数量减少到20×20 左右时,神经网络失效。
为了探究该宽带光学衍射神经网络对于距离误差的鲁棒性,本文研究了第2 层衍射层到探测器的实际距离Zr与训练时设置的距离Zt存在误差ΔZ(ΔZ=Zr-Zt)时,神经网络输出结果的变化。图5(a)~(c)所示为ΔZ对中心波长为550 nm的单通带光谱滤波器滤波效果的影响,其中蓝色曲线是存在距离误差时网络的输出结果,红色虚线是该带通滤波器在没有误差时的中心波长。可以发现,当ΔZ为负数时,光谱会出现蓝移,反之则出现红移;只有当ΔZ=0 mm 即Zr与Zt两者一致时,生成的光谱图像才是准确的目标光谱。图5(e)~(g)所示为ΔZ对中心波长为500 nm/600 nm 的双通带光谱滤波器滤波效果的影响,可以看到其整体的变化趋势与单通带光谱滤波器相似。本文还计算了聚焦效率随ΔZ的变化情况。图5(d)显示了中心波长为550 nm 的单通带光谱滤波器中心波长处聚焦效率随Zr的变化。图5(h)是中心波长为500 nm/600 nm 的双通带光谱滤波器中心波长聚焦效率随ΔZ的变化。可以看出,ΔZ越接近0,聚焦效率越高,聚焦效率随ΔZ的增加先增加后减小,当聚焦效率下降到最大值的80%时,ΔZ=± 3 mm,这个误差范围远大于实验中的距离控制精度,因此本文设计的光学衍射神经网络在距离误差方面具有较强的鲁棒性。
图5 带通滤波器滤波效果随ΔZ 的变化Fig.5 The filtering effect of bandpass filter varies with ΔZ
此外,在衍射层的设置过程中,观察了其数量对于滤波效果的影响。利用单衍射层进行单通带光谱滤波时,中心波长的聚焦效率普遍较低,且对于长波长的滤波效果较差,当中心波长为750 nm 时,聚焦效率只有26.5%;进行双通带光谱滤波时,第2 个中心波长聚焦效果几乎为0,以350 nm/750 nm 的双通带滤波任务为例,750 nm 处的聚焦效率只有6.2%。同时,研究发现当衍射层为3 层时,聚焦效率相对2 层有一定的提高(均能保持在60%以上),但增幅不大,且计算时间较长。
本文提出了一种双层宽带光学衍射神经网络,用于对宽带光学信号进行处理。该网络包括2 个衍射层和1 个探测层,其中衍射层的每个神经元对光进行纯相位调制。通过对损失函数的调节,训练后的网络可以实现单通带和双通带滤波的效果,其中双通带中2 个波段的相对强度和峰半高宽也可以调节,聚焦效率可达50%以上。同时发现,当衍射层神经元数量低至30×30时,网络仍能实现滤波效果;探测面距离误差在±3 mm 范围内对输出效果没有显著影响,说明网络具有较强的鲁棒性。本文的研究结果证明,光学衍射神经网络可以有效处理宽带光谱,并为实现更复杂的光谱处理任务奠定了基础。