前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小白系列(6)| Q-Learning vs. Deep Q-Learning vs. Deep Q-Network

小白系列(6)| Q-Learning vs. Deep Q-Learning vs. Deep Q-Network

原创
作者头像
一点人工一点智能
发布2023-09-07 09:31:20
4320
发布2023-09-07 09:31:20
举报

原作:Quang Trung Luu

编译:东岸因为@一点人工一点智能

原文:小白系列(6)| Q-Learning vs. Deep Q-Learning vs. Deep Q-Network

01  引言

强化学习(Reinforcement Learning,RL)近年来受到了广泛关注,因为它在多个领域取得了成功的应用,包括博弈论、运筹学、组合优化、信息论、基于模拟的优化、控制理论和统计学。

在本教程中,我们将探讨强化学习的概念、Q-Learning、Deep Q-Learning与Deep Q-Network之间的关系。

02  强化学习

强化学习(Reinforcement Learning,RL)是机器学习的一个子集,其中智能体通过与环境的交互来学习获取实现目标的最佳策略。与依赖于摄取和处理数据的监督式机器学习算法不同,强化学习不需要数据来学习。相反,智能体通过与环境的交互和获得的奖励来做出更好的决策。在强化学习中,目标是随着时间的推移最大化累积奖励,智能体通过反复尝试和错误来选择获取最高奖励的动作。

下图说明了智能体在强化学习中如何与环境进行交互:

图片
图片

以马里奥游戏为例。如果游戏角色采取随机动作,比如向左移动,它可能会根据该动作获得奖励。在采取行动之后,游戏角色(马里奥)将处于一个新的状态,这个过程将重复,直到马里奥到达关卡的终点或者输掉游戏。这个过程将重复多次,直到马里奥通过最大化奖励来学会在环境中导航。通过这个试错的过程,马里奥将学会哪些动作会导致更高的奖励,并相应地调整策略以实现完成关卡的目标。

图片
图片

简而言之,强化学习是利用经验来做出最优决策的科学。该过程包括以下简单的步骤:

· 观察环境

· 使用某种策略做出行动决策

· 执行行动

· 根据行动获得奖励或惩罚

· 从经验中学习并改进策略

· 重复这个迭代过程,直到找到最优策略

强化学习算法可以分为两种类型:model-based和model-free。

model-based的算法使用transition和奖励函数估计最优策略。换言之,它是学习环境动态的模型,并使用它来预测未来的状态和奖励。

另一方面,model-free的算法不使用或估计环境的动态。相反,它通过试错直接估计最优策略,使用从环境中获得的奖励来指导决策。这使得model-free算法更适用于具有复杂动态的难以准确建模的环境。

03  Q-Learning

3.1 Q-Learning是什么?

Q-Learning是一种model-free、基于值(value)的、off-policy算法,用于在给定环境中找到智能体的最优策略。该算法根据智能体的当前状态确定最佳的行动序列。Q-Learning中的“Q”代表质量(quality),表示如何通过最大化未来奖励来获得有价值的行动。

作为一种基于模型的算法,Q-Learning不需要了解转移和奖励函数。它通过试错直接估计最优策略,使用从环境中获得的奖励来指导决策。算法根据特定的(状态,动作)对收到的奖励和下一个状态的估计值来更新Q值。通过根据观察到的奖励反复更新Q值,Q-Learning可以收敛到一个随时间累积奖励最大化的最优策略。

作为一种基于值(value)的算法,Q-Learning训练值函数来学习每个状态下哪些动作更有价值,并相应地选择最优动作。值函数根据从环境中获得的奖励进行迭代更新,通过这个过程,算法可以收敛到一个随时间累积奖励最大化的最优策略。

作为一种off-policy算法,Q-Learning评估和更新的策略与采取行动所使用的策略不同。具体而言,Q-Learning使用ε-贪心策略,其中智能体以概率1-ε选择具有最高Q值的动作,并以概率ε选择随机动作。这种探索策略可以确保智能体持续探索环境并发现可能导致更高奖励的新的(状态,动作)对。

Q值根据采取的行动所获得的奖励进行更新,哪怕它不是根据当前策略的最优行动。通过根据每个状态中最高Q值的行动更新Q值,即使与训练期间采取行动所使用的策略不同,Q-Learning也可以收敛到最优策略。

3.2 Q-Learning的工作原理

当智能体暴露于环境中并通过执行不同的动作获得不同的奖励时,值会根据以下方程进行更新:

图片
图片

在这个情况下,Q(s,a) 代表当前的Q值,Q_{new}(s,a) 代表更新后的Q值,\alpha 是学习率,R(s,a) 代表奖励,\gamma 是一个介于[0,1]之间的数,用于随着时间的推移对奖励进行折扣,这是基于一个假设:在开始时的动作比在结束时更重要(这个假设在许多实际应用中得到了证实)。

在其最简单的形式中,Q值是一个以状态为行、动作为列的表格(或矩阵)。Q表格被随机初始化,智能体开始与环境进行交互,并测量每个动作的奖励。然后,它计算观察到的Q值并更新Q表格。以下伪代码总结了Q学习的工作原理:

图片
图片

3.3 示例

让我们看一个简单的例子,以了解Q-Learning的工作原理。我们的智能体是一只老鼠,必须穿过迷宫并到达终点(它的家)。迷宫中有地雷,老鼠每次只能移动一个方格。如果老鼠踩到地雷,它就会死亡。老鼠希望以最短的时间到家:

图片
图片

