【深度学习】强化学习(五)深度强化学习

文章目录

  • 一、强化学习问题
    • 1、交互的对象
    • 2、强化学习的基本要素
    • 3、策略(Policy)
    • 4、马尔可夫决策过程
    • 5、强化学习的目标函数
    • 6、值函数
    • 7、深度强化学习
      • 1. 背景与动机
      • 2. 关键要素
      • 3. 成功案例
      • 4. 挑战和未来展望
      • 5. 核心概念和方法总结

一、强化学习问题

  强化学习的基本任务是通过智能体与环境的交互学习一个策略,使得智能体能够在不同的状态下做出最优的动作,以最大化累积奖励。这种学习过程涉及到智能体根据当前状态选择动作,环境根据智能体的动作转移状态,并提供即时奖励的循环过程。

1、交互的对象

  在强化学习中,有两个可以进行交互的对象:智能体环境

  • 智能体(Agent):能感知外部环境的状态(State)和获得的奖励(Reward),并做出决策(Action)。智能体的决策和学习功能使其能够根据状态选择不同的动作,学习通过获得的奖励来调整策略。

  • 环境(Environment):是智能体外部的所有事物,对智能体的动作做出响应,改变状态,并反馈相应的奖励。

2、强化学习的基本要素

  强化学习涉及到智能体与环境的交互,其基本要素包括状态、动作、策略、状态转移概率和即时奖励。

  • 状态(State):对环境的描述,可能是离散或连续的。

  • 动作(Action):智能体的行为,也可以是离散或连续的。

  • 策略(Policy):智能体根据当前状态选择动作的概率分布。

  • 状态转移概率(State Transition Probability):在给定状态和动作的情况下,环境转移到下一个状态的概率。

  • 即时奖励(Immediate Reward):智能体在执行动作后,环境反馈的奖励。

3、策略(Policy)

  策略(Policy)就是智能体如何根据环境状态 𝑠 来决定下一步的动作 𝑎(智能体在特定状态下选择动作的规则或分布)。

  • 确定性策略(Deterministic Policy) 直接指定智能体应该采取的具体动作
  • 随机性策略(Stochastic Policy) 则考虑了动作的概率分布,增加了对不同动作的探索。

上述概念可详细参照:【深度学习强化学习(一)强化学习定义

4、马尔可夫决策过程

  为了简化描述,将智能体与环境的交互看作离散的时间序列。智能体从感知到的初始环境 s 0 s_0 s0 开始,然后决定做一个相应的动作 a 0 a_0 a0,环境相应地发生改变到新的状态 s 1 s_1 s1,并反馈给智能体一个即时奖励 r 1 r_1 r1,然后智能体又根据状态 s 1 s_1 s1做一个动作 a 1 a_1 a1,环境相应改变为 s 2 s_2 s2,并反馈奖励 r 2 r_2 r2。这样的交互可以一直进行下去: s 0 , a 0 , s 1 , r 1 , a 1 , … , s t − 1 , r t − 1 , a t − 1 , s t , r t , … , s_0, a_0, s_1, r_1, a_1, \ldots, s_{t-1}, r_{t-1}, a_{t-1}, s_t, r_t, \ldots, s0,a0,s1,r1,a1,,st1,rt1,at1,st,rt,,其中 r t = r ( s t − 1 , a t − 1 , s t ) r_t = r(s_{t-1}, a_{t-1}, s_t) rt=r(st1,at1,st) 是第 t t t 时刻的即时奖励。这个交互过程可以被视为一个马尔可夫决策过程(Markov Decision Process,MDP)
在这里插入图片描述

