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

一种神经网络训练方法、检测方法以及装置与流程

2021-12-17 18:04:00 来源:中国专利 TAG:


1.本技术涉及人工智能领域,尤其涉及一种神经网络训练方法、检测方法以及装置。


背景技术:

2.在人工智能领域中,计算机视觉技术在自动驾驶,手机终端及安防等场景有着广泛的应用。主动学习是一种典型的数据挑选策略,用于降低数据标注的成本,是指通过自动的机器学习算法,从数据集中自动挑选出部分数据请求标注。通常,常用的主动学习在一些噪声较多的场景中无法发挥出作用,学习到的模型输出效果差。因此,如何得到输出效果更好的模型,成为亟待解决的问题。


技术实现要素:

3.本技术提供了一种神经网络训练方法以及装置,用于结合知识蒸馏来得到多种神经网络,并通过多种神经网络的输出来选择至少一个未标注样本进行标注,并使用标注后的样本进行再次训练,提升模型的输出效果。
4.有鉴于此,第一方面,本技术提供一种神经网络训练方法,包括:将数据集中的样本作为教师模型的输入,得到第一输出结果,将数据集中的样本作为第一学生模型的输入,得到第二输出结果,以及将数据集中的样本作为第二学生模型的输入,得到第三输出结果,数据集中的样本未携带标签,教师模型和第一学生模型为使用训练集进行训练得到,第二学生模型为使用教师模型进行知识蒸馏得到,训练集中包括携带标签的样本;通过第一偏差和第二偏差从数据集中筛选出至少一个未标注样本,第一偏差包括第一输出结果和第三输出结果之间的距离,第二偏差包括第二输出结果和第三输出结果之间的距离;获取至少一个已标注样本,并将至少一个已标注样本更新至训练集中,得到更新后的训练集,至少一个已标注样本为对至少一个未标注样本添加标签后得到;使用更新后的训练集对教师模型和第一学生模型进行训练,得到训练后的教师模型和训练后的第一学生模型,并使用训练后的教师模型对第二学生模型进行知识蒸馏,得到训练后的第二学生模型。
5.因此,本技术实施方式中,通过多种方式得到的学生模型,包括使用训练集训练和使用教师模型进行知识蒸馏,从而得到具有不同输出能力的学生模型以及教师模型,并通过不同输出能力的模型来输出未标注样本的输出结果,从而结合不同模型的输出差别来筛选出更适合模型训练的样本,从而可以提高模型的训练效果,提高模型的输出效果。且减少了对无用样本的标注,可以降低标注成本。
6.在一种可能的实施方式中,前述的通过第一偏差和第二偏差从数据集中筛选出至少一个未标注样本,可以包括:根据第一偏差和第二偏差计算数据集中的样本的不确定度,不确定用于表示数据集中的样本所包括的信息量的大小;根据不确定度从数据集中筛选出至少一个未标注样本。
7.本技术实施方式中,可以根据不同模型的输出之间的偏差,来计算样本的不确定度。可以利用不同模型的学习能力差异,有效区分高噪声样本和高不确定度样本,进而评价
样本的不确定度,筛选出需要进行标注的样本,以便于后续可以使用标注后的样本进行学习,从而使模型可以学习到该样本所包括的信息。
8.在一种可能的实施方式中,根据不确定度从数据集中筛选出至少一个未标注样本,可以包括:根据第二输出结果计算数据集中的样本的多样性度量,多样性度量用于表示数据集中的样本相对于数据集的多样性;根据不确定度和多样性度量,从数据集中筛选出至少一个未标注样本。
9.因此,本技术实施方式中,还可以结合多样性来筛选需要标注的样本,可以筛选出具有难度大、场景多样性强的样本集合。进而提升模型训练效果,降低人工标注量,节约标注成本。
10.在一种可能的实施方式中,根据不确定度和多样性度量,从数据集中筛选出至少一个未标注样本,可以包括:对数据集中每个样本的不确定度和多样性度量进行加权融合,得到每个样本的得分;根据每个样本的得分,从数据集中筛选出至少一个未标注样本。
11.因此,本技术实施方式中,可以融合不确定度和多样性度量来筛选出难度大、场景多样性强的样本集合,从而使神经网络可以学习到更多有效的信息,有效提升模型的训练效率以及输出效果。
12.在一种可能的实施方式中,根据第一偏差和第二偏差计算数据集中的样本的不确定度,可以包括:根据第一偏差和第二偏差之间的比值,融合第一偏差和第二偏差,得到数据集中的样本的不确定度。
13.因此,本技术实施方式中,可以根据偏差的比值来确定融合第一偏差和第二偏差的系数,从而可以根据不同的样本得到不同的不确定度,得到可以更准确地衡量样本的不确定度。
14.在一种可能的实施方式中,前述的第二输出结果中包括第一学生模型从数据集的样本中提取到的特征,第一样本是数据集中的任意一个样本;前述的根据第二输出结果计算数据集中的样本的多样性度量,可以包括:根据数据集中样本的特征确定数据集中第一样本的多个逆最近邻;根据多个逆最近邻,计算出第一样本的多样性度量。
15.因此,本技术实施方式中,可以采用计算逆最近邻的方式计算出样本的影响集,从数据集中选择出具有高度代表性的样本,从而提高模型的训练效率,提升模型的输出效果。
16.在一种可能的实施方式中,训练集中的样本为包括了车道线的图像,教师模型、第一学生模型和第二学生模型用于检测输入的图像中的车道线的信息。
17.因此,本技术实施方式中,可以应用于多种场景,如车道线检测、目标检测、分类或者分割任务等,泛化能力强。
18.第二方面,本技术提供一种检测方法,包括:获取输入图像;将输入图像作为训练后的第二学生模型的输入,输出检测结果;其中,训练后的第二学生模型是通过主动学习对第二学生模型进行训练得到,主动学习的过程包括:将数据集中的样本作为教师模型的输入,得到第一输出结果,将数据集中的样本作为第一学生模型的输入,得到第二输出结果,以及将数据集中的样本作为第二学生模型的输入,得到第三输出结果,数据集中的样本未携带标签,教师模型和第一学生模型为使用训练集进行训练得到,第二学生模型为使用教师模型进行知识蒸馏得到,训练集中包括携带标签的样本;通过第一偏差和第二偏差从数据集中筛选出至少一个未标注样本,第一偏差包括第一输出结果和第三输出结果之间的距
离,第二偏差包括第二输出结果和第三输出结果之间的距离;获取至少一个带标注样本,至少一个带标注样本为对至少一个未标注样本添加标签后得到;使用至少一个带标注样本对教师模型和第一学生模型进行训练,得到训练后的教师模型和训练后的第一学生模型,并使用训练后的教师模型对第二学生模型进行知识蒸馏,得到训练后的第二学生模型。
19.在一种可能的实施方式中,在主动学习的过程中,所述至少一个未标注样本是根据所述不确定度和多样性度量从所述数据集中筛选出来的,所述多样性度量用于表示所述数据集中的样本相对于所述数据集的多样性,所述多样性度量是根据所述第二输出结果得到。
20.在一种可能的实施方式中,所述至少一个未标注样本是根据所述不确定度和多样性度量从所述数据集中筛选出来的,所述多样性度量用于表示所述数据集中的样本相对于所述数据集的多样性,所述多样性度量是根据所述第二输出结果得到。
21.在一种可能的实施方式中,根据不确定度和多样性度量,从数据集中筛选出至少一个未标注样本,可以包括:对数据集中每个样本的不确定度和多样性度量进行加权融合,得到每个样本的得分;根据每个样本的得分,从数据集中筛选出至少一个未标注样本。
22.因此,本技术实施方式中,可以融合不确定度和多样性度量来筛选出难度大、场景多样性强的样本集合,从而使神经网络可以学习到更多有效的信息,有效提升模型的训练效率以及输出效果。
23.在一种可能的实施方式中,根据第一偏差和第二偏差计算数据集中的样本的不确定度,可以包括:根据第一偏差和第二偏差之间的比值,融合第一偏差和第二偏差,得到数据集中的样本的不确定度。
24.因此,本技术实施方式中,可以根据偏差的比值来确定融合第一偏差和第二偏差的系数,从而可以根据不同的样本得到不同的不确定度,得到可以更准确地衡量样本的不确定度。
25.在一种可能的实施方式中,前述的第二输出结果中包括第一学生模型从数据集的样本中提取到的特征,第一样本是数据集中的任意一个样本;前述的根据第二输出结果计算数据集中的样本的多样性度量,可以包括:根据数据集中样本的特征确定数据集中第一样本的多个逆最近邻;根据多个逆最近邻,计算出第一样本的多样性度量。
26.因此,本技术实施方式中,可以采用计算逆最近邻的方式计算出样本的影响集,从数据集中选择出具有高度代表性的样本,从而提高模型的训练效率,提升模型的输出效果。
27.第三方面,本技术实施例提供一种神经网络训练装置,该神经网络训练装置具有实现上述第一方面神经网络训练方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
28.该神经网络训练装置具体可以包括:
29.输入模块,用于将数据集中的样本作为教师模型的输入,得到第一输出结果,将数据集中的样本作为第一学生模型的输入,得到第二输出结果,以及将数据集中的样本作为第二学生模型的输入,得到第三输出结果,数据集中的样本未携带标签,教师模型和第一学生模型为使用训练集进行训练得到,第二学生模型为使用教师模型进行知识蒸馏得到,训练集中包括携带标签的样本;
30.筛选模块,用于通过第一偏差和第二偏差从数据集中筛选出至少一个未标注样
本,第一偏差包括第一输出结果和第三输出结果之间的距离,第二偏差包括第二输出结果和第三输出结果之间的距离;
31.获取模块,用于获取至少一个已标注样本,并将至少一个已标注样本更新至训练集中,得到更新后的训练集,至少一个已标注样本为对至少一个未标注样本添加标签后得到;
32.训练模块,用于使用更新后的训练集对教师模型和第一学生模型进行训练,得到训练后的教师模型和训练后的第一学生模型,并使用训练后的教师模型对第二学生模型进行知识蒸馏,得到训练后的第二学生模型。
33.在一种可能的实施方式中,筛选模块,具体用于:根据第一偏差和第二偏差计算数据集中的样本的不确定度,不确定用于表示数据集中的样本所包括的信息量的大小;根据不确定度从数据集中筛选出至少一个未标注样本。
34.在一种可能的实施方式中,筛选模块,具体用于:根据第二输出结果计算数据集中的样本的多样性度量,多样性度量用于表示数据集中的样本相对于数据集的多样性;根据不确定度和多样性度量,从数据集中筛选出至少一个未标注样本。
35.在一种可能的实施方式中,筛选模块,具体用于:对数据集中每个样本的不确定度和多样性度量进行加权融合,得到每个样本的得分;根据每个样本的得分,从数据集中筛选出至少一个未标注样本。
36.在一种可能的实施方式中,筛选模块,具体用于:根据第一偏差和第二偏差之间的比值,融合第一偏差和第二偏差,得到数据集中的样本的不确定度。
37.在一种可能的实施方式中,第二输出结果中包括第一学生模型从数据集的样本中提取到的特征,第一样本是数据集中的任意一个样本;
38.在一种可能的实施方式中,筛选模块,具体用于:根据数据集中样本的特征确定数据集中第一样本的多个逆最近邻;根据多个逆最近邻,计算出第一样本的多样性度量。
39.在一种可能的实施方式中,训练集中的样本为包括了车道线的图像,教师模型、第一学生模型和第二学生模型用于检测输入的图像中的车道线的信息。
40.第四方面,本技术实施例提供一种检测装置,该检测装置具有实现上述第二方面检测方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
41.该检测装置具体可以包括:
42.输入模块,用于获取输入图像;
43.输出模块,用于将输入图像作为训练后的第二学生模型的输入,输出检测结果;
44.其中,得到训练后的第二学生模型的过程可以参阅前述第一方面或第一方面任意可选实施方式所示出的步骤,此处不再赘述。
45.第五方面,本技术实施例提供一种神经网络训练装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第一方面任一项所示的神经网络训练方法中与处理相关的功能。可选地,该神经网络训练装置可以是芯片。
46.第六方面,本技术实施例提供一种检测装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第二方面任一项所
示的检测方法中与处理相关的功能。可选地,该检测装置可以是芯片。
47.第七方面,本技术实施例提供了一种神经网络训练装置,该检测装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行如上述第一方面或第一方面任一可选实施方式中与处理相关的功能。
48.第八方面,本技术实施例提供了一种检测装置,该检测装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行如上述第二方面或第二方面任一可选实施方式中与处理相关的功能。
49.第九方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面中任一可选实施方式中的方法。
50.第十方面,本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面中任一可选实施方式中的方法。
附图说明
51.图1为本技术应用的一种人工智能主体框架示意图;
52.图2为本技术提供的一种系统架构示意图;
53.图3为本技术实施例提供的一种卷积神经网络结构示意图;
54.图4为本技术实施例提供的另一种卷积神经网络结构示意图;
55.图5为本技术提供的另一种系统架构示意图;
56.图6为本技术实施例提供的一种神经网络训练方法的流程示意图;
57.图7为本技术实施例提供的另一种神经网络训练方法的流程示意图;
58.图8为本技术实施例提供的一种神经网络训练方法中训练阶段的流程示意图;
59.图9为本技术实施例提供的一种神经网络训练方法中筛选阶段的流程示意图;
60.图10为本技术实施例提供的一种最近邻的分布方式示意图;
61.图11为本技术实施例提供的一种检测方法的流程示意图;
62.图12为本技术实施例提供的一种输出效果对比示意图;
63.图13为本技术实施例提供的另一种输出效果对比示意图;
64.图14为本技术实施例提供的一种神经网络训练装置的结构示意图;
65.图15为本技术实施例提供的一种检测装置的结构示意图;
66.图16为本技术实施例提供的另一种神经网络训练装置的结构示意图;
67.图17为本技术实施例提供的另一种检测装置的结构示意图;
68.图18为本技术实施例提供的一种芯片的结构示意图。
具体实施方式
69.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
70.本技术提供的神经网络训练方法可以应用于人工智能(artificial intelligence,ai)场景中。ai是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,ai基础理论等。
71.图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
72.下面从“智能信息链”(水平轴)和“it价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
[0073]“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
[0074]“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
[0075]
(1)基础设施:
[0076]
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片,如中央处理器(central processing unit,cpu)、网络处理器(neural

network processing unit,npu)、图形处理器(英语:graphics processing unit,gpu)、专用集成电路(application specific integrated circuit,asic)或现场可编程逻辑门阵列(field programmable gate array,fpga)等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
[0077]
(2)数据
[0078]
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、视频、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
[0079]
(3)数据处理
[0080]
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
[0081]
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
[0082]
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
[0083]
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
[0084]
(4)通用能力
[0085]
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通
用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理(如图像识别、目标检测等),语音识别等等。
[0086]
(5)智能产品及行业应用
[0087]
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,智慧城市,智能终端等。
[0088]
参见附图2,本技术实施例提供了一种系统架构200。该系统架构中包括数据库230、客户设备240。数据采集设备260用于采集数据并存入数据库230,训练模块202基于数据库230中维护的数据生成目标模型/规则201。下面将更详细地描述训练模块202如何基于数据得到目标模型/规则201,目标模型/规则201即本技术以下实施方式中训练得到的神经网络,具体参阅以下图6

