免模型控制

文章目录

  • 免模型控制
  • Q-Learning 算法
    • 原理
  • Sarsa 算法
    • 区别:


免模型控制

免模型控制要解决的问题是,如何选择动作以达到最高得分

Q-Learning 算法

原理

首先Q-Learning 确定了一个前提最优策略:π(s)=arg⁡max⁡aQ(s,a)\pi(s) = \arg\max_a Q(s,a)π(s)=argmaxaQ(s,a) 。这个策略本质上就是 “贪心”。只要 Q 函数能收敛到Q∗Q^*Q(最优动作价值),那么这个贪心策略就等价于最优策略 π∗\pi^*π(因为每一步都选 “理论上长期收益最大的动作”)。
参考下面的公式,
Vπ(s)=∑a∈Aπ(a∣s)Qπ(s,a)V_{\pi}(s)=\sum_{a \in A} \pi(a \mid s) Q_{\pi}(s, a) Vπ(s)=aAπ(as)Qπ(s,a)
策略固定了,我们只需要直接预测动作价值函数,在决策时选择动作价值即 Q 值最大对应的动作即可。那如何实现这个逻辑呢?主要是根据下面的更新公式不断迭代而成
Q - learning 算法更新公式如下图所示。
Q(st,at)←Q(st,at)+α[rt+γmax⁡aQ(st+1,a)−Q(st,at)]Q\left(s_{t}, a_{t}\right) \leftarrow Q\left(s_{t}, a_{t}\right)+\alpha\left[r_{t}+\gamma \max _{a} Q\left(s_{t+1}, a\right)-Q\left(s_{t}, a_{t}\right)\right] Q(st,at)Q(st,at)+α[rt+γamaxQ(st+1,a)Q(st,at)]
时序差分方法中状态价值函数的更新公式:
V(st)←V(st)+α[rt+1+γV(st+1)−V(st)]V\left(s_{t}\right) \leftarrow V\left(s_{t}\right)+\alpha\left[r_{t+1}+\gamma V\left(s_{t+1}\right)-V\left(s_{t}\right)\right]V(st)V(st)+α[rt+1+γV(st+1)V(st)]
两者存在惊人的相似,不过这不是巧合,因为两者都采用的是基于时序差分的更新方法
不过也有不一样的地方:γmax⁡aQ(st+1,a)VSγV(st+1)\gamma \max_{a} Q(s_{t+1}, a) \quad VS \quad \gamma V(s_{t+1})γamaxQ(st+1,a)VSγV(st+1)由于这一点的不同引入了一个下新的概念就是叫过估计
动作价值函数更新时是直接拿最大的未来动作价值的来估计的,而在状态价值函数更新中相当于是拿对应的平均值来估计的。这就会导致这个估计相当于状态价值函数中的估计更不准确,称之为Q值过估计。

Sarsa 算法

区别:

Q(st,at)←Q(st,at)+α[rt+γQ(st+1,at+1)−Q(st,at)]Q\left(s_{t}, a_{t}\right) \leftarrow Q\left(s_{t}, a_{t}\right)+\alpha\left[r_{t}+\gamma Q\left(s_{t+1}, a_{t+1}\right)-Q\left(s_{t}, a_{t}\right)\right] Q(st,at)Q(st,at)+α[rt+γQ(st+1,at+1)Q(st,at)]
与Q-learning区别在于一个是同策略一个是异策略。

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

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

相关文章

Vmware VSAN主机停机维护流程

当VSAN主机由于故障或进行扩容操作需要停机维护时,在关闭ESXi主机前和启动ESXi主机后需要进行一些必要的检查操作,以免对vSAN集群环境造成不可预知的风险,影响集群中的虚拟机运行。以下是vSAN集群中的ESXi主机停机维护的主要步骤。 1.确认受影…

中小企业安全落地:低成本漏洞管理与攻击防御方案

中小企业普遍面临 “预算有限、技术人员不足” 的困境,安全建设常陷入 “想做但做不起” 的尴尬。事实上,中小企业无需追求 “高大上” 的安全方案,通过 “开源工具 简化流程 聚焦核心” 的思路,即可用低成本实现有效的漏洞管理…

面试150 搜索二维矩阵

思路1 直接遍历搜寻,逐个判断即可 class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:mlen(matrix)nlen(matrix[0])for i in range(m):for j in range(n):if matrix[i][j]target:return Truereturn False思路2 Z字形搜索从矩…

npm init vite-app runoob-vue3-test2 ,npm init vue@latest,指令区别

这两个命令都是用于创建 Vue.js 项目的脚手架命令,但它们在技术栈、配置方式和项目结构上有显著区别:1. npm init vite-app runoob-vue3-test2技术栈:基于 Vite 构建工具使用 Vue 3 作为默认框架由 Vite 团队维护特点:bash复制代码…

WPF MVVM进阶系列教程(二、数据验证)

五一出去浪吹风着凉了,今天有点发烧😷 手头的工作放一放,更新一下博客吧。 什么是数据验证(Validation) 数据验证是指用于捕获非法数值并拒绝这些非法数值的逻辑。 大多数采用用户输入的应用都需要有验证逻辑,以确保用户已输入…

AI 音频产品开发模板及流程(二)

AI 音频产品开发模板及流程(一) 6. 同声传译 实时翻译,发言与翻译几乎同步,极大提升沟通效率。支持多语言互译,适用于国际会议、商务洽谈等多场景。自动断句、转写和翻译,减少人工干预,提升准…

kafka4.0集群部署

kafka4.0是最新版kafka,可在kafka官网下载,依赖的jdk版本要求在jdk17及jdk17以上tar -xzf kafka_2.13-4.0.0.tgzmv kafka_2.13-4.0.0 kafkacd kafka# 随便一台节点运行生成随机uuid,后面每台节点都要使用此uuidbin/kafka-storage.sh random-u…

【News】同为科技亮相首届气象经济博览会

7月18日,由中国气象服务协会主办的国内首个以“气象经济”为核心的国家级博览会——首届气象经济博览会(以下简称“博览会”)在合肥滨湖国际会展中心开幕。北京同为科技有限公司(TOWE)作为雷电防护领域的技术领导企业&…

数据结构 堆(2)---堆的实现

上篇文章我们详细介绍了堆和树的基本概念以及它们之间的关系,还要知道一般实现堆的方式是使用顺序结构的数组进行存储数据及实现。下来我们看看利用顺序结构的数组如何实现对的内容:1.堆的实现关于堆的实现,也是三个文件,头文件,实…

Arraylist与LinkedList区别

📚 欢迎来到我的Java八股文专栏! 🎉各位程序员小伙伴们好呀~ 👋 我是雪碧聊技术,很高兴能在CSDN与大家相遇!✨🚀 专栏介绍这个专栏将专注于分享Java面试中的经典"八股文"知识点 &…

Java实战:基于Spring Cloud的电商微服务架构设计——从拆分到高可用的全流程解析

引言 2023年双十一大促期间,某传统电商平台的单体应用再次“爆雷”:凌晨1点订单量突破50万单/分钟时,用户服务因数据库连接池被订单模块占满,导致登录接口响应时间从200ms飙升至5秒,大量用户流失。技术团队紧急回滚后发现:这个运行了7年的单体应用,早已变成“代码泥潭”…

STL学习(二、vector容器)

1.vector构造函数函数原型vector<int> v // 默认构造&#xff0c;size为0vector(const_iterator beg, const_iterator end) // 将v的[begin, end) 元素拷贝过来vector(n, elem) // 构造函数将n个elem拷贝到本身vector(const vector & v) // 拷贝构造2.vect…

深度学习-算子

概念&#xff1a;标识数字图像中亮度变化明显的点处理步骤1.滤波处理算子通常被称为滤波器。2.增强确定各点sobel算子概念&#xff1a;主要用于获得数字图像的一阶梯度&#xff0c;本质是梯度运算。Scharr算子Scharr算子 是一种用于边缘检测的梯度算子&#xff0c;它是Sobel算子…

全国产8通道250M AD FMC子卡

4片8路ADS42LB69标准FMC采集子卡自研成品ADC采集子卡和定制化设计ADC采集子卡&#xff0c;实测采集指标均与手册标称值一致。该板卡有全国产化和进口两个版本&#xff0c;基于FMC标准设计&#xff0c;实现8路16bit/250MSPS ADC采集功能&#xff0c;遵循 VITA 57 标准&#xff0…

【牛客网C语言刷题合集】(三)

&#x1f31f;菜鸟主页&#xff1a;晨非辰的主页 &#x1f440;学习专栏&#xff1a;《C语言刷题集》 &#x1f4aa;学习阶段&#xff1a;C语言方向初学者 ⏳名言欣赏&#xff1a;"任何足够先进的bug都与魔法无异。" 前言&#xff1a;刷题博客主要记录在学习编程语言…

Python之--字典

定义字典&#xff08;dict&#xff09;是一种无序、可变且可哈希的数据结构&#xff0c;字典是根据一个信息来查找另一个信息&#xff0c;它表示索引用的键和对应的值构成的成对关系。特点&#xff08;1&#xff09;字典与列表一样&#xff0c;是Python里面的可变数据类型。&am…

【ARM】ARM微架构

1、 文档目标对 ARM 微架构的概念有初步的了解。2、 问题场景在和客户沟通和新同事交流时对于 ARM 架构和微架构二者有什么区别和联系&#xff0c;做一个简单的介绍。3、软硬件环境1、软件版本&#xff1a;不涉及2 、电脑环境&#xff1a;不涉及4、关于 ARM 架构和微架构架构不…

c++注意点(11)----设计模式(工厂方法)

创建型模式工厂方法模式是一种创建型设计模式&#xff0c; 其在父类中提供一个创建对象的方法&#xff0c; 允许子类决定实例化对象的类型。为什么需要工厂方法模式&#xff1f;看一个 “没有工厂模式” 的痛点场景&#xff1a;假设你在开发一个游戏&#xff0c;最初只有 “战士…

基于Kubernetes的微服务CI/CD:Jenkins Pipeline全流程实践

一、部署gitlab GitLab 是一个集代码托管、CI/CD、项目管理、安全扫描于一体的 DevOps 平台&#xff0c;提供从代码编写到部署的全生命周期管理。它支持 Git 版本控制&#xff0c;内置自动化流水线&#xff0c;可与 Kubernetes 集成&#xff0c;实现云原生应用的持续交付。同时…

Spring Bean初始化及@PostConstruc执行顺序

目录 1. Bean初始化执行顺序 2. 成员变量初始化顺序 2.1 普通Java类&#xff08;非Spring环境&#xff09; (1) 默认初始化(即初始分配内存) (2) 显式初始化 (3) 构造器初始化 (4)完整顺序 2.2 Spring管理的Bean&#xff08;依赖注入场景&#xff09; (1) 普通成员变量…