CN115115016A - 一种训练神经网络的方法与装置 - Google Patents
一种训练神经网络的方法与装置 Download PDFInfo
- Publication number
- CN115115016A CN115115016A CN202110292364.1A CN202110292364A CN115115016A CN 115115016 A CN115115016 A CN 115115016A CN 202110292364 A CN202110292364 A CN 202110292364A CN 115115016 A CN115115016 A CN 115115016A
- Authority
- CN
- China
- Prior art keywords
- sample
- samples
- similarity
- groups
- loss function
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 158
- 238000012549 training Methods 0.000 title claims abstract description 143
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 137
- 239000013598 vector Substances 0.000 claims abstract description 115
- 230000006870 function Effects 0.000 claims description 153
- 238000012545 processing Methods 0.000 claims description 31
- 238000007781 pre-processing Methods 0.000 claims description 23
- 230000009467 reduction Effects 0.000 claims description 22
- 238000007621 cluster analysis Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 abstract description 42
- 238000002372 labelling Methods 0.000 abstract description 26
- 238000001514 detection method Methods 0.000 description 41
- 238000013527 convolutional neural network Methods 0.000 description 25
- 238000013473 artificial intelligence Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 17
- 238000000605 extraction Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 12
- 210000002569 neuron Anatomy 0.000 description 12
- 230000003321 amplification Effects 0.000 description 10
- 238000013434 data augmentation Methods 0.000 description 10
- 238000003199 nucleic acid amplification method Methods 0.000 description 10
- 230000009466 transformation Effects 0.000 description 10
- 229910015234 MoCo Inorganic materials 0.000 description 9
- 230000011218 segmentation Effects 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 241000282414 Homo sapiens Species 0.000 description 5
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000013480 data collection Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000011946 reduction process Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- 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/08—Learning methods
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例提供了一种训练神经网络的方法与装置,该方法包括:获取N组样本;通过待训练的神经网络对N组样本中的每个样本进行特征提取,得到N组样本的特征向量;基于聚类得到N组样本的特征向量的伪标签;基于伪标签区分同一目标的负样本;基于正负样本的相似度构建损失函数,计算N组样本的损失函数值之和得到总损失和;基于总损失和,训练神经网络。通过聚类的方法得到样本的类别,并基于类别来判断各样本的负样本,进而基于正样本相似度和负样本相似度构建损失函数,计算N组样本的总损失和,实现基于该损失函数的无监督训练方法,减少在神经网络训练过程中对人工标注数据的依赖。
Description
技术领域
本申请涉及人工智能领域,并且更具体地,涉及一种训练神经网络的方法与装置。
背景技术
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能与人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
基于三维点云数据的目标识别是自动驾驶领域的一个重要应用,例如,在自动驾驶车辆(self-driving vehicle,SDV)中,通常会基于三维点云数据和深度学习的人工智能方法识别SDV附近出现的物体。
对三维点云的目标识别通常可以采用基于深度学习的监督学习或无监督学习两种方法对从点云数据提取的特征进行识别。然而,监督学习依赖于大量的样本标签,而标签通常是人工标注的。大量的样本标签的标注会耗费大量人工时间和精力。无监督学习虽然不需要人工标注,但又存在识别准确率较低的问题。
因此,希望提供一种方法,在保证较高的识别准确率的基础上,减少神经网络的训练过程中对人工标注的依赖。
发明内容
本申请实施例提供了一种训练神经网络的方法与装置,以期在保证较高的识别准确率的基础上,减少神经网络的训练过程中对人工标注的依赖。
第一方面,本申请提供了一种训练神经网络的方法,该神经网络应用于自动驾驶车辆中,该方法包括:获取N组样本,所述N组样本对应于N个目标,所述N组样本中的每组样本包括对应于同一目标的Q个样本,所述N组样本基于所述自动驾驶车辆采集到的N组数据而获得,所述N组数据可以是点云数据和/或图像数据;N>1,Q≥2,N、Q为整数;通过待训练的神经网络对所述N组样本中的每个样本进行特征提取,得到所述N组样本的特征向量;基于预定义的损失函数计算总损失和,所述总损失和为所述N组样本的损失函数值之和,所述N组样本中第n组样本的损失函数值由所述第n组样本中至少一个样本的损失函数值确定;
其中,样本i的损失函数值由所述样本i的正样本相似度和负样本相似度确定,所述样本i的正样本相似度包括所述样本i与所述样本i对应的正样本的相似度,所述样本i的负样本相似度包括所述样本i与所述样本i对应的负样本的相似度,所述样本i对应的正样本与所述样本i对应于同一目标,所述样本i对应的负样本与所述样本i对应于不同类别的目标;所述样本i是所述N组样本中的任意一个样本,所述第n组样本是所述N组样本中的任意一组样本,且所述N组样本中至少一组样本所对应的目标的类别是基于对所述至少一组样本的特征向量进行聚类分析得到的;1≤n≤N,1≤i≤N×Q,n、i均为整数;基于所述总损失和,训练所述神经网络。
基于上述技术方案,通过聚类分析获得N组样本中的至少部分样本的类别,并基于类别来判断各样本的负样本,进而基于正样本相似度和负样本相似度构建损失函数,计算N组样本的总损失和。通过最小化该总损失和,可以调整神经网络的参数,使得神经网络具有提取样本数据特征的能力。在对神经网络的训练过程中,减少了人工标注的工作量,并通过构建相应的损失函数,快速、准确地完成神经网络的训练。
结合第一方面,在第一方面的某些可能的实现方式中,在所述基于预定义的损失函数计算总损失和之前,所述方法还包括:对所述N组样本中每个样本的特征向量进行预处理,得到所述N组样本中每个样本的预处理后的特征向量;对所述样本i的特征向量的预处理满足:其中,zi表示预处理后的特征向量;表示特征向量的模。
应理解,通过对每个样本的特征向量进行预处理,将样本的特征向量投影到一个单位球面上,使各个样本的特征向量变成模为1、包含方向的向量,为了方便后面通过点积计算正负样本的相似度。
结合第一方面,在第一方面的某些可能的实现方式中,在所述对所述N组样本中每个样本的特征向量进行预处理之前,所述方法还包括:对所述N组样本的特征向量中每个样本的特征向量进行降维处理,得到所述N组样本中每个样本的降维后的特征向量;以及所述对所述N组样本中每个样本的特征向量进行预处理,包括:对所述N组样本中每个样本的降维后的特征向量进行所述预处理。
结合第一方面,在第一方面的某些可能的实现方式中,对所述样本i的预处理后的特征向量zi的降维处理满足:其中,hi表示由所述神经网络输出的第i个样本的特征向量;W1、W2分别为两层全连接网络的参数,δ函数满足δ(x)=max{0,x}。
应理解,上述仅给出了降维处理的一种形式,也可以采用其他的方法实现降维处理。通过以上降维处理,一方面将特征向量的维度降低,方便后期的聚类分析,另一方面采用非线性的δ函数,有利于损失函数收敛,取得较优的神经网络参数。
结合第一方面,在第一方面的某些可能的实现方式中,所述样本i的负样本相似度包括所述样本i与所述N组样本中所述样本i的全部负样本的相似度。
通过计算样本i与样本i的对应的全部负样本的相似度,能够加快损失函数收敛的速度,更加准确地区分不同类别的样本的特征。
结合第一方面,在第一方面的某些可能的实现方式中,所述样本i的正样本包括所述样本i所属的样本组中除所述样本i之外的Q-1个样本,所述样本i的正样本相似度包括所述样本i与所述Q-1个样本中一个或多个样本的相似度。
通过计算样本i与样本i对应的全部正样本的相似度,能够加快损失函数收敛的速度。
结合第一方面,在第一方面的某些可能的实现方式中,所述样本i的正样本相似度包括所述样本i与所述Q-1个样本的相似度,所述样本i的损失函数值li满足:其中,Pi表示所述样本i的负样本的个数,1≤pi≤Pi,pi、Pi均为整数;τ为预定义值。
可以看到,样本i与其正样本之间的相似度越大,损失函数值li越小;样本i与其负样本之间的相似度越小,损失函数值li越小。并且可以理解的是,当采用该样本i的所有正样本和所有负样本来分别计算正样本相似度和负样本相似度时,所得到的损失函数值更为准确,更有利于神经网络的快速收敛。
应理解,对一个样本采用两种数据增广方式得到的n1、n2两个样本,可以看做n1、n2两个样本对应于同一类别,但是由于在采用聚类方法分析n1、n2两个样本的伪标签时,得到的n1、n2两个样本的伪标签可能不同,因此n1和n2对应的负样本可能不同,其对应的损失函数值可能不同,因此通过分别计算n1和n2的损失函数值和得到第n组样本的总损失和,通过将一组中两个样本的损失函数值的平均值作为一组样本的总损失和,可以减少由于聚类得到的标签不准确带来的误差。
结合第一方面,在第一方面的某些可能的实现方式中,所述神经网络可以为卷积神经网络(convolutional neural network,CNN)。
应理解,上述神经网络不限于CNN,用户可以根据自己的样本数据和实际的需求,采用其他的网络结构,例如还可以采用循环神经网络(recurrent neural network,RNN)。
结合第一方面,在第一方面的某些可能的实现方式中,一组样本中的Q个样本可以是基于对应于同一目标采集到的原始点云数据进行数据增广得到的。
应理解,可以通过对一组点云数据进行Q种不同的数据增广得到每组的Q个样本。
结合第一方面,在第一方面的某些可能的实现方式中,一组样本中的Q个样本可以是基于多模态数据得到的。
应理解,此处多模态数据可以指通过不同采集设备得到的数据。采用不同的采集设备采集同一目标的Q组数据得到每组的Q个样本。
结合第一方面,在第一方面的某些可能的实现方式中,所述N组样本中至少一组样本所对应的目标的类型由人工标注的标签来标识。
应理解,在实际应用中,训练神经网络的N组样本可以是包含部分人工标注的样本,也可以全部是基于聚类分析得到伪标签的样本。
结合第一方面,在第一方面的某些可能的实现方式中,所述方法还包括:将所述神经网络的参数作为目标模型的骨干网络的初始化参数,对所述目标模型进行训练。
应理解,基于不同的应用场景和需求,目标模型可用于目标检测、目标识别、实例分割等。
由于上述神经网络的参数已经经过了自监督学习训练,相比于没有经过训练的随机初始化参数具有较优的特征提取的能力,因此在不同的应用场景下,将其作为目标模型的骨干网络的初始化参数,采用少量特定任务数据,即可实现相应的需求。因此,可以提高训练效率,同时也可减少人工标注数据的使用,减少对人工标注的依赖。
第二方面,提供了一种训练神经网络的装置,包括用于执行第一方面及第一方面任一种可能实现方式中的方法的模块或单元。
第三方面,提供了一种训练神经网络的装置,所述装置包括处理器。该处理器与存储器耦合,可用于执行存储器中的计算机程序,以实现上述各方面中任一种可能实现方式中的方法。可选地,该装置还包括存储器。
可选地,该装置还包括通信接口,处理器与通信接口耦合。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被计算机或处理器执行时,使得上述第一方面及第一方面任一种可能实现方式中的方法被执行。
第五方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序(也可以称为代码,或指令),当所述计算机程序被执行时,使得上述第一方面及第一方面任一种可能实现方式中的方法被执行。
第六方面,本申请提供了一种芯片***,该芯片***包括至少一个处理器,用于支持实现上述第一方面中所涉及的功能,例如,例如接收或处理上述方法中所涉及的数据和/或信息。
在一种可能的设计中,所述芯片***还包括存储器,所述存储器,用于保存程序指令和数据,存储器位于处理器之内或处理器之外。该芯片***,可以由芯片构成,也可以包含芯片和其他分立器件。
附图说明
图1是本申请实施例提供的一种人工智能主体框架示意图;
图2是本申请实施例提供的一种应用***架构的示意图;
图3是本申请实施例提供的一种训练神经网络的方法的流程示意图;
图4是本申请实施例提供的一种对点云数据和图像数据进行数据增广的示意图;
图5是本申请实施例提供的正样本和负样本的示意图;
图6是本申请实施例提供的训练神经网络的过程示意图;
图7是本申请实施例提供的训练神经网络的另一流程示意图;
图8是本申请实施例提供的训练目标模型的示意图;
图9和图10为本申请实施例提供的训练神经网络的装置的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为便于理解本申请实施例,首先对本申请实施例涉及的人工智能***总体工作流程做简单说明。图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能***总体工作流程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“互联网技术(internet technology,IT)价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到***的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能***提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(中央处理器(centralprocessing unit,CPU)、神经网络处理器(neural network processing unit,NPU)、图形处理器(graphics processing unit,GPU)、专用集成电路(applicationspecificintegrated Circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算***中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本、点云数据,还涉及到传统设备的物联网数据,包括已有***的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能***中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用***,例如,自然语言处理中的翻译,文本的分析、语音识别等等,计算机视觉的处理中的目标检测,目标识别等等。具体地,目标识别例如可以为:,图像识别,基于点云数据的物体识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能***在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
基于上述对人工智能***总体工作流程的描述,可以看出人工智能方法主要是基于机器学习、深度学习等方法从数据中学习得到一个通用***,基于该***能够达到目标识别、目标检测等特定目的,目前,基于深度学习的人工智能方法应用广泛。深度学习方法一般有两种实现方式,分别是监督学习和无监督学习,基于监督学习方式的深度学习方法通常需要大量的标注数据,需要耗费大量的人工精力对数据进行标注,无监督学习不要人工标注数据,但是通常学习得到的***的整体能力较低,例如,目标识别的精度较低,因此,本文期望提出一种深度学习方法,在保证较高的识别准确率的基础上,减少神经网络的训练过程中对人工标注的依赖。
其中,自动驾驶是人工智能领域的一种主流应用,自动驾驶技术依靠计算机视觉、雷达、监控装置和全球定位***等协同合作,让机动车辆可以在不需要人类主动操作下,实现自动驾驶。更进一步地,识别自动驾驶车辆周围的目标是自动驾驶领域的一个重要应用,识别出的结果可以为自动驾驶车辆进行自动驾驶操作提供依据。本申请实施例提供的方法可以用于自动驾驶领域,用于实现基于点云数据的目标识别。
为便于理解,对下文所涉及到的术语做简单说明。
(1)神经网络(neural network,NN)
神经网络作为人工智能的重要分支,是一种模仿动物神经网络行为特征进行信息处理的网络结构。神经网络的结构由大量的节点(或称神经元)相互联接构成,基于特定运算模型通过对输入信息进行学习和训练达到处理信息的目的。一个神经网络包括输入层、隐藏层及输出层,输入层负责接收输入信号,输出层负责输出神经网络的计算结果,隐藏层负责学习、训练等计算过程,是网络的记忆单元,隐藏层的记忆功能由权重矩阵来表征,通常每个神经元对应一个权重系数。
(2)深度神经网络(deep neural network,DNN)
DNN可以理解为具有多层隐含层的神经网络。通常情况下,多层神经网络和深度神经网络所表达的含义是相同的。
从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,前一层的任意一个神经元与后一层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下关系表达式:y=δ(wx+b),其中,x是输入向量,y是输出向量,b是偏移向量,w是权重向量(也称系数),δ()是激活函数。每一层仅仅是对输入向量x经过如此简单的操作得到输出向量y。由于DNN层数多,因此对应系数w和偏移向量b的数量就有很多。
示例性地,以一个三层的DNN为例,如:第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。概括性地,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。
应理解,输入层是没有w参数的,且通常情况下,在训练深度神经网络模型时,模型的参数可以为随机初始化得到的,这样想学习得到较好的结果,就需要较多的人工标注标签或者训练较长的时间。因此,现有技术中,通常会采用迁移学习解决某个领域的目标及目标的人工标注标签比较难获得的情况。例如,现实中想进行基于车牌图像的车牌识别,但是由于现实中高质量的车牌图像比较难获取,并且对车牌图像进行人工标注比较耗时,因此,先采用现有的图像数据集,例如在公共数据集(如ImageNet数据集)上对车牌识别深度学习模型进行预训练得到一个初始的车牌识别模型,然后再基于少量人工标注的车牌数据对初始的车牌识别模型进行微调,即可获得具有较高识别准确率
(3)卷积神经网络
CNN是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,我们都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)目标识别
在所有的给定数据中,分出哪一些样本是目标,哪一些不是。例如,针对一幅图像,根据相似性,将其分成不同的区域,即,分割或者分类,对每个区域进行特征匹配,即可知道每个区域是什么,实现目标识别。
(5)目标检测
检测出图像或者点云数据当中的目标的具***置、大小、形状等。
为便于理解本申请实施例,图2为本申请实施例提供的一种应用***架构的示意图。如图2所示,该***架构200可以包括执行设备210、训练设备220、数据库230、客户设备240、数据存储***250和数据采集设备260。其中,执行设备210还可以包括计算模块211、输入/输出(input/output,I/O)接口212、关联功能模块213和关联功能模块214。应理解,图2仅为示例性的架构,也可以包含更多或者更少的组成部分,本申请对此不作限定。
应理解,该***架构中的模块可以全部位于自动驾驶车辆中,也可以部分位于自动驾驶车辆中,部分位于云端服务器中。
示例性地,该***架构中的训练设备220可以位于云端服务器中,其他模块可以位于自动驾驶车辆中,则云端服务器可以通过任何通信机制/通信标准的通信网络与***架构中的其他部分进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。云端服务器与自动驾驶车辆进行的交互,例如可以从客户设备240获取数据或者从数据库中获取数据,基于获取的数据得到目标模型,将目标模型存储在云端服务器中,或者直接将目标模型传输给I/O接口,其他模块可以从I/O接口获取目标模型进行下一步的处理。应理解,此处的目标模型指的是目标模型的结构及其参数。
应理解,上述过程仅示例性地描述***架构中的训练设备位于云端服务器中的情形,***架构中的其他模块也可以包含在云端服务器中,云端服务器和自动驾驶车辆可以通过通信网络进行交互,把处理结果传输至自动驾驶车辆,从而使自动驾驶车辆具有基于点云数据识别目标的能力。
若***架构中模块可以全部位于自动驾驶车辆中,则模块之间的协调处理过程可以如下文提及的那样处理,此处不再赘述。
示例性地,数据采集设备260可用于采集样本数据并存入数据库230。该样本数据例如可以是点云数据。点云数据是指在一个三维坐标***中的一组向量的集合,对应于每一个点,都可以包括它的三维坐标,甚至还可以包含颜色信息(如RGB)或反射强度信息(intensity)。应理解,一组点云数据对应一个样本数据,点云数据可以由激光雷达传感器产生。该样本数据例如还可以是图像数据。图像数据可以由立体摄像头和越渡时间(timeof flight,TOF)相机或者普通相机中的一种或者多种采集得到。
训练设备220基于数据库230中的样本数据生成目标模型/规则201。该目标模型/规则201能够实现对输入数据的特征提取,以使得基于所提取的特征能够准确地判断目标所对应的类别。且该目标模型/规则201可迁移至不同的领域,以减少人工标注的工作量,或解决人工标注标签比较难获得的情况。
在下文所示的实施例中,该目标模型/规则201可对应于方法300中的神经网络,也可对应于方法700中的目标模型。
训练设备220得到的目标模型/规则可以应用在不同的***或设备中。一种可能的实现方式中,在图2中,执行设备210配置I/O接口212,与外部设备进行数据交互,用户可以通过客户设备240向I/O接口212输入数据。
执行设备210可以调用数据存储***250中的数据、代码等,也可以将数据、指令等存入数据存储***250中。
计算模块211使用目标模型/规则201对输入的数据进行处理。示例性地,在本申请实施例中,计算模块211可以将数据采集设备260采集的数据或数据存储***250的数据,如激光雷达传感器采集的点云数据,输入训练好的神经网络,提取点云数据的特征。
关联功能模块213可以为与计算模块211的目标模型相关的额外的功能模块,例如识别模块,结合目标模型201,并基于数据采集设备采集的数据或数据存储***的数据或者客户***上传的数据,实现目标的识别。可选地,所述数据可以为点云数据,以实现基于点云数据的目标识别;所述数据也可以为图像数据,例如ImageNet数据集,以实现基于图像的目标识别。
关联功能模块214可以为与计算模块211的目标模型相关的额外的功能模块,如检测模块,结合目标模型201,并基于数据采集设备260采集的数据或数据存储***250的数据或者客户***上传的数据,该数据可以为图像数据,例如CoCo数据集,以实现对目标图像的检测。
最后,I/O接口212将处理结果返回给客户设备240,提供给用户。
更深层地,训练设备220可以针对不同的目标,基于不同的数据生成相应的目标模型/规则201,以给用户提供更佳的结果。应理解,本申请实施例以点云数据为例,给出了相应的基于点云数据的训练过程,即生成了与点云数据相应的目标模型,同样也可以基于其他数据,例如图像数据进行训练,得到相应的目标模型,本申请实施例对此不作限定。
在图2中所示情况下,用户可以手动指定输入执行设备210中的数据,例如,在I/O接口212提供的界面中操作。另一种情况下,客户设备240可以自动地向I/O接口212输入数据并获得结果,如果客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到点云数据存入数据库230。
应理解,图2仅是本申请实施例提供的一种***架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储***250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储***250置于执行设备210中。下面将更详细地描述训练设备220如何基于样本数据得到目标模型/规则201,其中,目标模型/规则201能够提取样本数据的样本特征,为后续目标识别或目标检测等特定的功能做准备。
为便于理解后文实施例,下面对训练设备220训练深度神经网络的原理进行说明。如前所述深度神经网络中的每一层的工作可以用数学表达式y=δ(wx+b)来描述:从物理层面深度神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1)、升维/降维;2)、放大/缩小;3)、旋转;4)、平移;5)、弯曲。
其中1)、2)、3)的操作可以由wx完成,4)的操作可以由+b完成,5)的操作则可以由δ()来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,w是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该向量w决定着上文所述的输入空间到输出空间的空间变换,即每一层的权重w控制着如何变换空间。训练深度神经网络的目的,也就是希望最终得到训练好的神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
通常情况下,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
为了在保证较高的识别准确率或者检测准确率的基础上,减小监督学习中人工标注标签带来的巨大工作量,本申请实施例提出了一种自监督学习的方法来训练神经网络。通过基于聚类方法得到样本的标签,基于得到的标签能够区别出一个样本的负样本,并基于正样本和负样本构建损失函数,并基于该损失函数实现对神经网络的权重矩阵的更新,从而实现使神经网络不依赖人工标注数据也能具有较好的特征提取功能,保证较高的识别准确率或者检测准确率。
为了便于理解本申请实施例,图3提供了训练设备220基于样本数据得到目标模型201的方法300的示意图。该目标模型201可以是图3所示的方法300所述的神经网络。
如图3所示,该方法300可以包括步骤310至步骤360,下面对方法300中的各个步骤做详细说明。
步骤310,获取N组样本。
具体而言,该N组样本可对应于N个目标。其中,N>1且为整数。示例性地,该N个目标例如可以是人、车、建筑物等通过自动驾驶车辆可检测到的物体。
在本申请实施例中,该N组样本中的每组样本包括对应于同一目标的Q个样本,Q≥2且为整数。该N组样本可以基于数据采集设备采集到的点云数据而获得。换言之,每组样本中的Q个样本都可以基于数据采集设备采集到的点云数据而获得。该数据采集设备例如可对应于图中所示的数据采集设备260,例如可以是激光雷达传感器、立体摄像头、越渡时间相机、普通相机等。该数据采集设备可以是自动驾驶车辆的一个组成部分,也可以是能够与自动驾驶车辆进行数据交换的一个设备。本申请实施例对此不作限定。
为便于理解和说明,这里不失一般性地以一组样本为例来说明获取样本的详细过程。
在一种可能的实现方式中,一组样本中的Q个样本可以是基于对应于同一目标采集到的原始点云数据或原始图像数据进行数据增广得到的。
对原始点云数据的数据增广例如可以包括但不限于,旋转、平移、缩放、截断、降采样等。基于Q种不同的数据增广方式,可以得到对应于同一目标的Q个样本。图4中的(a)是对点云数据进行数据增广的示意图。如图所示,分别对一组原始点云数据分别进行旋转、平移、尺寸变化、截断、降采样等数据增广后,可以得到图中所示的多组点云数据。
对原始图像数据的数据例如可以包括但不限于,旋转、水平翻转、尺度缩放、色彩变化、模糊等。基于Q中不同的数据增广方式,也可以得到对应于同一目标的Q个样本。
图4中的(b)是对图像数据进行数据增广的示意图。如图所示,分别对一组图像数据进行水平翻转、尺度缩放、旋转、色彩变化、模糊等数据增广后,可以得到如图中所示的多组图像数据。
应理解,上述多种数据增广方式可以基于专家经验选取得到,可以采取其中的一种或者几种方式得到,也可以是不同本申请实施例的其他方式得到,本申请对于数据增广的具体方式不作限定。
在另一种可能的实现方式中,一组样本中的Q个样本可以是基于多模态数据得到的,应理解,此处多模态数据可以指通过不同采集设备得到的数据。例如可分别采用激光雷达传感器、立体摄像头、TOF相机等不同的采集设备来采集同个目标的Q组数据,从而得到某个目标对应的Q个样本。应理解,此种方式下,Q组数据既有从激光雷达传感器的点云数据,也有从立体摄像头和TOF相机中获取的图像数据。或者说,Q个样本既包括点云数据,又包括图像数据。
由此可以看到,一组样本中的Q个样本可以是基于一组点云数据而得到,也可以是基于一组图像数据而得到,还可以是Q组数据而得到,该Q组数据可以包括点云数据和/或图像数据,本申请实施例对此不作限定。
应理解,除了以上两种实现方式,获得对应于同一个目标的Q个样本还可以通过其他的实现方式得到,例如,可以将上述两种实现方式结合,通过多种采集设备采集同一目标的多组数据,然后对每组数据进行数据增广而得到,本申请包括但不限于此。
步骤320,通过待训练的神经网络对该N组样本中的每个样本进行特征提取,得到该N组样本的特征向量。
应理解,神经网络的初始参数可以为随机初始化得到。
若神经网络所表征的函数可以记为f(),用hi=f(xi)表示神经网络进行特征提取后的第i个样本xi的特征向量。可以理解的是,采用不同的神经网络来对样本进行特征提取,所得到的特征向量是不同的。作为示例而非限定,该神经网络可以为CNN。此情况下,通过神经网络对样本进行特征提取的步骤可通过卷积操作来实现。
为了减小计算量,对神经网络输出的各组样本的特征向量还可以进行降维处理。
可选地,该方法还包括:步骤330,对N组样本的特征向量中的每个特征向量进行降维处理,得到N组样本中每个样本的降维后的特征向量。
在一种实现方式中,降维处理可以采用非线性变换实现。
具体地,非线性变换可以通过线性加权和非线性激活函数实现。例如,对样本i的特征向量zi进行非线性变换得到:其中,W1、W2分别为两层全连接网络的参数,δ函数例如可以为:δ(x)=max{0,x}。应理解,此处的δ函数也可以为其他非线性激活函数,如sigmoid函数、tanh函数,带泄漏线性整流函数(leaky rectified linear unit,LReLU),带参数的线性整流函数(parametric rectified linear unit,PReLU),本申请对此不作限定。
在另一种实现方式中,降维处理可采用线性变换来实现。
应理解,上文列举的降维处理的具体实现方式仅为示例,不应对本申请构成任何限定。本领域的技术人员可以基于现有技术中的其他实现方式来实现特征向量的降维。
步骤340,基于预定义的损失函数计算总损失和。
在本申请实施例中,总损失和可以是指通过该N组样本训练神经网络时得到的损失函数值之和。下文中为方便说明,将通过某一组样本训练神经网络时得到的损失函数值记为该组样本的损失函数值,例如通过第n组样本训练神经网络时得到的损失函数值可以记为第n组样本的损失函数值。
其中,第n组样本的损失函数值可以是由该第n组样本中的至少一个样本的损失函数值确定,例如可以由其中一个样本的损失函数值确定,也可以由Q个样本的损失函数值确定。换句话说,第n组样本的损失函数值可以是由该第n组样本中的部分样本的损失函数值确定,也可以由该第n组样本中的全部样本的损失函数值确定。本申请实施例对此不作限定。其中每个样本的损失函数值基于预定义的损失函数计算得到。
下面结合样本i对损失函数及损失函数值做详细说明。该样本i可以是上述N组样本中的任意一个样本。
该样本i的损失函数值可以由正样本相似度和负样本相似度确定。这里,正样本具体可以是指对应于同一目标的样本;负样本具体可以是指对应于不同目标和不同类别的样本。例如,样本i的正样本与样本i对应于同一目标;样本i的负样本与样本i对应于不同的目标,且对应的目标所属的类别也不同。可以理解,样本i的正样本可以包括与样本i属于同一组样本的其他样本,样本i的负样本与样本i不属于同一组样本。
可以理解,每个目标可以对应一种类别,该类别可以由人工标注的标签来标识。在本申请实施例中,为了减少人工标注带来的时间和精力,上述N组样本所对应的N个目标中,至少由一个目标所属的类别可以通过聚类分析得到。例如,该样本i对应的目标所属的类别可以基于对样本i的特征向量进行聚类分析得到。聚类分析的方法例如可以包括但不限于,k均值(k-means)聚类方法、具有噪声的基于密度的聚类方法(density-based spatialclustering of applications with noise,DBSCAN)、图卷积网络(graph convolutionnetwork,GCN),或者其中多种不同聚类分析方法的结合,本申请对此不做限定。
作为一种可能的实现方式,该N组样本所对应的N个目标所属的类别均通过聚类分析得到,因此,该N个目标所属的类别均可以通过伪标签来标识。
在本申请实施例中,为了便于区分人工标注的标签,将基于聚类分析得到的用于标识类别的标签称为伪标签。
不同的类别可通过离散的整数来区分。这里,对于人工标注来说,离散的整数为标签的一例;对于聚类分析来说,离散的整数为伪标签的一例。
以聚类分析得到的伪标签为例。当目标分别为小轿车和人时,其对应的类别分别为车和人,对应的伪标签分别为0和1。又例如,若某多组点云数据中包含有车辆1、车辆2和人,则其对应的类别分别为车、车和人,对应的伪标签分别0、0和1。
示例性地,该样本i可以与Q-1个样本互为正样本,该Q-1个样本与该样本i属于同一组样本。该样本i可以与一个或多个样本互为负样本,例如记为Pi个,Pi为正整数。该Pi个负样本可能属于一组样本,也可能属于多组不同的样本,但可以理解,该Pi个负样本与样本i不属于同一组样本。此外,随着样本i的不同,对应的负样本的数量也不同。也即,Pi的值可能会随i的变化而变化。
图5是正样本和负样本的示意图。图5示出了一组人的点云数据和另一组车的点云数据。分别经过两种数据增广后,可以得到两组人的点云数据和两组车的点云数据。将该两组人的点云数据和车的点云数据分别输入CNN网络,进行特征提取,可以得到各组点云数据的特征向量。则由车的两组点云数据提取得到的车的两个特征向量互为彼此的正样本。由人的两组点云数据提取得到的两个特征向量互为彼此的正样本。如图5中虚线双箭头所示,箭头两端的两个特征向量互为彼此的正样本。对应于不同类别的点云数据的特征向量互为彼此的负样本,如图5中车对应的两个特征向量与人对应的两个特征向量都互为负样本,如图5中实线双箭头所示,箭头两端的两个特征向量互为彼此的负样本。
应理解,图5仅以点云数据为例说明正负样本的概念,实际应用中输入的数据也可以由图像数据组成,或者由图像数据和点云数据共同组成,其正负样本的概念可以参考本申请关于正负样本的描述和图5及其描述,此处不作赘述。
样本间的相似度例如可以通过相似度函数得到。例如,样本i与样本j的相似度可通过相似度函数sim(zi,zj)计算得到。一种可能的实现方式是,sim(zi,zj)=zigzj。其中,g表示点乘,zi表示样本i的降维后的特征向量的方向,zj表示样本j的降维后的特征向量的方向。通过该相似度函数可以计算出两个向量的方向之间的夹角。
为了方便后续对相似度函数以及损失函数的计算,可以对上述N组样本中每个样本的特征向量进行预处理,以获得各向量的方向。
可选地,在步骤340之前,该方法还包括:步骤350,对N组样本中每个样本的特征向量进行预处理。
预处理可以是针对未经过降维处理的特征向量的处理,也可以是针对经过降维处理后的特征向量的处理。本申请实施例对此不作限定。
以样本i的对降维后的特征向量为例,对进行预处理可以通过公式表示为:其中,表示的模。此预处理过程可视为,将向量投影到单位球面,以获得该向量的方向的过程。应理解,对未经过降维处理的特征向量的预处理的具体操作与对降维后的特征向量的具体操作是相同的,为了简洁,此处不再赘述。下面将以降维处理和预处理后的特征向量为例,结合正样本相似度和负样本相似度来详细说明损失函数值及总损失和的计算过程。
可以理解,正样本相似度可以是指互为正样本的两个样本之间的相似度,负样本相似度可以是指互为负样本的两个样本之间的相似度。
对于一个样本来说,如样本i,其正样本相似度可以是指,该样本i与一个正样本的相似度,也可以是该样本i与所有正样本的相似度。在本申请实施例中,由于每组样本包括Q个样本,故该样本i与所有正样本的相似度具体可以是指,该样本i与Q-1个正样本的相似度。
仍以样本i为例,其负样本相似度可以是指,该样本i与一个负样本的相似度,也可以是该样本i与所有负样本的相似度。如前所述,同组内的样本互不为负样本。该样本i的负样本具体可以包括上述N组样本中所有与样本i不同类别的样本。
示例性地,假设样本i的正样本包括样本j,样本i的损失函数值可以由如下损失函数li计算得到:
其中,τ为超参数,τ的值可以为预定义的。
可以看到,上式中样本i的正样本相似度为样本i与样本j的相似度,样本i的负样本相似度包括样本i与所有负样本(即,共计Pi个负样本)的相似度。
更通用地,损失函数li也可以表示为:
其中,m表示N组样本共计Q×N个样本中的样本m,1≤m≤Q×N,且m为整数。
应理解,样本i的正样本并不仅限于样本j,如上所述,样本i可以与Q-1个样本互为正样本,该样本j可以是该Q-1个样本中的任意一个。
另一示例,假设Q=4,则样本i的正样本为3个,分别为样本j、样本k和样本l,样本i的损失函数值也可以由如下损失函数li计算得到:
或者,更通用地,该样本i的损失函数值也可以由如下损失函数li计算得到:
其中,zq表示该样本i的Q-1个正样本中的第q个正样本,1≤q≤Q-1,q为整数。可以看到,上式中样本i的正样本相似度包括样本i与所有正样本(即,共计Q-1个)的相似度,样本i的负样本相似度包括样本i与所有负样本(即,共计Pi个负样本)的相似度。
应理解,样本i的正样本相似度可以由与部分正样本的相似度确定,也可以由与全部正样本的相似度确定。样本i的负样本相似度可以由与部分负样本的相似度确定,也可以由于全部负样本的相似度确定。本申请实施例对此不作限定。
可以理解的是,当采用该样本i的所有正样本和所有负样本来分别计算正样本相似度和负样本相似度时,所得到的损失函数值更为准确,更有利于神经网络的快速收敛。
如前所述,每组样本的损失函数值可以由组内全部样本的损失函数值确定。
例如,假设Q=4,与样本i同组的样本还包括样本j、样本k和样本l,则该组样本的损失函数值也可以由该4个样本的损失函数计算得到。
例如,该4个样本的损失函数li、lj、lk、ll分别如下:
其中,Pj表示样本j的负样本的数量。Pk表示样本k的负样本的数量,Pl表示样本l的负样本的数量。Pj、Pk、Pl均为正整数。
可以理解的,在正常情况下,若同一组样本的标签是相同的,则对于同一组样本来说,其负样本的数量可能是相同的,故Pi=Pj=Pk=Pl。
但也可以理解,若采用聚类分析的方法得到同一组样本中每个样本的伪标签,则同一组样本中Q个样本对应的负样本的数量也有可能是不同的,例如在本示例中,Pi、Pj、Pk、Pl并不一定相同。
该组样本的损失函数值为li+lj+lk+ll。也即:
由于样本i和样本j对应的负样本可能不同,因此对于样本i和样本j,其对应的Pi和Pj也可能不同,因此针对同一组内样本中的每个样本分别计算正样本相似度和负样本相似度,所得到的损失函数值更为准确。
若同一组样本内的各样本对应的负样本数量相同,上式也可简化为:
可以看到,上述损失函数不但考虑到了正样本之间的相似度,还考虑到了不同类别的样本之间的相似度,所计算的总损失和更为准确,更有利于神经网络的快速收敛。
作为一个实施例,假设每组样本包括2个样本。即,Q=2。则N组样本的总损失和可以表示如下:
应理解,上文对相似度函数的计算以及损失函数值的计算也可以直接基于降维前和预处理前的特征向量来操作的。本领域的技术人员基于相同的构思,所上文所列举的公式进行数学变换即可。为了简洁,此处不再赘述。
步骤360,基于总损失和,训练神经网络。
对神经网络的训练可以基于一些优化算法,通过对总损失和L的最小化来实现。其中,上述优化算法例如可以为梯度下降算法,也可以为其他优化算法,本申请对此不做限定。
基于上述技术方案,通过聚类分析获得N组样本中的至少部分样本的类别,并基于类别来判断各样本的负样本,进而基于正样本相似度和负样本相似度构建损失函数,计算N组样本的总损失和。通过最小化该总损失和,可以调整神经网络的参数,使得神经网络具有提取样本数据特征的能力。在对神经网络的训练过程中,减少了人工标注的工作量,并通过构建相应的损失函数,快速、准确地完成神经网络的训练。
为了更好地理解本申请实施例提供的方法,图6更为直观地示出了训练神经网络的过程。
图6中的(a)示出了对人的一组点云数据的预处理过程,该点云数据为无标签数据。首先通过数据增广方法对一组原始点云数据进行数据增广,得到该人的两组点云数据,然后将该两组点云数据输入CNN(即,神经网络的一例)中提取得到两组点云数据的特征向量,对该两组点云数据的特征向量进行预处理,图6中的(a)示出了将该两组点云数据的特征向量投影到单位球面上的预处理过程。基于预处理后的特征向量进行聚类分析,可以得到该组点云数据所对应的目标的类别(例如可通过伪标签标识)。此后,便可基于聚类分析的结果和预处理后的特征向量,计算该组点云数据的损失函数值,进而更新CNN的网络参数。
图6中的(b)示出了对两组关于人的点云数据的预处理过程,这两组数据中的一组为带标签数据A,另一组为无标签数据B,后面便于描述,将带标签数据A记为A组数据,将无标签数据B记为B组数据。其中,A组数据的标签可以是通过人工标注获得,也可以是其他自监督训练得到的模型推理获得,本申请实施例对此不作限定。
对两组点云数据的处理过程为:首先对A、B两组数据进行数据增广,分别得到对应于A组数据的两组点云数据和对应于B组数据的两组点云数据,共计四组点云数据,也即,两组样本,每组两个样本。然后将该四组点云数据输入CNN(即,神经网络的一例)中提取得到该四组点云数据的特征向量。对该四组点云数据的特征向量进行预处理,图6中的(b)示出了将四组点云数据的特征向量投影到单位球面上的预处理过程。基于预处理后的特征向量进行聚类分析,可以得到B组数据的伪标签。然后基于A组数据的标签和B组数据的伪标签,以及上述四组点云数据经预处理后的特征向量,计算这四组点云数据的损失函数值,进而更新CNN的网络参数。
应理解,图6中的(a)和(b)仅仅使示出了一组和两组点云数据的数据增广、特征提取和特征投影的过程,但是在实际训练中,一次可以输入多组点云数据,所以可以基于这多组点云数据的损失函数值的和更新CNN的参数,训练得到CNN的网络层参数。并且该多组点云数据中至少一组点云数据可以通过人工标注获得相应的标签。
应理解,CNN对应于神经网络,神经网络也可以为其他神经网络,此处不作赘述,此外,图6仅以点云数据为例说明训练神经网络的过程,实际应用中也可以采用图像数据或者图像数据和点云数据的组合进行训练神经网络,此处不作赘述。
应理解,上文所提供的训练神经网络的方法并不限于在自动驾驶领域应用,训练所得的神经网络也不限于在自动驾驶车辆中使用。本申请实施例对此不作限定。
还应理解,该神经网络的特征提取功能可用于不同的目标模型中,以实现目标识别、目标检测、实例分割等不同的功能。换言之,该神经网络可以迁移至不同的目标模型中,实现不同的功能。
下文中将结合图7详细说明将神经网络迁移至不同的目标模型中进行训练的过程。
图7是本申请另一实施例提供的训练神经网络的示意性流程图。如图7所示,该方法700可以包括步骤710至720。下面结合图2的***架构对700中的各个步骤做详细说明。
步骤710,训练设备基于获得的训练样本训练得到神经网络。
应理解,该训练设备可以是图2中的训练设备220。训练设备220可以基于上文结合图3所描述的方法300来训练获得神经网络。为了简洁,这里不再赘述。可以理解,此处的步骤710可以替换为上文方法300中的步骤310至步骤360。
此外,训练所得的神经网络的参数可以保存至数据库230或者数据存储***250中。在后续使用时,训练设备220可以从该数据库230或者数据存储***中250中获取该神经网络的参数。
在步骤720中,基于神经网络的参数,对目标模型进行训练。
具体而言,该目标模型例如可以是目标识别模型、目标检测模型、实例分割模型等。本申请实施例包括但不限于此。该目标模型可以包括骨干(backbone)网络和头(head)两个模块。与目标模型相对应,头具体可以是识别网络、检测网络、分割网络等。
训练设备220可以将神经网络的参数作为该骨干网络的初始化参数,然后使用一定量的来自特定任务(如目标识别、目标检测、实例分割等)的带标注的样本,对该目标模型进行训练。基于该方法,通过微调(finetune),便可以获得较高精度的目标模型。
图8示出了训练目标模型的示意图。如图8所示的训练过程以图像数据为训练样本。该训练过程具体可以分为两部分,第一部分可以对应步骤710,第二部分可以对应步骤720。
第一部分,首先对图像数据进行数据增广得到增广后的图像数据,然后将增广后的图像数据输入CNN模型中,得到图像数据的特征向量,此后将特征向量进行预处理,基于预处理后的特征向量计算损失函数值,基于损失函数值更新CNN模型的参数,得到最终的CNN模型参数。
第二部分,将第一部分得到CNN模型的参数作为目标检测模型或实例分割模型的骨干网络的初始化参数,使用一定量的来自特定任务(如目标检测或实例分割)的带标注的样本结合检测网络或分割网络,微调骨干网络的参数,可以获得较高精度的目标模型。
应理解,CNN对应于神经网络,神经网络也可以为其他神经网络,此处不作赘述。此外,图8仅以图像数据为例示出了训练目标模型的过程,实际应用中也可以采用点云数据或者图像数据和点云数据的组合训练目标模型,为了简洁,此处不作赘述。
以目标检测模型的训练过程为例。该目标检测模型包括骨干网络和检测头。训练设备220可以先将训练得到的神经网络的参数作为该目标检测模型的骨干网络的初始化参数,然后使用一定量的带有边界框(bounding box)标注的样本来进行监督时,利用反向传播(back propagation)算法来计算物体检测模型参数(包括骨干网络和检测头中的参数)的梯度。利用计算得到的梯度,来更新目标检测模型的参数,从而达到该目标检测模型的损失函数值的最小化。
应理解,上述来自特定任务的带标注的样本例如可以是从数据库230或者数据存储***250中获取到的标注后的点云数据。本申请实施例对此不作限定。
再以目标识别模型的训练过程为例。该目标识别模型包括骨干网络和识别头。训练设备220可以先将训练得到的神经网络的参数作为该目标识别模型的骨干网络的初始化参数,然后再加上识别头,识别头例如可以为softmax分类器,然后采用现有的一些监督学习方法,例如基于交叉熵损失函数训练目标识别模型。应理解,骨干网络可以根据自己的需要,由不同的神经网络组成,例如可以为CNN,也可以为循环神经网络,或者也可以为其他网络组成,本申请实施例对此不作限定。还应理解,上述过程仅以示例的方式对识别头进行说明,不应对本申请实施例构成限定,实际应用中本领域技术人员也可以基于其他不同的识别头训练得到目标模型,此处不再赘述。
基于上述技术方案,将采用自监督学习训练得到神经网络的参数作为目标模型的骨干网络的初始化参数,根据不同的应用场景和需求,采用监督学习的方式对目标模型进行训练。由于初始化参数是经过训练后的神经网络的参数,具有较优的特征提取的能力,仅需微调,便可达到该目标检测模型的损失函数的最小化。因此,可以提高训练效率,同时也可减少人工标注数据的使用,减少对人工标注的依赖。
前已述及,本申请实施例提供的训练神经网络的方法中,训练样本并不限于点云数据,例如还可以是图像数据。基于不同的训练样本训练所得到的神经网络和目标模型可以用于不同数据类型的特征提取和目标检测、目标识别等功能。
下文示出了基于不同的训练方法训练得到的目标模型的性能比较。
表1是基于本申请实施例提供的训练神经网络的方法训练得到的目标识别模型和基于其他方法训练得到的目标识别模型对相同的图像数据的识别结果。其中,用于训练的样本为图像数据,来自ImageNet图像集。用于训练的模型为残差网络(residual network-50,Resnet-50)模型。训练方法包括:监督学习、动量对比版本2(momentum contrastversion 2,MoCo v2,MoCo v2为无监督学习的一种)和本申请实施例提供的训练方法。其中,MoCo v2方法为现有的无监督学习方法中识别正确率最高的方法。
其中,通过本申请实施例提供的训练方法来训练目标识别模型时,训练神经网络的图像数据为来自ImageNet图像集的1281167张图片,用于训练目标识别模型的图像数据为来自ImageNet图像集中带有标签的500张图片,并且将ImageNet图像集的5万张图片验证集作为目标识别模型的验证集,得到如表1所示的结果。
表1
方法 | ImageNet图像集(识别正确率%) |
监督学习 | 76.5 |
MoCo v2 | 71.1 |
目标模型 | 72.5 |
表1中,识别正确率由识别正确的图像个数除以所有的验证集图像个数得到。
由表1可以看出,基于监督学习训练得到的目标识别模型的识别正确率76.5%。基于MoCov2训练得到的目标识别模型的识别正确率71.1%。基于本申请实施例提供的训练神经网络的方法训练得到的目标识模型的识别正确率为72.5%。该识别正确率高于无监督学习训练得到的模型的识别正确率,低于监督学习训练得到的模型的识别正确率。但是,与监督学习相比,能够减少人工标注数据的使用,减少人工标注的工作量,从而节约人工成本。
表2是基于本申请实施例提供的训练神经网络的方法训练得到的目标检测模型和基于其他方法训练得到的目标检测模型对相同的图像数据的检测结果。其中,用于训练的样本为图像数据,来自ImageNet数据集和CoCo数据集。用于训练的模型为Resnet-50模型。训练方法包括:监督学习、MoCo v2(无监督学习的一种)和本申请实施例提供的训练方法。
其中,通过本申请实施例提供的训练方法来训练目标检测模型时,训练神经网络的图像数据为来自ImageNet数据集的1281167张图片,用于训练目标检测模型的图像数据为来自CoCo数据集中带有边界框的1000张图片,并将CoCo数据集的4万张图片验证集作为目标检测模型的验证集,得到如表2所示的结果。表2通过平均预测精度(mean averageprecision,MAP)和训练收敛速度这两个参数来比较了随机初始化的Resnet-50模型、经过监督学习训练得到的目标检测模型、基于MoCo v2训练得到的目标检测模型和基于本申请实施例提供的方法训练得到的目标检测模型。其中,训练收敛速度可通过epoch来表示,1个epoch代表对所有的训练样本训练1轮。
表2
方法 | CoCo数据集(MAP%) | 训练收敛速度(Epoch) |
随机初始化 | 29.8 | |
监督学习 | 34.8 | 80 |
MoCo v2 | 34.5 | 800 |
目标模型 | 35.8 | 360 |
由表2可以看出,基于监督学习训练得到的目标检测模型的MAP为34.8%,训练收敛速度为80个epoch。基于MoCo v2训练得到的目标检测模型的MAP为34.5%,训练收敛速度为800个epoch。基于本申请实施例提供的训练神经网络的方法训练得到的目标检测模型的MAP为35.8%,训练收敛速度为350个epoch。基于本申请实施例提供的方法训练得到的目标检测模型的MAP高于其他训练方法训练得到的模型。基于本申请实施例提供的方法训练得到的目标检测模型的训练收敛速度低于监督学习的训练收敛速度,但高于MoCo v2的训练收敛速度。因此整体而言,训练速度中等,但检测效果较好。并且,该方法能够减少人工标注数据的使用,减少人工标注的工作量,从而节约人工成本。
以下,将结合图9至图10详细说明本申请实施例提供的装置。
图9为本申请实施例提供的训练神经网络的装置900的示意性框图。如图9所示,该装置900包括:获取模块910和训练模块920。其中:获取模块910可用于获取N组样本,所述N组样本对应于N个目标,所述N组样本中的每组样本包括对应于同一目标的Q个样本,所述N组样本基于所述自动驾驶车辆采集到的N组数据而获得,所述N组数据可以是点云数据和/或图像数据;N>1,Q≥2,N、Q为整数;训练模块920可用于通过待训练的神经网络对所述N组样本中的每个样本进行特征提取,得到所述N组样本的特征向量;并可用于基于预定义的损失函数计算总损失和,所述总损失和为所述N组样本的损失函数值之和,所述N组样本中第n组样本的损失函数值由所述第n组样本中至少一个样本的损失函数值确定;其中,样本i的损失函数值由所述样本i的正样本相似度和负样本相似度确定,所述样本i的正样本相似度包括所述样本i与所述样本i对应的正样本的相似度,所述样本i的负样本相似度包括所述样本i与所述样本i对应的负样本的相似度,所述样本i对应的正样本与所述样本i对应于同一目标,所述样本i对应的负样本与所述样本i对应于不同类别的目标;所述样本i是所述N组样本中的任意一个样本,所述第n组样本是所述N组样本中的任意一组样本,且所述N组样本中至少一组样本所对应的目标的类别是基于对所述至少一组样本的特征向量进行聚类分析得到的;1≤n≤N,1≤i≤N×Q,n、i均为整数;还可用于基于所述总损失和,训练所述神经网络。
应理解,图9所示的训练神经网络的装置900的训练模块920可对应于前文结合图3或图7所示的方法实施例中的训练设备,并执行该训练设备执行的方法。该装置900的具体工作方式及原理可参照前文结合图3或图7所示的方法实施例的相关描述,为了简洁,这里不在赘述。还应理解,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
图10是本申请实施例提供的训练神经网络的装置的另一示意性框图。该装置可用于实现上述方法中训练设备220的功能。其中,该装置可以为芯片***。本申请实施例中,芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
如图10所示,该装置1000可以包括至少一个处理器1010,用于实现本申请实施例提供的方法中训练设备220的功能。示例性地,处理器1010可用于获取N组样本;通过待训练的神经网络对所述N组样本中的每个样本进行特征提取,得到所述N组样本的特征向量;基于预定义的损失函数计算总损失和;基于预定义的损失函数计算总损失和。具体参见方法示例中的详细描述,此处不做赘述。
该装置1000还可以包括至少一个存储器1020,用于存储程序指令和/或数据。存储器1020和处理器1010耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1010可能和存储器1020协同操作。处理器1010可能执行存储器1020中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。
该装置1000还可以包括通信接口1030,用于通过传输介质和其它设备进行通信,从而用于装置1000中的装置可以和其它设备进行通信。示例性地,该其他设备可以是云端服务器或者自动驾驶车辆。所述通信接口1030例如可以是收发器、接口、总线、电路或者能够实现收发功能的装置。处理器1010可利用通信接口1030收发数据和/或信息,并用于实现图3或图7对应的实施例中所述的训练设备所执行的方法。
本申请实施例中不限定上述处理器1010、存储器1020以及通信接口1030之间的具体连接介质。本申请实施例在图10中以处理器1010、存储器1020以及通信接口1030之间通过总线1040连接。总线1040在图10中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,本申请提供的装置900和1000可以为自动驾驶车辆中的一部分模块或者装置,还可以为装置的一部分功能在自动驾驶车辆中实现,另一部分功能在云端服务器实现。并且若装置900和1000在分布在云端服务器和自动驾驶车辆中时,则云端服务器和自动驾驶车辆之间可以进行通信。
本申请还提供一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行图3或图7所示实施例中任意一个实施例的方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)。当所述计算机程序被运行时,使得计算机执行图3或图7所示实施例中任意一个实施例的方法。
应理解,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本说明书中使用的术语“单元”、“模块”等,可用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,各功能单元的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令(程序)。在计算机上加载和执行所述计算机程序指令(程序)时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (22)
1.一种训练神经网络的方法,其特征在于,所述神经网络应用于自动驾驶车辆中,所述方法包括:
获取N组样本,所述N组样本对应于N个目标,所述N组样本中的每组样本包括对应于同一目标的Q个样本,所述N组样本基于所述自动驾驶车辆采集到的N组数据而获得,所述N组数据可以是点云数据和/或图像数据;N>1,Q≥2,N、Q为整数;
通过待训练的神经网络对所述N组样本中的每个样本进行特征提取,得到所述N组样本的特征向量;
基于预定义的损失函数计算总损失和,所述总损失和为所述N组样本的损失函数值之和,所述N组样本中第n组样本的损失函数值由所述第n组样本中至少一个样本的损失函数值确定;其中,样本i的损失函数值由所述样本i的正样本相似度和负样本相似度确定,所述样本i的正样本相似度包括所述样本i与所述样本i对应的正样本的相似度,所述样本i的负样本相似度包括所述样本i与所述样本i对应的负样本的相似度,所述样本i对应的正样本与所述样本i对应于同一目标,所述样本i对应的负样本与所述样本i对应于不同类别的目标;所述样本i是所述N组样本中的任意一个样本,所述第n组样本是所述N组样本中的任意一组样本,且所述N组样本中至少一组样本所对应的目标的类别是基于对所述至少一组样本的特征向量进行聚类分析得到的;1≤n≤N,1≤i≤N×Q,n、i均为整数;
基于所述总损失和,训练所述神经网络。
3.如权利要求1或2所述的方法,其特征在于,在所述对所述N组样本中每个样本的特征向量进行预处理之前,所述方法还包括:
对所述N组样本的特征向量中每个样本的特征向量进行降维处理,得到所述N组样本中每个样本的降维后的特征向量;以及
所述对所述N组样本中每个样本的特征向量进行预处理,包括:
对所述N组样本中每个样本的降维后的特征向量进行所述预处理。
5.如权利要求1至4中任一项所述的方法,其特征在于,所述样本i的负样本相似度包括所述样本i与所述N组样本中所述样本i的全部负样本的相似度。
6.如权利要求1至5中任一项所述的方法,其特征在于,所述样本i的正样本包括所述样本i所属的样本组中除所述样本i之外的Q-1个样本,所述样本i的正样本相似度包括所述样本i与所述Q-1个样本中一个或多个样本的相似度。
10.一种训练神经网络的装置,其特征在于,包括:
获取模块,用于获取N组样本,所述N组样本对应于N个目标,所述N组样本中的每组样本包括对应于同一目标的Q个样本,所述N组样本基于所述自动驾驶车辆采集到的N组数据而获得,所述N组数据可以是点云数据和/或图像数据;N>1,Q≥2,N、Q为整数;
训练模块,用于通过待训练的神经网络对所述N组样本中的每个样本进行特征提取,得到所述N组样本的特征向量;并用于基于预定义的损失函数计算总损失和,所述总损失和为所述N组样本的损失函数值之和,所述N组样本中第n组样本的损失函数值由所述第n组样本中至少一个样本的损失函数值确定;还用于基于所述总损失和,训练所述神经网络;
其中,样本i的损失函数值由所述样本i的正样本相似度和负样本相似度确定,所述样本i的正样本相似度包括所述样本i与所述样本i对应的正样本的相似度,所述样本i的负样本相似度包括所述样本i与所述样本i对应的负样本的相似度,所述样本i对应的正样本与所述样本i对应于同一目标,所述样本i对应的负样本与所述样本i对应于不同类别的目标;所述样本i是所述N组样本中的任意一个样本,所述第n组样本是所述N组样本中的任意一组样本,且所述N组样本中至少一组样本所对应的目标的类别是基于对所述至少一组样本的特征向量进行聚类分析得到的;1≤n≤N,1≤i≤N×Q,n、i均为整数。
12.如权利要求10或11所述的装置,其特征在于,所述训练模块具体用于:
对所述N组样本的特征向量中每个样本的特征向量进行降维处理,得到所述N组样本中每个样本的降维后的特征向量;以及所述对所述N组样本中每个样本的特征向量进行预处理,包括:对所述N组样本中每个样本的降维后的特征向量进行所述预处理。
14.如权利要求10至13中任一项所述的装置,其特征在于,所述样本i的负样本相似度包括所述样本i与所述N组样本中所述样本i的全部负样本的相似度。
15.如权利要求10至14中任一项所述的装置,其特征在于,所述样本i的正样本包括所述样本i所属的样本组中除所述样本i之外的Q-1个样本,所述样本i的正样本相似度包括所述样本i与所述Q-1个样本中一个或多个样本的相似度。
19.如权利要求10至18中任一项所述的装置,其特征在于,所述装置部署在自动驾驶车辆上,或者,所述装置部署在云端服务器上。
20.一种训练神经网络的装置,其特征在于,包括处理器和存储器;其中,
所述存储器,用于存储程序代码;
所述处理器,用于调用所述存储器中所存储的程序代码,执行权利要求1至9中任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行权利要求1至9中任一项所述的方法。
22.一种计算机程序产品,其特征在于,包括计算机程序,当计算机运行所述计算机程序时,所述程序代码执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292364.1A CN115115016A (zh) | 2021-03-18 | 2021-03-18 | 一种训练神经网络的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292364.1A CN115115016A (zh) | 2021-03-18 | 2021-03-18 | 一种训练神经网络的方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115115016A true CN115115016A (zh) | 2022-09-27 |
Family
ID=83323340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110292364.1A Pending CN115115016A (zh) | 2021-03-18 | 2021-03-18 | 一种训练神经网络的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115115016A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118101274A (zh) * | 2024-02-27 | 2024-05-28 | 中国铁道科学研究院集团有限公司 | 网络入侵检测模型的构建方法、装置、设备及介质 |
-
2021
- 2021-03-18 CN CN202110292364.1A patent/CN115115016A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118101274A (zh) * | 2024-02-27 | 2024-05-28 | 中国铁道科学研究院集团有限公司 | 网络入侵检测模型的构建方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020221200A1 (zh) | 神经网络的构建方法、图像处理方法及装置 | |
US20220092351A1 (en) | Image classification method, neural network training method, and apparatus | |
WO2021190451A1 (zh) | 训练图像处理模型的方法和装置 | |
EP4064130A1 (en) | Neural network model update method, and image processing method and device | |
US20220215227A1 (en) | Neural Architecture Search Method, Image Processing Method And Apparatus, And Storage Medium | |
WO2022083536A1 (zh) | 一种神经网络构建方法以及装置 | |
WO2021008206A1 (zh) | 神经网络结构的搜索方法、图像处理方法和装置 | |
CN111368972B (zh) | 一种卷积层量化方法及其装置 | |
CN110222718B (zh) | 图像处理的方法及装置 | |
WO2022001805A1 (zh) | 一种神经网络蒸馏方法及装置 | |
CN113570029A (zh) | 获取神经网络模型的方法、图像处理方法及装置 | |
CN113705769A (zh) | 一种神经网络训练方法以及装置 | |
WO2022007867A1 (zh) | 神经网络的构建方法和装置 | |
WO2021129668A1 (zh) | 训练神经网络的方法和装置 | |
WO2021190433A1 (zh) | 更新物体识别模型的方法和装置 | |
WO2022156475A1 (zh) | 神经网络模型的训练方法、数据处理方法及装置 | |
CN111340190A (zh) | 构建网络结构的方法与装置、及图像生成方法与装置 | |
WO2023125628A1 (zh) | 神经网络模型优化方法、装置及计算设备 | |
CN113128285A (zh) | 一种处理视频的方法及装置 | |
US20220222934A1 (en) | Neural network construction method and apparatus, and image processing method and apparatus | |
WO2023179593A1 (zh) | 数据处理方法及装置 | |
CN115115016A (zh) | 一种训练神经网络的方法与装置 | |
CN115146757A (zh) | 一种神经网络模型的训练方法及装置 | |
CN117523549B (zh) | 基于深宽知识蒸馏的三维点云物体识别方法 | |
WO2023071793A1 (zh) | 神经网络的构建方法和装置 |
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 |