【机器学习】深度强化学习–RL的基本概念、经典场景以及算法分类

news2024/11/13 10:51:54

引言

深度强化学习(Deep Reinforcement Learning, DRL)是机器学习的一个分支,它结合了深度学习(Deep Learning)和强化学习(Reinforcement Learning, RL)的技术

文章目录

  • 引言
  • 一、深度强化学习–RL的基本概念
    • 1.1 强化学习基础
    • 1.2 强化学习的核心概念
      • 1.2.1 探索(Exploration)与利用(Exploitation)
      • 1.2.2 价值函数(Value Function)
      • 1.2.3 Q函数(Q-function)
    • 1.3 深度强化学习
      • 1.3.1 深度神经网络
      • 1.3.2 经验回放(Experience Replay)
      • 1.3.3 目标网络(Target Network)
    • 1.4 流行算法
      • 1.4.1 深度Q网络(DQN)
      • 1.4.2 异步优势演员评论家(A3C)
      • 1.4.3 信任区域策略优化(TRPO)
      • 1.4.4 近端策略优化(PPO)
      • 1.4.5 模型预测控制(MPC)
    • 1.5 应用领域
    • 1.6 挑战
    • 1.7 总结
  • 二、强化学习的典型场景
  • 三、强化学习算法分类
    • 3.1 根据学习策略分类
      • 3.1.1 策略学习(Policy Learning)
      • 3.1.2 模型学习(Model Learning)
    • 3.2 根据策略类型分类
    • 3.3 根据学习方法分类
      • 3.3.1 基于模型的强化学习(Model-Based Reinforcement Learning)
      • 3.3.2 无模型强化学习(Model-Free Reinforcement Learning)
    • 3.4 根据应用领域分类
      • 3.4.1 离线强化学习(Off-Policy Reinforcement Learning)
      • 3.4.2 在线强化学习(On-Policy Reinforcement Learning)
      • 3.4.3 离线到在线学习(Off-Policy to On-Policy Learning)
    • 3.5 总结

一、深度强化学习–RL的基本概念

1.1 强化学习基础

  • 代理(Agent):执行动作并学习策略的主体
  • 环境(Environment):代理与之交互的整个外部世界
  • 状态(State):代理在环境中的当前情况
  • 动作(Action):代理可以执行的操作
  • 奖励(Reward):代理执行某个动作后,环境给予的正面或负面反馈
  • 策略(Policy):代理用于决策的函数或规则,即给定当前状态,选择下一步动作的方法

1.2 强化学习的核心概念

1.2.1 探索(Exploration)与利用(Exploitation)

探索是指尝试新的动作以获取更多信息,而利用是基于现有信息做出最佳决策

1.2.2 价值函数(Value Function)

预测从某个状态开始,遵循特定策略能够获得的期望回报

1.2.3 Q函数(Q-function)

对于给定状态和动作,预测采取该动作后能够获得的期望回报

1.3 深度强化学习

深度强化学习结合了深度学习的感知能力和强化学习的决策能力

1.3.1 深度神经网络

用于近似价值函数或策略函数,处理复杂的输入,如图像

1.3.2 经验回放(Experience Replay)

存储代理的经验,并在训练时随机抽取批次来打破数据间的相关性,稳定学习过程

1.3.3 目标网络(Target Network)

用于生成目标Q值,帮助稳定训练过程

1.4 流行算法

1.4.1 深度Q网络(DQN)

使用深度神经网络来近似Q函数,能够处理高维输入空间

1.4.2 异步优势演员评论家(A3C)

并行训练多个代理,每个代理都在不同的环境中执行,以学习一个共享的全球策略

1.4.3 信任区域策略优化(TRPO)

一种策略梯度方法,使用信任区域来优化策略,保证改进的稳定性

1.4.4 近端策略优化(PPO)

TRPO的改进版本,更加简单且稳定

1.4.5 模型预测控制(MPC)

使用模型来预测未来状态,并基于这些预测做出最优决策

1.5 应用领域

  • 游戏:如DeepMind的AlphaGo在围棋上的胜利
  • 机器人技术:如机械臂的操控、自动驾驶汽车
  • 资源优化:如数据中心能源管理
  • 金融:如算法交易策略

1.6 挑战

  • 稳定性和收敛性:深度强化学习算法可能会遇到训练不稳定的问题
  • 样本效率:强化学习通常需要大量的交互数据
  • 安全性:在现实世界中部署的代理需要能够安全地与动态环境互动

1.7 总结

深度强化学习是一个快速发展的领域,随着算法和计算资源的进步,它有望在更多领域实现突破

二、强化学习的典型场景

在 Flappy bird 这个游戏中,我们需要简单的点击操作来控制小鸟,躲过各种水管,飞的越远越好,因为飞的越远就能获得更高的积分奖励

  • 机器有一个明确的小鸟角色——代理
  • 需要控制小鸟飞的更远——目标
  • 整个游戏过程中需要躲避各种水管——环境
  • 躲避水管的方法是让小鸟用力飞一下——行动
  • 飞的越远,就会获得越多的积分——奖励

