【强化学习】QAC、A2C、A3C学习笔记

强化学习算法:QAC vs A2C vs A3C

引言

经典的REINFORCE算法为我们提供了一种直接优化策略的方式,它通过梯度上升方法来寻找最优策略。然而,REINFORCE算法也有其局限性,采样效率低高方差收敛性差难以处理高维离散空间

为了克服这些限制,研究者们引入了Actor-Critic框架,它结合了价值函数和策略梯度方法的优点(适配连续动作空间和随机策略),旨在提升学习效率和稳定性。

QAC(Quality Actor-Critic)

实现原理

QAC算法通过结合Actor-Critic架构的优势,实现了策略和价值函数的有效融合。在此框架中,Actor基于策略梯度法选择动作,而Critic组件评估这些动作的价值,以指导Actor的策略更新。

在这里插入图片描述
由图可知,在Actor-Critic算法中,TD Error用于更新Critic的价值函数,也用来指导Actor的策略梯度更新。简单来说,如果TD Error较大,意味着当前策略对于该状态-动作对的价值预测不准确,需要更大的调整。

优势与局限

QAC的主要优势在于其将策略探索与价值评估相结合,旨在提升决策质量与学习速度。然而,由于依赖样本来更新策略,它可能会面临高方差问题,尤其是在样本数量较少或者环境噪声较大的情况下。 这要求在实际应用中进行适当的调整和优化,以实现最佳性能。

A2C(Advantage Actor-Critic)

实现原理

A2C通过引入advantage函数 A π ( s t , a t ) A^\pi(s_t,a_t) Aπ(st,at),来指导策略更新。这个函数评估执行某个动作相比平均水平好多少,旨在减少方差并提高策略的学习效率。

优势与局限

A2C的同步框架减少了策略更新中的噪声,提升了学习稳定性。作为on-policy算法,它直接在策略路径上进行更新,保证了策略的一致性。

好像基本上能搜的资料都没有说这个方法的局限。
从经验上看,这个方法的样本利用率不高(会比DQN还要难收敛一点),而且对超参数敏感(这算是强化学习的通病了)。

A3C(Asynchronous Advantage Actor-Critic)

实现原理

A3C通过多个并行的Actor-Critic实例进行学习,这些实例独立探索并异步更新主策略。每个实例有自己的环境副本,降低了策略更新中的相关性
在这里插入图片描述

优势与局限

A3C的异步更新可以在多个环境副本上并行处理,加快学习速度,同时保持了策略的多样性。

但是这就要看你的计算资源够不够了🤣

小结(比较)

  • QAC:一种基本的Actor-Critic方法,通过Q值来指导策略的更新。
  • A2C:利用advantage function代替Q值,减少了方差并可能加速了学习过程。它通常在一个单一的环境中运行,这意味着它在更新策略时会等待每一步都完成。
  • A3C:在A2C的基础上添加异步执行,允许多个agents并行探索和学习,这样不同的agent可以探索不同的策略空间,增加样本的多样性并加速学习过程。

A2C和A3C的核心区别在于A3C的异步更新机制,它允许并行处理多个环境实例,从而提高了算法的效率和鲁棒性。而QAC则为这些更先进的算法提供了基础框架。在实际应用中,选择哪种算法取决于计算资源、环境的复杂度以及所需的学习效率。

A2C提供了同步更新的稳定性,而A3C通过异步更新增加了学习效率。
两者都采用了advantage函数改善策略梯度,但A3C在多核心或多处理器系统上更具优势。

最后的问答

  • 相比REINFORCE算法,为什么A2C可以提升速度?

A2C增加了Critic组件用于估计状态价值,这样Actor可以利用Critic提供的价值信息来更新策略,使得学习过程更加高效。

  • A2C、A3C是on-policy的吗?

A2C算法是on-policy的,因为它根据当前策略生成的样本来更新这个策略,这意味着它评估和改进的是同一个策略。

A3C算法虽然采用了异步的更新机制,但它本质上仍然是on-policy的。尽管这些更新是异步发生的,但每个actor的策略更新都是基于其自身的经验,而这些经验是根据各自的当前策略产生的。

PS:后面有个最大熵的Soft Acotr Critic,这个就是off-policy。

参考资料

joyrl-book 第 10 章 Actor-Critic 算法

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试题: Nginx 的优化思路有哪些?网站的防盗链如何做?

文章目录 拓扑图推荐步骤在Centos01上安装Nginx,设置网站根目录/www使用域名www.h.com访问配置Nginx配置DNS 验证Nginx日志切割在www.h.com网站配置防盗链防止www.hy.com盗www.h.com的连接 注:本文提到的网址仅不是实际存在的网站,仅作为技术…

写Shell以交互方式变更Ubuntu的主机名

以下是一个简单的 Bash 脚本,用于以交互方式更改 Ubuntu 20 系统的主机名: 1#!/bin/bash 2 3# 提示用户输入新的主机名 4read -p "请输入新的系统名称(主机名): " new_hostname 5 6# 检查是否输入了新的主机名 7if [ -…

Qt解析含颜色的QString字符串显示到控件

1、需求 开发接收含颜色字符串显示到窗口,可解析字符串颜色配置窗口属性,且分割字符串显示。 mprintf(“xxxxxx”);打印的xxxxxx含有颜色配置。 2、实现方法 2.1、条件 选用Qt的PlainTextEdit控件显示字符串,配置为只读模式 …

31、WEB攻防——通用漏洞文件上传JS验证mimeuser.ini语言特性

