一种计算机智能识别的深层神经网络结构设计方法与流程

文档序号:17454712发布日期:2019-04-20 03:08阅读:232来源:国知局
一种计算机智能识别的深层神经网络结构设计方法与流程

本发明属于机器学习中的深度学习部分。具体内容是应用在计算机视觉和语音识别领域中深层神经网络的结构设计方法。



背景技术:

深度学习是机器学习领域一个新的研究方向,近年来在语音识别、计算机视觉等多类应用中取得突破性的进展。其动机在于建立模型模拟人类大脑的神经连接结构,在处理图像、声音和文本这些信号时,通过多个变换阶段分层对数据特征进行描述,进而给出数据的解释。深度学习之所以被称为“深度”,是相对支持向量机(supportvector machine,SVM)、提升方法(boosting)、最大熵方法等“浅层学习”方法而言的,深度学习所学到的模型中,非线性操作的层级数更多。浅层学习依靠人工经验抽取样本特征,网络模型学习后获得的是没有层次结构的单层特征;而深度学习通过对原始信号进行逐层特征变换,将样本在原空间的特征表示变换到新的特征空间,自动地学习得到层次化的特征表示,从而更有利于分类或特征的可视化。

深度学习可以完成需要高度抽象特征的人工智能任务,如语音识别、图像识别和检索、自然语言理解等。深层模型是包含多个隐含层的人工神经网络,多层非线性结构使其具备强大的特征表达能力和对复杂任务建模能力。训练深层模型是长期以来的难题,近年来以层次化、逐层初始化为代表的一系列方法的提出给训练深层模型带来了希望,并在多个应用领域获得了成功。深度学习是目前最接近人脑的智能学习方法,深度学习引爆的这场革命,将人工智能带上了一个新的台阶,将对一大批产品和服务产生深远影响。深度学习尝试解决人工智能中抽象认知的难题,从理论分析和应用方面都获得了很大的成功。

计算机视觉和语音识别领域中深层神经网络的结构设计一个非常重要并且一直未能得到很好解决的问题。现有应用在计算机视觉和语音识别中的深层神经网络结构一般由实验者经验和实验结果衡量,实验结果难以估计,需要不断地通过实验来验证,浪费了大量的时间和资源。这样设计的深层神经网络结构有很大的随机性和盲目性,为网络模型的构建造成很大的困难,结构不同对实验结果的影响也很难预测。可以说,目前在计算机视觉和语音识别中的深层神经网络模型还没有一个统一且准确的确定结构的方法,这就使得深层神经网络模型只对特定的图片和语音数据集以及特定的环境有很好的学习能力,但是这样的网络模型并不能很好的推广到所有情况。

目前,深度学习中应用在计算机视觉和语音识别领域的主要深层神经网络模型有:

1.自动编码器(AutoEncoder,AE),主要利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统。如果给定一个神经网络,假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重。自然地,就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征。自动编码器就是一种尽可能复现输入信号的神经网络。为了实现这种复现,自动编码器就必须捕捉可以代表输入数据的最重要的因素。

2.深信度神经网络(Deep BeliefNetworks,DBNs),DBNs是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和P(Label|Observation)都做了评估。DBNs由多个限制玻尔兹曼机(Restricted Boltzmann Machines)层组成。这些网络被“限制”为一个可视层和一个隐层,层间存在连接,但层内的单元间不存在连接。隐含层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。

3.卷积神经网络(Convolutional Neural Networks,CNN),卷积神经网络是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点。它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。



技术实现要素:

本发明属于机器学习中的深度学习部分。具体内容是应用在计算机视觉和语音识别领域中深层神经网络的结构设计方法。

针对上述所说的在计算机视觉和语音识别领域中深层神经网络结构设计的缺陷和不足,本发明提出了一种基于主成分分析算法设计深层神经网络结构的方法。该方法可以有效的避免网络模型构建过程中隐含层神经元个数确定的盲目性,同时主成分分析算法保证了数据在深层网络的不同隐含层中最大程度的保留原有分布,最大程度的反映数据内部结构。通过主成分分析后数据的保留维度确定深层神经网络中隐含层神经元的个数,大大减少深层神经网络中的训练参数,避免维数“爆炸”,提高深层神经网络的训练速度和学习能力,为设计深层神经网络的结构提供理论依据,为计算机视觉和语音识别的后续研究奠定重要基础。

