系列文章目录

强化学习


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题 。


一、强化学习是什么?

强化学习是智能体(Agent)以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏,强化学习不同于连接主义学习中的监督学习,主要表现在强化信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动作。由于外部环境提供的信息很少,RLS必须靠自身的经历进行学习。通过这种方式,RLS在行动-评价的环境中获得知识,改进行动方案以适应环境。
理解:强化学习其实就是和人一样,一开始是什么都不懂的,所谓吃一堑长一智,他像一个新生的孩子,它在不断的试错过程中慢慢知道了做什么有奖励,做什么对得到奖励会有一定的价值,做什么会被打。在这个过程中不会像监督学习一样有个师傅带你,完全需要自己去摸索,就像修仙宗门一样,有背景的宗门弟子是继承掌门之位(监督),创立宗门的人是开山立派(强化),必须一步一个脚印去不断成长。

其实强化学习吸引我的就是因为它主要使用在游戏上,例如:
在 Flappy bird 这个游戏中,我们需要简单的点击操作来控制小鸟,躲过各种水管,飞的越远越好,因为飞的越远就能获得更高的积分奖励。

机器有一个玩家小鸟——Agent
需要控制小鸟飞的更远——目标
整个游戏过程中需要躲避各种水管——环境
躲避水管的方法是让小鸟用力飞一下——行动
飞的越远,就会获得越多的积分——奖励
在这里插入图片描述

二、核心算法(免模型学习) QLearning

1.未记录学习心得

这是大佬的心得:https://zhuanlan.zhihu.com/p/24808797
总的理解:QLearning从初始化开始就一直只有一张表,然后它要做什么决策基本都是查表。表里装的两个参数一般是x轴(每列代表一个动作(决策)),状态为当前位置或者坐标:如果是一维的环境,比如🐖-----🚩终点这种,要🐖走到🚩,我的🐖只有两种动作:left,right,状态却有很多种,但都是一维的状态,因为状态代表的是环境,比如现在我的🐖在0这个位置,如果我往right走一格,我的状态变成了1…
所以在一维小游戏中的初始化状态是:

    left  right
0   0.0    0.0
1   0.0    0.0
2   0.0    0.0
3   0.0    0.0
4   0.0    0.0
5   0.0    0.0

状态:在🐖-----🚩的例子里其实就是当前一维数组下标。
决策(动作):我们可以做的所有操作都被认为是决策。在🐖-----🚩的例子里,就是左右俩个方向走动。

也就是说,我们当我们站在某一个位置的时候,能做的决策最多俩个(有一些不可到达的位置)。接下来,为每种状态的每个决策都给予一个分数。我们上面说的表其实就是状态-决策表。

       left     right
0  0.000001  0.005728
1  0.000271  0.032612
2  0.002454  0.111724
3  0.000073  0.343331
4  0.000810  0.745813
5  0.000000  0.000000

它的决策和前面的决策它是一种离线型的学习,因为是了解到sarsa之后才想起来写blog记录的。所以分析了下,它和sarsa很像,唯一不同就是off-policy与on-policy的不同。

总结

没得总结

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