掌桥专利:专业的专利平台
掌桥专利
首页

神经网络模型更新方法、图像处理方法及装置

文献发布时间:2023-06-19 11:32:36


神经网络模型更新方法、图像处理方法及装置

技术领域

本申请涉及人工智能领域,并且更具体地,涉及一种神经网络模型更新方法、图像处理方法及装置。

背景技术

人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。

随着人工智能技术的快速发展,神经网络(例如,卷积神经网络)的性能得到了持续的提升,神经网络在图像、视频以及语音等多种媒体信号的处理与分析中也取得了很大的成就。一个性能优良的神经网络往往拥有精妙的网络结构,但在实际应用中,由于训练集、指标要求及应用的目标不同,往往不能直接用现有的网络结构。

对于全业务流程,传统方案通常是将原始数据送入预处理模块进行处理,处理后的数据送入神经网络进行特征学习,然后利用损失函数进行神经网络的更新。目前,传统方案中一种常见的做法是,针对该业务流程上的每个模块单独设计自动化机器学习(automated machine learning,AutoML)任务,基于AutoML对各个模块分别进行自动搜索,得到各自最优的模块,例如预处理方式、网络模型结构和损失函数等。然而,上述方案得到的模块组合在一起之后可能无法获得最优的性能。甚至,当某些模块之间存在一定冲突时,还会使得系统性能倒退。

因此,如何高效地实现神经网络模型的更新,成为一个亟需解决的技术问题。

发明内容

本申请提供一种神经网络模型更新方法、图像处理方法及装置,能够提高神经网络模型更新的效率。

第一方面,提供了一种神经网络模型更新方法,该方法包括:获取神经网络模型的结构以及神经网络模型的相关参数;将训练数据输入神经网络模型进行处理,得到预测标签;根据预测标签和训练数据的标签确定损失函数的函数值,并根据损失函数的函数值以及神经网络模型的超参数训练神经网络模型,得到训练后的神经网络模型;采用评估方式对训练后的神经网络模型进行评估,在训练后的神经网络模型的评估结果不满足预设条件的情况下,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,直至更新后的神经网络模型的评估结果满足所述预设条件和/或更新次数达到预设次数。神经网络模型的相关参数包括神经网络模型的超参数、损失函数和评估方式。

具体地,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,包括对神经网络模型的结构进行更新和/或对神经网络模型的相关参数进行更新。

例如,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,可以为对神经网络模型的结构和损失函数进行更新。

再如,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,可以为对神经网络模型的超参数和损失函数进行更新。也就是说在更新的过程中,神经网络模型的结构和评估方式可以保持不变,在该情况下能够获得损失函数和神经网络模型的超参数的最优组合方式,该组合方式可以应用于其他神经网络模型,以提升神经网络模型更新的效率。

示例性地,评估方式与评估指标有关。评估指标可以包括神经网络模型的目标大小、神经网络模型的目标推理精度和神经网络模型的目标推理时延等中的至少一项。神经网络模型的目标大小可以理解为神经网络模型所占用的目标内存。

例如,评估方式可以包括对神经网络模型的大小和神经网络模型的推理精度进行评估。再例如,评估方式可以包括对神经网络模型的推理精度进行评估。

应理解,上述评估方式可以根据用户的需求设定,本申请实施例对评估指标的具体内容不做限定。

在本申请实施例中,对神经网络模型的相关参数以及神经网络模型的结构中的任意两项进行更新,并对在更新后的神经网络模型的相关参数以及神经网络模型的结构的基础上进行评估,实现了多参数的联合评估,避免了对各个参数单独进行更新时可能存在的冲突,以使最终得到的神经网络模型的相关参数以及神经网络模型的结构的组合能够尽快达到要求的性能指标,提高了神经网络模型更新的效率。

结合第一方面,在第一方面的某些实现方式中,神经网络模型的相关参数还包括预处理方式,以及将训练数据输入神经网络模型进行处理,得到预测标签,包括:采用预处理方式对训练数据进行预处理;将预处理后的训练数据输入神经网络模型进行处理,得到预测标签。

结合第一方面,在第一方面的某些实现方式中,神经网络模型的相关参数还包括神经网络模型压缩方式,以及将训练数据输入神经网络模型进行处理,得到预测标签,包括:采用神经网络模型压缩方式对神经网络模型进行处理,得到处理后的神经网络模型;将训练数据输入处理后的神经网络模型,得到预测标签。

具体地,采用上述神经网络模型压缩方式对神经网络模型进行处理包括对神经网络模型进行压缩和/或对神经网络模型进行量化。

结合第一方面,在第一方面的某些实现方式中,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,包括:根据神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的每一项对应的第一信息确定每一项对应的多个待选选项的概率分布,其中,每一项对应的第一信息包括评估结果;根据每一项对应的多个待选选项的概率分布将每一项对应的多个待选选项中的一个待选选项确定为每一项更新后的选项。

例如,对神经网络模型的结构以及损失函数进行更新,包括:根据神经网络模型的结构对应的第一信息确定多个待选的神经网络模型的结构的概率分布,根据多个待选的神经网络模型的结构的概率分布将多个待选的神经网络模型的结构中的一个确定为更新后的神经网络模型的结构。根据损失函数对应的第一信息确定多个待选的损失函数的概率分布。根据损失函数对应的第一信息确定多个待选的损失函数的概率分布,根据多个待选的损失函数的概率分布将多个待选的损失函数中的一个确定为更新后的损失函数。其中,神经网络模型的结构对应的第一信息包括之前更新后的神经网络模型的评估结果。损失函数对应的第一信息包括之前更新后的神经网络模型的评估结果。

在本申请实施例中,根据每一项对应的多个待选选项的概率分布将每一项对应的多个待选选项中的一个待选选项确定为每一项更新后的选项,这样可以提高更新过程的效率,同时避免更新过程陷入局部最优。

结合第一方面,在第一方面的某些实现方式中,每一项对应的第一信息还包括神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的其他项的相关信息,其他项的相关信息包括其他项和/或其他项对应的多个待选选项的概率分布。

在本申请实施例中,在更新的过程中获取其他项的相关信息,能够实现联合更新优化,在更新的过程中可以避免各个参数之间可能存在的冲突,以进一步使得最终得到的神经网络模型的相关参数以及神经网络模型的结构的组合能够尽快达到要求的性能指标,提高了神经网络模型更新的效率。

结合第一方面,在第一方面的某些实现方式中,方法还包括:根据第一频率获取其他项的相关信息,其中,第一频率与训练后的神经网络模型处理的业务规模有关。

结合第一方面,在第一方面的某些实现方式中,每一项对应的第一信息还包括每一项的历史相关信息,每一项的历史相关信息包括在之前更新中每一项更新后的选项和/或在之前更新中每一项对应的多个待选选项的概率分布。

结合第一方面,在第一方面的某些实现方式中,每一项对应的第一信息还包括训练资源状态信息,训练资源状态信息包括训练机器的数量。

训练资源状态信息还可以包括当前可用的训练机器的数量。

结合第一方面,在第一方面的某些实现方式中,神经网络模型的超参数包括在神经网络模型训练过程中不变的参数。

结合第一方面,在第一方面的某些实现方式中,神经网络模型的超参数包括以下一项或多项:神经网络模型的学习率、神经网络模型的权重衰减系数、神经网络模型的标签平滑系数或神经网络模型的丢弃参数。

第二方面,提供了一种图像处理方法,该方法包括:获取待处理图像;采用目标神经网络模型对待处理图像进行处理,得到待处理图像的处理结果;其中,目标神经网络模型是对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,直至更新后的神经网络模型的评估结果满足预设条件和/或更新次数达到预设次数得到的,其中,神经网络模型的相关参数包括神经网络模型的超参数、损失函数和评估方式,神经网络模型是根据预测标签和训练数据的标签确定损失函数的函数值,并根据损失函数的函数值以及神经网络模型的超参数进行训练得到的;预测标签是将训练数据输入神经网络模型进行处理得到的。

应理解,第二方面中的图像处理方法所采用的目标神经网络模型在进行图像分类之前,还可以再根据训练图像对该目标神经网络模型进行训练,训练得到的目标神经网络模型可以对待处理图像进行分类。

也就是说,可以采用第一方面中的神经网络模型更新方法得到目标神经网络模型,接下来,再根据训练图像对该目标神经网络模型进行训练,训练完成后可以用该目标神经网络模型对待处理图像进行分类。

