强化学习p3-策略学习

news/2024/10/18 15:25:29/

Policy Network (策略网络)

我们无法知道策略函数 π \pi π所以要做函数近似,求一个近似的策略函数
使用策略网络 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ) 去近似策略函数 π ( a ∣ s ) \pi(a|s) π(as)

在这里插入图片描述
∑ a ∈ A π ( a ∣ s ; θ ) = 1 \sum_{a\in A} \pi(a|s;\theta) = 1 aAπ(as;θ)=1
动作空间A的大小是多少,输出向量的维度就是多少。

策略学习的目标函数

状态价值函数(State-value function)
V π ( s t ) = E A [ Q π ( s t , A ) ] = ∑ a π ( a ∣ s t ) ⋅ Q π ( s t , a ) V_\pi(s_t)=E_A[Q_\pi(s_t,A)] = \sum_a\pi(a|s_t)\cdot Q_\pi(s_t,a) Vπ(st)=EA[Qπ(st,A)]=aπ(ast)Qπ(st,a)
对A求期望,去掉A的影响
用策略网络 π ( a ∣ s t ; θ ) \pi(a|s_t;\theta) π(ast;θ) 去近似策略函数 π ( a ∣ s t ) \pi(a|s_t) π(ast)
V π ( s t ; θ ) = E A [ Q π ( s t , A ) ] = ∑ a π ( a ∣ s t ; θ ) ⋅ Q π ( s t , a ) V_\pi(s_t;\theta)=E_A[Q_\pi(s_t,A)] = \sum_a\pi(a|s_t;\theta)\cdot Q_\pi(s_t,a) Vπ(st;θ)=EA[Qπ(st,A)]=aπ(ast;θ)Qπ(st,a)
近似状态价值既依赖于当前状态 s t s_t st,也依赖于策略网络 π \pi π的参数 θ \theta θ
如果一个策略很好,那么状态价值函数的近似 V π ( s ; θ ) V_\pi(s;\theta) Vπ(s;θ)的均值应当很大。因此我们定义目标函数:
J ( θ ) = E S [ V π ( s ; θ ) ] J(\theta)=E_S[V_\pi(s;\theta)] J(θ)=ES[Vπ(s;θ)]
目标函数 J ( θ ) J(\theta) J(θ) 排除了状态 S S S的因素,只依赖于策略网络 π \pi π的参数 θ \theta θ。策略越好,则 J ( θ ) J(\theta) J(θ) 越大,所以策略学习可以被看作是这样一个优化问题:
m a x θ J ( θ ) \mathop{max}_{\theta}J(\theta) maxθJ(θ)
通过学习参数 θ \theta θ ,使得目标函数 J ( θ ) J(\theta) J(θ)
越来越大,也就意味着策略网络越来越好。

使用策略梯度上升更新 θ \theta θ ,使得 J ( θ ) J(\theta) J(θ)增大。
设当前策略网络的参数为 θ \theta θ,做梯度上升更新参数,得到新的参数 θ ′ \theta' θ, β \beta β为学习率
θ ′ = θ + β ⋅ ∂ V ( s ; θ ) ∂ θ \theta' =\theta+\beta \cdot \frac{\mathrm{\partial}V(s;\theta)}{\mathrm{\partial}\theta} θ=θ+βθV(s;θ)

策略梯度(Policy Gradient)

∂ V ( s ; θ ) ∂ θ \frac{\mathrm{\partial}V(s;\theta)}{\mathrm{\partial}\theta} θV(s;θ)大概推导 不严谨 实际上 Q π Q_\pi Qπ中也有 θ \theta θ要求导
在这里插入图片描述

使用策略梯度更新策略网络

算法
1、在 t t t时刻观测到状态 s t s_t st
2、根据策略网络 π ( . ∣ s t ; θ ) \pi(.|s_t;\theta) π(.∣st;θ)随机抽样一个动作 a t a_t at
3、计算动作价值 q t ≈ Q π ( s t , a t ) q_t \approx Q_\pi(s_t,a_t) qtQπ(st,at)
4、计算策略网络关于参数 θ \theta θ的微分 d θ = ∂ l n π ( a ∣ s ; θ ) ∂ θ ∣ θ = θ t d\theta = \frac{\mathrm{\partial}ln\pi(a|s;\theta)}{\mathrm{\partial}\theta}|_{\theta=\theta_t} dθ=θl(as;θ)θ=θt
5、计算近似策略梯度 g ( a t , θ t ) = q t , d θ g(a_t,\theta_t)=q_t,d\theta g(at,θt)=qt,dθ
6、更新策略网络: θ t + 1 = θ t + β ⋅ g ( a t , θ t ) \theta_{t+1}=\theta_t+\beta \cdot g(a_t,\theta_t) θt+1=θt+βg(at,θt)

在第 3 步中,怎么计算 q t q_t qt
在后面章节中,我们用两种方法对 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a) 做近似。
1、REINFORCE 算法
用实际观测的回报 u u u近似 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)
2、actor-critic 算法
用神经网络 q ( s , a ; w ) q(s,a;w) q(s,a;w)近似 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)

所以想要近似求得 π \pi π函数 还要近似求得 Q π Q_\pi Qπ函数


http://www.ppmy.cn/news/63320.html

相关文章

Android 音频开发——Radio简介(一)

一、概述 本地FM(收音机)应用不同于现在的网络FM(喜马拉雅,考拉等),是由 Android 手机硬件的调谐芯片,通过接收和解调电台发出的电磁波的调频(FM)或调幅(AM)信号,从而播放和展示相应的节目信息。所以本地收音机应用一般不需要联网,其核心依赖于硬件调谐芯片。所以…

【Redis】Redis 高性能IO模型原理

前言 在面试的时候遇到Redis肯定会问,Redis单线程为什么那么快呀?你可以说下你对IO多路复用的机制嘛。但是仔细一想Redis真的是单线程在运行处理嘛,其实这个单线程主要指的Redis的网络IO和键值对读写是由一个线程来完成的,Redis在…

华为中国合作伙伴大会2023前瞻:哪些信息值得关注?

中小企业的数字化转型升级可以说是时下最热门的议题之一。 根据联合国大会在第五个“中小微企业日”上公布的数据:中小微企业占全球企业总数的90%,为全球提供了60%-70%的就业岗位,并贡献了全球50%的GDP,已然成为世界各地社会的支…

Vue响应式核心

响应式数据&#xff1a;Ref、Reactive <script setup>import { ref, reactive } from vue;// ref 基础类型数据const name ref(高启强);// reactive 引用类型数据object, array, functionconst obj reactive({ name: 高启盛, age: 28,});// ref数据在js中需要使用.va…

flink cdc原理与使用

flink cdc原理与使用 1 cdc 介绍1.1 cdc简介与对比1.2 基于日志的 CDC 方案介绍 2 基于 Flink SQL CDC 的数据同步方案实践2.1 案例 1 : Flink SQL CDC JDBC Connector2.2 案例 2 : CDC Streaming ETL2.3 案例 3 : Streaming Changes to Kafka 3 Flink SQL CDC 的更多应用场景…

node.js 处理路径问题

node.js 处理路径问题 什么是path路径模块 path模块是Node.js官方提供的、用来处理路径的模块。它提供了一系列的方法和属性&#xff0c;用来满足用户对路径的处理需求。 例如&#xff1a; path.join()方法&#xff0c;用来将多个路径片段拼接成一个完整的路径字符串path.ba…

《通过并行蒙特卡洛方法合成桡动脉的光电容积图(PPG),及其与体重指数(BMI)的相关性》阅读笔记

目录 一、论文摘要 二、论文十问 Q1&#xff1a;论文试图解决什么问题&#xff1f; Q2&#xff1a;这是否是一个新的问题&#xff1f; Q3&#xff1a;这篇文章要验证一个什么科学假设&#xff1f; Q4&#xff1a;有哪些相关研究&#xff1f;如何归类&#xff1f;谁是这一课…

VHDL的基本语法(一)

1 VHDL基本结构 1 实体 Entity&#xff1a;描述所设计的系统的外部接口信号&#xff0c;定义电路设计中所有的输入和输出端口 2 结构体 Architecture&#xff1a;描述系统内部的结构和行为 3 包集合 package&#xff1a;存放各设模块能共享的数据类型、常数和子程序等&#xf…