A Novel Fractional-Order Gradient Descent Method with Its Application in Deep Neural Network
This study introduces a novel fractional gradient descent algorithm based on Caputo fractional calculus which is tailored for training neural network models. By adjusting the lower limit of the integral interval, the proposed algorithm extends the fractional order to the (0, 2) range, thereby enhancing the choices of fractional order. Concurrently, this work proves the convergence of the proposed algorithm in detail from the perspective of the regret function based on the gradient clipping mechanism, affirming its theoretical validity. Finally, the numerical experiment based on the publicly available CIFAR-10 dataset, reveals that the proposed algorithm outperforms conventional integer-order gradient method in terms of both convergence speed and convergence accuracy when operated at an optimal order.
Caputo Fractional Calculus
神经网络是一种人工智能技术,其目的是模仿人脑神经元的工作原理,实现对各种信息的处理和识别。虽然神经网络的发展经历了一段时间的沉寂,但近年来,神经网络模型得到了越来越多的关注,重新回归到了研究者的视野当中。卷积神经网络(CNN)
梯度下降法是训练神经网络模型的常见算法。以监督学习为例,首先研究人员需要收集大量的训练数据,同时为训练数据添加标签,然后根据神经网络接收输入数据后得到的输出值与真实值构造损失函数,最后通过计算损失函数的梯度指导神经网络每一步的训练。然而,仿真实验表明,使用梯度下降法训练神经网络不仅收敛速度慢,而且收敛精度较低,更重要的是,面对复杂的损失函数曲面,普通的梯度下降法易于陷入局部极小值难以逃脱,极大地影响了神经网络的性能。
分数阶微分的概念诞生于1695年洛必达和莱布尼茨关于非整数阶次微分的思考,距今已有300多年。如今,分数阶微积分已成功应用于自动控制
本文的剩余部分安排如下。第二节介绍Caputo分数阶微分的基础知识和分数阶梯度下降法的具体形式,第三节从遗憾函数的角度证明所提算法在凸函数条件下的收敛性,第四节通过基于CIFAR-10数据集的数值实验验证了新型分数阶梯度下降法具有更快的收敛速度。第五节为全文的总结。
m阶可微函数 的Caputo分数阶导数定义为以下形式:
(1)
其中,a表示固定的积分下界, 为分数阶阶次,m是正整数, 表示gamma函数。
进一步,若 拥有泰勒展开式,那么将泰勒展开式代入(1)式右端再进行分部积分处理则可以得到:
(2)
普通的梯度下降法可表示成以下形式:
(3)
其中, 表示学习率, 为 在x处的梯度。
为了构造分数阶梯度下降法,则需要使用分数阶导数指导参数下降。当 时,(2)式的具体形式为:
(4)
在面对诸如神经网络等较复杂的应用场景时,二阶及以上的导函数计算将十分占用计算资源,严重减慢参数的更新速度,因此只取 一项,即:
(5)
此时,分数阶梯度下降法可表示为:
(6)
然而,该分数阶梯度算法仍有缺陷,蒲亦非团队
(7)
其中,c为一固定的常数。当 时, ,在 的情况下,这将避免迭代过程陷入停滞,当 时, ,其中, 是 关于 的对称点,这使得每一次迭代时区间长度在形式上保持一致。将 替换(2.6)式中的a,就得到了本文的分数阶梯度下降法:
(8)
其中,
(9)
观察(9)的形式可以发现,当 时,该算法仍旧可以更新参数,且当 时退化为普通的梯度下降法,因此,该算法成功将阶次选择范围扩大至(0, 2)区间。
一般来说,使用梯度下降方法训练神经网络模型的过程可视作一个在线学习过程,在t时刻,优化器从解空间 中选取一个解 ,同时人为地选取一个损失函数 ,之后优化器根据损失函数更新模型并获得下一个时刻的解 。遗憾函数是评价在线学习模型的常用指标,其数学表达形式为:
(10)
其中, 。遗憾函数衡量了T时刻后模型累积的损失与理想模型损失之间的差值,
差值越小,则训练模型越接近理想模型,在线学习的目的是最小化积累的损失,最小化损失就等价于最小化遗憾。在线学习算法通常希望达到次线性的遗憾,即:
(11)
具备次线性遗憾的算法也被称为满足Hannan一致性
定理1 给定 为使用分数阶梯度下降法训练神经网络得到的每一步的迭代结果,那么分数阶梯度算法具有次线性遗憾如果其满足如下假设:
1) 损失函数为凸函数;
2) ,即任一参数的分数阶梯度有界;
3) 对于解空间 中任意的两个参数 ,有 ;
4) ,即限制分数阶梯度的大小。
证明过程如下:
在凸函数假设下,有:
(12)
根据更新公式 ,其中, ,可以得到:
(13)
因此,
(14)
首先处理第一部分,
(15)
由于最后一项恒为负值,因此可以对 进行放缩处理,即:
(16)
将假设(3)代入(16)式中,可得:
(17)
当 时, ,
当 时, ,
定义 ,则 ,因此:
(18)
到此为止就完成了第一部分的处理,对于第二部分,
由于梯度裁剪, ,有:
(19)
因此,
(20)
由于
(21)
其中,
(22)
因此可以得到:
(23)
综合以上讨论,本文对遗憾函数做出如下估计:
(24)
根据(11)可知,分数阶梯度下降法具有次线性的遗憾。
本文采用的数据集为CIFAR-10,是由Alex Krizhevshy和IIya Sutskever整理的一个用于识别现实物体的小型数据集。CIFAR-10中的每张图像都是32 × 32尺寸的三通道彩色图片,共有10个类别,每个类别分别拥有5000张训练图像以及1000张测试图像,所以整个数据集共有60,000张图像用于模型训练及测试。由于该数据集中的图像均源于现实中的真实物体,不仅图像噪声大,而且它们之间的特征差别很大,这为图像识别带来了巨大的困难,因此CIFAR-10成为了检验新模型与新算法的基准数据集。
卷积神经网络是专门处理与图像相关任务的深度网络结构,ResNet正是CNN的一种,它通过添加快捷连接解决了深层网络难以训练的问题。本文采用的卷积神经网络模型为ResNet18,它的网络深度为18,共包含了17个卷积层和1个全连接层,第一个卷积层将图像的通道拓展到64通道,余下的16个卷积层组成了4个残差块,每个残差块有4个卷积层,第一个残差块保持输入输出图像尺寸不变,而其它3个残差块则会使输入图像通道数翻倍,尺寸减半,最后的全连接层用于预测图像的类别。为了使得每层输出与输入的方差保持一致,网络参数均采用Xavier初始化。
本实验的主要超参数有分数阶梯度算法的阶次 ,学习率 ,常数c以及训练轮次T。每次实验中,常数及轮次均被设置为固定值,即 , , 和 取非固定值,这可以体现阶次对算法的影响以及算法对学习率的敏感程度。
1) 当学习率较小时,一般来说,随着阶次的增大,训练集的误差也在不断减小,而当学习率较大时,较大的阶次则会导致学习过程的不稳定。因此较小的学习率匹配更高的阶次,较大的学习率匹配较小的阶次
2) 学习率为0.02时,普通的梯度下降法达到了85.19%的训练集精度和80.14%的测试集精度,在设置阶次为1.8的情况下,两者分别上升到了98.514%和87.92%。学习率为0.1时,普通的梯度下降法达到了98.016%的训练集精度和88.22%的测试集精度,在设置阶次为1.9的情况下,两者分别上升到了99.562%和90.04%。当学习率较大时,虽然分数阶算法的优势有所下降,但是最优的分数阶算法仍在学习率取1.0和1.5的情况下,相较于普通的梯度算法分别提升了1.36%和0.54%的测试集精度,这说明分数阶梯度下降法在一定条件下拥有更强的搜索能力,可以提高模型的拟合程度和泛化能力。
阶次学习率 |
0.02 |
0.1 |
0.5 |
1.0 |
1.5 |
0.1 |
0.39996 |
0.60808 |
0.87472 |
0.98482 |
0.9955 |
0.2 |
0.46266 |
0.65512 |
0.9098 |
0.98908 |
0.99762 |
0.3 |
0.49604 |
0.71704 |
0.95868 |
0.9955 |
0.99834 |
0.4 |
0.57444 |
0.77286 |
0.9717 |
0.99672 |
0.99846 |
0.5 |
0.62204 |
0.82022 |
0.97978 |
0.99862 |
0.9977 |
0.6 |
0.6735 |
0.86564 |
0.99578 |
0.99802 |
0.99902 |
0.7 |
0.72134 |
0.90448 |
0.99762 |
0.99918 |
0.99894 |
0.8 |
0.77526 |
0.94428 |
0.99724 |
0.9965 |
0.99822 |
0.9 |
0.81652 |
0.96406 |
0.99686 |
0.99818 |
0.99662 |
1.0 |
0.8519 |
0.98016 |
0.99766 |
0.99746 |
0.99842 |
1.1 |
0.89412 |
0.98506 |
0.9969 |
0.9981 |
0.99768 |
1.2 |
0.92642 |
0.98676 |
0.99714 |
0.99738 |
0.99618 |
1.3 |
0.95388 |
0.98484 |
0.99584 |
0.9968 |
0.98304 |
1.4 |
0.9639 |
0.99278 |
0.98946 |
0.09914 |
0.09566 |
1.5 |
0.97408 |
0.97974 |
0.98864 |
0.98592 |
0.9769 |
1.6 |
0.98168 |
0.992 |
0.98996 |
0.0976 |
0.09874 |
1.7 |
0.9825 |
0.98948 |
0.91666 |
0.09726 |
0.09926 |
1.8 |
0.98514 |
0.99248 |
0.0974 |
0.09638 |
0.09644 |
1.9 |
0.97868 |
0.99562 |
0.99384 |
0.09754 |
0.09688 |
阶次学习率 |
0.02 |
0.1 |
0.5 |
1.0 |
1.5 |
0.1 |
0.4032 |
0.6084 |
0.8082 |
0.9074 |
0.9186 |
0.2 |
0.4669 |
0.6533 |
0.8352 |
0.9042 |
0.9227 |
0.3 |
0.4959 |
0.7017 |
0.8684 |
0.9151 |
0.9249 |
0.4 |
0.5771 |
0.7425 |
0.8768 |
0.9223 |
0.9203 |
0.5 |
0.623 |
0.7793 |
0.8796 |
0.9252 |
0.9276 |
0.6 |
0.669 |
0.8123 |
0.9048 |
0.9259 |
0.9297 |
0.7 |
0.7114 |
0.8254 |
0.9048 |
0.9242 |
0.9292 |
0.8 |
0.7442 |
0.8587 |
0.9053 |
0.9107 |
0.9337 |
0.9 |
0.7774 |
0.8681 |
0.9086 |
0.9082 |
0.9202 |
1.0 |
0.8014 |
0.8822 |
0.9094 |
0.9123 |
0.9283 |
1.1 |
0.8272 |
0.883 |
0.9034 |
0.9178 |
0.9169 |
1.2 |
0.8528 |
0.866 |
0.8994 |
0.9176 |
0.9092 |
1.3 |
0.8668 |
0.8764 |
0.9028 |
0.9114 |
0.9052 |
1.4 |
0.8729 |
0.8885 |
0.8918 |
0.1 |
0.1 |
1.5 |
0.8753 |
0.8613 |
0.8808 |
0.8864 |
0.8717 |
1.6 |
0.8739 |
0.8924 |
0.8955 |
0.1 |
0.1 |
1.7 |
0.8855 |
0.8898 |
0.8294 |
0.1 |
0.1 |
1.8 |
0.8792 |
0.8853 |
0.1 |
0.1 |
0.1 |
1.9 |
0.8696 |
0.9004 |
0.8802 |
0.1 |
0.1 |
图1. 学习率为0.02时整数阶梯度方法与阶次为1.7的分数阶梯度方法的对比
图2. 学习率为0.1时整数阶梯度方法与阶次为1.9的分数阶梯度方法的对比
图3. 学习率为1.0时整数阶梯度方法与阶次为1.1的分数阶梯度方法的对比
本文从提出更适用于神经网络训练的优化算法出发,以Caputo分数阶微分为基础构造了新型的分数阶梯度下降法。该方法改变了积分下界,将分数阶阶次拓展到了(0, 2)区间,扩大了该算法的优化空间。在理论方面,本文结合了梯度裁剪机制,从遗憾函数的角度详细地证明了该算法具有次线性的遗憾,保证了算法的理论可行性。最后本文通过数值实验,表明在选择合适阶次的情况下,分数阶梯度下降法在收敛精度和收敛速度方面均具有更加良好的表现。