可替换地,可以采用第一方面中的神经网络模型更新方法得到目标神经网络模型,该目标神经网络模型可以是已经训练好的神经网络模型,可以利用该训练好的神经网络模型对待处理图像进行分类。

本申请中,由于目标神经网络模型是采用上述第一方面的方法得到的,比较符合或者贴近神经网络模型的应用需求,利用这样的神经网络模型进行图像分类,能够取得较好的图像分类效果(例如,分类结果更准确,等等)。对神经网络模型以及神经网络模型的相关参数中的任意两项进行更新,并对在更新后的神经网络模型以及神经网络模型的相关参数的基础上进行评估,实现了多参数的联合评估,避免了对各个参数单独进行更新时可能存在的冲突,以使最终得到的神经网络模型以及神经网络模型的相关参数的组合能够尽快达到要求的性能指标,提高了神经网络模型更新的效率,尽快得到目标神经网络模型。

结合第二方面,在第二方面的某些实现方式中,神经网络模型的相关参数还包括预处理方式,预测标签是采用预处理方式对训练数据进行预处理之后,将预处理后的训练数据输入神经网络模型进行处理得到的。

结合第二方面,在第二方面的某些实现方式中,神经网络模型的相关参数还包括神经网络模型压缩方式,预测标签是采用神经网络模型压缩方式对神经网络模型进行处理之后,将训练数据输入处理之后的神经网络模型得到的。

结合第二方面,在第二方面的某些实现方式中,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,包括:根据神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的每一项对应的第一信息确定每一项对应的多个待选选项的概率分布,其中,每一项对应的第一信息包括评估结果;根据每一项对应的多个待选选项的概率分布将每一项对应的多个待选选项中的一个待选选项确定为每一项更新后的选项。

结合第二方面,在第二方面的某些实现方式中,每一项对应的第一信息还包括神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的其他项的相关信息,其他项的相关信息包括其他项和/或其他项对应的多个待选选项的概率分布。

结合第二方面,在第二方面的某些实现方式中,每一项对应的第一信息还包括每一项的历史相关信息,每一项的历史相关信息包括在之前更新中每一项更新后的选项和/或在之前更新中每一项对应的多个待选选项的概率分布。

结合第二方面,在第二方面的某些实现方式中,每一项对应的第一信息还包括训练资源状态信息,训练资源状态信息包括训练机器的数量。

结合第二方面,在第二方面的某些实现方式中,神经网络模型的超参数包括在神经网络模型训练过程中不变的参数。

结合第二方面,在第二方面的某些实现方式中,神经网络模型的超参数包括以下一项或多项:神经网络模型的学习率、神经网络模型的权重衰减系数、神经网络模型的标签平滑系数或神经网络模型的丢弃参数。

第三方面,提供了一种神经网络模型更新的装置,所述装置包括用于执行上述第一方面以及第一方面中的任意一种实现方式中的方法的模块或单元。

第四方面,提供了一种图像处理装置,所述装置包括用于执行上述第二方面以及第二方面中的任意一种实现方式中的方法的模块或单元。

应理解,在上述第一方面中对相关内容的扩展、限定、解释和说明也适用于第二方面、第三方面和第四方面中相同的内容。

第五方面,提供了一种神经网络模型更新的装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第一方面以及第一方面中的任意一种实现方式中的方法。

上述第五方面中的处理器既可以是中央处理器(central processing unit,CPU),也可以是CPU与神经网络运算处理器的组合,这里的神经网络运算处理器可以包括图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-networkprocessing unit,NPU)和张量处理器(tensor processing unit,TPU)等等。其中,TPU是谷歌(google)为机器学习全定制的人工智能加速器专用集成电路。

第六方面,提供了一种图像处理装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第二方面以及第二方面中的任意一种实现方式中的方法。

上述第六方面中的处理器既可以是中央处理器,也可以是CPU与神经网络运算处理器的组合,这里的神经网络运算处理器可以包括图形处理器、神经网络处理器和张量处理器等等。其中,TPU是谷歌为机器学习全定制的人工智能加速器专用集成电路。

第七方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面或第二方面中的任意一种实现方式中的方法。

第八方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第二方面中的任意一种实现方式中的方法。

第九方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面或第二方面中的任意一种实现方式中的方法。

可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或第二方面中的任意一种实现方式中的方法。

上述芯片具体可以是现场可编程门阵列(field-programmable gate array,FPGA)或者专用集成电路(application-specific integrated circuit,ASIC)。

附图说明

图1是本申请实施例提供的一种人工智能主体框架示意图;

图2为本申请实施例提供的一种系统架构的结构示意图;

图3为本申请实施例提供的一种卷积神经网络的结构示意图;

图4为本申请实施例提供的另一种卷积神经网络的结构示意图;

图5为本申请实施例提供的一种芯片的硬件结构示意图;

图6为本申请实施例提供的一种系统架构的示意图;

图7是自动神经网络模型更新的示意性流程图;

图8是自动机器学习应用于神经网络模型的示意性流程图;

图9是本申请实施例提供的神经网络模型更新方法的示意性流程图;

图10是本申请实施例提供的神经网络模型更新的装置的示意性框图;

图11是本申请实施例提供的另一个神经网络模型更新的装置的示意性框图;

图12是本申请实施例提供的另一个神经网络模型更新方法的示意性流程图;

图13是本申请实施例提供的图像处理方法的示意性流程图;

图14是本申请实施例提供的神经网络模型更新的装置的示意性框图;

图15是本申请实施例提供的图像处理装置的示意性框图;

图16是本申请实施例提供的神经网络模型训练装置的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。

下面从“智能信息链”(水平轴)和“信息技术(information technology,IT)价值链”(垂直轴)两个维度对上述人工智能主题框架进行详细的阐述。

“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。

“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。

(1)基础设施:

基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。

基础设施可以通过传感器与外部沟通,基础设施的计算能力可以由智能芯片提供。

这里的智能芯片可以是中央处理器(central processing unit,CPU)、神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphics processingunit,GPU)、专门应用的集成电路(application specific integrated circuit,ASIC)以及现场可编程门阵列(field programmable gate array,FPGA)等硬件加速芯片。

基础设施的基础平台可以包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。

例如,对于基础设施来说,可以通过传感器和外部沟通获取数据,然后将这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。

(2)数据:

基础设施的上一层的数据用于表示人工智能领域的数据来源。该数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。

(3)数据处理:

上述数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等处理方式。

其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。

推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。

决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。

(4)通用能力:

对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。

(5)智能产品及行业应用:

智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。

本申请实施例可以应用在人工智能中的很多领域,例如,智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市等领域。

具体地,本申请实施例可以具体应用在自动驾驶、图像分类、图像检索、图像语义分割、图像质量增强、图像超分辨率和自然语言处理等需要使用(深度)神经网络的领域。

下面对相册图片分类、平安城市和自动机器学习(auto machine learning,AutoML)云服务这三种应用场景进行简单的介绍。

相册图片分类:

当用户在终端设备(例如,手机)或者云盘上存储了大量的图片时,通过对相册中图像进行识别可以方便用户或者系统对相册进行分类管理,提升用户体验。

利用本申请实施例的神经网络模型更新方法,能够获得或者优化适用于相册分类的神经网络。接下来就可以利用该神经网络对图片进行分类,从而为不同的类别的图片打上标签,便于用户查看和查找。另外,这些图片的分类标签也可以提供给相册管理系统进行分类管理,节省用户的管理时间,提高相册管理的效率,提升用户体验。

平安城市场景下的属性识别:

平安城市场景下,需要进行多种属性识别,例如行人属性识别和骑行属性识别,深度神经网络凭借着其强大的能力在多种属性识别中发挥着重要的作用。通过采用本申请实施例的神经网络模型更新方法,能够获得或优化适用于平安城市场景下进行属性识别的神经网络。接下来就可以利用该神经网络对输入的道路画面进行处理,从而识别出道路画面中的不同的属性信息。

自动机器学习云服务:

在自动机器学习云服务平台中,用户可以根据自身的需求和任务定制神经网络模型和/或获得神经网络模型的相关参数。利用本申请实施例提供的神经网络模型更新方法,能够根据用户的需求获得神经网络模型和/或神经网络模型的相关参数,提高云服务平台的性能。

由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。

(1)神经网络

神经网络可以是由神经单元组成的,神经单元可以是指以x

其中,s=1、2、……n,n为大于1的自然数,W

(2)深度神经网络

深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。

虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:

综上,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为

需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。

(3)卷积神经网络

卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。卷积核可以以随机大小的矩阵的形式化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。

(4)循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。

既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。

(5)损失函数

在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。

(6)反向传播算法

神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。

如图2所示,本申请实施例提供了一种系统架构100。在图2中,数据采集设备160用于采集训练数据。针对本申请实施例的图像处理方法来说,训练数据可以包括训练图像以及训练图像对应的分类结果,其中,训练图像的结果可以是人工预先标注的结果。

在采集到训练数据之后,数据采集设备160将这些训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到目标模型/规则101。

下面对训练设备120基于训练数据得到目标模型/规则101进行描述,训练设备120对输入的原始图像进行处理,将输出的图像与原始图像进行对比,直到训练设备120输出的图像与原始图像的差值小于一定的阈值,从而完成目标模型/规则101的训练。

上述目标模型/规则101能够用于实现本申请实施例的图像处理方法。本申请实施例中的目标模型/规则101具体可以为神经网络。需要说明的是,在实际的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型/规则101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。

根据训练设备120训练得到的目标模型/规则101可以应用于不同的系统或设备中,如应用于图2所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)AR/虚拟现实(virtual reality,VR),车载终端等,还可以是服务器或者云端等。在图2中,执行设备110配置输入/输出(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:客户设备输入的待处理图像。

预处理模块113和预处理模块114用于根据I/O接口112接收到的输入数据(如待处理图像)进行预处理,在本申请实施例中,也可以没有预处理模块113和预处理模块114(也可以只有其中的一个预处理模块),而直接采用计算模块111对输入数据进行处理。

在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。

最后,I/O接口112将处理结果,如上述得到的图像的分类结果返回给客户设备140,从而提供给用户。

值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。

在图2中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。

值得注意的是,图2仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。

如图2所示,根据训练设备120训练得到目标模型/规则101,该目标模型/规则101在本申请实施例中可以是本申请中的神经网络,具体的,本申请实施例构建的神经网络可以为CNN,深度卷积神经网络(deep convolutional neural networks,DCNN),循环神经网络(recurrent neural network,RNNS)等等。

由于CNN是一种非常常见的神经网络,下面结合图3重点对CNN的结构进行详细的介绍。如上文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过神经网络模型更新的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。

本申请实施例的图像处理方法具体采用的神经网络的结构可以如图3所示。在图3中,卷积神经网络(CNN)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。其中,输入层210可以获取待处理图像,并将获取到的待处理图像交由卷积层/池化层220以及后面的神经网络层230进行处理,可以得到图像的处理结果。下面对图3中的CNN 200中内部的层结构进行详细的介绍。

卷积层/池化层220:

卷积层:

如图3所示卷积层/池化层220可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225为卷积层,226为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。

下面将以卷积层221为例,介绍一层卷积层的内部工作原理。

卷积层221可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。

这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。

当卷积神经网络200有多个卷积层的时候,的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络200深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。

池化层:

由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图3中220所示例的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。

神经网络层230:

在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐含层(如图3所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。

在神经网络层230中的多层隐含层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图3由210至240方向的传播为前向传播)完成,反向传播(如图3由240至210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果和理想结果之间的误差。

本申请实施例的图像处理方法具体采用的神经网络的结构可以如图4所示。在图4中,卷积神经网络(CNN)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。与图3相比,图4中的卷积层/池化层220中的多个卷积层/池化层并行,将分别提取的特征均输入给神经网络层230进行处理。

需要说明的是,图3和图4所示的卷积神经网络仅作为一种本申请实施例的图像处理方法的两种可能的卷积神经网络的示例,在具体的应用中,本申请实施例的图像处理方法所采用的卷积神经网络还可以以其他网络模型的形式存在。

另外,采用本申请实施例的神经网络结构的搜索方法得到的卷积神经网络的结构可以如图3和图4中的卷积神经网络结构所示。

图5为本申请实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图1所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则101。如图3和图4所示的卷积神经网络中各层的算法均可在如图5所示的芯片中得以实现。

神经网络处理器NPU 50作为协处理器挂载到主中央处理器(central processingunit,CPU)(host CPU)上,由主CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。

在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。

举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。

向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。

在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。

统一存储器506用于存放输入数据以及输出数据。

权重数据直接通过存储单元访问控制器505(direct memory accesscontroller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。

总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。

与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;

控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。

一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,简称DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。

其中,图3和图4所示的卷积神经网络中各层的运算可以由运算电路503或向量计算单元507执行。

上文中介绍的图2中的执行设备110能够执行本申请实施例的图像处理方法的各个步骤,图3和图4所示的CNN模型和图5所示的芯片也可以用于执行本申请实施例的图像处理方法的各个步骤。

下面结合附图对本申请实施例的构建神经网络的方法和本申请实施例的图像处理方法进行详细的介绍。

如图6所示,本申请实施例提供了一种系统架构300。该系统架构包括本地设备301、本地设备302以及执行设备310和数据存储系统350,其中,本地设备301和本地设备302通过通信网络与执行设备310连接。

执行设备310可以由一个或多个服务器实现。可选的,执行设备310可以与其它计算设备配合使用,例如:数据存储器、路由器、负载均衡器等设备。执行设备310可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备310可以使用数据存储系统350中的数据,或者调用数据存储系统350中的程序代码来实现本申请实施例的神经网络模型更新方法。

具体地,在一种实现方式中,执行设备110可以执行以下过程:

获取神经网络模型以及所述神经网络模型的相关参数,所述神经网络模型的相关参数包括神经网络模型的超参数、损失函数和评估方式;

将训练数据输入所述神经网络模型,得到预测标签;

根据所述预测标签和所述训练数据的标签确定所述损失函数的函数值,并根据所述损失函数的函数值以及所述神经网络模型的超参数训练所述神经网络模型,得到训练后的神经网络模型;

采用所述评估方式对所述训练后的神经网络模型进行评估,在所述训练后的神经网络模型的评估结果不满足预设条件的情况下,对所述神经网络模型以及所述神经网络模型的相关参数中的至少两项进行更新,直至更新的结果满足终止条件。

通过上述过程执行设备110能够获取一个目标神经网络和/或神经网络的相关参数,该目标神经网络可以用于图像分类或者进行图像处理等等。

用户可以操作各自的用户设备(例如本地设备301和本地设备302)与执行设备310进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。

每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备310进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。

在一种实现方式中,本地设备301、本地设备302从执行设备310获取到目标神经网络的相关参数,将目标神经网络部署在本地设备301、本地设备302上,利用该目标神经网络进行图像分类或者图像处理等等。

在另一种实现中,执行设备310上可以直接部署目标神经网络,执行设备310通过从本地设备301和本地设备302获取待处理图像,并采用目标神经网络模型对待处理图像进行分类或者其他类型的图像处理。

上述执行设备310也可以为云端设备,此时,执行设备310可以部署在云端;或者,上述执行设备310也可以为终端设备,此时,执行设备310可以部署在用户终端侧,本申请实施例对此并不限定。

基于AutoML的云平台可以根据用户设定的限制条件,进行网络设计和搜索,并将网络设计和搜索得到的网络模型训练完成提供给用户。限制条件可以包括网络模型的类型、网络模型的精度、网络模型的时延以及网络模型的运行平台等。

图7示出了AutoML框架的示意性结构图。如图7所示,AutoML包括搜索空间(searchspace)、优化器(optimizer)和评估器(evaluator)。

搜索空间根据AutoML具体任务确定,AutoML具体任务也就是图7中的学习过程,可以理解为需要进行学习的任务/过程,具体任务可以包括预处理方式、神经网络模型和损失函数等。例如,当具体任务为神经网络模型,搜索空间可以包括多个神经网络结构单元,最终的神经网络模型就是通过搜索空间中的这些神经网络单元组合形成的。

优化器用于在搜索空间内选择不同的配置分配给评估器进行评估,然后根据评估器反馈的评估结果进行策略更新,或者说是进行配置更新。例如,当具体任务为神经网络模型,优化器可以在搜索空间中选择神经网络结构单元,或者说搜索神经网络结构单元,并进行组合得到一个或多个候选模型,从组合得到的候选模型中选择一个网络模型,被选择的网络模型可以理解为一个配置,将该配置分配给评估器进行评估。

评估器用于在学习平台上评估不同配置的性能指标,并将得到的评估结果反馈给优化器。例如,当具体任务为神经网络模型,评估器可以针对优化器选择的网络模型进行训练,对训练后的网络模型的性能指标进行评估,性能指标可以包括神经网络模型的准确率和网络模型的时延等。将评估的结果反馈给优化器,用于优化器更新配置。

在本申请实施例中,上述AutoML框架中的优化器和评估器可以作为一个智能体(agent)或者一个智能模块。智能体通过与环境进行交互进行学习,完成上述AutoML具体任务。智能体为通过动作与环境进行交互的主体。环境为智能体交互的对象或探索的目标,对应于上述学习平台。动作为智能体所有作用在环境上的操作,对应于上述优化器选择的配置。上述优化器在搜索空间中选择不同的配置,相当于智能体在搜索空间中选择不同的动作(action)。状态为智能体获取的环境信息,环境信息可以包括奖励,奖励为环境反馈给智能体的动作的效果,对应于上述评估器得到的不同配置的评估结果。上述优化器根据评估结果进行配置更新相当于智能体能够根据奖励调整动作生成的方向。

在一种业务流程中,根据预处理方式对数据进行预处理,将预处理后的数据输入神经网络模型中进行特征学习和映射,然后利用损失函数对神经网络模型的参数进行迭代更新,或者说对该神经网络模型进行训练,训练后的神经网络模型即为提供给用户的神经网络模型,用户可以利用训练后的神经网络模型进行结果预测。

图8示出了一种AutoML应用于业务流程的示意图。通常,AutoML只能针对该业务流程上的各个需要优化的模块/参数单独设计AutoML任务。例如,上述业务流程需要优化的参数/模块可以包括:预处理方式、神经网络模型和损失函数,对应三个独立的AutoML任务。这三个AutoML任务分别由三个智能体完成,三个智能体分别得到三个最优的配置,即最优的预处理方式、最优的神经网络模型和最优的损失函数。

将这三个最优的配置应用于上述业务流程中,也就是,利用最优的预处理方式对数据进行预处理,将预处理后的数据输入最优的神经网络模型中进行特征学习和映射,然后利用最优的损失函数对最优的神经网络模型的参数进行迭代更新,或者说对最优的神经网络模型进行训练,判断训练后的最优的神经网络模型能够满足用户的限制条件,如果满足用户的限制条件,该神经网络模型即为提供给用户的神经网络模型。用户可以利用该神经网络模型进行结果预测。如果不满足用户的限制条件,则需要重新利用三个智能体得到三个最优的配置,重复上述过程,直至满足用户的限制条件。

上述三个AutoML任务为完全独立的,三个智能体之间没有关联,无法实现端到端的设计。对三个智能体得到的最优的预处理方式、最优的神经网络模型和最优的损失函数进行简单组合,训练后得到的神经网络模型可能无法获得最优的性能。甚至,当三个最优的配置中的某些配置之间存在一定的冲突时,还有可能使最后得到的神经网络模型的性能倒退,例如,降低了最后得到的神经网络模型的准确度等。当最后得到的神经网络模型的性能不满足用户的限制条件时,还需要重复之前的过程,影响了生产效率。

下面结合图9对本申请实施例的一种神经网络模型更新方法900进行详细的介绍。图9所示的方法可以由神经网络模型更新的装置来执行,该神经网络模型更新的装置可以是云服务设备,也可以是移动终端,例如,电脑、服务器等运算能力足以用来神经网络模型更新的装置。方法包括步骤910至步骤940。下面对步骤910至步骤940进行详细说明。

910,获取神经网络模型的结构以及神经网络模型的相关参数,神经网络模型的相关参数包括神经网络模型的超参数、损失函数和评估方式。

神经网络模型中的参数是通过数据训练或数据学习得到的。例如,神经网络模型中的参数可以为神经网络模型的权重和偏置。神经网络模型的超参数包括在神经网络模型训练过程中不变的参数。超参数不是通过数据训练或者数据学习得到的,通常是在数据训练或者数据学习之前确定的。

示例性地,神经网络模型的超参数包括以下一项或多项:神经网络模型的学习率、神经网络模型的权重衰减(weight decay)系数、所述神经网络模型的标签平滑(labelsmooth)系数或所述神经网络模型的丢弃(dropout)参数等。

上述神经网络模型的评估方式与神经网络模型的具体评估指标有关。示例性地,神经网络模型的评估指标可以包括神经网络模型的目标大小、神经网络模型的目标推理精度和神经网络模型的目标推理时延等中的至少一项。神经网络模型的目标大小可以理解为神经网络模型所占用的目标内存。在本申请实施例中,“推理”也可以称为“预测”。相应地,训练后的神经网络模型的评估结果可以包括该训练后的神经网络模型的大小、该训练后的神经网络模型的推理精度和该训练后的神经网络模型的推理时延等中的至少一项。

例如,评估方式可以包括对神经网络模型的大小和神经网络模型的推理精度进行评估。再例如,评估方式可以包括对神经网络模型的推理精度进行评估。

应理解,上述评估指标以及评估方式可以根据用户的需求设定,本申请实施例对评估指标以及评估方式的具体内容不做限定。

神经网络模型的相关参数以及神经网络模型的结构中任一项可以是预先设定的,也可以是随机获取的。

920,将训练数据输入神经网络模型进行处理,得到预测标签。

可选地,神经网络模型的相关参数还包括对训练数据进行预处理的预处理方式。在该情况下,步骤920包括:

921a,采用上述预处理方式对训练数据进行预处理。

示例性地,该神经网络模型可以应用于图像处理,训练数据包括训练图像,预处理方式可以包括对训练图像进行翻转或平移等。

922a,将预处理后的训练数据输入神经网络模型进行处理,得到预测标签。

可选地,神经网络模型的相关参数还包括神经网络模型压缩方式。在该情况下,步骤920包括:

921b,采用上述神经网络模型压缩方式对神经网络模型进行处理,得到处理后的神经网络模型。

具体地,采用上述神经网络模型压缩方式对神经网络模型进行处理包括对神经网络模型进行压缩和/或对神经网络模型进行量化。

示例性地,对神经网络模型进行压缩,可以包括:丢弃冗余权重参数或减少卷积核通道数或缩减神经网络模型的层数等。

示例性地,对神经网络模型进行量化,可以包括:减少表示每个权重所需的比特数来压缩神经网络模型。例如,权重由32位比特变为8位比特等。

应理解,以上采用上述神经网络模型压缩方式对神经网络模型进行处理的方式仅为示例,本申请实施例对神经网络模型压缩方式的具体内容不做限定。

922b,将训练数据输入处理后的神经网络模型,得到预测标签。

在步骤921b中,对神经网络模型进行处理可以为对没有训练过的神经网络模型进行处理,也可以为对训练之后的神经网络模型进行处理。

具体地,步骤921b可以为对步骤910得到的神经网络模型直接进行处理,例如,进行压缩和/或量化。然后将训练数据输入处理后的神经网络模型,得到预测标签。也就是说先对神经网络模型进行处理,然后对处理后的神经网络模型进行训练,例如,执行步骤930。

可替换地,步骤921b可以为,基于神经网络模型的相关参数对步骤910得到的神经网络模型进行训练,然后对训练后的神经网络模型进行处理,例如,进行压缩和/或量化,然后将训练数据输入处理后的神经网络模型,得到预测标签。也就是说,先对神经网络模型进行训练,例如执行步骤930。然后对训练后的神经网络模型进行处理,对处理后的神经网络模型再次进行训练,例如,再次执行步骤930。两次训练采用的训练数据可以相同,也可以不同。

930,根据预测标签和训练数据的标签确定损失函数的函数值,并根据损失函数的函数值以及神经网络模型的超参数训练神经网络模型,得到训练后的神经网络模型。

损失函数的函数值能够用来衡量神经网络模型的预测标签和训练数据的标签之间的差异,根据两者之间的差异情况来更新每一层神经网络的权重向量,直到神经网络模型的预测标签和训练数据的标签非常接近。例如,损失函数的函数值越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个函数值的过程。在一些情况下,损失函数也可以是目标函数。

训练神经网络模型也就是修正神经网络模型中的参数的大小。具体地,训练神经网络模型也就是修正该神经网络模型的结构中的参数大小。可以采用误差反向传播算法在训练过程中修正的神经网络模型中参数的大小,使得神经网络模型的误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。

940,采用上述评估方式对训练后的神经网络模型进行评估,在训练后的神经网络模型的评估结果不满足预设条件的情况下,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,直至更新后的神经网络模型的评估结果满足预设条件和/或更新次数达到预设次数。

也就是说在对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新之后,重复步骤920至步骤940,对神经网络模型进行评估,在更新后的神经网络模型的评估结果不满足预设条件和/或更新次数未达到预设次数的情况下,继续对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,直至更新后的神经网络模型的评估结果满足预设条件和/或更新次数达到预设次数。

预设条件与评估指标相关。评估结果满足预设条件可以包括训练后的神经网络模型的性能达到评估指标,也可以为训练后的神经网络模型的性能达到与评估指标相关的范围内。

例如,评估指标包括神经网络模型的目标推理精度和/或神经网络模型的目标推理时延,则训练后的神经网络模型的评估结果满足预设条件可以为训练后的神经网络模型的推理精度和/或训练后的神经网络模型的推理时延达到神经网络模型的目标推理精度和/或神经网络模型的目标推理时延。

具体地,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,包括对神经网络模型的结构进行更新和/或对神经网络模型的相关参数进行更新。

示例性地,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,可以为,对神经网络模型的结构和损失函数进行更新。也就是说在更新的过程中,神经网络模型的超参数和评估方式保持不变,对神经网络模型的结构和损失函数进行更新,得到第一神经网络模型的结构和第一损失函数。执行步骤920,具体地,将训练数据输入第一神经网络模型,得到预测标签。执行步骤930,具体地,根据预测标签和训练数据的标签确定第一损失函数的函数值,并根据第一损失函数的函数值以及神经网络模型的超参数训练第一神经网络模型,得到训练后的神经网络模型。

执行步骤940,具体地,采用上述评估方式对训练后的神经网络模型进行评估,在更新后的神经网络模型的评估结果不满足预设条件和/或更新次数未达到预设次数情况下,对第一神经网络模型的结构以及第一损失函数进行更新,按照上述方式重复步骤920至步骤940,直至更新后的神经网络模型的评估结果满足预设条件和/或更新次数达到预设次数。在该情况下,能够得到更新后的神经网络模型的结构和损失函数。

示例性地,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,还可以为,对损失函数和评估方式进行更新。也就是说在更新的过程中,神经网络模型的结构和神经网络模型的超参数等保持不变,在该情况下能够获得损失函数和评估方式的最优组合方式,该组合方式可以应用于其他神经网络模型的结构,以提升神经网络模型更新的效率以及提升神经网络模型的性能。

可选地,步骤940中对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,具体包括:

940a,根据神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的每一项对应的第一信息分别确定上述至少两项中的每一项对应的多个待选选项的概率分布。其中,每一项对应的第一信息包括训练后的神经网络模型的评估结果,也可以说是上一次更新得到的神经网络模型的评估结果。

上一次更新后的神经网络模型的评估结果指的是,基于上一次更新后神经网络模型的结构和/或神经网络模型的相关参数对神经网络模型进行训练,对训练后的神经网络模型进行评估得到的评估结果。为了便于描述,在本申请实施例中,基于上一次更新后神经网络模型的结构和/或神经网络模型的相关参数对神经网络模型进行训练,对训练后的神经网络模型进行评估得到的评估结果,也可以称为对更新后的神经网络模型进行评估。应理解,在本申请实施例中,仅对神经网络模型的相关参数进行更新,不对神经网络模型的结构进行更新,基于更新的神经网络模型的相关参数对神经网络模型进行训练,对训练后的神经网络模型进行评估得到的评估结果,也可以称为,对更新后的神经网络模型进行评估,得到的评估结果。

具体地,对于每一项,可以对每一项对应的第一信息进行处理,得到特征图。例如,利用循环神经网络对每一项对应的第一信息进行处理,得到特征图。根据特征图确定每一项对应的多个待选选项的概率分布。例如,利用全连接网络确定每一项对应的多个待选选项的概率分布。

应理解,以上确定每一项对应的多个待选选项的概率分布的方式仅为示例,其他能够确定每一项对应的多个待选选项的概率分布的方式均适用于步骤940a,本申请实施例对概率分布的计算方式不作限制。

940b,根据每一项对应的多个待选选项的概率分布分别将每一项对应的多个待选选项中的一个待选选项确定为更新后的选项。

例如,可以根据每一项对应的多个待选选项的概率分布将多个待选选项中的概率最高的一个待选选项确定为更新后的选项。

再例如,可以根据每一项对应的多个待选选项的概率分布进行采样,采样得到的待选选项即为更新后的选项。这样可以提高更新过程的效率,同时避免更新过程陷入局部最优。

示例性地,步骤940中对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,可以为,对神经网络模型的相关参数以及神经网络模型的结构中的两项进行更新。这两项分别为神经网络模型的结构和损失函数,步骤940具体包括:

940c,根据神经网络模型的结构对应的第一信息确定神经网络模型的结构对应的多个待选选项的概率分布。神经网络模型的结构对应的多个待选选项的概率分布,也可以理解为多个候选的神经网络模型的结构的概率分布。其中,神经网络模型的结构对应的第一信息包括上一次更新后的神经网络模型的评估结果。根据损失函数对应的第一信息确定损失函数对应的多个待选选项的概率分布。损失函数对应的多个待选选项的概率分布,也可以理解为多个候选的损失函数的概率分布。其中,损失函数对应的第一信息包括上一次更新后的神经网络模型的评估结果。

940d,根据神经网络模型的结构对应的多个待选选项的概率分布将神经网络模型的结构对应的多个待选选项中的一个待选选项确定为更新后的神经网络模型的结构。根据损失函数对应的多个待选选项的概率分布将损失函数对应的多个待选选项中的一个待选选项确定为更新后的损失函数。

可选地,每一项对应的第一信息还包括神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的其他项的相关信息,其他项的相关信息包括本次更新之前的其他项和本次更新之前的其他项对应的多个待选选项的概率分布中的至少一种。

示例性地,步骤940中对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,可以为,对神经网络模型的相关参数以及神经网络模型的结构中的两项进行更新。这两项分别为神经网络模型的结构和损失函数。

神经网络模型的结构对应的第一信息还包括损失函数的相关信息。损失函数的相关信息包括本次更新之前的损失函数和/或本次更新之前的损失函数对应的多个待选选项的概率分布。例如,损失函数的相关信息包括上一次更新后的损失函数和/或上一次更新后的损失函数对应的多个待选选项的概率分布。再例如,损失函数的相关信息包括前几次更新后的损失函数和/或前几次更新后的损失函数对应的多个待选选项的概率分布。

损失函数对应的第一信息还包括神经网络模型的结构的相关信息。神经网络模型的结构的相关信息包括本次更新之前的神经网络模型的结构和/或本次更新之前的神经网络模型的结构对应的多个待选选项的概率分布。例如,神经网络模型的结构的相关信息包括上一次更新后的神经网络模型的结构和/或上一次更新后的神经网络模型的结构对应的多个待选选项的概率分布。再例如,神经网络模型的结构的相关信息包括前几次更新后的神经网络模型的结构和/或前几次更新后的神经网络模型的结构对应的多个待选选项的概率分布。

可选地,步骤940还包括:根据第一频率分别获取至少两项中的其他项的相关信息。

也就是说可以根据第一频率在至少两项更新的过程中进行信息交换。

示例性地,步骤940中对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,可以为,对神经网络模型的相关参数以及神经网络模型的结构中的两项进行更新,这两项分别为神经网络模型的结构和损失函数。

根据第一频率分别获取至少神经网络模型的相关参数以及神经网络模型的结构中的两项中的其他项的相关信息,可以包括:根据第一频率获取损失函数的相关信息;根据第一频率获取神经网络模型的结构的相关信息。也就是根据第一频率在神经网络模型的结构和损失函数更新的过程中进行信息交互。

示例性地,第一频率可以是预先设定的固定值。

可替换地,第一频率可以与神经网络模型处理的业务类型和业务规模有关。

当业务规模较小时,例如,神经网络模型用于手机相册分类时,训练数据的数量级约为百万级,该信息交换可以为即时信息交换,即获取当前的其他项的相关信息,也就是获取上一次更新后的其他项的相关信息。当业务规模较大时,例如,神经网络模型用于人脸识别时,训练数据的数量级可达到亿级,该信息交换可以为获取一段时间内的其他项的相关信息。

可选地,至少两项中的其他项的相关信息的内容可以与神经网络模型处理的业务类型和业务规模有关。

例如,当业务规模较小时,其他项的相关信息的内容可以仅包括其他项。当业务规模较大时,其他项的相关信息的内容可以包括其他项以及其他项对应的多个待选选项的概率分布。

在本申请实施例中,在更新的过程中获取其他项的相关信息,能够实现联合更新优化,在更新的过程中可以避免各个参数之间可能存在的冲突,以使得最终得到的神经网络模型以及所述神经网络模型的相关参数的组合能够尽快达到要求的性能指标,提高了神经网络模型更新的效率。

可选地,每一项对应的第一信息还包括每一项的历史相关信息。每一项的历史相关信息包括在之前更新中每一项更新后的选项和/或在之前更新中每一项对应的多个待选选项的概率分布

例如,每一项的历史相关信息可以包括前几次更新中每一项更新后的选项和/或前几次更新中每一项对应的多个待选选项的概率分布。在本申请实施例中,为了便于描述,每一项更新后的选项也可以称为更新后的每一项。

进一步地,每一项的历史相关信息还可以包括前几次更新后的环境状态信息。

可选地,每一项对应的第一信息还包括训练资源状态信息。训练资源状态信息包括训练机器的数量。

例如,训练资源状态信息还可以包括当前可用的训练机器的数量。

根据训练资源状态信息可以调整更新过程中各个参数对应的训练资源或者调整训练的规模等,进一步提高神经网络模型更新的效率。

例如,可以根据训练资源调整机器学习过程中的特征的数量等。再例如,也可以根据待选选项的数量分配训练资源。

在本申请实施例中,对神经网络模型的相关参数以及神经网络模型的结构中的任意两项进行更新,并对在更新后的神经网络模型的相关参数以及神经网络模型的结构的基础上进行评估,实现了多参数的联合评估,避免了对各个参数单独进行更新时可能存在的冲突,以使最终得到的神经网络模型以及所述神经网络模型的相关参数的组合能够尽快达到要求的性能指标,提高了神经网络模型更新的效率。

图10是本申请实施例的神经网络模型更新的装置的示意图。该神经网络模型更新的装置主要包括:环境状态观测模块、训练推理模块和输出模块。

为了更好的了解本申请实施例中的神经网络模型更新的执行过程,下面对图10中的各个模块的功能进行简单的描述。

环境观测模块,用于收集环境状态信息,并将环境状态信息输入至训练推理模块。该环境状态信息包括训练后的神经网络模型的评估结果。

可选地,环境状态信息还可以包括训练资源状态信息。例如,训练资源状态信息可以包括训练机器总数量和当前可用的训练机器的数量。

神经网络模型更新的装置可以包括一个环境观测模块,也可以包括多个环境观测模块。例如,进行更新的至少两项中的每一项分别对应一个环境观测模块。

训练推理模块,用于根据接收到的信息,对至少两项中的每一项分别进行更新,得到更新后的每一项。

神经网络模型更新的装置可以包括一个训练推理模块,也可以包括多个训练推理模块。例如,进行更新的至少两项中的每一项分别对应一个训练推理模块。

输出模块,基于训练推理模块得到的更新后的每一项对神经网络模型进行评估。

神经网络模型更新的装置还可以包括:历史信息存储模块和其他项的相关信息收集模块。

历史信息存储模块:用于存储每一项的历史相关信息,并将历史相关信息输入训练推理模块中。历史相关信息包括前几次更新后的环境状态信息、前几次更新后的每一项以及前几次更新后的每一项对应的网络状态中的至少一种。例如,每一项对应的网络状态可以为每一项对应的多个待选选项的概率分布。

其他项的相关信息收集模块:用于获取其他项的相关信息,并将其他项的相关信息输入训练推理模块中。其他项的相关信息包括本次更新之前的其他项和本次更新之前的其他项对应的网络状态中的至少一种。例如,其他项对应的网络状态可以为其他项对应的多个待选选项的概率分布。

为了便于描述和理解,上述对至少两项进行更新可以理解为由至少两个智能体分别完成至少两项的更新任务,每个智能体对应一个更新任务。多个智能体可以组成多智能体系统(multi-agent system,MAS),共同实现上述更新任务。例如,对至少两项进行更新可以包括更新神经网络模型和预处理方式,一个智能体用于对神经网络模型进行更新,另一个智能体用于对预处理方式进行更新。应理解,本申请实施例中,“智能体”仅是为了便于描述而引入的概念,不对本申请实施例构成限定。

在对N项进行更新的情况下,图10所示的装置可以包括N个智能体,每个智能体均可以包括环境状态观测模块、训练推理模块和输出模块。

可选地,每个智能体还可以包括历史信息存储模块和其他项的相关信息收集模块。

图11示出了本申请实施例的一种神经网络模型更新的系统框图。在图11中,包括3个智能体,分别为智能体1、智能体2和智能体3,进行更新的三项分别为预处理方式、神经网络模型的结构和损失函数。智能体1用于更新预处理方式,智能体2用于更新神经网络模型的结构,智能体3用于更新损失函数。下面以图11为例对方法900进行说明。

(A-1)智能体1、智能体2和智能体3分别输出预处理方式、神经网络模型的结构和损失函数。第一次执行该步骤可以理解为三个智能体的初始化过程,该步骤对应前述步骤910。从第二次执行该步骤开始,可以理解为三个智能体的更新过程,可以对应前述步骤940中的更新过程。

图11仅以更新三项作为示例,对于神经网络模型的相关参数中的其他项可以是固定不变的。例如,神经网络模型的超参数、评估方式等参数在神经网络模型更新的过程中可以是预设的。在神经网络模型的相关参数包括神经网络模型的压缩方式的情况下,该神经网络模型的压缩方式也可以是预设的。

在图11中,三个智能体的更新过程可以由各自的训练推理模块完成。

具体地,对于智能体1,环境状态观测模块收集训练后的神经网络的评估结果,并输入训练推理模块。训练推理模块基于环境状态观测模块输入的信息进行训练推理,得到更新后的预处理方式。其他两个智能体可以执行相同的操作,分别得到更新后的神经网络模型的结构和更新后的损失函数。

可选地,环境状态观测模块还可以收集训练资源状态信息,并输入至训练推理模块。

可选地,三个智能体还可以包括其他智能体信息收集模块和历史信息存储模块。其他智能体信息收集模块也就是图10中的其他项的相关信息收集模块。

具体地,对于智能体1,训练推理模块可以基于环境状态观测模块、其他智能体信息收集模块和历史信息存储模块输入的信息进行训练推理,得到更新后的预处理方式。其他两个智能体可以执行相同的操作,分别得到更新后的神经网络模型的结构和更新后的损失函数。

(A-2)在神经网络模型的相关参数不包括神经网络模型的压缩方式的情况下,执行步骤(A-2a),在在神经网络模型的相关参数包括神经网络模型的压缩方式的情况下,根据情况执行步骤(A-2a)或步骤(A-2b)。

(A-2a)包括:

采用步骤(A-1)中的预处理方式对训练数据进行预处理,将预处理后的训练数据输入步骤(A-1)中的神经网络模型,得到预测标签。

(A-2b)包括:

采用步骤(A-1)中的预处理方式对训练数据进行预处理;

采用上述神经网络模型的压缩方式对步骤(A-1)中的神经网络模型进行处理,对神经网络模型进行处理可以为对神经网络模型进行量化和/或压缩。

将预处理后的训练数据输入处理后的神经网络模型,得到预测标签。

(A-3)在神经网络模型的相关参数不包括神经网络模型的压缩方式的情况下,执行步骤(A-3a)。在神经网络模型的相关参数包括神经网络模型的压缩方式的情况下,根据情况执行步骤(A-3a)或步骤(A-3b),步骤(A-2a)与步骤(A-3b)对应,步骤(A-2b)与步骤(A-3a)对应。步骤(A-2)和步骤(A-3)对应方法900中的步骤920至步骤930。

(A-3a)包括:

根据预测标签和训练数据的标签确定损失函数的函数值,并根据损失函数的函数值以及神经网络模型的超参数训练神经网络模型,得到训练后的神经网络模型。

(A-3b)包括:

根据预测标签和训练数据的标签确定损失函数的函数值,并根据损失函数的函数值以及神经网络模型的超参数训练神经网络模型,得到训练后的神经网络模型。

采用上述神经网络模型的压缩方式对步骤(A-2a)中训练后的神经网络模型进行处理,得到处理后的神经网络模型,对训练后的神经网络模型进行处理可以为对训练后的神经网络模型进行量化和/或压缩。

然后对该处理后的神经网络模型进行训练,得到训练后的神经网络模型。

(A-4)采用步骤(A-1)中的评估方式对训练后的神经网络模型进行评估,得到训练后的神经网络模型的评估结果。

为了便于描述,上述步骤(A-2)至步骤(A-4)可以理解为三个智能体将动作输出至环境中,得到评估结果。

(A-5)在更新后的神经网络模型的评估结果不满足预设条件和/或更新次数未达到预设次数的情况下,重复步骤(A-1)至步骤(A-4)。

上述评估结果达到预设条件可以为更新过程收敛。预设条件可以由用户设定。例如,预设条件可以为目标推理精度、目标推理时延和目标内存中的至少一项。此处仅为示意,预设条件还可以为用户设定的任意目标。

满足终止条件的情况下,三个智能体分别输出最终的预处理方式、最终的神经网络模型的结构和最终的损失函数,分别对应三个智能体输出的最终动作。三个最终动作可以作为一个配置,也就是作为最终的结果输出。

图12示出了本申请另一个实施例的神经网络模型更新方法的示意图。图12所示的方法可以由图11中的装置执行。图12所示的方法包括步骤1210至步骤1280。下面对步骤1210至步骤1280进行详细的说明。

1210,根据收集到的环境状态信息、历史相关信息以及其他智能体的信息得到每个智能体的动作。

图12中的环境状态信息可以包括当前训练环境中的训练资源状态和评估结果。当前训练环境中的训练资源状态可以包括训练机器的总数量和当前可用的训练机器的数量。环境状态信息可以由图11中的环境状态观测模块收集。

图12中的其他智能体信息也就是前述其他项的相关信息。具体地,其他智能体信息可以包括其他智能体的动作和其他智能体的网络状态。其他智能体的动作也就是其他项,其他智能体的网络状态可以包括其他智能体输出的动作对应的概率分布。其他智能体信息可以由图11中的其他智能体信息收集模块收集得到。智能体之间的其他智能体信息进行交换的频率和其他智能体信息的内容可以根据任务类型和任务规模确定。其他智能体信息进行交换可以是即时信息交换,也可以为预设频率或者说预设时间间隔的信息交换。例如,智能体1可以缓存自身的动作和网络状态等,等待下一次信息交换。再例如,智能体1的其他智能体信息收集模块接收到其他智能体信息后进行保存,达到预设时间间隔后传输至训练推理模块。

图12中的历史相关信息可以由图11中的历史相关信息收集模块得到。历史相关信息可以包括环境状态信息、智能体的历史动作和智能体的历史网络状态等。

具体地,步骤1210包括步骤1211至步骤1215。

1211,将收集到的环境状态信息、历史相关信息以及其他智能体的信息输入多层感知器(multi layer perceptron,MLP)网络。

具体地,可以将环境状态信息、历史相关信息以及其他智能体的信息拼接成一个向量,输入至MLP网络中。

1212,MLP网络对环境状态信息、历史相关信息以及其他智能体的信息进行处理,得到映射后的向量,输入长短期记忆(long short term memory,LSTM)网络中。

具体地,可以根据LSTM网络的输入维度确定映射后的向量的维度。

1213,LSTM网络对映射后的向量进行处理,得到特征图。

具体地,可以根据动作空间的维度,也就是输出维度,或者说是全连接层的输入维度,得到特征图。

1214,全连接层根据特征图得到智能体输出动作的概率分布。

具体地,三个智能体中的全连接层根据各自的特征图分别得到各自的动作的概率分布。例如,在智能体1、智能体2和智能体3分别对应预处理方式、神经网络模型的结构和损失函数的情况下,步骤1214可以分别得到预处理方式的概率分布、神经网络模型的结构的概率分布和损失函数的概率分布。

1215,根据三个智能体各自的动作的概率分布进行动作采样,得到输出的动作。

例如,在智能体1、智能体2和智能体3分别对应预处理方式、神经网络模型的结构和损失函数的情况下,在步骤1215中,智能体1中得到输出的预处理方式π1;智能体2得到输出的神经网络模型的结构π2;智能体3得到输出的损失函数π3。

该神经网络模型π2可以为没有经过训练的神经网络模型。

示例性地,智能体1输出的动作可以由离散的数值表示,智能体1输出的动作的集合为A={1,2,3…,N},对应的概率分布集合为P={p

1220,在环境中评估步骤上述三个智能体输出的动作。

上述三个智能体输出的动作,或者说策略,可以理解为一个策略组π={π1,π2,π3}。

具体地,将预处理方式π1、神经网络模型的结构π2和损失函数π3应用于业务流程中。对神经网络模型的结构π2进行训练,也就是对神经网络模型的结构π2中的参数进行修正,即对神经网络模型进行训练,得到训练后的神经网络模型。评估三个智能体输出的动作也就是评估训练后的神经网络模型的性能。例如,评估训练后的神经网络模型的推理精度或者评估训练后的网络模型的推理时延等。具体过程如前文中的步骤(A-2)至(A-4)中所述,此处不再赘述。

1230,判断更新的结果是否满足终止条件。若不满足终止条件,则重复步骤1210至步骤1220,若满足终止条件,则输出三个智能体当前的动作。

示例性地,更新的结果满足终止条件可以为更新后的神经网络模型的评估结果满足预设条件或更新次数达到预设次数。也就是说在对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新之后,重新对神经网络模型进行评估,在更新的结果不满足终止条件的情况下,继续对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,直至更新的结果满足终止条件。更新的结果不满足终止条件可以为更新后的神经网络模型的评估结果不满足预设条件,且更新次数未达到预设次数。

步骤1210至步骤1220可以理解为一次迭代的过程。

应理解,神经网络模型的相关参数以及神经网络模型的结构中的任一项均可以对应一个智能体,图12中仅以更新三项作为示例,三个智能体仅为示意。在具体的应用场景中,可以根据需要设定智能体的个数,也就是根据需要设定需要更新的项数。

图13示出了本申请实施例提供的图像处理方法1300的示意性流程图,该方法可以由能够进行图像处理的装置或设备执行,例如,该方法可以由终端设备、电脑、服务器等执行。

图13中的图像处理方法1300中使用的目标神经网络可以是通过上述图9中的方法或图12中的方法构建的。方法1300包括步骤1310至步骤1320。方法1300中的具体实现方式可以参照前述方法900,为了避免不必要的重复,下面在介绍方法1300时适当省略重复的描述。

1310,获取待处理图像。

其中,所述待处理图像可以是终端设备(或者电脑、服务器等其他装置或设备)通过摄像头拍摄到的图像,或者,该待处理图像还可以是从终端设备(或者电脑、服务器等其他装置或设备)内部获得的图像(例如,终端设备的相册中存储的图像,或者终端设备从云端获取的图像),本申请实施例对此并不限定。

1320,采用目标神经网络模型对待处理图像进行处理,得到待处理图像的处理结果。

其中,目标神经网络模型是对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,直至更新后的神经网络模型的评估结果满足预设条件和/或更新次数达到预设次数得到的,其中,神经网络模型的相关参数包括神经网络模型的超参数、损失函数和评估方式,神经网络模型是根据预测标签和训练数据的标签确定损失函数的函数值,并根据损失函数的函数值以及神经网络模型的超参数进行训练得到的;预测标签是将训练数据输入神经网络模型进行处理得到的。

可选地,神经网络模型的相关参数还包括预处理方式,预测标签是采用预处理方式对训练数据进行预处理之后,将预处理后的训练数据输入神经网络模型进行处理得到的。

可选地,神经网络模型的相关参数还包括神经网络模型压缩方式,预测标签是采用神经网络模型压缩方式对神经网络模型进行处理之后,将训练数据输入处理之后的神经网络模型得到的。

可选地,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,包括:根据神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的每一项对应的第一信息确定每一项对应的多个待选选项的概率分布,其中,每一项对应的第一信息包括评估结果。根据每一项对应的多个待选选项的概率分布将每一项对应的多个待选选项中的一个待选选项确定为每一项更新后的选项。

可选地,每一项对应的第一信息还包括神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的其他项的相关信息,其他项的相关信息包括其他项和/或其他项对应的多个待选选项的概率分布。

可选地,每一项对应的第一信息还包括每一项的历史相关信息,每一项的历史相关信息包括在之前更新中每一项更新后的选项和/或在之前更新中每一项对应的多个待选选项的概率分布。

可选地,每一项对应的第一信息还包括训练资源状态信息。训练资源状态信息包括训练机器的数量。

图14是本申请实施例提供的神经网络模型更新的装置的硬件结构示意图。图14所示的神经网络模型更新的装置3000(该装置3000具体可以是一种计算机设备)包括存储器3001、处理器3002、通信接口3003以及总线3004。其中,存储器3001、处理器3002、通信接口3003通过总线3004实现彼此之间的通信连接。

存储器3001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器3001可以存储程序,当存储器3001中存储的程序被处理器3002执行时,处理器3002用于执行本申请实施例的神经网络模型更新方法的各个步骤。具体地,处理器3002可以执行上文中图9所示的方法中的步骤910至步骤940。

处理器3002可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请方法实施例的神经网络模型更新方法。

处理器3002还可以是一种集成电路芯片,具有信号的处理能力,例如,可以是图5所示的芯片。在实现过程中,本申请的神经网络模型更新方法的各个步骤可以通过处理器3002中的硬件的集成逻辑电路或者软件形式的指令完成。

处理器3002用于:获取神经网络模型的结构以及神经网络模型的相关参数,神经网络模型的相关参数包括神经网络模型的超参数、损失函数和评估方式。处理器3002还用于:将训练数据输入神经网络模型进行处理,得到预测标签;根据预测标签和训练数据的标签确定损失函数的函数值,并根据损失函数的函数值以及神经网络模型的超参数训练神经网络模型,得到训练后的神经网络模型;采用评估方式对训练后的神经网络模型进行评估,在训练后的神经网络模型的评估结果不满足预设条件的情况下,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,直至更新后的神经网络模型的评估结果满足预设条件和/或更新次数达到预设次数。

可选地,神经网络模型的相关参数还包括预处理方式,以及处理器3002用于:采用预处理方式对训练数据进行预处理;将预处理后的训练数据输入神经网络模型进行处理,得到预测标签。

可选地,神经网络模型的相关参数还包括神经网络模型压缩方式,以及处理器3002用于:采用神经网络模型压缩方式对神经网络模型进行处理,得到处理后的神经网络模型;将训练数据输入处理后的神经网络模型,得到预测标签。

可选地,处理器3002用于:根据神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的每一项对应的第一信息确定每一项对应的多个待选选项的概率分布,其中,每一项对应的第一信息包括评估结果;根据每一项对应的多个待选选项的概率分布将每一项对应的多个待选选项中的一个待选选项确定为每一项更新后的选项。

可选地,每一项对应的第一信息还包括至少两项中的其他项的相关信息,其他项的相关信息包括其他项和/或其他项对应的多个待选选项的概率分布。

可选地,每一项对应的第一信息还包括每一项的历史相关信息,每一项的历史相关信息包括在之前更新中每一项更新后的选项和/或在之前更新中每一项对应的多个待选选项的概率分布。

可选地,每一项对应的第一信息还包括训练资源状态信息,训练资源状态信息包括训练机器的数量。

可选地,神经网络模型的超参数包括在神经网络模型训练过程中不变的参数。

可选地,神经网络模型的超参数包括以下一项或多项:神经网络模型的学习率、神经网络模型的权重衰减系数、神经网络模型的标签平滑系数或神经网络模型的丢弃参数。

上述处理器3002还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器3001,处理器3002读取存储器3001中的信息,结合其硬件完成本申请实施例的神经网络模型更新的装置中包括的单元所需执行的功能,或者执行本申请实施例的神经网络模型更新方法。

通信接口3003使用例如但不限于收发器一类的收发装置,来实现装置3000与其他设备或通信网络之间的通信。例如,可以通过通信接口3003获取神经网络模型更新的性能指标以及机器学习过程中需要的训练数据。

总线3004可包括在装置3000各个部件(例如,存储器3001、处理器3002、通信接口3003)之间传送信息的通路。

图15是本申请实施例的图像处理装置的硬件结构示意图。图15所示的图像处理装置4000包括存储器4001、处理器4002、通信接口4003以及总线4004。其中,存储器4001、处理器4002、通信接口4003通过总线4004实现彼此之间的通信连接。

存储器4001可以是ROM,静态存储设备和RAM。存储器4001可以存储程序,当存储器4001中存储的程序被处理器4002执行时,处理器4002和通信接口4003用于执行本申请实施例的图像处理方法的各个步骤。具体地,处理器4002可以执行上文中图13所示的方法中的步骤1310至步骤1320

处理器4002可以采用通用的,CPU,微处理器,ASIC,GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的图像处理装置中的单元所需执行的功能,或者执行本申请方法实施例的图像处理方法。

处理器4002还可以是一种集成电路芯片,具有信号的处理能力,例如,可以是图5所示的芯片。在实现过程中,本申请实施例的图像处理方法的各个步骤可以通过处理器4002中的硬件的集成逻辑电路或者软件形式的指令完成。

处理器4002用于:获取待处理图像;采用目标神经网络模型对待处理图像进行处理,得到待处理图像的处理结果。其中,目标神经网络模型是对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,直至更新后的神经网络模型的评估结果满足预设条件和/或更新次数达到预设次数得到的,其中,神经网络模型的相关参数包括神经网络模型的超参数、损失函数和评估方式,神经网络模型是根据预测标签和训练数据的标签确定损失函数的函数值,并根据损失函数的函数值以及神经网络模型的超参数进行训练得到的;预测标签是将训练数据输入神经网络模型进行处理得到的。

可选地,神经网络模型的相关参数还包括预处理方式,预测标签是采用预处理方式对训练数据进行预处理之后,将预处理后的训练数据输入神经网络模型进行处理得到的。

可选地,神经网络模型的相关参数还包括神经网络模型压缩方式,预测标签是采用神经网络模型压缩方式对神经网络模型进行处理之后,将训练数据输入处理之后的神经网络模型得到的。

可选地,对神经网络模型的相关参数以及神经网络模型的结构中的至少两项进行更新,包括:根据神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的每一项对应的第一信息确定每一项对应的多个待选选项的概率分布,其中,每一项对应的第一信息包括评估结果;根据每一项对应的多个待选选项的概率分布将每一项对应的多个待选选项中的一个待选选项确定为每一项更新后的选项。

可选地,每一项对应的第一信息还包括神经网络模型的相关参数以及神经网络模型的结构中的至少两项中的其他项的相关信息,其他项的相关信息包括其他项和/或其他项对应的多个待选选项的概率分布。

可选地,每一项对应的第一信息还包括每一项的历史相关信息,每一项的历史相关信息包括在之前更新中每一项更新后的选项和/或在之前更新中每一项对应的多个待选选项的概率分布。

可选地,每一项对应的第一信息还包括训练资源状态信息,训练资源状态信息包括训练机器的数量。

可选地,神经网络模型的超参数包括在神经网络模型训练过程中不变的参数。

可选地,神经网络模型的超参数包括以下一项或多项:神经网络模型的学习率、神经网络模型的权重衰减系数、神经网络模型的标签平滑系数或神经网络模型的丢弃参数。

上述处理器4002还可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器4001,处理器4002读取存储器4001中的信息,结合其硬件完成本申请实施例的图像处理装置中包括的单元所需执行的功能,或者执行本申请方法实施例的图像处理方法。

通信接口4003使用例如但不限于收发器一类的收发装置,来实现装置4000与其他设备或通信网络之间的通信。例如,可以通过通信接口4003获取待处理图像。

总线4004可包括在装置4000各个部件(例如,存储器4001、处理器4002、通信接口4003)之间传送信息的通路。

图16是本申请实施例的神经网络模型训练装置的硬件结构示意图。与上述装置3000和装置4000类似,图16所示的神经网络模型训练装置5000包括存储器5001、处理器5002、通信接口5003以及总线5004。其中,存储器5001、处理器5002、通信接口5003通过总线5004实现彼此之间的通信连接。

通过图14所示的神经网络模型更新的装置可以获得神经网络模型和/或神经网络模型的参数之后,可以通过图16所示的神经网络模型训练装置5000对该神经网络模型进行训练,训练得到的神经网络模型就可以用于执行本申请实施例的图像处理方法了。

具体地,图16所示的装置可以通过通信接口5003从外界获取训练数据以及待训练的神经网络模型,然后由处理器根据训练数据对待训练的神经网络模型进行训练。

应注意,尽管上述装置3000、装置4000和装置5000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置3000、装置4000和装置5000还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置3000、装置4000和装置5000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置3000、装置4000和装置5000也可仅仅包括实现本申请实施例所必须的器件,而不必包括图14、图15和图16中所示的全部器件。

应理解,本申请实施例中的处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,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),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。

上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。

本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 神经网络模型更新方法、图像处理方法及装置
  • 神经网络模型处理方法和装置、图像处理方法、移动终端
技术分类

06120112964875