在这里插入图片描述

三、强化学习算法分类

了解强化学习中常用到的几种方法,以及他们的区别,对我们根据特定问题选择方法时很有帮助。强化学习是一个大家族,发展历史也不短,具有很多种不同方法。比如说比较知名的控制方法 Q learning,Policy Gradients,还有基于对环境的理解的 model-based RL 等等

3.1 根据学习策略分类

3.1.1 策略学习(Policy Learning)

  • 策略迭代(Policy Iteration):一种确定性策略,通过策略评估和策略改进来寻找最优策略。
  • 值迭代(Value Iteration):一种策略评估方法,通过迭代更新状态值函数来找到最优策略。

3.1.2 模型学习(Model Learning)

  • 模型预测控制(Model Predictive Control, MPC):在每一步都通过预测模型来选择动作。
  • 无模型强化学习(Model-Free Reinforcement Learning):不需要了解环境模型的强化学习,如Q-Learning

3.2 根据策略类型分类

  1. 确定性策略(Deterministic Policy):在给定状态下,总是选择同一个动作
  2. 随机策略(Stochastic Policy):在给定状态下,选择动作的概率分布

3.3 根据学习方法分类

3.3.1 基于模型的强化学习(Model-Based Reinforcement Learning)

  • 模型预测控制(MPC):在每一步都使用预测模型来选择动作

3.3.2 无模型强化学习(Model-Free Reinforcement Learning)

  • Q-Learning:基于状态-动作值函数的强化学习算法
  • Sarsa:与Q-Learning类似,但在选择下一个动作时使用当前策略
  • 深度Q网络(DQN):结合了深度学习和Q-Learning的强化学习算法
  • 策略梯度(Policy Gradient):直接学习策略,通过策略梯度来优化策略
  • 近端策略优化(PPO):一种改进的策略梯度方法,通过近端策略优化来稳定训练过程

3.4 根据应用领域分类

3.4.1 离线强化学习(Off-Policy Reinforcement Learning)

  • Q-Learning:学习状态-动作值函数,可以与离线数据一起使用

3.4.2 在线强化学习(On-Policy Reinforcement Learning)

  • Sarsa:在线学习状态-动作值函数,需要实时与环境交互

3.4.3 离线到在线学习(Off-Policy to On-Policy Learning)

  • 信任区域策略优化(TRPO):一种从离线策略转移到在线策略的方法

3.5 总结

这些分类方式可以帮助我们更好地理解强化学习算法的不同特性和适用场景。随着研究的不断深入,新的算法和分类方式也在不断涌现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2044042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么 React 的函数组件每次渲染执行两次

1.这是 React18 才新增的特性。 2.仅在开发模式("development")下,且使用了严格模式("Strict Mode")下会触发。 生产环境("production")模式下和原来一样,仅执行一次。 在 React 中,当你看到某些代码执行了多…

整合Rocketmq实现审批流消息推送

