CN113762502B - 神经网络模型的训练方法及装置 - Google Patents
神经网络模型的训练方法及装置 Download PDFInfo
- Publication number
- CN113762502B CN113762502B CN202110437224.9A CN202110437224A CN113762502B CN 113762502 B CN113762502 B CN 113762502B CN 202110437224 A CN202110437224 A CN 202110437224A CN 113762502 B CN113762502 B CN 113762502B
- Authority
- CN
- China
- Prior art keywords
- scaling
- layer
- error
- network layer
- value
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请提供了一种神经网络模型的训练方法及装置,涉及人工智能技术及云技术;方法包括:通过神经网络模型对标注有目标标签的训练样本进行预测,得到所述训练样本的预测标签;获取所述目标标签与所述预测标签之间的误差,并在所述神经网络模型中对所述误差进行反向传播;获取所述神经网络模型包含的各个网络层的缩放值,所述缩放值用于指示对反向传播至相应网络层的误差进行缩小或放大的比例;在反向传播所述误差的过程中,分别基于所述神经网络模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理;基于缩放处理后的误差,对所述神经网络模型的模型参数进行更新。通过本申请,能够提升训练得到的神经网络模型的预测精度。
Description
技术领域
本申请涉及人工智能技术领域及云技术领域,尤其涉及一种神经网络模型的训练方法及装置。
背景技术
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
机器学习(Machine Learning,ML)是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
近年来随着硬件的发展,硬件已经支持半精度浮点数的计算,由于半精度浮点数占用空间比单精度少一半,可以减少访存量及通信量,提高计算速度。但是由于半精度浮点数的表示范围窄于单精度,表达精度粗于单精度,在计算中会出现明显的精度损失。
发明内容
本申请实施例提供一种神经网络模型的训练方法及装置,能够能够提升训练得到的神经网络模型的预测精度。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种神经网络模型的训练方法,包括:
通过神经网络模型对标注有目标标签的训练样本进行预测,得到所述训练样本的预测标签;
获取所述目标标签与所述预测标签之间的误差,并在所述神经网络模型中对所述误差进行反向传播;
获取所述神经网络模型包含的至少两个网络层中各个层的缩放值,所述缩放值用于指示对反向传播至相应层的误差进行缩小或放大的比例;
在反向传播所述误差的过程中,分别基于所述神经网络模型的各个层的缩放值,对反向传播至相应层的误差进行缩放处理;
基于缩放处理后的误差,对所述神经网络模型的模型参数进行更新。
本申请实施例提供一种神经网络模型的训练装置,包括:
预测模块,用于通过神经网络模型对标注有目标标签的训练样本进行预测,得到所述训练样本的预测标签;
第一获取模块,用于获取所述目标标签与所述预测标签之间的误差,并在所述神经网络模型中对所述误差进行反向传播;
第二获取模块,用于获取所述神经网络模型包含的各个网络层的缩放值,所述缩放值用于指示对反向传播至相应网络层的误差进行缩小或放大的比例;
缩放模块,用于在反向传播所述误差的过程中,分别基于所述神经网络模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理;
更新模块,用于基于缩放处理后的误差,对所述神经网络模型的模型参数进行更新。
上述方案中,所述第二获取模块,还用于根据所述目标标签与所述预测标签,确定损失函数的值;
获取所述神经网络模型的全局缩放值;
获取所述损失函数的值与所述全局缩放值的乘积,将所述乘积作为所述目标标签与所述预测标签之间的误差。
上述方案中,所述更新模块,还用于在反向传播所述误差的过程中,获取各个所述网络层的梯度值;
确定至少一个网络层的梯度值发生溢出时,停止对所述神经网络模型的参数更新,并调整所述全局缩放值。
上述方案中,所述更新模块,还用于在反向传播所述误差的过程中,获取各个所述网络层的梯度值;
确定至少一个网络层的梯度值的置零比达到预设比例时,更新所述至少一个网络层的缩放值。
上述方案中,所述缩放模块,还用于对于所述神经网络模型的各个网络层中除反向传播的第一个网络层外的每一网络层,执行以下操作:
将经所述网络层的相邻网络层进行缩放处理后的误差,作为反向传播至所述网络层的误差;
获取反向传播至所述网络层的误差与所述网络层的缩放值的乘积,得到所述网络层的第一误差;
获取所述第一误差与所述相邻网络层的缩放值的比值,得到所述网络层的缩放处理后的误差。
上述方案中,所述缩放模块,还用于对于反向传播的第一个网络层,获取所述误差与所述第一个网络层的缩放值的乘积,得到所述第一个网络层的第二误差;
对所述第二误差进行求导处理,得到所述第一个网络层的缩放处理后的误差。
上述方案中,所述神经网络模型的模型参数包括各个所述网络层的权重,所述更新模块,还用于获取各个所述网络层的输入值;
分别获取各个所述网络层的输入值与相应网络层缩放处理后的误差的乘积,得到各个所述网络层的初始梯度值;
基于各个所述网络层的缩放值,对相应网络层的初始梯度值进行反向缩放处理,得到各所述网络层的梯度值;
分别基于各个所述网络层的梯度值,对所述神经网络模型包含的各个所述网络层的权重进行更新。
上述方案中,所述预测模块,还用于通过神经网络模型,采用第一数据精度,对标注有目标标签的训练样本进行预测,得到所述训练样本的预测标签;
所述获取所述目标标签与所述预测标签之间的误差,包括:
采用第二数据精度,基于所述目标标签与所述预测标签,确定所述神经网络模型的损失函数的值,以得到所述目标标签与所述预测标签之间的误差;
其中,所述第二数据精度高于所述第一数据精度。
上述方案中,所述神经网络模型为图像分类模型,所述图像分类模型包括特征提取层及分类预测层;
所述预测模块,还用于在通过所述图像分类模型对所述训练样本进行预测的过程中,获取所述特征提取层对所述训练样本进行特征提取所得到的图像特征;
所述更新模块,还用于基于所述分类预测层缩放处理后的误差及所述图像特征,获取所述分类预测层的梯度值;
基于所述分类预测层的梯度值,对所述分类预测层的模型参数进行更新;
基于所述特征提取层缩放处理后的误差及所述训练样本,获取所述特征提取层的梯度值;
基于所述特征提取层的梯度值,对所述特征提取层的模型参数进行更新。
本申请实施例提供一种计算机设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的神经网络模型的训练方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的神经网络模型的训练方法。
本申请实施例具有以下有益效果:
应用上述实施例,通过在反向传播所述误差的过程中,分别基于所述神经网络模型的各个网络层的缩放值,对反向传播至相应层的误差进行缩放处理;基于缩放处理后的误差,对所述神经网络模型的模型参数进行更新;如此,能够避免神经网络模型在反向传播过程中出现溢出及无法收敛的问题,提升了训练得到的神经网络模型的预测精度。
附图说明
图1是相关技术提供的混合精度训练过程示意图;
图2是本申请实施例提供的神经网络模型的训练方法的实施场景示意图;
图3是本申请实施例提供的计算机设备500的结构示意图;
图4是本申请实施例提供的神经网络模型的训练方法的流程示意图;
图5是本申请实施例提供的神经网络模型的结构示意图;
图6是本申请实施例提供的基于区块链的神经网络模型的训练系统的结构示意图;
图7是本申请实施例提供的区块结构(Block Structure)的示意图;
图8是本申请实施例提供的神经网络模型的训练方法的流程示意图;
图9是本申请实施例提供的神经网络模型的训练过程示意图;
图10是本申请实施例提供的神经网络模型的训练装置555的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
1)半精度浮点数,是一种计算机使用的二进制浮点数数据类型。半精度浮点数使用2字节(16位)存储。在IEEE 754-2008中,它被称作binary16。
2)单精度浮点数是用来表示带有小数部分的实数,一般用于科学计算。占用4个字节(32位)存储空间,包括符号位1位,阶码8位,尾数23位。其数值范围为-3.4E38~3.4E38,单精度浮点数最多有7位十进制有效数字,单精度浮点数的指数用“E”或“e”表示。
3)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。
4)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
5)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。
6)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
为避免在计算过程中出现明显的,相关技术提供了神经网络模型的混合精度训练方法。
图1是相关技术提供的混合精度训练过程示意图,参见图1,首先,将训练样本输入神经网络模型,其中,神经网络模型中各网络层的权重采用半精度浮点数(即float16)表示,采用半精度浮点数实现前向传播;接着,计算损失函数的值,在计算过程中将半精度浮点数(即float16)转化为单精度浮点数(即float32)进行操作,以得到由单精度浮点数表示的损失函数的值;对损失函数的值进行损失放大(loss scaling),即将损失函数的值放大定量的倍数,以增大中间计算量,减少由于半精度浮点数的表示范围过窄导致的精度损失;基于损失放大得到的损失函数的值,进行反向传播,并计算各层的梯度值,这里,计算得到半精度浮点数表示的放大的梯度值;对梯度值进行数据类型转换,得到单精度浮点数表示的放大的梯度值,然后按照损失函数的值放大的比例,对该放大的梯度值进行缩小,以保证更新时数值正确,得到用于更新各网络层的权重的梯度值;基于该梯度值,对各网络层的权重进行更新,得到更新得到的权重,这里得到的权重是由单精度浮点数表示的,需要对其进行数据转换,得到最终的权重。
申请人在实施本申请的过程中发现,采用上述方案对神经网络模型进行训练,无法适应神经网络模型中的不同网络层,在训练过程中存在精度下降,设置无法收敛的问题。
基于此,本申请实施例提供一种神经网络模型的训练方法及装置,以至少解决相关技术中的上述问题,接下来分别说明。
基于上述对本申请实施例中涉及的名词和术语的解释,接下来首先说明本申请实施例提供的神经网络模型的训练方法的实施场景,参见图2,图2是本申请实施例提供的神经网络模型的训练方法的实施场景示意图,为实现支撑一个示例性应用,终端包括终端400-1和终端400-2,其中终端200-1位于开发人员侧,用以控制神经网络模型的训练,终端200-2位于用户侧,用以请求针对待预测数据的预测;终端通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端400-1,用于发送神经网络模型的训练指令至服务器;
这里,训练指令中可以携带神经网络模型的相关信息,如神经网络模型的初始模型参数、标注有目标标签的训练样本等。
服务器200,用于对训练指令进行解析,得到神经网络模型的相关信息;基于该相关信息,通过神经网络模型对标注有目标标签的训练样本进行预测,得到所述训练样本的预测标签;获取所述目标标签与所述预测标签之间的误差,并在所述神经网络模型中对所述误差进行反向传播;获取所述神经网络模型包含的各个网络层的缩放值,所述缩放值用于指示对反向传播至相应网络层的误差进行缩小或放大的比例;在反向传播所述误差的过程中,分别基于所述神经网络模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理;基于缩放处理后的误差,对所述神经网络模型的模型参数进行更新。
当神经网络模型完成训练后,终端400-2,用于发送针对待预测数据的预测指令至服务器;
服务器200,用于响应于该预测指令,通过训练得到的神经网络模型,对待预测数据进行预测,并将预测结果返回给终端400-2。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDelivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载设备、智能电视等,但并不局限于此。
参见图3,图3是本申请实施例提供的计算机设备500的结构示意图,在实际应用中,计算机设备500可以为图2中的终端(如400-1)或服务器200,以计算机设备为图2所示的服务器为例,对实施本申请实施例的神经网络模型的训练方法的计算机设备进行说明。图3所示的计算机设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。计算机设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的神经网络模型的训练装置可以采用软件方式实现,图3示出了存储在存储器550中的神经网络模型的训练装置555,其可以是程序和插件等形式的软件,包括以下软件模块:预测模块5551、第一获取模块5552、第二获取模块5553、缩放模块5554及更新模块5555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的勋章图标的编辑装置可以采用硬件方式实现,作为示例,本申请实施例提供的勋章图标的编辑装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的勋章图标的编辑方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Pro grammable Gate Array)或其他电子元件。
基于上述对本申请实施例的神经网络模型的训练方法的实施场景及电子设备的说明,下面说明本申请实施例提供的神经网络模型的训练方法。参见图4,图4是本申请实施例提供的神经网络模型的训练方法的流程示意图;在一些实施例中,该神经网络模型的训练方法可由服务器或终端单独实施,或由服务器及终端协同实施,以服务器实施为例,本申请实施例提供的神经网络模型的训练方法包括:
步骤401:服务器通过神经网络模型对标注有目标标签的训练样本进行预测,得到训练样本的预测标签。
在实际应用中,终端上设置有模型训练客户端,开发人员可以通过终端上的模型训练客户端提交神经网络模型的训练任务,以触发针对神经网络模型的训练指令,终端将训练指令发送至服务器。这里,训练指令中可以携带模型的相关信息,如神经网络模型的初始模型参数、模型类别、模型架构等。服务器在接收到该训练指令后,对训练指令进行解析,以获取神经网络模型的相关信息,并基于神经网络模型的相关信息构建神经网络模型,并基于构建的神经网络模型对标注有目标标签的训练样本进行预测,以得到训练样本的预测标签。
在一些实施例中,训练样本可以是终端预先上传的,在实际实施时,终端预先上传训练样本,服务器对该训练样本进行存储,并将该训练样本的存储地址返回给终端;当终端接收到神经网络模型的训练任务后,将携带有训练样本的存储地址的训练指令发送给服务器,服务器对该训练指令进行解析,得到存储地址,基于该存储地址,获取训练样本。
在一些实施例中,训练样本还可以是终端在发送训练指令后主动上传的;在另一实施例中,训练样本可以是服务器从网上获取的公开训练集。
这里,训练样本标注有目标标签,该目标标签可以是预先由人工标注的。
作为示例,当神经网络模型为图像分类模型时,训练样本为图像样本,相应的目标标签为图像样本的类别标签;这里,图像分类模型包括特征提取层和图像分类层,通过特征提取层提取图像样本的图像特征,然后通过图像分类层,基于图像特征对图像样本所述类别进行分类预测,得到图像样本的预测标签。
步骤402:获取目标标签与预测标签之间的误差,并在神经网络模型中对误差进行反向传播。
在实际实施时,将目标标签与预测标签进行对比,以基于目标标签与预测标签之间的差异,获取目标标签的与预测标签之间的误差。这里,可以根据目标标签和预测标签,计算损失函数的值,将损失函数的值作为目标对象与预测标签之间的误差;也可以是在得到损失函数的值之后,对损失函数的值做进一步处理,以得到目标标签与预测标签之间的误差,如对损失函数的值做缩放处理,或者对损失函数的值做数据类型转换处理。
在得到目标标签与预测标签之间的误差,在神经网络模型中对误差进行反向传播。这里,对反向传播进行说明,这里的反向传播指的是,从神经网络模型的输出层开始,逐层计算神经网络模型各网络层的误差,以基于确定的网络层的误差,对相应层的模型参数进行更新。
这里,可以预先为神经网络模型设置损失函数,损失函数用于评价神经网络模型预测标签与真实标签不一样的程度,对于不同的神经网络模型,可以采用不同的损失函数。例如,当神经网络模型为用于实现回归任务的模型时,可以采用均方差损失函数;当神经网络模型为用于实现分类任务的模型时,可以采用交叉熵损失函数。在实际实施时,获取预先设置的损失函数,然后将目标标签和预测标签代入损失函数,以计算得到损失函数的值。
在一些实施例中,服务器可以通过以下方式获取目标标签与预测标签之间的误差:根据目标标签与预测标签,确定损失函数的值;获取神经网络模型的全局缩放值;获取损失函数的值与全局缩放值的乘积,将乘积作为目标标签与预测标签之间的误差。
在实际实施时,可以维护一个全局缩放值,以保证各网络层的梯度值不溢出,该全局缩放值是预先设置的,在保证各网络层的梯度值不上溢的情况,可以设置一个较大值作为全局缩放值。
在实际应用中,在获取损失函数的值之后,通过全局缩放值对该损失函数的值记性缩放处理,也即将损失函数的值与全局缩放值相乘,将损失函数的值与全局缩放值的乘积作为目标标签与预测标签之间的误差。如,当全局缩放值为10时,将损失函数的值放大十倍,得到目标标签与预测标签之间的误差。
这里,全局缩放值可以是固定不变的,也可以是在模型训练过程中动态变化的。
在一些实施例中,当全局缩放值是动态变化时,服务器还可以在反向传播误差的过程中,获取各个网络层的梯度值;确定至少一个网络层的梯度值发生溢出时,停止对神经网络模型的模型参数进行更新,并调整全局缩放值。
这里,在反向传播误差的过程中,获取各个网络层的梯度值,分别判断各个网络层的梯度值中是否存在无穷值(Inf)或非数值(NaN),若存在,说明该梯度值发生溢出,则停止此次参数更新,并调整全局缩放值,也即将全局缩放值减小;否则,进行正常的模型参数的更新操作。
这里,inf一般是因为得到的数值,超出浮点数的表示范围;而nan一般是因为对浮点数进行了未定义的操作,如对-1开方。
在实际实施时,对于每个网络层,可以根据g=δy*y/scale/g_scale,确定该网络层的梯度值,这里,g为梯度值,δy传播至该网络层的误差,scale为该网络层的缩放值,g_scale为全局缩放值。
步骤403:获取神经网络模型包含的各个网络层的缩放值。
这里,缩放值用于指示对反向传播至相应网络层的误差进行缩小或放大的比例。在实际实施时,各个网络层的缩放值可以是相同的,也可以是不同的。
步骤404:在反向传播误差的过程中,分别基于神经网络模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理。
在实际实施时,误差是从神经网络模型的输出层开始,逐层向前传播的,也即向输入层的方向,逐层传播的。
在一些实施例中,服务器可以通过以下方式分别基于神经网络模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理:
对于神经网络模型的各个网络层中除反向传播的第一个网络层外的每一网络层,执行以下操作:将经网络层的相邻网络层进行缩放处理后的误差,作为反向传播至网络层的误差;获取反向传播至网络层的误差与网络层的缩放值的乘积,得到网络层的第一误差;获取第一误差与相邻网络层的缩放值的比值,得到网络层的缩放处理后的误差。
这里,反向传播的第一个网络层是神经网络模型的最后一个网络层,通常为神经网络模型的输出层;网络层的相邻网络层指的是与网络层相邻、且位于该网络层后的网络层,这里位于该网络层后的网络层指的是相对于该网络层,相邻网络层更靠近输出层。在反向传播过程中,反向传播至该网络层的误差,是由其相邻网络层传播给它的。
作为示例,图5是本申请实施例提供的神经网络模型的结构示意图,参见图5,神经网络模型包括输入层、第一隐藏层、第二隐藏层和输出层,其中,输出层为第二隐藏层的相邻网络层。假设传播至输出层的误差为δy3,那么第二隐藏层的第一误差为δy3*scale2,这里的scale2为第二隐藏层的缩放值;相应的,第二隐藏层的缩放处理后的误差为δy3*scale2/scale3,这里的scale3为输出层的缩放值。
在一些实施例中,服务器可以通过以下方式分别基于神经网络模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理:对于反向传播的第一个网络层,获取误差与第一个网络层的缩放值的乘积,得到第一个网络层的第二误差;对第二误差进行求导处理,得到第一个网络层的缩放处理后的误差。
在实际实施时,对于反向传播的第一个网络层,反向传播至该第一个网络层的误差为目标标签与预测标签之间的误差,也即,获取目标标签与预测标签之间的误差、与第一个网络层的缩放值的相乘,然后将得到的乘积作为第一网络层的第二误差;然后对第二误差进行求导处理,将求导处理得到的导数,作为第一个网络层的缩放处理后的误差。
作为示例,当目标标签与预测标签之间的误差,由损失函数的值表示时,将损失函数的值与第一个网络层的缩放值相乘,得到第一个网络层的第二误差;然后对第二误差进行求导处理,便得到第一个网络层的缩放处理后的误差。
步骤405:基于缩放处理后的误差,对神经网络模型的模型参数进行更新。
在实际实施时,可以获取各网络层缩放处理后的误差,分别基于各网络层缩放处理后的误差,对相应网络层的模型参数进行更新。
在一些实施例中,服务器还可以在反向传播误差的过程中,获取各个网络层的梯度值;确定至少一个网络层的梯度值的置零比达到预设比例时,更新至少一个网络层的缩放值。
在实际实施时,将置零比作为量化指标,其中,置零比为梯度值中零值所占比例,若某一网络层的梯度值的置零比达到预设比例(置零比过大),说明该网络层的梯度值中大部分数为零,可能是因为该网络层的缩放值较小,导致了较多的下溢,此时会放大该网络层的缩放值,使该网络层的梯度值尽可能多的落在当前数据精度的表达范围内,如使该网络层的梯度值尽可能多的落在半精度浮点数(FP16)的表达范围之内。
在实际应用中,在对缩放值进行更新时,对于梯度值的置零比达到预设比例的每个网络层,可以将该网络层的缩放值缩小固定的比例,也可以是根据置零比与预设比例之间的差值,来确定所要缩小的比例,如差值与所要缩小的比例可以呈正比,差值越大,所要缩小的比例越大,那么在确定所要缩小的比例之后,根据确定的比例缩小该网络层的缩放值。
在一些实施例中,神经网络模型的模型参数包括各个网络层的权重,终端可以通过以下方式基于缩放处理后的误差,对神经网络模型的模型参数进行更新:获取各个网络层的输入值;分别获取各个网络层的输入值与相应网络层缩放处理后的误差的乘积,得到各个网络层的初始梯度值;基于各个网络层的缩放值,对相应网络层的初始梯度值进行反向缩放处理,得到各网络层的梯度值;分别基于各个网络层的梯度值,对神经网络模型包含的各个网络层的权重进行更新。
在实际实施时,在得到缩放处理后的误差后,基于该误差确定网络层的梯度值,以基于确定的梯度值,对神经网络模型包含的各个网络层的权重进行更新。这里,对于每个网络层,将该网络层的输入值与该网络层缩放处理后的误差相乘,得到该网络层的初始梯度值,由于这里的初始梯度值是进行缩放处理的梯度值,因此,需要将其进行反向缩放处理,才能得到用于更新该网络层权重的梯度值。在实际应用中,获取该初始梯度值与该网络层的缩放值的比值,就可以得到用于更新该网络层的权重的梯度值。
这里,假设δy为某一网络层的缩放处理后的误差,y为该网络层的输入值,scale为该网络层的缩放值,那么,可以根据g=δy*y/scale,计算该网络层的梯度值g。
在一些实施例中,当设置有全局缩放值时,该初始梯度值被缩放了全局缩放值乘以本层缩放值倍,在进行反向缩放处理时,需要将初始梯度值除以该网络层的缩放值和全局缩放值。也即,假设δy为某一网络层的缩放处理后的误差,y为该网络层的输入值,scale为该网络层的缩放值,g_scale为全局缩放值,那么,可以根据g=δy*y/scale/g_scale,计算该网络层的梯度值g。
在一些实施例中,可以通过以下方式通过神经网络模型对标注有目标标签的训练样本进行预测,得到训练样本的预测标签:通过神经网络模型,采用第一数据精度,对标注有目标标签的训练样本进行预测,得到训练样本的预测标签;通过以下方式获取目标标签与预测标签之间的误差:采用第二数据精度,基于目标标签与预测标签,确定神经网络模型的损失函数的值,以得到目标标签与预测标签之间的误差;其中,第二数据精度高于第一数据精度。
这里,第一数据精度指的是半精度,也即采用半精度浮点数表示各数据;第二数据精度指的是单精度,也即采用单精度浮点数表示各数据。在实际应用中,神经网络模型中的各模型参数采用半精度浮点数进行表示,那么,在通过神经网络模型对训练样本进行预测时,是基于半精度浮点数进行计算的;在确定目标标签与预测标签之间的误差时,采用单精度浮点数表示各数据,也即基于单精度浮点数,计算神经网络模型的损失函数的值,以得到目标标签与预测标签之间的误差。
在一些实施例中,神经网络模型为图像分类模型,图像分类模型包括特征提取层及分类预测层;方法还包括:在通过图像分类模型对训练样本进行预测的过程中,获取特征提取层对训练样本进行特征提取所得到的图像特征;服务器可以通过以下方式分别基于缩放处理后的误差,对神经网络模型的模型参数进行更新:基于分类预测层缩放处理后的误差及图像特征,获取分类预测层的梯度值;基于分类预测层的梯度值,对分类预测层的模型参数进行更新;基于特征提取层缩放处理后的误差及训练样本,获取特征提取层的梯度值;基于特征提取层的梯度值,对特征提取层的模型参数进行更新。
在实际实施时,当神经网络模型为图像分类模型时,训练样本为图像样本,将图像样本输入图像分类模型,通过图像分类模型中的特征提取层,提取图像样本的图像特征,然后将图像特征输入分类预测层,通过分类预测层,基于该图像特征对图像样本进行分类预测,将预测得到的类别,作为预测标签。这里,图像类别可以为动物、人物、风景、建筑等。
在得到预测标签和目标标签之后,根据预测标签和目标标签,确定损失函数的值,并基于该损失函数的值,确定预测标签和目标标签之间的误差,然后通过分类预测层的缩放值,对该误差进行缩放处理,得到分类预测层缩放处理后的误差;获取图像特征,然后将分类预测层缩放处理后的误差与图像特征相乘,再除以分类预测层的缩放值,得到分类预测层的梯度值;基于分类预测层的梯度值,对分类预测层的模型参数进行更新。将分类预测层缩放处理后的误差作为反向传播至特征提取层的误差,通过特征提取层的缩放值,对反向传播至特征提取层的误差进行缩放处理,也即将反向传播至特征提取层的误差与特征提取层的缩放值相乘,得到特征提取层缩放处理后的误差;将特征提取层缩放处理后的误差与图像样本相乘,再除以特征提取层的缩放值,得到特征提取层的梯度值,基于该特征提取层的梯度,对特征提取层的模型参数进行更新。
在一些实施例中,本申请实施例还可结合区块链技术,在训练得到神经网络模型提交至区块链网络。
在一些实施例中,参见图6,图6是本申请实施例提供的基于区块链的神经网络模型的训练系统的结构示意图,终端与服务器200通过网络300连接,任何机器如图2示出的服务器200、终端都可以加入区块链网络而成为节点,节点包括硬件层、中间层、操作系统层和应用层。图6中示例性地示出了将服务器200映射为区块链网络500的节点510-2、终端(如终端400-1、终端400-2)映射为区块链网络500的节点510-1,每个节点(例如节点510-1至节点510-2)都具有共识功能和记账(即维护状态数据库,例如KV数据库)的功能。
服务器200获取神经网络模型及标注有目标标签的训练样本,实施本申请实施例提供的神经网络模型的训练方法,以实现对神经网络模型的训练,通过调用智能合约的方式将训练得到的神经网络模型发送至区块链网络的节点510-2中,节点510-2对训练得到的神经网络模型进行共识,当共识通过后将训练得到的神经网络模型返回至终端400-1,以供终端400-1基于训练得到的神经网络模型进行预测,在本申请实施例中,通过区块链网络的节点之间的共识机制,保证了神经网络模型的可靠性以及可信性。
参见图7,图7是本申请实施例提供的区块结构(Block Structure)的示意图,每个区块中包括网页排序模型训练数据以及相关性标签的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块。
下面以神经网络模型为图像分类模型为例,说明本申请实施例提供的神经网络模型的训练方法,图8是本申请实施例提供的神经网络模型的训练方法的流程示意图,参见图8,本申请实施例提供的神经网络模型的训练方法,包括:
步骤801:服务器获取标注有目标标签的图像样本。
这里,图像样本所标注的目标标签可以为风景、动物、人物、建筑等。
步骤802:通过图像分类模型中的特征提取层,提取图像样本的图像特征。
这里,将标注有目标标签(如风景、动物、人物、建筑)的图像样本输入图像分类模型。
步骤803:通过图像分类模型中的分类预测层,基于该图像特征对图像样本进行分类预测,并将预测得到的类别,作为预测标签。
这里,通过分类预测层对图像样本进行分类预测,如,预测该图像样本是风景、动物、人物、建筑中的哪一个。
步骤804:基于目标标签和预测标签,确定损失函数的值。
例如,这里可以获取交叉熵损失函数的值。
步骤805:通过全局缩放值,对损失函数的值进行扩大处理,得到目标标签和预测标签之间的误差。
步骤806:通过分类预测层的缩放值,对目标标签和预测标签之间的误差进行缩放处理,得到分类预测层缩放处理后的误差。
步骤807:将分类预测层缩放处理后的误差传播至特征提取层。
步骤808:将分类预测层缩放处理后的误差与图像特征相乘,再除以分类预测层的缩放值及全局缩放值,得到分类预测层的梯度值。
步骤809:判断分类预测层的梯度值是否溢出,若是,执行步骤810;否则,执行步骤811。
步骤810:缩小全局缩放值。
步骤811:判断分类预测层的梯度值的置零比是否达到预设比例,若是,执行步骤812;否则,执行步骤813。
步骤812:放大分类预测层的缩放值。
步骤813:基于分类预测层的梯度值,对分类预测层的权重进行更新。
步骤814:通过特征提取层的缩放值,对反向传播至特征提取层的误差进行缩放处理。
步骤815:将特征提取层缩放处理后的误差与图像样本相乘,再除以特征提取层的缩放值及全局缩放值,得到特征提取层的梯度值。
步骤816:判断特征提取层的梯度值是否溢出,若是,执行步骤810;否则,执行步骤817。
步骤817:判断分类预测层的梯度值的置零比是否达到预设比例,若是,执行步骤818;否则,执行步骤819。
步骤818:放大分类预测层的梯度值。
步骤819:基于分类预测层的梯度值,对分类预测层的权重进行更新。
这里,当权重更新次数达到预设次数,或神经网络模型收敛时,确定训练完成。
应用上述实施例能够避免神经网络模型在反向传播过程中出现溢出及无法收敛的问题,提升了训练得到的神经网络模型的预测精度
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。在实际实施时,本申请实施例神经网络模型维护了一个全局缩放值(全局损失缩放值),并且神经网络模型包含的至少两个网络层的每个层都维护一个缩放值(层缩放值),以解决神经网络模型训练过程中精度下降甚至无法收敛的问题。
这里,全局缩放值用来保证梯度不上溢,该值会在梯度不上溢的前提下,设置一个较大值,一旦发现某网络层的梯度发生上溢,那将该全局损失缩放值缩小一定倍数。
各层的缩放值用来保证各网络层的梯度不下溢,在训练过程中,将梯度值的置零比作为量化指标,其中,置零比为梯度值中零值所占比例,若某一网络层的梯度值的置零比达到预设比例(置零比过大),说明该网络层大部分数为零,可能是因为该网络层的缩放值较小,导致了较多的下溢,此时会放大该网络层的缩放值,使该层梯度值尽可能多的落在半精度浮点数(FP16)的表达范围之内。
在反向传播过程中,各层的缩放值不应该也反向传播到前一网络层,因此需要将前一网络层的中间结果乘以当前层的缩放值,并除以上一层的缩放值,得到当前层的缩放处理后的误差(中间结果)。
在参数更新中,由于各网络层的梯度都扩大了全局缩放值乘以本层缩放值倍,因此需要更新前先缩小对应的倍数,以得到用于更新相应网络层的梯度值。
作为示例,图9是本申请实施例提供的神经网络模型的训练过程示意图,参见图9,该神经网络模型包括输入层、隐藏层(包括第一隐藏层和第二隐藏层)和输出层,其中,x为输入层的输入(即训练样本),y1为第一隐藏层的输入,y2为第二隐藏层的输入,y3为输出层的输入;w1为输出层连接到第一隐藏层的权重,w2为第一隐藏层连接到第二隐藏层的权重,w3为第二隐藏层连接到输出层的权重;g1为第一隐藏层的梯度值,g2为第二隐藏层的梯度值,g3为输出层的梯度值;scale1为第一隐藏层的缩放值,scale2为第二隐藏层的缩放值,scale3为输出层的输入缩放值;g_scale为全局缩放值。
在实际应用中,根据输出层输出的预测标签和目标标签,计算损失函数的值(loss),将该损失函数的值在神经网络模型中进行反向传播;在反向传播的过程中,根据全局缩放值(g_scale),对损失函数的值进行放大,得到放大的损失函数的值(scaled_loss),这里,scaled_loss=loss*g_scale;然后,基于输出层的缩放值,对放大的损失函数的值进行放大处理,也即,获取scaled_loss与sc ale3的乘积,以基于该乘积获取中间结果δy3;将该中间结果δy3反向传播至前一网络层,即第二隐藏层,这里,第二隐藏层的中间结果为δy2=δy3*scale2/scale3,同理,第一隐藏层的中间结果为δy1=δy2*scale1/scale2。
在得到各层的中间结果后,再基于中间结果计算相应网络层的梯度值,这里,g3=δy3*y3/scale3/g_scale,g2=δy2*y2/scale2/g_scale,g1=δy1*y1/scale1/g_scale;基于g3更新w3,基于g2更新w2,基于g1更新w1,以实现对神经网络模型的训练。
应用上述实施例,由于每个网络层都维护了一个缩放值,且在对神经网络模型进行训练的过程中,能够对缩放值进行动态调节,达到自适应的效果,可以有效地处理梯度下溢的问题,解决在训练过程中出现的精度损失甚至不收敛的问题。
下面继续说明本申请实施例提供的神经网络模型的训练装置555,在一些实施例中,神经网络模型的训练装置可采用软件模块的方式实现。参见图10,图10是本申请实施例提供的神经网络模型的训练装置555的结构示意图,本申请实施例提供的神经网络模型的训练装置555包括:
预测模块5551,用于通过神经网络模型对标注有目标标签的训练样本进行预测,得到所述训练样本的预测标签;
第一获取模块5552,用于获取所述目标标签与所述预测标签之间的误差,并在所述神经网络模型中对所述误差进行反向传播;
第二获取模块5553,用于获取所述神经网络模型包含的各个网络层的缩放值,所述缩放值用于指示对反向传播至相应网络层的误差进行缩小或放大的比例;
缩放模块5554,用于在反向传播所述误差的过程中,分别基于所述神经网络模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理;
更新模块5555,用于基于缩放处理后的误差,对所述神经网络模型的模型参数进行更新。
在一些实施例中,所述第二获取模块5553,还用于根据所述目标标签与所述预测标签,确定损失函数的值;
获取所述神经网络模型的全局缩放值;
获取所述损失函数的值与所述全局缩放值的乘积,将所述乘积作为所述目标标签与所述预测标签之间的误差。
在一些实施例中,所述更新模块5555,还用于在反向传播所述误差的过程中,获取各个所述网络层的梯度值;
确定至少一个网络层的梯度值发生溢出时,停止对所述神经网络模型的参数更新,并调整所述全局缩放值。
在一些实施例中,所述更新模块5555,还用于在反向传播所述误差的过程中,获取各个所述网络层的梯度值;
确定至少一个网络层的梯度值的置零比达到预设比例时,更新所述至少一个网络层的缩放值。
在一些实施例中,所述缩放模块5554,还用于对于所述神经网络模型的各个网络层中除反向传播的第一个网络层外的每一网络层,执行以下操作:
将经所述网络层的相邻网络层进行缩放处理后的误差,作为反向传播至所述网络层的误差;
获取反向传播至所述网络层的误差与所述网络层的缩放值的乘积,得到所述网络层的第一误差;
获取所述第一误差与所述相邻网络层的缩放值的比值,得到所述网络层的缩放处理后的误差。
在一些实施例中,所述缩放模块5554,还用于对于反向传播的第一个网络层,获取所述误差与所述第一个网络层的缩放值的乘积,得到所述第一个网络层的第二误差;
对所述第二误差进行求导处理,得到所述第一个网络层的缩放处理后的误差。
在一些实施例中,所述神经网络模型的模型参数包括各个所述网络层的权重,所述更新模块5555,还用于获取各个所述网络层的输入值;
分别获取各个所述网络层的输入值与相应网络层缩放处理后的误差的乘积,得到各个所述网络层的初始梯度值;
基于各个所述网络层的缩放值,对相应网络层的初始梯度值进行反向缩放处理,得到各所述网络层的梯度值;
分别基于各个所述网络层的梯度值,对所述神经网络模型包含的各个所述网络层的权重进行更新。
在一些实施例中,所述预测模块5551,还用于通过神经网络模型,采用第一数据精度,对标注有目标标签的训练样本进行预测,得到所述训练样本的预测标签;
所述获取所述目标标签与所述预测标签之间的误差,包括:
采用第二数据精度,基于所述目标标签与所述预测标签,确定所述神经网络模型的损失函数的值,以得到所述目标标签与所述预测标签之间的误差;
其中,所述第二数据精度高于所述第一数据精度。
在一些实施例中,所述神经网络模型为图像分类模型,所述图像分类模型包括特征提取层及分类预测层;
所述预测模块5551,还用于在通过所述图像分类模型对所述训练样本进行预测的过程中,获取所述特征提取层对所述训练样本进行特征提取所得到的图像特征;
所述更新模块5555,还用于基于所述分类预测层缩放处理后的误差及所述图像特征,获取所述分类预测层的梯度值;
基于所述分类预测层的梯度值,对所述分类预测层的模型参数进行更新;
基于所述特征提取层缩放处理后的误差及所述训练样本,获取所述特征提取层的梯度值;
基于所述特征提取层的梯度值,对所述特征提取层的模型参数进行更新。
应用上述实施例,通过在反向传播所述误差的过程中,分别基于所述神经网络模型的各个网络层的缩放值,对反向传播至相应层的误差进行缩放处理;基于缩放处理后的误差,对所述神经网络模型的模型参数进行更新;如此,能够避免神经网络模型在反向传播过程中出现溢出及无法收敛的问题,提升了训练得到的神经网络模型的预测精度。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的神经网络模型的训练方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4示出的方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (11)
1.一种神经网络模型的训练方法,其特征在于,包括:
通过图像分类模型对标注有类别标签的图像样本进行预测,得到所述图像样本的预测标签;
获取所述类别标签与所述预测标签之间的误差,并在所述图像分类模型中对所述误差进行反向传播;
获取所述图像分类模型包含的各个网络层的缩放值,所述缩放值用于指示对反向传播至相应网络层的误差进行缩小或放大的比例;
在反向传播所述误差的过程中,执行以下处理:获取各个所述网络层的梯度值;确定至少一个网络层的梯度值的置零比达到预设比例时,更新所述至少一个网络层的缩放值;分别基于所述图像分类模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理;
基于缩放处理后的误差,对所述图像分类模型的模型参数进行更新。
2.如权利要求1所述的方法,其特征在于,所述获取所述类别标签与所述预测标签之间的误差,包括:
根据所述类别标签与所述预测标签,确定损失函数的值;
获取所述图像分类模型的全局缩放值;
获取所述损失函数的值与所述全局缩放值的乘积,将所述乘积作为所述类别标签与所述预测标签之间的误差。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
在反向传播所述误差的过程中,获取各个所述网络层的梯度值;
确定至少一个网络层的梯度值发生溢出时,停止对所述图像分类模型的参数更新,并调整所述全局缩放值。
4.如权利要求1所述的方法,其特征在于,所述分别基于所述图像分类模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理,包括:
对于所述图像分类模型的各个网络层中除反向传播的第一个网络层外的每一网络层,执行以下操作:
将经所述网络层的相邻网络层进行缩放处理后的误差,作为反向传播至所述网络层的误差;
获取反向传播至所述网络层的误差与所述网络层的缩放值的乘积,得到所述网络层的第一误差;
获取所述第一误差与所述相邻网络层的缩放值的比值,得到所述网络层的缩放处理后的误差。
5.如权利要求1所述的方法,其特征在于,所述分别基于所述图像分类模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理,包括:
对于反向传播的第一个网络层,获取所述误差与所述第一个网络层的缩放值的乘积,得到所述第一个网络层的第二误差;
对所述第二误差进行求导处理,得到所述第一个网络层的缩放处理后的误差。
6.如权利要求1所述的方法,其特征在于,所述图像分类模型的模型参数包括各个所述网络层的权重,所述基于缩放处理后的误差,对所述图像分类模型的模型参数进行更新,包括:
获取各个所述网络层的输入值;
分别获取各个所述网络层的输入值与相应网络层缩放处理后的误差的乘积,得到各个所述网络层的初始梯度值;
基于各个所述网络层的缩放值,对相应网络层的初始梯度值进行反向缩放处理,得到各所述网络层的梯度值;
分别基于各个所述网络层的梯度值,对所述图像分类模型包含的各个所述网络层的权重进行更新。
7.如权利要求1所述的方法,其特征在于,所述通过图像分类模型对标注有类别标签的图像样本进行预测,得到所述图像样本的预测标签,包括:
通过图像分类模型,采用第一数据精度,对标注有类别标签的图像样本进行预测,得到所述图像样本的预测标签;
所述获取所述类别标签与所述预测标签之间的误差,包括:
采用第二数据精度,基于所述类别标签与所述预测标签,确定所述图像分类模型的损失函数的值,以得到所述类别标签与所述预测标签之间的误差;
其中,所述第二数据精度高于所述第一数据精度。
8.如权利要求1所述的方法,其特征在于,所述图像分类模型包括特征提取层及分类预测层;所述方法还包括:
在通过所述图像分类模型对所述图像样本进行预测的过程中,获取所述特征提取层对所述图像样本进行特征提取所得到的图像特征;
所述分别基于缩放处理后的误差,对所述图像分类模型的模型参数进行更新,包括:
基于所述分类预测层缩放处理后的误差及所述图像特征,获取所述分类预测层的梯度值;
基于所述分类预测层的梯度值,对所述分类预测层的模型参数进行更新;
基于所述特征提取层缩放处理后的误差及所述图像样本,获取所述特征提取层的梯度值;
基于所述特征提取层的梯度值,对所述特征提取层的模型参数进行更新。
9.一种神经网络模型的训练装置,其特征在于,包括:
预测模块,用于通过图像分类模型对标注有类别标签的图像样本进行预测,得到所述图像样本的预测标签;
第一获取模块,用于获取所述类别标签与所述预测标签之间的误差,并在所述图像分类模型中对所述误差进行反向传播;
第二获取模块,用于获取所述图像分类模型包含的各个网络层的缩放值,所述缩放值用于指示对反向传播至相应网络层的误差进行缩小或放大的比例;
缩放模块,用于在反向传播所述误差的过程中,执行以下处理:获取各个所述网络层的梯度值;确定至少一个网络层的梯度值的置零比达到预设比例时,更新所述至少一个网络层的缩放值;分别基于所述图像分类模型的各个网络层的缩放值,对反向传播至相应网络层的误差进行缩放处理;
更新模块,用于基于缩放处理后的误差,对所述图像分类模型的模型参数进行更新。
10.一种计算机设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至8任一项所述的神经网络模型的训练方法。
11.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至8任一项所述的神经网络模型的训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110437224.9A CN113762502B (zh) | 2021-04-22 | 2021-04-22 | 神经网络模型的训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110437224.9A CN113762502B (zh) | 2021-04-22 | 2021-04-22 | 神经网络模型的训练方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113762502A CN113762502A (zh) | 2021-12-07 |
CN113762502B true CN113762502B (zh) | 2023-09-19 |
Family
ID=78786908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110437224.9A Active CN113762502B (zh) | 2021-04-22 | 2021-04-22 | 神经网络模型的训练方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113762502B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114186256B (zh) * | 2021-12-10 | 2023-09-19 | 北京百度网讯科技有限公司 | 神经网络模型的训练方法、装置、设备和存储介质 |
CN114186669B (zh) * | 2021-12-10 | 2023-08-18 | 北京百度网讯科技有限公司 | 神经网络模型的训练方法、装置、设备和存储介质 |
CN116266274A (zh) * | 2021-12-15 | 2023-06-20 | 华为技术有限公司 | 一种神经网络的调整方法及相应装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110073371A (zh) * | 2017-05-05 | 2019-07-30 | 辉达公司 | 用于以降低精度进行深度神经网络训练的损失缩放 |
CN110163234A (zh) * | 2018-10-10 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种模型训练方法、装置和存储介质 |
CN110991652A (zh) * | 2019-12-02 | 2020-04-10 | 北京迈格威科技有限公司 | 神经网络模型训练方法、装置及电子设备 |
CN111797976A (zh) * | 2020-06-30 | 2020-10-20 | 北京灵汐科技有限公司 | 神经网络的训练方法、图像识别方法、装置、设备及介质 |
CN112488313A (zh) * | 2020-12-10 | 2021-03-12 | 电子科技大学 | 一种基于显式权重的卷积神经网络模型压缩方法 |
CN112561056A (zh) * | 2020-12-07 | 2021-03-26 | 北京百度网讯科技有限公司 | 神经网络模型的训练方法、装置、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111178491A (zh) * | 2018-11-09 | 2020-05-19 | 佳能株式会社 | 神经网络模型的训练和应用方法、装置、系统及存储介质 |
-
2021
- 2021-04-22 CN CN202110437224.9A patent/CN113762502B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110073371A (zh) * | 2017-05-05 | 2019-07-30 | 辉达公司 | 用于以降低精度进行深度神经网络训练的损失缩放 |
CN110163234A (zh) * | 2018-10-10 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种模型训练方法、装置和存储介质 |
CN110991652A (zh) * | 2019-12-02 | 2020-04-10 | 北京迈格威科技有限公司 | 神经网络模型训练方法、装置及电子设备 |
CN111797976A (zh) * | 2020-06-30 | 2020-10-20 | 北京灵汐科技有限公司 | 神经网络的训练方法、图像识别方法、装置、设备及介质 |
CN112561056A (zh) * | 2020-12-07 | 2021-03-26 | 北京百度网讯科技有限公司 | 神经网络模型的训练方法、装置、电子设备和存储介质 |
CN112488313A (zh) * | 2020-12-10 | 2021-03-12 | 电子科技大学 | 一种基于显式权重的卷积神经网络模型压缩方法 |
Non-Patent Citations (3)
Title |
---|
ADAPTIVE LOSS SCALING FOR MIXED PRECISION TRAINING;Ruizhe Zhao et.al;《arXiv:1910.12385v1》;第1-11页 * |
MIXED PRECISION TRAINING;Sharan Narang et.al;《arXiv:1710.03740v3》;第1-12页 * |
深度神经网络训练中梯度不稳定现象研究综述;陈建廷 等;《软件学报》;第29卷(第7期);第2071-2091页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113762502A (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113762502B (zh) | 神经网络模型的训练方法及装置 | |
CN110651280B (zh) | 投影神经网络 | |
EP3913545A2 (en) | Method and apparatus for updating parameter of multi-task model, and electronic device | |
US20220020064A1 (en) | Feature processing method and apparatus for artificial intelligence recommendation model, electronic device, and storage medium | |
WO2022141968A1 (zh) | 对象推荐方法及装置、计算机设备和介质 | |
CN110188910A (zh) | 利用机器学习模型提供在线预测服务的方法及系统 | |
CN110929807A (zh) | 图像分类模型的训练方法、图像分类方法及装置 | |
CN111090756A (zh) | 基于人工智能的多目标推荐模型的训练方法及装置 | |
CN112766596B (zh) | 建筑能耗预测模型的构建方法、能耗预测方法及装置 | |
CN112256886B (zh) | 图谱中的概率计算方法、装置、计算机设备及存储介质 | |
CN111883262A (zh) | 疫情趋势预测方法、装置、电子设备及存储介质 | |
EP4105872A2 (en) | Data processing method and apparatus | |
US20220392585A1 (en) | Method for training compound property prediction model, device and storage medium | |
CN112380475B (zh) | 用于生成页面的方法和装置 | |
CN111133458B (zh) | 增强神经网络 | |
CN112561031A (zh) | 基于人工智能的模型搜索方法、装置及电子设备 | |
CN116684330A (zh) | 基于人工智能的流量预测方法、装置、设备及存储介质 | |
CN112465141A (zh) | 模型压缩方法、装置、电子设备及介质 | |
CN104239594A (zh) | 人工环境模型、Agent模型及其建模方法 | |
US20240054035A1 (en) | Dynamically generating application programming interface (api) methods for executing natural language instructions | |
CN113158292A (zh) | 构件匹配方法、工程量计算方法、装置及电子设备 | |
CN116450723A (zh) | 数据提取方法、装置、计算机设备及存储介质 | |
CN110990256B (zh) | 开源代码检测方法、装置及计算机可读存储介质 | |
WO2021115269A1 (zh) | 用户集群的预测方法、装置、计算机设备和存储介质 | |
CN114692808A (zh) | 图神经网络传播模型确定方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |