全光神经网络的激活函数构造方法、装置、设备及介质转让专利

申请号 : CN202210436678.9

文献号 : CN114548381B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴睿振王凛

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本发明公开了一种涉及函数构造技术领域的全光神经网络的激活函数构造方法、装置、设备及介质;本方案中,对于原始激活函数,需要通过泰勒展开公式确定与原始激活函数对应的标准非线性函数,并通过光学器件能实现的目标拟合函数进行替换,得到目标激活函数,该目标激活函数能够通过光学器件实现后,便可实现全光神经网络,从而提高光学神经网络的运算效率和运算精度。

权利要求 :

1.一种基于全光神经网络的图像识别方法,其特征在于,包括:确定原始激活函数;

通过泰勒展开公式确定与所述原始激活函数对应的标准非线性函数;

确定与所述标准非线性函数对应的目标拟合函数,所述目标拟合函数通过光学器件实现;

将所述目标拟合函数作为全光神经网络的目标激活函数;

其中所述确定与所述标准非线性函数对应的目标拟合函数,包括:确定所述原始激活函数的目标拟合范围;

若所述原始激活函数的待运算值在所述目标拟合范围内,则将所述标准非线性函数转换为通过光学器件实现的目标拟合函数;

若所述原始激活函数的待运算值不在所述目标拟合范围内,则激活函数构造方法还包括:确定所述原始激活函数的最小划分梯度;

根据所述最小划分梯度确定近零段的第一范围,近零段与梯度消失段之间的第二范围,梯度消失段的第三范围;

确定与每个范围对应的目标拟合函数。

2.根据权利要求1所述的基于全光神经网络的图像识别方法,其特征在于,所述原始激活函数包括:非线性函数或者非线性拟合函数。

3.根据权利要求1所述的基于全光神经网络的图像识别方法,其特征在于,所述原始激活函数的待运算值在所述目标拟合范围内,包括:所述原始激活函数的原始运算值在所述目标拟合范围内,或者对所述原始激活函数的原始运算值进行归一化处理后在所述目标拟合范围内。

4.根据权利要求3所述的基于全光神经网络的图像识别方法,其特征在于,所述确定与每个范围对应的目标拟合函数,包括:确定与所述第一范围对应的第一目标拟合函数;其中,所述第一目标拟合函数为将所述标准非线性函数转换为通过光学器件实现的函数;

根据所述原始激活函数、所述第二范围内的每个区间范围以及目标线性函数,确定与每个区间范围对应的第二目标拟合函数;

确定与所述第三范围对应的第三目标拟合函数;其中,所述第三目标拟合函数为常数函数。

5.根据权利要求4所述的基于全光神经网络的图像识别方法,其特征在于,所述根据所述原始激活函数、所述第二范围内的每个区间范围以及目标线性函数,确定与每个区间范围对应的第二目标拟合函数,包括:根据所述原始激活函数计算每个区间范围对应的函数值;

将每个区间范围及对应的函数值输入所述目标线性函数,获得与每个区间范围对应的第二目标拟合函数。

6.一种基于全光神经网络的图像识别装置,其特征在于,包括:第一确定模块,用于确定原始激活函数;

第二确定模块,用于通过泰勒展开公式确定与所述原始激活函数对应的标准非线性函数;

第三确定模块,用于确定与所述标准非线性函数对应的目标拟合函数,将所述目标拟合函数作为全光神经网络的目标激活函数,所述目标拟合函数通过光学器件实现;

作为模块,用于将所述目标拟合函数作为全光神经网络的目标激活函数;

其中所述确定与所述标准非线性函数对应的目标拟合函数,包括:确定所述原始激活函数的目标拟合范围;

若所述原始激活函数的待运算值在所述目标拟合范围内,则将所述标准非线性函数转换为通过光学器件实现的目标拟合函数;

若所述原始激活函数的待运算值不在所述目标拟合范围内,则激活函数构造方法还包括:确定所述原始激活函数的最小划分梯度;

根据所述最小划分梯度确定近零段的第一范围,近零段与梯度消失段之间的第二范围,梯度消失段的第三范围;

确定与每个范围对应的目标拟合函数。

7.一种电子设备,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的基于全光神经网络的图像识别方法的步骤。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的基于全光神经网络的图像识别方法的步骤。

说明书 :

全光神经网络的激活函数构造方法、装置、设备及介质

技术领域

[0001] 本发明涉及函数构造技术领域,更具体地说,涉及一种全光神经网络的激活函数构造方法、装置、设备及介质。

背景技术

