CN111797992A - 一种机器学习优化方法以及装置 - Google Patents

一种机器学习优化方法以及装置 Download PDF

Info

Publication number
CN111797992A
CN111797992A CN202010448567.0A CN202010448567A CN111797992A CN 111797992 A CN111797992 A CN 111797992A CN 202010448567 A CN202010448567 A CN 202010448567A CN 111797992 A CN111797992 A CN 111797992A
Authority
CN
China
Prior art keywords
machine learning
learning model
updating
loss value
tasks
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.)
Withdrawn
Application number
CN202010448567.0A
Other languages
English (en)
Inventor
吴霜
谢传龙
田光见
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010448567.0A priority Critical patent/CN111797992A/zh
Publication of CN111797992A publication Critical patent/CN111797992A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Abstract

本申请公开了人工智能领域的一种机器学习优化方法以及装置,用于对机器学习模型进行优化,得到鲁棒性更优的机器学习模型。该方法包括:获取机器学习模型;通过预设的数据集对机器学习模型进行至少一次迭代更新,得到符合预设条件的更新后的机器学习模型;其中,任意一次迭代更新包括:获取上一次迭代更新后的机器学习模型执行多个任务对应的多个损失值,从多个损失值中选取大于平均损失值的至少一个损失值,根据大于平均损失值的至少一个损失值以及至少一个损失值中每个损失值对应的任务对上一次迭代更新后的机器学习模型进行更新,若当前次更新后的机器学习模型不符合预设条件,则对当前次更新后的机器学习模型进行下一次迭代更新。

Description