5、强化学习的目标函数

  强化学习的目标是通过学习一个良好的策略来使智能体在与环境的交互中获得尽可能多的平均回报强化学习的目标函数 J ( θ ) J(\theta) J(θ) 定义如下: J ( θ ) = E τ ∼ p θ ( τ ) [ G ( τ ) ] = E τ ∼ p θ ( τ ) [ ∑ t = 0 T − 1 γ t r t + 1 ] J(\theta) = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}[G(\tau)] = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\sum_{t=0}^{T-1} \gamma^t r_{t+1}\right] J(θ)=Eτpθ(τ)[G(τ)]=Eτpθ(τ)[t=0T1γtrt+1]其中, θ \theta θ 表示策略函数的参数, τ \tau τ 表示强化学习的轨迹, γ \gamma γ 是折扣率……

  • 这个目标函数表达的是在策略 π θ \pi_{\theta} πθ 下,智能体与环境交互得到的总回报的期望。(这个期望是对所有可能的轨迹进行的)
  • 总回报(Total Return)是对一个轨迹的累积奖励,引入折扣率(Discount Factor)来平衡短期和长期回报。
    • 总回报:对于一次交互过程的轨迹,总回报是累积奖励的和。
    • 折扣回报:引入折扣率,考虑未来奖励的权重。

6、值函数

  在强化学习中,为了评估策略 π \pi π 的期望回报,引入了值函数的概念,包括状态值函数状态-动作值函数
  值函数在强化学习中起到了桥梁的作用,连接了策略、状态和动作的关系。它们是智能体学习和改进的核心工具,使其能够在未知环境中获得最大的累积奖励。

  • 状态值函数 V ( s ) V(s) V(s):表示从状态 s s s 开始,执行策略得到的期望总回报。

  • 状态-动作值函数 Q ( s , a ) Q(s, a) Q(s,a):表示在状态 s s s 下执行动作 a a a 并执行策略得到的期望总回报。

7、深度强化学习

  深度强化学习是将强化学习深度学习结合在一起,强化学习来定义问题和优化目标,用深度学习来解决状态表示、策略表示和值函数建模等问题
  强化学习在早期主要关注离散且有限状态和动作的问题,通常使用表格记录策略和值函数。然而,许多实际问题中的状态和动作空间是连续且高维的,这使得传统的表格方法难以适用。为了解决这些挑战,深度强化学习(Deep Reinforcement Learning,DRL)将强化学习深度学习相结合,利用深度神经网络来有效地处理复杂的环境。

1. 背景与动机

  • 状态和动作空间的复杂性: 在很多实际问题中,状态和动作空间可能是非常庞大、连续的。

    • 数量庞大:比如围棋的棋局有 3 3 61 ≈ 1 0 170 3^361 ≈ 10^{170} 336110170 种状态,动作(即落子位置)数量为361)
    • 连续的:自动驾驶的环境包含大量的可能状态和动作
      • 状态:智能体感知到的环境状态是各种传感器数据,一般都是连续的
      • 动作:操作方向盘的方向(−90度∼ 90度)
      • 动作:速度控制(0 ∼ 300公里/小时),也是连续的
  • 深度学习的优势: 深度学习通过神经网络可以灵活地逼近复杂的函数关系,对高维连续空间的建模具有优势。

2. 关键要素

  • 策略函数的深度表示:

    • 传统的策略函数可能是基于表格的
    • 在深度强化学习中,策略函数通常由深度神经网络表示,使得智能体能够处理高维状态空间,学习复杂的决策规则。
  • 值函数的逼近:

    • 同样,值函数 V π ( s ) V_\pi(s) Vπ(s) Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) 的逼近也通过深度神经网络完成,因而能够处理大规模的状态空间,从而更好地估计策略的质量。
  • 经验回放:

    • 为了更有效地利用经验数据,深度强化学习通常使用经验回放(Experience Replay)技术,将智能体过去的经验存储在缓冲区中,然后从中随机抽样进行学习。
  • 目标网络:

    • 为了稳定训练,DRL 中常常使用目标网络(Target Network),即两个网络的参数在一定步数或周期内进行同步,这有助于减小训练中的不稳定性。

