一种基于群集递归神经网络的图像分类方法转让专利

申请号 : CN201910638362.6

文献号 : CN110543888B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 程振波沈正圆张雷雷林怀迪高晶莹

申请人 : 浙江工业大学

摘要 :

一种基于群集递归神经网络的图像分类方法,包括将待识别数据集按照标签分为训练集与测试集,预处理后形成输入向量,构建一个基于神经元簇的群集递归神经网络用于形成具有稀疏表达的特征向量,利用基于奖励信号调制的算法调整递归层与输出层之间的权重,从而形成成熟的分类器,利用该分类器完成对图像的分类。本发明的网络结构和学习方法具有构造简单,分类结果好,分类方法具备一定的通用性,且易于由硬件实现的特点。

权利要求 :

1.一种基于群集递归神经网络的图像分类方法,具体包括以下步骤:步骤1.将待识别图像预处理后形成输入向量;

步骤2.基于神经元簇群集递归神经网络的图像特征提取方法;构建具有神经元簇的高维递归层,神经元簇内按胜者独享的方式完成特征提取;包括以下步骤:

2.1.将待识别图像预处理后的输入向量作为网络的输入,记为包含m个神经元的一维列向量I=[I1,I2,…,Im]T;

2.2.构建包含n个神经元的递归层M,并形成神经元簇;将所有神经元随机划分成k个大小相同的簇,即每簇包含n/k个神经元,将神经元簇记为Clusteri,i=1,2,…,k;神经元簇间的神经元相互没有连接,而神经元簇内的神经元彼此相互连接;

2.3.确定输入层与递归层M之间的连接矩阵W;输入神经元与递归神经元以概率p=0.1相连,即它们之间的连接有90%的概率取值为0,而非0值则按照均值为0,方差为1的标准高斯分布随机赋值;

2.4神经元簇内各个神经元的活性计算;簇内的神经元根据其输入值的大小来决定该神经元是否发放,簇内神经元输入值最大的神经元将被激活,而簇内其它神经元都将处于静息状态;激活状态的神经元其输出取值为1,而静息状态神经元其输出取值为0;递归层M中各个神经元的输入值Y为:Y=WI

                                    (1)步骤3.基于奖励信号学习将图像特征映射为图像类别,从而形成成熟分类器;包括以下步骤:

3.1定义表示类别的输出层;如果处理的图像共有l个不同的类别,则输出层有l个神经元,其输出表示为Z=[z1,z2,…,zl]T;递归层M到输出层之间的连接矩阵H,矩阵内每一元素按[0,1]之间的均匀分布随机赋值;由此,输出为:Z=HY

                                    (2)输出层中只有一个神经元具备活性,该神经元对应于一个具体的类别;

为了计算输出层各个神经元的输出值,先将输出层列向量Z中各个元素进行如下计算:从而得到列向量P=[p1,p2,…,pl]T,再取P中最大值的索引得到K=argmax(P),K即为输入图像的类别编号;

3.2基于奖励信号调制递归层M到输出层之间的连接矩阵H,完成特征到类别的学习,包括以下步骤:

3.2.1.根据类别标签T,T∈[1,l],与神经网络的预测结果K,计算奖励值R,即:

3.2.2.根据步骤3.1)中计算得到的列向量P对输出层与递归层之间的连接矩阵H调整权重:Ht[K,:]=Ht-1[K,:]+η*(R-P)*MT                                     (5)其中η为学习率,MT为递归层列向量的转置,t为迭代次数;Ht[K,:]表示递归层和输出层之间的连接矩阵H在t次迭代时的第K行向量;

3.2.3.连接矩阵H归一化;若矩阵中元素值大于阈值c,则认为该连接存在应赋值为1,否则应认为该连接不存在应赋值为0;由此得到更新后的连接矩阵H:

3.2.4以上步骤直到迭代次数到达预设的目标则停止,存储网络的连接矩阵,形成成熟的分类器;

步骤4.基于成熟分类器实现对图像的分类;

4.1分类图像按照步骤1相同的预处理,并形成输入向量;

4.2按公式(1)将提取输入向量的特征;采用递归的群集神经网络提取特征不仅完成了特征从低维度向高维度的映射,且由于递归网络中胜者独享的活性计算方式使得特征具备稀疏性;

4.3按公式(2)计算特征向量的输出值,式(2)中将采用如步骤3.2.3所述的形成成熟分类器后存储的连接矩阵H;

4.4按照公式(3)得到图像的分类结果。

2.如权利要求1所述的基于群集递归神经网络的图像分类方法,其特征在于:所述的递归神经网络其簇内获胜的神经元按照其活性根据概率来进行确定。

