搜公众号
推荐 原创 视频 Java开发 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库
Lambda在线 > ZERO实验室atPKU > 一种受优化算法启发的深度神经网络结构设计方法

一种受优化算法启发的深度神经网络结构设计方法

ZERO实验室atPKU 2019-04-05
举报

✄--------------------------------

本文Optimization Algorithm Inspired Deep Neural Network Structure Design近期被Asian Conference on Machine Learning 2018 接受,中国专利也已申请。


01

引言

随着近年来GPU计算能力的飞速发展,以及人们能获得的数据量越来越大,深度神经网络在计算机视觉、图像处理和自然语言处理等领域获得了广泛应用。自从2012年深度神经网络在ImageNet分类任务上取得了突破性进展之后,研究者提出了多种不同网络,并且其结构不局限于经典的前馈神经网络结构。典型的例子包括ResNet、DenseNet和CliqueNet,其中ResNet在传统的前馈网络结构上增加了旁支,DenseNet允许每个神经元和它之后的所有神经元相连,而CliqueNet甚至允许同块的神经元完全互连。尽管目前广泛采用的一系列网络结构在性能上相比传统方法具有很大的优势,但是这一系列网络结构在设计上缺乏一定准则,更多的是依靠经验摸索与不断的实验调试来确定最终的网络结构。所以研究者在设计新网络结构时具有一定的盲目性,缺乏指导性。为了克服上述不足,本文提出一种受优化算法启发的深度神经网络结构的设计方法,以得到新的性能更好的网络结构。得到的网络可以作为进一步改进(如依赖暴力搜索或人工微调设计网络结构)的基础。之前虽然有ISTA-Net、FISTA-Net、ADMM-Net等基于优化算法设计的网络,但它们都是用于图像恢复,其思路是把求解图像恢复模型的迭代算法改写成深度神经网络(所以其激活函数常选为软阈值收缩算子)。本文考虑的是面向图像识别的深度神经网络的设计。


02

基本思想

对于所有层共享相同的线性和非线性变换的经典前馈网络结构,本文首先证明该前馈网络中的前向过程等价于使用梯度下降法最小化某个函数的迭代过程,求得的解作为输入图像的特征。接下来,我们提出一个假设:更快的优化算法对应于更好的网络。原因是我们想更快地求得特征,而快的算法对应于浅的网络。基于此假设,我们用比梯度法快的一阶优化算法来最小化目标函数,其迭代过程可以翻译成深度神经网络。得到深度网络的主干拓扑结构后,我们允许在其上添加常见的工程处理手段,如Batch Normalization和Pooling等。最后再在训练集上训练所得到的网络。通过选择适当的快速优化算法,我们可以得到常用的ResNet和DenseNet.


03

设计例子

设计过程具体包括如下步骤:

1)在所有层共享相同的线性变换的前馈神经网络中,第层的输出一种受优化算法启发的深度神经网络结构设计方法和第k+1层的输出一种受优化算法启发的深度神经网络结构设计方法的关系表示为式(1):

一种受优化算法启发的深度神经网络结构设计方法

其中,一种受优化算法启发的深度神经网络结构设计方法是激活函数,例如Sigmoid或ReLU,W是线性变换,一种受优化算法启发的深度神经网络结构设计方法为第k层的输出,一种受优化算法启发的深度神经网络结构设计方法为第k+1层的输出。

2)针对不同的激活函数一种受优化算法启发的深度神经网络结构设计方法,可以找到具体的函数一种受优化算法启发的深度神经网络结构设计方法,使得式(1)等价于式(2):

一种受优化算法启发的深度神经网络结构设计方法

常见的激活函数及其对应的目标函数可见表1(一种受优化算法启发的深度神经网络结构设计方法一种受优化算法启发的深度神经网络结构设计方法的对应关系详见论文)。

一种受优化算法启发的深度神经网络结构设计方法

表2: 常见的激活函数及其对应的目标函数。

在优化理论中,式(2)表示使用梯度下降法对函数一种受优化算法启发的深度神经网络结构设计方法最小化,即使得前馈神经网络中的前向过程等价于使用梯度下降法最小化某个函数一种受优化算法启发的深度神经网络结构设计方法

3)我们采用比梯度法收敛速度更快的重球法(Heavy Ball method)和Nesterov加速算法(Accelerated Gradient method)来最小化函数一种受优化算法启发的深度神经网络结构设计方法,得到相应深度神经网络的结构。两种算法分别执行如下操作:

3A)使用重球法最小函数一种受优化算法启发的深度神经网络结构设计方法

3A1)在第k次迭代,重球法的迭代公式表示为式(3):

一种受优化算法启发的深度神经网络结构设计方法

其中一种受优化算法启发的深度神经网络结构设计方法在真正的重球法中是特定的数值,但这里我们只是为了得到网络的拓扑结构,一种受优化算法启发的深度神经网络结构设计方法具体数值暂时不重要,我们可以把它做为可调甚至可学习的参数;

3A2)基于式(1)-(2),式(3)等价于式(4)所示的前向过程:

   一种受优化算法启发的深度神经网络结构设计方法

3A3)式(4)可以以对应的深度神经网络来计算,由此我们得到称为HB-Net(Heavy Ball Network,重球算法网络)的深度神经网络;

3B)采用Nesterov加速算法最小化函数一种受优化算法启发的深度神经网络结构设计方法

3B1)在第k次迭代,Nesterov加速算法的迭代公式可以等价地表示为式(5):

一种受优化算法启发的深度神经网络结构设计方法

其中

一种受优化算法启发的深度神经网络结构设计方法

3B2)基于式(1)-(2),式(5)等价于式(6)所示前向过程:

一种受优化算法启发的深度神经网络结构设计方法

3B3)式(6)可以以对应的深度神经网络来计算,由此我们得到称为AGD-Net(Accelerated Gradient Descent Network-加速算法网络)的深度神经网络。

式(4)和(6)均由优化算法等价衍化而来。在工程实践中直接应用该式识别效果可能不理想。为了能够更好地应用于工程实践,我们定义如下元操作以拓展得到的网络结构。

1)松弛一种受优化算法启发的深度神经网络结构设计方法W在式(4)和式(6)中,我们使用全连接的线性变换一种受优化算法启发的深度神经网络结构设计方法和激活函数一种受优化算法启发的深度神经网络结构设计方法。在工程应用中,我们允许将一种受优化算法启发的深度神经网络结构设计方法松弛为卷积操作,并且允许不同的层具有不同的权重W。同样地,我们允许将一种受优化算法启发的深度神经网络结构设计方法松弛为pooling和Batch normalization (BN)操作,并且允许一种受优化算法启发的深度神经网络结构设计方法为激活函数、pooling、BN、卷积和全连接线性变换的复合操作。在下述描述中,我们使用一种受优化算法启发的深度神经网络结构设计方法替换一种受优化算法启发的深度神经网络结构设计方法

2)自适应参数。在式(6)中,参数一种受优化算法启发的深度神经网络结构设计方法由优化算法确定。在工程实践中,我们使用式(4)和(6)的结构,但允许其中的系数一种受优化算法启发的深度神经网络结构设计方法一种受优化算法启发的深度神经网络结构设计方法自由设置,并且允许其在训练过程中由学习得到。

在该元操作下,网络结构式(4)和(6)可以变为如下公式:

一种受优化算法启发的深度神经网络结构设计方法

其中一种受优化算法启发的深度神经网络结构设计方法一种受优化算法启发的深度神经网络结构设计方法一种受优化算法启发的深度神经网络结构设计方法一种受优化算法启发的深度神经网络结构设计方法为待定系数。式(7)和(8)的结构分别由图1中(a)和(b)所示,可以看到网络自然有Skip Connection。常见的网络结构ResNet和DenseNet分别是式(7)、(8)的特例。

一种受优化算法启发的深度神经网络结构设计方法

图1:优化迭代对应的结构示意图。式(7) 对应于左图,式(8)对应于右图

04

实验

