Q-Learning强化学习Demo

强化学习及Q-Learning算法的简单理解

首先明确学习的概念,学习是系统为了适应环境而做出的长久的变化,以便在未来更有效率的处理类似的问题
强化学习就是通过算法和训练,让程序的产生相应的变化,未来更好地处理类似问题。
Q-Learning就是其中一种简单的系统实现,通过Q-Table的不断更新,来产生长久的变化。

强化学习主要分为两部分:

  1. 学习系统本身(即学习程序)
  2. 环境(即学习程序要解决的问题所处的环境)

强化学习的流程:

  1. 系统判定当前状态,根据策略采取行动
  2. 系统获得环境的反馈
  3. 系统根据反馈,更新策略
  4. 重复上述步骤,直到问题解决

强化学习的特点:

  1. 强化学习是一种无监督学习
  2. 在状态S下,不同的行动A会有不同的反馈R
  3. 反馈R的获得,通常是有延时的
  4. 当前行动A,会对系统后续的行为产生影响

在强化学习中,通常用Q(S, A)来表示状态S下,采取动作A所带来的价值,所以这个算法就用Q-Learning作了它的名字。

Q-Learning核心思想:

关键点:状态、策略、行动、反馈

  1. 通过Q-Table来记录每个状态S可以采用的行动A,Q-Table是一个二维矩阵,每一行代表一个状态,每一列代表一个行动,Q(S,A)的值表示在状态S下,采取行动A的权重(或者说成是能取得的收益)。
  2. 特定的策略,在状态S下,通过Q-Table和策略,决定行动A;通常使用的策略是,在状态S下,找到Q(S, A)值最大的那一个A作为当前行动,为避免初始状态下的局部最优情况,通常还会引入随机性。
  3. 反馈的获得,可以通过「反馈表」或者是「反馈算法」来获得环境对行动A的反馈R(S, A)。R(S, A)表示在状态S下,采取行动A,获得的反馈。
  4. 策略更新,通过贝尔曼方程进行计算,更新Q-Table

核心概念:

  • 状态-State,用S表示
  • 行动-Action,用A表示
  • 反馈-Reward,用R表示

stairs.png

以上图为例:

机器人娃娃的目标是到达楼梯顶部T

  • 当前状态(即S)为3,
  • 可采取的行动(即A)有"上"和"下"两种,
  • 只有到达楼梯顶部时,我们给它的反馈(即R)为1,其他动作的即时反馈都为0(这个就是我们的反馈策略)
  • 机器人娃娃不停的探索,直到它走到了T;每走一步,都会更新Q-Table;
  • 走到T的这个动作所获得的奖励(Reward),会在后面的训练过程中,逐渐传递到前面的每一个State(需要加入随机,不然会出现局部最优问题)。就像是你从台阶5走到台阶6的时候,会得到现金,那么你就会总想到达台阶5,以此类推。

我们可以像下面一样,构造一个Q-Table

状态
台阶1 0 0
台阶2 0 0
台阶3 0 0
台阶4 0 0
台阶5 0 0

初始值都为0,是因为开始的时候,每一步的价值对我们都是一样的
类似的,我们可以构造一个R-Table,用来查看我们每一个行动带来的价值,即反馈R

状态
台阶1 -1 0
台阶2 0 0
台阶3 0 0
台阶4 0 0
台阶5 0 1

R-Table中,R(台阶1,下)的值为-1,表示这个动作不可执行
R(台阶5, 上)的值为1,因为这个动作让我们到达了目标
根据上面的两个表,我们不停的采取行动,然后根据获得的反馈更新Q-Table,直到我们可以得到一个训练好的Q-Table,通过这个Q-Table,机器人娃娃就能以最效率的方式到达目的地。

Q-Table更新公式:

Q ( S , A ) = ( 1 − α ) Q ( S , A ) + α [ R ( S , A ) + γ A ′ m a x Q ( S ′ , A ′ ) ] Q(S, A)=(1-\alpha)Q(S, A)+\alpha[R(S, A) + \gamma\mathop{}_{A^{'}}^{max}Q(S^{'}, A^{'})] Q(S,A)=(1α)Q(S,A)+α[R(

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值