我是靠谱客的博主 花痴高跟鞋,最近开发中收集的这篇文章主要介绍强化学习的知识储备【不断更新】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

强化学习的知识储备:

都为笔者自己理解,加上笔者刚接触这个领域不久,因此可能存在理解偏差,希望可以和大家多多讨论,写这个知识储备的目的就是记录一下自己常用的知识,便于回顾以及查找。毕竟自己记录的知识,回顾起来自己写的什么意思最容易理解。

1. Behavior Policy(行为策略 )和Target Policy(目标策略)

  • Behavior Policy: 行为策略是用来与环境互动产生数据的策略 , 即在训练过程中做决策 。例如智能体不断的与环境交互,更新Q表格中的Q值。

  • Target Policy: 在行为策略产生的数据中不断学习、优化,即学习训练完毕后拿去应用的策略。 也就是智能体根据Q表格中的数据进行学习,判断在每个状态下发起什么动作。

2. exploitation(利用) 和 exploration (探索)

  • exploitation:利用就是根据已有的经验去取得最大回报。比如,附近有十家餐馆,你已经去过里边的七家了,你知道这七家中红烧排骨最好吃,所以你会根据已有经验去吃红烧排骨,也不会去尝试另外的三家餐馆。这样是局部最优解。

  • exploration :探索是指做你以前从来没有做过的事情,以期望获得更高的回报。 这时候你就要去尝试剩下的三家餐馆,看看有没有更好吃的菜,去寻找全局最优解。

3. 贪婪策略和e-greedy贪婪策略

  • 贪婪策略:是一个确定性的策略,每一次都选择回报价值最大的那个策略。
[pi (a|s)= begin{cases} 1, & text if a = max_a Q(s,a) \ 0, & text{otherwise} end{cases} ]
  • e-greedy贪婪策略:是一个不确定性的策略,平衡了利用和探索,其中选取动作值函数最大的部分为利用,仍有概率去寻找全局最优解为探索部分。令e=0.1,也就是有1-0.1=0.9的概率是利用,有0.1的概率是探索。也就是选择当前最大回报的概率是0.9,去寻找全局最优解进行探索的概率是0.1.
[pi (a|s)= begin{cases} 1-e, & text if a = max_a Q(s,a) \ e, & text{otherwise} end{cases} ]

4. On-Policy(Sarsa)&Off-Policy(Q-learning)

  • On-Policy:典型的算法就是Sarsa,获取数据的动作和最终策略的动作是一致的。
# Sarsa 算法
initialize Q(s,a) randomly
for each episode:
    initialize state s;
    choose action a from s using ε-greedy strategy;
    while s is not terminal:
        observe reward r and next state s';
        choose a' from s' using ε-greedy strategy;
        Q(s,a) = Q(s,a) + α[r + γ*Q(s',a') - Q(s,a)];
        s = s', a = a';
  • Off-Policy : 典型的算法就是Q-learning,获取数据的动作和最终策略的动作不一定一致,是因为有一个随机的概率去选择探索全局最优解。
# Q-learning 算法
initialize Q(s,a) randomly
for each episode:
    initialize state s;
    while s is not terminal:
        choose action a from s using ε-greedy strategy;
        observe reward r and next state s';
        Q(s,a) = Q(s,a) + α[r + γ*maxQ(s',a') - Q(s,a)];
        s = s';

总结:两个算法的主要区别就是在倒数第二行Q值更新那里,Q-learning在计算下一状态的预期收益时利用了max操作,也就是直接选择下一状态的最优动作,获取最大回报。但是实际过程中因为有e-greedy策略,有小概率选择探索,不会去选择当前最优的动作,所以学习时的policy和生成样本的policy不一定相同,为off-policy算法。Sarsa则是直接选择下一次动作去执行,就算下一步是选择探索,并且掉进了悬崖(迷宫问题,掉进悬崖就给一个负的reward),它也会去执行,会把悬崖附近的Q值更新为负的,因此在迷宫问题中,它会离悬崖远远的。因为学习时的policy和预测时的policy一致,因此为on-policy

最后

以上就是花痴高跟鞋为你收集整理的强化学习的知识储备【不断更新】的全部内容,希望文章能够帮你解决强化学习的知识储备【不断更新】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部