图13中的相关描述。
[0089]
计算模块可以包括训练模块202,训练模块202输出的目标模型/规则可以应用不同的系统或设备中。在附图2中,执行设备210配置收发器212,该收发器212可以是无线收发器、光收发器或有线接口(如i/o接口)等,与外部设备进行数据交互,“用户”可以通过客户设备240向收发器212输入数据,例如,本技术以下实施方式,客户设备240可以向执行设备210发送目标任务,请求执行设备训练神经网络,并向执行设备210发送用于训练的数据库。
[0090]
执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。
[0091]
计算模块211使用目标模型/规则201对输入的数据进行处理。具体地,计算模块211用于:结合主动学习的过程,使用教师模型对第二学生模型进行多次迭代蒸馏,其中每次迭代过程可以包括:将数据集中的样本作为教师模型的输入,得到第一输出结果,将数据集中的样本作为第一学生模型的输入,得到第二输出结果,以及将数据集中的样本作为第二学生模型的输入,得到第三输出结果,数据集中的样本未携带标签,教师模型和第一学生模型为使用训练集进行训练得到,第二学生模型为使用教师模型进行知识蒸馏得到,训练集中包括携带标签的样本;通过第一偏差和第二偏差从数据集中筛选出至少一个未标注样本,第一偏差包括第一输出结果和第三输出结果之间的距离,第二偏差包括第二输出结果和第三输出结果之间的距离;获取至少一个带标注样本,并将至少一个带标注样本更新至训练集中,得到更新后的训练集,至少一个带标注样本为对至少一个未标注样本添加标签后得到;使用更新后的训练集对教师模型和第一学生模型进行训练,得到训练后的教师模型和训练后的第一学生模型,并使用训练后的教师模型对第二学生模型进行知识蒸馏,得到训练后的第二学生模型。
[0092]
最后,收发器212将训练得到的神经网络返回给客户设备240,以在客户设备240或者其他设备中部署该神经网络。
[0093]
更深层地,训练模块202可以针对不同的任务,基于不同的数据得到相应的目标模型/规则201,以给用户提供更佳的结果。
[0094]
在附图2中所示情况下,可以根据用户的输入数据确定输入执行设备210中的数据,例如,用户可以在收发器212提供的界面中操作。另一种情况下,客户设备240可以自动地向收发器212输入数据并获得结果,若客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出
的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到与目标任务关联的数据存入数据库230。
[0095]
需要说明的是,附图2仅是本技术实施例提供的一种系统架构的示例性的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。例如,在附图2中,数据存储系统250相对执行设备210是外部存储器,在其它场景中,也可以将数据存储系统250置于执行设备210中。
[0096]
在本技术所提及的训练、蒸馏或者更新过程可以由训练模块202来执行。可以理解的是,神经网络的训练过程即学习控制空间变换的方式,更具体即学习权重矩阵。训练神经网络的目的是使神经网络的输出尽可能接近期望值,因此可以通过比较当前网络的预测值和期望值,再根据两者之间的差异情况来更新神经网络中的每一层神经网络的权重向量(当然,在第一次更新之前通常可以先对权重向量进行初始化,即为深度神经网络中的各层预先配置参数)。例如,如果网络的预测值过高,则调整权重矩阵中的权重的值从而降低预测值,经过不断的调整,直到神经网络输出的值接近期望值或者等于期望值。具体地,可以通过损失函数(loss function)或目标函数(objective function)来衡量神经网络的预测值和期望值之间的差异。以损失函数举例,损失函数的输出值(loss)越高表示差异越大,神经网络的训练可以理解为尽可能缩小loss的过程。
[0097]
如图2所示,根据训练模块202训练得到目标模型/规则201,该目标模型/规则201在本技术实施例中可以是本技术中所提及的学生模型。当然,在训练教师模型的阶段,该目标模型/规则201也可以理解为训练后的学生模型。
[0098]
本技术提及的神经网络(如教师模型或者学生模型)可以包括多种类型,如深度神经网络(deep neural network,dnn)、卷积神经网络(convolutional neural network,cnn)、循环神经网络(recurrent neural networks,rnn)、残差网络或其他神经网络等。
[0099]
示例性地,下面以卷积神经网络(convolutional neural network,cnn)为例对本技术提供的神经网络进行示例性介绍。
[0100]
cnn是一种带有卷积结构的深度神经网络。cnn是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,cnn是一种前馈(feed

forward)人工神经网络,该前馈人工神经网络中的各个神经元对输入其中的图像中的重叠区域作出响应。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都可以使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
[0101]
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积
核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
[0102]
卷积神经网络可以采用误差反向传播(back propagation,bp)算法在训练过程中修正初始的模型中参数的大小,使得模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的模型的参数,例如权重矩阵。
[0103]
如图3所示,卷积神经网络(cnn)100可以包括输入层110,卷积层/池化层120,其中池化层为可选的,以及神经网络层130。
[0104]
如图3所示卷积层/池化层120可以包括如示例121

