强化学习算法总结 (1)
强化学习算法总结 (1)
1.综述
强化学习是通过与环境进行交互,来实现目标的一种计算方法。
s − a 1 − r − s ′ s - a_1 - r- s' s−a1−r−s′
1.1强化学习优化目标
p o l i c y = a r g m a x p o l i c y E ( a , s ) [ r e w a r d ( s , a ) ] policy= argmax_{policy} E_{(a,s)}[reward(s,a)] policy=argmaxpolicyE(a,s)[reward(s,a)]
强化学习的最终目标是最大化智能体策略在和环境交互中获得的reward。通过改变策略来调整智能体和环境交互数据的分布。
1.2 平衡与探索
策略告诉我们应该采取哪些动作,同时也要对新的策略进行探索。
这里引入一个概念为懊悔值,当前动作a的收益与最优结果的差距
- ϵ − g r e e d y \epsilon - greedy ϵ−greedy
策略
i f : 采样概率: 1 − ϵ a t = a e g m a x Q ( a ) e l s e : 随机策略 if:采样概率:1 - \epsilon \\ a_t = aegmaxQ(a)\\ else:\\ 随机策略 if:采样概率:1−ϵat=aegmaxQ(a)else:随机策略
但是结果来看积累的懊悔值是和和时间成正比的,因为随机拉杆的探索概率是固定的
- 上置信界法UCB
a t = a r g m a x α [ Q ( A ) ] a_t = argmax_\alpha [Q(A)] at=argmaxα[Q(A)]
- 汤普森采样
2. 马尔科夫决策过程
MDP:利用当前已知的信息就可以决定未来
采样:根据状态转移矩阵生成一个状态序列 s 1 − > s 2 − > . . . − > s n s_1 -> s_2 -> ...-> s_n s1−>s2−>...−>sn
2.1 马尔科夫奖励过程
在决策过程中加入了奖励函数r和折扣因子,形成了马尔科夫奖励过程 < S , P , r , γ > <S,P,r,\gamma> <S,P,r,γ>,状态集合,状态转移矩阵,奖励函数,折扣因子
G t = R t + γ R t + 1 . . . = ∑ γ k R t + k G_t = R_t+ \gamma R_{t+1}... = \sum \gamma^k R_{t+k} Gt=Rt+γRt+1...=∑γkRt+k
- 价值函数
V ( s ) = E [ G t ∣ S t = s ] 我们把 G t 拆开 R t + γ V ( s t + 1 ) 而后面的 E ( γ V ( s t + 1 ∣ s t = s ) ) 用状态转移函数表示 V ( s ) = r ( s ) + γ ∑ P ( s ′ ∣ s ) V ( s ′ ) V(s) = E[G_t |S_t =s]\\我们把G_t 拆开R_t +\gamma V(s_{t+1}) 而后面的E(\gamma V(s_{t+1}|s_t =s)) 用状态转移函数表示\\V(s) = r(s) +\gamma\sum P(s'|s)V(s') V(s)=E[Gt∣St=s]我们把Gt拆开Rt+γV(st+1)而后面的E(γV(st+1∣st=s))用状态转移函数表示V(s)=r(s)+γ∑P(s′∣s)V(s′)
只适用于规模比较小的马尔科夫过程计算价值函数,不然使用 MC,TD,动态规划等算法
2.2 马尔科夫决策过程
MDP;<S,A,P,r, γ \gamma γ>:这里不再使用状态转移矩阵,而是状态转移函数
- S:状态合集
- A:动作合集
- γ \gamma γ:折扣因子
- r(s,a):奖励函数,收到了s和a影响
- P(s’|s,a):状态转移函数
策略: π ( a ∣ s ) = P ( A t = a ∣ S t = s ) \pi(a|s) = P(A_t = a| S_t =s) π(a∣s)=P(At=a∣St=s):表示当前状态下,采取这个策略a的概率。如果是一个随机策略,输出是关于动作的概率分布函数
-
状态价值函数
V π = E π [ G t ∣ S t = s ] V^{\pi} = E_{\pi}[G_t | S_t = s] Vπ=Eπ[Gt∣St=s]
当前状态下,预计未来的收益 -
动作价值函数
Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] Q^{\pi}(s,a) = E_\pi[G_t | S_t = s ,A_t =a] Qπ(s,a)=Eπ[Gt∣St=s,At=a]
在遵循当前策略下,执行动作a的收益
V π ( s ) = ∑ π ( a ∣ s ) Q π ( s , a ) V^\pi(s) = \sum\pi(a|s) Q^\pi (s,a) Vπ(s)=∑π(a∣s)Qπ(s,a)
- 贝尔曼期望方程
Q π ( s , a ) = E π [ R t + γ Q π ( s ′ , a ′ ) ∣ S t = s , A t = a ] = r ( s , a ) + γ ∑ V ( s ′ ) = r ( s , a ) + γ ∑ P ( s ′ ∣ a , s ) ∑ π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) Q^\pi (s,a) = E_\pi[R_t+\gamma Q^\pi(s',a')|S_t= s,A_t = a] \\= r(s,a) +\gamma\sum V(s') \\= r(s,a) +\gamma\sum P(s'|a,s)\sum \pi(a'|s')Q^\pi(s',a') Qπ(s,a)=Eπ[Rt+γQπ(s′,a′)∣St=s,At=a]=r(s,a)+γ∑V(s′)=r(s,a)+γ∑P(s′∣a,s)∑π(a′∣s′)Qπ(s′,a′)
V π ( s ) = E π [ R t + γ V π ( s ′ ) ∣ S t = s ] = ∑ π ( a ∣ s ) ( r ( s , a ) + γ ∑ P ( s ′ ∣ s , a ) V π ( s ′ ) ) V^\pi(s) = E_\pi[R_t+\gamma V^\pi(s')|S_t = s] =\\\sum\pi(a|s)(r(s,a)+\gamma\sum P(s'|s,a)V^\pi(s')) Vπ(s)=Eπ[Rt+γVπ(s′)∣St=s]=∑π(a∣s)(r(s,a)+γ∑P(s′∣s,a)Vπ(s′))
相关文章:
强化学习算法总结 (1)
强化学习算法总结 (1) 1.综述 强化学习是通过与环境进行交互,来实现目标的一种计算方法。 s − a 1 − r − s ′ s - a_1 - r- s s−a1−r−s′ 1.1强化学习优化目标 p o l i c y a r g m a x p o l i c y E ( a , s ) [ r e w a r d ( s , a ) ] policy ar…...

Qt应用开发(基础篇)——向导对话框 QWizard
一、前言 QWizard类继承于QDialog,为有向导界面需求的应用环境提供了一个框架。 对话框窗口 QDialog QWizard向导对话框是一个拥有队列界面的特殊对话框,向导的目的是引导用户一步一步的完成预设的流程。向导常用于软件安装界面向导、硬件线路安装向导、…...

Python类的方法
Python类的方法主要分为实例方法、类方法和静态方法三种。 1 实例方法 以self作为第一个参数的方法,就是类的实例方法。该方法由类的实例调用,Python会把调用该方法的实例对象传递给self。 如下代码定义了一个名为A的类。 class A:def __init__(self…...

变电站自动化监控系统
力安科技变电站自动化监控系统是以箱式变电站为管理对象,加装箱变网关,在完成箱变智能化改造的基础上,依托电易云,构建一体化智慧箱变及运维系统。智能箱式变电站被广泛应用于住宅小区、城市公用变压器、工厂、商场、机场、电站等…...

MySql学习笔记11——DBA命令介绍
DBA命令 数据导入 要进入Mysql 创建数据库 create database database_name;使用数据库 use database_name;初始化数据库 source .sql文件地址,不能加双引号;数据导出 要在windows的dos环境下进行 导出数据库 mysqldump database_name > 存放…...
Webpack 复习小结
nodejs学习参考 node常用命令: node xxx.js 执行js文件 npm init -y 初始化package.json npm i 软件包名 下载软件包到本地 npm i 软件包名 -g 下载软件包到全局 npm uni 软件包名 删除软件包 系统优化CDN使用 CDN for free 需求:开发模式使用本地第三…...

Laravel chunk和chunkById的坑
在编写定时任务脚本的时候,经常会用到chunk和chunkById的API。 一、前言 数据库引擎为innodb。 表结构简述,只列出了本文用到的字段。 字段类型注释idint(11)IDtypeint(11)类型mark_timeint(10)标注时间(时间戳) 索引&#x…...

从零开始学习 Java:简单易懂的入门指南之泛型及set集合(二十二)
泛型及set集合扩展 1.泛型1.1泛型概述 2.Set集合2.1Set集合概述和特点【应用】2.2Set集合的使用【应用】 3.TreeSet集合3.1TreeSet集合概述和特点【应用】3.2TreeSet集合基本使用【应用】3.3自然排序Comparable的使用【应用】3.4比较器排序Comparator的使用【应用】3.5两种比较…...

JVM----GC(垃圾回收)详解
一、Automatic Garbage Collection(垃圾回收)简介 Automatic Garbage Collection (自动垃圾回收)是JVM的一个特性,JVM会启动相关的线程,该线程会轮训检查heap memeory,并确定哪些是未被引用的(…...
数据库的三个范式
数据库的三个范式是关系数据库设计中的一组规范,用于确保数据的有效性和一致性。这三个范式分别是: 第一范式(1NF):要求数据库表中的每一列都是不可分割的原子值。换句话说,每个表中的每个字段不能包含多个…...

谷歌浏览器打开白屏 后台还有还有很多google chrome进程在运行
环境: Win10 专业版 谷歌浏览器 版本 116.0.5845.141(正式版本) (64 位) L盾加密终端 问题描述: 谷歌浏览器打开白屏 后台还有还有很多google chrome进程在运行,要全部结束谷歌浏览器进程&…...

Java EE 突击 15 - Spring Boot 统一功能处理
Spring Boot 统一功能处理 一 . 统一功能的处理1.1 初级阶段 : 不断重复1.2 中级阶段 : 集成方法1.3 高级阶段 : Spring AOP1.4 超高级阶段 : Spring 拦截器准备工作实现拦截器自定义拦截器将自定义拦截器加入到系统配置 拦截器实现原理扩展 : 统一访问前缀添加 二 . 统一异常的…...

JasperReport定义变量后打印PDF变量为null以及整个pdf文件为空白
问题1: JasperReport打印出来的整个pdf文件为空白文件; 问题2:JasperReport定义变量后打印PDF变量为null; 问题1原因是因为缺少数据源JRDataSource JasperFillManager.fillReport(jasperReport, params,new JREmptyDataSource());如果你打印…...

Python 及 Pycharm 的安装 2023.8
Python 及 PyCharm 的安装 仅适用于 Windows 系统! 视频教程:【Python及Pycharm的安装 2023.8】 https://www.bilibili.com/video/BV1A34y1T7Gu 文章目录 Python 及 PyCharm 的安装安装 Python安装 PyCharmHi, PyCharmPyCharm 汉化 安装 Python 进入 …...
java中的线程中断
java中的线程中断 1、线程中断 即 线程的取消/关闭的机制2、线程对中断interrupt()的反应2.1、RUNNABLE:线程在运行或具备运行条件只是在等待操作系统调度2.2、WAITING/TIMED_WAITING:线程在等待某个条件或超时2.3、BLOCKED:线程在等待锁&…...

【跟小嘉学 Rust 编程】二十三、Cargo 使用指南
系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...
R Removing package报错(as ‘lib’ is unspecified)
remove.packages(ggpubr) Removing package from ‘/Library/Frameworks/R.framework/Versions/4.0/Resources/library’ (as ‘lib’ is unspecified) 解决办法: > .libPaths() [1] "/Library/Frameworks/R.framework/Versions/4.0/Resources/library&qu…...

金融信创,软件规划需关注自主安全及生态建设
软件信创化,就是信息技术软件应用创新发展的意思(简称为“信创”)。 相信在中国,企业对于“信创化”这个概念并不陌生。「国强则民强」,今年来中国经济的快速发展,受到了各大欧美强国的“卡脖子”操作的影…...

无重叠区间【贪心算法】
无重叠区间 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 class Solution {public int eraseOverlapIntervals(int[][] intervals) {//先排序,按照左边界升序,注…...

nlp系列(7)实体识别(Bert)pytorch
模型介绍 本项目是使用Bert模型来进行文本的实体识别。 Bert模型介绍可以查看这篇文章:nlp系列(2)文本分类(Bert)pytorch_bert文本分类_牧子川的博客-CSDN博客 模型结构 Bert模型的模型结构: 数据介绍 …...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...