强化学习p2-价值学习

news2024/9/22 15:30:43

基本概念

折扣回报(Discounted Return)

在 MDP 中,通常使用折扣回报 (discounted return),给未来的奖励做折扣。折扣回报的定义如下:
U t = R t + γ R t + 1 + γ 2 R t + 2 + γ 3 R t + 3 + . . . U_t = R_t+\gamma R_{t+1}+\gamma ^2R_{t+2}+\gamma ^3R_{t+3}+... Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+...
这里的 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ[0,1]叫折扣率。对待越久远的未来,给奖励打的折扣越大。
U t U_t Ut是一个随机变量,随机性来自于t时刻之后的所有状态和动作

动作价值函数(Action-value function)
假设我们已经观测到状态 s t s_t st,而且做完决策,选中动作 a t a_t at。那么 U t U_t Ut中的随机性来自于 t + 1 t+1 t+1时刻起的所有的状态和动作: S t + 1 , A t + 1 , S t + 2 , A t + 2 , . . . , S n , A n S_{t+1},A_{t+1},S_{t+2},A_{t+2},...,S_{n},A_{n} St+1,At+1,St+2,At+2,...,Sn,An
Q π ( s t , a t ) = E S t + 1 , A t + 1 , S t + 2 , A t + 2 , . . . , S n , A n [ U t ∣ S t = s t , A t = a t ] Q_\pi(s_t,a_t)=E_{{S_{t+1},A_{t+1},S_{t+2},A_{t+2},...,S_{n},A_{n}}}[U_t | St=s_t,A_t=a_t] Qπ(st,at)=ESt+1,At+1,St+2,At+2,...,Sn,An[UtSt=st,At=at]
期望中的 S t = s t S_t=s_t St=st A t = a t A_t=a_t At=at是条件,意思是已经观测到 S t S_t St A t A_t At的值。条件期望的结果 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at)被称作动作价值函数 (action-value function)。

作用:根据策略 π , Q π ( s , a ) \pi,Q_\pi(s,a) π,Qπ(s,a)来估计当前状态 s s s对于智能体选择动作 a a a是否明智,得到好的效果

最优动作价值函数(Optimal action-value function)

最优动作价值函数 Q ∗ ( s t , a t ) Q^*(s_t,a_t) Q(st,at)用最大化消除策略 π \pi π:
Q ∗ ( s t , a t ) = m a x π Q π ( s t , a t ) Q^*(s_t,a_t)= \mathop{max}\limits_{\pi} Q_\pi(s_t,a_t) Q(st,at)=πmaxQπ(st,at)
Q ∗ Q^* Q可以对当前状态 s s s对执行动作 a a a做评测,得到好坏程度
可以这样理解 Q ∗ Q^* Q: 已知 s t s_t st a t a_t at,不论未来采取什么样的策略 π \pi π,回报 U t U_t Ut的期望不可能超过 Q ∗ Q* Q

最优动作价值函数的用途:假如我们知道 Q ∗ Q^* Q ,我们就能用它做控制。

Deep Q-Network(DQN)

我们希望知道最优动作价值函数 Q ∗ Q^* Q ,因为 Q ∗ Q^* Q 就像先知一样,可以在 t t t时刻就预见 t t t n n n时刻之间的累计奖励的期望。假如我们知道 Q ∗ Q^* Q ,我们就可以根据 Q ∗ Q^* Q 的值选择最优动作(best action) a ∗ = a r g m a x x a Q ∗ ( s , a ) a^*=\mathop{argmax}x_aQ^*(s,a) a=argmaxxaQ(s,a),然后就可以最大化未来的累计奖励。

我们不知道 Q ∗ Q^* Q 的函数,我们希望用神经网络 Q ( s , a ; w ) Q(s,a;w) Q(s,a;w)去近似学习 Q ∗ Q^* Q

我们观测到 t t t 时刻的状态 s t s_t st,然后根据 DQN 选出能够使 t t t时刻 Q 值最大的动作 a t a_t at,执行动作 a t a_t at,得到奖励 r t r_t rt,再根据环境状态转移的概率函数得到下一个状态 s t + 1 s_{t+1} st+1,依次进行,直到这一回合结束。如下图所示:
在这里插入图片描述

时间差分算法(Temporal Difference Learning)

我们有一个模型 Q ( s , d ; w ) Q(s,d;w) Q(s,d;w),其中 s是起点,d 是终点,w 是参数。
假如s和d直接有一地点c
模型估计 Q ( s , d , w ) = 1000 m i n Q(s,d,w) = 1000min Q(s,d,w)=1000min
实际s到c花费300min Q ( c , d , w ) = 600 m i n Q(c,d,w) = 600min Q(c,d,w)=600min
更新估计 300+600 = 900min
我们把y = 900min称为TD target 这样的估计更准确,也不用跑完全程。

用 TD 算法训练 DQN(TD Learning for DQN)

折扣回报
U t = R t + γ R t + 1 + γ 2 R t + 2 + γ 3 R t + 3 + . . . U_t = R_t+\gamma R_{t+1}+\gamma ^2R_{t+2}+\gamma ^3R_{t+3}+... Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+...
U t = R t + γ ⋅ U t + 1 U_t = R_t+\gamma \cdot U_{t+1} Ut=Rt+γUt+1
DQN 在 t t t时刻的输出: Q ( s t , a t ; w ) Q(s_t,a_t;w) Q(st,at;w) ,是对 U t U_t Ut的估计;在 t + 1 t+1 t+1时刻的输出 Q ( s t + 1 , a t + 1 ; w ) Q(s_{t+1},a_{t+1};w) Q(st+1at+1;w),是对U_{t+1}的估计。因此,我们可以得到如下等式:
Q ( s t , a t ; w ) ≈ r t + γ ⋅ Q ( s t + 1 , a t + 1 ; w ) Q(s_t,a_t;w) \approx r_t+\gamma \cdot Q(s_{t+1},a_{t+1};w) Q(st,at;w)rt+γQ(st+1,at+1;w)
使用 TD learning 训练 DQN 流程:
1、在 t t t时刻做预测 Prediction: Q ( s t , a t ; w t ) Q(s_t,a_t;w_t) Q(st,at;wt)
2、计算 TD target: y t = r t + γ ⋅ m a x a Q ( s t + 1 , a ; w t ) y_t=r_t+\gamma \cdot \mathop{max}\limits_{a} Q(s_{t+1},a;w_t) yt=rt+γamaxQ(st+1,a;wt)
3、计算损失函数 Loss(TD error): L t = 1 2 [ Q ( s t , a t ; w t ) − y t ] 2 L_t=\frac{1}{2}[Q(s_t,a_t;w_t)-y_t]^2 Lt=21[Q(st,at;wt)yt]2

4、做梯度下降更新参数 w w w:# w t + 1 = w t − α ⋅ ∂ L t ∂ w ∣ w = w t w_{t+1}=w_t-\alpha \cdot \frac{\mathrm{\partial}L_t}{\mathrm{\partial}w}|_{w=w_t} wt+1=wtαwLtw=wt
.

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

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

相关文章

【IoT】<硬件产品经理进阶课> 正式在CSDN学院上线

目录 课程目录 适用人群 课程介绍 课程地址 课程目录 001-产品经理进阶:开课介绍 002-产品经理进阶:产品经理简介 003-产品经理进阶:产品经理所需具备的核心素质 004-产品经理进阶:产品经理的进阶路径 005-产品经理进阶&a…

指定城市|眼科医生入世界名校斯坦福大学访学深造

J医生计划利用一年时间自费到美国进行访学交流。提出的要求是专业匹配,兼顾基础医学研究及眼科临床观摩,并且指定城市,希望在今年3、4月份出国。最终我们确定了世界名校斯坦福大学。邀请函上明示:访学期间除从事基础研究外&#x…

手把手教你学习PyQT5:打造精美、功能强大的桌面应用程序(更新中。。)

目录 前言一、PyQt5介绍&开发环境安装&简单案例分析1-1、PyQt5的介绍1-2、开发环境安装1-3、简单案例分析 二、QT Designer2-1、安装和配置2-2、QT Designer基础入门2-3、ui文件转换为python文件 三、PyQt5基本窗口控件(QMain Window、Qwidget、QDialog、Ql…

C# 利用ffmpeg的image2pipe参数实现USB摄系头本地预览同时推流

本地USB摄像头在使用中时,不支持另一个程序的并发访问,也就是所USB摄像头只能令第一个连接的程序“独享”。 在开发一个软件时,希望实现预览USB摄像头的同时,实现摄像头的推流。 推流要用的ffmpeg,经过资料查找&…

mac m2芯片 安装 brew 和cocoapods

Homebrew的安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 这里可能会失败,如 git clone 时候报错 error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly before end of the underlyi…

进程(二)

进程二 2.6 调度的概念、层次2.6.1 基本概念2.6.2 三个层次2.6.3 三层调度的联系、对比2.6.4 补充知识2.6.5 本小节总结 2.7 进程调度的时机、切换与过程、方式2.7.1 进程调度的时机2.7.2 切换与过程2.7.3 进程调度的方式2.7.4 总结 2.8 调度器/调度程序/闲逛线程2.9 调度算法的…

HTML5 + JavaScript绘柱状图

之前用HTML5 JavaScript绘柱状图,可以直观显示各类型产品或品牌的所占比例大小。详见: HTML5 JavaScript绘柱状图1 现在需要针对每年获得各类品牌数据进行对比,绘制柱状图会更直观。 首先我们定义二维数组aBrandType,存放品牌…

双指针的基本应用

一、环形链表 I 方法1:哈希表 struct hashTable {struct ListNode* key;UT_hash_handle hh; };struct hashTable* hashtable;struct hashTable* find(struct ListNode* ikey) {struct hashTable* tmp;HASH_FIND_PTR(hashtable, &ikey, tmp);return tmp; }void insert(struc…

页面一打开就有30个重复请求,优化方法

一、写在前面 上周测试同事给我提了个bug。他说在公司运营系统某个编辑页面中,一个post请求调用太多次了,想让我看看怎么回事。我刚听他讲这个事情时心里有点不屑一顾,觉得能有多少次啊,大惊小怪的。然而当我在测试环境中打开那个…

经典文献阅读之--A Lifelong Learning Approach to Mobile Robot Navigation(终生学习轨迹导航)

0. 简介 终生学习作为近年来比较火的一种深度学习方式,导航终身学习(LLfN)旨在解决标准导航问题的一种新变体,在该问题中,智能体在有限的内存预算下,通过学习提高在线经验或跨环境的导航性能。而最近有一篇文章《A Lifelong Lear…

Python数据分析实战【十四】:你知道python中有几种排序方法吗【文末源码地址】

文章目录 一、List.sort()排序案例一:按照列表中的元素进行排序案例二:按照销售额数据进行排列 二、sorted()排序案例一:sorted()对列表进行排序案例二:sorted()对字典进行排序案例三:sorted()对列表中的字典元素排序 …

[工具]Pytorch-lightning的使用

Pytorch-lightning的使用 Pytorch-lightning介绍Pytorch-lightning与Pytorch的区别Pytorch-lightning框架的优势Pytorch-lightning框架 重要资源 Pytorch-lightning介绍 这里介绍Pytorch_lighting框架. Pytorch-lightning与Pytorch的区别 Pytorch-lightning可以简单的看作是…

shiro反序列化[cve_2016_4437]

目录 什么是shiro? 漏洞原理 漏洞复现 修复方案 什么是shiro? Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 漏洞原理 Apache Shiro 1.2.4及以前版本…

D1. LuoTianyi and the Floating Islands (Easy Version)(树形dp)

Problem - D1 - Codeforces 这是问题的简化版本。唯一的区别在于在该版本中k≤min(n,3)。只有在两个版本的问题都解决后,才能进行黑客攻击。 琴音和漂浮的岛屿。 洛天依现在生活在一个有n个漂浮岛屿的世界里。这些漂浮岛屿由n−1个无向航线连接,任意两个…

【0基础学爬虫】爬虫基础之自动化工具 Pyppeteer 的使用

大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学…

Python学习之Image模块图片滤镜效果操作示例

前言 滤镜效果是图像处理中常用的一种技术,可以用来增强图像的视觉效果,实现不同的效果,比如增强对比度、饱和度、色彩等。滤镜效果可以帮助用户快速地调整图像的特性,从而使图像更加适合用户的需求。 Image模块对于图像处理的…

Hive SQL 中 map, reduce 的数据血缘分析

Hive SQL 中的有些 SQL 语句和传统关系型数据库中使用的 SQL 语句在语法和功能上都有非常大的差异。在数据血缘分析中对这些 Hive SQL 特有的 SQL 语法的支持,是马哈鱼数据血缘关系分析工具和一般数据血缘分析工具的一个重要区别,对这些特殊 SQL 语法的支…

python代码大全

Python是一种高级编程语言,属于通用编程语言。它是由荷兰人Guido van Rossum在1989年创造的,其语法简单、易读易写,是一种解释型、面向对象、动态数据类型的编程语言,支持多种编程范式,如面向对象、函数式、过程化等。…

FreeRTOS内核:详解Queue队列 FIFO(GPT4帮写)

FreeRTOS内核:详解队列管理FIFO 1. 背景2. Queue相关API2.1 xQueueCreate():创建2.2 xQueueSend():发送2.3 xQueueReceive():接收2.4 vQueueDelete():删除2.5 xQueuePeek() :不删除的方式从FIFO读数据&…

小程序技术给统一门户的建设带来新思路

统一门户的发展可以追溯到20世纪90年代初期,当时的企业和组织开始意识到信息技术可以用于整合和管理各种分散的应用程序和服务。随着互联网的普及和Web 2.0技术的兴起,统一门户的发展迅速加速。 在早期,统一门户主要采用定制化开发的方式实现…