一种卷积神经网络的加权算法的制作方法

文档序号:11520343阅读:314来源:国知局
一种卷积神经网络的加权算法的制造方法与工艺

本发明属于计算机机器学习领域,特别涉及一种新的卷积神经网络的加权算法。



背景技术:

卷积神经网络(convolutionalneuralnetworks)属于神经网络的范畴,已经在诸如图像识别和分类的领域证明了其高效的能力。与传统的神经网络结构相比,卷积神经网络最显著的两个特点是局部连接和权值共享。局部连接是指每一层的神经元并不与上一层的全部神经元连接,而是只与其最近的上一层神经元相连;权值共享是指每一层所有神经元与前一层神经元的连接权值相等,即某一层某一个神经元与前一层局部连接神经元的权值也适用于该层其他神经元。一个传统的卷积神经网络结构一般分为五层:输入层、卷积层、池化层、全连接层、输出层,蕴含卷积、非线性处理、池化或者亚采样、分类四个主要的操作。其中卷积层是体现局部连接和权值共享的层次。而全连接层部分与传统神经网络结构基本一致,经过多次卷积和池化操作后的数据进入全连接层进行连接并输出结果。

卷积神经网络是受人类视觉原理的启发,对大型图像数据出处理有出色的表现,alexkrizhevsky凭借它们赢得2012的imagenet挑战赛,将分类误差记录从26%降到了15%,在当时震惊了世界。但由于传统的卷积神经网络算法是将二维图像的像素这种类别统一,结构单一的数据以列向量的形式作为输入数据,因而如果遇到较为复杂的多元输入而无法类比像素之间等同地位的情况时,就会遇到一些难以避免的问题。

大数据环境中,获取的数据来源众多,其本身对应的特征、状态、影响因子都有所不同。不同类型的数据之间的关系与图像数据中各像素之间的关系有着本质不同。因此,传统的适用于图像数据处理的卷积神经网络算法并不适用于多元多类的数据处理。除此之外,对于获取的数据,往往并不清楚其对应的空间分布(无论是几何空间还是特征空间),而传统的卷积神经网络算法依赖于输入的训练样本数据来进行预测,这使得预测的结果很大程度在样本数据附近有较好的拟合效果,但若样本数据集中在空间的某一侧而待预测的数据位于另一侧,则其计算的准确性将难以保证。最后,传统的卷积神经网络无论用于图像识别还是分类,其结果的可能情况相对较少,可以事先列举可行解的集合,但更复杂的情况在于如果可行解是一个较大的区间而难以逐一存储时,就需要更有效合理的编码方式。随着互联网大数据的发展,面临的数据情况越发复杂,因此这对传统的卷积神经网络算法提出了更高的要求。



技术实现要素:

为了适应大数据背景下复杂多变的数据环境,避免因数据类型不一,分布不均等带来的结果不可靠问题,同时优化输出解的状态,降低时间上的开销。本发明针对现有技术的不足,提出了一种新的卷积神经网络的加权算法。

本发明所采用的技术方案是:一种卷积神经网络的加权算法,其特征在于,包括以下步骤:

步骤1:获取m×n的样本数据,其中m为样本数目,n-1为输入向量数,第n列为输出向量;

步骤2:结合k均值聚类算法剔除粗差;

步骤3:输入列之间依据相关距离,进行聚类划分;

步骤4:构建神经网络的基本结构;

步骤5:训练神经网络并采用交叉验证法对训练结果;

步骤6:输入规范化后的待评估数据,由已训练好的网络计算其输出,并将输出结果由二进制转为十进制,即为最终所需要的评估结果。

本发明相比于传统的卷积神经网络算法,在层间神经元的局部连接方式中引入了聚类分析以作为其是否连接的判定准则,这使得本发明中网络模型的局部连接方式相比于传统算法中固定大小的均匀连接方式更加符合真实数据的自组织关系。本发明相比于其他神经网络算法,所使用的激活函数结合了周期性激活函数和非周期性激活两种特征,可以更好地在不同神经层中实现所需的局部逼近或全局逼近。本发明相比于其他机器学习领域的数学模型,不需要任何前提假设,只需要获取已知的输入输出数据即可建立映射关系,同时输出结果的二进制编码使得本发明可以用更少的空间表示更大的解算范围。

附图说明

图1是本发明实施例的新型卷积神经网络算法流程图。

图2是本发明实施例的k均值粗差剔除算法流程图。

图3是本发明实施例的基于相关距离的聚类分析算法流程图。

图4是本发明实施例的网络构建流程图。

图5是本发明实施例的交叉验证法评估训练质量流程图。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。

本发明的技术方案在数据多源异构,分布特征不定,输出解状态未知的大数据环境中理论上具有较好的适应性,从而使得卷积神经网络的相关算法能应用于更多更复杂的领域。以下结合boston房价评估示例,描述本发明的具体实施例。

请见图1,本发明提供的一种卷积神经网络的加权算法,包括以下步骤:

步骤1:获取m×n的样本数据,其中m为样本数目,n-1为输入向量数,第n列为输出向量;

获取.csv格式的boston房价数据。此项数据是keras深度学习相关说明文档提供的示例数据,共有14列506行,前13列为影响房价的各项指标的数值化评估结果,第14列为boston地区的房价,单位为千美元。具体数据可访问https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data。

步骤2:结合k均值聚类算法剔除粗差;

实际获取的原始数据需要对其进行清洗,经过粗差剔除后才能作为样本数据,以避免异常值对网络训练过程的干扰。以本实施例所给数据为例,结合k均值聚类算法剔除粗差,请见图2,其具体流程如下:

步骤2.1:将第i行的1~13列数据记为点pi=(x1,x2,…,x13),其维度大小等于13。第14列数据记为yi。对所有行执行step1操作;

步骤2.2:在m=506点pi中随机选取k=10个,作为初始聚类中心,剩余各点依次计算与k个点的欧式距离纳入最小距离对应的类别。

步骤2.3:划分结束后,将该类别中所有点的均值作为新的聚类中心,比较新旧聚类中心是否有变化。若无,执行step4。若有,转入step2,以新的的聚类中心重新进行划分。

步骤2.4:完成聚类后,位于同一类别中的各点pi可视为具有相似的房产指标评估信息,因此其对应房价yi也应基本处在同一水平。计算同一类别中各点对应的yi均值及标准差σy,删除该类中不位于区间内的数据。

步骤3:输入列之间依据相关距离,进行聚类划分;

对所给的13项评估指标,以相关距离作为划分依据,进行聚类分析。请见图3,其具体流程如下:

步骤3.1:将每列数据记为向量vi(506×1),纳入初始集合p=(v1,v2,…,v13)

步骤3.2:计算集合p中各向量的相关系数ρij,并在此基础上计算各向量的相关距离dij=1-|ρij|。选择相关距离最小的两组向量va,vb纳入第一个新生成类别q1,并更新初始集合p,将va,vb从中剔除。

步骤3.3:计算更新后集合p中各向量的相关系数ρ′ij和相关距离d′ij,选择相关距离最小的两组向量v′a,v′b。并计算p中各向量与已有的集合类别qj的复相关系数和复相关距离选出复相关距离最小的向量v′c。若满足则将v′c纳入对应类别qj,而v′a,v′b仍保留在集合p中;反之,则将v′a,v′b生成新集合qj+1,而v′c保留在集合p中。

步骤3.4:判断集合状态是否保持不变或者是否达到设定的最大划分类别数,若上述两个条件满足其中之一,则停止;反之则重复步骤3.2~步骤3.3。

步骤4:构建神经网络的基本结构;

网络在卷积层部分(局部连接部分)的连接以“最邻近”和“类别相同”为依据,参考步骤3中的聚类结果,若连接中出现异于当前已有连接中的类别,则放弃该条连接,最终形成非均匀的局部连接形式;在卷积层部分仍采用传统的sigmoid函数作为激活函数,而在全连接层部分则采用sin型三角周期函数作为激活函数;输入数据经过规范化作为输入层,输出结果经过二进制编码作为输出层。

构建本发明技术方案所涉及的卷积神经网络基本结构,设计连接方式、神经层数、每层神经元数、激活函数、输入输出状态、初始化模式、阈值等基本设置。请见图4,其具体流程如下:

步骤4.1:房子各项指标的评估结果经过归一化后作为输入层,房价经过二进制编码后作为输出层。

步骤4.2:层间神经元采用局部连接,但只能连接步骤3中计算得到的同一类数据,若连接中出现不同类数据,则放弃该项连接,最终形成非均匀局部连接。局部连接部分由于形态非均匀,因此各连接不共享权值;

步骤4.3:局部连接层采用sigmoid激活函数,全连接层采用sin型三角周期函数作为激活函数。

步骤5:训练神经网络并采用交叉验证法对训练结果;

这里结合了交叉验证法对网络进行训练和评估,请见图5,其具体流程如下:

步骤5.1:将所给的506个boston地区房价数据等分k=10份(大致相等)。

步骤5.2:选择第i份数据作为测试集,其余k-1份数据作为训练集,输入到神经网络中进行训练。训练完成后输入测试集,计算网络训练的准确率λi。

步骤5.3:重复step3,直到每一份数据都做过测试集,并得到对应的网络训练准确率。