[0002] 近年来,人们对光计算技术的需求迅速增加,其原因在于:一是随着摩尔定律的逐步失效,以及大数据时代对计算系统功耗和速度要求的不断提高,光计算技术高速和低功耗的特点越来越受到人们的重视;二是光计算技术的并行性运算特点,以及光学神经网络等算法和硬件架构的发展,为图像识别、语音识别、虚拟现实等人工智能技术对算力的需求提供了最有潜力的解决方案。光计算可以分为模拟光计算和数字光计算。模拟光计算最典型的一个例子就是傅立叶运算,在图像处理等领域需要运用傅立叶变换相关的计算,如卷积计算。用传统计算机来计算傅立叶变换是非常消耗计算量的,而光通过透镜的过程,本身就是一次傅立叶变换的过程,这个过程几乎完全不需要时间。数字光计算是利用光和光学器件组合形成经典的逻辑门,构建类似传统数字电子计算原理的计算系统,通过复杂的逻辑门组合操作实现计算。
[0003] 常见的利用光子进行ANN(Artificial Neural Network,人工神经网络)计算的方法是利用MZI(Mach–Zehnder interferometer,马赫增德尔干涉仪)进行实现的,所实现的网络叫做ONN(Optical Neural Network,光学神经网络)。基于现有所提出的二叉树、GridNet等网络拓扑结构可以很好的利用MZI实现卷积的乘加运算,但是MZI结构仅仅适合实现乘加运算,对于非线性等运算则无能为力。于是常见的解决方案会利用DAC(Digital Analog Convert,数模转换)和ADC(Analog Digital Converter,模数转换),在每次卷积运算结束需要进行非线性运算时,进行光电转换将其转换为电信号,在CPU(central processing unit,中央处理器)等电路结构中进行运算,完成后重新转换为光信号继续卷积运算。这样的实现方案因为涉及至少两次光电转换,导致速度损耗很大,且每次转换会存在一定的误差引入,转换次数越多造成的运算精度下降越大。因此实现全光神经网络是业界迫切的问题之一。
[0004] 然而,实现全光神经网络待解决的问题就是解决激活函数等非线性运算利用MZI等光学器件实现的问题,因此,目前如何利用MZI等光学器件实现激活函数,是本领域技术人员需要解决的问题。

发明内容

[0005] 本发明的目的在于提供一种全光神经网络的激活函数构造方法、装置、设备及介质,以利用光学器件实现激活函数。
[0006] 为实现上述目的,本发明提供一种全光神经网络的激活函数构造方法,包括:
[0007] 确定原始激活函数;
[0008] 通过泰勒展开公式确定与所述原始激活函数对应的标准非线性函数;
[0009] 确定与所述标准非线性函数对应的目标拟合函数,所述目标拟合函数通过光学器件实现;
[0010] 将所述目标拟合函数作为全光神经网络的目标激活函数。
[0011] 其中,所述原始激活函数包括:非线性函数或者非线性拟合函数。
[0012] 其中,所述确定与所述标准非线性函数对应的目标拟合函数,包括:
[0013] 确定所述原始激活函数的目标拟合范围;
[0014] 若所述原始激活函数的待运算值在所述目标拟合范围内,则将所述标准非线性函数转换为通过光学器件实现的目标拟合函数。
[0015] 其中,所述原始激活函数的待运算值在所述目标拟合范围内,包括:
[0016] 所述原始激活函数的原始运算值在所述目标拟合范围内,或者对所述原始激活函数的原始运算值进行归一化处理后在所述目标拟合范围内。
[0017] 其中,造方法还包括:
[0018] 确定所述原始激活函数的最小划分梯度;
[0019] 根据所述最小划分梯度确定近零段的第一范围,近零段与梯度消失段之间的第二范围,梯度消失段的第三范围;
[0020] 确定与每个范围对应的目标拟合函数。
[0021] 其中,所述确定与每个范围对应的目标拟合函数,包括:
[0022] 确定与所述第一范围对应的第一目标拟合函数;其中,所述第一目标拟合函数为将所述标准非线性函数转换为通过光学器件实现的函数;
[0023] 根据所述原始激活函数、所述第二范围内的每个区间范围以及目标线性函数,确定与每个区间范围对应的第二目标拟合函数;
[0024] 确定与所述第三范围对应的第三目标拟合函数;其中,所述第三目标拟合函数为常数函数。
[0025] 其中,所述根据所述原始激活函数、所述第二范围内的每个区间范围以及目标线性函数,确定与每个区间范围对应的第二目标拟合函数,包括:
[0026] 根据所述原始激活函数计算每个区间范围对应的函数值;
[0027] 将每个区间范围及对应的函数值输入所述目标线性函数,获得与每个区间范围对应的第二目标拟合函数。
[0028] 为实现上述目的,本发明进一步提供一种全光神经网络的激活函数构造装置,包括:
[0029] 第一确定模块,用于确定原始激活函数;
[0030] 第二确定模块,用于通过泰勒展开公式确定与所述原始激活函数对应的标准非线性函数;
[0031] 第三确定模块,用于确定与所述标准非线性函数对应的目标拟合函数,将所述目标拟合函数作为全光神经网络的目标激活函数,所述目标拟合函数通过光学器件实现。
[0032] 为实现上述目的,本发明进一步提供一种电子设备,包括:
[0033] 存储器,用于存储计算机程序;
[0034] 处理器,用于执行所述计算机程序时实现上述激活函数构造方法的步骤。
[0035] 为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述激活函数构造方法的步骤。
[0036] 通过以上方案可知,本发明实施例提供的一种全光神经网络的激活函数构造方法、装置、设备及介质;本方案中,对于原始激活函数,需要通过泰勒展开公式确定与原始激活函数对应的标准非线性函数,并通过光学器件能实现的目标拟合函数进行替换,得到目标激活函数,该目标激活函数能够通过光学器件实现后,便可实现全光神经网络,从而提高光学神经网络的运算效率和运算精度。

