本申请涉及人工智能领域,尤其涉及一种多损失模型获取方法以及装置。
背景技术:
人工智能(artificialintelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,ai基础理论等。
目前通常是通过神经网络实现ai的各种功能,例如自然语言处理、图像处理、语音处理等。随着ai技术的发展,ai的功能逐渐多样化。以全景分割任务为例,该全景分割任务包括实例分割、分类,回归、实例掩膜(instancemask)、语义分割(semanticsegmentation)等多个子任务。每一个子任务存在一个优化目标。在全景分割任务对应的模型训练过程中,每个子任务进行优化时都对应一个子网络,而每个子网络对应多个损失值,然后根据该损失值通过反向传播算法优化神经网络参数,因此最终输出的模型也称之为多损失模型。而多损失模型的训练过程中,每个子网络之间的竞争平衡决定着多损失模型的最终训练效果。比如在全景分割任务对应的神经网络模型训练中,检测任务和分割任务的训练相互竞争,会导致某一个子任务地分割效果不佳,因此需要对多个任务间的训练问题进行自动优化。同时在多任务应用场景下,每个子网络对损失加权值的敏感性十分高。
而目前已有的方法通常利用采样等方式进行超参数的搜索优化,并不能针对性的对损失加权值进行优化。因此对于多损失模型训练过程中如何更好的优化损失加权值是急需解决的问题。
技术实现要素:
本申请实施例提供了一种多损失模型获取方法以及装置,用于实现在多损失模型训练过程中动态调整损失加权值,从而使得多损失模型得到更好的训练结果。
第一方面,本申请实施例提供一种多损失模型获取方法,其应用于包括至少一个子网络(即子任务)的多损失模型的获取场景。在该多损失模型训练过程中,在第一迭代周期,该多损失模型获取装置获取该子网络输出的第一损失值;然后该多损失模型获取装置根据该第一损失值生成备选权重;下一步,该多损失模型获取装置将该第一损失值以及该备选权重输入权重预测模型,输出该子网络的第一权重参数,其中,该第一权重参数用于该多损失模型训练过程中的第二迭代周期的训练,其中,该第二迭代周期为该第一迭代周期的下一个迭代周期;最后该多损失模型训练根据该第一权重参数更新该多损失模型的参数。
可以理解的是,上述仅描述了训练过程中的一个迭代过程,而该第一迭代周期和该第二迭代周期也仅用于区别迭代周期,并不用于限定训练过程中的某一个特定的迭代周期。在具体应用中,该多损失模型训练过程中具有多个上述迭代过程。在该多损失模型的训练迭代周期完成(即相当于模型的搜索过程完成)之后,该多损失模型获取装置输出训练好的多损失模型。
本实施例中,在多损失模型的训练过程中,每一个迭代周期对于多个损失值都更新优化权重值,同时在训练过程中利用并行计算优势探索权重的有效性以及继承优秀的网络参数和权重,从而实现在一个训练时间内得到最优训练模型。可选的,该多损失模型获取装置在根据该第一损失值生成备选权重的具体操作如下:该多损失模型获取装置在获取到该第一损失值之后,确定该第一损失值的采样空间;然后在该采样空间中采样以得到该备选权重。
本实施例中,该采样空间包括但不限于该第一损失值的对数正态分布或该第一损失值的对数均匀分布。
在该采样空间为该第一损失值的对数正态分布时,该多损失模型获取装置确定该对数正态分布为采样空间;然后获取该采样空间的采样方差,并计算该采样空间的采样均值,其中,该采样方差为预设参数;最后根据该采样均值以及采样方差在该采样空间内采样得到该备选权重。本实施例中,利用该第一损失值生成的采样空间以及采样均值生成备选权重,这样可以将损失值和加权关联在一起,得到针对性的高质量加权方案。同时采用对数正态分布可以在对数正态分布的良好泛化性上基础,保证采样得到的备选权重大于零。
可选的,该备选权重的数量可以根据该第一损失值的数量确定(也相当于根据该子网络的数量确定),即该备选权重的数量为2的n次方,其中该n为该第一损失值的数量。而在该第一损失值较少的情况下,本实施例中可以设定该n的值,以保证可采选到足够多的备选权重。本实施例中,采选足够的备选权重,从而实现选择高质量的权重参数的目的。
可选的,该多损失模型获取装置在训练过程中还会实时更新该采样均值,其具体操作如下:该多损失模型获取装置利用第一公式和该第一损失值计算该采样均值,其中,该第一公式为:
其中,所述μ用于表示所述采样均值,所述c用于表示所述第一损失值,所述i用于表示所述第一损失值的标识,所述n用于表示所述第一损失值的数量。本实施例中,根据损失值更新采样均值,可以实时将该损失值与加权进行更紧密的关联,从而实现更高质量的加权方案。
可选的,该多损失模型获取装置在生成备选权重中之后,还可以对该备选权重进行筛选得到该子网络在第二迭代周期内训练的权重参数,其具体操作如下:该多损失模型获取装置将该第一损失值以及该备选权重输入该权重预测模型计算得到各个备选权重对应的期望分值,其中该期望分值用于评估该备选权重的训练效果;然后将该期望分值按照降序排列,选择排列前k个备选权重输出作为该子网络对应的第一权重参数,其中,该k为该子网络的数量。本实施例中,通过对训练效果的预测选择更好的权重参数,可以提高采样效率与权重参数的质量。
可选的,该权重预测模型还可以根据历史训练信息进行更新,其中该历史训练信息包括该第一迭代周期对应的损失值、权重参数和训练效果以及该第一迭代周期之前的迭代周期对应的损失值、权重参数以及训练效果。本实施例中,该多损失模型获取装置基于训练过程中的历史信息作为训练数据构建,可以有效提高采样效率和权重生成质量。
可选的,该多损失模型训练参数在训练的初始阶段还可以利用少量训练样本进行初始训练得到初始化训练参数,其中,该初始化训练参数包括初始化权重、采样方差、权重预测模型的初始参数,然后根据该初始化训练参数启动该多损失模型的训练。可以理解的是,本实施例中该多损失模型获取装置可以利用少量样本进行初始化训练也可以直接在初始化阶段用户设置相应的初始化数据。具体方式此处不做限定。
第二方面,本申请实施例提供了一种多损失模型获取装置,该装置包括至少一个功能模块,所述至少一个功能模块用于实现上述第一方面或第一方面任一种可能的实现方式中描述的方法,各功能模块之间为了实现方法步骤可以实现通信。
第三方面,本申请实施例提供了一种多损失模型获取装置,该装置包括存储器和处理器;所述存储器存储有可编程指令;所述处理器用于调用所述可编程指令以执行上述第一方面或第一方面任一种可能的实现方式中描述的方法。
第四方面,本申请实施例提供了一种多损失模型获取装置,该装置包括处理器;所述处理器用于与存储器耦合,读取所述存储器中的指令并根据所述指令执行上述第一方面或第一方面任一种可能的实现方式中描述的方法。可选的,所述存储器为该装置的内部存储器,也可以是该装置的外部存储器。可选的,该装置可以是用于多损失模型训练的专用芯片,那么存储器可以是集成在该专用芯片中,也可以是独立于该专用处芯片之外。
第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有指令,当指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可能的实现方式中描述的方法。
第六方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第七方面,本申请实施例提供了一种多损失模型获取装置,该装置包括:获取模块,用于获取所述子网络对应的第一损失值,所述第一损失值为所述多任务训练场景下第一迭代周期输出的损失值;生成模块,用于根据所述第一损失值生成备选权重;筛选模块,用于将所述第一损失值以及所述备选权重输入权重预测模型,输出所述子网络的第一权重参数,所述第一权重参数用于第二迭代周期的训练,所述第二迭代周期为所述第一迭代周期的下一个迭代周期;第一更新模块,用于根据所述第一权重参数更新所述多损失模型的参数。
可选的,该生成模块,具体用于确定所述第一损失值的采样空间;在所述采样空间中采样以得到所述备选权重。
可选的,所述采样空间包括所述第一损失值的对数正态分布或者所述第一损失值的对数均匀分布。
可选的,所述采样空间为所述第一损失值的对数正态分布时,所述生成模块,具体用于获取所述采样空间的采样方差,并计算所述采样空间的采样均值,所述采样方差为预设参数;根据所述采样均值和所述采样方差在所述采样空间中采样以得到所述备选权重。
可选的,所述生成模块,具体用于利用第一公式和所述第一损失值计算所述采样均值;其中,所述第一公式为:
其中,所述μ用于表示所述采样均值,所述c用于表示所述第一损失值,所述i用于表示所述第一损失值的标识,所述n用于表示所述第一损失值的数量。
可选的,所述筛选模块,具体用于将所述第一损失值以及所述备选权重输入所述权重预测模型计算得到所述备选权重对应的期望分值,所述期望分值用于评估所述备选权重的训练效果;将所述期望分值进行降序排列,选择排列前k个备选权重输出作为所述第一权重参数,所述k为所述子网络数量。
可选的,所述装置还包括:初始化模块,用于获取初始化训练参数,所述初始化训练参数包括初始化权重、采样方差、所述权重预测模型的初始参数;根据所述初始化训练参数启动所述多损失模型训练。
可选的,所述装置还包括:第二更新模块,用于根据历史训练信息更新所述权重预测模型,所述历史训练信息包括所述第一迭代周期以及所述第一迭代周期之前的损失值、所述损失值对应的权重参数以及训练效果。
附图说明
图1为本申请实施例提供的一种人工智能主体框架示意图;
图2为本申请实施例提供的一种应用环境示意图;
图3为本申请实施例提供的一种系统架构图;
图4为本申请实施例提供的一个训练系统架构图;
图5为本申请实施例中多损失模型获取方法的一个实施例;
图6为本申请实施例中多损失模型获取方法的一个工作流程示意图;
图7为本申请实施例中多损失模型的一个实验结果对比图;
图8为本申请实施例中多损失模型的另一个实验结果对比图;
图9为本申请实施例中多损失模型的另一个实验结果对比图;
图10为本申请实施例中多损失模型的另一个实验结果对比图;
图11为本申请实施例中多损失模型的一个可视化效果对比图;
图12为本申请实施例中多损失模型获取装置的一个实施例示意图;
图13为本申请实施例中多损失模型获取装置的另一个实施例示意图;
图14为本申请实施例中多损失模型获取装置的一个系统框架图;
图15为本申请实施例中多损失模型获取装置的另一个实施例示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的单元的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个单元可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的单元或子单元可以是也可以不是物理上的分离,可以是也可以不是物理单元,或者可以分布到多个电路单元中,可以根据实际的需要选择其中的部分或全部单元来实现本申请方案的目的。
为了更好地理解本发明实施例,在此首先释明下面实施例可能涉及到的概念:
超参数优化(hyperparameteroptimization,hpo):是指利用算法对现有模型或算法中的超参数进行调优。超参数一般是指认为设置的模型或者算法设定,当使用超参数优化算法时,不需要人工干预,便能够针对特定的模型给出适合的超参数,从而使模型的性能最大化的发挥出来。超参数优化为自动化机器学习的一个重要组成部分。
自动机器学习(automl):是指设计一系列高级的控制系统去操作机器学习模型,使得模型可以自动化地学习到合适的参数和配置而无需人工干预。在基于深度神经网络的学习模型中,自动计算学习主要包括网络架构搜索与全局参数设定。其中,网络架构搜索是最近的研究热点,用于根据数据让计算机生成最适应问题的神经网络架构,具有训练复杂度高,性能提升大的特点。
全景分割(panopticsegmentation):全景分割是最新提出的图像解析任务。该任务结合了实例分割(instancesegmentation)和语义分割(semanticsegmentation)两个核心计算机视觉任务,需要算法同时解决两个任务的痛点问题。
损失值(loss):对于神经网络训练而言,通常计算网络输出与标注之间的损失值,然后通过反向传播算法优化神经网络参数。对于全景分割等任务的模型而言,一般包括多个子任务地损失,最终通过加权求和得到网络的最终的损失值,并且网络训练通常对加权值较为敏感。
多层感知器(multi-layerperceptron,mlp):是一种简单的人工神经网络,一般包括输入层,隐藏层与输出层。输入层通常由一个向量表示,网络参数由反向传播算法进行优化。
图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“it价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(cpu、npu、gpu、asic、fpga等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
本申请实施例提供的多损失模型可以应用于各种多任务场景。一种示例性方案中,该多任务场景可以是计算视觉场景,其中包括如图2所示的无人车感知系统中的全景分割场景。该全景分割任务中,其网络结构可以包含3个阶段的分类,回归,实例掩膜(instancemask)损失以及1个语义分割(semanticsegmentation)损失,共计10个loss需要同时优化调优。即在全景分割场景下包含对采集到的图片中的每一个目标物体进行实例分割,得到每一个物体(例如每一个车,人等)的实例掩膜(mask),同时,神经网络需要输出对背景(如天空,地面)的语义分割的结果。如图2中的a所示为无人车感知系统采集到的一个现场图片;如图2中的b所示为对全景分割之后输出的图片。
本实施例中计算机视觉场景为例进行说明,如图3所示,本申请实施例提供了一种系统架构300。数据采集设备360用于获取样本数据以及训练产生的损失值并存入数据库330,训练设备320基于数据库330中维护的样本数据以及训练产生的损失值生成目标模型/规则301。下面将更详细地描述训练设备320如何基于样本数据以及训练产生的损失值得到目标模型/规则301,目标模型/规则301能够自适应的调整损失值对应的权重参数,同时在训练过程中利用并行计算优势探索权重的有效性以及继承优秀的网络参数和权重,从而实现在一个训练时间内得到最优训练模型。
如图4所示,本申请实施例提供一种多损失模型的训练系统400,包括权重生成模块401、搜索模块402以及权重预测更新模块403。其中,该权重生成模块401包括权重采样4011以及权重预测4012。该搜索模块402输出每个迭代周期的损失值至该权重生成模块401,然后该权重生成模块401的权重采样4011根据该损失值确定采样空间以及采样均值,并根据该采样均值以及预设的采样方差在该采样空间中采样生成备选权重;然后通过该权重预测4012预测各个备选权重对应的期望分值,然后选择期望分值排名靠前的备选权重作为下一阶段的权重参数。该搜索模块402将该权重预测4012输出的权重参数加入到训练过程中,该搜索模块402将针对至少一个子网络进行训练。可以理解的是,该搜索模块402的训练过程中还包括其他网络参数,具体此处不做限定。上述过程进行重复,实现迭代训练。同时该搜索模块402将每一次迭代训练输出的损失值、损失值对应的权重参数以及训练效果作为所述权重预测更新模块403的输入,通过mlp生成权重预测4012对应模型能力的目的。
本申请实施例提供一种多损失模型获取方法,具体请参阅图5所示,该多损失模型获取方法具体步骤如下:
501、获取子网络对应的第一损失值,其中,该第一损失值为第一迭代周期输出的损失值。
在模型训练过程中,该多损失模型获取装置获取该至少一个子网络在第一迭代周期训练输出的第一损失值。假设该多损失模型的训练过程中包括两个子网络,每个子网络对应10个损失值,迭代次数为2000次,该第一迭代周期为第100次,该多损失模型获取装置将获取第100次训练过程中输出的20个损失值(即这20个损失值作为该第一损失值)。
502、根据该第一损失值生成备选权重。
本实施例中,该多损失模型获取装置根据该第一损失值生成备选权重的具体操作如下:该多损失模型获取装置确定该第一损失值对应的采样空间,然后在该采样空间内采样以得到该备选权重。
可以理解的是,本实施例中,该第一损失值对应的采样空间包括但不限于该第一损失值的对数正态分布或者该第一损失值的对数均匀分布。同时对于不同的采样空间,该多损失模型获取装置进行采样的参数不一样。
在该采样空间为该第一损失值的对数正态分布时,该多损失模型获取装置根据该第一损失值生成备选权重的具体操作如下:
该多损失模型获取装置确定该第一损失值的对数正态分布;获取采样方差,并计算该采样均值,其中,该采样方差为用户在初始化阶段根据经验值预设的一个参数;然后取该第一损失值的对数正态分布中的数值集合为采样空间;最后根据该采样方差和该采样均值在该采样空间中采选该备选权重。可以理解的是为了保证足够多的备选权重,可以根据该第一损失值的数量进行采选,本实施例中该备选权重的数量可以设置为2的n次方组,其中,该n为该第一损失值的数量。比如该多损失模型的训练过程中包括2个损失值,则该备选权重的数量可以为4组,分别为(a1,b1)、(a2,b2)、(a3,b3)和(a4,b4)。
本实施例中,该多损失模型获取装置可以利用第一公式和所述第一损失值计算所述采样均值;
其中,所述第一公式为:
其中,所述μ用于表示所述采样均值,所述c用于表示所述第一损失值,所述i用于表示所述第一损失值的标识,所述n用于表示所述第一损失值的数量。
而在该采样空间为该第一损失值的对数均匀分布时,该多损失模型获取装置根据采样概率在该采样空间采样以得到该备选权重。
503、将该第一损失值以及该备选权重输入权重预测模型,输出该子网络对应的第一权重参数,其中,该第一权重参数用于第二迭代周期的训练,该第二迭代周期为该第一迭代周期的下一个迭代周期。
本实施例中,该第一损失值对应多组备选权重;该多损失模型获取装置将该第一损失值与每组备选权重依次输入权重预测模型,然后计算得到每一组备选权重的期望分值,即预测得到每组备选权重训练之后的训练效果;将该期望分值降序排序,最后根据该多任务训练场景下并行训练的子网络数量选择排名靠前的k个备选权重作为该第一权重参数。假设该多损失模型的训练过程中包括两个损失值,且该两个损失值对应于同一子网络,则该备选权重的数量可以为4组,分别为(a1,b1)、(a2,b2)、(a3,b3)和(a4,b4)。通过该权重预测模型得到每一组备选权重对应的期望分值,假设分别为c1,c2,c3以及c4,且按照c1、c2、c3、c4的顺序依次减小;由于该子网络的数量为1,则选择期望值为c1的备选权重组作为该子网络的第一权重参数。本实施例中该损失值的数量较少时,该备选权重的数量可以由用户自行设定,只要该备选权重的数量足够即可。
本实施例中,该权重预测模型还可以根据历史训练信息进行更新,即相当于根据历史训练信息进行训练得到更优的权重预测模型。该历史训练信息包括前期迭代周期的损失值、损失值对应的权重参数以及训练结果。本实施例中,该权重预测模型可以是一个简单的神经网络模型,比如mlp。
504、根据该第一权重参数更新该多损失模型的参数。
该多损失模型获取装置利用该第一权重参数更新替代该第一迭代周期的权重参数,然后将该第一权重参数附加上更新后的网络参数作为该多损失模型的训练参数进行第二迭代周期的训练。
本实施例中,当该多损失模型的训练迭代周期完成之后,评估该多损失模型的训练结果。在该训练结果达到预期效果之后,输出该多损失模型。
下面以一个具体的训练流程对本申请实施例中的多损失模型获取方法进行说明,具体请参阅图6所示:
在多损失模型训练开始时,先初始化权重生成器以及初始化网络参数,利用该权重生成器生成初始化权重参数。使用该初始化权选参数和该初始化网络参数进行并行模型训练。其中,并行训练n个子网络,每一个子网络训练进行单个训练阶段(如2000个迭代)。在每个子网络的单个训练阶段完成之后,对该单个模型进行模型性能评估,并输出模型性能(即训练效果)、损失值(loss)以及损失值对应的权重参数。确定该多损失模型的搜索阶段是否完成,若未完成,则进入更新阶段。在该更新阶段,采用上述图5所示的方式生成新的权重参数。利用该新的权重参数更新上一迭代周期的权重参数,并更新该网络参数。利用更新后的权重参数和网络参数进行并行模型训练。在每个子网络的单个训练阶段完成之后,对该单个模型进行模型性能评估,并输出模型性能(即训练效果)、损失值(loss)以及损失值对应的权重参数。确定该多损失模型的搜索阶段是否完成,若未完成,则返回执行更新阶段。若完成,则输出最优模型。
上面图5至图6描述了该多损失模型的普适性场景,而在具体的全景分割任务实验中,假设该全景分割数据集包含80个目标物体种类,53个背景类别种类,对应约11.8万张训练图片与5千张测试图片(也称为coco数据集),使用全景分割质量(panopticquality,pq)作为总体的衡量指标,同时会考虑前景和背景的全景分割质量(pqth,pqst)。采用本申请实施例中模型获取方法输出的模型能够取得最优的效果。该模型的性能与没有调优或手工调优得到的模型性能相比,都有较大的提升。其实验结果如图7至图9所示。由图7至图9所示的结果可知,本申请实施例的数据集上,采用本申请获取方法得到的模型相对于手工调参模型,在测试集上总pq取得最优效果;并且,在前-后背景上取得了最佳的权衡,没有出现其他方法中效果失衡的情况。采用本申请获取方法得到的模型能达到47.5%pq。在验证集上,通过采用本申请训练过程中动态调权重,可见采用本申请获取方法得到的模型有非常大的提升(提升2.4%)。
假设该全景分割数据集包含100个目标物体种类,50个背景类别种类,对应2万张训练图片和2千张测试图片(也称为ade20k数据集)。同样使用全景分割质量(panopticquality,pq)作为总体的衡量指标,同时会考虑前景和背景的全景分割质量(pqth,pqst)。采用本申请实施例中模型获取方法输出的模型能够取得最优的效果。该模型的性能与没有调优或手工调优得到的模型性能相比,都有较大的提升。其实验结果如图10所示。图10中(ourbaselinee)用于指示未调整权重参数的基线、(ourbaselinee*)用于指示手工调整权重参数的基线、(ourbaselinee+ada-segment)用于指示采用本申请获取方法的基线;由此可见采用本申请获取方法的模型具有较大提升。
而在如图11中可视化效果中也可以得看到本申请实施例获取方法输出的模型的效果可以达到更好的效果。其中,image用于指示原图片,groundtruth用于指示未采用本申请实施例获取方法输出的模型输出的图片分割结果,ours用于指示采用本申请实施例获取方法输出的模型输出的图片分割结果。
本申请实施例中,在多损失模型的训练过程中,每一个迭代周期对于多个任务的损失值都更新优化权重值,同时在训练过程中利用并行计算优势探索权重的有效性以及继承优秀的网络参数和权重,从而实现在一个训练时间内得到最优训练模型。
上面描述了本申请实施例中多损失模型获取方法,下面描述本申请实施例中多损失模型获取装置,具体请参阅图12所示,本申请实施例中该多损失模型获取装置1200的一个实施例包括:获取模块1201,用于获取所述子网络对应的第一损失值,所述第一损失值为所述多任务训练场景下第一迭代周期输出的损失值;
生成模块1202,用于根据所述第一损失值生成备选权重;
筛选模块1203,用于将所述第一损失值以及所述备选权重输入权重预测模型,输出所述子网络的第一权重参数,所述第一权重参数用于第二迭代周期的训练,所述第二迭代周期为所述第一迭代周期的下一个迭代周期;
第一更新模块1204,用于根据所述第一权重参数更新所述多损失模型的参数。
该获取模块1201,用于执行上述实施例步骤501,即获取所述子网络对应的第一损失值。
生成模块1202,用于执行上述实施例步骤502,即根据所述第一损失值生成备选权重。
筛选模块1203,用于执行上述实施例步骤503,即将所述第一损失值以及所述备选权重输入权重预测模型,输出所述子网络的第一权重参数。
第一更新模块1204,用于执行上述实施例步骤504,即根据所述第一权重参数更新所述多损失模型的训练参数。
本申请实施例提供了一种多损失模型获取装置,如图13所示,该装置1300包括:至少一个处理器1301,存储器1302,至少一个通信总线1303,至少一个网络接口1304或者其他用户接口1305。通信总线1303用于实现这些组件之间的连接通信。
存储器1302可以包括只读存储器和随机存取存储器,并向处理器1301提供指令和数据。存储器1302的一部分还可以包括非易失性随机存取存储器(nvram)。
在一些实施方式中,存储器1302存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统13021,包含各种系统程序,例如图14所示的框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
应用程序模块13022,包含各种应用程序,例如图14示的桌面(launcher)、媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用业务。
在本申请实施例中,通过调用存储器1302存储的程序或指令,处理器1301用于实现图5和图6对应的本申请实施例中描述的方法。
本申请实施例提供了一种多损失模型获取装置1500,如图15所示,该装置1500包括:第一处理器1501,存储器1502,收发器1503,第二处理器1504,通信总线1505。通信总线1505用于实现这些组件之间的连接通信。
收发器1503用于与外部进行数据传输。
存储器1502可以包括只读存储器和随机存取存储器,并向第一处理器1501和第二处理器1504提供指令和数据。存储器1502的一部分还可以包括非易失性随机存取存储器(nvram),例如ram、rom、eeprom、cd-rom、光盘、硬盘、磁性存储装置等等;存储器1502可以用来存储计算机程序指令、预设的参数、计算机中间运算得到的数据等中间的一个或多个。
第一处理器1501和第二处理器1504可以是一个中央处理单元(centralprocessingunit,cpu),或者为数字处理单元等等。
在本申请实施例中,可选的,第一处理器1501包括片内存储器,例如tcm,cache,sram,片内存储器中存储有指令,第一处理器1501与片内存储器耦合,用于实现图5和图6对应的本申请实施例中描述的方法,或者,第一处理器1501与片内存储器耦合调用片内存储器中的指令,并与存储器1502耦合获取数据,以用于实现图5和图6对应的本申请实施例中描述的方法。在实际中,第一处理器1501可能是一个独立出售的芯片,也可能集成在某一芯片上,该芯片包括第一处理器1501。
可选的,通过调用存储器1502存储的程序或指令,第二处理器1504用于实现图5和图6对应的本申请实施例中描述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
本申请实施例的各模块还能够实现图5对应的本申请实施例描述的其他方法步骤,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。