1. 引言
云端计算作为一种主流的人工智能服务解决方案,虽然在识别准确率和终端负载之间找到了平衡,但其部署成本较高,适用场景多是与对话模型和AIGC相关,其服务重点在于准确度而不需要较高的实时性[1],对于需要终端部署模型的场景,比如货物分拣、面部识别门禁、自动驾驶等,其对模型部署的实时性要求较高,且通常终端设备的性能有限,不能像云端部署那样使用大型的计算设备部署模型,对于这种场景,如何平衡计算资源与模型性能便成为了亟待研究的问题[2];对于这一问题,能够被轻易的部署在智能手机,笔记本电脑等设备上的轻量级神经网络模型是一种优质的解决方案,目前国内外的许多组织都在推进该类模型的研发,目前较为先进的有YOLO、MobileNet、ShuffleNet等模型,其中YOLO模型在自动化工厂、自动驾驶和医疗影像识别等领域均有着广泛的应用,这些模型主要基于减少算术运算量和提高访存效率来提高模型的计算性能。本文所研究的模型通过研究分形几何学与神经网络的结合方法,在神经网络中引入分形维数的计算,提高了模型参数的使用效率,从而减少了同等准确度下模型的算术运算量,提高了模型的计算性能。
本研究将基于分形维数理论,主要结合黎枫[3]提出的基于跨层自相似特征计算的可以捕获神经网络跨层自相似性特征且有着优秀的图像纹理分类能力的神经网络,与何凯明等人在2015年提出的ResNet [4]模型和残差连接概念,以及其他文献[5]-[9]中的分形维数计算与神经网络模型的相关内容,主要关注其对模型计算效率的提升,构建一种新型的神经网络模型,并通过实验验证其性能。研究方法上,本文将主要使用Pytorch和Paddle框架,并在手势识别数据集上对模型进行训练,最后编译为onnx格式的模型并使用onnxruntime部署在本地设备,检验其实际应用效果。本研究将创新性地探索分形几何学在神经网络模型小型化中的应用,为解决图像识别模型在低算力场景下的部署问题提供新的思路和方法。期望这一研究能够为算力受限情况下的图像识别提供一种新的参考方案,并为相关领域的发展做出贡献。
2. 研究方法
2.1. 分形维数
“分形”(Fractal)一词在1975年被法国数学家曼德勃罗(Benoit B. Mandelbrot)提出[10],本意为不规则的、破碎的、分数的,它指的是那些具有复杂精细结构,且不能用传统的几何语言描述的,具有某种意义上的自相似性的几何结构或现象,比如雪花、海绵、蕨类植物的形状,大脑神经元在局部结构与整体结构上的相似性等。为了定量的分析分形现象,基于测度论的Hausdorff维数的概念被提出。
用经典的分形图案“科赫曲线”来举例,如图1:
Figure 1. Koch curve
图1. 科赫曲线
其每一部分都由4个跟它自身相比为1:3的小曲线组成,于是其分形维数为log(4)/log(3) ≈ 1.262,其中,数值3与4的意义可理解为若将原图形缩小3倍后将其与自身相比,不重叠地存在4个与其相似的部分,其严格定义需要引入Hausdorff测度,如下,部分摘自参考文献[3]:
定义1:任意非空子集
的直径为:
(1)
即U内任意两点之间距离的最大值。
如果
为可数或有限个直径不超过
的集构成的可以覆盖集合F (在n维欧氏空间
)的集类,即
(2)
且对任意的i值有
,就称n维欧式空间
的
是F的一个
覆盖。至此,已经准备好给出Hausdorff测度定义,如下所示:
定义2:设
,对任意一个
和
,令
(3)
其中,
是F的一个
-覆盖。
对于任意
都存在:
(4)
定义3:令
,则集合F的Hausdorff维数为:
(5)
且有
(6)
其中,在
这一点上,
的值可能是0,也可能是∞,或者满足
。
在此定义下,若图形为经典的可被整数维数描述的图形,如线段,正方形,立方体等,其分形维数与其整数维数相同,如此,几何图形的维数的定义被延拓至非整数,且其也可被用来描述符合自相似模式的其他事物。
计盒(Box Counting)方法定义了一种分形维数的计算方法,该分形维数被称作计盒维数[11] (Box- counting Dimension)。
定义4:设A是
空间的任意非空有界子集,对于任意的一个
,
表示用来覆盖A所需边长为r的n维立方体(盒子)的最小数目。如果存在一个数d,使得 当
时,有
且存在一个整
数k使得
,那么称d为A的计盒维数,也称盒维数。
对定义中等式取对数,并求解出d则可得:
(7)
一张灰度图
被视作三维平面
。xy平面被划分为
尺度的 非重叠网格,其中
并从1遍历到S。同时为了确保
,如有必要在I周围进行零填充。记
和
分别为第
个网格上最大和最小灰度值。记
为使用大小为
的不重叠立方体盒子覆盖二维坐标为第
网格处的超表面的高度所需的盒子数量,其中
为盒子高度且
,超表面是由平面灰度值变化所张成的三维表面。记
为使用
的盒子覆盖图像张成的整个三维超表面时所需的盒子总数。
和
计算公式如下:
其中,
和
分别是对应网格上覆盖该局部表面灰度值所需的盒子数索引的最大与最小值。因此,参考公式(7),差分盒维数定义为:
(8)
在实际计算过程中,差分盒维数
可由最小二乘拟合求出。
由于自然界中现象的复杂性,单个分形维数通常无法充分描述一种事物的全部特征,于是学术界逐渐发展出重分形的方法,通过将原集合划分为多个分形奇异集,分别计算每个集合的分形维数并串联成重分形频谱,可以有效地刻画非规则分形的特征,一般的划分方法为使用局部Hölder指数或称局部分形维数,以下给出局部Hölder指数的定义:
定义5 [12]:定义在一个紧支集
上的测度
称为重分形,如果对于任意的
存在
,使得
,其中
是中心位于x,半径为r的球,
。那么
称为
在x的局部Hölder指数或称局部分形维数。
Hölder指数刻画局部标度或局部密度,指数值越小,局部变化越强烈。
至此可以给出重分形频谱定义:
定义6:令
则可以定义重分形频谱为:
(9)
其中,FD(·)代表一种分形维数计算方式,使用2.2介绍的计盒维数计算方式便可以计算数字图像的重分形频谱。
2.2. 网络结构选型
ResNet是一种神经网络结构,它通过串联一种叫做“残差块”(见图2)的结构进行构建,其跨层连接的思想解决了较深层的神经网络在训练时的梯度消失问题,使深度神经网络的训练速度更快,使得较深层数的神经网络模型的实现成为了可能,从而使神经网络可以获取和匹配更加抽象的特征模式,本文选此网络作为主干架构主要看中了其收敛速度。
Figure 2. Residual block
图2. 残差块
本文选用基于ResNet的神经网络模型作为主干网络,附加基于跨层自相似性统计的旁支结构,具体实现细节见第4章内容。
本文所构建的网络模型由主干结构与参考了参考文献[3]中的跨层自相似统计结构构建,主干结构使用三段串联的残差模块作为卷积层部分,之后将卷积层的输出展开为一维向量,将其与旁支跨层自相似统计模块的输出向量拼接为一个更高维的向量,将该向量作为全连接层的输入,向量经过全连接层后会通过SoftMax激活函数,使其转化为分类置信度的表示向量,每一维都看作是该维度代表的类别的概率,选取概率最高的类别作为预测结果。
图3为模型结构图示:
Figure 3. Model structure
图3. 模型结构
2.3. 基于跨层自相似性统计的神经网络
跨层自相似统计是将神将网络各层的输出特征图堆叠起来,通过卷积和最大值池化和最小值池化的方法,实现计盒维数的计算,再通过软直方图,将特征图多尺度的分形信息提取出来,实现跨层的重分形频谱的计算,将重分形频谱作为输入全连接层的特征向量的一部分,来提高模型的性能,以下介绍自相似性统计模块的实现细节。
自相似性统计模块分为跨层特征图缩放和堆叠部分、测度计算部分、软直方图计算部分、计盒维数统计部份以及特征融合部分,先来介绍跨层特征图堆叠部分。
跨城特征图的堆叠是将各层特征图缩放为同样的大小和维数,然后堆叠为一个三维的特征“体”的过程,因为神经网络每一层输出的特征图一般有着不同的尺寸,所以需要将他们先缩放为同一尺寸才能将它们堆叠为一个三维的特征张量来进行之后的计算,本文使用双线性插值的方法将每一层输出的特征图缩放为同一大小,然后先按通道(channel)维度分别堆叠为张量,然后再将每个维度的张量堆叠为一个张量,比如如果一批n个特征图,其通道的维数是3,则先将每个特征图按通道拆开,堆叠为一个N*H*W的特征张量,H和W分别为特征图的行数和列数,即高度(height)和宽度(width),然后将每个通道堆叠成的特征张量再堆叠为一个特征张量,以进行后续的计算,如图4:
Figure 4. Feature image stacking
图4. 特征图堆叠
本文构建的神经网络的主干网络使用的激活函数为Relu且经过了批标准化(Batch Normalize)处理,所以各层输出的特征图上各点的值的范围为(−∞, +∞),大部分应当集中在(−3, +3)范围内,所以为方便之后的计算,先将上一步得到的特征张量通过sigmoid函数将特征值的范围重整到(0, 1)区间范围内,然后通过不同步长的最大值池化和最小值池化,将不同尺度测量下超平面的高低差提取出来,该处网络结构如图5:
Figure 5. Difference between maximum and minimum values
图5. 张量最大最小值之差
之后,将计算的结果输入无偏置的3*7*7三维卷积层进行在通道维度步长3的特征维数的卷积运算,步长为3的原因为特征堆叠步骤时输入的特征图像为三个,所以该步骤可认为是将之前输入的三个不同特征图的同一个通道堆叠为的特征张量看作一个通道数为三的特征图来计算测度,该特征图由三个不同层输出的特征图的相同通道组合而出,所以其包含了跨层的特征信息,即本次计算得出的测度特征图为跨层的测度特征图,通过该特征图,可计算跨层统计的测度软直方图,见图6;
Figure 6. Measurement calculation part of the model
图6. 模型的测度计算部分
通过将上一步计算出的测度特征图分别减去多个不同的基准值,可得到测度特征的软直方图,该步包含上一步测度计算部分,将每一个取测度的卷积层设置为具有可训练的偏置,即可将测度减去基准值这部分包含在一次卷积操作里完成,见图7;之后将输出的软直方图重整为正值,因为之后需要经过log函数,曾在此处设置为经过sigmoid函数,但为了减少计算消耗,此处将其更换为Relu函数,经测试,二者对模型性能并无太大影响;
使用软直方图计算不同基准值下的计盒维数,串联为向量,即为跨层统计的重分形频谱,见图7。
Figure 7. Calculation of box dimension
图7. 计盒维数计算
因为本模型是通过三次不同尺度的盒计数的计算来确定计盒维数,所以log(1/s)为三个常量,直接写入了模型中,以减少模型计算消耗.
在计算完重分形频谱后,参考图3,本文将重分形频谱与主干网络结构输出的特征向量拼合为更高维度的特征向量,见图8,然后作为全连接层的输入,以进行类别的判断。
Figure 8. Feature fusion
图8. 特征融合
本文构建的网络模型的最后一部分结构为全连接部分,将卷积部分计算得出的特征向量通过多层全连接层转化为类别的概率向量,本文将其中的一层设计为输入和输出维数相同,将该层重复了三次,以提高参数的利用效率,据测试,该做法可以提高识别的准确率,且不显著增加模型的参数量,代码见图9:
Figure 9. Fully connected structure
图9. 全连接结构
此处的结构是一个简化的类似图神经网络[13]的结构,本文不对其有效性进行进一步实验与理论论证,下一章将介绍模型的性能测试过程与结果。
3. 模型训练与测试
面介绍了模型的理论基础和具体结构,本文使用类似于pytorch的深度学习框架paddle构建模型,并使用云端算力对模型进行训练,然后将训练好的模型编译为静态的onnx格式部署在本地,使用本地的算力资源测试模型的推理性能。另外,本文还构建了另一例用于验证跨层自相似统计模块有效性的不同结构的模型。
本文主要使用Cifar10数据集对模型进行训练和测试,然后使用一例从网络寻找到的数字手势数据集对模型进行训练,然后将使用数字手势数据集训练好的模型编译为静态的onnx格式模型部署在本地,以测试其推理性能;
本文还构建了另一个模型,其主干结构不变,但跨层自相似统计结构替换为了多层卷积层,依然使用跨层堆叠的特征张量作为输入,使其性能恰好类似于拥有跨层自相似统计的模型,以验证自相似统计模块的有效性,以下分别介绍训练集参数以及另一个模型的结构和两种模型的训练参数:
Cifar10数据集
Cifar10数据集是一个拥有10种类别的彩色图像的数据集(见图10),其包含了50,000张不同的三通道彩色图片,每个图片的尺寸均为32 * 32,此数据集被许多论文用作模型性能的测试数据集,本文也将主要使用该数据集作为性能判断的依据。
Figure 10. Cifar10 dataset
图10. Cifar10数据集
为方便表述,以下称存在自相似性统计模块的模型为主要模型,替换了自相似性统计模块的模型为平替验证模型。平替验证模型的主干结构与主要模型相同,其跨层自相似统计模块被替换为多层卷积层,通过调整各卷积层的参数或增添卷积层层数使平替验证模型与主要模型的准确率达到尽可能一致的水平,以对比在相同识别准确率的情况下,主要模型的自相似性统计模块是否使有效的;
平替验证模型的主干结构与主要模型一致,以下介绍平替验证模型替换自相似性统计模块的平替结构:
平替结构由四层卷积层连接而成,见图11,其中,前三层为7 * 7的卷积层,第四层将前三层的输出调整为与主要网络输出的特征图相同的大小,该结构的输入也是通过所述的特征堆叠后所得的特征张量,输出与主要模型的自相似性统计模块的输出大小相同,保证了平替结构在模型内部结构不同的同时,输入和输出与原模型相同,达到等价替换的效果。
Figure 11. Equal substitution structure of model
图11. 平替的模型结构
主要模型和平替模型如之前测试ResNet模型一样,均以相同的学习率和训练批次大小训练至相似的Loss值,然后对比二者所用的迭代次数来对比二者的训练性能和准确度,在完成训练测试后,使用手势识别训练集将二者训练至饱和,转换为onnx格式,部署在本地物理机上,对模型的推理性能进行测试,然后总结数据,得出模型的测试结论。
首先,两模型的训练测试结果对比如下:
Figure 12. Loss curve of origin model
图12. 原模型训练Loss图
Figure 13. Loss curve of the model of equal substitution
图13. 平替模型训练Loss图
Figure 14. R-C curve of origin model
图14. 原模型R-C曲线
Figure 15. R-C curve of the model of equal substitution
图15. 平替模型R-C曲线
Table 1. The model test result on Cifar10 dataset
表1. Cifar10数据集上的训练测试结果
模型 |
学习率 |
批次大小 |
迭代次数 |
最小Loss |
准确率 |
主要模型 |
0.3 |
200 |
4 |
1.711 |
66.41% |
平替模型 |
4 |
1.720 |
67.80% |
由图12~15以及表1所示数据可以看出二者的训练性能较为相似,通过notebook的cell运行时间观察,二者的训练时的迭代速度相差不大。由此我们可以得出结论:平替模型与主要模型的训练性能几乎相同。
以下为两模型的部署测试结果:
两模型均在云端平台使用数字手势训练集训练后转化为onnx格式并下载到笔者的笔记本电脑中,之后使用onnxruntime读取模型并运行推理,训练集截图如图16:
Figure 16. Number gesture dataset
图16. 数字手势训练集
图17为程序运行截图:
Figure 17. Number 6 gesture recognize test
图17. 数字6手势识别测试
图18~21以及表2为两模型在训练集上的训练结果和训练参数:
Figure 18. Loss curve of origin model on gesture dataset
图18. 主要模型在手势训练集上的Loss图
Figure 19. Loss curve of equal substitution model on gesture dataset
图19. 平替模型在手势训练集上的Loss图
Figure 20. R-C curve of origin model on gesture dataset after training
图20. 主要模型训练后的R-C图
Figure 21. R-C curve of equal substitution model on gesture dataset after training
图21. 平替模型训练后的R-C图
Table 2. Test result of training on number gesture dataset
表2. 数字手势数据集上的训练测试结果
模型 |
学习率 |
批次大小 |
迭代次数 |
最小Loss |
准确率 |
主要模型 |
0.3 |
150 |
50 |
1.463 |
97.39% |
平替模型 |
1.462 |
96.67% |
可以看出,两模型训练后准确率相差不大,表3为模型部署性能数据:
Table 3. Test result of model deployment
表3. 模型部署测试结果
模型 |
模型文件大小(MByte) |
CPU推理时间(100次) |
主要模型 |
12.2 |
14.54 s |
平替模型 |
55.9 |
279.53 s |
可以看出,二者在准确率对比结果上不相上下,但平替模型的模型文件大小约为主要模型的三倍,CPU推理时间为主要模型的十余倍,由于设备限制,并未测试二者在GPU上的推理性能,可能平替模型在并行运算环境下表现会稍好一些,但在本次实验中,将跨层自相似统计模块替换为多层普通卷积的平替模型在推理性能上远弱于拥有跨层自相似统计模块的主要模型,说明相比于跨层自相似性统计模块,多层卷积层若想要实现与跨层自相似性统计模块相似的性能需要占用更多的存储空间,且跨层自相似性统计模块的计算效率要高于与其具有相似识别准确率的多层卷积模块,跨层自相似性统计模块的有效性得到验证。
4. 研究结论
本文的目的为探索深度学习模型的小型化并期望找到一种可行的方案,基于跨层自相似性统计的旁支结构便是本文所找到并实验可行的一种方案,构建的结构是将每层的输出交由跨层自相似性统计结构来计算分形维数,让结构更多的关注输入数据的分形信息,降低主干结构的冗余参数,从而提高模型的性能,研究发现:
(1) 主要模型在参数量大约3倍小于平替验证模型的情况下,其推理性能优于平替验证模型,可轻松实现在仅CPU算力环境下的部署,可以实现快速的实时推理;
(2) 跨层自相似性统计模块与多层串联的卷积层相比,计算资源的消耗更低,在模型中添加跨层自相似性统计模块可以使模型在参数量较低的情况下实现较高的准确性且不明显增加计算资源消耗;
(3) 主要模型与平替验证模型相比,主要模型在CPU环境下的推理性能更优,说明主要模型计算时的时间复杂度更低。
以上研究结果验证了本文的模型作为一种深度学习模型的小型化方案是有效的,该模型可用于对识别实时性要求较高的场景中,且其原理可用于处理多种类型的数据,不限于图像识别;其对部署设备计算性能需求相对友好使其可用于便携式设备实现生活辅助功能或其他类似场景下的功能部署,为多种人工为主要的生产场景赋能。
NOTES
*通讯作者。