《深化浅出机器学习》之强化学习
作者头像
  • GRCC
  • 2019-11-22 08:05:52 2

所谓的强化学习,是指智能系统从环境到行为的映射学习,目标是使奖励信号(强化信号)最大化。如果某个行为策略使环境给予正向奖励,那么该行为策略被采用的可能性就会增强。

假设我们有一只小白鼠在一个迷宫外,如果它找到了正确的路径,就给予正反馈(例如糖),反之则给予负反馈(例如电击)。随着时间的推移,无论将小白鼠放在哪里,它都能找到正确的出路。

下面我们来看一个具体的例子:

假设我们有5个房间,房间编号为0到4,其中5代表出口。我们可以通过一幅图来展示它们之间的连接情况。

在这个例子中,我们的目标是找到出口。为了实现这一目标,我们为每个房间之间的通道设置了不同的奖励值。例如,如果能直接到达出口,则给予100的奖励,其他路径则不给予奖励。我们用一个矩阵来表示这些奖励值。

在这个环境中,我们引入了一个虚拟的机器人,它需要通过自我学习来找到出口。每个房间被视为一个状态(state),而从一个房间移动到另一个房间的动作被称为动作(action)。我们可以通过一个状态转移图来表示这些关系。

假设我们现在位于房间2,只能移动到房间3,而不能直接移动到房间0、1或4。从房间3可以移动到房间1、4或2;房间4可以移动到房间0、3或5。这些关系可以用一个矩阵来表示,这就是所谓的Q矩阵。Q矩阵的列代表当前状态,行代表下一个状态。例如,第三行第二列的值表示从状态2转移到状态4的收益。

Q矩阵初始值为0,因为我们已经知道了所有可能的状态。如果我们不知道有多少状态,可以从一个状态开始,并在发现新状态时扩展矩阵。

根据Q-learning公式,Q(state, action) = R(state, action) + Gamma * Max[Q(next state, all actions)],Q矩阵的值等于当前奖励加上折扣因子乘以下一状态的最大收益。

虚拟机器人将通过不断尝试来学习最佳路径。它会从一个状态转移到另一个状态,直到到达最终状态。每一轮尝试称为一个场景,机器人会在一个随机状态开始,直到到达最终状态后重新初始化,开始下一轮尝试。

Q-learning算法可以总结为以下步骤:

  1. 设定折扣因子Gamma及相关奖励矩阵R。
  2. 初始化Q矩阵为全0。
  3. 对于每一轮尝试:
    • 随机设定初始状态。
    • 当未到达目标状态时:
      • 选择一个当前状态下最高收益的动作。
      • 根据这个动作转移到下一个状态。
      • 使用公式Q(state, action) = R(state, action) + Gamma * Max[Q(next state, all actions)]更新Q矩阵的值。
      • 更新当前状态为已到达的状态。
    • 结束本轮尝试。

举个例子,假设从状态1到状态5的奖励值为100,而Gamma值为0.8,那么Q(1, 5)的值为80。

为什么要重新计算呢?因为某些状态的价值可能会发生变化,计算完成后需要更新矩阵。

通过多次迭代,最终得出的结果如图所示。经过归一化处理,矩阵的值最终变为如图所示。

强化学习到此结束。我们的虚拟机器人通过不断试错,最终学会了最优路径。

接下来讨论一些细节问题。在选择动作时,我们通常会选择当前状态下收益最大的动作。但如果存在多个最大收益的动作,就需要随机选择其中一个。为了平衡探索和利用,我们引入了ε-greedy策略。即有一定概率随机选择动作,其余情况下选择当前状态下收益最大的动作。随着学习的进行,ε的值逐渐减小,以减少随机动作的影响。

希望这些解释对你有所帮助。如果你有兴趣了解更多细节,可以继续阅读相关代码。

    本文来源:图灵汇
责任编辑: : GRCC
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
学习深化强化机器
    下一篇