附图说明

[0037] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038] 图1为激活函数的数学过程示意图;
[0039] 图2a为Relu激活函数的函数曲线示意图;
[0040] 图2b为Relu激活函数的导数曲线示意图;
[0041] 图3a为Sigmoid函数的函数曲线示意图;
[0042] 图3b为Sigmoid函数的导数曲线示意图;
[0043] 图4a为Tanh函数的函数曲线示意图;
[0044] 图4b为Tanh函数的导数曲线示意图;
[0045] 图5为MZI结构示意图;
[0046] 图6本发明实施例公开的一种全光神经网络的激活函数构造方法流程示意图;
[0047] 图7为本发明实施例公开的一种三次方拟合结构示意图;
[0048] 图8为本发明实施例公开的 拟合方案与Tanh函数的梯度比较结果示意图;
[0049] 图9为本发明实施例公开的拟合曲线与Tanh函数比较示意图;
[0050] 图10a为本发明实施例公开的训练集的准确度示意图;
[0051] 图10b为本发明实施例公开的测试集的准确度示意图;
[0052] 图11a为本发明实施例公开的一拟合方案比较曲线示意图;
[0053] 图11b为本发明实施例公开的另一拟合方案比较曲线示意图;
[0054] 图12为本发明实施例公开的一种全光神经网络的激活函数构造装置结构示意图;
[0055] 图13为本发明实施例公开的一种电子设备结构示意图。

具体实施方式