3. 成功案例

  • AlphaGo: DeepMind的AlphaGo在围棋领域实现了超越人类的水平,使用深度强化学习训练的神经网络展示了强大的决策能力。
    在这里插入图片描述
  • Atari 游戏: DQN(Deep Q-Network)在Atari 2600(雅达利)游戏上实现了超越人类玩家的表现,通过学习从像素级别的游戏画面中提取有效的状态表示。
    • Human-level control through deep reinforcement learning
    • 在这里插入图片描述

在这里插入图片描述

  • 机器人控制: DRL 应用于机器人控制,使机器人能够学习在复杂环境中执行任务,如机械臂控制、步态学习等。
    在这里插入图片描述
  • 自动驾驶: 在自动驾驶领域,DRL 被用于训练智能体以处理复杂的驾驶场景,优化车辆的决策和控制。
    在这里插入图片描述

4. 挑战和未来展望

  • 样本效率: DRL 在处理大规模连续空间时可能需要大量的样本,提高样本效率仍然是一个挑战。

  • 泛化能力: 深度强化学习在处理一些需要泛化能力的任务时可能受到限制,未来的研究也需要关注模型的泛化能力。

  • 可解释性: 深度神经网络通常被认为是黑盒模型,解释其决策过程仍然是一个开放的问题。

5. 核心概念和方法总结

  • 深度神经网络:用于表示策略和值函数,处理高维度状态和动作空间。

  • 策略梯度方法:通过优化策略的梯度直接学习策略函数的参数。

  • 值函数逼近:使用深度神经网络逼近状态值函数和状态-动作值函数。

  • 经验回放:存储和重用过去的交互经验,提高学习效率和稳定性。

  • 目标网络:引入目标网络以提高训练稳定性。

  • 探索与利用:使用随机性策略、ε-贪心策略来平衡探索和利用。


http://www.niftyadmin.cn/n/5255022.html

相关文章

【Maven】未找到有效的 Maven 安装。在配置对话框中设置主目录,或者在系统上设置 M2_HOME 环境变量。

错误显示 今天导入工程,进行clean的时候报错: 解决方法 重新设置一下maven的目录即可

论坛安装教程

Discuz!X3.1 全新安装图文教程 [复制链接] Discuz! 是腾讯旗下 Comsenz 公司推出的以社区为基础的专业建站平台,帮助网站实现一站式服务。让论坛(BBS)、个人空间(SNS)、门户(Portal)、群组…

外包干了3个月,技术退步明显。。。

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

vue如何解决el-select下拉框显示ID不显示label问题

<template><el-select v-model"searchObj.saleAreaId" change"searchClick" placeholder"请选择" class"inpt1" clearablesize"small"><el-option v-for"item in saleAreaList" :key"item.id…

Flutter实现自定义二级列表

在Flutter开发中&#xff0c;其实系统已经给我们提供了一个可靠的二级列表展开的API&#xff08;ExpansionPanelList&#xff09;&#xff0c;我们先看系统的二级列表展开效果&#xff0c;一次只能展开一个&#xff0c;用ExpansionPanelList.radio实现 由此可见&#xff0c;已经…

Linux C语言函数调用栈打印

代码 //main.c extern void func_a();int main (int argc, char *argv[]) {func_a();return 0; }//a.c #include <execinfo.h> #include <stdio.h> #include <stdlib.h>void print_trace (void){void *array[10];size_t size;char **strings;size_t i;size …

flutter学习-day1-环境搭建和启动第一个项目

&#x1f4da; 目录 SDK 下载配置环境变量安装 flutter搭建 Android 环境SDK 和依赖升级IDE 配置与使用 Android Studio 配置与使用VS Code 配置与使用 真机调试 本文学习和引用自《Flutter实战第二版》&#xff1a;作者&#xff1a;杜文 1. SDK下载 前置需要操作系统 window …

t-SNE完整笔记 (附Python代码)

t-SNE(t-distributed stochastic neighbor embedding)是用于降维的一种机器学习算法&#xff0c;是由 Laurens van der Maaten 和 Geoffrey Hinton在08年提出来。此外&#xff0c;t-SNE 是一种非线性降维算法&#xff0c;非常适用于高维数据降维到2维或者3维&#xff0c;进行可…