概述
强化学习的知识储备:
都为笔者自己理解,加上笔者刚接触这个领域不久,因此可能存在理解偏差,希望可以和大家多多讨论,写这个知识储备的目的就是记录一下自己常用的知识,便于回顾以及查找。毕竟自己记录的知识,回顾起来自己写的什么意思最容易理解。
1. Behavior Policy(行为策略 )和Target Policy(目标策略)
-
Behavior Policy
: 行为策略是用来与环境互动产生数据的策略 , 即在训练过程中做决策 。例如智能体不断的与环境交互,更新Q表格中的Q值。 -
Target Policy
: 在行为策略产生的数据中不断学习、优化,即学习训练完毕后拿去应用的策略。 也就是智能体根据Q表格中的数据进行学习,判断在每个状态下发起什么动作。
2. exploitation(利用) 和 exploration (探索)
-
exploitation
:利用就是根据已有的经验去取得最大回报。比如,附近有十家餐馆,你已经去过里边的七家了,你知道这七家中红烧排骨最好吃,所以你会根据已有经验去吃红烧排骨,也不会去尝试另外的三家餐馆。这样是局部最优解。 -
exploration
:探索是指做你以前从来没有做过的事情,以期望获得更高的回报。 这时候你就要去尝试剩下的三家餐馆,看看有没有更好吃的菜,去寻找全局最优解。
3. 贪婪策略和e-greedy贪婪策略
贪婪策略
:是一个确定性的策略,每一次都选择回报价值最大的那个策略。
e-greedy贪婪策略
:是一个不确定性的策略,平衡了利用和探索,其中选取动作值函数最大的部分为利用,仍有概率去寻找全局最优解为探索部分。令e=0.1,也就是有1-0.1=0.9的概率是利用,有0.1的概率是探索。也就是选择当前最大回报的概率是0.9,去寻找全局最优解进行探索的概率是0.1.
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
最后
以上就是花痴高跟鞋为你收集整理的强化学习的知识储备【不断更新】的全部内容,希望文章能够帮你解决强化学习的知识储备【不断更新】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复