[0056] 激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式,类似于人类大脑中基于神经元的模型。激活函数最终决定了要发射给下一个神经元的内容。在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。因此,激活函数是确定神经网络输出的数学方程式。参见图1,为激活函数的数学过程示意图。如图1所示,数据的输入为X,每个X在卷积核中所做的运算为其权重乘以数据,所得连加后,再加上偏移值bias,得到最终的输出,其运算描述为  。该输出作为激活函数的输入,激活函数在图1中即为 ,通
过激活函数的运算,最终输出结果为y。
[0057] 在人工智能计算中,数据的分布绝大多数是非线性的,而一般神经网络的计算是线性的,引入激活函数,是在神经网络中引入非线性,强化网络的学习能力。所以激活函数的最大特点就是非线性。虽然ANN中最大量的运算来源于MAC(Multiplier Accumulation unit,用于完成乘加运算)阵列的乘加运算,但是对最终运算结果准确影响最大的是激活函数的应用。不同的激活函数应用于不同AI(Artificial Intelligence,人工智能)模型,适用于不同的运算任务。下面对常见的几种激活函数进行介绍:
[0058] 1、Relu(Rectified Linear Unit,修正线性单元函数),该激活函数形式比较简单。其公式表示为:Relu=max(0, x)。参见图2a,为Relu激活函数的函数曲线示意图,参见图2b,为Relu激活函数的导数曲线示意图。
[0059] 通过图2a及图2b可知,Relu的有效导数是常数1,解决了深层网络中出现的梯度消失问题,也就使得深层网络可训练。同时Relu又是非线性函数,所谓非线性,就是一阶导数不为常数;对Relu求导,在输入值分别为正和为负的情况下,导数是不同的,即Relu的导数不是常数,所以Relu是非线性的(只是不同于Sigmoid和Tanh,Relu的非线性不是光滑的)。
[0060] Relu在x>0下,导数为常数1的特点:在“链式反应”中不会出现梯度消失,但梯度下降的强度就完全取决于权值的乘积,这样就可能会出现梯度爆炸问题。Relu在x<0下,输出置为0的特点:描述该特征前,需要明确深度学习的目标:深度学习是根据大批量样本数据,从错综复杂的数据关系中,找到关键信息(关键特征)。换句话说,就是把密集矩阵转化为稀疏矩阵,保留数据的关键信息,去除噪音,这样的模型就有了鲁棒性。Relu将x<0的输出置为0,就是一个去噪音,稀疏矩阵的过程。而且在训练过程中,这种稀疏性是动态调节的,网络会自动调整稀疏比例,保证矩阵有最优的有效特征。但是Relu 强制将x<0部分的输出置为0(置为0就是屏蔽该特征),可能会导致模型无法学习到有效特征,所以如果学习率设置的太大,就可能会导致网络的大部分神经元失效,所以使用Relu的网络,学习率不能设置太大。
[0061] 可以看出,Relu作为激活函数的特点:1. Relu运算最简单,提高了运算速度;2. 解决了梯度消失问题,但要防范Relu的梯度爆炸 3.容易得到更好的模型,但也要防止训练中出现模型失效情况。因此Relu常在CNN分类运算中使用。
[0062] 2、Sigmoid函数,也称为Logistic函数,因为Sigmoid函数可以从逻辑回归(LR)中推理得到,也是LR模型指定的激活函数。Sigmoid函数的取值范围在(0, 1)之间,可以将网络的输出映射在这一范围,方便分析。
[0063] Sigmoid函数的公式表示为:  ,参见图3a,为Sigmoid函数的函数曲线示意图,Sigmoid函数的导数的公式表示为: ,参
见图3b,为Sigmoid函数的导数曲线示意图。
[0064] 如上述可知,相比Relu函数,Sigmoid函数具有平滑和易于求导的优点,并且解决了函数及其导数连续性的问题。但相应的,Sigmoid也具有以下缺点:1. 运算量大;2. 反向传播求误差梯度时,导数运算涉及除法;3.两端的导数无限趋近于0而可能在深层次的运算中发生梯度消失; 4.函数不基于0对称,容易在运算加深时改变数据的分布特征。
[0065] 3、Tanh函数:Tanh函数为双曲正切函数,其英文读作Hyperbolic Tangent。Tanh函数和Sigmoid函数相似,都属于饱和激活函数,区别在于输出值范围由 (0,1) 变为了 (‑1,1),可将Tanh 函数看做是Sigmoid函数向下平移和拉伸后的结果。Tanh函数的公式表示为: ,参见图4a,为Tanh函数的函数曲线示意图,Tanh函数的导数的公式表
示为: ,参见图4b,为Tanh函数的导数曲线示意图。
[0066] 相比Sigmoid函数,Tanh函数解决了0对称的问题,且其导数曲线更加陡峭,表示其具有更好的收敛速度。但是Tanh函数依然没有:1.运算量大;2.反向传播求误差梯度时,导数运算涉及除法;3. 两端的导数无限趋近于0而可能在深层次的运算中发生梯度消失。
[0067] 以上三种激活函数被使用的最为广泛,但各种激活函数依然具有自己明显的优缺点。因此针对不同的网络模型,不同的工作环境需求,需要设定不同的激活函数,以实现激活函数的最佳性价比。
[0068] 基于上述内容可知,不同激活函数适用于不同环境,其目的都是为了通过非线性的运算得到一个较好的准确度判断结果输出。因此本发明基于激活函数构建的原理,应用环境的需求,考虑ONN的工作特性,构建出一种利用MZI实现激活函数的通用结构,适用于不同任务和不同数据的工作情况,可以得到相比传统激活函数更好的表现,且能通过全光芯片方案下不同复杂度的需求实现。
[0069] 在介绍本发明方案之前,先简单介绍MZI和其实现ONN的方式:人工神经网络的前向传播过程强烈依赖于乘加运算,其推理过程中的绝大部分运算本质上是训练后的权重和特征值之间的线性运算。使用光学器件计算矩阵乘法与电学芯片在实现原理方面有很大的不同。在数字集成电路中,数据一般以晶体管的开关状态来编码为二进制串。利用二进制串表示的数字是离散的,例如整数或浮点值;在光子学中,数据是通过调制激光脉冲的振幅(或相位)来进行编码的,产生的是连续实数值,改变光场的强度或相位会改变所表示的实数。电路中可以使用导线来引导电子,光子学中可以利用硅基光波导结构传输激光。
[0070] 在数学模型上,利用可编程移相器,马赫曾德尔干涉仪等结构,可以在光域使用奇异值分解的方式实现任意维度的矩阵乘法运算。在线性代数中,奇异值分解是一种重要的矩阵分解方式,同时也是机器学习中常用的算法之一,在提取特征、简化数据、推荐系统中应用广泛。数学上任意维度的实数矩阵都可以通过奇异值分解的方法分解为三个矩阵的积。
[0071] 设M是一个,m*m的矩阵,U是一个m*m的矩阵,称为幺正矩阵,是一个m*m的对角矩阵,对角线上的值为非负实数,V是一个m*m的矩阵,也是一个幺正矩阵,用 V*来表示V的复数共轭矩阵,对矩阵M进行奇异值分解可以用公式(1)来表示。
[0072]                              (1)
[0073] 相应的,参见图5,为MZI结构示意图。如图5所示,L1和L2是MZI的光输入端,所输出的光是L1’和L2’,S1、S2、S3、S4为端口。MZI可以将双端口的光功率按一定比例耦合到另一个双端口,分光比为50:50; 和 是移相器,具有可编程功能,通常可以使用几种方式来实现可编程的移相器,比如在一段波导材料上镀上金属薄膜,通过施加外部电压控制金属薄膜加热器导致波导温度变化来改变折射率,实现相移;此外还可以利用等离子体弥散效应(改变电子和空穴的浓度)和电光效应改变波导折射率来引入相移。
[0074] 考虑到L1和L2的表达方式,设其A为振幅, 为频率,t为时间, 和 为其初始相位。可得:
[0075]                      (2)
[0076] 因为在光电转换中,可以识别的仅有光的实部,虚部表示的是传输过程中的能量损耗,因此上式可以进一步通过欧拉公式转换为:
[0077](3)
[0078] 式(3)Re表示实部。L1和L2在进入MZI后,可知光中所含能量会通过耦合器转移到输出的两个端口对应的光信号上,因此其振幅则为原本的 ,因此图5中的关系可以通过公式表示为:
[0079]               (4)
[0080] 基于公式(4)利用图5的MZI结构,通过二叉树、GridNet等网络结构可以实现不同大小的卷积矩阵,矩阵中的weight值通过二叉树、GridNet等配值方式通过迭代运算可以得到,然后将其配置入网络中MZI的调相器上,即可得到想要的卷积网络结构。但是以上的实现方式都是就有卷积运算的,卷积运算因其主要是乘加运算,因此和公式(4)中的运算有很好的契合,可以得到任意乘加卷积矩阵的实现方案。但是激活函数都是非线性的,无法通过上述的MZI以及网络拓扑结构直接实现。
[0081] 在对本方案进行论述之前,先对拓扑结构的改进内容进行说明:由于在ONN中,所有的数据通过光的运算分为实部和虚部,对于从电信号对应的信息,需要将其首先一分为二,然后转换为含有虚部的光信号含义,以待处理信息为图像中的pixel为例,假如离散信息集为:
[0082]                         (5)
[0083] 则首先对其进行任意的一分为二的划分,假设分为:
[0084]                          (6)
[0085] 其中, 代表ONN中光信号的实部, 代表ONN中光信号的虚部,基于公式(3)可知,为得到符合欧拉分解后的光信号表示,需要实部虚部符合三角函数运算关系,因此可以设:
[0086]                        (7)
[0087] 因此可以得到将pixel一分为二后,输入数据减小一半的ONN信号。对其进行相应的运算。但是卷积运算完成后,所有的数据通过激活函数时,对于信息的判断实部和虚部具有相同的含义,因此首先需要将基于上述的ONN拓扑结构运算结果进行反向运算。即是分别提取出实部和虚部的信息,将其分别通过激活函数,然后进行统一判定。所得到的结果平均化以得到其含义。
[0088] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0089] 参见图6,为本发明实施例提供的一种全光神经网络的激活函数构造方法流程示意图,该方法具体包括:
[0090] S101、确定原始激活函数;
[0091] 可以理解的是,好的激活函数需要具有连续性、梯度下降性等特点,而为了达成连续性和梯度下降性,则需要引入三角函数、自然数幂等运算,即如上述的Sigmoid激活函数和Tanh激活函数。相比之下,Relu激活函数虽然同样可以使用,但是其的优势主要在于运算简单,而无法提供很好的准确性。优秀的激活函数一般都需要三角函数或自然数幂参与运算,但是这两种运算在以MZI为基础原件的ONN下都无法实现。因此本发明提出了一种基于光学器件MZI实现类似三角函数或自然数幂的激活函数的方案,所实现的方案可以适用于不同的应用需求和复杂度需求。
[0092] 本实施例中的原始激活函数具体为非线性函数或者非线性拟合函数,非线性函数具体可以为Sigmoid激活函数、Tanh激活函数等,非线性拟合函数可以为Relu激活函数等,在此并不对激活函数的具体类型进行限定,只要其是非线性函数或者非线性拟合函数即可。
[0093] S102、通过泰勒展开公式确定与原始激活函数对应的标准非线性函数;
[0094] 具体来说,由于原始激活函数无法通过光学器件实现,因此在本申请中,使用泰勒展开公式将原始激活函数通过标准的对x的非线性运算表示,也即使用标准非线性函数表示原始激活函数。
[0095] S103、确定与标准非线性函数对应的目标拟合函数,其中,该目标拟合函数通过光学器件实现;
[0096] S104、将目标拟合函数作为全光神经网络的目标激活函数。
[0097] 需要说明的是,对于标准非线性函数中的 和 ,可通过标准的MZI实现,而和 可通过三次方拟合结构实现,而对于标准非线性函数中的其他次方,则可拆分成 、、 中至少两者乘积的形式,并使用对应的拟合函数替换,因此,在本申请中,无论哪种原始激活函数,只要能转换成标准非线性函数形式,即可转化为能通过光学器件实现的目标拟合函数,该目标拟合函数即为可应用在全光神经网络中的目标激活函数。
[0098] 综上课件,本方案对于确定原始激活函数,需要通过泰勒展开公式确定与原始激活函数对应的标准非线性函数,并通过光学器件能实现的目标拟合函数进行替换,得到目标激活函数,该目标激活函数能够通过光学器件实现后,便可实现全光神经网络,从而提高光学神经网络的运算效率和运算精度。
[0099] 基于上述实施例,在本实施例中,确定与所述标准非线性函数对应的目标拟合函数,包括:
[0100] 确定所述原始激活函数的目标拟合范围;
[0101] 若原始激活函数的待运算值在目标拟合范围内,则将标准非线性函数转换为通过光学器件实现的目标拟合函数。其中,原始激活函数的待运算值在目标拟合范围内具体包括:原始激活函数的原始运算值在目标拟合范围内,或者对原始激活函数的原始运算值进行归一化处理后在目标拟合范围内。
[0102] 可以理解的是,好的激活函数首先要具有在近零端的连续且梯度快速变化的一段非线性曲线。这部分函数对激活函数所需要进行的判断工作的快速收敛和判断的最差结果有着直接影响。参见图7,为本发明实施例提供的一种三次方拟合结构示意图,如图7所示,x的输出首先经过光电二级管转化为电能,因为电能是基于光能量转换的,此时参数为对其得到的电压进行k倍的放大,再经过电转化为热,控制调相,可得到一个从 到相位角 的调整关系如下:
[0103]                            (8)
[0104] 经过图7的链接关系和公式(8)的调整关系,可得到图7中的输出的运算关系为:
[0105]                        (9)
[0106] 通过三角函数特性及公式(9)可知,当 足够小时,公式(9)满足:
[0107]                            (10)
[0108] 因此上式成立,为求得合适的拟合方案,需要利用公式(10)的关系,基于合适的x范围划分和原始激活函数的表现,通过拟合求得合适的k值,然后进行配置,实现图7结构,即可得到类似 的三维拟合替换方案。而 是进行泰勒展开拟合的关键运算单元之一,基于上述结构,可以得到在满足公式(9)的情况下的激活函数实现方案。在本实施例中,以原始激活函数为Tanh函数为例进行拟合举例,计算其梯度曲线对其进行仿真可得如图8所示的 拟合方案与Tanh函数的梯度比较结果示意图。如图8所示,在(‑0.99,
0.99)之间,上述拟合方案和Tanh函数有很好的契合度,而超出这个范围就会明显偏差。因此再本实施例中,该目标拟合范围即为(‑0.99,0.99)。也就是说,图7所提出的拟合方案可以适用于卷积运算完后数据落在(‑0.99,0.99)或可以对数据进行归一化预处理使其落在(‑0.99,0.99)的运算任务。此时的激活函数方案通过图7即可实现,唯一需要求得是k的值,而k值可以通过泰勒展开进行映射。以Tanh函数为例,本发明在(‑0.99,0.99)之间所得到的拟合方案为:
[0109]           (11)
[0110] 其中,公式(11)中的 利用图7实现,剩下的 的乘加关系可以通过GridNet或二叉树等拓扑结构进行实现。参见图9,为本发明实施例公开的拟合曲线与Tanh函数比较示意图,在图9中,y1是y=x的线性曲线,y3即是通过本方法得到的激活函数方案,可见其在(‑0.99,0.99)有非常好的拟合效果。然后利用LeNet‑5进行测试,可得相比于Tanh的准确性表现,参见图10a,为本发明实施例提供的训练集的准确度示意图,参见图10b,为本发明实施例提供的测试集的准确度示意图,从图10a和图10b的仿真结果可知,在(‑0.99,0.99)之间的目标激活函数,曲线上与原曲线有较好的拟合表现,在激活函数的功能表现上,完全符合需求。
[0111] 进一步,在本实施例中,若原始激活函数的待运算值不在目标拟合范围内,则该激活函数构造方法还包括如下步骤:
[0112] 确定所述原始激活函数的最小划分梯度;根据最小划分梯度确定近零段的第一范围,近零段与梯度消失段之间的第二范围,梯度消失段的第三范围;确定与每个范围对应的目标拟合函数。其中,本方案在确定与每个范围对应的目标拟合函数时,首先需要确定与第一范围对应的第一目标拟合函数;其中,所述第一目标拟合函数为将所述标准非线性函数转换为通过光学器件实现的函数;然后根据原始激活函数、第二范围内的每个区间范围以及目标线性函数确定与每个区间范围对应的第二目标拟合函数;最后确定与第三范围对应的第三目标拟合函数,该第三目标拟合函数为常数函数。
[0113] 具体来说,在本实施例中同样以原始激活函数为Tanh激活函数、目标拟合范围为(‑0.99,0.99)为例进行说明,也即:待运算值无法通过归一化处理,必须处理原始运算值,且原始运算值不能落点在(‑0.99,0.99)内,此时可选择运算值在(‑0.99,0.99)之内利用公式(11)实现。而在(‑0.99,0.99)之外,可使用目标线性函数:
[0114]                         (12)
[0115] 也即:在(‑0.99,0.99)之外,需要设置基于(12)的拟合方法。在此对整个过程进行具体说明:
[0116] 1、对于曲线拟合的分段可以分为三段。
[0117] 第一段为近零段,设置的第一范围为(‑0.99,0.99)之间选择梯度变化的有效范围,以Tanh函数举例,在(‑0.99,0.99)之间时,如果设置的最小划分梯度 为0.1,则此时基于Tanh函数的梯度求值,其0点梯度最大为1,两端下降,则按照(0.9,1)的范围划分后,第一范围为(‑0.33,0.33)。相反,最小划分梯度 为0.6时,则利用上述方法落点确定在(‑0.99,0.99)之外,则此时选择第一范围为固定位(‑0.99,0.99)。确定近零段的第一范围后,便可使用公式(9)对近零端进行拟合。
[0118] 第二段是非近零到梯度消失段,也即:近零段与梯度消失段之间的一段曲线,这段为拟合的非公式(9)的核心段。对其设置方法为:基于被拟合曲线的梯度,按照每梯度 进行分段,这里的最小划分梯度 的取值范围可以为任意值,其值越大,实现起来复杂度越低,值越小复杂度越大。相应的,其值越大,稳定性越差,收敛速度越差,其值越小,稳定性越好,收敛速度越快。具体的选择基于任务和用户需求决定。
[0119] 第三段为梯度消失段,对于梯度小于0.02后的激活函数部分,本身存在梯度消失问题,此时拟合为直线。在本实施例中,以Tanh函数为例,两端分别直接用‑1和1来代替。
[0120] 2、拟合方法:以Tanh函数为例,在近零段,若 为0.1时,第一范围为(‑0.33,0.33),则利用 得到第一目标拟合函数;
[0121] 在近零段与梯度消失段之间的一段曲线,需要根据原始激活函数计算每个区间范围对应的函数值,将每个区间范围及对应的函数值输入目标线性函数,获得与每个区间范围对应的第二目标拟合函数。也就是说:在根据梯度 进行分段后,选择每个分段的原始激活函数上的点,利用公式(12)的方法,基于两个端点,得到激活函数的拟合函数。
[0122] 以Tanh为例,当选择的 为0.1时,通过激活函数的梯度确认的上述方法中近零段的第一范围是(‑0.33,0.33),得到近零段利用 所得到的近零端的第一目标拟合函数后,然后利用 =0.1对剩余直到梯度为0.02的第二范围进行区间划分,得到多个区间范围,如:(‑0.48,‑0.33)、(0.33,0.48)、(‑0.61, ‑0.48)、(0.48,0.61)等等。
[0123] 以区间范围(‑0.48,‑0.33)为例,代入‑0.48和‑0.33在原始激活函数Tanh函数,得到其值分别为‑0.446和‑0.319。利用上述两点的x值和其y值代入公式(12),求得其公式为,即为区间范围(‑0.48,‑0.33)对应的第二目标拟合函数,依次类推,继续确定其他区间范围对应的第二目标拟合函数。最终获得的目标拟合函数为:
[0124]     (13)
[0125] 在本实施例中,还对 为例使用同样的方法进行拟合,得到的目标拟合函数为:
[0126]            (14)
[0127] 在LeNet‑5下利用MNIST数据集进行测试,参见图11a,为本发明实施例公开的拟合方案比较曲线示意图,参见图11b,为本发明实施例公开的另一拟合方案比较曲线示意图,从图11a及图11b可知,通过公式(13)的拟合可得到train的准确度最高为98%,valid的准确度最高为94%。相应的公式(14)的train准确度最高为97%,valid的准确度最高为93%。且从曲线可知,公式(13)的收敛速度更快,且其准确度更稳定。而(14)的收敛速度会慢一些,且存在一定的震荡。两种方法在train和valid方面都比原本的Tanh函数表现好,且具有更快的收敛速度。
[0128] 综上可以看出,本发明提出了一种通用的ONN中实现全光激活函数的方案,本方案针对不同的激活函数都可适用,且针对芯片设计者在其任务的准确性、收敛速度、曲线震荡、实现复杂度四个方面,给出了不同代价下不同需求的实现方式。在最简单的方式下,相比传统激活函数的性能会稍有下降,但是在复杂实现方式下,在有限代价下,除了可以实现全光神经网络的激活函数功能,甚至可以得到相比传统激活函数本身更好的性能表现。
[0129] 下面对本发明实施例提供的构造装置、设备及存储介质进行介绍,下文描述的构造装置、设备及存储介质与上文描述的构造方法可以相互参照。
[0130] 参见图12,本发明实施例提供的一种全光神经网络的激活函数构造装置结构示意图,包括:
[0131] 第一确定模块11,用于确定原始激活函数;
[0132] 第二确定模块12,用于通过泰勒展开公式确定与所述原始激活函数对应的标准非线性函数;
[0133] 第三确定模块13,用于确定与所述标准非线性函数对应的目标拟合函数,将所述目标拟合函数作为全光神经网络的目标激活函数,所述目标拟合函数通过光学器件实现。
[0134] 其中,所述原始激活函数包括:非线性函数或者非线性拟合函数。
[0135] 其中,所述第三确定模块包括:
[0136] 第一确定单元,用于确定所述原始激活函数的目标拟合范围;
[0137] 转换单元,用于在所述原始激活函数的待运算值在所述目标拟合范围内时,将所述标准非线性函数转换为通过光学器件实现的目标拟合函数。
[0138] 其中,所述转换单元具体用于在所述原始激活函数的原始运算值在所述目标拟合范围内,或者对所述原始激活函数的原始运算值进行归一化处理后在所述目标拟合范围内时,将所述标准非线性函数转换为通过光学器件实现的目标拟合函数。
[0139] 其中,所述第三确定模块还包括:
[0140] 第二确定单元,用于在所述原始激活函数的待运算值不在所述目标拟合范围内时,确定所述原始激活函数的最小划分梯度;
[0141] 范围划分单元,用于根据所述最小划分梯度确定近零段的第一范围,近零段与梯度消失段之间的第二范围,梯度消失段的第三范围;
[0142] 第三确定单元,用于确定与每个范围对应的目标拟合函数。
[0143] 其中,第三确定单元包括:
[0144] 第一确定子单元,用于确定与所述第一范围对应的第一目标拟合函数;其中,所述第一目标拟合函数为将所述标准非线性函数转换为通过光学器件实现的函数;
[0145] 第二确定子单元,用于根据所述原始激活函数、所述第二范围内的每个区间范围以及目标线性函数,确定与每个区间范围对应的第二目标拟合函数;
[0146] 第三确定子单元,用于确定与所述第三范围对应的第三目标拟合函数;其中,所述第三目标拟合函数为常数函数。
[0147] 其中,第二确定子单元具体用于:根据所述原始激活函数计算每个区间范围对应的函数值;将每个区间范围及对应的函数值输入所述目标线性函数,获得与每个区间范围对应的第二目标拟合函数。
[0148] 参见图13,本发明实施例提供的一种电子设备结构示意图,包括:
[0149] 存储器21,用于存储计算机程序;
[0150] 处理器22,用于执行所述计算机程序时实现上述方法实施例所述的激活函数构造方法的步骤。
[0151] 在本实施例中,设备可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。
[0152] 该设备可以包括存储器21、处理器22和总线23。
[0153] 其中,存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器21在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器21在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,存储器21还可以既包括设备的内部存储单元也包括外部存储设备。存储器21不仅可以用于存储安装于设备的应用软件及各类数据,例如执行激活函数构造方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0154] 处理器22在一些实施例中可以是一中央处理器(Central Processing Unit, CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器21中存储的程序代码或处理数据,例如执行激活函数构造方法的程序代码等。
[0155] 该总线23可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0156] 进一步地,设备还可以包括网络接口24,网络接口24可选的可以包括有线接口和/或无线接口(如WI‑FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
[0157] 可选地,该设备还可以包括用户接口25,用户接口25可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口25还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light‑Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。
[0158] 图13仅示出了具有存储器21、处理器22、总线23、网络接口24、用户接口25的设备,本领域技术人员可以理解的是,图13示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0159] 本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法实施例所述的激活函数构造方法的步骤。
[0160] 其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read‑Only Memory ,ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0161] 综上可以看出,本发明提出了一种在全光芯片应用需求下的激活函数构造方案,在不同实现复杂度和精确性要求下,不仅可以实现激活函数的全光芯片解决方案,还可以通过配置和复杂度的损耗,得到相比传统激活函数在ONN中更好的精确度表现。
[0162] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0163] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。