强化学习--Pytorch篇

Q_learning算法

首先祭出强化学习中的基础方法Q-Learning,算法流程如下图所示:
在这里插入图片描述
Q-learning是一个不断摸索,最终找到最优的方法。个人理解是这样的:
首先Q表是一个初值都为0 的表,被学习体只能随意摸索。当得到reward之后,乘以学习率 alpha ,更新Q表。这样,在下一次走到这一步的时候,就能够根据maxQ(s’,:)来决定选择,其 gammar可以理解为眼界,gammar取值为0~1,极端的,当gammar为1时,表示可以看到后续多步的结果;当gammar为0的时候,则表示只能看到眼前的利益。epsilon 表示贪心,假设epsilon为0.9,则表示90%的概率最选择获得最大reward的action,10%的概率选择其他action。这里选取贪心是为了避免陷入局部最优的尴尬。而maxQ(s’,:)则表示算法会朝着最快获得最大reward的方向前进。off-policy

Sarsa算法

与之相对应的是Sarsa算法,其算法流程为:
在这里插入图片描述
Q_learning 和 Sarsa算法很多地方都是相同的构架,不同之处在于Q-learning选取 m a x Q ( s ′ , : ) maxQ(s',:) maxQ(s,:),而Sarsa则是根据贪婪策略来进行选择。

Sarsa( λ \lambda λ)

Sarsa( λ \lambda λ)相比于Sarsa又多加入了一张表格,用以记录走过的路径。同时该路径上的值会随着每次迭代的进行衰减。所以在算法上,主程序循环不用进行修改,只在更新表的时候,额外在更新一个路径表格,同时让路径表格中的值进行衰减即可,算法流程图如下图所示:
在这里插入图片描述

DQN算法

前面的算法都是基于Q表的,但是在很多实际例子中,一个学习需要的状态很多,或者达到最后Reward所需的步骤很多,这都会造成Q表逐渐增大。因此,总是基于Q表的方法就有些捉襟见肘了,而神经网络确可以很好的完成这个工作,我们需要干的是给神经网络一个state,然后让他自己产生所有的action,然后在结合Q-learning算法即可。
DQN的精华还有一个Fixed-Q target, 也就是说使用两个神经网络,其中一个动态更新Q值,另一个则隔一定步骤之后在进行copyQ值,平常是冻结状态。Q估计采用的是最新的神经网络,Q现实采用的是Fix_Q的神经网络
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值