126层,在一种实施方式中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
[0105]
以卷积层121为例,卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义。在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素
……
这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关。需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用维度相同的多个权重矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵维度相同,经过该多个维度相同的权重矩阵提取后的特征图维度也相同,再将提取到的多个维度相同的特征图合并形成卷积运算的输出。
[0106]
通常,权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以从输入图像中提取信息,从而帮助卷积神经网络100进行正确的预测。
[0107]
当卷积神经网络100有多个卷积层时,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络100深度的加深,越往后的卷积层(例如126)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
[0108]
池化层:
[0109]
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,即如图3中120所示例的121

126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图
像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,与卷积层中用权重矩阵的大小应该与图像大小相关类似地,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
[0110]
神经网络层130:
[0111]
在经过卷积层/池化层120的处理后,卷积神经网络100还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层120只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或别的相关信息),卷积神经网络100需要利用神经网络层130来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层130中可以包括多层隐含层(如图3所示的131、132至13n)以及输出层140。
[0112]
在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络100的最后层为输出层140,该输出层140具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络100的前向传播(如图3由110至140的传播为前向传播)完成,反向传播(如图3由140至110的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络100的损失及卷积神经网络100通过输出层输出的结果和理想结果之间的误差。
[0113]
需要说明的是,如图3所示的卷积神经网络100仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,例如,如图4所示的多个卷积层/池化层并行,将分别提取的特征均输入给全神经网络层130进行处理。
[0114]
参见附图5,本技术实施例还提供了一种系统架构300。执行设备210由一个或多个服务器实现,可选的,与其它计算设备配合,例如:数据存储、路由器、负载均衡器等设备;执行设备210可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备210可以使用数据存储系统250中的数据,或者调用数据存储系统250中的程序代码实现本技术以下图6

图11对应的神经网络训练方法的步骤。
[0115]
用户可以操作各自的用户设备(例如本地设备301和本地设备302)与执行设备210进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
[0116]
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备210进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。具体地,该通信网络可以包括无线网络、有线网络或者无线网络与有线网络的组合等。该无线网络包括但不限于:第五代移动通信技术(5th

generation,5g)系统,长期演进(long term evolution,lte)系统、全球移动通信系统(global system for mobile communication,gsm)或码分多址(code division multiple access,cdma)网络、宽带码分多址(wideband code division multiple access,wcdma)网络、无线保真(wireless fidelity,wifi)、蓝牙(bluetooth)、紫蜂协议(zigbee)、射频识别技术(radio frequency identification,
rfid)、远程(long range,lora)无线通信、近距离无线通信(near field communication,nfc)中的任意一种或多种的组合。该有线网络可以包括光纤通信网络或同轴电缆组成的网络等。
[0117]
在另一种实现中,执行设备210的一个方面或多个方面可以由每个本地设备实现,例如,本地设备301可以为执行设备210提供本地数据或反馈计算结果。
[0118]
需要注意的,执行设备210的所有功能也可以由本地设备实现。例如,本地设备301实现执行设备210的功能并为自己的用户提供服务,或者为本地设备302的用户提供服务。
[0119]
通常,知识蒸馏可以将一个网络的知识转移到另一个网络,两个网络可以是同构或者异构。做法是先训练一个teacher网络,或者称为老师模型,然后使用这个teacher网络的输出训练student网络,或者称为学生模型。在进行知识蒸馏时,可以通过采用预先训练好的复杂网络去训练另外一个简单的网络,以使得简单的网络可以具有和复杂网络相同或相似的数据处理能力。
[0120]
知识蒸馏可以快速方便地实现一些小型的网络,例如,可以在云服务器或企业级服务器训练大量数据的复杂网络模型,然后进行知识蒸馏得到实现了相同功能的小型模型,并将该小型模型压缩并迁移到小型设备(如手机、智能手环等)上。又例如,通过收集大量用户在智能手环上的数据,在云服务器上进行复杂并耗时的网络训练,得到用户行为识别模型,再把该模型压缩并迁移到智能手环这一小型载体,可以在保证保护用户隐私的同时,快速训练模型,并提升用户体验。
[0121]
此外,在一些场景中,神经网络的检测结果的准确度非常重要。
[0122]
例如,车道线检测是自动驾驶的一项关键技术,主要是进行车道线、道路标识检测,服务于后续的规控、定位等模块。一些常用的车道线检测方式主要是采用基于深度学习的检测算法进行检测。因此,需要依赖大规模标注数据,用于车道线模型训练。由于大规模数据人工标注耗费了巨大的时间成本和经济成本,因此自动化进行数据筛选、选出最具价值的数据显得尤为重要。主动学习是一种典型的数据挑选策略,用于降低数据标注的成本,是指通过自动的机器学习算法,从数据集中自动挑选出部分数据请求标注。常用的主动学习策略有依据样本的不确定性(uncertainty)、多样性(diversity)来选择具备丰富信息、具有代表性的数据样本,进行人工标注。其中,样本的不确定度越高,说明模型对于该样本的鉴别能力比较差,表明该样本中可能包含丰富的信息。多样性主要是用来描述样本是否具有代表性,避免出现在样本选择过程中样本存在重复现象。常用的主动学习策略在车道线检测的任务中几乎没有收益,无法起到筛选高效数据的目的。主要原因包括以下2个方面,一方面是由于车道线标注存在大量遮挡现象,标注的样本存在噪声问题,如果噪声数据加入到训练样本中,会导致模型的性能变差,现有的基于不确定度的主动学习策略无法对标注噪声进行有效建模,也即现有方法无法有效区分噪声和不确定度高二者的区别,因此选择出来的样本包含大量噪声数据;另一方面,现有的基于样本多样性的方法筛选得到的数据,并不能衡量车道线数据的多样性,因为车道线样本具有稀疏性、形状狭长等独特特征。
[0123]
因此,本技术提供了一种基于主动学习的神经网络训练方法,结合了知识蒸馏与主动学习,通过多种不同的神经网络的输出结果之间的差异,来衡量样本的不确定度或者多样性,进而有效地筛选出更有用的样本来进行学习,提高模型的训练效率,提升模型的输
出效果。
[0124]
基于前述图1

图5提供的系统架构或者神经网络,下面对本技术提供的神经网络训练方法进行详细介绍。
[0125]
首先,为便于理解,对本技术涉及到的一些概念进行解释。
[0126]
主动学习(active learning):主动学习是指通过自动的机器学习算法,从数据集中自动挑选出部分数据请求专家人工标注或者使用已训练好的神经网络来输出标签,在统计上也称为查询学习或者最优实验设计。主动学习通过设计合理的查询函数,不断从未标注的数据中挑选出数据加入标注后放入训练集。有效的主动学习数据选择策略可以有效地降低训练的代价并同时提高模型的识别能力。
[0127]
不确定度(uncertainty):在主动学习领域中,指的是数据样本相对于模型所学习到的信息丰富程度,即样本所包括的信息量的大小。通常,样本所包括的信息量的大小,可以理解为样本所包括的数据量或者数据类型等的数量。例如,以车道线检测场景下的样本为例,样本的不确定度越高,样本所包括的信息越多,如样本中所包括的车道线的数量越多、背景越复杂或者车道线的种类更多等。又例如,以目标检测场景下的样本为例,样本的不确定度越高,样本所包括的对象的数量、类别或复杂度越高等。
[0128]
多样性(diversity):在主动学习领域中,指的是样本相对于原样本资源池的多样性。具体地,每个样本通常可以归类为一种类别或者一种场景,多样性即可理解为样本为其所对应的类别或者场景的代表程度。例如,若数据集中包括了10种场景对应的图像,样本的多样性可以理解为样本是否可以作为其对应的场景的代表样本,或者,样本作为其对应的场景的代表样本的概率等。
[0129]
知识蒸馏(knowledge distillation):知识蒸馏是一种模型压缩方法,是一种基于“教师

学生网络思想”的训练方法,将已经训练好的教师模型包含的知识(knowledge),蒸馏(distill)提取到学生模型里面去。
[0130]
本技术提供的神经网络训练方法可以应用于各种训练神经网络的场景,下面示例性地,以一些实际场景为例对本技术提供的神经网络训练方法的应用场景进行示例性说明,但并不作为限定。
[0131]
场景一、无人车感知系统中的目标检测
[0132]
无人车感知系统中的目标检测包括行人、车辆、交通标志、车道线检测等,除了要求检测网络有很高的准确度来保证驾驶中的安全之外,也要求网络有足够快的响应速度以保证对车辆的精准控制,同样对于嵌入式系统的部署,还需要保证小的模型尺寸和较高的能源利用效率。通过本技术提供的方法,可以将通过知识蒸馏得到的结构较小且输出效果更好的模型部署于车辆中,从而提高车道检测的准确度,提高车辆的行车安全。
[0133]
场景二、云平台万物检测
[0134]
目标检测是云平台上需求最大的业务,面对用户新提交的业务数据集或者业务数据更新,快速搜索出高效的网络结构完成业务交付。
[0135]
参阅图6,本技术提供的一种神经网络训练方法的流程示意图,如下所述。
[0136]
需要说明的是,本技术提供的基于主动学习的神经网络训练方法中,可以进行一次或者多次迭代,在每次迭代过程中都可以对教师模型或学生模型等进行训练,直到得到符合预设条件的模型,以下仅以其中一次迭代过程为例进行示例性说明。
[0137]
601、将数据集中的样本分别作为教师模型、第一学生模型和第二学生模型的输入,得到第一输出结果、第二输出结果以及第三输出结果。
[0138]
其中,数据集中包了多个未标注的样本,即未携带标签(label)的样本,如未携带标签的图像、语音或者文本等。可以将数据集中的样本分别作为教师模型、第一学生模型和第二学生模型的输入,从而得到第一输出结果、第二输出结果以及第三输出结果。
[0139]
应理解,可以将数据集中的全部或者部分样本作为为教师模型、第一学生模型和第二学生模型的输入,本技术示例性地,以任意一个样本为例(如称为第一样本)进行示例性说明。
[0140]
具体地,教师模型和学生模型可以用于进行目标检测、分类任务、语音识别、图像识别或分割任务等,因此教师模型、第一学生模型和第二学生模型的输出结果相应地,也可以包括目标检测结果、分类结果、语音识别结果、图像识别结果、前景分割或者背景分割结果等,具体可以根据实际应用场景调整。本技术示例性地,以教师模型和学生模型的输出结果表示为向量为例进行示例性说明。
[0141]
可选地,第一学生模型和第二学生模型可以具有相同或者接近的网络结构,如网络层的层数相同或者接近,每个网络层中包括的基础单元的数量相同或者接近等。且通常教师模型的输出效果优于学生模型,如教师模型的输出精度高于学生模型的输出精度。相应地,教师模型的模型结构通常也大于学生模型,模型复杂度高于学生模型。
[0142]
在一种可能的实施方式,在步骤601之前,即上一次迭代过程中,可以使用训练集对初始的教师模型和初始的第一学生模型分别进行训练,得到教师模型和第一学生模型,且可以使用训练后得到的教师模型对初始的第二学生模型进行知识蒸馏,或者在训练得到教师模型的过程中,使用教师模型对学生模型进行知识蒸馏,得到第二神经网络。该训练集中可以包括多个携带标签的样本,从而实现全监督学习。
[0143]
应理解,本技术实施方式中,所提及的数据集和训练集之间的区别在于,数据集中的样本未携带标签,而训练集中的样本携带标签,还标签可以是人工标注的标签,也可以是通过预先训练好的神经网络输出得到,具体可以根据实际应用场景确定,本技术对添加标签的方式不作限定。
[0144]
602、通过第一偏差和第二偏差从数据集中筛选出至少一个未标注样本。
[0145]
其中,在分别得到教师模型、第一学生模型和第二学生模型的输出结果之后,即可根据计算输出结果之间的偏差,从数据集中筛选出至少一个未标注样本,如可以选择偏差较大的样本来进行标注。其中,输出结果之间的偏差可以理解为学生模型学习到该样本的学习程度或者样本所包括的信息量的大小等。
[0146]
具体地,可以计算第一输出结果和第三输出结果之间的距离,得到第一偏差,计算第二输出结果和第三输出结果之间的距离,得到第二偏差,可以理解为通过距离来衡量模型的输出结果之间的偏差。该距离可以是欧式距离、马氏距离或者其他衡量向量之间的差距的距离计算方式,具体可以根据实际应用场景选择,本技术对此不作限定。
[0147]
在一种可能的实施方式中,可以根据第一偏差和第二偏差来计算数样本的不确定度,该不确定度可以用于表示样本所包括的信息量的大小,该信息量是指样本中所包括的数据的数量或者类别等。然后根据该不确定度从数据集中筛选出至少一个未标注样本。如可以从数据集中筛选出不确定度较高的样本,从而得到至少一个未标注样本。因此,本技术
实施方式中,可以通过蒸馏的方式训练神经网络,并结合独立训练和蒸馏得到的神经网络的输出结果之间的偏差,来表示样本的不确定度,从而可以得到更准确的不确定度,以便于筛选出更需要被学习的样本,提高模型的整体学习效率。
[0148]
可选地,计算不确定度的方式可以包括:根据第一偏差和第二偏差之间的比值,融合第一偏差和第二偏差,得到样本的不确定度。具体地,第一偏差和第二偏差之间的比值可以用于确定融合第一偏差和第二偏差的系数,具体的融合方式可以包括求和、加权求和或者求平均等,具体可以根据实际应用场景来选择融合方式。
[0149]
在一种可能的实施方式中,可以根据第二输出结果来计算样本的多样性,得到样本的多样性度量,从而可以根据该多样性来从数据集中筛选出至少一个未标注样本来进行后续的标注和训练,使神经网络可以学习到多样性更高的数据,提高模型的输出效果。
[0150]
可选地,以第一样本为例,可以第二输出结果中可以包括第一学生模型从样本中提取到的特征,计算多样性度量的具体方式可以包括:根据样本的特征确定样本的多个逆最近邻,然后根据该逆最近邻计算出第一样本相对于数据集的多样性度量。因此,本技术实施方式中,可以通过样本的特征的逆最近邻来计算样本的多样性,可以更准确地指示出样本的多样性,从而根据该多样性选择出更有用的样本来进行标注。
[0151]
在一种可能的实施方式中,可以结合不确定度和多样性度量,来从数据集中筛选出至少一个未标注样本。因此,本技术实施方式中,可以结合样本的多样性和不确定度,来筛选未标注样本,如可以选择多样性较高的样本以便于进行后续的标注和学习,从而可以提高模型所学习到的信息的多样性,提高模型的输出效果。
[0152]
具体地,可以对样本的不确定度和多样性度量进行加权融合,从而得到每个样本的得分,然后基于每个样本的得分,从数据集中筛选出至少一个未标注样本。如可以从数据集中筛选出得分超过预设值的样本,从而得到至少一个未标注样本。因此,本技术实施方式中,可以结合样本的不确定度和多样性度量来筛选样本,筛选出高噪声和高不确定度的具有代表性的样本,以便于后续标注和训练,使神经网络可以学习到多样性更高的数据,提高模型的输出效果。
[0153]
603、获取至少一个已标注样本,并将至少一个已标注样本更新至所述训练集中,得到更新后的训练集。
[0154]
在从数据集中筛选出至少一个未标注样本之后,可以为该至少一个未标注样本添加标签,从而得到一一对应的至少一个已标注样本。
[0155]
其中,为未标注样本添加标签具体可以是人工进行标注,也可以是通过预先训练好的神经网络来输出每个样本的标签,本技术对为样本添加标签的方式不作限定。
[0156]
并且在得到至少一个已标注样本之后,将该至少一个已标注样本更新至训练集中,得到更新后的训练集。
[0157]
604、使用更新后的训练集对教师模型和第一学生模型进行训练,得到训练后的教师模型和训练后的第一学生模型,并使用训练后的教师模型对第二学生模型进行知识蒸馏,得到训练后的第二学生模型。
[0158]
在得到更新后的训练集之后,即使用更新后的训练集,分别对教师模型和第一学生模型进行训练,得到当前次迭代中训练后的教师模型和第一学生模型。
[0159]
其中,在得到训练后的教师模型或者在训练教师模型的过程中,可以使用教师模
型对第二学生模型进行知识蒸馏,得到训练后的第二学生模型。具体的蒸馏方式可以多种,如使用教师模型的中间层对学生模型进行知识蒸馏,或者使用教师模型的输出结果来对学生模型进行知识蒸馏,或者还可以结合教师模型的中间层和输出层的输出结果来对学生模型进行知识蒸馏等,具体可以根据实际应用场景选择匹配的蒸馏方式,本技术对具体的蒸馏方式并不作限定。
[0160]
605、是否符合预设条件,若是则执行步骤606,若否则执行步骤601。
[0161]
在使用更新后的训练集对教师模型、第一学生模型和第二学生模型进行训练之后,可以判断训练结果是否满足预设条件,并在满足预设条件之后,输出最终训练得到的模型,若不满足预设条件,则可以继续进行迭代,即继续执行步骤601。
[0162]
该预设条件具体可以包括以下一项或者多项:迭代次数达到预设次数、或者对进行迭代训练的时长达到预设时长等,或者第二学生模型的输出精度的变化小于预设值,或者训练集中的样本数量达到预设数量等,具体可以根据实际应用场景来进行选择。
[0163]
606、输出最终模型。
[0164]
在确定满足预设条件之后,即可输出最终训练得到的模型,如可以输出训练后的教师模型,训练后的第二学生模型等,或者还可以使用最终的训练集来对新模型进行训练,从而输出训练后的新模型。当然,也可以输出训练后的教师模型,如将训练后的教师模型部署于客户端中,本技术对此并不作限定,可以根据实际应用场景来选择匹配的模型。
[0165]
因此,本技术实施方式中,在主动学习的过程中,结合了知识蒸馏来选择包括更多信息或者未学习到的样本来进行标注,从而可以筛选出学习难度大、场景多样性高的训练集,从而可以提高模型的训练效果,提高模型的输出效果。且因筛选出了更适合用于学习的样本,而减少对无用样本的标注,可以降低标注成本。
[0166]
前述对本技术提供的神经网络训练方法的流程进行了介绍,为便于理解,下面结合具体的应用场景对本技术提供的神经网络训练方法进行更详细的介绍。
[0167]
下面以车道线检测的场景为例进行示例性说明,应理解,以下所提及的车道线检测,也可以替换为其他任务,如目标检测、分类任务、分割任务等,具体可以根据应用场景调整,以下仅仅是示例性说明,并不作为限定。
[0168]
首先,本技术提供的另一种神经网络训练方法的流程可以参阅图7。
[0169]
为便于理解首先对总体流程进行介绍。
[0170]
其中本技术提供的神经网络训练方法可以分为训练阶段和筛选阶段。
[0171]
在训练阶段,可以使用训练集对学生模型student(即第一学生模型)、student

kd(即第二学生模型)和teacher(即教师模型)分别进行训练。其中,可以使用训练集分别对student和teacher独立进行训练,输出student和teacher的检测损失,并基于损失值进行反向传播更新模型的参数。还使用训练集以及训练后的teacher对student

kd进行知识蒸馏,计算teacher和student

kd的中间层或者输出层的输出的损失,并基于损失值更新student

kd的参数,得到训练后的student

kd。
[0172]
在筛选阶段,将未标注样本分别作为student、student

kd和teacher的输入,分别得到车道线检测结果。其中student的输出中还可以包括从输入图像中提取到的特征。可以计算student和student

kd的输出结果之间的距离,即距离1,以及计算student

kd和teacher的输出结果之间的距离,得到距离2,根据距离1和距离2计算出不确定度。且可以根
据student输出的结果中的特征计算样本相对于资源池的多样性。随后结合不确定度和多样性对样本进行打分,并对未标注数据进行筛选,筛选出一个或者多个未标注样本来进行标注,并使用标注后的样本更新训练集,然后使用更新后的训练集进行下一次迭代,直到得到符合条件的模型或者迭代次数到达预设次数,或者添加标注的样本达到预设数量等,具体可以根据实际应用场景来选择。
[0173]
下面分别对训练阶段和筛选阶段进行示例性说明。
[0174]
一、训练阶段
[0175]
车道线模型训练阶段共涉及3个模型,student模型可以使用pointlanenet模型,主干网络(backbone)为resnet122结构;teacher模型为pointlanenet模型结构,backbone为senet154结构;student

kd模型与student模型结构可以相同或者接近。
[0176]
如图8所示,将已标注数据输入到student模型进行单独训练,可训练获得student模型参数。将已标注数据,即训练集中的样本输入到teacher模型进行单独训练,可训练得到teacher模型参数。最后,对student

kd模型进行训练,通过构建student

kd和teacher模型之间的损失值,将teacher模型包含的更加丰富的知识传递到student

kd模型中。
[0177]
例如,可以采用特征层蒸馏和输出层蒸馏来完成对蒸馏过程。特征层蒸馏即以教师模型的特征层的输出结果来指导学生模型的特征层的更新,输出层蒸馏即以教师模型的输出层的输出结果来指导学生模型的更新。从而使学生模型的特征层的输出结果与教师模型的中间层的输出结果越来越接近,学生模型的输出层的输出结果也和教师模型的输出层的输出结果越来越接近,实现知识蒸馏。
[0178]
其中,特征层蒸馏的作用是帮助学生网络学习教师网络关于前景的特征编码,具体可以采用二阶段检测器中的目标区域特征对齐(roi align)模块,来提取fpn的输出特征中的前景并滤除背景噪声,在蒸馏的过程中,损失函数可以采取均方误差(mean square error,mse)损失,如表示为:
[0179][0180]
其中,f
s
和f
t
分别表示学生模型与教师模型的特征,f
adap
为特征自适应映射函数,l,w,h,c表示特征的层级与维度,n
e
=c
×
w
×
h。在计算出损失值之后,即可以基于损失值对学生模型进行反向更新,得到更新后的学生模型。
[0181]
针对输出层蒸馏,可以采用交叉熵损失l
cls
来构建分类任务的损失值,而对于定位任务,可以采用携带类注意力机制的定位不确定度l
loc
,来更有效地迁移教师网络关于物体的定位信息,可以表示为:
[0182][0183][0184]
其中,n表示候选区域数量,表示第i个候选区域在教师网络中预测的类别的得分,表示第i个候选区域在学生网络中预测的类别的得分,c表示类别数。表示第i个
候选区域在教师网络中预测的定位信息(例如,相对anchor(锚)点在xywh方向的偏移量),表示教师模型预测的当前候选区域在第i类上的置信度。
[0185]
二、筛选阶段
[0186]
在筛选阶段,分别使用训练好的三个模型对未标注数据进行推理,针对每个样本,可以计算得到student和student

kd之间的偏差(distance),student

kd和teacher之间的偏差(distance),根据公式计算得到不确定度(uncertainty)。
[0187]
对未标注数据构造每个样本的影响集(influence set),然后可计算得到样本多样性(diversity)。将样本的不确定度和多样性相结合,可从未标注数据集中选择得到信息量丰富的样本。
[0188]
下面分别对计算不确定度和多样性的方式进行详细介绍。
[0189]
1、不确定度
[0190]
首先,模型的输出结果之间的偏差可以定义为:给定模型m1和m2,它们对样本p推理偏差定义为:
[0191][0192]
其中,m1(p)为m1的推理结果,m2(p)为m2的推理结果,l1为推理得到的一条车道线的信息,如车道线位置、长度等信息,l2为m2(p)中与l1空间距离最近的一条车道线的信息。dist是l1和l2之间的欧氏距离。
[0193]
在前述图7中的筛选阶段,将未标注数据(unlabeled data)分别输入到训练阶段中训练得到的模型中,例如样本p可以分别得到3个模型对应的检测结果。定义d
ss
为student

kd和student的输出结果之间的偏差,d
st
为student

kd和teacher的输出结果之间的偏差。
[0194]
p的不确定度表示为:
[0195][0196]
根据d
ss
和d
st
的大小,将数据划分为多类,如表1所示:
[0197][0198]
表1
[0199]
(1)d
ss
小、d
st
小:表明3个模型都能准确预测该样本,说明该样本属于简单样本,无需再进行人工标注。
[0200]
(2)d
ss
小、d
st
大:teacher模型和student

kd之间有很大的差距,表明student模型不能很好的向teacher模型学习该样本,可能是由于知识困难或者数据噪音导致。d
ss
小表明该样本并非噪声样本,如果样本噪声较大,则d
ss
差异会比较大。因此,该样本包含有价值信息,优先进行人工标注。
[0201]
(3)d
ss
大、d
st
小:d
st
小表明该样本所含知识是容易学习得到的,但是d
ss
大表明该样本有可能是teacher模型传递错误知识给student

kd模型。因此,该样本同样包含有价值信息,优先进行人工标注。
[0202]
(4)d
ss
大、d
st
大:表明3个模型推理的结果各不相同,差异较大。一种原因是由于该样本本身的噪声较大,不是具有价值的样本,另一种原因是该样本太过复杂,导致3个模型都无法准确预测。基于上述2个原因,该样本为低优先级样本。
[0203]
需要说明的是,前述的大和小是相对而言,具体划分方式可以根据实际应用场景确定,如样本1的d
ss
为0.1,样本2的d
ss
为0.2,则可以理解为样本1的d
ss
小,样本2的d
ss
大。
[0204]
2、多样性
[0205]
如图9所示,使用student模型对未标注样本集的每个样本提取特征,该特征可以通过向量或矩阵的形式来标识。然后,针对每个样本,在未标注数据集s
u
中查询最近邻(的reverse nearest neighbors,rnn),构造影响集(influence set)。
[0206]
如图10所示,p点为其附近5个点的最近邻,即rnns。给定样本p,无标注样本集s
u
,当前已经选择的样本集q,其中q∈s
u
,该样本多样性度量定义为:
[0207]
div(p|q,s
u
)=|rnn(p)

q|
[0208]
其中,最近邻可以理解为:给定数据集p,p∈p能够在数据集p中找到样本p的最近邻(nearest neighbor)q,q的逆最近邻的集合rnn(q)称为q的影响集(influence set)。可以通过如下公式计算:
[0209][0210]
然后可以结合不确定度和多样化度量值来对样本进行打分,例如,可以表示为:
[0211]
score=uncr βdiv
[0212]
其中,β为权重系数,score为该样本的得分。
[0213]
可以选择score值最高的前k个样本,进行标注,具体的标注方式可以是人工标注,或者通过已训练的神经网络来进行标注,k的值可以根据实际应用场景来确定,例如,若需要实现低成本训练,则可以设置较低的k值。
[0214]
在筛选出k个样本加入训练集之后,即可再次执行前述的训练阶段,直到添加标注的样本的数量达到设定数量或者得到了输出效果达到期望的神经网络等。
[0215]
因此,本技术实施方式中,提出一种基于知识蒸馏的神经网络训练方法,使用不确定度和多样性相结合的策略来评价一个样本,进而选出具有丰富信息的样本。可以选出具有难度大、场景多样性强的样本集合。进而提升模型训练效果,降低人工标注量,节约标注成本。并且,基于知识蒸馏,利用不同模型(student、student

kd和teacher)的学习能力差异,计算得到样本的不确定度,能够有效区分高噪声样本和高不确定度样本,进而评价样本的不确定度。此外,提出基于influence set的多样性计算方式,代替传统聚类算法,计算得到样本的多样性指标,可以从数据集中选择出具有高度代表性的样本。
[0216]
此外,本技术还提供一种检测方法,如图11所示,该检测方法可以包括:
[0217]
1101、获取输入图像。
[0218]
其中,该若目标模型(即训练后的第二学生模型)部署于前述图5中所示出的执行设备210中,则用户可以通过本地设备301或者302向执行设备发送该输入图像。又例如,在执行设备输出目标模型之后,可以将该目标模型发送给本地设备301或302,以将该目标模
型部署于本地设备301或302,用户可以直接在本地设备301或302中输入该输入图像,以得到输出结果。
[0219]
1102、将输入图像作为训练后的第二学生模型的输入,输出检测结果。
[0220]
其中,该检测结果可以包括检测到的对象的信息,具体可以包括该对象在输入图像中的位置(如表示为坐标)或者该对象的类别等。
[0221]
其中,得到训练后的第二学生模型的过程可以参阅前述图6

图10所描述的过程,此处不再赘述。
[0222]
本技术实施方式中,提出一种基于知识蒸馏的神经网络训练方法,使用不确定度和多样性相结合的策略来评价一个样本,进而选出具有丰富信息的样本。可以选出具有难度大、场景多样性强的样本集合。进而提升模型训练效果,降低人工标注量,节约标注成本。并且,基于知识蒸馏,利用不同模型(student、student

kd和teacher)的学习能力差异,计算得到样本的不确定度,能够有效区分高噪声样本和高不确定度样本,进而评价样本的不确定度。此外,提出基于influence set的方法,代替传统聚类算法,计算得到样本的多样性指标,可以从数据集中选择出具有高度代表性的样本。因此,通过本技术提供的神经网络训练方法训练得到的神经网络的输出结果也更准确,适应更多种类的样本,泛化能力强。
[0223]
前述对本技术提供的方法流程进行了详细介绍,为便于理解,下面结合具体应用场景对本技术提供的方法实现的效果进行示例性介绍。
[0224]
例如,可以在culane和llamas两种公开数据集上,使用等量人工标注的情况下,对多种常用方式得到模型的输出效果进行对比。
[0225]
首先,对一些常用的主动学习方式进行介绍:
[0226]
1.random(rand):基线随机选择策略。
[0227]
2.entropy(ent):选择熵值高的样本进行标注。
[0228]
3.ensemble(ens):使用student和teacher双模型,分别对未标注数据集进行推理,选择2个模型推理结果偏差最大的样本进行人工标注。
[0229]
4.acd:该方法是为目标检测专门设计,使用特征空间信息来评价样本的交叉熵。
[0230]
5.lloss:在模型输出部分增加一个头(head),专门用于评价样本的loss,选择具有较大loss的样本进行标注。
[0231]
6.badge:结合不确定度(使用样本反向梯度评价不确定度)和多样性(使用kmeans 方法评价样本多样性)对样本进行评价。
[0232]
模型的输出效果可以如图12所示,显然,通过本技术(即图12中所使出的ours)提供的神经网络训练方法得到的模型的输出效果更优。
[0233]
具体地,为验证不确定度评价的有效性,可以构造多种策略进行对比,第1种策略是上文中提到的方法3,简称为ens,第2种策略(本技术提供的神经网络训练方法)仅基于本文所述的基于知识蒸馏的不确定度评价策略,简称kd

only,试验结果如图13所示。可以看出,本技术提供的方法的不确定度评价方法性能优于ens、随机rand等方法,可以有效从未标注数据集中选择出有效样本。
[0234]
使用上述kd

only作为多样性评价方法,k

means 策略作为多样性评价方法,将二者结合,作为对比实验组,简称kd km。kd km和本文提出的完整方法进行对比实验,从图13可知,本技术提出的神经网络训练方法相对k

means 策略依然有性能提升。
[0235]
此外,前述方式2

5中,近考虑了样本的不确定度,而没有考虑样本的多样性,因此选择出来的样本具备难例的特征,但是多样性较差,场景单一。前述方式6中,同时考虑了样本的不确定度和多样性,但是在评价样本的不确定度和多样性的角度有所不同。评价不确定度的方面,方式6是通过计算样本造成的反向梯度大小来评价样本的不确定度,造成的反向梯度越大,说明样本信息越丰富。但是,由于数据未标注,所以计算得到的反向梯度数值是估计值,精度较差,不能代表该样本的不确定度。评价多样性方面,方式6首先训练一个k

means 分类器,然后对未标注数据进行推理,将未标注数据划分到不同类别中。但是,由于样本的多样性难以用固定的类别进行划分,选择出来的样本并不一定具有代表性。
[0236]
因此,本技术提供的神经网络训练方法,引入了知识蒸馏来得到模型结构较小且输出精度高的学生模型,利用不同模型(student、student

kd和teacher)的学习能力差异,计算得到样本的不确定度,能够有效区分高噪声样本和高不确定度样本,进而评价样本的不确定度。此外,提出基于influence set的方法,代替传统聚类算法,计算得到样本的多样性指标,可以从数据集中选择出具有高度代表性的样本,提高训练效率,以及提高模型的输出准确度,且可以适应多种场景,泛化能力强。
[0237]
前述对本技术提供的方法流程进行了详细介绍,下面结合前述的方法流程,对本技术提供的装置进行介绍。
[0238]
首先,参阅图14,本技术提供的一种神经网络训练装置,包括:
[0239]
输入模块1401,用于将数据集中的样本作为教师模型的输入,得到第一输出结果,将数据集中的样本作为第一学生模型的输入,得到第二输出结果,以及将数据集中的样本作为第二学生模型的输入,得到第三输出结果,数据集中的样本未携带标签,教师模型和第一学生模型为使用训练集进行训练得到,第二学生模型为使用教师模型进行知识蒸馏得到,训练集中包括携带标签的样本;
[0240]
筛选模块1402,用于通过第一偏差和第二偏差从数据集中筛选出至少一个未标注样本,第一偏差包括第一输出结果和第三输出结果之间的距离,第二偏差包括第二输出结果和第三输出结果之间的距离;
[0241]
获取模块1403,用于获取至少一个已标注样本,并将至少一个已标注样本更新至训练集中,得到更新后的训练集,至少一个已标注样本为对至少一个未标注样本添加标签后得到;
[0242]
训练模块1404,用于使用更新后的训练集对教师模型和第一学生模型进行训练,得到训练后的教师模型和训练后的第一学生模型,并使用训练后的教师模型对第二学生模型进行知识蒸馏,得到训练后的第二学生模型。
[0243]
在一种可能的实施方式中,筛选模块1402,具体用于:根据第一偏差和第二偏差计算数据集中的样本的不确定度,不确定用于表示数据集中的样本所包括的信息量的大小;根据不确定度从数据集中筛选出至少一个未标注样本。
[0244]
在一种可能的实施方式中,筛选模块1402,具体用于:根据第二输出结果计算数据集中的样本的多样性度量,多样性度量用于表示数据集中的样本相对于数据集的多样性;根据不确定度和多样性度量,从数据集中筛选出至少一个未标注样本。
[0245]
在一种可能的实施方式中,筛选模块1402,具体用于:对数据集中每个样本的不确定度和多样性度量进行加权融合,得到每个样本的得分;根据每个样本的得分,从数据集中
筛选出至少一个未标注样本。
[0246]
在一种可能的实施方式中,筛选模块1402,具体用于:根据第一偏差和第二偏差之间的比值,融合第一偏差和第二偏差,得到数据集中的样本的不确定度。
[0247]
在一种可能的实施方式中,第二输出结果中包括第一学生模型从数据集的样本中提取到的特征,第一样本是数据集中的任意一个样本;
[0248]
在一种可能的实施方式中,筛选模块1402,具体用于:根据数据集中样本的特征确定数据集中第一样本的多个逆最近邻;根据多个逆最近邻,计算出第一样本的多样性度量。
[0249]
在一种可能的实施方式中,训练集中的样本为包括了车道线的图像,教师模型、第一学生模型和第二学生模型用于检测输入的图像中的车道线的信息。
[0250]
参阅图15,本技术提供的一种检测装置的结构示意图,包括:
[0251]
输入模块1501,用于获取输入图像;
[0252]
输出模块1502,用于将输入图像作为训练后的第二学生模型的输入,输出检测结果;
[0253]
其中,得到训练后的第二学生模型的过程可以参阅前述图6

图13所示出的步骤,此处不再赘述。
[0254]
请参阅图16,本技术提供的另一种神经网络训练装置的结构示意图,如下所述。
[0255]
该神经网络训练装置可以包括处理器1601和存储器1602。该处理器1601和存储器1602通过线路互联。其中,存储器1602中存储有程序指令和数据。
[0256]
存储器1602中存储了前述图6至图13中的步骤对应的程序指令以及数据。
[0257]
处理器1601用于执行前述图6至图13中任一实施例所示的神经网络训练装置执行的方法步骤。
[0258]
可选地,该神经网络训练装置还可以包括收发器1603,用于接收或者发送数据。
[0259]
本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序,当其在计算机上运行时,使得计算机执行如前述图6至图13所示实施例描述的方法中的步骤。
[0260]
可选地,前述的图16中所示的神经网络训练装置为芯片。
[0261]
请参阅图17,本技术提供的另一种检测装置的结构示意图,如下所述。
[0262]
该检测装置可以包括处理器1701和存储器1702。该处理器1701和存储器1702通过线路互联。其中,存储器1702中存储有程序指令和数据。
[0263]
存储器1702中存储了前述图11中的步骤对应的程序指令以及数据。
[0264]
处理器1701用于执行前述图11所示的检测装置执行的方法步骤。
[0265]
可选地,该检测装置还可以包括收发器1703,用于接收或者发送数据。
[0266]
本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序,当其在计算机上运行时,使得计算机执行如前述图6至图13所示实施例描述的方法中的步骤。
[0267]
可选地,前述的图17中所示的检测装置为芯片。
[0268]
本技术实施例还提供了一种神经网络训练装置,该神经网络训练装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行前述图6至图13中任一实施例所示的神
经网络训练装置执行的方法步骤。
[0269]
本技术实施例还提供了一种检测装置,该检测装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行前述图11所示的检测装置执行的方法步骤。
[0270]
本技术实施例还提供一种数字处理芯片。该数字处理芯片中集成了用于实现上述处理器1601,或者处理器1601的功能的电路和一个或者多个接口。当该数字处理芯片中集成了存储器时,该数字处理芯片可以完成前述实施例中的任一个或多个实施例的方法步骤。当该数字处理芯片中未集成存储器时,可以通过通信接口与外置的存储器连接。该数字处理芯片根据外置的存储器中存储的程序代码来实现上述实施例中神经网络训练装置执行的动作。
[0271]
本技术实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图6至图13所示实施例描述的方法中的步骤。
[0272]
本技术实施例提供的神经网络训练装置可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使服务器内的芯片执行上述图6至图13所示实施例描述的神经网络训练方法或者检测方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read

only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)等。
[0273]
具体地,前述的处理单元或者处理器可以是中央处理器(central processing unit,cpu)、网络处理器(neural

network processing unit,npu)、图形处理器(graphics processing unit,gpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)或现场可编程逻辑门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器等。
[0274]
示例性地,请参阅图18,图18为本技术实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器npu 180,npu 180作为协处理器挂载到主cpu(host cpu)上,由host cpu分配任务。npu的核心部分为运算电路1803,通过控制器1804控制运算电路1803提取存储器中的矩阵数据并进行乘法运算。
[0275]
在一些实现中,运算电路1803内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路1803是二维脉动阵列。运算电路1803还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1803是通用的矩阵处理器。
[0276]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器1802中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器1801中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1808中。
[0277]
统一存储器1806用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,dmac)1805,dmac被搬运到权重存储器1802
中。输入数据也通过dmac被搬运到统一存储器1806中。
[0278]
总线接口单元(bus interface unit,biu)1810,用于axi总线与dmac和取指存储器(instruction fetch buffer,ifb)1809的交互。
[0279]
总线接口单元1810(bus interface unit,biu),用于取指存储器1809从外部存储器获取指令,还用于存储单元访问控制器1805从外部存储器获取输入矩阵a或者权重矩阵b的原数据。
[0280]
dmac主要用于将外部存储器ddr中的输入数据搬运到统一存储器1806或将权重数据搬运到权重存储器1802中或将输入数据数据搬运到输入存储器1801中。
[0281]
向量计算单元1807包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如批归一化(batch normalization),像素级求和,对特征平面进行上采样等。
[0282]
在一些实现中,向量计算单元1807能将经处理的输出的向量存储到统一存储器1806。例如,向量计算单元1807可以将线性函数和/或非线性函数应用到运算电路1803的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1807生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1803的激活输入,例如用于在神经网络中的后续层中的使用。
[0283]
控制器1804连接的取指存储器(instruction fetch buffer)1809,用于存储控制器1804使用的指令;
[0284]
统一存储器1806,输入存储器1801,权重存储器1802以及取指存储器1809均为on

chip存储器。外部存储器私有于该npu硬件架构。
[0285]
其中,循环神经网络中各层的运算可以由运算电路1803或向量计算单元1807执行。
[0286]
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,asic,或一个或多个用于控制上述图6

图13的方法的程序执行的集成电路。
[0287]
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
[0288]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质
中,如计算机的软盘、u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
[0289]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0290]
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0291]
本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0292]
最后应说明的是:以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
再多了解一些

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

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

相关文献