文章目录 Docker 部署 RocketMQ拉取 RocketMQ 镜像创建容器共享网络 部署NameServer创建目录并授予权限拷贝启动脚本启动容器NameServer 部署Broker Proxy创建挂载文件夹并授权创建broker.cnf文件拷贝启动脚本启动容器Broker 部署RocketMQ控制台(rocketmq-dashboar…

12、springboot3 vue3开发平台-前端-记住我功能实现

文章目录 1. 前端用户信息保存2. 登录页面添加3. 后端实现 1. 前端用户信息保存 使用pinia持久化保存用户名密码 src/stores/remember-me.js // 定义 store import { defineStore } from "pinia" import {reactive} from vueexport const useRememberMeStore defi…

求职Leetcode算法题(7)

1.搜索旋转排序数组 这道题要求时间复杂度为o(log n),那么第一时间想到的就是二分法,二分法有个前提条件是在有序数组下,我们发现在这个数组中存在两部分是有序的,所以我们只需要对前半部分和后半部分分别…

element ——tree组件懒加载数据、自定义label、修改高亮样式、回显点击状态

需求 整体宽高占一屏,超出滚动条tree组件点击懒加载每一级数据,一共三级三级节点前加icon,标识是否已学习点击高亮显示背景图横向超出省略显示或者横向滚动条纵向超出纵向滚动条修改其字体和间距☆☆☆☆☆从别的页面跳入回显三级点击状态 …

netsh int tcp show global查看TCP参数

TCP 全局参数 接收方缩放状态 : enabled 接收窗口自动调节级别 : normal 加载项拥塞控制提供程序 : default ECN 功能 : disabled RFC 1323 时间戳 : allowed 初始 RTO : 1000 接收段合并状态 : enabled 非 Sack Rtt 复原 : disabled 最大 SYN 重新传输次数 : 4 快速打开 : en…

CrowdTransfer:在AIoT社区中实现众包知识迁移

这篇论文的标题是《CrowdTransfer: Enabling Crowd Knowledge Transfer in AIoT Community》,由 Yan Liu, Bin Guo, Nuo Li, Yasan Ding, Zhouyangzi Zhang, 和 Zhiwen Yu 等作者共同撰写,发表在《IEEE Communications Surveys & Tutorials》上。以下…

springboot航班进出港管理系统--论文源码调试讲解

第2章 开发环境与技术 本章节对开发航班进出港管理系统管理系统需要搭建的开发环境,还有航班进出港管理系统管理系统开发中使用的编程技术等进行阐述。 2.1 Java语言 Java语言是当今为止依然在编程语言行业具有生命力的常青树之一。Java语言最原始的诞生&#xff…

网络协议--TCP/IP协议栈--三握和四挥

文章目录 网络设备交换机交换机的工作原理 路由器路由器工作原理 TCP/IP协议栈TCP/IP四层模型TCP/IP通信过程TCP特性TCP包头结构源端口、目标端口序列号(seq)确认号(小ack)标记位 TCP协议端口号端口号分类ssh服务nc工具抓包 socket套接字端口占用 三次握手Wireshark抓包tcpdump…

构建完美人工智能工程师培养计划

一、理论基础构建 1. 数学与统计学基础:作为AI的基石,扎实的数学与统计学知识不可或缺。培养计划应涵盖高等数学、线性代数、概率论与数理统计、优化理论等课程,为学员打下坚实的理论基础。 2. 计算机科学基础:包括数据结构、算…

DLT645-2007通信协议---读取解析智能电表数据

一、DLT645-2007通讯协议 DLT645-2007是中国电力行业规定的一种智能电表通信协议,主要用于电能表与数据采集设备之间的通信。DLT645-2007协议定义了电能表与数据采集设备之间的数据格式、通信方式、命令集等内容,用于实现电能表数据的采集、传输和管理。…

SpringBoot整合Liquibase

1、是什么? Liquibase官网 Liquibase是一个开源的数据库管理工具,可以帮助开发人员管理和跟踪数据库变更。它可以与各种关系型数据库和NoSQL数据库一起使用,并提供多种数据库任务自动化功能,例如数据库迁移、版本控制和监控。Li…

盲盒抽奖源码

介绍: 功能上还可以,商品和盲盒可以在你程序里添加,设置概率等!! 新盲盒星球抽奖商城手机网站源码 随机开箱抢购 代码有点大,三百多M。 教程搭建很简单,基本10分钟搭建一套,可一个服务器搭建多套,只要你…

【时时三省】(C语言基础)模拟实现字符串相关函数

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 模拟实现库函数:strcpy 示例: const修饰指针 示例: const 修饰变量,这个变量为常变量,不能被修改,但本质上还是变量 正常num=20是改不了它…

招聘管理型岗位,HR会考察候选人的哪些方面?

团队管理能力 团队管理能力可以说是管理型岗位最基本的要求,只有具备优秀的团队管理能力,才能够带领团队实现组织目标,提高团队凝聚力,而想要考察一个人是否具备团队管理能力,就要通过多方面来测试。可以先了解一下候…

CSS笔记总结:第五天(HTML+CSS笔记完结)

Xmind鸟瞰图: 简单文字总结: css知识总结: 元素的显示与隐藏: 1.通过display隐藏元素 不保留位置 2.通过visibility 隐藏元素 保留位置 3.overflow 溢出隐藏 鼠标样式cursor: 1.defauly小白 2.p…

走进 keepalived:解析高可用架构背后的关键技术

一、什么是keepalived Keepalived 是一个用于实现服务器高可用性(High Availability,简称 HA)的软件。 简单来说,它的主要作用是检测服务器的状态,并在主服务器出现故障时,自动将服务切换到备份服务器上&…

SVN权限控制解析

一、基础数据说明 1. 代码目录存在多级 2. 角色存在多级 二、规则说明 结合例子讲规则 1、多级文件夹 a. 继承与覆盖 【文件夹层级】: Repositories/BS_Projects/科顺 BS_Projects包含了多个项目,每个项目是一个文件夹,比如“科顺”是其…

分布式事务Seata保证审批状态一致性

文章目录 下载安装Seata创建对应数据库修改application.yml相应配置启动SeataPmHub 实战——添加任务事务管理业务库添加undo_log 表对应服务加上对应的seata依赖Nacos 配置文件 pmhub-project-dev.yml 添加 seata 配置:接口添加 GlobalTransactional 注解涉及数据表…

Centos7升级gitlab(17)

在 CentOS 7 中将 GitLab 从版本 17.1.1 升级到 17.2.2,涉及以下步骤。请务必在升级前备份数据,以防止升级过程中出现问题导致数据丢失。 升级步骤 1. 备份 GitLab 数据 在升级之前,确保已经备份了 GitLab 的数据,包括数据库、…