CN109086802A - 一种基于八元数卷积神经网络的图像分类方法 - Google Patents
一种基于八元数卷积神经网络的图像分类方法 Download PDFInfo
- Publication number
- CN109086802A CN109086802A CN201810748292.5A CN201810748292A CN109086802A CN 109086802 A CN109086802 A CN 109086802A CN 201810748292 A CN201810748292 A CN 201810748292A CN 109086802 A CN109086802 A CN 109086802A
- Authority
- CN
- China
- Prior art keywords
- biquaternion
- neural networks
- convolutional neural
- image
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于八元数卷积神经网络的图像分类方法,首先,输入训练图像,并且将训练图像表示成八元数矩阵的形式;其次,建立八元数卷积神经网络并且训练八元数卷积神经网络,学习得到每一层的网络参数,即训练模型;然后,用校验图像集进行校验,调整到最佳网络参数;最后,对测试图像进行测试,统计分类结果,计算识别率。本发明构造的八元数卷积神经网络,应用八元数矩阵表达方式保留图像内部的内在结构,使得在各种分类任务中,构造的网络与传统方法相比能够获得更高的图像的分类准确率。
Description
技术领域
本发明涉及一种基于八元数卷积神经网络的图像分类方法,属于深度学习技术领域。
背景技术
深度学习(Deep Learning:DL)是加拿大多伦多大学Hinton教授等于2006年在国际权威期刊《Science》上提出的一种新的机器学习结构,其将无监督的逐层初始化(Layer-wise Pretraining)结构和深度神经网络(Deep Neural Networks:DNN)结构进行了有效的结合。深度学习技术吸引了学术界和工业界的广泛关注,在语音识别、图像识别、医学辅助诊断等领域取得了突破性进展。深度学习网络的构造、推广及其合理的解释是当前人工智能应用基础理论研究的重要研究内容之一。1998年,LeCun等人提出经典的LeNet-5二维实数卷积神经网络(convolutional neural networks:CNN)结构,其被用于MNIST手写数字识别。2012年,AlexNet赢得ImageNet大赛的冠军后,实数CNN逐渐成为被广泛采纳的图像分类结构。目前在MNIST、CIFAR-10、CIFAR-100、STL-10、SVHN、ImageNet等数据集中,分类正确率高的前几位几乎全被实数CNN结构所占据。
根据文献调研,复数域是实数域的有益推广,相对于实数域它具有如下两个方面的优势:
(1)从信号与图像处理的角度来说,复数与实数相比最重要的是引入了非常重要的相位信息。在语音信号处理中,相位信息影响着语音信号的可解释性。在图像处理中,图像相位信息提供了图像形状、边缘和方向的细节性描述,并且可用于恢复图像的幅度信息。
(2)从深度学习网络构造的角度来说,基于复数域的表达受到了越来越多的关注。研究人员在递归神经网络(Recurrent Neural Network:RNN)的构造之中发现:与实数RNN相比,复数RNN更容易优化,具有更好的泛化能力,具有更加快速的学习能力,具有更强的表达能力和对噪声更加鲁棒的记忆恢复(memory retrieval)机制。值得注意的是,最近研究人员也开始在复数域构造卷积神经网络,比如:Hansch和Hellwich提出了具有单个卷积层的复数CNN用于极化合成孔径雷达中的目标检测,实验结果显示复数值卷积神经网络的性能优于传统的复数值多层感知器。复旦大学徐丰教授研究组提出了专用于合成孔径雷达图像分类的复数CNN,在SAR基准数据集Flevoland和Oberpfaffenhofen上的测试结果表明复数CNN的分类正确率与实数CNN相当。Popa等人推导了用于训练多层复数CNN的梯度下降算法,使用MNIST和CIFAR-10数据集进行的图像分类实验表明复数CNN的性能要比具有相同数量参数的实数CNN性能更好。Trabelsi等人也提出了复数CNN模型,在相同参数情况下,复数CNN在CIFAR-10,SVHN和MusicNet数据集上比实数CNN具有更高的识别率。
四元数域是复数域和实数域的进一步推广,与后两者相比具有如下两个方面的优势:
(1)从信号与图像处理的角度来说,四元数域比较适合于彩色图像处理,四元数的相位信息可用于图像描述子的构造。传统CNN只适用于灰度图像或彩色图像分通道的特征提取,忽视了通道问的空间依赖性,破坏了真实环境的颜色特征,从而影响人体行为识别的准确率。孟勃等人提出一种基于四元数时空卷积神经网络(QST-CNN)的人体行为识别方法,将彩色图像的四元数矩阵形式作为网络的输入,并将CNN的空间卷积层扩展为四元数空间卷积层,该方法优于其他流行方法,在Weizmann和UCFsports数据集分别取得了85.34%和80.2%的识别率。
(2)从深度学习网络构造的角度来说,研究人员对浅层四元数神经网络进行了较深入的研究,直到最近研究人员才将四元数的思想扩展到卷积网络领域。中汇信息技术(上海)有限公司的鲍毛毛等人提出了四元数感受野模型、四元数卷积神经网络的输入和四元数特征图生成模型,创建了四元数卷积神经网络,并层次递进的构建了四元数卷积神经网络模型的拓扑结构,最后用四元数BP算法训练学习整个网络。Gaudet和Maida将复数CNN扩展到四元数域,提出四元数卷积神经网络,在CIFAR-10数据集上的测试结果比实数CNN和复数CNN具有更高识别率。
八元数域是复数域和四元数域的进一步推广。帅建伟于1995年将四元数引入神经网络,建立四元数神经网络模型,将其应用于应16色彩色或16级灰度图之后,对网络模型进一步扩展,首次把八元数(Cayley代数)引入到神经网络中,提出了八元数离散神经网络模型,并用信噪比理论初步考察了模型的稳定性和存贮容量。八元数神经网络模型可应用于高精度的256级的灰度图像或256值的彩色图像的识别中。八元数虽然没有像四元数或复数那样被广泛研究使用,它还是有一些有趣的属性:与数学中的一些特殊结构有关,例如李群,此外,八元在弦理论、狭义相对论和量子逻辑等领域也有应用。
与相对比较完善的实数CNN研究体系相比,有关八元数CNN的研究相对较少。为了在空间域和变换域上对卷积神经网络进行扩充,我们将传统识别方法与八元数CNN进行融合,从而构建一个与实数CNN网络结构平行的比较完善的八元数CNN网络结构,主要包括:八元数卷积、八元数批规范化和八元数权值初始化策略,并将其用于图像分类任务。
发明内容
技术问题:本发明提出一种能提高卷积神经网络的图像处理能力的图像分类准确率更高、应用范围更广的基于八元数卷积神经网络的图像分类方法。
技术方案:本发明所述的一种基于八元数卷积神经网络的图像分类方法,包括以下步骤:
(1)输入训练图像,并且将训练图像表示成八元数矩阵的形式;
(2)构建八元数卷积神经网络模型,并对其进行训练;
(3)用校验图像集进行校验,调整到最佳网络参数;
(4)对测试图像进行测试,统计分类结果,计算识别率。
所述步骤(1)包括以下步骤:
(11)对输入特征图R进行实数批规范化操作;
(12)将输出特征向量Oi通过ReLU激活函数层;
(13)对ReLU激活函数层输出的结果进行二维滑动窗卷积操作;
(14)重复执行(11)、(12)、(13)。
步骤(2)所述八元数卷积神经网络包括八元数卷积层和八元数批规范化层。
所述步骤(2)包括以下步骤:
(21)将八元数的实部R及由步骤(1)得到八元数的七个虚部I,J,K,E,L,M,N,按照给定轴相接构成向量O作为网络的输入;
(22)按照给定轴相接构成向量O作为网络的输入,通过八元数卷积层、八元数批规范化层、激活函数层的操作,得到输出特征向量Oi,i=1,2...,N,其中Oi表示网络中第i层的输出特征向量;
(23)将特征向量Oi送入三个阶段的残差块中,再进行卷积后处理,最后编译模型,得到的返回值就是八元数卷积神经网络模型。
所述步骤(3)包括以下步骤:
(31)将一个较大的数据集,分割成三部分,一部分数据集为训练图像集,一部分为校验图像集,另一部分为测试图像集;
(32)采用训练图像集得到所构造的网络的滤波器后,再采用校验图像集进行参数的调优,获得最佳网络参数。
所述步骤(22)包括以下步骤:
(221)将卷积中向量和滤波器用八元数表示,八元数向量h可以表示为:h=x0+x1e1+x2e2+x3e3+x4e4+x5e5+x6e6+x7e7,八元数滤波矩阵W可表示为:W=A0+A1e1+A2e2+A3e3+A4e4+A5e5+A6e6+A7e7,其中A0~A7是实数矩阵,x0~x7是实数向量;
(222)将八元数向量和八元数滤波器进行卷积运算可以得到:
Wh=(A0+A1e1+A2e2+A3e3+A4e4+A5e5+A6e6+A7e7)
(x0+x1e1+x2e2+x3e3+x4e4+x5e5+x6e6+x7e7)
=(A0x0-A1x1-A2x2-A3x3-A4x4-A5x5-A6x6-A7x7)
+(A0x1+A1x0+A2x3-A3x2+A4x5-A5x4-A6x7+A7x6)e1
+(A0x2-A1x3+A2x0+A3x1+A4x6+A5x7-A6x4-A7x5)e2
+(A0x3+A1x2-A2x1+A3x0+A4x7-A5x6+A6x5-A7x4)e3
+(A0x4-A1x5-A2x6-A3x7+A4x0+A5x1+A6x2+A7x3)e4
+(A0x5+A1x4+A3x6-A2x7-A4x1+A5x0-A6x3+A7x2)e5
+(A0x6+A1x7+A2x4-A3x5-A4x2+A5x3+A6x0-A7x1)e6
+(A0x7-A1x6+A2x5+A3x4-A4x3-A5x2+A6x1+A7x0)e7;
(223)将卷积结果用矩阵表示:
(224)将0均值数据(x-E[x])乘以8×8协方差矩阵V[x]的平方根来实现将数据按两个主分量的方差的平方根进行缩放进行白化预处理:
(225)将V[x]进行Cholesky分解来白化8×8向量,W可以看作是V[x]-1的一个Cholesky分解,且假设
Vij表示矩阵V的第i行第j列元素,且i,j=1,2,...,7,首先由再由这样便得到了矩阵W的第一列元素,假定已经算出了W的前d-1列元素,通过可得到进一步再由最终得到这样便通过W的前d-1列求出了第d列,一直递推下去即可求出W的全部元素;
(226)采用变换重构,引入可学习参数γ,β,其中β=E[x],β本身就是一个八元数值,有实部和七个虚部,共八个学习的分量,缩放参数γ是大小与V[x]匹配的对称矩阵,由于对称性有36个可学习的参数;
(227)得到批规范化网络层的前向传导过程公式:为了使输入的经过归一化后方差为1,将γ的对角线都初始化为将γ的非对角线和β的所有分量都初始化为0。
所述步骤(23)包括以下步骤:
(231)将特征向量Oi送入三个阶段的残差块中,将所获得的输入按序进行八元数批规范化、激活函数、八元数卷积、八元数批规范化、激活函数、八元数卷积操作,三阶段中每一个阶段都存在多个包含两个卷积层的残差块,通过设置每一阶段的残差块数量来调整网络结构的大小,通过调整步长来减少计算量,使特征图的输出减少为输入的两倍;
(232)将特征向量在竖直和水平方向上进行均值下采样,下采样因子为长为8的整数元组,即用8×8模板,使64个相邻像素经过加权计算变成一个,特征向量在两个维度上均变为原长的1/8;
(233)将输出的多维数据一维化;
(234)最后编译模型,得到的返回值就是八元数卷积神经网络模型,对网络进行初始化,然后在训练数据上按批进行一定次数的迭代训练,以拟合网络。
有益效果:与现有技术相比,本发明的有益效果为:应用八元数矩阵表达方式保留图像内部的内在结构,使得在各种分类任务中,构造的网络与传统方法相比能够获得更高的图像的分类准确率,应用范围更广。
附图说明
图1为本发明的流程图;
图2为数据集CIFAR-10在测试集上的测试错误率;
图3为数据集CIFAR-10在测试集上的测试损失;
图4为训练集、验证集和测试集的准确率;
图5为训练集、验证集和测试集的损失。
具体实施方式
下面结合附图对本发明作进一步详细说明:
图1为本发明流程图,主要包括以下步骤:
步骤1:输入N幅大小均为m×n像素的训练图像,将N幅训练图像进行预处理,学习八元数的虚部,N、m、n为正整数,且N可以被8整除。将八元数X嵌入到实值中表示,用八阶实矩阵表示八元数,并以矩阵之加法、乘法应用于八元数之加法、乘法。
首先对输入特征图R进行实数批规范化操作,将网络的第i-1层输出数据Oi-1表示为四维矩阵(m,f,p,q),其中m为一批数据的大小,f为特征图个数,p,q分别为特征图的宽和高,若把每个特征图看成是一个特征处理(一个神经元),则这批数据的大小就是:m×p×q,所以对于每个特征图都只有一对可学习参数:γ,β,即在该层(第i层)中求出所有样本所对应的一个特征图的所有神经元的平均值、方差,把它归一化至均值0、方差1,然后再输入第i+1层计算。
再将输出特征向量Oi通过ReLU激活函数层,对于ReLU函数,其公式为:ReLU(x)=max(0,x),通过这项操作可以把所有的负值都变为0,而正值不变,使得神经网络中的神经元具有了稀疏激活性。
接着对ReLU激活函数层输出的结果进行二维滑动窗卷积操作,卷积处理流程包括:读取源图像像素;应用卷积操作数矩阵产生目标图像;对目标图像进行归一化处理;处理边界像素。即使用大小为k×k像素的滑块遍历输出特征图的每个像素,每个像素所在的滑块区域重新排列成一个列向量,再对边界像素进行0填充,卷积结束后输入矩阵在高度上需要填充的像素数和上下分别添加的像素数为:
pad_needed_height=(W/S-1)×S+k-W
pad_top=pad_needed_height/2(结果取整)
pad_down=pad_needed_height-pad_top
以此类推,输入矩阵在宽度上需要填充的像素数和左右分别添加的像素数为:
pad_needed_width=(W/S-1)×S+k-W
pad_left=pad_needed_width/2(结果取整)
pad_right=pad_needed_width-pad_left
其中W×W输入矩阵的大小,k×k是卷积矩阵的大小,k为奇数,S(默认1)为卷积的步长。
然后,将上述步骤重复执行一遍。
八元数有1个实部和7个虚部,所以上述操作要同时执行7次得到八元数的七个虚部I,J,K,E,L,M,N。
步骤2:搭建八元数卷积神经网络模型,由输入得到八元数的实部R,由步骤1得到八元数的七个虚部I,J,K,E,L,M,N,把这八个部分按照给定轴相接构成向量O作为网络的输入;然后将输入特征向量O通过八元数卷积层、八元数批规范化层、激活函数层的操作,得到输出特征向量Oi,i=1,2...,N,其中Oi表示网络中第i层的输出特征向量;再将其送入三个阶段的残差块中,再进行卷积后处理,最后编译模型,得到的返回值就是八元数卷积神经网络模型(model)。
使用训练图像集中的一部分样本对模型的权重进行一次反向传播的参数更新称为“一批数据(batch)”,使用训练图像集的全部数据对模型进行一次完整的训练称为“一代训练(epoch)”,使用全部训练图像集迭代进行多次训练,次数记为(num-epochs),在完成模型的编译后,我们对网络进行初始化,然后在训练数据上按批进行一定次数的迭代训练,以拟合网络。
八元数表示的操作具体为:
首先,八元数可视为是将复数的域从R推广到四元数而成,即:
C(R)={α+βe;α,β∈Q(R)}={a0+a1i+a2j+a3k+a4e+a5ie+a6je+a7ke;ai∈R}其中,i,j,k是三个虚基元,e是新引入的超复数基元,因此八元数C也可看作是四元数的复数形式,即可以把它视为将四元数的域从R推广到C而成。用自然的方式定义八元数间的加法,以及八元数与实数的乘法,而八元数与八元数的乘法既不满足交换律也不满足结合律,元素间的乘法按照规定用分配法来展开:
(α+βe)(χ+γe)
而其中:
i2=j2=k2=-1,ij=-ji=k,jk=-kj=i,ki=-ik=j,ie je=-k,je ie=k,(ieje)i=-j,ie(je i)=j
同时八元数也可以视为实数的八元组,由基{e0;e1;e2;e3;e4;e5;e6;e7}生成,e0是标量,通常为1,所以八元数X可以写为:
其中xi属于实数集,其中x0为实部,x1~x7表示七个虚部,e1~e7表示七个虚轴,八元数的乘法表如表1所列:
表1
然后将八元数X嵌入到实值中表示,用八阶实矩阵表示八元数,并以矩阵之加法、乘法应用于八元数之加法、乘法。基于方阵代数,引入八元数,定义八元向量:
其中
且满足
e0e0=e0,e0eμ=eμe0=eμ,eμeμ=-e0,eμeν=-eνeμ(μ≠ν,μ,ν=1,2,3)
e1e2=e3,
e1e3=-e2,e2e3=e1,
e1e4=e5,e2e4=e6,e3e4=e7,
e1e5=-e4,e2e5=e7,e3e5=-e6,e4e5=e1,
e1e6=-e7,e2e6=-e4,e3e6=e5,e4e6=e2,e5e6=-e3,
e1e7=e6,e2e7=-e5,e3e7=-e4,e4e7=e3,e5e7=e2,e6e7=-e1,
再在卷积层中将特征图表示为八元数的形式,假设某卷积层具有N个特征图,N可以被8整除,用前(N)/8个特征图表示实部,接下来的(N)/8个特征图表示第i个虚部分量,(N)/8个特征图表示第j个虚部分量,(N)/8个特征图表示第k个虚部分量,(N)/8个特征图表示第e个虚部分量,(N)/8个特征图表示第l个虚部分量,(N)/8个特征图表示第m个虚部分量,最后的(N)/8个特征图表示第n个虚部分量。
八元数卷积的具体操作如下:
(a)首先将卷积中向量和滤波器用八元数表示,八元数向量h可以表示为:h=x0+x1e1+x2e2+x3e3+x4e4+x5e5+x6e6+x7e7,八元数滤波矩阵W可表示为:W=A0+A1e1+A2e2+A3e3+A4e4+A5e5+A6e6+A7e7,其中A0~A7是实数矩阵,x0~x7是实数向量;
(b)将八元数向量和八元数滤波器进行卷积运算可以得到:
Wh=(A0+A1e1+A2e2+A3e3+A4e4+A5e5+A6e6+A7e7)
(x0+x1e1+x2e2+x3e3+x4e4+x5e5+x6e6+x7e7)
=(A0x0-A1x1-A2x2-A3x3-A4x4-A5x5-A6x6-A7x7)
+(A0x1+A1x0+A2x3-A3x2+A4x5-A5x4-A6x7+A7x6)e1
+(A0x2-A1x3+A2x0+A3x1+A4x6+A5x7-A6x4-A7x5)e2
+(A0x3+A1x2-A2x1+A3x0+A4x7-A5x6+A6x5-A7x4)e3
+(A0x4-A1x5-A2x6-A3x7+A4x0+A5x1+A6x2+A7x3)e4
+(A0x5+A1x4+A3x6-A2x7-A4x1+A5x0-A6x3+A7x2)e5
+(A0x6+A1x7+A2x4-A3x5-A4x2+A5x3+A6x0-A7x1)e6
+(A0x7-A1x6+A2x5+A3x4-A4x3-A5x2+A6x1+A7x0)e7
(c)将卷积结果用矩阵表示:
八元数批规范化的具体操作如下:
首先,将0均值数据(x-E[x])乘以8×8协方差矩阵V[x]的平方根来实现将数据按两个主分量的方差的平方根进行缩放进行白化预处理:其中x是n×n矩阵,E[x]指的是每一批训练数据神经元x的平均值;V[x]是每一批数据神经元x的协方差矩阵,V[x]可以表示为:
其中Cov是协方差,R{x},I{x},J{x},K{x},E{x},L{x},M{x},和N{x}分别是x的实部、i分量、j分量、k分量、e分量、l分量、m分量和n分量;
其次,求解V[x]的逆平方根,通过将V[x]进行Cholesky分解来白化8×8向量;
然后采用变换重构,引入可学习参数γ,β,其中β=E[x]。β本身就是一个八元数值,有实部和七个虚部,共八个学习的分量,缩放参数γ是大小与V[x]匹配的对称矩阵,由于对称性有36个可学习的参数,由下式给出:
最后得到批规范化网络层的前向传导过程公式:为了使输入的经过归一化后方差为1,将γ的对角线都初始化为将γ的非对角线和β的所有分量都初始化为0。
因为Cov(x)=∑是矩阵x的对称协方差矩阵,通过白化操作将矩阵x转换为Z,使得Cov(Z)=I,其中I是单位矩阵,则矩阵Z可以写为:Z=W(x-μ),所以有:
E[ZZT]=I
E[W(x-μ)(W(x-μ))T]=I
E[W(x-μ)(x-μ)TWT]=I
W∑WT=I
W∑WTW=W
WTW=∑-1
所以W可以看作是V[x]-1的一个Cholesky分解,且假设
Vij表示矩阵V的第i行第j列元素,且i,j=1,2,...,7。首先由再由这样便得到了矩阵W的第一列元素,假定已经算出了W的前d-1列元素,通过可得到进一步再由最终得到这样便通过W的前d-1列求出了第d列,一直递推下去即可求出W的全部元素,W矩阵的每一项可以表示如下:
再将特征向量Oi送入三个阶段的残差块中,残差块的设计,将所获得的输入按序进行八元数批规范化、激活函数、八元数卷积、八元数批规范化、激活函数、八元数卷积操作,通过设置每一阶段的残差块数量(num-blocks)来控制操作层数,即网络深度,同时可通过调整步长来减少计算量,使特征图的输出减少为输入的两倍。
然后将特征向量在两个方向(竖直,水平)上进行平均下采样,下采样因子为长为8的整数元组,即用8×8模板,使64个相邻像素经过加权计算变成一个,特征向量在两个维度上均变为原长的1/8,再将输出的多维数据一维化。
最后编译模型,得到的返回值就是八元数卷积神经网络模型(model);在完成模型的编译后,我们对网络进行初始化,然后在训练数据上按批进行一定次数的迭代训练,以拟合网络。
步骤3:对于一个较大的数据集,分割成三部分,一部分数据集为训练图像集,一部分为校验图像集,另一部分为测试图像集,当采用训练图像集得到所构造的网络的滤波器后,再采用校验图像集进行参数的调优,获得最佳网络参数。
步骤4:采用经过调优后的网络参数,输入测试图像集及其标签信息,统计分类结果,计算识别率,对模型进行评估。
这样,经过以上两个阶段,能够进行图像分类识别的八元数卷积神经网络就已经构造完毕。
以CIFAR-10数据集为例来详细说明本发明。
在一台64位操作系统的计算机上进行验证实验,该计算机配置为Intel(R)Core(TM)i7-4790CPU@3.60GHz×8处理器,GeForce GT705/PCIe/SSE2显卡,操作系统是Ubuntu16.04LTS,编程语言是Python2.7,运行环境是Theano(0.9.0)、Tensorflow(1.3.0)、Tensorfolw-gpu(1.2.0)、Keras(2.0.5)、Kerosene(0.3.0)。
CIFAR-10数据集由10个类的60000个32×32彩色图像组成,每个类有6000个图像,这些类完全相互排斥。CIFAR-10数据集每个批处理文件都包含一个包含以下元素的字典:
数据:数据集的数据存在一个一个10000×3072的numpy数组中,单位是uint8。阵列的每一行存储32×32彩色图像即每一行存储3072=1024*3个数字信息。前1024个条目包含红色通道值,中间1024是绿色,最后1024是蓝色。图像以行优先顺序存储,以便数组的前32个条目是图像第一行的红色通道值。
标签:范围为0-9的10000个数字的列表。索引i处的数字表示阵列数据中第i个图像的标签。
首先是导入数据,下载CIFAR-10数据集,将数据转为浮点型32位(float32),进行归一化;然后随机切分出训练图像集、校验图像集和测试图像集,60000张图像中随机取样45000作为训练图像集,15000作为校验图像集;将类向量转换为二进制矩阵,将标签转换为独热码;最后创建训练数据生成器,训练模型。
八元数卷积神经网络模型的参数设定过程:模型有三种(real,complex,octonion)可供选择,对应的是三类不同的子构建模块,每一阶段的残差块数量可根据网络结构的大小(大型网络残差块数量设为10,小型网络残差块数量设为2)来调整;没有使用Dropout,激活函数使用ReLU,支持动量参数为0.9,学习衰减率为1e-3,支持Nesterov动量;Conv2D层和Dense层都在权重上施加正则项L2(0.0001),正则项在优化过程中往层的参数或层的激活值添加惩罚项,这些惩罚项将与损失函数一起作为网络的最终优化目标。
模型训练过程:首先,我们所使用的所有数据都是实值的,因此需要学习它们的虚部,来让网络可以在复平面中运行。我们通过执行单个实值残差块中存在的操作(learnVectorBlock模块)来学习输入的初始虚部:
BN→ReLU→Conv→BN→ReLU→Conv
八元数有1个实部和7个虚部,所以上述操作要同时执行7次,然后将这8个向量按照给定轴相接,构成一个全新的八元数向量。
然后对获得的虚部进行八元数卷积(OctonionConv2D模块)、八元数批规范化(OctonionBN模块)、激活函数(ReLU模块)操作:
OctonionConv→OctonionBN→ReLU
再将其送入到第一个残差块,深度卷积残差神经网络是由三个阶段组成的,每一个阶段中存在多个包含两个卷积层的残差块,通过设置每一阶段的残差块数量(num-blocks)来控制个数,每个阶段的特征图的形状相同。在一个阶段结束时,特征图会进行2倍下采样,并且卷积滤波器的数量会加倍。卷积内核的大小总是设置为3×3,可通过调整步长来减少计算量,使特征图的输出减少为输入的两倍。
最后一层是一个全局平均池化层(AveragePooling2D),将特征向量在两个方向(竖直,水平)上进行平均下采样,下采样因子为长为8的整数元组,即用8×8模板,使64个相邻像素经过加权计算变成一个,特征向量在两个维度上均变为原长的1/8。后面跟着一个具有softmax函数的完全连接层(Dense),再将输出的多维数据一维化,用于将输入分类为CIFAR-10中的10个类中的一个。然后编译模型,对模型使用交叉熵损失函数,最优化方法使用随机梯度下降法(SGD),最终得到八元数卷积神经网络模型。
模型测试过程:选择八元数模型,由于电脑GPU配置较低,跑了小型网络,即每一阶段的残差块数量(num-blocks)设置为2,共有14个实数二维卷积(conv2D)模块,14个实数批规范化(batch_normalization)模块,15个八元数二位卷积(octonion_conv2d)模块,13个八元数批规范化(octonion_batch_normalization)模块和27个激活函数(activation)模块,网络的参数数量为74400;第一层的滤波器数量(start-filter)设为4,样本大小(batch-size)设为16,使用全部训练样本迭代的次数(num-epochs)设为200次。测试的结果如附图2和附图3所示。
Keras的性能评估模块提供了一系列用于模型性能评估的函数,这些函数在模型编译时由metrics关键字设置。性能评估函数类似于目标函数,只不过该性能的评估结果将不会用于训练。通过字符串“accuracy”来使用预定义的性能评估函数,针对多分类问题,计算在所有预测值上的平均正确率。
在每个epoch的结尾处(on_epoch_end):日志将包含训练的正确率和误差,train_acc和train_loss,因为指定了验证集,还会包含验证集正确率和误差val_acc和val_loss;在每个batch的开始处(on_batch_begin):日志包含size,即当前batch的样本数;在每个batch的结尾处(on_batch_end):日志包含loss和acc。实验结果如附图4和附图5所示。
图4中横坐标是迭代次数,纵坐标是准确率,表示的是在训练集、验证集、测试集上的准确率(acc);图5中横坐标是迭代次数,纵坐标是损失,表示的是在训练集、验证集、测试集上的损失(loss)。acc值越小,就代表模型的分类准确率越高,模型效果越好。
Claims (7)
1.一种基于八元数卷积神经网络的图像分类方法,其特征在于,包括以下步骤:
(1)输入训练图像,并且将训练图像表示成八元数矩阵的形式;
(2)构建八元数卷积神经网络模型,并对其进行训练;
(3)用校验图像集进行校验,调整到最佳网络参数;
(4)对测试图像进行测试,统计分类结果,计算识别率。
2.根据权利要求1所述的一种基于八元数卷积神经网络的图像分类方法,其特征在于,所述步骤(1)包括以下步骤:
(11)对输入特征图R进行实数批规范化操作;
(12)将输出特征向量Oi通过ReLU激活函数层;
(13)对ReLU激活函数层输出的结果进行二维滑动窗卷积操作;
(14)重复执行(11)、(12)、(13)。
3.根据权利要求1所述的一种基于八元数卷积神经网络的图像分类方法,其特征在于,步骤(2)所述八元数卷积神经网络包括八元数卷积层和八元数批规范化层。
4.根据权利要求1所述的一种基于八元数卷积神经网络的图像分类方法,其特征在于,所述步骤(2)包括以下步骤:
(21)将八元数的实部R及由步骤(1)得到八元数的七个虚部I,J,K,E,L,M,N,按照给定轴相接构成向量O作为网络的输入;
(22)按照给定轴相接构成向量O作为网络的输入,通过八元数卷积层、八元数批规范化层、激活函数层的操作,得到输出特征向量Oi,i=1,2...,N,其中Oi表示网络中第i层的输出特征向量;
(23)将特征向量Oi送入三个阶段的残差块中,再进行卷积后处理,最后编译模型,得到的返回值就是八元数卷积神经网络模型。
5.根据权利要求1所述的一种元八数卷积神经网络的图像分类方法,其特征在于,所述步骤(3)包括以下步骤:
(31)将一个较大的数据集,分割成三部分,一部分数据集为训练图像集,一部分为校验图像集,另一部分为测试图像集;
(32)采用训练图像集得到所构造的网络的滤波器后,再采用校验图像集进行参数的调优,获得最佳网络参数。
6.根据权利要求4所述的一种基于八元数卷积神经网络的图像分类方法,其特征在于,所述步骤(22)包括以下步骤:
(221)将卷积中向量和滤波器用八元数表示,八元数向量h可以表示为:h=x0+x1e1+x2e2+x3e3+x4e4+x5e5+x6e6+x7e7,八元数滤波矩阵W可表示为:W=A0+A1e1+A2e2+A3e3+A4e4+A5e5+A6e6+A7e7,其中A0~A7是实数矩阵,x0~x7是实数向量;
(222)将八元数向量和八元数滤波器进行卷积运算可以得到:
Wh=(A0+A1e1+A2e2+A3e3+A4e4+A5e5+A6e6+A7e7)
(x0+x1e1+x2e2+x3e3+x4e4+x5e5+x6e6+x7e7)
=(A0x0-A1x1-A2x2-A3x3-A4x4-A5x5-A6x6-A7x7)
+(A0x1+A1x0+A2x3-A3x2+A4x5-A5x4-A6x7+A7x6)e1
+(A0x2-A1x3+A2x0+A3x1+A4x6+A5x7-A6x4-A7x5)e2
+(A0x3+A1x2-A2x1+A3x0+A4x7-A5x6+A6x5-A7x4)e3
+(A0x4-A1x5-A2x6-A3x7+A4x0+A5x1+A6x2+A7x3)e4
+(A0x5+A1x4+A3x6-A2x7-A4x1+A5x0-A6x3+A7x2)e5
+(A0x6+A1x7+A2x4-A3x5-A4x2+A5x3+A6x0-A7x1)e6
+(A0x7-A1x6+A2x5+A3x4-A4x3-A5x2+A6x1+A7x0)e7;
(223)将卷积结果用矩阵表示:
(224)将0均值数据(x-E[x])乘以8×8协方差矩阵V[x]的平方根来实现将数据按两个主分量的方差的平方根进行缩放进行白化预处理:
(225)将V[x]进行Cholesky分解来白化8×8向量,W可以看作是V[x]-1的一个Cholesky分解,且假设
Vij表示矩阵V的第i行第j列元素,且i,j=1,2,...,7,首先由再由这样便得到了矩阵W的第一列元素,假定已经算出了W的前d-1列元素,通过可得到进一步再由最终得到这样便通过W的前d-1列求出了第d列,一直递推下去即可求出W的全部元素;
(226)采用变换重构,引入可学习参数γ,β,其中β=E[x],β本身就是一个八元数值,有实部和七个虚部,共八个学习的分量,缩放参数γ是大小与V[x]匹配的对称矩阵,由于对称性有36个可学习的参数;
(227)得到批规范化网络层的前向传导过程公式:为了使输入的经过归一化后方差为1,将γ的对角线都初始化为将γ的非对角线和β的所有分量都初始化为0。
7.根据权利要求4所述的一种基于八元数卷积神经网络的图像分类方法,其特征在于,所述步骤(23)包括以下步骤:
(231)将特征向量Oi送入三个阶段的残差块中,将所获得的输入按序进行八元数批规范化、激活函数、八元数卷积、八元数批规范化、激活函数、八元数卷积操作,三阶段中每一个阶段都存在多个包含两个卷积层的残差块,通过设置每一阶段的残差块数量来调整网络结构的大小,通过调整步长来减少计算量,使特征图的输出减少为输入的两倍;
(232)将特征向量在竖直和水平方向上进行均值下采样,下采样因子为长为8的整数元组,即用8×8模板,使64个相邻像素经过加权计算变成一个,特征向量在两个维度上均变为原长的1/8;
(233)将输出的多维数据一维化;
(234)最后编译模型,得到的返回值就是八元数卷积神经网络模型,对网络进行初始化,然后在训练数据上按批进行一定次数的迭代训练,以拟合网络。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810748292.5A CN109086802B (zh) | 2018-07-10 | 2018-07-10 | 一种基于八元数卷积神经网络的图像分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810748292.5A CN109086802B (zh) | 2018-07-10 | 2018-07-10 | 一种基于八元数卷积神经网络的图像分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109086802A true CN109086802A (zh) | 2018-12-25 |
CN109086802B CN109086802B (zh) | 2022-04-08 |
Family
ID=64837369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810748292.5A Active CN109086802B (zh) | 2018-07-10 | 2018-07-10 | 一种基于八元数卷积神经网络的图像分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086802B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871829A (zh) * | 2019-03-15 | 2019-06-11 | 北京行易道科技有限公司 | 一种基于深度学习的检测模型训练方法和装置 |
CN110443227A (zh) * | 2019-08-19 | 2019-11-12 | 重庆大学 | 一种基于学习超像素和qcnn的极化sar地物识别方法 |
CN110533683A (zh) * | 2019-08-30 | 2019-12-03 | 东南大学 | 一种融合传统特征与深度特征的影像组学分析方法 |
CN110728324A (zh) * | 2019-10-12 | 2020-01-24 | 西安电子科技大学 | 基于深度复值全卷积神经网络的极化sar图像分类方法 |
CN111681298A (zh) * | 2020-06-08 | 2020-09-18 | 南开大学 | 一种基于多特征残差网络的压缩感知图像重建方法 |
CN112861813A (zh) * | 2021-03-29 | 2021-05-28 | 电子科技大学 | 基于复值卷积神经网络的墙后人体行为识别方法 |
CN113191941A (zh) * | 2021-04-21 | 2021-07-30 | 齐鲁工业大学 | 一种基于八元数连续正交矩的彩色立体图像重构方法 |
CN113269121A (zh) * | 2021-06-08 | 2021-08-17 | 兰州大学 | 一种基于融合cnn模型的渔船捕捞状态识别方法 |
WO2022021673A1 (zh) * | 2020-07-31 | 2022-02-03 | 中国原子能科学研究院 | 一种稀疏矩阵向量乘运算时间预测方法及系统 |
CN114120406A (zh) * | 2021-11-22 | 2022-03-01 | 四川轻化工大学 | 基于卷积神经网络的人脸特征提取分类方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714336A (zh) * | 2012-10-08 | 2014-04-09 | 陈建成 | 基于八元数和回声状态网络的织物图像边缘检测方法 |
CN107341452A (zh) * | 2017-06-20 | 2017-11-10 | 东北电力大学 | 基于四元数时空卷积神经网络的人体行为识别方法 |
-
2018
- 2018-07-10 CN CN201810748292.5A patent/CN109086802B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714336A (zh) * | 2012-10-08 | 2014-04-09 | 陈建成 | 基于八元数和回声状态网络的织物图像边缘检测方法 |
CN107341452A (zh) * | 2017-06-20 | 2017-11-10 | 东北电力大学 | 基于四元数时空卷积神经网络的人体行为识别方法 |
Non-Patent Citations (3)
Title |
---|
帅建伟,陈振湘,刘瑞堂,吴伯僖: "2~n元数神经网络模型;多值图象的识别应用", 《厦门大学学报(自然科学版)》 * |
帅建伟,陈振湘,刘瑞堂,吴伯僖: "八元数神经网络模型:256色图像的识别", 《光学学报》 * |
帅建伟,陈振湘,刘瑞堂,吴伯僖: "四元数神经网络模型:彩色图象的识别", 《计算机学报》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871829A (zh) * | 2019-03-15 | 2019-06-11 | 北京行易道科技有限公司 | 一种基于深度学习的检测模型训练方法和装置 |
CN110443227A (zh) * | 2019-08-19 | 2019-11-12 | 重庆大学 | 一种基于学习超像素和qcnn的极化sar地物识别方法 |
CN110533683A (zh) * | 2019-08-30 | 2019-12-03 | 东南大学 | 一种融合传统特征与深度特征的影像组学分析方法 |
CN110533683B (zh) * | 2019-08-30 | 2022-04-29 | 东南大学 | 一种融合传统特征与深度特征的影像组学分析方法 |
CN110728324B (zh) * | 2019-10-12 | 2022-03-04 | 西安电子科技大学 | 基于深度复值全卷积神经网络的极化sar图像分类方法 |
CN110728324A (zh) * | 2019-10-12 | 2020-01-24 | 西安电子科技大学 | 基于深度复值全卷积神经网络的极化sar图像分类方法 |
CN111681298A (zh) * | 2020-06-08 | 2020-09-18 | 南开大学 | 一种基于多特征残差网络的压缩感知图像重建方法 |
WO2022021673A1 (zh) * | 2020-07-31 | 2022-02-03 | 中国原子能科学研究院 | 一种稀疏矩阵向量乘运算时间预测方法及系统 |
CN112861813A (zh) * | 2021-03-29 | 2021-05-28 | 电子科技大学 | 基于复值卷积神经网络的墙后人体行为识别方法 |
CN112861813B (zh) * | 2021-03-29 | 2022-07-22 | 电子科技大学 | 基于复值卷积神经网络的墙后人体行为识别方法 |
CN113191941A (zh) * | 2021-04-21 | 2021-07-30 | 齐鲁工业大学 | 一种基于八元数连续正交矩的彩色立体图像重构方法 |
CN113269121A (zh) * | 2021-06-08 | 2021-08-17 | 兰州大学 | 一种基于融合cnn模型的渔船捕捞状态识别方法 |
CN114120406A (zh) * | 2021-11-22 | 2022-03-01 | 四川轻化工大学 | 基于卷积神经网络的人脸特征提取分类方法 |
CN114120406B (zh) * | 2021-11-22 | 2024-06-07 | 四川轻化工大学 | 基于卷积神经网络的人脸特征提取分类方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109086802B (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109086802A (zh) | 一种基于八元数卷积神经网络的图像分类方法 | |
Gao et al. | Global second-order pooling convolutional networks | |
Wen et al. | Deep predictive coding network for object recognition | |
Chien et al. | Tensor-factorized neural networks | |
Zhou et al. | Stacked extreme learning machines | |
CN105512723B (zh) | 一种用于稀疏连接的人工神经网络计算装置和方法 | |
Liang et al. | Recurrent convolutional neural network for object recognition | |
CN109829541A (zh) | 基于学习自动机的深度神经网络增量式训练方法及系统 | |
CN107609638A (zh) | 一种基于线性解码器和插值采样优化卷积神经网络的方法 | |
Zheng et al. | Rethinking the Role of Activation Functions in Deep Convolutional Neural Networks for Image Classification. | |
Zambrano et al. | Efficient computation in adaptive artificial spiking neural networks | |
CN106909938A (zh) | 基于深度学习网络的视角无关性行为识别方法 | |
CN112270345A (zh) | 基于自监督字典学习的聚类算法 | |
Díaz et al. | Deep neural networks for wind energy prediction | |
CN113379655A (zh) | 一种基于动态自注意力生成对抗网络的图像合成方法 | |
Gao et al. | Natural scene recognition based on convolutional neural networks and deep Boltzmannn machines | |
Qian | Exploration of machine algorithms based on deep learning model and feature extraction | |
CN104036242A (zh) | 基于Centering Trick卷积限制玻尔兹曼机的物体识别方法 | |
Wu et al. | Directly connected convolutional neural networks | |
Shi et al. | Sparse CapsNet with explicit regularizer | |
CN114445607A (zh) | 存算一体低功耗一体化图像识别系统及方法 | |
Chauhan et al. | Empirical Study on convergence of Capsule Networks with various hyperparameters | |
Hu et al. | The principle and application of deep learning algorithm | |
Wirayasa et al. | Comparison of Convolutional Neural Networks Model Using Different Optimizers for Image Classification | |
Rice et al. | Scaling analysis of a neocortex inspired cognitive model on the Cray XD1 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |