基于衍射光学的神经网络计算单元

文档序号:28864753发布日期:2022-02-12 03:04阅读:153来源:国知局
基于衍射光学的神经网络计算单元

1.本发明涉及光学计算技术领域,特别涉及基于衍射光学的神经网络计算单元。


背景技术:

2.光学计算通常利用对可见光或近红外光作为信息载体来执行计算过程而非传统的以电荷为载体的电子类计算,通常可以实现更高的并行度和速率。这是因为光线传播过程是互不干扰的,计算过程耗时仅为光线在介质中传递的时间,可在单位空间内实现更高的计算密度和计算并行度。
3.人工神经网络(artificial neural network,缩写ann),简称神经网络(neural network,缩写nn),是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。其在目标检测,识别,分类,自然语言处理等具有广泛的应用。但是神经网络巨大的计算量是其工程应用的一大挑战。
4.基于衍射光学器件的光神经网络目前发展迅速,其优势在于以极低的功耗快速的完成大量重复计算,利用光为载体来计算神经网络可以使计算效率得到极大的提升。然而,传统的基于衍射器件的光学计算模块在计算复杂网络或同时计算多个不同网络时需要用到多个空间光调制器,这必然会导致成本的上升和光路设计与装调难度的增加。目前的深度神经网络每层的节点数通常在1k
×
1k之内,这对于采用4k
×
4k及以上高分辨率的空间光调制器来构建网络来说无法充分利用其像元数,而利用空间光调制器来构建光神经网络时,由于光路的限制和器件本身的成本,通常很难构建层数大于5层的多层网络,即目前采用空间光调制器来构建神经网络时的难点是网络广度太大而深度不够。
5.因此,如何利用尽可能少的空间光调制来构建多层深度神经网络,并使其器件的像元数得到充分的利用,是一个非常有意义的问题。


技术实现要素:

6.为避免常规的基于衍射模板的光学神经网络处理器在实现多层神经网络计算时需要使用大量的空间光调制器,本发明的目的是提出一种衍射光学神经网络,通过对空间光调制器的区域划分与独立刷新实现在仅使用少量空间光调制器的条件下完成多层神经网络的计算,可以同时实现神经网络的并行或串行处理。
7.为实现上述目的,本发明采用以下具体技术方案:
8.本发明提供的一种基于衍射光学的神经网络计算单元,包括:
9.分光部件、光调制器件、光衍射器件、光探测器件和数据处理控制板,数据处理控制板用于分别对光调制器件、光衍射器件和光探测器件进行区域划分并对区域分别进行独立控制;
10.输入光束垂直进入分光部件,经过分光部件的折射后进入光调制器件的任一区域,光调制器件对输入光束进行加载数据后反射回分光部件,再经分光部件透射至光衍射器件任一区域,光衍射器件对调制后的输入光束进行衍射后再次反射经过分光部件的再次
折射进入光探测器件的任一区域,光探测器件用于对衍射后的输入光束进行分区域采集并转换为电信号,数据处理控制板接收电信号后进行计算。
11.优选地,光调制器件还用于对输入光束进行分区域的独立调制;调制后的输入光束通过自由传播的方式进入光衍射器件的任一区域。
12.优选地,光衍射器件还用于对调制后的输入光束进行分区域的独立调制,衍射后的输入光束通过自由传播的方式进入光探测器件的任一区域。
13.优选地,数据处理控制板用于:
14.控制光调制器件、光衍射器件和光探测器件的区域划分,以及控制光调制器件,光衍射器件和光探测器件上的不同区域进行独立工作;
15.处理基于衍射光学的神经网络计算单元中各个自由传播过程中的输入数据和输出数据。
16.优选地,基于衍射光学的神经网络计算单元为串行和/或并行计算,包括:
17.同一神经网络中不同网络层的串行和/或并行计算;
18.优选地,基于衍射光学的神经网络计算单元的串行和/或并行计算还包括:
19.不同神经网络的串行和/或并行计算。
20.与传统的以电荷为载体的电子类计算方法相比,通过对空间光调制器的区域划分与独立刷新实现在仅使用少量空间光调制器的条件下完成多层神经网络的计算,可以同时实现神经网络的并行或串行处理。
附图说明
21.图1是根据本发明实施例提供的基于衍射光学的神经网络计算单元的结构示意图。
22.图2是根据本发明实施例提供的基于衍射光学的神经网络计算单元的光路示意图。
23.图3是根据本发明实施例提供的基于衍射光学的神经网络计算单元分区工作时的光路示意图。
24.图4是根据本发明实施例提供的基于衍射光学的神经网络计算单元串行计算多层复杂网络的工作原理图。
25.图5是根据本发明实施例提供的基于衍射光学的神经网络计算单元并行计算多层复杂网络的工作原理图。
26.图6是根据本发明实施例提供的基于衍射光学的神经网络计算单元并行计算多层复杂网络工作过程中一种分区与线程之间的关系示意图。
27.其中的附图标记包括:激光源输入面1,分光部件2,光调制器件3,光衍射器件4,光探测器件5和数据处理控制板6。
具体实施方式
28.在下文中,将参考附图描述本发明的实施例。在下面的描述中,相同的模块使用相同的附图标记表示。在相同的附图标记的情况下,它们的名称和功能也相同。因此,将不重复其详细描述。
29.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,而不构成对本发明的限制。
30.图1示出了根据本发明实施例提供的基于衍射光学的神经网络计算单元。
31.如图1所示,衍射光学神经网络结构包含激光源输入面1、分光部件2、光调制器件3、光衍射器件4、光探测器件5和数据处理控制板6。
32.在本发明实施例提供的系统中,分光部件2可以为偏振分束器(pbs)或其他可以实现分光和光束偏振态转换的器件,光调制器件3和光衍射器件4均可以为空间光调制器(slm),光探测器件5可以为cmos型光电探测器件(cmos)或ccd型光电探测器件(ccd)。
33.数据处理控制板6根据加载到神经网络计算单元的数据(程序)来控制区域划分,加载到神经网络计算单元的数据(程序)包括但不限于控制区域划分的信息,神经网络计算单元运行的模型权重数据,神经网络计算单元计算的输入数据。数据处理控制板6主要用于控制光调制器件3、光衍射器件4和光电探测器5以及处理本发明提供的计算单元中各个自由传播过程中的输入数据和输出数据。具体阐述如下:
34.(1)控制及数据处理板6对光调制器件3和光衍射器件4的控制包括:对光调制器件3和光衍射器件4进行区域的划分和不同区域独立的刷新和加载信息,根据本发明提供的计算单元的计算需求,将输入数据或网络权值加载到光调制器件3和光衍射器件4对应的划分区域;
35.(2)控制及数据处理板6对光电探测器5的控制包括:对光电探测器5光束的采集区域进行划分,不同划分区域之间进行独立控制;对光电探测器件5划分区域光束采集数据进行后处理和输出,后处理过程可加载当前光电探测器件5难以实现的神经网络激活函数或对本发明提供的计算单元网络输出数据的预处理等;
36.(3)控制及数据处理板6对本发明提供的计算单元中各个自由传播过程中的输入数据和输出数据的控制包括:对光衍射器件4上各个区域划分的控制,网络权值数据的加载,对光电探测器件5当前分区的输出数据回传给光调制器件3与之对应的下一级网络的分区,作为该分区的输入数据,从而形成不同层神经网络的等效级联;
37.分光部件2位于控制及数据处理板6的上方,分光部件2的周围分别为激光源输入面1,光探测器件5,光调制器件3和光衍射器件4,其中光调制器件3和光衍射器件4位于分光部件2相对的两个侧面。
38.图2示出了根据本发明实施例提供的基于衍射光学的神经网络计算单元的光路。
39.如图2所示,p偏振光源光束由激光源输入面1入射,经分光部件2反射到光调制器件3,入射的p偏振光源光场经由光调制器件3调制光场并加载输入数据后反射,经由光调制器件3调制后反射的光束为s偏振光束,s偏振光束透过分光部件2入射到光衍射器件4,入射的s偏振光束光场经由光衍射器件4调制光场并进行衍射后再次进行反射,经由光衍射器件4调制后反射的光束为p偏振光束,经分光部件2的折射后入射到光探测器件5上,由光探测器件5采集光场信息后,将光场信息转化为电信号传送到数据处理控制板6,通过数据处理控制板6计算后输出结果。
40.图3示出了根据本发明实施例提供的基于衍射光学的神经网络计算单元分区工作时的光路。
41.如图3所示,将光调制器件3、光衍射器件4和光探测器件5均划分为m
×
n个可独立控制的分区。每个分区执行多层串行神经网络中一层神经网络的计算任务,该工作模式为在单一计算单元上串行的计算神经网络的m
×
n层网络,神经网络不同层数据以流水线形式更新,实现更高的计算效率。
42.图4示出了根据本发明实施例提供的基于衍射光学的神经网络计算单元串行计算多层复杂网络的工作原理图。
43.如图4所示,基于衍射光学的神经网络计算单元的数据传递方式如下:
44.数据从光调制器件3的(1,1)分区经自由传播到光衍射器件4的(1,1)分区中,经过光衍射器件4的(1,1)分区的衍射,经自由传输投射到光探测器件5的(1,1)分区,光探测器件5将(1,1)分区中采集的数据经过控制及数据处理板传递给光调制器件3的(1,2)分区,完成第1层神经网络的配置;数据从光调制器件3的(1,2)分区经自由传播到光衍射器件4的(1,2)分区中,经过光衍射器件4的(1,2)分区的衍射,经自由传输投射到光探测器件5的(1,2)分区,光探测器件5将(1,2)分区中采集的数据经过控制及数据处理板传递给光调制器件3的(1,3)分区,完成第2层神经网络的配置;以此类推,最终数据从光调制器件3的(m,n)分区经自由传播到光衍射器件4的(m,n)分区中,经过光衍射器件4的(m,n)分区的衍射,经自由传输投射到光探测器件5的(m,n)分区,光探测器件5将(m,n)分区中采集的数据输出,完成第m
×
n层神经网络的配置,从而实现一个串行计算结构的m
×
n层神经网络的等效神经网络计算单元。
45.图5示出了根据本发明实施例提供的基于衍射光学的神经网络计算单元并行计算多层复杂网络的工作原理。
46.如图5所示,基于衍射光学的神经网络计算单元的数据传递方式如下:
47.数据从光调制器件3的(1,1)分区经自由传播到光衍射器件4的(1,1)分区中,经过光衍射器件4的(1,1)分区的衍射,经自由传输投射到光探测器件5的(1,1)分区,光探测器件5将(1,1)分区中采集的数据输出,从而完成第1个神经网络的配置;数据从光调制器件3的(1,2)分区经自由传播到光衍射器件4的(1,2)分区中,经过光衍射器件4的(1,1)分区的衍射,经自由传输投射到光探测器件5的(1,2)分区,光探测器件5将(1,2)分区中采集的数据输出,从而完成第2个神经网络的配置;数据从光调制器件3的(m,n)分区经自由传播到光衍射器件4的(m,n)分区中,经过光衍射器件4的(m,n)分区的衍射,经自由传输投射到光探测器件5的(m,n)分区,光探测器件5将(m,n)分区中采集的数据输出,完成第m
×
n个神经网络的配置,从而实现一个m
×
n路并行计算结构的等效单层神经网络计算单元。
48.图6示出了根据本发明实施例提供的基于衍射光学的神经网络计算单元并行计算多层复杂网络工作过程中一种分区与线程之间的关系。
49.如图6所示,计算单元分区工作模式的一种串/并行计算的计算单元分区区域划分的具体实施实例,将光调制器件3,光衍射器件4,光探测器件5划分为m
×
n个独立控制的分区,再将分区打包为不同的工作组,每个工作组分别串行计算不同的神经网络的计算任务,神经网络的不同层在工作组内已串行的方式计算,不同层间数据已流水线形式传输,图6所示的工作模式为在单一计算单元上同时执行的计算k个不同的神经网络计算任务,实现更高的计算效率与计算密度。
50.该神经网络的数据传递方式如下:
51.将同时执行的k个不同的神经网络计算任务记为k个同时执行的独立线程,对应k个线程有k个输入数据从光调制器件3的k个工作组分区的第一层网络分区经自由传播到光衍射器件4中与光调制器件3的k个工作组分区的第一层网络分区对应的第一层网络权值分区中,经过光衍射器件4的k个工作组分区的第一层网络权值对应分区的衍射,经自由传输投射到光探测器件5中与光衍射器件4的k个工作组分区的第一层网络权值分区对应的k个工作组的第一层网络输出分区,光探测器件5将k个工作组的第一层网络对应输出分区中采集的数据输出,从而同时完成k个神经网络的第一层网络的计算;
52.当k个工作组计算的不同网络的层数相同时,一个计算周期,计算单元可同时输入、计算并输出k组数据。
53.当k个工作组计算的不同网络的层数不相同时,记不同工作组计算的网络层数分别为nk,一个计算周期,计算单元仍然可同时输入、计算并输出k组数据。各工作组输出的数据为nk个计算周期前输入数据的计算结果。从而实现k个工作组并行计算k个不同的神经网络的计算单元,计算单元的串行计算为单个神经网络不同层的计算为串行,数据以流水线形式传递,串行的不同层在同一时刻分别以其前一层网络前一个时刻的输出作为输入进行计算。
54.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
55.以上本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所作出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1