技术领域
[0001] 本
发明涉及
电子信息技术领域,具体涉及一种面向嵌入式应用的深度对抗网络优化方法。
背景技术
[0002] 无监督网络是指在没有额外信息的情况下,从原始数据中提取模式和结构的任务。自动
编码器是解决
无监督学习的典型方法,但其性能难以与监督网络的性能相提并论。对抗网络的出现提供了解决
无监督学习的可行方案,尤其是深度卷积生成式对抗网络已经解决了制约无监督学习的难题,并且在实践中得到广泛应用。
[0003] 但是这类深度对抗网络由于一系列卷积层的应用,运算量巨大,很难集成到诸如智能手机和智能眼镜等
嵌入式系统中。随着深度网络包含更多的卷积层和
节点,减少系统运算量和存储量成为当务之急。卷积层是高度并行的,有效利其并行性可大幅度提升深度网络的性能。但是通用处理器是串行执行的,不能有效利用卷积层的并行性,很难有效完成这类任务。GPU和ASIC能高效利用这种并行性,但是消耗
能量大,开发时间长和成本高,不适合生成式对抗网络等新兴无监督网络,且
现有技术大多只对对抗网络的一部分进行优化,不能使对抗网络
加速器的性能最大化。
发明内容
[0004] 针对现有技术存在的问题,本发明提供一种面向嵌入式应用的深度对抗网络优化方法,具有高通量、低功耗和可配置等特点,首先通过亚
像素卷积神经网络对典型的生成式对抗网络模型中的生成器进行优化,然后根据优化后的生成式对抗网络模型构建生成式对抗网络系统,最后对生成式对抗网络系统中的
硬件加速器进行优化,以便在嵌入式平台上实现,降低硬件资源占用率,提高吞吐率。
[0005] 为了实现上述目的,一种面向嵌入式应用的深度对抗网络优化方法,包括以下步骤:
[0006] 步骤1:将亚像素卷积神经网络中尺寸为(o*r2,i,k/r,k/r)的卷积层与典型的生成器中尺寸为(o,i,k,k)的反卷积层等效,其中,卷积层和反卷积层的尺寸参数分别对应输出深度、输入深度、卷积核的宽度和卷积核的高度,k为正整数,r为上
采样率,根据卷积层和反卷积层的对应关系,通过亚像素卷积神经网络改进典型的生成式对抗网络模型,并以Swish激活函数替换卷积层的LReLU激活函数,具体方法如下:
[0007] 步骤1.1:将L维输入向量通过亚像素卷积神经网络中典型的卷积层在低
分辨率空间提取特征图,特征图的尺寸参数为dn@hn*wn,其中,dn为特征图的深度,hn为特征图的高度,wn为特征图的宽度,卷积层的卷积核宽度和高度均为k/r;
[0008] 步骤1.2:令卷积核的深度为dn-1*r2,继续在低分辨率空间提取特征图,此时特征2
图的尺寸参数为dn-1*r@hn-1*wn-1;
[0009] 步骤1.3:令n=n-1,重复步骤1.2,直到特征图的尺寸参数为d2*r2@h2*w2;
[0010] 步骤1.4:利用亚像素卷积神经网络中典型的亚像素卷积层将最终的特征图转换为高分辨率图像,图像的尺寸参数为d1*r2@h1*w1,由此,完成典型生成式对抗网络模型中生成器的改进;
[0011] 步骤1.5:改进的生成式对抗网络模型中
鉴别器依旧采用典型的生成式对抗网络模型中鉴别器,并以Swish激活函数替换卷积层的LReLU激活函数,其输入体的尺寸参数为d1*r2@h1*w1,卷积层的卷积核宽度和高度均为k,各卷积层包含一系列卷积核,并具有和输入体同样的深度,卷积核在输入体宽度和高度方向滑动,计算卷积核与输入体任一
位置的点积,进而产生二维特征图,将这些特征图沿着深度方向
叠加,得到输出体,输出体的大小由深度、步长和补零来控制,其中,深度控制输出体的深度,即是卷积核的数量,步长控制同一深度的相邻两个隐含单元,与他们相连接的输入区域的距离,补零改变输入单元整体大小,从而控制单元的空间大小;
[0012] 所述输入体为前一个卷积层输出的特征图;所述输出体为当前卷积层输出的特征图;
[0013] 步骤2:根据改进的生成式对抗网络模型构建生成式对抗网络系统;所述生成式对抗网络系统包括构成生成器的S个硬件加速器、构成鉴别器的T个硬件加速器以及一个控
制模块,其中,S=T,且每个硬件加速器实现一个卷积层功能,并包括卷积模块和Swish激活函数模块两部分;
[0014] 步骤3:对构建生成式对抗网络系统进行优化,具体步骤如下:
[0015] 步骤3.1:对生成式对抗网络系统中每个硬件加速器的卷积模块进行优化,具体步骤如下:
[0016] 步骤3.1.1:求取生成器各卷积层输入体深度的最大公约数,并将卷积层内侧三环路按照最大公约数分解,设计硬件加速器,并在各硬件加速器的卷积模块重用;
[0017] 步骤3.1.2:求取鉴别器各卷积层输入体深度的最大公约数,并将卷积层内侧三环路按照最大公约数分解,设计硬件加速器,并在各硬件加速器的卷积模块重用;
[0018] 步骤3.1.3:各卷积层外侧三层环路综合采用环路交换、硬件平铺和CSD编码等方法优化;
[0019] 步骤3.2:对生成式对抗网络系统中每个硬件加速器的Swish激活函数模块进行优化,具体步骤如下:
[0020] 步骤3.2.1:当卷积层的输出值介于(-∞,-16)时,将函数值近似为0;
[0021] 步骤3.2.2:当卷积层的输出值介于(-16,0)区间时,采用查找表的方式求值;
[0022] 步骤3.2.3:当卷积层的输出值介于(0,2Q)区间时,其中Q为定标值,将函数值进行等效交换后再采用查找表的方式求解。
[0023] 进一步地,所述步骤1中卷积层在低分辨率空间提取特征图的方法如下:
[0024] 在步长为s的卷积层输入体的不同神经元之间插入s-1个零,插入零后把其看做是新的输入特征,使各卷积层中卷积核与补零后的输入体具有同样的深度,令卷积核在输入体宽度和高度方向滑动,计算卷积核与输入体任一位置的点积,进而产生二维特征图,将这些特征图沿着深度方向叠加,得到输出体;
[0025] 所述输入体为前一个分辨率空间中输出的特征图;所述输出体为当前分辨率空间中输出的特征图。
[0026] 进一步地,所述步骤3.2.3中将函数值进行等效交换的公式如下:
[0027]
[0028] 其中,x为卷积层的输出值,Q为定标值。
[0029] 本发明的有益效果:
[0030] 本发明提出一种面向嵌入式应用的深度对抗网络优化方法,从架构和硬件加速器设计两个层次进行优化,首先对生成式对抗网络的结构进行优化,开发相应的硬件加速器架构,以便在嵌入式平台上更易于实现,其次对硬件加速器进行相应的设计,降低硬件资源占用率,提高吞吐率,具有高通量、低功耗和可配置等特点。
附图说明
[0031] 图1为本发明
实施例中面向嵌入式应用的深度对抗网络优化方法
流程图;
[0032] 图2为本发明实施例中改进的生成式对抗网络模型示意图;
[0033] 图3为本发明实施例中硬件加速器的卷积模块工作原理图;
[0034] 图4为本发明实施例中硬件加速器的Swish激活函数模块工作原理图;
[0035] 图5为本发明实施例中硬件加速器工作原理图;
[0036] 图6为本发明实施例中
控制器状态机的工作流程示意图。
具体实施方式
[0037] 为了使本发明的目的、技术方案及优势更加清晰,下面结合附图和具体实施例对本发明做进一步详细说明。此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0038] 一种面向嵌入式应用的深度对抗网络优化方法,流程如图1所示,具体方法如下所述:
[0039] 步骤1:将亚像素卷积神经网络中尺寸为(o*r2,i,k/r,k/r)的卷积层与典型的生成器中尺寸为(o,i,k,k)的反卷积层等效,其中,卷积层和反卷积层的尺寸参数分别对应输出深度、输入深度、卷积核的宽度和卷积核的高度,k为正整数,r为上采样率,根据卷积层和反卷积层的对应关系,通过亚像素卷积神经网络改进典型的生成式对抗网络模型,并以Swish激活函数替换卷积层的LReLU激活函数,如图2所示,具体方法如下:
[0040] 步骤1.1:将N维输入向量通过亚像素卷积神经网络中典型的卷积层在低分辨率空间提取特征图,特征图的尺寸参数为dn@hn*wn,其中,dn为特征图的深度,hn为特征图的高度,wn为特征图的宽度,卷积层的卷积核宽度和高度均为k/r。
[0041] 本实施例中,取n=5。
[0042] 所述卷积层在低分辨率空间提取特征图的方法如下:
[0043] 在步长为s的卷积层输入体的不同神经元之间插入s-1个零,插入零后把其看做是新的输入特征,使各卷积层中的卷积核与补零后的输入体具有同样的深度,令卷积核在输入体宽度和高度方向滑动,计算卷积核与输入体任一位置的点积,进而产生二维特征图,将这些特征图沿着深度方向叠加,得到输出体。
[0044] 步骤1.2:令卷积核的深度为d4*r2,继续在低分辨率空间提取特征图,此时特征图的尺寸参数为d4*r2@h4*w4。
[0045] 步骤1.3:令n=n-1,重复步骤1.2,直到特征图的尺寸参数为d2*r2@h2*w2。
[0046] 步骤1.4:利用亚像素卷积神经网络中典型的亚像素卷积层将最终的特征图转换为高分辨率图像,图像的尺寸参数为d1*r2@h1*w1,由此,完成典型生成式对抗网络模型中生成器的改进。
[0047] 步骤1.5:改进的生成式对抗网络模型中鉴别器依旧采用典型的生成式对抗网络模型中鉴别器,并以Swish激活函数替换卷积层的LReLU激活函数,其输入体的尺寸参数为2
d1*r @h1*w1,卷积层的卷积核宽度和高度均为r,各卷积层包含一系列卷积核,并具有和输入体同样的深度,卷积核在输入体宽度和高度方向滑动,计算卷积核与输入体任一位置的点积,进而产生二维特征图,将这些特征图沿着深度方向叠加,得到输出体,输出体的大小由深度、步长和补零来控制,其中,深度控制输出体的深度,即是卷积核的数量,步长控制同一深度的相邻两个隐含单元,与他们相连接的输入区域的距离,补零改变输入单元整体大小,从而控制单元的空间大小。
[0048] 所述输入体为前一个卷积层输出的特征图;所述输出体为当前卷积层输出的特征图;
[0049] 步骤2:根据改进的生成式对抗网络模型构建生成式对抗网络系统;所述生成式对抗网络系统包括构成生成器的S个硬件加速器、构成鉴别器的T个硬件加速器以及一个
控制模块,其中,S=T,且每个硬件加速器实现一个卷积层功能,并包括卷积模块和Swish激活函数模块两部分。
[0050] 本实施例中,取S=T=4。
[0051] 步骤3:对构建生成式对抗网络系统进行优化,具体步骤如下:
[0052] 步骤3.1:对生成式对抗网络系统中每个硬件加速器的卷积模块进行优化,具体步骤如下:
[0053] 步骤3.1.1:求取生成器各卷积层输入体深度的最大公约数,并将卷积层内侧三环路按照最大公约数分解,设计硬件加速器,并在各硬件加速器的卷积模块重用。
[0054] 步骤3.1.2:求取鉴别器各卷积层输入体深度的最大公约数,并将卷积层内侧三环路按照最大公约数分解,设计硬件加速器,并在各硬件加速器的卷积模块重用。
[0055] 步骤3.1.3:各卷积层外侧三层环路综合采用环路交换、硬件平铺和CSD编码方法优化。
[0056] 本实施例中,硬件加速器Submodule的卷积模块包括深度仲裁Depth Arbitrator、输入神经元Input neuron和卷积核参数Filter parameter三个子模块,其工作原理如图3所示:深度仲裁模块接收低分辨率空间提取特征图的深度信息,并将深度信息整除最大公约数,再将所得的商和余数传递给输入神经元,输入神经元根据所得的商和余数选择参与卷积运算的神经元,并传递给硬件加速器,硬件加速器接收输入神经元和卷积核参数做卷积运算,卷积核参数先转换为CSD编码方式,并通过移位相加实现乘法,硬件加速器采用环路流
水线方式优化。
[0057] 步骤3.2:对生成式对抗网络系统中每个硬件加速器的Swish激活函数模块进行优化,其工作原理如图4所示,具体步骤如下:
[0058] 步骤3.2.1:当卷积层的输出值介于(-∞,-16)时,将函数值近似为0。
[0059] 步骤3.2.2:当卷积层的输出值介于(-16,0)区间时,采用查找表的方式求值。
[0060] 本实施例中,当卷积层的输出值介于(-16,0)区间时,将此区间分割为8192个区间,各区间的函数值采用第二点的值表示,并将函数值转换为Q31的定点值;所述定点值为16位的二进制补码。制作查询表如表1所示。
[0061] 表1区间二的查找表
[0062]
[0063]
[0064] 根据输入值计算表的入口地址,计算公式如公式(1)所示:
[0065] index=int(((x+16)>>2))<<13 (1)
[0066] 其中,index为查表的入口地址,x为卷积层的输出值。
[0067] 将入口地址转换为二进制,并传递给
地址总线,即可得到对应的函数值。
[0068] 步骤3.2.3:当卷积层的输出值介于(0,2Q)区间时,其中Q为定标值,将函数值进行等效交换后再采用查找表的方式求解。
[0069] 所述将函数值进行等效交换的公式如公式(2)所示:
[0070]
[0071] 本实施例中,当卷积层的输出值介于(0,2Q)区间时,其中Q=31,分为8192个区间,利用公式(2)对函数值进行等效交换,当自变量趋近于无穷大时,其函数值近似于x,因此可得到公式(3):
[0072]
[0073] 对公式(3)取以2为底的对数,并制作查询表如表2所示。
[0074] 表2区间三的查找表
[0075]地址 输入值 Swish值(Q31)
0 -15.99988 1000000010100
1 -15.99976 1000000010101
3 -15.99963 1000000010101
4 -15.99951 1000000010110
5 -15.99939 1000000010110
… … …
8191 -0.000122 1000000000001
[0076] 根据输入值计算表的入口地址,计算公式如公式(1)所示:
[0077] index=int(x<<(13-Q)) (1)
[0078] 将入口地址转换为二进制,并传递给地址总线,即可得到对应的函数值,将输出值转换为整数j,求取2的j次方并左移Q位得到函数值。
[0079] 采用本发明构建的面向嵌入式应用的深度对抗网络并进行优化后,其工作原理如图5所示,本实施例中,构建的面向嵌入式应用的深度对抗网络包含八个加速器模块ACC和一个控制模块Control,其中,ACC1、ACC3、ACC5、ACC7构成生成器,ACC2、ACC4、ACC6和ACC8构成生成器。各加速器模块包含卷积模块和Swish激活函数模块两部分,控制模块采用摩尔状态机实现。控制模块与各硬件加速器之间以双向控制
信号线连接,在控制模块的作用下,依次执行生成器和鉴别器。状态机包含复位、空闲、生成器、图像输出、鉴别器和概率输出六个状态,所述六个状态均采用独热码编码,优化后的面向嵌入式应用的深度对抗网络中控制器状态机的工作流程如图6所示,具体步骤如下:
[0080] S1:复位状态:生成式对抗网络系统通电后,自动复位各硬件加速器和控制模块,并转入空闲状态。
[0081] S2:空闲状态:从输入端口接收一维数据并存储到缓存,同时把卷积核参数存储到各加速器模块附近的随机
存储器中,同时提供数据准备好信号给生成器。
[0082] S3:生成器状态:从缓存读取低分辨率图像数据,并提供Ready信号给控制模块,控制模块接收到Ready信号后使能ACC1,执行普通卷积层功能,存储卷积数据,提供Ready信号给控制模块。
[0083] S4:ACC3、ACC5和ACC7依次执行步骤S3。
[0084] S5:图像输出状态:接收并存储加速器七生成的高分辨率图像,输出图像到端口。
[0085] S6:鉴别器状态:接收加速器七输出的高分辨率图像,提供Ready信号给控制模块,控制模块接收到Ready信号后使能ACC2,执行普通卷积层功能,存储卷积数据,提供Ready信号给控制模块。
[0086] S7:ACC4、ACC6和ACC8依次执行步骤S6。
[0087] S8:概率输出状态:接收加速器八输出的概率值并存储,将概率值输出至端口。
[0088] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述实施例所记载的技术方案进行
修改,或者对其中部分或者全部技术特征进行等同替换;因而这些修改或者替换,并不使相应技术方案的本质脱离本发明
权利要求所限定的范围。