我们在数据集CIFAR10、CIFAR100和ImageNet上做测试。我们使用CIFAR数据集中50,000张图片作为训练数据,10,000张图片作为测试数据。我们对每张图片做归一化:减去均值并处以标准差。我们将ImageNet每张图片归一化为[0,1]。我们使用如下给出的式(7)和式(8)的一种具体实现方式。

(一)HB-Net

在HB-Net中,我们令式(7)中一种受优化算法启发的深度神经网络结构设计方法一种受优化算法启发的深度神经网络结构设计方法一种受优化算法启发的深度神经网络结构设计方法是两层网络的复合,其中第一层网络是卷积、BN和ReLU的复合,第二层网络是卷积和BN的复合。在每个块的第一层我们使用步调为2的下采样。

(二)AGD-Net

在AGD-Net中,我们设置参数如下:

一种受优化算法启发的深度神经网络结构设计方法

其中一种受优化算法启发的深度神经网络结构设计方法一种受优化算法启发的深度神经网络结构设计方法在训练过程中学习得到,一种受优化算法启发的深度神经网络结构设计方法的设置与优化迭代式(5)中相同。一种受优化算法启发的深度神经网络结构设计方法为BN、ReLU和卷积的复合。

我们使用随机梯度下降法(SGD)来训练网络(注意:这里训练网络的优化算法和设计网络的优化算法没有关系),设置Nesterov冲量为0.9,权重衰减为一种受优化算法启发的深度神经网络结构设计方法。我们使用Xavier初始化全连接层。对于CIFAR,我们训练300次循环,使用样本批量大小为64。初始学习率设为0.1,并在第150次迭代和225次迭代分别将学习率除以10。对于ImageNet,我们训练100次循环,使用样本批量大小为256。在第30、60和90次迭代时减小学习率。我们使用4个GPU。

表2列举了在CIFAR上的实验结果,其中前两列为HB-Net和ResNet的误差率对比结果,后两列为AGD-Net和DenseNet的对比结果。对于ResNet,n=9和n=18分别对应于56层和110层网络。“+”表示标准的数据扩充,“*”表示DenseNet的结果由原始文献报道,其余结果均由我们自行实现。可以看到当网络规模变大时,HB-Net的优势较ResNet更加明显,AGD-Net的优势较DenseNet更加明显。表3列举了在ImageNet上的实验结果,可以看到HB-Net和AGD-Net相应地比ResNet和DenseNet具有更低的错误率。

表2:HB-Net、AGD-Net和ResNet、DenseNet在CIFAR数据集上的错误率比较。

表3:HB-Net、AGD-Net和ResNet、DenseNet在ImageNet数据集上的错误率比较。


05

总结

本文首先证明了当权重和激活函数不变时,神经网络运算等价于用梯度下降法来最小化和激活函数对应的目标函数。基于更快算法对应于更好网络的假设,我们提出了使用比梯度下降收敛更快的算法来设计深度神经网络的主干拓扑。实验结果表明我们的方案有一定的合理性,而且ResNet和DenseNet都是我们方法的特例。当然,我们的假设并不是严格的数学定理,这就是我们把我们的方法称为“受优化算法启发”的缘故。不管怎样,在我们方法得到的网络上进行手工微调,或用于初始化网络暴力搜索方法,应当会大大提高设计效率


论文:

[1] Huan Li, Yibo Yang, Dongmin Chen and Zhouchen Lin. Optimization Algorithm Inspired Deep Neural Network Structure Design. ACML2018.


✄--------------------------------

ZERO是北大信科智能系林宙辰教授的实验室,是Zhouchen's Extraordinary Research Oasis的缩写,也代表实验室成员应有的四个特质:Zeal, Excellence, Reliability和Openness。

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《一种受优化算法启发的深度神经网络结构设计方法》的版权归原作者「ZERO实验室atPKU」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注ZERO实验室atPKU微信公众号

ZERO实验室atPKU微信公众号:gh_88f2ac42e4e7

ZERO实验室atPKU

手机扫描上方二维码即可关注ZERO实验室atPKU微信公众号

ZERO实验室atPKU最新文章

精品公众号随机推荐

举报