【强化学习Q-Learning算法学习笔记】概念整理+实例+代码解释+ppt

强化学习知识点整理,学习了莫烦python教程中的内容,并写了自己的理解,原链接在下方,非常感谢原作者分享,我整理的ppt全部内容放在文末。

代码来源:https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/blob/master/contents/1_command_line_reinforcement_learning/treasure_on_right.py
参考:https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/1-1-B-RL-methods/
https://www.cnblogs.com/LHWorldBlog/p/9249011.html

目录
1强化学习介绍
1.1强化学习的定义
1.2 强化学习实现的原理
1.3 强化学习的分类
1.4 强化学习的应用场景
2实例讲解Q-Learning算法
1.1应用场景描述
1.2解决思路
1.3计算与推导过程
3一个Q-Learning算法的程序实现
3.1 应用场景描述
3.2 解决思路
3.3 程序讲解与源码
3.4 运行结果展示与分析

(一)强化学习介绍
一、强化学习的定义

什么是强化学习?
以训练狗狗为例:
(1)狗狗在出门时乱跑,给1根肉骨头;
(2)狗狗在出门时跟紧主人,给5根肉骨头;
(3)狗狗试图咬人,不给肉骨头;
(4)狗狗表现非常温顺,给10根肉骨头。
经过这样的训练后,狗狗会怎么做呢?狗狗更可能不会在出门时乱跑,而是跟紧主人,不咬人并表现温顺。
二、强化学习实现的原理
在这里插入图片描述
在强化学习中存在交互的两方:
(1)被训练的Agent,发出不同的行为
(2)提供环境反馈的Teacher,对行为打分
在学习过程中,Teacher并不会指导Agent具体做什么、怎么做,而是在Agent的每一个Action后提供一个反馈(评分)。在多次尝试和打分后,不同行为获得的分数将收敛,Agent会根据分数选择反馈效果更好的行为发出,达到了学习的效果。
三、强化学习的分类
1.Model-free和Model-based
(1)Model-free:
不理解环境, 环境给什么就是什么。在所做的决定直接作用于实际作出的动作,想什么做什么,不会在做之前进行预想和模拟。
(2)Model-based:
理解环境,并学会用一个模型来代表环境。
相当于在Model-free的基础上,想象出一个虚拟环境,并在这个环境中进行训练的预演。
2.基于概率和基于价值
(1)基于概率:
分析所处的环境, 输出下一步要采取的各种动作的概率,然后根据概率采取行动。每种动作都有可能被选中, 只是可能性不同。即使某个动作的概率最高, 但是还是不一定会选到他。可以用来处理连续值。
(3)基于价值:
分析所处环境,输出所有动作的价值, 选择价值最高的动作。

只能用于处理离散值。
3.回合更新和单步更新
(1)回合更新:
事后复盘。一个回合开始后, 我们要等待本回合结束, 再总结这一回合中的所有转折点,并更新行为准则。
(2)单步更新:
边做边学。伴随着游戏的进行,每一步都更新, 不用等待一个回合的结束, 时刻更新行为准则。
4.在线学习和离线学习
(1)在线学习:
仿佛自己的现实人生,只能活在当下。
需要本人在场本人操作, 并且一定是本人边尝试动作边学习。仅局限在自己的当下一条时间线。
(2)离线学习:
仿佛游戏中的虚拟人生,可以随时切换身份或者跑路重来。
可以选择自己玩, 也可以选择看着别人玩,可以读档拥有其他身份的过往经验并中学习。可以不必边做边学,而是把尝试的结果保存下来,等到想学的时候再进行读档,学习自己当时的记忆。
多身份多时间可读档,多条时间线。
四、强化学习的应用场景
适用于:提供环境标量化反馈,但不提供行为方法的场景。
如:电动游戏、棋类游戏…甚至能超过人类水平。如AlphaGo大战李世石。进一步的,强化学习还可用于解释有限理性条件下的平衡态,设计推荐系统和机器人交互系统。

(二)实例讲解Q-Learning算法
一、应用场景描述

如图所示有0-5共六片区域,其中1-4区域在房间内,5在房间外。
问:如何从任何一个区域出发达到5?
在这里插入图片描述
二、解决思路
(1)构造关系图,描述区域之间的到达和奖励关系。
(2)将关系图转化为二维矩阵。
(3)对矩阵进行更新直至收敛,获得Q-Learning的状态-行为表格。
三、计算与推导过程
1.背景知识:
(1)马尔可夫决策
<1> 能够检测到理想的状态
<2> 允许多次尝试
<3> 系统的下个状态至于当前状态信息有关,而与更早之前的状态无关。在决策过程中海域当前采取的措施有关。
(2)符号集说明
S: states状态集
A: actions动作集
P: 状态转移概率
R: reward function 奖励函数
γ:折扣系数,位于[0,1)之间,表示模型的远见程度,γ越小,意味着当下的reward越比未来的重要
(3)Bellman方程
在这里插入图片描述
2.构造关系图并转为矩阵
将奖励作为图的权:
(1)能够到达5的,权值为100;
(2)不能到达5的,权值为0。
P.S.在图中,可直达的区域编号用边相连,不可直达的区域编号不会连接;
在矩阵中,可直达的区域编号在对应位置上填值,不可直达的区域编号对应位置上的值置为-1
在这里插入图片描述
在这里插入图片描述
3.执行Q-Learning算法
Step 1 给定参数γ和reward矩阵R
Step 2 令Q:=0.
Step 3 For each episode:
3.1 随机选择一个初始状态s
3.2 若未达到目标的收敛状态,则执行:
(1)在当前状态s的所有可能行为中选取一个行为a
(2)利用选定的行为a,得到下一个状态
(3)按照Bellman方程计算Q(s,a)
(4)令s:=s~
在这里插入图片描述
在这里插入图片描述

(三)一个Q-Learning算法的程序实现
一、应用场景描述

小人找宝藏

在一维空间内,有一个小人o寻找宝藏T,每次他可以选择向右(+1)或向左(-1)移动一步(在不超出两端边界范围的情况下)。宝藏的位置在一维空间的最右处。
求:小人找到宝藏的最快走法。
代码来源:https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/b

  • 15
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值