一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

训练神经网络模型的方法和装置与流程

2022-02-23 01:17:36 来源:中国专利 TAG:
1.本技术涉及人工智能领域,并且更具体地,涉及一种训练神经网络模型的方法和装置。
背景技术
::2.一般情况下,一个神经网络模型需要算法工程师基于强大的gpu算力、利用专业的知识标注样本长时间训练才能得到。现在通过迁移学习的方法,普通开发工程师使用普通的gpu算力、少量样本和较短时间训练就可以得到一个神经网络模型。迁移学习是一种学习的思想和模式,迁移学习是指利用数据、任务或模型之间的相似性,将在旧领域学习过的模型应用于新领域的一种学习过程,其核心是找到新问题和旧问题之间的相似性,顺利实现知识的迁移。深度学习是让机器自主地从数据中获取知识,从而应用于解决新的问题;而迁移学习侧重于将已经学习过的知识迁移应用于解决新的问题。3.现有的一种基于集成开发环境(integrateddevelopenvironment,ide)的迁移学习工具createml,使得普通的应用开发工程师可以通过普通的gpu算力、少量样本和原有的开发经验,快速创建一个神经网络模型。然而只利用迁移学习的方法,无法进一步提高神经网络模型训练的精确度,无法得到质量更好的神经网络模型。技术实现要素:4.本技术提供一种训练神经网络模型的方法和装置,联合迁移学习的方法和深度学习的方法,在样本数量、算力、训练时间一定的条件下可以训练得到精度更高的神经网络模型。5.第一方面,提供了一种训练神经网络模型的方法,包括:获取第一训练样本;根据第一训练样本获取第一训练样本的第一特征向量;根据第一特征向量获取第一深度神经网络模型;根据第一训练样本获取预训练模型;将第一深度神经网络模型和预训练模型组合,以得到组合神经网络模型;根据第一训练样本训练组合神经网络模型,以得到目标神经网络模型。6.本技术实施例的训练神经网络模型的方法,联合了迁移学习的方法和深度学习的方法。其中,迁移学习的部分解决了需要大量训练样本、对算力要求高、训练时间长的问题;而深度学习部分解决了迁移学习得到的神经网络模型对目标域的训练样本拟合能力不足的问题。与现有的训练神经网络模型方法相比,本技术实施例训练神经网络模型的方法训练出的神经网络模型,在样本数量、算力、训练时间和训练精度等方面取得更好的平衡。7.在第一方面的一种可能的实现方式中,根据第一特征向量获取第一神经网络模型,包括:获取网络结构存储表,网络结构存储表包括多个深度神经网络模型和多个特征向量,多个深度神经网络模型和多个特征向量一一对应;根据第一特征向量确定第二特征向量,第二特征向量为网络结构存储表中多个特征向量中的一个;根据第二特征向量获取与第二特征向量对应的深度神经网络模型。8.本技术实施例的训练神经网络模型的方法中,获取深度神经网络模型采用查表的方式根据训练样本获取,表中的深度神经网络模型为根据现有的训练样本预先训练好的神经网络模型,由此可以极大节省算力和训练时间。9.在第一方面的一种可能的实现方式中,根据第一特征向量确定第二特征向量,包括:第二特征向量与第一特征向量的距离小于第一阈值。10.分别计算第一特征向量与网络结构存储表中每个特征向量的距离,取其中与第一特征向量距离小于第一阈值的特征向量,该第一阈值可以是人为设置的值,或者取其中与第一特征向量距离最小的特征向量为第二特征向量。11.第二方面,提供了一种对象分类方法,对象包括图像和/或文本,包括:获取对象分类数据;根据对象分类神经网络模型对对象分类数据进行处理,以得到对象分类结果,其中对象分类神经网络模型的训练包括:获取第一训练样本;根据第一训练样本获取第一训练样本的第一特征向量;12.根据第一特征向量获取第一深度神经网络模型;根据第一训练样本获取预训练模型;将第一深度神经网络模型和预训练模型组合,以得到组合神经网络模型;根据第一训练样本训练组合神经网络模型,以得到对象分类神经网络模型。13.在第二方面的一种可能的实现方式中,根据第一特征向量获取第一神经网络模型,包括:获取网络结构存储表,网络结构存储表包括多个深度神经网络模型和多个特征向量,多个深度神经网络模型和多个特征向量一一对应;根据第一特征向量确定第二特征向量,第二特征向量为网络结构存储表中多个特征向量中的一个;根据第二特征向量获取与第二特征向量对应的深度神经网络模型。14.在第二方面的一种可能的实现方式中,根据第一特征向量确定第二特征向量,包括:第二特征向量与第一特征向量的距离小于第一阈值。15.第三方面,提供了一种训练神经网络模型的装置,其特征在于,包括:获取单元,用于获取第一训练样本;处理单元,用于根据第一训练样本获取第一训练样本的第一特征向量;处理单元,还用于根据第一特征向量获取第一深度神经网络模型;处理单元,还用于根据第一训练样本获取预训练模型;处理单元,还用于将第一深度神经网络模型和预训练模型组合,以得到组合神经网络模型;处理单元,还用于根据第一训练样本训练组合神经网络模型,以得到目标神经网络模型。16.在第三方面的一种可能的实现方式中,处理单元根据第一特征向量获取第一神经网络模型,包括:获取网络结构存储表,网络结构存储表包括多个深度神经网络模型和多个特征向量,多个深度神经网络模型和多个特征向量一一对应;根据第一特征向量确定第二特征向量,第二特征向量为网络结构存储表中多个特征向量中的一个;根据第二特征向量获取与第二特征向量对应的深度神经网络模型。17.在第三方面的一种可能的实现方式中,处理单元根据第一特征向量确定第二特征向量,包括:第二特征向量与第一特征向量的距离小于第一阈值。18.第四方面,提供了一种对象分类装置,其特征在于,对象包括图像和/或文本,包括:获取单元,用于获取对象分类数据;处理单元,用于根据对象分类神经网络模型对对象分类数据进行处理,以得到对象分类结果,其中对象分类神经网络模型的训练包括:获取第一训练样本;根据第一训练样本获取第一训练样本的第一特征向量;根据第一特征向量获取第一深度神经网络模型;根据第一训练样本获取预训练模型;将第一深度神经网络模型和预训练模型组合,以得到组合神经网络模型;根据第一训练样本训练组合神经网络模型,以得到对象分类神经网络模型。19.在第四方面的一种可能的实现方式中,根据第一特征向量获取第一神经网络模型,包括:获取网络结构存储表,网络结构存储表包括多个深度神经网络模型和多个特征向量,多个深度神经网络模型和多个特征向量一一对应;根据第一特征向量确定第二特征向量,第二特征向量为网络结构存储表中多个特征向量中的一个;根据第二特征向量获取与第二特征向量对应的深度神经网络模型。20.在第四方面的一种可能的实现方式中,根据第一特征向量确定第二特征向量,包括:第二特征向量与第一特征向量的距离小于第一阈值。21.第五方面,提供了一种训练神经网络模型的装置,包括处理器和存储器,存储器用于存储程序指令,处理器用于调用程序指令来执行上述第一方面和第一方面中的任意一种实现方式以及第二方面和第二方面中的任意一种实现方式中的方法。22.第六方面,提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有程序指令,当程序指令由处理器运行时,实现上述第一方面和第一方面中的任意一种实现方式以及第二方面和第二方面中的任意一种实现方式中的方法。23.第七方面,提供了一种芯片,芯片包括处理器与数据接口,处理器通过数据接口读取存储器上存储的指令,执行上述第一方面和第一方面中的任意一种实现方式以及第二方面和第二方面中的任意一种实现方式中的方法。附图说明24.图1是本技术实施例的训练神经网络模型的系统架构的示意性框图;25.图2是本技术实施例的训练神经网络模型的方法的示意性流程图;26.图3是本技术实施例的对象分类方法的示意性流程图;27.图4是本技术实施例的训练神经网络模型方法具体应用的示意性框图;28.图5是本技术实施例的训练神经网络模型的装置的示意性框图;29.图6是本技术实施例的对象分类装置的示意性框图;30.图7是本技术实施例的训练神经网络模型的装置的硬件结构示意图;31.图8是本技术实施例的对象分类装置的硬件结构示意图。具体实施方式32.人工智能(artificialintelligence,ai)包括机器学习(machinelearning,ml),机器学习包括深度学习(deeplearning,dl)和迁移学习(transferlearning,tl)。33.人工智能是计算机科学的一个分支,人工智能是对人的意识、思维的信息过程的模拟。人工智能的应用包括机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等。34.机器学习是人工智能的核心,机器学习理论主要是设计和分析一些让计算机可以自动学习的算法。机器学习算法是一类从数据中自动分析获得规律并利用规律对未知数据进行预测的算法。所以机器学习的核心是数据、算法(模型)、算力(计算机运算能力)。机器学习的应用领域十分广泛,包括数据挖掘、数据分类、计算机视觉、自然语言处理(naturelanguageprocessing,nlp)、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、dna序列测序、语音和手写识别、战略游戏和机器人运用等。机器学习就是设计一个算法模型来处理数据,输出用户想要的结果,用户可以针对算法模型进行不断的调优,形成更准确的数据处理能力。35.深度学习是机器学习的一种,其概念源于人工神经网络的研究,含多个隐藏层的多层感知器就是一种深度学习结构,所以深度学习也常被称作深层神经网络。与一般的机器学习相比,深度学习可以自动进行特征提取,就是自动地将简单的特征组合成更加复杂的特征,并使用这些组合进行多层权重学习用以解决问题。研究深度学习的冬季在于建立模拟人脑进行分析学习的神经网络,其模仿人脑的机制来解释数据,例如图像、声音和文本等。深度学习最早兴起于图像识别,但是在短短几年时间内,深度学习推广到了机器学习的各个领域并都有出色的表现,在图像识别、语音识别、音频处理、自然语言识别、机器人生物信息处理、搜索引擎、人机博弈、网络广告定向投放,医学自动诊断和金融等各大领域均有应用。36.迁移学习是一种机器学习方法,指的是一个预训练的模型被重新应用在另一个任务中。使用深度学习技术解决问题的过程中,最常见的障碍在于训练模型过程中所需的海量数据。需要如此多的数据,原因在于机器在学习的过程中会在模型中遇到大量参数,在面对某一领域的具体问题时,通常可能无法得到构建模型所需规模的数据。然而在一个模型训练任务中针对某种类型数据获得的关系也可以应用于同一领域的其他问题,这就是所谓的迁移学习。37.本技术实施例涉及神经网络,为了便于理解,下面先对本技术实施例可能涉及的神经网络的相关术语和概念进行介绍。38.(1)神经网络39.神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以如公式(1)所示:[0040][0041]其中,s=1、2、……n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activationfunctions),该激活函数用于对神经网络中的特征进行非线性变换,从而将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。[0042](2)深度神经网络[0043]深度神经网络(deepneuralnetwork,dnn),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对dnn进行划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i 1层的任意一个神经元相连。[0044]虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,系数w和偏移向量的数量也比较多。这些参数在dnn中的定义如下:以系数w为例,假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。[0045]综上,第l-1层的第k个神经元到第l层的第j个神经元的系数定义为[0046]需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。[0047](3)卷积神经网络(convolutionalneuralnetwork,cnn)[0048]卷积神经网络是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。[0049](4)循环神经网络(recurrentneuralnetwork,rnn)[0050]循环神经网络是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。rnn之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,rnn能够对任何长度的序列数据进行处理。对于rnn的训练和对传统的cnn或dnn的训练一样。[0051]既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?rnn就应运而生了。rnn旨在让机器像人一样拥有记忆的能力。因此,rnn的输出就需要依赖当前的输入信息和历史的记忆信息。[0052](5)残差网络[0053]残差网络是在2015年提出的一种深度卷积网络,相比于传统的卷积神经网络,残差网络更容易优化,并且能够通过增加相当的深度来提高准确率。残差网络的核心是解决了增加深度带来的副作用(退化问题),这样能够通过单纯地增加网络深度,来提高网络性能。残差网络一般会包含很多结构相同的子模块,通常会采用残差网络(residualnetwork,resnet)连接一个数字表示子模块重复的次数,比如resnet50表示残差网络中有50个子模块。[0054](6)分类器[0055]很多神经网络结构最后都有一个分类器,用于对图像中的物体进行分类。分类器一般由全连接层(fullyconnectedlayer)和softmax函数(可以称为归一化指数函数)组成,能够根据输入而输出不同类别的概率。需要说明的是,对于一些情况,softmax函数还可以采用sparsemax函数(可以理解为稀疏的归一化指数函数)来代替。[0056](7)损失函数[0057]在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(lossfunction)或目标函数(objectivefunction),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。[0058](8)反向传播算法[0059]神经网络可以采用误差反向传播(backpropagation,bp)算法在训练过程中修正初始的神经网络模型中参数的数值,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。[0060](9)注意力机制(attentionmechanism)[0061]注意力机制源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息,上述机制通常被称为注意力机制。在人工智能领域,注意力机制的目的是能从一些数据中找到关键的数据,例如从一张图像中找出关键事物,又例如从一堆图像中找出关键图像,又例如从一堆时序数据中找出变化节点等等。注意力机制主要通过评价待处理数据中每个或每组数据单元对数据整体贡献,从而找到贡献较大的数据单元。或者可以理解为通过比较不同数据对于结果的影响权重,来确定关键数据。注意力机制中,attention函数的本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射的过程,也是就是获得一系列key-value数据对。[0062]注意力机制可以包括自注意力机制(self-attentionmechanism,sam)和交互注意力机制(referencedattentionmechanism,ram)。其中,sam可以理解为从同一组数据中找出其中的每个数据对于结果的影响权重,例如可以从中找出关键数据,或者可以理解为纵向(或本组内部)的数据的影响权重。ram可以理解为从不同组数据中,找出不同组之间对于结果的影响权重,也可以从中找出关键数据,或者可以理解为横向(或不同组之间)的数据的影响权重。需要说明的是,sam和ram可以分别理解为组内注意力机制和组间注意力机制。[0063]在本技术实施例中,主要利用sam挖掘每一维待处理数据中的数据之间的依赖关系(或相关性),利用ram挖掘不同维待处理数据中的数据之间的依赖关系(或相关性)。[0064]本技术实施例的训练神经网络模型的方法可以应用于智能终端,智能终端包括本技术实施例的训练神经网络模型的系统。用户可以按要求提供训练样本,系统根据用户提供的训练样本和训练目标,输出训练好的神经网络模型。[0065]示例性地,上述智能终端可以为移动的或固定的;例如,智能终端可以是具有图像处理功能的移动电话、平板个人电脑(tabletpersonalcomputer,tpc)、媒体播放器、智能电视、笔记本电脑(laptopcomputer,lc)、个人数字助理(personaldigitalassistant,pda)、个人计算机(personalcomputer,pc)、照相机、摄像机、智能手表、可穿戴式设备(wearabledevice,wd)或者自动驾驶的车辆等,本技术实施例对此不作限定。[0066]应理解,上述为对应用场景的举例说明,并不对本技术的应用场景作任何限定。[0067]迁移学习是把一个领域(源域)的知识,迁移到另外一个领域(目标域),使得目标领域能够取得更好的学习效果。通常,源领域数据量充足,而目标领域数据量较小,迁移学习需要将在数据量充足的情况下学习到的知识,迁移到数据量小的新环境中。现有技术中的createml技术在进行迁移学习时,利用目标域的数据和源域的数据对源域的模型继续训练,从而获得目标域的模型。但在实际使用中,由于createml技术只获取目标域的迁移特征,无法获取原始的深度特征,使得模型对目标域拟合能力不足,可能出现迁移学习到的新模型精确度较低的情况。[0068]因此本技术实施例提出一种训练模型的方法和装置,根据深度特征和迁移特征联合学习,解决了传统深度学习要求样本数量多、算力要求高、训练时间长的问题,同时解决了迁移学习对目标域拟合能力不足的问题。实现了在较少样本数量、较低算力、较短训练时间的条件下达到获取较高训练精度的神经网络模型。[0069]图1示出了本技术实施例训练神经网络模型的系统架构的示意性框图。如图1所示,本技术实施例训练神经网络模型的系统架构中包括模型创建部分,其中包括域适配算法模块、早停算法模块、数据增强技术模块、样本综合评估模块、网络结构存储表模块和模型训练模块。其中,域适配算法模块用于迁移学习部分,早停算法模块用于防止模型过拟合,数据增强技术模块用于增加样本的数量,可以提高神经网络模型的泛化能力,样本综合评估模块、网络结构存储表模块负责获取小型深度神经网络模型,模型训练模块负责预训练模型和小型深度神经网络模型的联合训练。[0070]图2示出了本技术实施例的训练神经网络模型的方法的示意性流程图,包括步骤201至步骤206,以下分别对这些步骤进行详细介绍。[0071]s201,获取第一训练样本。[0072]第一训练样本用于训练目标神经网络模型。具体的,本技术实施例的训练神经网络模型的方法可以用于图像分类、文本分类、声音分类等分类场景,因此第一训练样本可以是图像的训练样本或文本的训练样本或声音的训练样本等。[0073]s202,根据第一训练样本获取第一训练样本的第一特征向量。[0074]具体的,根据第一训练样本的特征属性获取第一特征向量,特征属性可以包括数据分布、分类数、样本数量等。第一特征向量与第一训练样本相对应。[0075]可选的,在获取第一特征向量之前,本技术实施例的训练神经网络模型的方法还包括,对第一训练样本进行数据加强。以图形的训练样本为例,数据加强包括对图像进行旋转、平移、缩放、随机遮挡、调整颜色色差等,从而丰富训练样本的多样性。[0076]s203,根据第一特征向量获取第一深度神经网络模型。[0077]首先获取网络结构存储表,该网络结构存储表包括多个深度神经网络模型和多个特征向量。多个深度神经网络模型是根据多个训练集分别训练好的,一个训练集对应一个深度神经网络模型,多个特征向量是根据每个训练集中的训练样本获取的,一个训练集对应一个特征向量,因此一个深度神经网络模型与一个特征向量相对应。[0078]然后根据第一特征向量确定第二特征向量,该第二特征向量为上述网络结构存储表中多个特征向量中的一个。具体的,分别计算第一特征向量与网络结构存储表中每个特征向量的距离,取其中与第一特征向量距离小于第一阈值的特征向量为第二特征向量,该第一阈值可以是人为设置的值,或者取其中与第一特征向量距离最小的特征向量为第二特征向量。[0079]最后根据第二特征向量获取与第二特征向量对应的深度神经网络模型为第一深度神经网络模型。[0080]s204,根据第一训练样本获取预训练模型。[0081]预训练模型可以采用现有的成熟的模型,例如mobilenetv2,该模型通过对几百万张图片的训练得到,具有较好的泛化能力,可选的,预训练模型也可以是多任务学习的模型。[0082]本技术实施例训练神经网络模型的方法可以根据第一训练样本对预训练神经网络模型进行微调,该微调方法可以是冻结网络结构的前面一定层数的参数,只更新网络结构后一定层数和全连接层的参数,该一定层数可以是人为预设的值。[0083]s205,将第一深度神经网络模型和预训练模型组合,以得到组合神经网络模型。[0084]其中,组合方式为现有的将两个模型进行组合的方式。[0085]s206,根据第一训练样本训练组合神经网络模型,以得到目标神经网络模型。[0086]根据图2所示的训练神经网络模型的方法训练神经网络模型,联合了迁移学习的方法和深度学习的方法。其中,迁移学习的部分解决了需要大量训练样本、对算力要求高、训练时间长的问题;而深度学习部分解决了迁移学习得到的神经网络模型对目标域的训练样本拟合能力不足的问题。与现有的训练神经网络模型方法相比,本技术实施例训练神经网络模型的方法训练出的神经网络模型,在样本数量、算力、训练时间和训练精度等方面取得更好的平衡。[0087]图3示出了本技术实施例的对象分类方法的示意性流程图,如图3所示,该方法包括步骤301至步骤302,以下分别对这些步骤进行介绍。[0088]s301,获取对象分类数据。[0089]本技术实施例的对象分类方法可以用于图像分类、文本分类、声音分类等分类场景,因此对象分类数据可以是图像的分类数据或文本的分类数据或声音的分类数据等。[0090]s302,根据对象分类神经网络模型对对象分类数据进行处理,以得到对象分类结果。[0091]其中,对象分类神经网络模型为预先训练好的,对象分类神经网络模型的训练包括:获取第一训练样本;根据第一训练样本获取第一训练样本的第一特征向量;根据第一特征向量获取第一深度神经网络模型;根据第一训练样本获取预训练模型;将第一深度神经网络模型和预训练模型组合,以得到组合神经网络模型;根据第一训练样本训练组合神经网络模型,以得到对象分类神经网络模型。[0092]应理解,对象分类神经网络模型的训练方法为图2中训练神经网络模型的方法,具体可以参照上述对于图2的描述,为了简洁,本技术实施例在此不再赘述。[0093]以下结合图4具体介绍本技术实施例训练神经网络模型的方法在图像分类方面的应用。如图4所示,本技术实施例训练神经网络模型的方法可以分为两个过程,一个是神经网络结构搜索过程,负责查找适合不同图像分类任务的最佳的神经网络结构;另一个是联合训练过程,负责根据目标域的数据集查找到合适的小型神经网络模型,并和预训练神经网络模型联合训练。[0094]1、网络结构搜索过程[0095]该过程包括对多个类别的图像分类任务,通过自动机器学习(automachinelearning,automl)进行训练,以获取针对不同分类任务的最佳网络结构,最终得到网络结构存储表。其中,automl是将机器学习应用于显示问题的端到端流程自动化的过程。机器学习模型都是由工程师和科学家团队精心设计出来的,这种手动设计的过程是非常困难的,因为模型组件的搜索空间可能非常巨大,而automl致力于研究机器学习自动化实现,面向没有专业机器学习知识的用户,同时也为专业机器学习用户提供了新的工具。automl输入的是数据和任务(分类、回归、推荐等),输出的是可用于应用的模型,该模型能够预测未知数据,数据驱动流程中的每个决定都是一个超参数,automl的基本思想就是在相对短的时间里找到优质的超参数。[0096]本技术实施例训练神经网络模型的方法的网络结构搜索过程是在服务器端完成,终端用户无感知。图像分类任务为基于互联网开源数据集和人工标注的常见图像分类任务,例如包括动物分类(又细分为家禽分类、野生动物分类、飞鸟分类等),植物分类(又细分为花卉分类、农作物分类、多肉植物分类等),衣物分类(又细分为帽子分类、上衣分类、裤子分类等)等上百种分类场景。以上只是对本技术实施例中的图像分类任务的举例,并不构成对本技术实施例的限定,除了上述列出的图像分类任务,本技术实施例还可以包括其他可能的图像分类任务。[0097]针对每个图像分类任务,根据特征分布、分类数量、样本数量等计算特征向量,并将该特征向量记为标准样本向量。每个标准样本向量对应根据该图像分类任务通过automl训练得到的网络结构。由此可以得到网络结构存储表如下表所示。[0098]表1[0099]训练目标标准样本向量网络结构版本动物分类向量a结构1:conv relu convv1植物分类向量b结构2:firemodule*3v2衣物分类向量c结构3:…block …v1…………[0100]2、联合训练过程[0101]本技术实施例训练神经网络模型的方法的网络结构搜索过程是在集成开发环境(integrateddevelopenvironment,ide)中进行。ide是用于提供呈现开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图像用户界面等工具。ide集成了代码编写功能、分析功能和调试功能等一体化的开发软件服务套组,所有具备这一特效的软件或者软件套组都可以叫做集成开发环境。ide可以独立运行,也可以和其他程序并用。[0102]首先选择图像分类的数据集,这里以垃圾分类的数据集为例,用户选择垃圾分类的训练数据集。系统对训练数据集中的训练样本进行数据加强,例如对图像进行旋转、平移、缩放、随机遮挡、调整颜色等操作。[0103]然后根据训练目标和训练样本的数据分布、分类数、样本数量等进行建模,以得到样本评估向量。查询网络结构存储表,计算样本评估向量和网络结构存储表中的每个标准样本向量的距离,取距离最小的标准样本向量对应的网络结构,记为小型深度网络结构。[0104]接着将预训练模型和小型深度网络结构组合,进行联合学习。其中,预训练模型是用于迁移学习部分的神经网络模型,预训练模型可以采用成熟的预训练模型,例如mobilenetv2,该神经网络模型通过对几百万张图片的训练,具有较好的泛化能力。可选的,预训练模型还可以是多任务学习的神经网络模型,本技术实施例在此不做具体限定。本技术实施例中可以根据图像分类的数据集(例如垃圾分类的数据集)对预训练神经网络模型进行微调,该微调方法可以是冻结网络结构的前面一定层数的参数,只更新网络结构后一定层数和全连接层的参数,该一定层数可以是人为预设的值。系统同时将数据输入预训练模型和小型深度网络结构,这里的输入是双输入,由于两个模型的输入对图片形状的要求不同,因此在输入之前需要对图片进行大小调整。训练完成后,即可得到根据预训练模型和小型深度网络结构联合学习后的神经网络模型。[0105]以下具体介绍本技术实施例训练神经网络模型的方法在文本分类方面的应用。与在图像分类方面的应用类似,本技术实施例训练神经网络模型的方法在文本分类方面的应用也可以分为两个过程,一个是神经网络结构搜索过程,负责查找适合不同语种、不同长度文本分类任务的最佳的神经网络结构;另一个是联合训练过程,负责根据目标域的数据集查找到合适的小型神经网络模型,并和预训练神经网络模型联合训练。[0106]1、网络结构搜索过程[0107]本技术实施例训练神经网络模型的方法的网络结构搜索过程是在服务器端完成,终端用户无感知。文本分类任务为基于互联网开源数据集和人工标注的常见文本分类任务,与图像分类任务不同,文本分类任务主要从分类语言、文本长度等区分分类任务,例如平均长度小于100字符的中文分类、平均长度大于500字符的中英文混合分类、平均长度在(100,500)字符的英文分类等。以上只是对本技术实施例中的文本分类任务的举例,并不构成对本技术实施例的限定,除了上述列出的文本分类任务,本技术实施例还可以包括其他可能的文本分类任务。[0108]针对每个文本分类任务,根据特征分布、分类数量、样本数量等计算特征向量,并将该特征向量记为标准样本向量。每个标准样本向量对应根据该文本分类任务通过automl训练得到的网络结构。由此可以得到网络结构存储表如下表所示。[0109]表2[0110][0111][0112]2、联合训练过程[0113]本技术实施例训练神经网络模型的方法的网络结构搜索过程是在ide中进行。首先选择文本分类的数据集,这里以头条新闻的数据集为例,用户选择头条新闻的训练数据集。系统对训练数据集中的训练样本进行数据加强,例如字符数或减少字符数等。[0114]然后根据训练目标和训练样本的数据分布、分类数、样本数量等进行建模,以得到样本评估向量。查询网络结构存储表,计算样本评估向量和网络结构存储表中的每个标准样本向量的距离,取距离最小的标准样本向量对应的网络结构,记为小型深度网络结构。[0115]接着将预训练模型和小型深度网络结构组合,进行联合训练。系统同时将数据输入预训练模型和小型深度网络结构,这里的输入是双输入。训练完成后,即可得到根据预训练模型和小型深度网络结构联合学习后的神经网络模型。[0116]现有的基于ide的createml技术只支持迁移学习的方法,本技术实施例的训练神经网络模型的方法可以自动设计小型深度网络结构,根据预训练模型和小型深度网络结构联合训练,可以获取精确度更高的神经网络模型。[0117]上文结合附图对本技术实施例的训练神经网络模型的方法和对象分类的方法进行了详细描述,下面结合附图对本技术实施例的训练神经网络模型的装置和对象分类的装置进行详细的描述,应理解,下面描述的训练神经网络模型的装置和对象分类的装置能够执行本技术实施例的训练神经网络模型的方法和对象分类的方法的各个步骤,为了避免不必要的重复,下面在介绍本技术实施例的训练神经网络模型的装置和对象分类的装置时适当省略重复的描述。[0118]图5示出了本技术实施例的训练神经网络模型的装置的示意性框图,如图5所示,包括获取单元510和处理单元520,以下分别进行介绍。[0119]获取单元510,用于获取第一训练样本。[0120]处理单元520,用于根据第一训练样本获取第一训练样本的第一特征向量。[0121]处理单元520,还用于根据第一特征向量获取第一深度神经网络模型。[0122]处理单元520,还用于根据第一训练样本获取预训练模型。[0123]处理单元520,还用于将第一深度神经网络模型和预训练模型组合,以得到组合神经网络模型。[0124]处理单元520,还用于根据第一训练样本训练组合神经网络模型,以得到目标神经网络模型。[0125]可选的,处理单元520根据第一特征向量获取第一神经网络模型,包括:获取网络结构存储表,网络结构存储表包括多个深度神经网络模型和多个特征向量,多个深度神经网络模型和多个特征向量一一对应;根据第一特征向量确定第二特征向量,第二特征向量为网络结构存储表中多个特征向量中的一个;根据第二特征向量获取与第二特征向量对应的深度神经网络模型。[0126]可选的,处理单元520根据第一特征向量确定第二特征向量,包括:第二特征向量与第一特征向量的距离小于第一阈值。[0127]图6示出了本技术实施例的对象分类装置的示意性框图,如图6所示,包括获取单元610和处理单元620,以下分别进行介绍。[0128]获取单元610,用于获取对象分类数据。[0129]处理单元620,用于根据对象分类神经网络模型对对象分类数据进行处理,以得到对象分类结果。[0130]其中对象分类神经网络模型的训练包括:获取第一训练样本;根据第一训练样本获取第一训练样本的第一特征向量;[0131]根据第一特征向量获取第一深度神经网络模型;根据第一训练样本获取预训练模型;将第一深度神经网络模型和预训练模型组合,以得到组合神经网络模型;根据第一训练样本训练组合神经网络模型,以得到对象分类神经网络模型。[0132]可选的,根据第一特征向量获取第一神经网络模型,包括:获取网络结构存储表,网络结构存储表包括多个深度神经网络模型和多个特征向量,多个深度神经网络模型和多个特征向量一一对应;根据第一特征向量确定第二特征向量,第二特征向量为网络结构存储表中多个特征向量中的一个;根据第二特征向量获取与第二特征向量对应的深度神经网络模型。[0133]可选的,根据第一特征向量确定第二特征向量,包括:第二特征向量与第一特征向量的距离小于第一阈值。[0134]图7是本技术实施例提供的训练神经网络模型的装置的硬件结构示意图。图7所示的装置700(该装置700具体可以是一种计算机设备)包括存储器710、处理器720、通信接口730以及总线740。其中,存储器710、处理器720、通信接口730通过总线740实现彼此之间的通信连接。[0135]存储器710可以是只读存储器(readonlymemory,rom),静态存储设备,动态存储设备或者随机存取存储器(randomaccessmemory,ram)。存储器710可以存储程序,当存储器710中存储的程序被处理器720执行时,处理器720用于执行本技术实施例的训练神经网络模型的方法的各个步骤;例如,执行图2所示的各个步骤。[0136]应理解,本技术实施例所示的训练神经网络模型的装置可以是服务器,例如,可以是云端的服务器,或者,也可以是配置于云端的服务器中的芯片。[0137]处理器720可以采用通用的中央处理器(centralprocessingunit,cpu),微处理器,应用专用集成电路(applicationspecificintegratedcircuit,asic),图形处理器(graphicsprocessingunit,gpu)或者一个或多个集成电路,用于执行相关程序以实现本申请方法实施例的图像分类方法。[0138]处理器720还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的图像分类方法的各个步骤可以通过处理器720中的硬件的集成逻辑电路或者软件形式的指令完成。[0139]上述处理器720还可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器710,处理器720读取存储器710中的信息,结合其硬件完成本技术实施中图5所示的装置中包括的单元所需执行的功能,或者,执行本技术方法实施例的图2所示的训练神经网络模型的方法。[0140]通信接口730使用例如但不限于收发器一类的收发装置,来实现装置700与其他设备或通信网络之间的通信。[0141]总线740可包括在装置700各个部件(例如,存储器710、处理器720、通信接口730)之间传送信息的通路。[0142]图8是本技术实施例提供的对象分类装置的硬件结构示意图。图8所示的对象分类装置800(该对象分类装置800具体可以是一种计算机设备)包括存储器810、处理器820、通信接口830以及总线840。其中,存储器810、处理器820、通信接口830通过总线840实现彼此之间的通信连接。[0143]存储器810可以是只读存储器(readonlymemory,rom),静态存储设备,动态存储设备或者随机存取存储器(randomaccessmemory,ram)。存储器810可以存储程序,当存储器810中存储的程序被处理器820执行时,处理器820用于执行本技术实施例的对象分类方法的各个步骤;例如,执行图3所示的各个步骤。[0144]应理解,本技术实施例所示的对象分类装置可以是服务器,例如,可以是云端的服务器,或者,也可以是配置于云端的服务器中的芯片。[0145]示例性地,处理器820可以采用通用的中央处理器(centralprocessingunit,cpu),微处理器,应用专用集成电路(applicationspecificintegratedcircuit,asic),图形处理器(graphicsprocessingunit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术方法实施例的对象分类方法。[0146]示例性地,处理器820还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的对象分类方法的各个步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。[0147]上述处理器820还可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器810,处理器820读取存储器810中的信息,结合其硬件完成图6所示的训练装置中包括的单元所需执行的功能,或者,执行本技术方法实施例的图3所示的对象分类方法。[0148]通信接口830使用例如但不限于收发器一类的收发装置,来实现训练装置800与其他设备或通信网络之间的通信。[0149]总线840可包括在装置800各个部件(例如,存储器810、处理器820、通信接口830)之间传送信息的通路。[0150]应注意,尽管上述装置700和装置800仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置700和装置800还可以包括实现正常运行所必须的其他器件。同时,根据具体需要本领域的技术人员应当理解,上述装置700和装置800还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,上述装置700和装置800也可仅仅包括实现本技术实施例所必须的器件,而不必包括图7或图8中所示的全部器件。[0151]示例性地,本技术实施例还提供一种芯片,该芯片包括收发单元和处理单元。其中,收发单元可以是输入输出电路、通信接口;处理单元为该芯片上集成的处理器或者微处理器或者集成电路;该芯片可以执行上述方法实施例中的训练神经网络模型的方法。[0152]示例性地,本技术实施例还提供一种芯片,该芯片包括收发单元和处理单元。其中,收发单元可以是输入输出电路、通信接口;处理单元为该芯片上集成的处理器或者微处理器或者集成电路;该芯片可以执行上述方法实施例中的对象分类方法。[0153]示例性地,本技术实施例还提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的训练神经网络模型的方法。[0154]示例性地,本技术实施例还提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的对象分类方法。[0155]示例性地,本技术实施例还提供一种包含指令的计算机程序产品,该指令被执行时执行上述方法实施例中的训练神经网络模型的方法。[0156]示例性地,本技术实施例还提供一种包含指令的计算机程序产品,该指令被执行时执行上述方法实施例中的对象分类方法。[0157]应理解,本技术实施例中的处理器可以为中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。[0158]还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(randomaccessmemory,ram)可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。[0159]上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘。[0160]应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。[0161]本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。[0162]应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。[0163]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。[0164]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0165]在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0166]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0167]另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。[0168]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0169]以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献