Q-Learning(强化学习)|机器学习

简介: Q-Learning(强化学习)|机器学习

强化学习

什么是强化学习?

我们在之前接触过了监督学习和无监督学习,强化学习可以看作是不同于二者的另一类算法,强化学习让计算机从什么都不懂的时刻开始,通过不断地尝试,从错误中学习,找到一种规律,能够掌握达到目的的方法。


强化学习的思想就类似于我们去训练一只狗,一开始它听不懂任何我们下达的指示,但是我们可以在每次说出指令并且它做出正确动作的时候,都给它一定的奖励,否则没有奖励,让它知道对错,最终每次都能够直接作出可以得到奖励的动作(正确的反应)。


与训练动物不同的是,我们所要训练的是计算机并不是一个活体,但是我们要知道电脑也是“脑”我们总会有方法来找到训练计算机的方式。


强化学习的核心

根据我们上面的介绍,很容易可以知道强化学习的核心就在于通过“行为”得到“奖励”,所以我们需要一个裁判,对计算机的行为进行打分。


这里与之前我们了解到的监督学习不同之处在于,监督学习中,我们事先知道“行为”以及对应的“奖励”是什么,但是强化学习中,要通过一次次在环境中的尝试, 获取这些“行为”和“奖励”, 然后再学习通过哪些“行为”能够对应哪些“奖励”, 通过学习到的这些规律,尽可能地选择带来高分的“行为”。


Q-Learning

Q-Learning的决策


Q-Learning是一种通过表格来学习的强化学习算法


先举一个小例子:

假设小明处于写作业的状态,并且曾经没有过没写完作业就打游戏的情况。现在小明有两个选择(1、继续写作业,2、打游戏),由于之前没有尝试过没写完作业就打游戏的后果,所以小明选择打游戏、继续打游戏、接着打游戏。最终当父母回来发现小明没有写完作业就在打游戏,小明获得了一次接受男女混合双打的奖励。这给小明留下了深刻的印象,也明白了这不是一个好的做法。对于这个小的例子,我们的Q-Learning会怎么做呢?


首先我们定义两个内容:当前的状态S,可以进行的行为a,则有如下的表示形式:


  • 小明现在处于写作业的状态S1,有两个行为打游戏a1和写作业a2,在状态下两种行为对应的得分分别为-2和2,我们可以用Q(S1,a1)=-2和Q(S1,a2)=2来表示,对应的表格如下,我们可以把这个表格称为Q表。

image.png

很显然对于状态S1小明应该选择a2作为要选择的行为,然后状态更新为S2。


  • 当小明处于状态S2的时候,依然会有行为打游戏a1和写作业a2,和上面的思想一样,我们依旧要选择一个得分高的行为,对应的表格如下:


image.png

接着还会有状态S3、S4等等,每次我们都重复上面的过程,这就是Q-Learning算法的决策过程。


Q-Learning的更新


Q-Learning的更新策略使用了贝尔曼方程(也叫动态规划方程)作为方法来进行算法的更新,下面来了解一下贝尔曼方程:

image.png

式子中的各项意义如下

image.png

每次我们就是通过这样的方式来对Q-Learning算法中的Q表来进行更新。


Q-Learning算法步骤

  1. 初始化Q table为0
  2. 每一次遍历,随机选择一个状态作为起点
  3. 在当前状态 (S) 的所有可选的行动中选择一个 (a)
  4. 移动到下一个状态 (S’)
  5. 在新状态上选择 Q 值最大的那个行动 (a’)
  6. 用 Bellman Equation 更新 Q-table
  7. 将新状态设置为当前状态重复第 2~6 步
  8. 如果已经到了目标状态就结束


image.png

相关文章
|
1月前
|
机器学习/深度学习 算法 搜索推荐
机器学习方法之强化学习
强化学习是一种机器学习方法,旨在通过与环境的交互来学习如何做出决策,以最大化累积的奖励。
28 4
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习、深度学习、强化学习和迁移学习简介、相互对比、区别与联系。
机器学习、深度学习、强化学习和迁移学习都是人工智能领域的子领域,它们之间有一定的联系和区别。下面分别对这四个概念进行解析,并给出相互对比、区别与联系以及应用场景案例分析。
35 1
|
4月前
|
机器学习/深度学习 算法 搜索推荐
机器学习方法之强化学习
强化学习是一种机器学习方法,旨在通过与环境的交互来学习如何做出决策,以最大化累积的奖励。
63 2
|
3月前
|
机器学习/深度学习 算法 Python
强化学习(Reinforcement Learning, RL)** 是一种机器学习技术,其中智能体(Agent)通过与环境(Environment)交互来学习如何执行决策以最大化累积奖励。
强化学习(Reinforcement Learning, RL)** 是一种机器学习技术,其中智能体(Agent)通过与环境(Environment)交互来学习如何执行决策以最大化累积奖励。
|
4月前
|
机器学习/深度学习 算法 TensorFlow
强化学习是一种通过与环境交互来学习最优行为策略的机器学习方法。
强化学习是一种通过与环境交互来学习最优行为策略的机器学习方法。
|
4月前
|
机器学习/深度学习 数据采集 分布式计算
【机器学习】XGBoost: 强化学习与梯度提升的杰作
在机器学习的广阔领域中,集成学习方法因其卓越的预测性能和泛化能力而备受瞩目。其中,XGBoost(Extreme Gradient Boosting)作为梯度提升决策树算法的杰出代表,自其诞生以来,便迅速成为数据科学竞赛和工业界应用中的明星算法。本文旨在深入浅出地介绍XGBoost的核心原理、技术优势、实践应用,并探讨其在模型调优与解释性方面的考量,为读者提供一个全面且深入的理解框架。
110 2
|
4月前
|
机器学习/深度学习 分布式计算 算法
在机器学习项目中,选择算法涉及问题类型识别(如回归、分类、聚类、强化学习)
【6月更文挑战第28天】在机器学习项目中,选择算法涉及问题类型识别(如回归、分类、聚类、强化学习)、数据规模与特性(大数据可能适合分布式算法或深度学习)、性能需求(准确性、速度、可解释性)、资源限制(计算与内存)、领域知识应用以及实验验证(交叉验证、模型比较)。迭代过程包括数据探索、模型构建、评估和优化,结合业务需求进行决策。
49 0
|
5月前
|
机器学习/深度学习 人工智能 运维
|
5月前
|
机器学习/深度学习 人工智能 算法
【Python 机器学习专栏】强化学习在游戏 AI 中的实践
【4月更文挑战第30天】强化学习在游戏AI中展现巨大潜力,通过与环境交互和奖励信号学习最优策略。适应性强,能自主探索,挖掘出惊人策略。应用包括策略、动作和竞速游戏,如AlphaGo。Python是实现强化学习的常用工具。尽管面临训练时间长和环境复杂性等挑战,但未来强化学习将与其他技术融合,推动游戏AI发展,创造更智能的游戏体验。
300 0
|
5月前
|
机器学习/深度学习 算法 TensorFlow
【Python机器学习专栏】强化学习在Python中的实现
【4月更文挑战第30天】本文介绍了如何在Python中实现强化学习算法,涉及安装gym和tensorflow库,创建CartPole环境。文中定义了一个Agent类,包含策略网络和值函数网络,并提供了训练和测试智能体的函数。通过与环境交互,智能体不断学习优化策略,以达到稳定控制小车的目标。这为理解及应用强化学习奠定了基础。
95 0
下一篇
无影云桌面