神经网络训练方法、装置、电子设备及存储介质与流程

文档序号:29961344发布日期:2022-05-11 09:12阅读:79来源:国知局
神经网络训练方法、装置、电子设备及存储介质与流程

1.本技术涉及深度学习领域,尤其涉及一种神经网络训练方法、装置、电子设备及存储介质。


背景技术:

2.从宇宙中星体的运动,到生活中水流的波动,再到分子、原子间的相互作用,在很多工业、自然科学、工程学过程中都可以通过微分方程进行描述,但是由于这些方程的复杂性和非线性,使得其很难找到解析解。目前物理方程的解法可分为两种,一种是代数证明,一种是几何意义。
3.目前,物理方程的解方程过程繁琐复杂,并且解出的解难以判断与物理方程对应的实际解之间的偏差,存在与物理方程的实际解存在较大偏差的技术问题。


技术实现要素:

4.本技术实施例提供一种神经网络训练方法、装置、电子设备及存储介质,能够将物理方程的解方程的过程转化成优化问题,构建出神经网络模型以求解,结合神经网络模型的判定效果和物理方程的判定效果,对神经网络模型的参数进行调整,使得模型能够更加逼近方程的实际解,从而减小与物理方程的实际解之间的误差。
5.为达到上述目的,本技术采用如下技术方案:
6.第一方面,提供一种神经网络训练方法,方法用于求解物理方程,方法包括以下步骤:
7.s1:基于若干层的网络层以及每个网络层对应的参数构建第一全连接神经网络模型;
8.s2:构建损失函数,用于获得模型损失值;
9.s3:基于计算获得的每层网络层对应的梯度值对当前第一全连接神经网络模型朝着梯度反向传播的方向更新参数,并将更新后获得的模型确定为第二全连接神经网络模型;
10.s4:根据所述损失函数计算模型损失值,判断当前是否满足预设条件,若是,保存当前参数,将当前第二全连接神经网络模型确定为目标模型;
11.若否,重复步骤s3。
12.根据第一方面所述的方法可知,本方法通过构建全连接神经网络模型,把数据输入模型中期望输出一个值,通过模型的输出值和实际值作比对判定模型的好坏;同时,还把模型的输出值带入物理方程的偏微分方程中,计算方程的结果以此评定模型对求解方程的效果。结合模型的判定效果和物理方程的判定效果,对模型的参数进行调整,让模型能够更加逼近方程的实际解。
13.结合第一方面,在第一种可能的实施方式中,损失函数包括:
14.用于计算当前第一全连接神经网络模型的预测值与实际值之间的第一损失值的
第一损失函数;其中,所述第一损失函数的表达式如下:
[0015][0016]
式中,nu表示预测值的个数,表示预测值,ui表示实际值。
[0017]
结合第一方面的第一种可能的实施方式,在第二种可能的实施方式中,损失函数还包括:
[0018]
用于基于当前第一全连接神经网络模型的预测值求解所述物理方程对应的偏微分方程以获得第二损失值的第二损失函数;其中,所述第二损失函数的表达式如下:
[0019][0020]
式中,表示物理方程对应的偏微分方程的计算结果;
[0021]
其中,所述第一损失值和所述第二损失值之和为所述模型损失值。
[0022]
结合第一方面的第二种可能的实施方式,在第三种可能的实施方式中,基于计算获得的每层网络层对应的梯度值对当前第一全连接神经网络模型朝着梯度反向传播的方向更新参数,包括:
[0023]
对第一全连接神经网络模型中每层网络层预设参数原始值;
[0024]
根据梯度反向传播和链式法则,计算当前第一全连接神经网络模型中每层网络层的梯度;
[0025]
计算更新量,并基于更新量和参数原始值对当前第一全连接神经网络模型进行参数更新。
[0026]
结合第一方面的第三种可能的实施方式,在第四种可能的实施方式中,更新量为当前误差在梯度上的对应的梯度值与模型学习率的乘积,且参数原始值与更新量之差为每层网络层中的每个参数更新后对应的参数。
[0027]
结合第一方面,在第五种可能的实施方式中,根据所述损失函数计算模型损失值,包括:
[0028]
每层网络层每间隔预设训练步数,计算当前第二全连接神经网络模型对应的模型损失值;
[0029]
基于当前模型损失值并通过反向传播向各层网络层发送更新参数以更新当前第二全连接神经网络模型。
[0030]
结合第一方面的第五种可能的实施方式,在第六种可能的实施方式中,判断当前是否满足预设条件包括:
[0031]
判断当前是否满足预设的训练步数;或
[0032]
判断计算获得的模型损失值是否小于预设阈值。
[0033]
第二方面,本技术实施例提供一种神经网络训练装置,装置包括:
[0034]
第一构建模块,用于基于若干层的网络层以及每个网络层对应的参数构建第一全连接神经网络模型;
[0035]
第二构建模块,用于构建损失函数,用于获得模型损失值;
[0036]
更新模块,基于计算获得的每层网络层对应的梯度值对当前第一全连接神经网络模型朝着梯度反向传播的方向更新参数,并将更新后获得的模型确定为第二全连接神经网络模型;
[0037]
判断处理模块,用于根据所述损失函数计算模型损失值,判断当前是否满足预设条件,若是,保存当前参数,将当前第二全连接神经网络模型确定为目标模型;
[0038]
若否,重复执行更新模块对应的方法。
[0039]
第三方面,本技术实施例提供一种电子设备,电子设备包括:处理器、通信总线、通信接口以及存储器;
[0040]
所述通信总线分别连接所述处理器、所述通信接口和所述存储器;
[0041]
所述存储器存储有计算机可读取指令,当所述处理器执行可读取指令时,运行第一方面及结合第一方面的任一种可能的实施方式中所述的神经网络训练方法。
[0042]
第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质包括计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得第一方面及结合第一方面的任一种可能的实施方式中所述的神经网络训练方法被执行。
[0043]
第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该计算机执行第一方面及结合第一方面的任一种可能的实施方式中所述的神经网络训练方法被执行。
附图说明
[0044]
图1为一种电子设备的结构示意图;
[0045]
图2为申请实施例提供的一种神经网络训练方法的流程示意图;
[0046]
图3为申请实施例提供的一种神经网络训练装置的结构示意图。
具体实施方式
[0047]
下面结合附图,对本技术中的技术方案进行描述。
[0048]
请参阅图1,本技术一些可能的实施例提供了一种电子设备10。电子设备10可以为个人电脑(personal computer,pc)、平板电脑、智能手机、个人数字助理(personal digital assistant,pda)等,或电子设备10可以为网络服务器、数据库服务器、云服务器或由多个子服务器构成的服务器集成等。
[0049]
进一步地,电子设备10可以包括:存储器111、通信接口112、通信总线113和处理器114,其中,处理器114、通信接口112和存储器111通过通信总线113连接。处理器114用于执行存储器111中存储的可执行模块,例如计算机程序。图1所示的电子设备10的组件和结构只是示例性的,而非限制性的,根据需要,电子设备10也可以具有其他组件和结构。
[0050]
其中,存储器111可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或
存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器111可以和处理器114集成在一起,也可以独立存在,并通过通信接口112处理器114耦合,本技术实施例对此不作具体限定。
[0051]
还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,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)。
[0052]
通信总线113可以是isa总线((industry standard architecture,工业标准体系结构)、pci总线(peripheral component interconnect,外设部件互连标准)或eisa总线(extended industry standard architecture,扩展工业标准结构)等。通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0053]
处理器114可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器114中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器114可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal process,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
[0054]
本发明实施例定义的装置所执行的方法可以应用于处理器114中,或者由处理器114实现。处理器114可以通过与电子设备10中其它模块或者元器件配合,从而执行神经网络训练方法。下面将对神经网络训练方法的执行进行详细地说明。
[0055]
请参阅图2,本技术一些可能的实施例提供了一种神经网络训练方法。该神经网络训练方法可以由设备执行,方法包括:
[0056]
s1:基于若干层的网络层以及每个网络层对应的参数构建第一全连接神经网络模型;
[0057]
s2:构建损失函数,用于获得模型损失值;
[0058]
s3:基于计算获得的每层网络层对应的梯度值对当前第一全连接神经网络模型朝着梯度反向传播的方向更新参数,并将更新后获得的模型确定为第二全连接神经网络模型;
[0059]
s4:根据所述损失函数计算模型损失值,判断当前是否满足预设条件,若是,保存当前参数,将当前第二全连接神经网络模型确定为目标模型;若否,重复步骤s3。
[0060]
下面将对本神经网络训练方法的具体执行流程做详细的说明。
[0061]
s1:基于若干层的网络层以及每个网络层对应的参数构建第一全连接神经网络模型。
[0062]
在本技术实施例中,将物理方程的求解转化成优化问题,对应的,需要构建对应的用于优化的神经网络模型。具体地,构建第一全连接神经网络模型包括确定模型当中包括的若干个网络层以及各个网络层的参数。网络层的层数、网络层的参数和输入输出维度是超参数,具体设定的数值需要通过大量运算和经验来调整设置。
[0063]
需要说明的是,本技术实施例中使用的训练样本为解物理方程对应的多个数值样本集。
[0064]
s2:构建损失函数,用于获得模型损失值。
[0065]
详细地,损失函数包括:
[0066]
用于计算当前第一全连接神经网络模型的预测值与实际值之间的第一损失值的第一损失函数;其中,所述第一损失函数的表达式如下:
[0067][0068]
上式中,nu表示预测值的个数,表示预测值,ui表示实际值。
[0069]
以及损失函数还包括:
[0070]
用于基于当前第一全连接神经网络模型的预测值求解所述物理方程对应的偏微分方程以获得第二损失值的第二损失函数;其中,所述第二损失函数的表达式如下:
[0071][0072]
上式中,表示物理方程对应的偏微分方程的计算结果;
[0073]
其中,所述第一损失值和所述第二损失值之和为所述模型损失值,其对应的函数表达式为:
[0074]
mse=mseu+msef(3)
[0075]
上述表达式(1)中,其计算结果越小,说明通过神经网络模型获得的预测值与物理方程的实际值之间的差距越小,即预测值越逼近实际值,获得的预测值的准确性就越高。
[0076]
上述表达式(2)中,将经过模型获得预测值带入物理方程的偏微分方程中进行求解,其模型拟合效果越好,对应的偏微分方程的解约接近于0,即其计算结果越接近0,说明预测值的拟合准确度就越高。
[0077]
上述表达式(3)中,以二者之和作为损失函数,既考虑了模型的拟合效果也考虑到
了解方程的实际效果,有利于求解出的预测值越接近实际值。
[0078]
上述表达式(1)至(3)对应的过程,即把模型的总损失值放入优化器中,进而对神经网络模型的各层参数进行更新和迭代。需要说明的是,优化器是梯度下降算法封装成的一个对象,使用优化器可以加速算法收敛速度,避免局部极值的影响,通过反向传播更新参数。
[0079]
s3:基于计算获得的每层网络层对应的梯度值对当前第一全连接神经网络模型朝着梯度反向传播的方向更新参数,并将更新后获得的模型确定为第二全连接神经网络模型。
[0080]
具体地,基于计算获得的每层网络层对应的梯度值对当前第一全连接神经网络模型朝着梯度反向传播的方向更新参数,包括:
[0081]
对第一全连接神经网络模型中每层网络层预设参数原始值;
[0082]
根据梯度反向传播和链式法则,计算当前第一全连接神经网络模型中每层网络层的梯度;
[0083]
计算更新量,并基于更新量和参数原始值对当前第一全连接神经网络模型进行参数更新。
[0084]
在本技术实施例中,更新量为当前误差在梯度上的对应的梯度值与模型学习率的乘积,且参数原始值与更新量之差为每层网络层中的每个参数更新后对应的参数。
[0085]
需要说明的是,上述提到的误差与方差、偏差和噪音相关,随着模型复杂度的增加,方差会逐渐增大,偏差会逐渐减小。模型的学习率与模型的网络层层数和参数相关,在此并不做具体限制。
[0086]
s4:根据所述损失函数计算模型损失值,判断当前是否满足预设条件,若是,保存当前参数,将当前第二全连接神经网络模型确定为目标模型;若否,重复步骤s3。
[0087]
具体地,根据所述损失函数计算模型损失值,包括:
[0088]
每层网络层每间隔预设训练步数,计算当前第二全连接神经网络模型对应的模型损失值;
[0089]
基于当前模型损失值并通过反向传播向各层网络层发送更新参数以更新当前第二全连接神经网络模型。
[0090]
也就是说,第一全连接神经网络模型经过参数更新获得第二全连接神经网络模型,而第二全连接神经网络模型每间隔预设训练步数将会根据损失函数计算一次模型损失值,并会根据计算获得的模型损失值和反向传播原理,向各层网络层发送更新参数以更新当前第二全连接神经网络模型。若当前不进行模型损失值的计算,本次将不会对第二全连接神经网络模型进行参数更新。
[0091]
判断当前是否满足预设条件包括:
[0092]
判断当前是否满足预设的训练步数;或
[0093]
判断计算获得的模型损失值是否小于预设阈值。
[0094]
通过判断上述任意一个判断条件是否达到了预设条件,来判断是否结束神经网络模型训练。若上述条件中的任意一个达到预设条件,将保存当前模型中的模型架构和对应的参数,并结束神经网络模型训练;若上述条件中任意一个条件均未被满足,将循环步骤s3,继续更新神经网络模型中的参数从而修正神经网络模型以及其模型预测值的准确性。
[0095]
请参阅图3,本技术实施例提供一种神经网络训练装置20,装置包括:
[0096]
第一构建模块210,用于基于若干层的网络层以及每个网络层对应的参数构建第一全连接神经网络模型;
[0097]
第二构建模块220,用于构建损失函数,用于获得模型损失值;
[0098]
更新模块230,基于计算获得的每层网络层对应的梯度值对当前第一全连接神经网络模型朝着梯度反向传播的方向更新参数,并将更新后获得的模型确定为第二全连接神经网络模型;
[0099]
判断处理模块240,用于根据所述损失函数计算模型损失值,判断当前是否满足预设条件,若是,保存当前参数,将当前第二全连接神经网络模型确定为目标模型;若否,重复执行更新模块对应的方法。
[0100]
综上所述,本技术实施例提供一种神经网络训练方法、装置、电子设备及存储介质,方法包括以下步骤:s1:基于若干层的网络层以及每个网络层对应的参数构建第一全连接神经网络模型;s2:构建损失函数,用于获得模型损失值;s3:基于计算获得的每层网络层对应的梯度值对当前第一全连接神经网络模型朝着梯度反向传播的方向更新参数,并将更新后获得的模型确定为第二全连接神经网络模型;s4:根据所述损失函数计算模型损失值,判断当前是否满足预设条件,若是,保存当前参数,将当前第二全连接神经网络模型确定为目标模型;若否,重复步骤s3。
[0101]
上述实施例,可以全部或部分地通过软件、硬件(如电路)、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘。
[0102]
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
[0103]
本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
[0104]
应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施
过程构成任何限定。
[0105]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0106]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0107]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0108]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0109]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0110]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0111]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1