一种机器学习优化方法以及装置
技术领域
本申请涉及人工智能领域,尤其涉及一种机器学习优化方法以及装置。
背景技术
机器学习是人工智能的一个分支。人们通过构建一个参数化的模型来表示规律,一些端到端的机器学习方法在样本数据中获取规律,应用规律进行预测。
以小样本(few shot)机器学习任务为例,现有方案在进行小样本机器学习时,首选选定一个机器学习模型,然后在每轮学习的训练过程中,获取一组小样本机器学习任务,计算机器学习模型进行所有任务的损失函数的损失值。用求平均的方法将损失值汇聚作为最终的损失值,即平均损失值,依照此平均损失值以及对应的所有任务对机器学习模型进行反向传播的参数更新。
然而,若使用平均损失值对小样本机器学习模型进行更新,将导致机器学习模型的鲁棒性差。例如,若小样本机器学习模型进行的实际新任务与训练时使用的平均任务存在较大差别,则机器学习模型并不能适应新任务,导致机器学习模型的输出结果不准确。
发明内容
本申请提供一种机器学习优化方法以及装置,用于对机器学习模型进行优化,得到鲁棒性更优的机器学习模型。
第一方面,本申请提供一种机器学习优化方法,包括:获取机器学习模型;通过预设的数据集对机器学习模型进行至少一次迭代更新,得到更新后的机器学习模型,更新后的机器学习模型符合预设条件;其中,至少一次迭代更新的任意一次迭代更新包括:获取上一次迭代更新后的机器学习模型执行多个任务对应的多个损失值,从多个损失值中选取大于平均损失值的至少一个损失值,根据大于平均损失值的至少一个损失值以及至少一个损失值中每个损失值对应的任务对上一次迭代更新后的机器学习模型进行更新,以得到当前次迭代更新后的机器学习模型,若当前次更新后的机器学习模型不符合预设条件,则对当前次更新后的机器学习模型进行下一次迭代更新。
因此,本申请实施方式中,在机器学习模型的每一轮迭代更新的过程中,使用大于平均损失值的至少一个损失值以及对应的任务来更新机器学习模型,从而提高机器学习模型在此大于平均损失值的至少一个损失值的任务中的表现,提高机器学习模型输出此大于平均损失值的至少一个损失值的任务的结果的准确性。并且,相对于在每一轮迭代更新中使用所有任务对机器学习模型进行更新,本申请实施方式仅使用大于平均损失值的至少一个损失值以及对应的任务来个更新机器学习模型,减少了更新流程,提高得到符合预设条件的机器学习模型的效率。
在一种可能的实施方式中,在通过预设的数据集对机器学习模型进行至少一次迭代更新之前,上述方法还可以包括:获取鲁棒性要求,鲁棒性要求用于表示在每一次迭代更新过程中,对机器学习模型进行更新的任务的数量占机器学习模型执行的任务的比例;根据鲁棒性要求确定对机器学习模型的每一次迭代更新所执行的任务的数量m,m为大于1的正整数。
因此,本申请实施方式中,可以通过鲁棒性要求确定对机器学习模型的每一轮更新中执行的任务的数量,以及对机器学习模型进行更新所使用的任务的数量所占的比例,从而可以提高机器学习模型在对机器学习模型进行更新所使用的任务中的输出结果的准确性,提高机器学习模型的鲁棒性。
在一种可能的实施方式中,该鲁棒性要求为接收用户的输入数据得到,从而使用户可以通过输入数据调整机器学习模型的鲁棒性,提高用户体验。
在一种可能的实施方式中,在至少一次迭代更新的任意一次迭代更新中,获取上一次迭代更新后的机器学习模型执行多个任务对应的多个损失值,可以包括:对预设的数据集进行采样,得到m个任务;获取上一次迭代更新后的机器学习模型执行m个任务对应的m个损失值。
本申请实施方式中,可以根据鲁棒性要求确定每一轮更新所进行的任务的数量,并在预设的数据集中采集任务,进而完成对机器学习模型的更新。
在一种可能的实施方式中,获取上一次迭代更新后的机器学习模型执行m个任务对应的多个损失值,可以包括:获取与m个任务对应的多个数据集,多个数据集中的每个数据集包括训练子集和验证子集;通过每个数据集包括的训练子集对上一次迭代更新后的机器学习模型进行训练,得到训练后的机器学习模型;将每个数据集包括的验证子集作为训练后的机器学习模型的输入,得到训练后的机器学习模型的多个输出结果;根据多个输出结果得到m个损失值。
本申请实施方式中,可以基于选取的m个任务对应的数据,分别对机器学习模型进行训练和验证,从而完成对m个任务的机器学习。
在一种可能的实施方式中,在至少一次迭代更新的任意一次迭代更新中,从多个损失值中选取大于平均损失值的至少一个损失值,可以包括:从多个损失值中选取一个值最大的损失值;根据大于平均损失值的至少一个损失值以及至少一个损失值中每个损失值对应的任务对上一次迭代更新后的机器学习模型进行更新,包括:根据值最大的损失值以及值最大的损失值对应的任务,对上一次迭代更新后的机器学习模型基于反向传播进行更新,得到当前次迭代更新后的机器学习模型。
本申请实施方式中,可以选择值最大的损失值以及对应的任务对机器学习模型进行更新,从而可以提高机器学习模型在该值最大的任务中的表现,使得机器学习模型在1-1/m的置信度下,优化损失函数最大1/m部分的任务。
在一种可能的实施方式中,机器学习模型可以包括以下至少一种:多层前馈神经网络、卷积神经网络、循环神经网络或者图神经网络。因此,本申请提供的机器学习优化方法,可以适用于多种场景,满足多种需求,提高用户体验。
在一种可能的实施方式中,前述的多个任务包括小样本学习任务。因此,本申请实施方式中,针对小样本学习任务,可以进行快速地学习,从而快速得到机器学习模型。
第二方面,本申请提供一种机器学习优化装置,包括:
获取模块,用于获取机器学习模型;
更新模块,用于通过预设的数据集对机器学习模型进行至少一次迭代更新,得到更新后的机器学习模型,更新后的机器学习模型符合预设条件;其中,至少一次迭代更新的任意一次迭代更新包括:获取上一次迭代更新后的机器学习模型执行多个任务对应的多个损失值,从多个损失值中选取大于平均损失值的至少一个损失值,根据大于平均损失值的至少一个损失值以及至少一个损失值中每个损失值对应的任务对上一次迭代更新后的机器学习模型进行更新,以得到当前次迭代更新后的机器学习模型,若当前次更新后的机器学习模型不符合预设条件,则对当前次更新后的机器学习模型进行下一次迭代更新。
第二方面及第二方面任一种可能的实施方式产生的有益效果可参照第一方面及第一方面任一种可能实施方式的描述。
在一种可能的实施方式中,获取模块,还用于在通过预设的数据集对机器学习模型进行至少一次迭代更新之前,获取鲁棒性要求,鲁棒性要求用于表示在每一次迭代更新过程中,对机器学习模型进行更新的任务的数量占机器学习模型执行的任务的比例;根据鲁棒性要求确定对机器学习模型的每一次迭代更新所执行的任务的数量m,m为大于1的正整数。
在一种可能的实施方式中,更新模块,具体用于在至少一次迭代更新的任意一次迭代更新中,对预设的数据集进行采样,得到m个任务;获取上一次迭代更新后的机器学习模型执行m个任务对应的m个损失值。
在一种可能的实施方式中,更新模块,具体用于:获取与m个任务对应的多个数据集,多个数据集中的每个数据集包括训练子集和验证子集;通过每个数据集包括的训练子集对上一次迭代更新后的机器学习模型进行训练,得到训练后的机器学习模型;将每个数据集包括的验证子集作为训练后的机器学习模型的输入,得到训练后的机器学习模型的多个输出结果;根据多个输出结果得到m个损失值。
在一种可能的实施方式中,更新模块,具体用于:从多个损失值中选取一个值最大的损失值;根据值最大的损失值以及值最大的损失值对应的任务,对上一次迭代更新后的机器学习模型基于反向传播进行更新,得到当前次迭代更新后的机器学习模型。
在一种可能的实施方式中,机器学习模型可以包括以下至少一种:多层前馈神经网络、卷积神经网络、循环神经网络或者图神经网络。
在一种可能的实施方式中,前述的多个任务包括小样本学习任务。
第三方面,本申请实施例提供一种机器学习优化装置,该机器学习优化装置具有实现上述第一方面机器学习优化方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,本申请实施例提供一种机器学习优化装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第一方面任一项所示的机器学习优化方法中与处理相关的功能。可选地,该机器学习优化装置可以是芯片。
第五方面,本申请实施例提供了一种机器学习优化装置,该机器学习优化装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行如上述第一方面或第一方面任一可选实施方式中与处理相关的功能。
第六方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一可选实施方式中的方法。
第七方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一可选实施方式中的方法。
附图说明
图1为本申请应用的一种人工智能主体框架示意图;
图2为本申请提供的一种系统架构示意图;
图3为本申请实施例提供的一种卷积神经网络结构示意图;
图4为本申请实施例提供的另一种卷积神经网络结构示意图;
图5为本申请提供的另一种系统架构示意图;
图6为本申请实施例提供的一种机器学习优化方法的流程示意图;
图7为本申请实施例提供的一种机器学习模型的更新方式示意图;
图8为本申请实施例提供的一种机器学习模型的结构示意图;
图9A为本申请实施例提供的一种机器学习优化方法的效果示意图;
图9B为本申请实施例提供的另一种机器学习优化方法的效果示意图;
图10为本申请实施例提供的一种机器学习优化装置的结构示意图;
图11为本申请实施例提供的另一种机器学习优化装置的结构示意图;
图12为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,为便于理解,对本申请涉及的一些名词进行解释。在本申请的以下实施方式中,对重复的内容将不再赘述。
机器学习:构建统计模型,在样本数据上用优化方法拟合模型参数,在新样本数据上进行预测。
自动机器学习(AutoML):是指设计一系列高级的控制系统去操作机器学习模型,使得模型可以自动化地学习到合适的参数和配置而无需人工干预。在基于深度神经网络的学习模型中,自动计算学习主要包括网络架构搜索与全局参数设定。其中,网络架构搜索用于根据数据让计算机生成最适应问题的神经网络架构,具有训练复杂度高,性能提升大的特点。
一个机器学习任务通常包括训练部分和预测部分,在预测部分中,可以用统计模型的参数在训练样本数据上进行预测,根据预测的误差计算统计模型的参数的更新方向,重复次过程,直到参数收敛。在预测部分中,可以使用训练好的模型对新的样本进行预测。
损失函数(loss function):也可以称为代价函数(cost function),一种比较机器学习模型对样本的预测输出和样本的真实值(也可以称为监督值)区别的度量,即用于衡量机器学习模型对样本的预测输出和样本的真实值之间的区别。该损失函数通常可以包括误差平方均方、交叉熵、对数、指数等损失函数。例如,可以使用误差均方作为损失函数,定义为
Figure BDA0002506844450000041
具体可以根据实际应用场景选择具体的损失函数。
梯度:损失函数关于参数的导数向量。
随机梯度:机器学习中样本数量很大,所以每次计算的损失函数都由随机采样得到的数据计算,相应的梯度称作随机梯度。
反向传播(back propagation,BP):一种计算根据损失函数计算模型参数梯度、更新模型参数的算法。
训练:在样本数据上,用随机梯度进行多轮迭代,对模型参数拟合,减小算损失函数的值。
小样本学习:仅使用少量样本进行机器学习。
本申请提供的机器学习优化方法可以应用于人工智能(artificialintelligence,AI)场景中。AI是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片,如中央处理器(centralprocessing unit,CPU)、网络处理器(neural-network processing unit,NPU)、图形处理器(英语:graphics processing unit,GPU)、专用集成电路(application specificintegrated circuit,ASIC)或现场可编程逻辑门阵列(field programmable gate array,FPGA)等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、视频、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理(如图像识别、目标检测等),语音识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
机器学习是人工智能的一个分支,通过构建一个参数化的模型来表示规律,并在样本数据中获取规律,应用规律进行预测。具体的进行机器学习的过程可以包括:构建统计模型,在样本数据上用优化方法拟合模型参数,在新样本数据上进行预测。
以小样本学习任务为例,每个小样本机器学习任务都包含了机器学习的两个部分,即训练和预测。为符合小样本的模式,训练样本的数量固定,且每个小样本任务只有一次参数更新。该小样本机器学习的模式是,将小样本任务(单次训练和预测)当作一个待优化的对象,构建此对象的参数化模型,通过在多个小样本任务上进行优化模型参数,使得优化后的模型可以在小样本任务上有最优的表现。
参见附图2,本申请实施例提供了一种系统架构200。该系统架构中包括数据库230、客户设备240。数据采集设备260用于采集数据并存入数据库230,训练模块202基于数据库230中维护的数据生成目标模型/规则201。下面将更详细地描述训练模块202如何基于数据得到目标模型/规则201,目标模型/规则201即本申请以下实施方式中优化后的机器学习模型,具体参阅以下图6-9B中的相关描述。
计算模块211可以包括训练模块202,或者还可以包括目标模型/规则201,训练模块202训练得到的目标模型/规则201可以应用不同的系统或设备中。在附图2中,执行设备210配置收发器212,该收发器212可以是无线收发器、光收发器或有线接口(如I/O接口)等,与外部设备进行数据交互,“用户”可以通过客户设备240向收发器212输入数据,例如,本申请以下实施方式,客户设备可以向执行设备210发送初始的机器学习模型,或者还可以发送训练该机器学习模型的数据集。此外,当执行设备210得到训练后的机器学习模型之后,客户设备240可以向执行设备210发送输入数据,该输入数据为需要机器学习模型进行预测的数据,然后由执行设备210向客户设备240发送机器学习模型的输出结果。
执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。
训练模块202对输入的数据进行处理。具体地,训练模块202用于:执行设备210通过数据集对该机器学习模型进行训练,得到符合预设条件的训练后的机器学习模型,即目标模型/规则201。目标模型/规则201可以部署于执行设备210中,也可以部署于其他设备,具体可以根据实际应用场景进行调整。
关联功能模块213和关联功能模块214为可选模块,例如,可以用于根据用户输入的鲁棒性要求确定训练模块202在对机器学习模型训练的过程中,所进行的机器学习的任务的数量。
最后,收发器212将构建得到的目标神经网络返回给客户设备240,以在客户设备240或者其他设备中部署该目标神经网络。
更深层地,训练模块202可以针对不同的目标任务,基于不同的候选集得到相应的目标模型/规则201,以给用户提供更佳的结果。
在附图2中所示情况下,可以根据用户的输入数据确定输入执行设备210中的数据,例如,用户可以在收发器212提供的界面中操作。另一种情况下,客户设备240可以自动地向收发器212输入数据并获得结果,若客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到的数据存入数据库230。
需要说明的是,附图2仅是本申请实施例提供的一种系统架构的示例性的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。例如,在附图2中,数据存储系统250相对执行设备210是外部存储器,在其它场景中,也可以将数据存储系统250置于执行设备210中。
神经网络是机器学习的一种具体实现方式,如神经网络可以作为机器学习得到的模型。该模型可以由一种或者多种神经网络组成,如深度神经网络(deep neural network,DNN)、卷积神经网络(convolutional neural network,CNN)、循环神经网络(recurrentneural networks,RNN)或残差网络其他神经网络等。
示例性地,下面以卷积神经网络(convolutional neural network,CNN)为例。
CNN是一种带有卷积结构的深度神经网络。CNN是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元对输入其中的图像中的重叠区域作出响应。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,我们都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
卷积神经网络可以采用基于损失值的反向传播(back propagation,BP)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建的损失值越来越小。具体地,前向传递输入信号直至输出会产生损失值,通过反向传播损失值的信息来更新初始的超分辨率模型中参数,从而使损失函数收敛。反向传播算法是以损失值为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。在本申请实施方式中,在对机器学习模型进行更新时,可以采用BP算法进行更新。
如图3所示,卷积神经网络(CNN)100可以包括输入层110,卷积层/池化层120,其中池化层为可选的,以及神经网络层130。
如图3所示卷积层/池化层120可以包括如示例121-126层,在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
以卷积层121为例,卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义。在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关。需要注意的是,权重矩阵的纵深维度(depthdimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用维度相同的多个权重矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵维度相同,经过该多个维度相同的权重矩阵提取后的特征图维度也相同,再将提取到的多个维度相同的特征图合并形成卷积运算的输出。
通常,权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以从输入图像中提取信息,从而帮助卷积神经网络100进行正确的预测。
当卷积神经网络100有多个卷积层时,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络100深度的加深,越往后的卷积层(例如126)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,即如图3中120所示例的121-126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像大小相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层130:
在经过卷积层/池化层120的处理后,卷积神经网络100还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层120只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或别的相关信息),卷积神经网络100需要利用神经网络层130来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层130中可以包括多层隐含层(如图3所示的131、132至13n)以及输出层140。在本申请中,该卷积神经网络为:对选取的起点网络进行至少一次变形得到串行网络,然后根据训练后的串行网络得到。该卷积神经网络可以用于图像识别,图像分类,图像超分辨率重建等等。
在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络100的最后层为输出层140,该输出层140具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络100的前向传播(如图3由110至140的传播为前向传播)完成,反向传播(如图3由140至110的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络100的损失及卷积神经网络100通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图3所示的卷积神经网络100仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,例如,如图4所示的多个卷积层/池化层并行,将分别提取的特征均输入给全神经网络层130进行处理。
参见附图5,本申请实施例还提供了一种系统架构300。执行设备210由一个或多个服务器实现,可选的,与其它计算设备配合,例如:数据存储、路由器、负载均衡器等设备;执行设备210可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备210可以使用数据存储系统250中的数据,或者调用数据存储系统250中的程序代码实现本申请以下图6-9B对应的机器学习优化方法的步骤。
用户可以操作各自的用户设备(例如本地设备301和本地设备302)与执行设备210进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备210进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。具体地,该通信网络可以包括无线网络、有线网络或者无线网络与有线网络的组合等。该无线网络包括但不限于:第五代移动通信技术(5th-Generation,5G)系统,长期演进(long termevolution,LTE)系统、全球移动通信系统(global system for mobile communication,GSM)或码分多址(code division multiple access,CDMA)网络、宽带码分多址(widebandcode division multiple access,WCDMA)网络、无线保真(wireless fidelity,WiFi)、蓝牙(bluetooth)、紫蜂协议(Zigbee)、射频识别技术(radio frequency identification,RFID)、远程(Long Range,Lora)无线通信、近距离无线通信(near field communication,NFC)中的任意一种或多种的组合。该有线网络可以包括光纤通信网络或同轴电缆组成的网络等。
在另一种实现中,执行设备210的一个方面或多个方面可以由每个本地设备实现,例如,本地设备301可以为执行设备210提供本地数据或反馈计算结果。
需要注意的,执行设备210的所有功能也可以由本地设备实现。例如,本地设备301实现执行设备210的功能并为自己的用户提供服务,或者为本地设备302的用户提供服务。
基于前述图1-5提供的系统架构或者神经网络,下面对本申请提供的机器学习优化方法进行详细介绍。
参阅图6,本申请提供的一种机器学习优化方法的流程示意图,如下所述。
601、获取机器学习模型。
其中,该机器学习模型可以用于进行机器学习。
具体地,该机器学习模型可以根据具体的应用场景进行选择,例如,具体的机器学习任务可以包括但不限于非线性回归拟合、图像分类、序列信号预测、节点分类或者强化学习任务中的一项或者多项等。相应地,机器学习模型可以包括:用于进行线性回归拟合的多层前馈神经网络、用于进行图像分类的卷积神经网络、用于进行序列信号预测的循环神经网络、用于进行节点分类的图神经网络或者用于进行强化学习任务的深度Q网络等中的一项或者多项的组合等。
本申请提供的机器学习优化方法的步骤可以由前述的执行设备210来执行,则该机器学习模型可以是执行设备210根据具体任务选择的模型,也可以是接收到客户设备240发送的模型等,具体可以根据实际应用场景进行调整。
602、通过预设的数据集对机器学习模型进行至少一次迭代更新,得到更新后的机器学习模型。
在获取到初始的机器学习模型之后通过预设的数据集对机器学习模型进行至少一次迭代更新,从而得到更新后的符合预设条件的机器学习模型。
该预设的数据集中可以包括一种或多种进行机器学习所需的数据。例如,若该机器学习为学习图像分类,则该预设的数据集中可以包括多种图片以及对应的分类结果。又例如,若机器学习为学习节点分类,则该预设的数据集中可以包括多种节点和对应的分类结果。
该预设的数据集可以是接收到的用户输入的数据,也可以是根据需要进行的机器学习任务获取到的数据集。例如,可以根据需要学习的具体任务,从ImageNet数据集中提取对应的图像以及图像的分类结果,如可以从ImageNet数据集中提取分类为猫、狗、或者花等分类的图片来进行机器学习,从而得到可以识别出猫、狗、或者花等分类的模型。
为便于理解,下面以一个简单的示例为例进行说明,可以使用机器学习解决一个猫、狗图片分类的问题。每张猫、狗的图片都可以数字化表示,从而记作一个随机变量。可以通过构建参数化的映射,将随机变量映射到-1或1这两个数值上。如果输出1,也代表输入的是猫,-1则是狗。在训练阶段,我们收集相关图片,并打上-1或1的标签,将图片作为模型输入,标签作为模型输出,用以训练模型参数。预测阶段,给定一张新的图片输入训练好的模型,输出-1或1。
其中,对机器学习模型进行迭代更新的具体过程可以包括如下步骤:
6021、获取上一次迭代更新后的机器学习模型执行多个任务对应的多个损失值。
其中,当本次迭代为第一次迭代时,可以直接获取前述步骤601中获取到的机器学习模型,若本次迭代不是第一次进行迭代,则可以获取上一次迭代更新后的机器学习模型。然后获取该机器学习模型执行多个任务对应的损失函数的损失值。
在一种可能的实施方式中,在步骤6021之前,可以获取鲁棒性要求,该鲁棒性要求用于表示在每一次迭代更新过程中,对机器学习模型进行更新的任务的数量占机器学习模型所执行的任务的数量的比例,即对机器学习模型进行更新的任务的数量占采样到的任务的数量的比例,以下使用n表示该比例。然后可以根据该鲁棒性要求确定对机器学习模型的每一次迭代更新时,机器学习模型需要执行的任务数量m,m为大于1的正整数。通常,可以通过用户输入数据来获取鲁棒性要求,或者,也可以是根据需要获取的机器学习模型来生成该鲁棒性要求。该鲁棒性要求可以包括不大于1的数值,例如,该鲁棒性要求可以包括20%,即n=20%,表示需要保证每次训练中,基于预测误差最大的20%的任务来更新机器学习模型,从而降低机器学习模型在该20%的任务中的预测误差,提高机器学习模型对该20%的任务的预测结果的准确性。然后可以根据该20%来确定对机器学习模型的每一次迭代更新所执行的任务的数量m,如该m可以是5,则后续对机器学习模型进行更新的任务的数量可以是1,如该m可以是10,则后续对机器学习模型进行更新所使用的任务的数量可以是2。
可以理解为,本申请实施方式中,实质是在优化总体任务的风险价值(value atrisk,VaR),即在1-n的置信度下,优化损失函数的损失值最大的部分任务。
在一种可能的实施方式中,步骤6021具体可以包括:对预设的数据集进行采样,得到m个任务;获取上一次迭代更新后的机器学习模型执行m个任务对应的损失函数输出的m个损失值。
可以理解的是,可以从预设的数据集中采集多种数据,该多种数据可以对应m个任务。例如,可以从该预设的数据集中采集多个包括了猫的图片,这多个包括了猫的图片即组成一个分类任务。
例如,某一个数据库中包括了多种分类数据,以m=5为例,具体可以包括的分类包括:猫、狗、花、马等等分类的图像,可以从该数据库中随机采样5种分类的图像,或者按照预设的概率分布进行采样,采集到5种分类的图像,每一类可以采集多张图像,即可采集到5个学习任务。例如,若采集到猫、狗、花、马和小孩此5类图像,即对应地采集到对猫、狗、花、马和小孩的5个学习任务。
在一种可能的实施方式中,步骤2021具体可以包括:可以获取与m个任务对应的多个数据集,该多个数据集可以是前述的预设的数据集中的子集,然后将该多个数据集中的每个数据集分别分为训练子集和验证子集,通过每个数据集包括的训练子集对上一次更新迭代后的学习模型进行训练,得到训练后的机器学习模型,然后将每个数据集包括的验证子集但作为训练后的机器学习模型的输入,得到训练后的机器学习模型的输出结果,从而根据机器学习模型输出的多个输出结果,得到m个任务对应的m个损失值。具体地,在根据机器学习模型输出的多个输出结果,得到m个任务对应的m个损失值时,还需要获取验证子集的标注信息,即验证子集中的数据的输入和输出之间的关系。如可以根据机器学习模型的输出结果与对应的验证子集中的数据的真实值进行对比,从而得到损失值。为便于理解,以一个简单的示例为例对得到损失值的方式进行说明,如将验证子集中的某一个数据作为机器学习模型的输入,得到机器学习模型的输出结果为2,而该数据的实际结果为3,则损失值为3-2=1。
在一种可能的实施方式中,前述的多个任务可以是小样本学习任务,即使用少量样本进行学习的任务,从而实现快速学习。例如,可以在预设的数据集中进行采样,得到m个小样本学习任务中每个小样本学习任务所需的少量的样本,以基于这些小样本学习任务对机器学习模型进行更新。
6022、从多个损失值中选取大于平均损失值的至少一个损失值。
在得到机器模型执行m个任务得到的m个损失值之后,从该m个损失值中选择至少一个损失值,且该至少一个损失值大于m个损失值的平均值。
其中,选择的损失值的数量可以与前述的鲁棒性要求相关,例如,若鲁棒性要求为20%,每一轮选择的任务数量为10,则可以从10个损失值中选择大于平均值的2个损失值。
具体地,可以是从m个损失值中选择最大的至少一个损失值,也可以是从大于平均损失值的多个损失值中随机选择一个或者多个损失值。
更具体地,从多个损失值中选取的至少一个损失值的数量可以根据鲁棒性要求确定,例如,若鲁棒性要求为30%,确定的m的值为10,则可以从得到的10个损失值中选择3个大于平均损失值且值最大的损失值。又例如,若鲁棒性要求为20%,m为5,则可以从5个损失值中选取1个值最大的损失值。
6023、根据大于平均损失值的至少一个损失值以及对应的任务对上一次迭代更新后的机器学习模型进行更新,以得到当前次迭代更新后的机器学习模型。
在从多个损失值中选取大于平均损失值的至少一个损失值之后,根据该大于平均损失值的至少一个损失值,以及对应的任务对上一次迭代更新后的机器学习模型进行更新,得到当前次迭代更新后的机器学习模型。
根据至少一个损失值以及对应的任务对机器学习模型的具体方式可以包括:在选取出至少一个损失值之后,根据该至少一个损失值以及该至少一个损失至对应的任务的输入,分别计算每个任务对应的参数的梯度,然后对该每个任务对应的梯度进行取反或者乘以训练因子后取反来更新机器学习模型的权重值,从而得到更新后的机器学习模型。
示例性地,机器学习模型的参数可以表示为θ,相应的损失函数为f(θ),训练后的机器学习模型的损失函数为
Figure BDA0002506844450000121
该损失函数关于模型参数θ的导数计算如下:
Figure BDA0002506844450000122
其中,
Figure BDA0002506844450000123
为f关于θ的黑塞矩阵(Hessian Matrix),从而计算出更新后的θ。
具体例如,考虑损失函数为均方误差的线性回归问题,f(θ;x,y)=0.5·(x-θTy)2,相应的梯度为:
Figure BDA0002506844450000124
其中,xtr和ytr为任务中的训练数据,可以理解为前述的训练子集中的数据,xte和yte为任务中的验证数据,可以理解为前述的验证子集中的数据,从而可以根据该梯度公式计算出更新后的θ。
可以理解为,在更新机器学习模型的过程中,可以先通过机器学习模型前向输出每个对应的输出结果,然后根据该输出结果来计算每个任务对应的损失值;然后根据反向传播,来通过该损失值更新机器学习模型的权重,从而实现机器学习模型的更新。例如,以前述的卷积神经网络为例,BP算法的学习过程由正向传播过程和反向传播过程组成。在正向传播过程中,样本的输入信息通过输入层经隐含层,逐层处理并传向输出层,输出层输出对样本的预测值。若输出层输出的样本的预测值与样本的监督值之间相差太大,则取样本的输出值与监督值之间的交叉熵作为损失函数,转入反向传播,逐层求出损失函数对各神经元权值的偏导数,构成损失函数对权值向量的梯量,作为修改权值的依据,网络的学习在权值修改过程中完成。当机器学习模型的损失函数输出的损失值达到所期望值时学习结束。
示例性地,如图7所示,可以通过机器学习模型进行m个任务,分别基于每个任务进行训练以及预测过程,然后根据该m个任务得到的最大损失值以及对应的任务,通过反向传播的方式对机器学习模型的参数进行更新。
在一种可能的更具体的实施方式中,可以根据值最大的损失值以及该损失值对应的任务,来对上一次迭代更新后的机器学习模型基于反向传播来进行更新从而得到当前次迭代更新后的机器学习模型。因此,本申请实施方式中,根据鲁棒性要求确定了每一轮迭代更新的过程中机器学习模型进行的m个任务,通过值最大的损失值以及该损失值对应的任务,来对上一次迭代更新后的机器学习模型进行更新,可以使机器学习模型在该值最大的损失值对应的任务的表现更好,提高机器学习模型对该值最大的损失值对应的任务的输出结果的精确度,从而提高了机器学习模型的鲁棒性。
通常,机器学习模型越复杂,可获取的规律也更丰富,构建模型需要的参数也更多。在实际应用场景中,拟合大量参数往往需要足够多的样本数据以及训练时间。随着计算机计算和存储性能的提升,大规模参数的模型得以广泛使用。然而,获取一个大规模参数的模型,需要用来获取参数的数据也要更多。在实际业务场景中,数据并不总是容易获得。或者,可以用来获取模型参数的数据并总是大量存在。因此,本申请可以通过大于平均损失值的至少一个损失值以及对应的任务对机器学习模型进行快速更新,提高了机器学习模型的鲁棒性,使该机器学习模型在损失值较差的任务中也可以表现更好,提高该机器学习模型在训练过程中损失值较大的任务的输出结果的准确度。
并且,本申请实施方式中,在每一轮迭代更新的过程中,仅根据大于平均值的至少一个损失值和对应的任务来更新机器学习模型,相对于使用平均损失值以及所有的任务更新机器学习模型,本申请实施方式可以减少训练流程,提高了机器学习模型的训练速度。
6024、判断当前次更新后的机器学习模型是否符合预设条件,若是,则执行步骤6025,若否,则执行步骤6021。
在得到当前次更新后的机器学习模型之后,可以判断该机器学习模型是否符合预设条件。若该机器学习模型符合预设条件,可以输出该机器学习模型,若该机器学习模型不符合预设条件,则可以继续更新机器学习模型,从而得到符合预设条件的机器学习模型。
在一种可能的实施方式中,该预设条件具体可以包括:该机器学习模型的当前次的输出结果和上一次迭代更新后输出的结果之间的差值小于第一阈值、对该机器学习模型进行迭代更新的次数大于预设次数、该机器学习模型的输出结果的精度大于第三阈值,或者,机器学习模型的输出的平均精度大于第四阈值,或者,损失值不大于第五阈值,或者,推理时长不大于第六阈值,或者每秒浮点运算次数(FLOPS)不大于第七阈值等等,平均精度为对机器学习模型进行多次评估得到的多个精度的平均值,推理时长为从机器学习模型根据输入得到输出结果的时长。
6025、输出当前次更新后的机器学习模型。
其中,在确定当前次更新后的机器学习模型满足预设条件之后,即可输出当前次更新后的机器学习模型,从而得到在前述的至少一个损失值对应的任务中表现更好的机器学习模型。
因此,本申请提供的机器学习优化方法中,在对机器学习模型的至少一次迭代更新的过程中,可以基于损失值高于平均损失值的至少一个损失值和对应的任务对机器学习模型进行更新,提高了机器学习模型在高于平均损失值的至少一个损失值对应的任务的表现,提高了机器学习模型在高于平均损失值的至少一个损失值对应的任务的输出结果的准确性,提高了机器学习的鲁棒性。并且,在每一轮迭代更新中,仅使用损失值高于平均损失值的至少一个损失值和对应的任务对机器学习模型进行更新,相对于使用平均损失值和对应的所有任务对机器学习模型进行更新,本申请提供的机器学习优化方法明显可以提高训练速度,减少了训练流程,提高得到符合预设条件的机器学习模型的效率。以使用机器学习模型执行小样本学习任务为例,本申请提供的机器学习优化方法,实质是优化任务的VaR,由于VaR部分的任务的损失得以减小,不同任务之间的差别也会减少,提高了机器学习模型在所有任务上的平均表现。
示例性地,下面以基于应用深度神经网络拟合三角函数为例对本申请提供的机器学习优化方法进行更详细地说明。
首先构建机器学习模型。
需要拟合任务对应的三角函数可以是:y=Asin(x+b),其中,x为输入值,也为待预测值,在不同的预测任务中,幅值A和相位b的值可能不相同,一对A和b决定了一个任务。在每个任务中,训练数据为10对(x,y),要求预测另外5个数据点x上的y。该任务属于回归任务,可以采用如图8所示的深度神经网络作为机器学习模型,其中,该深度神经网络可以包括多层,如图8中所示的输入层、线性整流函数(Rectified Linear Unit,ReLU)层和输出层等。
当然,此处的三角函数也可以替换为其他函数,如多项式
Figure BDA0002506844450000131
或者三角波函数
Figure BDA0002506844450000132
等,具体可以根据实际应用场景进行调整。
然后,根据鲁棒性要求,设定每一轮训练中采样的任务数量。
例如,若希望提高预测误差最大的20%任务的准确性,则可以设定每轮采样的任务数量为1/20%=5。
随后在每一轮训练中,在预先设定的数据集中按照预设的规律或者随机抽取5个任务,分别针对每个任务进行训练和预测的过程,并计算每个任务的预测误差,即损失值。
在每一轮训练中,选取最大的损失值对图8中所示的深度神经网络的参数基于反向传播进行更新,从而得到在该20%任务中表现更好的深度神经网络。
下面对本申请提供的机器学习优化方法实现的效果进行详细说明。其中,按照如下方式进行采样,A从[1,2]和[4.5,5.5]中进行采样,b从[0,pi]的均匀分布中采样。在训练和预测的过程中,80%的任务从[1,2]中均匀采样,20%的任务从[4.5,5.5]中采样。构建100个任务用于训练,1000个任务用于预测。在每轮迭代中,采样5个任务用于训练,然后采样50个任务用于预测。迭代的训练和预测的结果如图9A和图9B所示。其中,如图9A为进行训练阶段得到的损失值,以均方差为例,图9B为进行预测阶段得到的损失值。其中现有方案即在每一轮迭代中采用平均损失值和所有任务对机器学习模型进行更新。在每一轮迭代更新中,取损失函数在一个区间内的三个数据点,从大到小分别代表损失函数的最大值、平均值和最小值,由图9A和图9B可知,本申请提供的机器学习优化方法,在训练阶段和预测阶段,在最差任务和平均任务效果上都比现有方案有显著的提升,即平均损失和最大损失都明显降低。因此,提高了机器学习模型的鲁棒性。并且,由于本申请提供的机器学习优化方法,在进行反向传播更新时,只选取了表现最差的任务进行更新,相比于现有方案中使用全部任务进行反向传播更新,本申请可以显著减少在反向传播更新时的资源消耗,减少每一轮迭代更新中进行反向传播更新的流程,提高了得到最终的机器学习模型的效率。例如,在同样的50000轮迭代的实验中,本申请提供的机器学习优化方法,仅占用10分钟即可得到最终的机器学习模型,而使用所有任务进行反向传播的方案占用了20分钟才得到最终的机器学习模型,因此本申请提供的机器学习优化方法可以明显提高得到最终的机器学习模型的效率,且得到的机器学习模型的鲁棒性更好。
前述对本申请提供的机器学习优化方法进行了详细介绍,下面基于前述的机器学习优化方法,对本申请提供的机器学习优化装置进行阐述,该机器学习优化装置用于执行前述的机器学习优化方法。
参阅图10,本申请提供的一种机器学习优化装置的结构示意图,该机器学习优化装置可以包括:
获取模块1001,用于获取机器学习模型;
更新模块1002,用于通过预设的数据集对机器学习模型进行至少一次迭代更新,得到更新后的机器学习模型,更新后的机器学习模型符合预设条件;其中,至少一次迭代更新的任意一次迭代更新包括:获取上一次迭代更新后的机器学习模型执行多个任务对应的多个损失值,从多个损失值中选取大于平均损失值的至少一个损失值,根据大于平均损失值的至少一个损失值以及至少一个损失值中每个损失值对应的任务对上一次迭代更新后的机器学习模型进行更新,以得到当前次迭代更新后的机器学习模型,若当前次更新后的机器学习模型不符合预设条件,则对当前次更新后的机器学习模型进行下一次迭代更新。
在一种可能的实施方式中,获取模块1001,还用于在通过预设的数据集对机器学习模型进行至少一次迭代更新之前,获取鲁棒性要求,鲁棒性要求用于表示在每一次迭代更新过程中,对机器学习模型进行更新的任务的数量占机器学习模型执行的任务的比例;根据鲁棒性要求确定对机器学习模型的每一次迭代更新所执行的任务的数量m,m为大于1的正整数。
在一种可能的实施方式中,更新模块1002,具体用于在至少一次迭代更新的任意一次迭代更新中,对预设的数据集进行采样,得到m个任务;获取上一次迭代更新后的机器学习模型执行m个任务对应的m个损失值。
在一种可能的实施方式中,更新模块1002,具体用于:获取与m个任务对应的多个数据集,多个数据集中的每个数据集包括训练子集和验证子集;通过每个数据集包括的训练子集对上一次迭代更新后的机器学习模型进行训练,得到训练后的机器学习模型;将每个数据集包括的验证子集作为训练后的机器学习模型的输入,得到训练后的机器学习模型的多个输出结果;根据多个输出结果得到m个损失值。
在一种可能的实施方式中,更新模块1002,具体用于:从多个损失值中选取一个值最大的损失值;根据值最大的损失值以及值最大的损失值对应的任务,对上一次迭代更新后的机器学习模型基于反向传播进行更新,得到当前次迭代更新后的机器学习模型。
在一种可能的实施方式中,机器学习模型可以包括以下至少一种:多层前馈神经网络、卷积神经网络、循环神经网络或者图神经网络。
在一种可能的实施方式中,前述的多个任务包括小样本学习任务。
请参阅图11,本申请提供的另一种机器学习优化装置的结构示意图,如下所述。
该机器学习优化装置可以包括处理器1101和存储器1102。该处理器1101和存储器1102通过线路互联。其中,存储器1102中存储有程序指令和数据。
存储器1102中存储了前述图6-9B中的步骤对应的程序指令以及数据。
处理器1101用于执行前述图6-9B中任一实施例所示的机器学习优化装置执行的方法步骤。
可选地,该机器学习优化装置还可以包括收发器1103,用于接收或者发送数据。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于生成车辆行驶速度的程序,当其在计算机上行驶时,使得计算机执行如前述图6-9B所示实施例描述的方法中的步骤。
可选地,前述的图11中所示的机器学习优化装置为芯片。
本申请实施例还提供了一种机器学习优化装置,该机器学习优化装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行前述图6-9B中任一实施例所示的机器学习优化装置执行的方法步骤。
本申请实施例还提供一种数字处理芯片。该数字处理芯片中集成了用于实现上述处理器1101,或者处理器1101的功能的电路和一个或者多个接口。当该数字处理芯片中集成了存储器时,该数字处理芯片可以完成前述实施例中的任一个或多个实施例的方法步骤。当该数字处理芯片中未集成存储器时,可以通过通信接口与外置的存储器连接。该数字处理芯片根据外置的存储器中存储的程序代码来实现上述实施例中机器学习优化装置执行的动作。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上行驶时,使得计算机执行如前述图6-9B所示实施例描述的方法中机器学习优化装置所执行的步骤。
本申请实施例提供的机器学习优化装置可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使服务器内的芯片执行上述图4至图8所示实施例描述的机器学习优化方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体地,前述的处理单元或者处理器可以是中央处理器(central processingunit,CPU)、网络处理器(neural-network processing unit,NPU)、图形处理器(graphicsprocessing unit,GPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程逻辑门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器等。
示例性地,请参阅图12,图12为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 120,NPU 120作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路120,通过控制器1204控制运算电路1203提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1203内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路1203是二维脉动阵列。运算电路1203还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1203是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1202中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1201中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1208中。
统一存储器1206用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)1205,DMAC被搬运到权重存储器1202中。输入数据也通过DMAC被搬运到统一存储器1206中。
总线接口单元(bus interface unit,BIU)1210,用于AXI总线与DMAC和取指存储器(instruction fetch buffer,IFB)1209的交互。
总线接口单元1210(bus interface unit,BIU),用于取指存储器1209从外部存储器获取指令,还用于存储单元访问控制器1205从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1206或将权重数据搬运到权重存储器1202中或将输入数据数据搬运到输入存储器1201中。
向量计算单元1207包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如批归一化(batch normalization),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1207能将经处理的输出的向量存储到统一存储器1206。例如,向量计算单元1207可以将线性函数和/或非线性函数应用到运算电路1203的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1207生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1203的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1204连接的取指存储器(instruction fetch buffer)1209,用于存储控制器1204使用的指令;
统一存储器1206,输入存储器1201,权重存储器1202以及取指存储器1209均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,循环神经网络中各层的运算可以由运算电路1203或向量计算单元1207执行。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述图6-9B的方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
最后应说明的是:以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (17)

1.一种机器学习优化方法,其特征在于,包括:
获取机器学习模型;
通过预设的数据集对所述机器学习模型进行至少一次迭代更新,得到更新后的机器学习模型,所述更新后的机器学习模型符合预设条件;
其中,所述至少一次迭代更新的任意一次迭代更新包括:获取上一次迭代更新后的机器学习模型执行多个任务对应的多个损失值,从所述多个损失值中选取大于平均损失值的至少一个损失值,根据所述大于平均损失值的至少一个损失值以及所述至少一个损失值中每个损失值对应的任务对所述上一次迭代更新后的机器学习模型进行更新,以得到当前次迭代更新后的机器学习模型,若所述当前次更新后的机器学习模型不符合所述预设条件,则对所述当前次更新后的机器学习模型进行下一次迭代更新。
2.根据权利要求1所述的方法,其特征在于,在所述通过预设的数据集对所述机器学习模型进行至少一次迭代更新之前,所述方法还包括:
获取鲁棒性要求,所述鲁棒性要求用于表示在所述每一次迭代更新过程中,对所述机器学习模型进行更新的任务的数量占所述机器学习模型执行的任务的比例;
根据所述鲁棒性要求确定对所述机器学习模型的每一次迭代更新所执行的任务的数量m,所述m为大于1的正整数。
3.根据权利要求2所述的方法,其特征在于,在所述至少一次迭代更新的任意一次迭代更新中,所述获取上一次迭代更新后的所述机器学习模型执行多个任务对应的多个损失值,包括:
对预设的数据集进行采样,得到m个任务;
获取所述上一次迭代更新后的所述机器学习模型执行所述m个任务对应的m个损失值。
4.根据权利要求3所述的方法,其特征在于,所述获取所述上一次迭代更新后的所述机器学习模型执行所述m个任务对应的多个损失值,包括:
获取与所述m个任务对应的多个数据集,所述多个数据集中的每个数据集包括训练子集和验证子集;
通过所述每个数据集包括的训练子集对所述上一次迭代更新后的机器学习模型进行训练,得到训练后的机器学习模型;
将所述每个数据集包括的验证子集作为所述训练后的机器学习模型的输入,得到所述训练后的机器学习模型的多个输出结果;
根据所述多个输出结果得到所述m个损失值。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在所述至少一次迭代更新的任意一次迭代更新中,
所述从所述多个损失值中选取大于平均损失值的至少一个损失值,包括:
从所述多个损失值中选取一个值最大的损失值;
所述根据所述大于平均损失值的至少一个损失值以及所述至少一个损失值中每个损失值对应的任务对所述上一次迭代更新后的机器学习模型进行更新,包括:
根据所述值最大的损失值以及所述值最大的损失值对应的任务,对所述上一次迭代更新后的机器学习模型基于反向传播进行更新,得到所述当前次迭代更新后的机器学习模型。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述机器学习模型包括以下至少一种:多层前馈神经网络、卷积神经网络、循环神经网络或者图神经网络。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述多个任务包括小样本学习任务。
8.一种机器学习优化装置,其特征在于,包括:
获取模块,用于获取机器学习模型;
更新模块,用于通过预设的数据集对所述机器学习模型进行至少一次迭代更新,得到更新后的机器学习模型,所述更新后的机器学习模型符合预设条件;
其中,所述至少一次迭代更新的任意一次迭代更新包括:获取上一次迭代更新后的机器学习模型执行多个任务对应的多个损失值,从所述多个损失值中选取大于平均损失值的至少一个损失值,根据所述大于平均损失值的至少一个损失值以及所述至少一个损失值中每个损失值对应的任务对所述上一次迭代更新后的机器学习模型进行更新,以得到当前次迭代更新后的机器学习模型,若所述当前次更新后的机器学习模型不符合所述预设条件,则对所述当前次更新后的机器学习模型进行下一次迭代更新。
9.根据权利要求8所述的机器学习优化装置,其特征在于,
所述获取模块,还用于在所述通过预设的数据集对所述机器学习模型进行至少一次迭代更新之前,获取鲁棒性要求,所述鲁棒性要求用于表示在所述每一次迭代更新过程中,对所述机器学习模型进行更新的任务的数量占所述机器学习模型执行的任务的比例;根据所述鲁棒性要求确定对所述机器学习模型的每一次迭代更新所执行的任务的数量m,所述m为大于1的正整数。
10.根据权利要求9所述的机器学习优化装置,其特征在于,
所述更新模块,具体用于在所述至少一次迭代更新的任意一次迭代更新中,对预设的数据集进行采样,得到m个任务;获取所述上一次迭代更新后的所述机器学习模型执行所述m个任务对应的m个损失值。
11.根据权利要求10所述的机器学习优化装置,其特征在于,所述更新模块,具体用于:
获取与所述m个任务对应的多个数据集,所述多个数据集中的每个数据集包括训练子集和验证子集;
通过所述每个数据集包括的训练子集对所述上一次迭代更新后的机器学习模型进行训练,得到训练后的机器学习模型;
将所述每个数据集包括的验证子集作为所述训练后的机器学习模型的输入,得到所述训练后的机器学习模型的多个输出结果;
根据所述多个输出结果得到所述m个损失值。
12.根据权利要求8-11中任一项所述的机器学习优化装置,其特征在于,所述更新模块,具体用于:
从所述多个损失值中选取一个值最大的损失值;
根据所述值最大的损失值以及所述值最大的损失值对应的任务,对所述上一次迭代更新后的机器学习模型基于反向传播进行更新,得到所述当前次迭代更新后的机器学习模型。
13.根据权利要求8-12中任一项所述的机器学习优化装置,其特征在于,所述机器学习模型包括以下至少一种:多层前馈神经网络、卷积神经网络、循环神经网络或者图神经网络。
14.根据权利要求8-13中任一项所述的机器学习优化装置,其特征在于,所述多个任务包括小样本学习任务。
15.一种机器学习优化装置,其特征在于,包括处理器,所述处理器和存储器耦合,所述存储器存储有程序,当所述存储器存储的程序指令被所述处理器执行时实现权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,包括程序,当其被处理单元所执行时,执行如权利要求1至7中任一项所述的方法。
17.一种机器学习优化装置,其特征在于,包括处理单元和通信接口,所述处理单元通过所述通信接口获取程序指令,当所述程序指令被所述处理单元执行时实现权利要求1至7中任一项所述的方法。
CN202010448567.0A 2020-05-25 2020-05-25 一种机器学习优化方法以及装置 Withdrawn CN111797992A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010448567.0A CN111797992A (zh) 2020-05-25 2020-05-25 一种机器学习优化方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010448567.0A CN111797992A (zh) 2020-05-25 2020-05-25 一种机器学习优化方法以及装置

Publications (1)

Publication Number Publication Date
CN111797992A true CN111797992A (zh) 2020-10-20

Family

ID=72806175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010448567.0A Withdrawn CN111797992A (zh) 2020-05-25 2020-05-25 一种机器学习优化方法以及装置

Country Status (1)

Country Link
CN (1) CN111797992A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112417451A (zh) * 2020-11-20 2021-02-26 复旦大学 适配智能芯片分级架构的基于深度学习的恶意软件检测方法
CN112651511A (zh) * 2020-12-04 2021-04-13 华为技术有限公司 一种训练模型的方法、数据处理的方法以及装置
CN113850414A (zh) * 2021-08-20 2021-12-28 天津大学 基于图神经网络和强化学习的物流调度规划方法
CN114385256A (zh) * 2020-10-22 2022-04-22 华为云计算技术有限公司 系统参数的配置方法和配置装置
CN116679639A (zh) * 2023-05-26 2023-09-01 广州市博煌节能科技有限公司 金属制品生产控制系统的优化方法及系统
WO2024016556A1 (zh) * 2022-07-22 2024-01-25 中控技术股份有限公司 一种适用于流程工业预测控制的模型自主学习方法
CN114385256B (zh) * 2020-10-22 2024-06-11 华为云计算技术有限公司 系统参数的配置方法和配置装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385256A (zh) * 2020-10-22 2022-04-22 华为云计算技术有限公司 系统参数的配置方法和配置装置
CN114385256B (zh) * 2020-10-22 2024-06-11 华为云计算技术有限公司 系统参数的配置方法和配置装置
CN112417451A (zh) * 2020-11-20 2021-02-26 复旦大学 适配智能芯片分级架构的基于深度学习的恶意软件检测方法
CN112417451B (zh) * 2020-11-20 2022-04-12 复旦大学 适配智能芯片分级架构的基于深度学习的恶意软件检测方法
CN112651511A (zh) * 2020-12-04 2021-04-13 华为技术有限公司 一种训练模型的方法、数据处理的方法以及装置
CN112651511B (zh) * 2020-12-04 2023-10-03 华为技术有限公司 一种训练模型的方法、数据处理的方法以及装置
CN113850414A (zh) * 2021-08-20 2021-12-28 天津大学 基于图神经网络和强化学习的物流调度规划方法
CN113850414B (zh) * 2021-08-20 2023-08-04 天津大学 基于图神经网络和强化学习的物流调度规划方法
WO2024016556A1 (zh) * 2022-07-22 2024-01-25 中控技术股份有限公司 一种适用于流程工业预测控制的模型自主学习方法
CN116679639A (zh) * 2023-05-26 2023-09-01 广州市博煌节能科技有限公司 金属制品生产控制系统的优化方法及系统
CN116679639B (zh) * 2023-05-26 2024-01-05 广州市博煌节能科技有限公司 金属制品生产控制系统的优化方法及系统

Similar Documents

Publication Publication Date Title
WO2022083536A1 (zh) 一种神经网络构建方法以及装置
CN110175671B (zh) 神经网络的构建方法、图像处理方法及装置
CN112183718B (zh) 一种用于计算设备的深度学习训练方法和装置
WO2021238366A1 (zh) 一种神经网络构建方法以及装置
CN111797992A (zh) 一种机器学习优化方法以及装置
CN112990211B (zh) 一种神经网络的训练方法、图像处理方法以及装置
CN113011575A (zh) 神经网络模型更新方法、图像处理方法及装置
CN111783937A (zh) 一种神经网络构建方法以及系统
CN113705769A (zh) 一种神经网络训练方法以及装置
CN111401516A (zh) 一种神经网络通道参数的搜索方法及相关设备
CN110222718B (zh) 图像处理的方法及装置
CN113807399B (zh) 一种神经网络训练方法、检测方法以及装置
CN111931901A (zh) 一种神经网络构建方法以及装置
WO2022111617A1 (zh) 一种模型训练方法及装置
CN113570029A (zh) 获取神经网络模型的方法、图像处理方法及装置
WO2022012668A1 (zh) 一种训练集处理方法和装置
CN113592060A (zh) 一种神经网络优化方法以及装置
CN113505883A (zh) 一种神经网络训练方法以及装置
CN112801265A (zh) 一种机器学习方法以及装置
CN115081588A (zh) 一种神经网络参数量化方法和装置
CN111832592A (zh) Rgbd显著性检测方法以及相关装置
WO2022111387A1 (zh) 一种数据处理方法及相关装置
US20240135174A1 (en) Data processing method, and neural network model training method and apparatus
CN111428854A (zh) 一种结构搜索方法及结构搜索装置
CN113536970A (zh) 一种视频分类模型的训练方法及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20201020