奖励系统如下:

· 老鼠每走一步失去1分。这样做是为了让老鼠尽快找到最短路径回到家。

· 如果老鼠踩到地雷,失去100分,游戏结束。

· 如果老鼠获得能量(黄色闪电图标),获得1分。

· 如果老鼠到达家,奖励100分。

老鼠在每个非边缘方块上有四个可能的动作:(↑,↓,→或←)(向上、向下、向右或向左移动)。状态是老鼠在迷宫中的位置。

有了所有这些信息,我们可以将Q表初始化为一个大小为5×4的矩阵,其中行代表老鼠的可能状态(位置),列代表可能的动作(向4个方向移动)。最初,我们的老鼠对环境(迷宫)一无所知,所以它会选择一个随机动作,假设我们的机器人对环境一无所知。因此,机器人选择一个随机动作,比如向右移动。

图片
图片

利用Bellman方程,我们现在可以更新起始位置向右移动的Q值。我们将一遍又一遍地重复这个过程,直到学习停止。这样,Q表将会被更新。例如,与老鼠当前位置对应的下一个Q表如下所示:

图片
图片

04  Deep Q-Learning和Deep Q-Network

Q-Learning的一个主要缺点是在处理大状态空间时难度太大,因为Q表的大小随着状态和动作的数量呈指数增长。在这种情况下,算法计算成本太高,并且需要大量内存来存储Q值。想象一下一个具有1000个状态和每个状态下有1000个动作的游戏。我们将需要一个拥有一百万个单元格的表格。而这与国际象棋或围棋相比,是一个非常小的状态空间。此外,Q-Learning不能在未知状态下使用,因为它无法从先前的状态中推断出新状态的Q值。这带来了两个问题:

首先,随着状态数量的增加,保存和更新该表所需的内存量将增加。

其次,探索每个状态以创建所需的Q表所需的时间量将是不现实的。

为了解决这个问题,一种替代方法是将Q-Learning与深度神经网络相结合。这种方法被称为Deep Q-Learning(DQL)。DQL中的神经网络充当每个(状态,动作)对的Q值近似器。

神经网络将状态作为输入,并输出所有可能动作的Q值。下图说明了在评估Q值时Q-Learning和Deep Q-Learning之间的差异:

图片
图片

基本上,Deep Q-Learning用神经网络替代了常规的Q表。神经网络将输入状态映射到(动作,Q值)对,而不是将(状态,动作)对映射到Q值。

2013年,DeepMind推出了Deep Q-Network(DQN)算法。DQN旨在学习从原始像素开始玩Atari游戏。这是强化学习领域的一项突破,为未来的发展铺平了道路。术语“Deep Q-Network”指的是他们DQL架构中的神经网络。

以下是DQN的工作步骤:

· 环境(Environment):DQN与一个具有状态、动作空间和奖励函数的环境进行交互。DQN的目标是学习最优策略,以最大化随时间累积的奖励。

· 回放记忆(Replay Memory):DQN使用一个回放记忆缓冲区来存储过去的经验。每个经验是一个元组(状态、动作、奖励、下一个状态),表示从一个状态转移到另一个状态的单个转换。回放记忆将这些经验存储起来,以便以后随机采样。

· 深度神经网络(Deep Neural Network):DQN使用一个深度神经网络来估计每个(状态、动作)对应的Q值。神经网络以状态作为输入,并输出每个动作的Q值。该网络被训练以最小化预测Q值和目标Q值之间的差异。

· ε-贪婪探索(Epsilon-Greedy Exploration):DQN使用ε-贪婪探索策略来平衡探索和利用。在训练过程中,智能体根据概率ε选择一个随机动作,并根据概率(1-ε)选择具有最高Q值的动作。

· 目标网络(Target Network):DQN使用一个单独的目标网络来估计目标Q值。目标网络是主神经网络的一个副本,其参数是固定的。目标网络定期更新,以防止Q值的过高估计。

· 训练(Training):DQN使用Bellman方程来估计最优Q值,并训练神经网络。损失函数是预测值和目标值之间的均方误差。目标Q值使用目标网络和Bellman方程计算。神经网络的权重使用反向传播和随机梯度下降进行更新。

· 测试(Testing):在训练后,DQN使用学习到的策略来进行环境决策。智能体根据给定状态选择具有最高Q值的动作。

总之,DQN通过使用深度神经网络估计Q值、回放记忆缓冲区存储过去的经验以及使用目标网络防止Q值过高估计来学习最优策略。在训练过程中,智能体使用ε-贪婪探索策略,并在测试过程中选择具有最高Q值的动作。

05  三类算法区别汇总

以下表格展示了Q-Learning、Deep Q-Learning和Deep Q-Network之间的区别:

图片
图片

06  总结

在这篇简短的文章中,我们探讨了强化学习的概述,包括其定义和目的。此外,我们深入了解了一些重要的强化学习算法,即Q-Learning、Deep Q-Learning和Deep Q-Network,概述了它们在决策过程中的基本概念和作用。

请注意,这只是对强化学习算法的概述,实际上还有其他许多算法和技术可以用于强化学习。强化学习是一个广泛而复杂的领域,不断涌现出新的研究和发展。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01  引言
  • 02  强化学习
  • 03  Q-Learning
    • 3.1 Q-Learning是什么?
      • 3.2 Q-Learning的工作原理
        • 3.3 示例
        • 04  Deep Q-Learning和Deep Q-Network
        • 05  三类算法区别汇总
        • 06  总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档