步骤5.4:计算k=10个网络模型准确率的均值和标准差σλ。

步骤5.5:判断与σλ是否低于给定阈值,若是,则训练结束;反之,选用准确率最高的一组训练集数据替换原始数据,转至步骤5.2。

步骤6:输入规范化后的待评估数据,由已训练好的网络计算其输出,并将输出结果由二进制转为十进制,即为最终所需要的评估结果。

若此时有其他模型(如多元线性回归模型等)计算出的结果或者权威数据,可对步骤6计算的结果作质量分析,其具体流程如下:

步骤6.1:设n项待评估的数据的评估值和参考值分别为xi,

步骤6.2:计算评估值与参考值的相关系数该结果越接近1说明评估质量越好。

步骤6.3:计算评估值与参考值的平均相对偏差该结果越小说明评估质量越好。

本发明的技术方案,与传统卷积神经网络相比,具有以下三个主要技术特征:

第一,基于相关距离的聚类分析来确定层间神经元的局部连接方式;

步骤一:对于输入层的各类数据x=(x1,x2···xn),首先两两计算他们的相关系数,并由此定义各类数据间的相关距离我们将相关距离最小的两类数据归为一类,把他们从集合x中剔除而并入集合y=(y1,y2···yn)。

步骤二:计算x集合元素与y集合元素(实际上是步骤一中聚类好的一组数据集合)的复相关系数,比较剩余x集合中的最小相关距离以及所得的复相关距离,前者大则成为y集合中新的元素,反之则纳入与之比较的元素类别。循环迭代上述步骤,直到全部x集合中各类数据归入y集合中新的类别,完成聚类分析,集合y中的每一个元素代表的是一组相关性较强的多元数据集合。

步骤三:根据前面聚类分析的结果确定神经元的连接关系,后一层的神经元只能在被判定为同一组的数据中进行局部连接。如果其邻近区域存在不属于同一组的其他数据,则选择不进行连接;如果其非邻近区域存在属于同一组的数据,则仍可选择连接。可见,与传统的卷积神经网络的局部连接方式相比,本发明所采用的技术方案不仅仅是以“最邻近”作为连接指标,而是添加了基于相关距离的聚类分析,每个神经元连接的数据不再是固定的,但却保证了连接的合理性和求解的可靠性。换言之,这是一种非均匀的局部连接方案。

第二,基于周期性的激活函数实现网络预测结果的整体最优;

本发明的技术方案采用两种类型的激活函数,分别设置在神经网络的不同层。在网络的局部连接层(即传统cnn称之为的卷积层)采用sigmoid函数作为激活函数,这一点于传统的卷积神经网络一致;而在网络最后的全连接层采用三角型周期函数作为激活函数。以非周期的sigmoid函数作为激活函数的神经层可以通过连接权重的调整实现对局部特征的精准逼近,类似于泰特级数;而以周期性的三角型周期函数作为激活函数的神经层则可以通过连接权重改变函数的幅值、相位和周期以实现全局范围内的最佳拟合,类似于傅里叶级数。两种类型的激活函数在本发明的技术方案中优势互补,前者同传统的非周期非线性激活函数一样,注重细节特征,后者则尽可能地兼顾所有获取的特征信息,注重整体优化,共同提高卷积神经网络计算结果的准确性。

第三,基于二进制对输出层的可行解区间进行编码;

本发明的技术方案针对输出层的可行解区间进行二进制编码,分为编码、运算、解码三个阶段。

编码阶段,当输出层可行解为整数时,则直接将其转化为二进制数。若可行解区间的最大值max可以确定,则规定此网络的二进制编码总位数为若可行解最大解不确定,则编码总位数可取n=32,不足的部分用零补齐。这一编码位数已经基本足以为实际生活中的绝大多数情况编码了。当输出层为实数时,则根据其精度要求保留的最大小数位数m,将原结果×10m+1取整数部分进行编码(多加一位进行编码是为了防止精度损失)。

运算阶段,输出层的神经元个数取决于二进制编码位数n,每一个神经元对应一个二进制位,其计算的结果表示该二进制为上出现1的概率,当此概率值超过50%时,将该位置为1,否则置为0。对神经网络进行训练时,将样本输出数据编码后,二进制每一位对应的1,0理解为概率进行计算。

解码阶段,运算结束后,根据输出层每一个神经元输出的二进制位,将其转换为十进制数。若可行解区间为整数,则该十进制数即为最终解;若可行解区间为实数,可根据指定精度的最大小数位数m(实际编码为m+1以保证精度),将该十进制数÷10m+1,得到精度要求范围内的最终解。

应当理解的是,本说明书未详细阐述的部分均属于现有技术。

应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

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