说明书 :

一种基于群集递归神经网络的图像分类方法

技术领域

[0001] 本发明提出一种基于群集递归神经网络的图像分类方法。技术背景
[0002] 人工智能领域的许多问题最终需要进行分类计算,最典型的就是图像识别。传统的分类方法有支持向量机和决策树等。这些方法都可以看作是监督学习,即通过输入数据及其对应的标签,利用求解给定的优化目标函数来寻找最佳分类面。此外,深度神经网络也可用于实现数据分类。深度神经网络往往会通过设定优化目标函数,利用误差反向传播方法来调整深度神经网络的参数,以达到利用该网络进行分类的目的。然而,误差反向传播方法需要计算复杂的函数梯度,并将误差的梯度值逐层传递,这一计算的复杂性导致很难在生物大脑中实现误差反向传播方法。因此,支持向量机和深度神经网络等这类通过监督学习来实现分类的方法被认为不具备生理学意义下的可行性,也就是说生物大脑可能采用了不同于监督学习的方法来实现分类计算。
[0003] 一类通过奖励信号来实现分类的强化学习方法,被认为更具有生理学意义下的可行性,其主要的原因包括以下两个方面。第一个原因是强化学习不需要分类结果(数据对应的标签),而只需要分类结果是正确或者错误的反馈信号(以下简称奖励)。第二个原因是神经生理学的实验结果表明,奖励信号与中脑多巴胺神经元密切相关。尽管强化学习已经能成功的用于解决诸如围棋等复杂的决策任务,然而这类强化学习方法往往只专注于解决具体的工程问题,而忽略来其生理学意义下的可行性。

发明内容

[0004] 本发明根据神经科学的最新研究成果,提出一个群集递归神经网络及应用奖励信号调制神经网络突触以实现图像分类的方法。该群集递归神经网络的结构包括若干簇,每一个簇由彼此递归联结的神经元构成,簇内神经元按胜者独享的方式进行计算。此外,通过基于奖励信号调制突触的学习方法来组合不同簇之间神经元的表达方式,从而实现图像的分类计算。网络结构和学习方法不仅具备计算和实现简单的特点,还具备生理学意义下的可行性。通过在手写数字识别数据集对该方法的测试结果表明,该分类方法具备一定的通用性,且易于由硬件实现的特点。
[0005] 本发明通过构建基于神经元簇的群集递归神经网络,将低维度的图像数据映射到高维的空间中,在高维空间经由胜者独享的方式来提取图像特征,并通过奖励信号学习图像特征到图像类别的映射从而实现识别的功能。
[0006] 本发明解决其技术问题采用的技术方案是:
[0007] 一种基于群集递归神经网络的图像分类方法,具体包括以下步骤:
[0008] 1.将待识别图像预处理后形成输入向量。
[0009] 2.一种基于神经元簇群集递归神经网络的图像特征提取方法。其特点在于构建具有神经元簇的高维递归层,神经元簇内按胜者独享的方式完成特征提取。包括以下步骤:
[0010] 2.1.将待识别图像预处理后的输入向量作为网络的输入,记为包含m个神经元的一维列向量I=[I1,I2,...,Im]T。
[0011] 2.2.构建包含n个神经元的递归层M,并形成神经元蔟。将所有神经元随机划分成k个大小相同的簇,即每簇包含n/k个神经元,将神经元簇记为Clusteri,i=1,2,...,k。神经元簇间的神经元相互没有连接,而神经元簇内的神经元彼此相互连接。
[0012] 2.3.确定输入层与递归层M之间的连接矩阵W。输入神经元与递归神经元以概率p=0.1相连,即它们之间的连接有90%的概率取值为0,而非0值则按照标准高斯分布(均值为0,方差为1)随机赋值。
[0013] 2.4神经元蔟内各个神经元的活性计算。簇内的神经元根据其输入值的大小来决定该神经元是否发放,簇内神经元输入值最大的神经元将被激活,而簇内其它神经元都将处于静息状态。激活状态的神经元其输出取值为1,而静息状态神经元其输出取值为0。递归层M中各个神经元的输入值Y为:
[0014] Y=WI
[0015]                                 (1)
[0016] 3.基于奖励信号学习将图像特征映射为图像类别,从而形成成熟分类器。包括以下步骤:
[0017] 3.1定义表示类别的输出层。如果处理的图像共有l个不同的类别,则输出层有l个神经元,其输出表示为Z=[z1,z2,…,zl]T。递归层M到输出层之间的连接矩阵H,矩阵内每一元素按[0,1]之间的均匀分布随机赋值。由此,输出为:
[0018] Z=HY
[0019]                                   (2)
[0020] 输出层中只有一个神经元具备活性,该神经元对应于一个具体的类别。为了计算输出层各个神经元的输出值,先将输出层列向量Z中各个元素进行如下计算:
[0021]
[0022] 从而得到列向量P=[p1,p2,...,pl]T,再取P中最大值的索引得到K=argmax(P),K即为输入图像的类别编号。
[0023] 3.2基于奖励信号调制递归层M到输出层之间的连接矩阵H,完成特征到类别的学习,包括以下步骤:
[0024] 3.2.1.根据类别标签T(如果有l类,则T∈[1,l])与神经网络的预测结果K,计算奖励值R,即:
[0025]
[0026] 3.2.2.根据步骤3.1)中计算得到的列向量P对输出层与递归层之间的连接矩阵H调整权重:
[0027] Ht[K,:]=Ht-1[K,:]+η*(R-P)*MT
[0028]                                             (5)
[0029] 其中η为学习率,MT为递归层列向量的转置,t为迭代次数。Ht[K,:]表示递归层和输出层之间的连接矩阵H在t次迭代时的第K行向量。
[0030] 3.2.3.连接矩阵H归一化。若矩阵中元素值大于阈值c,则认为该连接存在应赋值为1,否则应认为该连接不存在应赋值为0。由此得到更新后的连接矩阵H:
[0031]
[0032] 3.2.4以上步骤直到迭代次数到达预设的目标则停止,存储网络的连接矩阵,形成成熟的分类器。
[0033] 4.基于成熟分类器实现对图像的分类。
[0034] 4.1分类图像按照步骤1相同的预处理,并形成输入向量。
[0035] 4.2按公式(1)将提取输入向量的特征。采用递归的群集神经网络提取特征不仅完成了特征从低维度向高维度的映射,且由于递归网络中胜者独享的活性计算方式使得特征具备稀疏性。
[0036] 4.3按公式(2)计算特征向量的输出值,式(2)中将采用如步骤3.2.3所诉的形成成熟分类器后存储的连接矩阵H。
[0037] 4.4按照公式(3)得到图像的分类结果。
[0038] 本发明提出一种群集递归神经网络的图像特征提取,再通过奖励信号学习图像特征到图像类别的映射从而形成成熟分类器,并利用该分类器完成图像分类的方法。本发明的主要步骤包括:将待识别图像预处理后形成输入向量;基于神经元簇群集递归神经网络提取图像特征;基于奖励信号学习将图像特征映射为图像类别,从而形成成熟分类器;。基于成熟分类器实现对图像的分类。
[0039] 本发明的优点是:网络结构和学习方法具有构造简单,分类结果好,分类方法具备一定的通用性,且易于由硬件实现的特点。

附图说明

[0040] 图1是本发明的基于神经元簇的群集递归神经网络结构示意图;
[0041] 图2是本发明的基于群集递归神经网络的成熟分类器训练过程流程图。

具体实施方式

[0042] 本发明基于神经元簇的分类方法可应用于一般的分类任务,包括但不限于图像分类、文字分类和视频数据分类等。以下由特定的具体实施例说明本发明的实施方式,具备该技术的人士可按本说明书复现本发明所提出的方法。以手写数字识别为例,结合附图对本发明作进一步描述。
[0043] 本发明的一种基于群集递归神经网络的图像分类方法,具体包括:
[0044] 1.将待识别图像预处理后形成输入向量。
[0045] 1.1初始化神经网络参数(图2标号1)。配置超参数,模型调优后具体数值设置如下表所示。
[0046]
[0047]
[0048] 1.2图像数据的预处理,如图2标号2所示的操作。将输入的图片数据最终转化为一维特征向量。
[0049] 1.2.1.在本例中将手写识别数字数据集MNIST从二进制格式转换成PNG格式的图片。将它们按照训练集或测试集进行划分,并且根据相应的数字标签进行分类放入对应的文件夹中备用。将每张图片处理成灰度图,最后转化成二维矩阵,矩阵的形状为28×28。
[0050] 1.2.2.使用Gabor滤波器对二维图片矩阵进行特征提取。将输入矩阵缩放成8个不同大小的矩阵,代表8张缩放比例的图片。将相邻缩放比例的两张图片编成一组,最终生成4组。本发明一共采用了8个方向的Gabor滤波器进行滤波操作(θ=0°,45°,90°,135°,180°,225°,270°和315°)。σ为整个滤波器的带宽,λ为波长,γ为空间纵横比,他们的具体取值在步骤1初始化神经网络参数时已经设定好。使用滤波操作,将输入28×28维的图片转化为S1层特征矩阵。滤波器的构筑公式如下:
[0051]
[0052] x0=x cosθ+y sinθ
[0053]                                         (8)
[0054] y0=-x sinθ+y cosθ
[0055]                                         (9)
[0056] 1.2.3.对步骤1.2.2中S1层输出的每组中滤波器相同方向矩阵做最大池化操作,形成C1层特征矩阵。
[0057] 1.2.4.对步骤1.2.3中C1层输出的所有矩阵进行维度挤压操作,形成一个2560×1维的特征向量。
[0058] 2.基于神经元簇群集递归神经网络的图像特征提取。构建的神经网络结构如图1所示。
[0059] 2.1.将步骤1预处理之后的一维特征向量命名为I=[I1,I2,...,Im]T作为输入层,其中m=2560。
[0060] 2.2.构建递归层M,该层的神经元个数为n=100000。将所有神经元随机划分成k=10000个大小相同的簇,即每簇包含n/k个神经元,将神经元簇记为Clusteri,i=1,2,...,k。神经元簇间的神经元相互没有连接,而神经元簇内的神经元彼此相互连接。
[0061] 2.3.确定输入层与递归层M之间的连接矩阵W。输入神经元与递归神经元以概率p=0.1相连,即它们之间的连接有90%的概率取值为0,而非0值则按照标准高斯分布(均值为0,方差为1)随机赋值。
[0062] 2.4神经元蔟内各个神经元的活性计算。簇内的神经元根据其输入值的大小来决定该神经元是否发放,簇内神经元输入值最大的神经元将被激活,而簇内其它神经元都将处于静息状态。激活状态的神经元其输出取值为1,而静息状态神经元其输出取值为0。递归层M中各个神经元的输入值Y为(图2标号4):
[0063] Y=WI
[0064]                                 (1)
[0065] 3.基于奖励信号学习将图像特征映射为图像类别,从而形成成熟分类器。包括以下步骤:
[0066] 3.1定义表示类别的输出层。图像共有l=10个不同的类别(即0到9共10个数字),输出层有10个神经元,其输出表示为Z=[z1,z2,…,zl]T。递归层M到输出层之间的连接矩阵H,矩阵内每一元素按[0,1]之间的均匀分布随机赋值。由此,输出为:
[0067] Z=HY
[0068]                                  (2)
[0069] 输出层中只有一个神经元具备活性,该神经元对应于一个具体的类别。为了计算输出层各个神经元的输出值,先将输出层列向量Z中各个元素进行如下计算:
[0070]
[0071] 从而得到列向量P=[p1,p2,...,pl]T,再取P中最大值的索引得到K=argmax(P),K即为输入图像的类别编号。
[0072] 3.2基于奖励信号调制递归层M到输出层之间的连接矩阵H,完成特征到类别的学习,包括以下步骤:
[0073] 3.2.1.根据类别标签T(如果有l类,则T∈[1,l])与神经网络的预测结果K,计算奖励值R,即:
[0074]
[0075] 3.2.2.根据步骤3.1)中计算得到的列向量P对输出层与递归层之间的连接矩阵H调整权重(图2标号5):
[0076] Ht[K,:]=Ht-1[K,:]+η*(R-P)*MT
[0077]                                            (5)
[0078] 其中η为学习率,MT为递归层列向量的转置,t为迭代次数。Ht[K,:]表示递归层和输出层之间的连接矩阵H在t次迭代时的第K行向量。
[0079] 3.2.3.连接矩阵H归一化。若矩阵中元素值大于阈值c,则认为该连接存在应赋值为1,否则应认为该连接不存在应赋值为0。由此得到更新后的连接矩阵H:
[0080]
[0081] 3.2.4以上步骤直到迭代次数到达预设的目标则停止,并将存储网络的连接矩阵(图2标号6)。
[0082] 4.基于成熟分类器实现对图像的分类。
[0083] 4.1分类图像按照步骤1相同的预处理,并形成输入向量。
[0084] 4.2按公式(1)将提取输入向量的特征。采用递归的群集神经网络提取特征不仅完成了特征从低维度向高维度的映射,且由于递归网络中胜者独享的活性计算方式使得特征具备稀疏性。
[0085] 4.3按公式(2)计算特征向量的输出值,式(2)中将采用如步骤3.2.3所诉的形成成熟分类器后存储的连接矩阵H。
[0086] 4.4按照公式(3)得到图像的分类结果,MNIST数据集上的测试正确率为98.3%。