文章目录 文件上传一、前端验证二、.user.ini 文件上传 检测层面:前端、后端等检测内容:文件头、完整性、二次渲染等检测后缀:黑名单、白名单、MIME检测等绕过技巧:多后缀解析(php5、php7)、截断、中间件特…

检查字符串数组中的每个字符串是否全为“不显示元素”(如空格、制表符、换行符等)numpy.char.isspace()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 检查字符串数组中的每个字符串 是否全为“不显示元素” (如空格、制表符、换行符等) numpy.char.isspace() [太阳]选择题 请问以下代码最终输出结果是? i…

机器学习实验3——支持向量机分类鸢尾花

文章目录 🧡🧡实验内容🧡🧡🧡🧡数据预处理🧡🧡代码认识数据相关性分析径向可视化各个特征之间的关系图 🧡🧡支持向量机SVM求解🧡🧡直觉…

HuoCMS|免费开源可商用CMS建站系统HuoCMS 2.0下载(thinkphp内核)

HuoCMS是一套基于ThinkPhp6.0Vue 开发的一套HuoCMS建站系统。 HuoCMS是一套内容管理系统同时也是一套企业官网建设系统,能够帮过用户快速搭建自己的网站。可以满足企业站,外贸站,个人博客等一系列的建站需求。HuoCMS的优势: 可以使用统一后台…

从规则到神经网络:机器翻译技术的演化之路

文章目录 从规则到神经网络:机器翻译技术的演化之路一、概述1. 机器翻译的历史与发展2. 神经机器翻译的兴起3. 技术对现代社会的影响 二、机器翻译的核心技术1. 规则基础的机器翻译(Rule-Based Machine Translation, RBMT)2. 统计机器翻译&am…

一文掌握SpringBoot注解之@Component 知识文集(1)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

基本语法和 package 与 jar

3.基本语法 1.输入输出 // 导入 java.util 包中的 Scanner 类 import java.util.Scanner;// 定义名为 ScannerExample 的公共类 public class ScannerExample {// 主方法,程序的入口点public static void main(String[] args) {// 创建 Scanner 对象,用…

远程git开发

两种本地与远程仓库同步 """ 1)你作为项目仓库初始化人员:线上要创建空仓库 > 本地初始化好仓库 > 建立remote链接(remote add) > 提交本地仓库到远程(push)2)你作为项目后期开发人员:远程项目仓库已经创…

OpenHarmony 鸿蒙使用指南——概述

简介 OpenHarmony采用多内核(Linux内核或者LiteOS)设计,支持系统在不同资源容量的设备部署。当相同的硬件部署不同内核时,如何能够让设备驱动程序在不同内核间平滑迁移,消除驱动代码移植适配和维护的负担,…

深入浅出理解目标检测的NMS非极大抑制

一、参考资料 物体检测中常用的几个概念迁移学习、IOU、NMS理解 目标定位和检测系列(3):交并比(IOU)和非极大值抑制(NMS)的python实现 Pytorch:目标检测网络-非极大值抑制(NMS) …

【软考中级】3天擦线过软考中级-软件设计师

前提:已有数据结构、操作系统、计算机网络、数据库基础 (风险系数较高,请谨慎参考) 贴一个成绩单hhhh 弯路:很早之前有看过一遍网上的软考课程,也记录了一些笔记,然而听完还是啥都记不住。 推…

【超简版,代码可用!】【0基础Python爬虫入门——下载歌曲/视频】

安装第三方模块— requests 完成图片操作后输入:pip install requests 科普: get:公开数据 post:加密 ,个人信息 进入某音乐网页,打开开发者工具F12 选择网络,再选择—>媒体——>获取URL【先完成刷新页面】 科…

Pycharm详细安装 配置教程

继上次安装完Anaconda之后,现在更新最新版本的pycharm的安装和使用教程~~~ Anaconda:是一个开源的Python发行版本,其中包含了conda、Python等180多个科学包及其依赖项。【Anaconda和Pycharm详细安装 配置教程_anconda安装时clear the packag…

【Emgu CV教程】6.1、图像平滑之添加雪花噪声

文章目录 前言一、什么样的图像需要平滑?二、平滑的办法有哪些三、制作需要平滑的图片1.制作微小斑点的噪声2.制作稍大一点的噪声 总结 前言 首先说三点: 图像平滑,一般就是指对图像进行模糊或去噪,平滑后的图像减少了噪声&…

​ElasticSearch

目录 简介 基本概念 倒排索引 FST 简介 ES是一个基于lucene构建的,分布式的,RESTful的开源全文搜索引擎。支持对各种类型的数据的索引;搜索速度快,可以提供实时的搜索服务;便于水平扩展,每秒可以处理 …

【深度学习:Collaborative filtering 协同过滤】深入了解协同过滤:技术、应用与示例

此图显示了使用协作筛选预测用户评分的示例。起初,人们会对不同的项目(如视频、图像、游戏)进行评分。之后,系统将对用户对项目进行评分的预测,而用户尚未评分。这些预测基于其他用户的现有评级,这些用户与…

npm install运行报错npm ERR! gyp ERR! not ok问题解决

执行npm install的时候报错: npm ERR! path D:..\node_modules\\**node-sass** npm ERR! command failed ...npm ERR! gyp ERR! node -v v20.11.0 npm ERR! gyp ERR! node-gyp -v v3.8.0 npm ERR! gyp ERR! not ok根据报错信息,看出时node-sass运行出现…