主成分分析是一种能够极大提升无监督特征学习速度的数据降维算法。对于图像而言,由于相邻像素间的相关性,主成分分析算法可以将输入矩阵转换为一个维数低很多的近似矩阵,而且误差非常小。这就使得可以使用更少的数据表示同一个事物,降低数据维度。同时可以最大限度的保留原有数据的内部结构和分布。

深度学习的基本思想就是假设有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为:I=>S1=>S2=>…..=>Sn=>O,如果输出O等于输入I,即输入I经过这个系统变化之后保持不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。所以在深层神经网络中,通过调整系统中参数,使得它的输出O仍然是输入I,那么就可以自动地获取得到输入I的一系列层次特征,即S1,…,Sn。通过这种方式,就可以实现对输入信息进行分级表达了。

所以,对图片和语音数据多次进行主成分分析的思想和深度学习的思想在一定程度上是吻合的,每次对数据进行主成分分析后得到的新的矩阵和深层神经网络中每层神经元都是对输入数据的不同表示形式,两者有很大的相似性。本发明正是基于此原理提出了一种应用在计算机视觉和语音识别领域中深层神经网络的结构设计方法。

此方法的特征在于包括以下步骤:

步骤1,人工选定计算机智能识别的深层神经网络初始层数L为4,即包括输入层、第一个隐含层、第二个隐含层和输出层,所述智能识别包括计算机视觉识别和语音识别;

步骤2,计算机视觉识别的图片或计算机语音识别的语音作为训练样本集,将训练样本集转化为矩阵的形式即Y0={Y01,Y02,...,Y0p},其中Y01,Y02,...,Y0p分别代表一个样本,共p个样本,p取正整数,每个样本维数为d;

步骤3,定义输入层神经元个数为训练样本的维数d;

步骤4,如果训练样本集是图片且取值范围在(0,255)之间,需要将训练样本进行归一化操作,否则直接进行下一步操作;如果训练样本集是语音,则直接进行下一步操作;

步骤5,训练样本集Y0为第一个隐含层的输入矩阵,通过对输入矩阵Y0做主成分分析确定第一个隐含层神经元的个数HN1,主成分分析算法的具体计算过程如下:

S5.1输入矩阵表示为Yi={Yi1,Yi2,...,Yip}(0≤i≤L-1),其中Yi代表不同隐含层的输入矩阵,

Yi的维数为变量n;

S5.2输入矩阵去均值化:

其中

S5.3计算输入矩阵Yi的协方差矩阵:

其中Yi={Yi1,Yi2,...,Yip},Yik∈Yi,T为矩阵的转置操作;

S5.4计算Yi的协方差矩阵的特征根和特征向量:

求得特征根λi1,λi2,...,λin及相应的单位化特征向量ξi1,ξi2,...,ξin;

S5.5根据各个特征根(主成分)累计贡献率的大小选取前m个最大特征根,这里贡献率就是指某个特征根占全部特征根合计的比重,即

λij代表矩阵Yi的协方差矩阵求得的各个特征根,贡献率越大说明该主成分所包含的原始数据的信息越强,一般要求累计贡献率达到85%——100%以保证原始数据的绝大多数信息,选择的m个最大特征根对应的单位化特征向量ξi1,ξi2,...,ξim生成投影矩阵:

Mi=(ξi1,ξi2,...,ξim)T,Mi∈Rm×n,其中ξi1,ξi2,...,ξim代表Yi的协方差矩阵的前m个最大特征向量;

S5.6对输入矩阵Yi进行投影得到降维后的矩阵Yi*,矩阵的维数m即为第(i+1)层隐含层神经元的个数HNi+1=m:

Yi*=Mi×Yi;

步骤6,降维后的矩阵经过非线性变换函数f作用产生第一层隐含层的输出矩阵Y1,f为sigmoid函数或tanh函数或ReLu函数:

步骤7,第二个隐含层输入矩阵即为第一个隐含层的输出矩阵Y1,通过对输入矩阵Y1做主成分分析(步骤S5.1至S5.6)确定第二个隐含层神经元的个数HN2;

步骤8,输出层神经元的个数为标记类的个数;

步骤9,利用图像或语音的训练数据对深层神经网络进行训练,对网络结构进行测评;

步骤10,如果测评结果不理想,可以调整深层神经网络的层数L=L+1,(4≤L≤1000),增加一层隐含层,第i层降维后的矩阵Yi*经过非线性变换函数f作用产生第(i+1)层隐含层的输入矩阵Yi+1,公式表达为Yi+1=f(Yi*),(2≤i≤L-2),通过对输入矩阵Yi+1做主成分分析(步骤S5.1至S5.6)即可确定第(i+1)层隐含层神经元的个数HNi;

步骤11,重复步骤9和10,不断调整网络层数并训练深层网络,直到取得良好的实验效果,确定深层神经网络的结构为输入层、第一个隐含层、第二个隐含层...、第(L-2)个隐含层、输出层。

本发明与现有技术相比,具有以下明显优势和有益效果:

本发明在设计应用在计算机视觉和语音识别领域中深层神经网络的结构上提出了新的思路和解决方法。目前相关的深层神经网络结构往往由实验者的经验和技巧确定,具有一定的盲目性,需要大量的事实实验支撑。而本发明恰恰解决了此类深层神经网络模型中结构确定的困难,弥补了其随机性、盲目性和不稳定性的缺陷。利用多层主成分分析后数据的保留维度逐层确定隐含层神经元的个数,为设计深层神经网络的结构提供一定理论依据,大大提高了应用在计算机视觉和语音识别领域中深层神经网络的训练速度和学习能力,挖掘不同图片或语音数据内部的结构和分布,为计算机视觉和语音识别的发展奠定基础。

附图说明

图1为本发明的流程图。

图2为主成分算法流程图。

图3为MNIST手写字降维具体过程。

图4为3次主成分分析的训练集错误率。

图5为3次主成分分析的测试集错误率。

图6为4次主成分分析的训练集错误率。

图7为4次主成分分析的测试集错误率。

图8为5次主成分分析的训练集错误率。

图9为5次主成分分析的测试集错误率。

图10为6次主成分分析的训练集错误率。

图11为6次主成分分析的测试集错误率。

具体实施方式

下面结合附图及具体实施案例对本发明作进一步的描述。

应用在计算机视觉和语音识别领域中深层神经网络的结构设计方法流程图。如图1所示。其特征在于包括以下步骤:

步骤1,人工选定计算机智能识别的深层神经网络初始层数L为4,即包括输入层、第一个隐含层、第二个隐含层和输出层,所述智能识别包括计算机视觉识别和语音识别;

步骤2,计算机视觉识别的图片或计算机语音识别的语音作为训练样本集,将训练样本集转化为矩阵的形式即Y0={Y01,Y02,...,Y0p},其中Y01,Y02,...,Y0p分别代表一个样本,共p个样本,p取正整数,每个样本维数为d;

步骤3,定义输入层神经元个数为训练样本的维数d;

步骤4,如果训练样本集是图片且取值范围在(0,255)之间,需要将训练样本进行归一化操作,否则直接进行下一步操作;如果训练样本集是语音,则直接进行下一步操作;

步骤5,训练样本集Y0为第一个隐含层的输入矩阵,通过对输入矩阵Y0做主成分分析确定第一个隐含层神经元的个数HN1,主成分分析算法的具体计算过程如下:

S5.1输入矩阵表示为Yi={Yi1,Yi2,...,Yip}(0≤i≤L-1),Yi的维数为变量n;

S5.2输入矩阵去均值化:

其中

S5.3计算输入矩阵Yi的协方差矩阵:

其中Yi={Yi1,Yi2,...,Yip},T为矩阵的转置操作;

S5.4计算Yi的协方差矩阵的特征根和特征向量:

求得特征根λi1,λi2,...,λin及相应的单位化特征向量ξi1,ξi2,...,ξin;

S5.5根据各个特征根(主成分)累计贡献率的大小选取前m个最大特征根,这里贡献率就是指某个特征根占全部特征根合计的比重,即

λij代表矩阵Yi的协方差矩阵求得的各个特征根,贡献率越大说明该主成分所包含的原始数据的信息越强,一般要求累计贡献率达到85%——100%以保证原始数据的绝大多数信息,选择的m个最大特征根对应的单位化特征向量ξi1,ξi2,...,ξim生成投影矩阵:

Mi=(ξi1,ξi2,...,ξim)T,Mi∈Rm×n,其中ξi1,ξi2,...,ξim代表Yi的协方差矩阵的前m个最大特征向量;

S5.6对输入矩阵Yi进行投影得到降维后的矩阵Yi*,矩阵的维数m即为第(i+1)层隐含层神经元的个数HNi+1=m:

Yi*=Mi×Yi;

步骤6,降维后的矩阵经过非线性变换函数f作用产生第一层隐含层的输出矩阵Y1,f为sigmoid函数或tanh函数或ReLu函数:

步骤7,第二个隐含层输入矩阵即为第一个隐含层的输出矩阵Y1,通过对输入矩阵Y1做主成分分析(步骤S5.1至S5.6)确定第二个隐含层神经元的个数HN2;

步骤8,输出层神经元的个数为标记类的个数;

步骤9,利用图像或语音的训练数据对深层神经网络进行训练,对网络结构进行测评;

步骤10,如果测评结果不理想,可以调整深层神经网络的层数L=L+1,(4≤L≤1000),增加一层隐含层,第i层降维后的矩阵Yi*经过非线性变换函数f作用产生第(i+1)层隐含层的输入矩阵Yi+1,公式表达为Yi+1=f(Yi*),(2≤i≤L-2),通过对输入矩阵Yi+1做主成分分析(步骤S5.1至S5.6)即可确定第(i+1)层隐含层神经元的个数HNi;

步骤11,重复步骤9和10,不断调整网络层数并训练深层网络,直到取得良好的实验效果,确定深层神经网络的结构为输入层、第一个隐含层、第二个隐含层...、第(L-2)个隐含层、输出层。

下面给出一个应用本发明设计MNIST手写字识别的深层神经网络结构的实例。

实例采用的数据集是MNIST手写字,是由Google实验室的Corinna Cortes和纽约大学柯朗研究所的Yann LeCun所建,在深度学习中已有广泛的应用,被众多深度学习学者认可。其中训练数据集有60000张,测试训练集有10000张,原始手写字图片的维度为28*28,展开成一个行向量为784维。训练数据集和测试数据集的存储结构为60000*784和10000*784。

MNIST手写字共分为10类,分别是数字0、1、2、3、4、5、6、7、8、9。数据库详细信息如表1所示。

表1 MNIST手写字详细信息

本实例选用的深层神经网络模型为自动编码器,对MNIST手写字进行识别。实验过程以及结果分析如下。

MNIST手写字通过主成分分析算法进行多次降维,上一层降维后的矩阵通过非线性函数作用产生的输出矩阵作为下一层主成分分析算法的输入矩阵,这里非线性函数选sigmoid函数,从而确定各隐含层神经元的个数,降维的具体过程如附图中图3所示。

实验结果如下表2所示。

表2 MNIST手写字进行主成分分析以及非线性变换降维实验结果

根据不同次数的主成分算法设计不同结构的深层神经网络,对MNIST手写字进行识别。每次得到的降维后的数据维度依次作为每个隐含层神经元个数,网络的层与层之间进行全连接,层内神经元之间无连接。MNIST手写字输入到不同层数的深层神经网络中得到的实验结果如下表3所示。

表3深层神经网络中MNIST手写字识别结果

为了更形象的表示实验结果,对不同结构的神经网络的实验结果以折线图表示如下。

3次主成分分析设计深层神经网络的结构为784-388-352-325-10,识别错误率如图4-5所示(横轴代表迭代次数,纵轴代表识别错误的个数):

4次主成分分析设计深层神经网络的结构为784-388-352-325-302-10,识别错误率如图6-7所示(横轴代表迭代次数,纵轴代表识别错误的个数):

5次主成分分析设计深层神经网络的结构为784-388-352-325-302-282-10,识别错误率如图8-9所示(横轴代表迭代次数,纵轴代表识别错误的个数):

6次主成分分析设计深层神经网络的结构为784-388-352-325-302-282-264-10,识别错误率如图10-11所示(横轴代表迭代次数,纵轴代表识别错误的个数):

从以上实验结果中可以看出,由多层主成分分析后各层保留的数据维度构建深层神经网络,对于MNIST数据库的识别效果普遍优于其他的深层神经网络。从上图可以看出依据数据维度确定神经网络结构可以明显的提高网络的学习能力,并且需要非常少的迭代次数就能使网络训练结果收敛,相对于传统的自动编码器对MNIST手写字识别的训练速度大大提高,网络层数为6层,网络结构为784-388-352-325-302-10是识别正确率高达98.91%,充分证明了该方法的有效性以及优越性。由层级主成分分析设计深层神经网络结构避免了传统关于图片和语音的深层神经网络结构设计的随机性、盲目性和不稳定性,减少训练参数的同时降低了依据经验和大量实验构建深层神经网络带来的时间成本和资源成本。为应用在计算机视觉和语音识别领域的网络模型的构建提供了一定的理论依据,

以上实施例仅用以说明本发明,而并非限制本发明所描述的技术方案。因此,一切不脱离本发明的精神和范围的技术方案及其改进,均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1