Q-learing

一.概述

      Q-Learning是强化学习算法中value-based的算法,Q即为Q(s,a)就是在某一时刻的 s 状态下(s∈S),采取 动作a (a∈A)动作能够获得收益的期望,环境会根据agent的动作反馈相应的回报reward r,所以算法的主要思想就是将State与Action构建成一张Q-table来存储Q值,然后根据Q值来选取能够获得最大的收益的动作。

二. 引例

下图,是一个迷宫游戏

 

游戏规则如下:

按步积分系统来评估。

你在每一步都会失去 1 分(每一步失去的分数帮助智能体训练的更快)

如果碰到了一个敌人,你会失去 100 分,并且训练 episode 结束。

如果进入到城堡中,你就获胜了,获得 100 分。

我们的目标是创建一个智能体,训练这个智能体用最短路径避开障碍到达终点。

三. Q表简介 

分析游戏可知,每个状态(方块)允许四种可能的操作:左移、右移、上移、下移。根据可能的操作可得到如下网格,其中「0」代表不可能的移动。

将上述网格进行转化,可得到本案例的Q表,如下:

 

其中,Q-table(「Q」代表动作的「质量」)。每一列将代表四个操作(左、右、上、下),行代表状态。每个单元格的值代表给定状态和相应动作的最大未来奖励期望。

四.公式推导 

Q函数(Q-function)使用贝尔曼方程和采用两个输入:状态(s)和动作(a)。

环境的状态S, t时刻环境的状态St是它的环境状态集中某一个状。

个体的动作A, t时刻个体采取的动作At是它的动作集中某一个动作。

环境的奖励R, t时刻个体在状态St采取的动作At对应的奖励𝑅𝑡+1会在t+1时刻得到。

𝛾是奖励衰减因子,在[0,1]之间,γ越接近于1代表它越有远见会着重考虑后续状态的的价值,当γ接近0的时候就会只考虑当前的利益的影响。所以从0到1,算法就会越来越会考虑后续回报的影响。

将上述公式,变形可得到Q函数中使用的公式: 

五.算法流程

步骤 1:初始化 Q-table,一般先将表中数据都置为0。

步骤 2:根据Q表选择一个动作。(一开始的时候从起始点,你可以任意选择一个动作,因为一开始我们对环境一无所知)。

步骤3:执行动作

步骤 4-5:更新 Q 函数

我们需要迭代进行步骤2至5,直到得到一张满意的Q表。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值