初学者的Q学习指南

167 阅读4分钟

A Beginner's Guide to Q Learning
Alexander Andrewsvia Unsplash

为了让你理解什么是Q学习,你需要一些强化学习的知识。

强化学习是机器学习的分支,它的目的是训练一个模型,利用为特定问题创建的一系列解决方案返回一个最佳解决方案。

该模型将有各种解决方案,当它选择正确的解决方案时,会产生一个奖励信号。如果模型的表现更接近目标,就会产生一个正的奖励;但是,如果模型的表现离目标更远,就会产生一个负的奖励。

强化学习包括两种类型的算法

  1. 无模型。这排除了环境的动态变化,以估计最佳政策。
  2. 基于模型。 这包括环境的动态变化来估计最佳策略。

什么是Q-Learning?

Q-Learning是一种无模型的强化学习算法。它试图随机地找到能使奖励最大化的下一个最佳行动。该算法根据一个方程式更新价值函数,使其成为一个基于价值的学习算法。

这就像当你试图找到一个解决你当前情况的方案,以确保你获得最大的利益。该模型可以生成自己的规则,甚至在提供的政策之外进行操作。暗示不需要政策,使其成为一个非政策学习者。

非政策性学习者是指模型学习最佳政策的价值,而不考虑代理人的行动。政策性学习者是指模型学习代理人所执行的政策的价值,找到一个最佳政策。

让我们来看看基于推荐系统的广告。广告没有一天是基于你的搜索历史或以前的手表。然而,Q-Learning可以更进一步,优化广告推荐系统,推荐已知经常一起购买的产品。奖励信号是如果用户购买或点击推荐的产品。

Q-Learning中的 "Q "代表质量。它代表一个给定的行动在获得奖励方面的有效性。

贝尔曼方程

贝尔曼方程是以理查德-E-贝尔曼命名的,他被称为动态编程之父。动态编程的目的是简化复杂的问题/任务,将其分解为较小的问题,然后在攻击较大的问题之前递归地解决这些较小的问题。

贝尔曼方程确定了一个特定状态的价值,并得出了在该状态下的价值的结论。Q函数使用贝尔曼方程并使用两个输入:状态(s)和行动(a)。

如果我们知道每个行动的所有预期回报,我们怎么知道采取哪种行动呢?你可以选择产生最佳奖励的行动序列,我们可以把它表示为Q值。使用这个方程式。

Bellman Equation

  • Q(s, a)代表在状态 "s "和选择行动 "a "时所产生的Q值。
  • 这是由r(s, a)计算出来的,r(s, a)代表收到的即时奖励+来自状态's'的最佳Q值。
  • Equation 是控制和决定对当前状态的重要性的折扣系数。

该方程由当前状态、学习率、折扣系数、与该特定状态相关的奖励和最大预期奖励组成。这些都是用来寻找代理人的下一个状态的。

什么是Q表?

你可以想象Q-learning提供的不同路径和解决方案。因此,为了管理和确定哪个是最好的,我们使用Q-表。

Q-表只是一个简单的查找表。它的创建是为了让我们能够计算以及管理最大的预期未来回报。我们可以很容易地确定环境中每个状态的最佳行动。在每个状态下使用贝尔曼方程,我们得到预期的未来状态和奖励,然后将其保存在一个表中,以便与其他状态进行比较。

比如说

状态。行动。
updownright left
00100
..
250-2.07469-2.34655-1.99878-2.03458
..
50011.479307.2346713.472909.53478

Q-learning过程

1.初始化Q-表

第一步是创建Q表

  • n = 行动的数量
  • m = 状态的数量

例如,n可以是左、右、上、下,而m可以是开始、空闲、正确的行动、错误的行动,以及游戏的结束。

2.选择并执行一个行动

我们的Q表应该全部为0,因为没有执行过任何行动。然后,我们选择一个行动,并将其更新到Q表的正确部分。这说明该行动已经被执行。

3.使用贝尔曼方程计算Q值

使用贝尔曼方程,计算实际奖励的价值和刚刚执行的行动的Q值。

4.继续步骤2和3

重复步骤2和3,直到一个情节结束或Q表被填满。

flow chart of q learning