一种在机器学习中调整模型参数的方法及装置与流程

文档序号:18827664发布日期:2019-10-09 02:13阅读:548来源:国知局
一种在机器学习中调整模型参数的方法及装置与流程
本发明涉及机器学习
技术领域
,尤其涉及一种在机器学习中调整模型参数的方法及装置。
背景技术
:在机器学习中,超参数调整和网络架构设计一直是一个较为复杂的过程,其对于技术人员的理论知识和经验要求非常高。目前对于机器学习模型的超参数调整,通常都是直接在参数空间内进行搜索、尝试,而这种搜索、尝试过程并没有明确的目标,具有较大的随机性,从而导致系统尝试次数较多、获取理想参数的时间较长。技术实现要素:本发明旨在提供一种在机器学习中调整模型参数的方法及装置,能够有目标地对参数进行查找,从而缩短参数调整时间、提高工作效率。为达到上述目的,本发明采用的技术方案如下:一种在机器学习中调整模型参数的方法,包括:s1:获取输入数据;所述输入数据中包括数据标签;s2:判断所述数据标签的数据类型;s3:根据所述数据类型,选取待训练的网络模型,并选取用于优化所述网络模型的损失函数;s4:根据当前策略选取所述网络模型的模型参数;s5:采用所述模型参数训练所述网络模型,并根据所述损失函数计算损失值;将所述损失值作为当前策略的奖励;s6:根据所述奖励更新当前策略,并循环执行步骤s4~s5,直至当前策略收敛。进一步地,所述数据类型包括:连续型,类别型;当所述数据类型为连续型时,所述待训练的网络模型为回归网络模型,所述损失函数为回归损失函数;当所述数据类型为类别型时,所述待训练的网络模型为分类网络模型,所述损失函数为分类损失函数。优选地,判断所述当前策略收敛的方法包括:在循环执行步骤s4~s5的过程中,相邻两次所述奖励不变。一种在机器学习中调整模型参数的装置,包括:获取单元,用于获取输入数据;所述输入数据中包括数据标签;判断单元,用于判断所述数据标签的数据类型;第一选取单元,用于根据所述数据类型,选取待训练的网络模型,并选取用于优化所述网络模型的损失函数;第二选取单元,用于根据当前策略选取所述网络模型的模型参数;模型训练单元,用于采用所述模型参数训练所述网络模型,并根据所述损失函数计算损失值;将所述损失值作为当前策略的奖励;更新单元,用于根据所述奖励更新当前策略;所述更新单元、所述第二选取单元、所述模型训练单元依次循环地进行参数传递,直至当前策略收敛。本发明实施例提供的在机器学习中调整模型参数的方法及装置,基于输入数据来确定网络模型和相应的损失函数,基于当前策略来选取模型参数,采用模型参数对网络模型进行训练后,将损失值作为当前策略的奖励,并根据奖励来更新当前策略。随着当前策略的循环更新,每次训练网络模型时采用的模型参数也不断调整,即系统能够自动根据策略来调整模型参数,使得对模型参数的获取具有目标性,有效解决了现有技术中对模型参数进行随机选取而造成的参数调整时间较长的问题。综上所述,本发明的技术方案能够有目标地对参数进行查找,从而缩短参数调整时间、提高工作效率。附图说明图1为本发明实施例的方法流程图;图2为本发明实施例的装置结构图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。图1为本发明实施例的方法流程图,包括:步骤s1:获取输入数据;所述输入数据中包括数据标签;本实施例中,所述输入数据用(x,y)表示,其中,x∈rn,y∈r。x代表数据特征,其特征数为n;y代表数据标签。本步骤中,对于数据特征x,系统会自动地对其进行归一化,以使后续的网络训练和策略的收敛过程加速。上述归一化的具体方法为,针对数据特征x的每一个字段,采用min-max归一化,公式如下:其中,[n]代表x的第n个特征向量。步骤s2:判断所述数据标签的数据类型;步骤s3:根据所述数据类型,选取待训练的网络模型,并选取用于优化所述网络模型的损失函数;本实施例中,所述数据类型包括:连续型,类别型。当所述数据类型为连续型时,所述待训练的网络模型为回归网络模型,所述损失函数为回归损失函数,该回归损失函数为:l(a,y)=-ylog(a)-(1-y)log(1-a)。当所述数据类型为类别型时,所述待训练的网络模型为分类网络模型,所述损失函数为分类损失函数,该分类损失函数为:本实施例中,数据标签的数据类型的判断方法包括:检测数据标签y值独立出现的个数,若大于预设值(通常为500)则判断为连续型,其它情况则判断为类别型。本实施例中,对于分类网络模型,选择softmax函数作为网络输出函数。softmax函数表示如下:步骤s4:根据当前策略选取所述网络模型的模型参数;步骤s5:采用所述模型参数训练所述网络模型,并根据所述损失函数计算损失值;将所述损失值作为当前策略的奖励;步骤s6:根据所述奖励更新当前策略,并循环执行步骤s4~s5,直至当前策略收敛。本实施例中,判断所述当前策略收敛的方法包括:在循环执行步骤s4~s5的过程中,相邻两次所述奖励不变。本实施例中,当前策略π可以采用ε-贪婪算法(q-learning算法)来确定。使用ε-贪婪算法时,如果ε=0.8,则意味着系统有80%的概率选择当前奖励最高的行动,而剩下的20%则随机选择。在某一个策略被执行后,基于该策略的执行结果更新对应状态的累积奖励,以促使策略让网络模型更加快速地回到当前高收益的状态中。本实施例中的策略π,可以用q(s,a)来表示,其中,s为网络模型的当前状态,该当前状态包括:当前超参数信息,训练次数;a则为网络模型可采取的行动,主要包括调高或调低某一个超参数。在状态更新策略中,在每次策略执行后都需要将q(s,a)-αl(a,y)的值赋予q(s,a),即q(s,a):=q(s,a)-αl(a,y),基于损失函数的特点,其值应该越小越好,因此,我们使用损失函数的负值来表示本实施例中的损失值,而将这个损失值作为本次策略的奖励,可以采用下式来表示:q(s,a):=q(s,a)+α[r+γmaxa′q(s′,a′)-q(s,a)]其中,s′,r是在执行了行动a之后输出的状态和对应的奖励,a′则是下一步所有可能的行为。以下采用一个具体的例子来描述模型参数(或超参数)的调整过程:首先对输入数据(x,y)建立特征表:表1idx1x2x3x4y00.04160.2313015320.2244120.61280.13290其中x1~x4为数据特征,y为数据标签,此处数据标签中枚举值只有0,1两种,因此数据标签的类型为类别型,待训练的网络模型为分类网络模型,对应的损失函数为分类损失函数。同时,选择softmax函数作为网络输出函数。然后,确认当前策略,并进行网络模型训练。如表2中,每一行代表一个状态,每一个状态下每一列代表一个行为,单元格中的值代表这个状态下某一个行为的损失值。表2状态学习速率提升学习速率下降隐藏单元提升隐藏单元下降参数s1-423-123-800-523参数s2-254-442-310-452参数s3-532-500-424-234在反复训练和迭代中,不断修改表2中的损失值,直到策略整体收敛为止。本发明还公开一种在机器学习中调整模型参数的装置,包括:获取单元,用于获取输入数据;所述输入数据中包括数据标签;判断单元,用于判断所述数据标签的数据类型;第一选取单元,用于根据所述数据类型,选取待训练的网络模型,并选取用于优化所述网络模型的损失函数;第二选取单元,用于根据当前策略选取所述网络模型的模型参数;模型训练单元,用于采用所述模型参数训练所述网络模型,并根据所述损失函数计算损失值;将所述损失值作为当前策略的奖励;更新单元,用于根据所述奖励更新当前策略;所述更新单元、所述第二选取单元、所述模型训练单元依次循环地进行参数传递,直至当前策略收敛。本装置的工作流程已经在本发明所公开的方法中进行了详细描述,此处不再赘述。本发明实施例提供的在机器学习中调整模型参数的方法及装置,基于输入数据来确定网络模型和相应的损失函数,基于当前策略来选取模型参数,采用模型参数对网络模型进行训练后,将损失值作为当前策略的奖励,并根据奖励来更新当前策略。随着当前策略的循环更新,每次训练网络模型时采用的模型参数也不断调整,即系统能够自动根据策略来调整模型参数,使得对模型参数的获取具有目标性,有效解决了现有技术中对模型参数进行随机选取而造成的参数调整时间较长的问题。综上所述,本发明的技术方案能够有目标地对参数进行查找,从而缩短参数调整时间、提高工作效率。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1