模仿学习算法:Data Aggregation Approach: DAGGER算法——Mixing policy
论文:
《A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning》
算法描述:
=====================================================
Mixing Policy:
个人理解:
imitation learning的大意就是有一个expert专家,你给它输入状态,他就能给你返回一个action,这个action是质量比较好的action,也就是说expert的policy会更优,但是我们现在需要根据expert的经验来训练一个自己的控制器(一个输入state就可以输出一个不错的action的)。对于这个问题最intuitively的解法就是使用我们的需要训练的policy去环境交互,然后采集大量的episode数据,再把这些采集到的数据(state)输入到expert策略中得到expert的action,然后使用监督学习算法来进行拟合,以此来训练我们自己的policy;但是这种使用监督学习方法来根据expert的策略训练我们自己policy难以得到很好的效果,往往随着策略的rollout展开会随着时间步的增加其策略的action和expert的策略action会更加的偏离,因此该种监督学习的方式难以根据expert的policy来训练出一个效果不错的自己的policy,也是因此就有了其他的一些方法,其中一个效果不错的算法就是这里的Data Aggregation Approach: DAGGER算法。
在DAGGER算法中有一个操作是mixing policy,对于这一步操作个人一直都不是很能理解的,因为如果expert的policy是一个已知参数的神经网络,那么我们自然可以采用加权合并的方式来计算这个mixing policy,但是在实际设定中这个expert往往是human being甚至是一些无法得到其内部情况的一个黑盒,因此这里就不能采用加权合并的方式来获得这个mixing policy。对此,给出一个个人的观点,那就是这里的mixing policy其实就是在执行时随机采样,小于belta概率的话就执行expert的策略来进行采样,否则就使用自己的策略来进行采样,以此来达到mixing policy的效果。
关于belta的值的设定:
我们看到论文中的设置方式可以有两种,第一种是只有在第一次迭代计算时使用belta=1,其他迭代次数时belta=0;第二种是设置ßi=pi-1,i=1,2,3,4,5.....,这里可以设置p的取值为0.1到0.9。 第一种设置要比第二种设置要简单,往往效果也不错,这里要说明一下,在论文中一般的迭代次数比较少,如20次迭代,当然原始论文中的拟合函数都是比较简单的分离器,但是这也能体现出该种方法往往不需要太多次数的迭代;第一种设置的demo代码:https://gitee.com/devilmaycry812839668/Imitation-Learning-Dagger-Torcs
根据论文中的原始实验,采用第二种方式设置belta时p时往往选择小一些的会有更好的效果,如上面的实验效果图中p=0.5要优于p=0.9。
=====================================================
posted on 2023-09-19 07:58 Angry_Panda 阅读(928) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)