首页 > 其他分享 >Reinforcement Learning 学习笔记 1

Reinforcement Learning 学习笔记 1

时间:2023-10-07 20:57:28浏览次数:35  
标签:mathit value 学习 笔记 Learning policy pi Reinforcement gamma

什么是强化学习(reinforcement learning)?

假设一个场景,一个智能体(agent) 和环境(env)交互,智能体基于当前环境\(S_t\)每产生一个动作\(A_t\),环境便给它一个反馈,也被称为奖励(reward)\(R_{t+1}\), 随后,智能体的状态变为\(S_{t+1}\). 这样生成了一系列状态 \(S_t, A_t, R_{t+1}, S_{t+1}, A_{t+1}, R_{t+2} ...\). 强化学习的目的就是学习到最优的策略(policy) \(\pi\) 使得累计奖励(cumulated reward)最大,也被称为(return)\(G_{t}\), 定义如下\(G_{t} = R_{t+1} + R_{t+2} + R_{t+3} + R_{t+4} + ...\)

两种学习方法

为了得到最优的学习策略,有两种策略:policy-based method 和 value-based method.

policy-based method 直接学习如何选择下一步。通常有两种方式。
(1) Deteministic: 每个状态都会执行相同的动作。

\[a = \pi(s) \]

(2) Stochastic: 仅输出下一步动作的概率分布。

\[\pi(a|s) = P(A|s) \]

Value-based method 学习state的value,然后执行动作到价值最优的state. 我们之后也主要关注该方法。这种方法有两种方式。
(1) state-value function: 输出每个状态的value.

\[%V_{\pi}(s) = \mathit {E}_{\pi} [R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... | S_{t} =s ] V_{\pi}(s) = \mathit {E}_{\pi} [ G_{t}| S_{t} =s ] \]

(2) action-value function

\[Q_{\pi}(s, a) = \mathit {E}_{\pi} [ G_{t} | S_{t} = s, A_{t} = a] \]

Bellman Equation

如果每个\(S_{t}\) 或者\((S_{t}, A_{t})\)都计算他们的value,那么计算量将会非常大。这里他们采用了类似动态规划的思想来降低计算成本。在计算\(t\)时刻的value时,依赖之前对\(t+1\)时刻value的估计。

基于Bellman Equation, 计算方式简化如下:

\[V_{\pi}(s) = \mathit E_{\pi}[ R_{t+1} + \gamma * V_{\pi}(S_{t+1}) | S_{t} = s ] \]

\[Q_{\pi}(s, a) = \mathit {E}_{\pi} [ R_{t+1} + \gamma * \argmax_{A_{t+1}} Q_{\pi}(S_{t+1}, A_{t+1}) | S_{t} = s, A_{t} = a] \]

学习策略

如何更新参数呢? 这里也有两种方法,蒙特卡洛(Monte Carlo)和时序差分(Temporal Difference)。
蒙特卡洛方法在agent与环境交互完毕后,获得总的return \(G_t\)。使用\(G_t\)作为参数的更新目标,更新参数。更新方式如下:

\[V(S_{t}) \leftarrow V(S_{t}) + \alpha [ G_{t} - V(S_{t}) ] \]

时序差分方法在每次agent执行某个动作后,获取期望的return,它是当前的reward, \(R_{t+1}\) 和 下一状态的估计value \(\gamma * V(S_{t+1})\) 的sum, 更新方式如下:

\[V(S_{t}) \leftarrow V(S_{t}) + \alpha [ R_{t+1} + \gamma * V(S_{t+1}) - V(S_{t}) ] \]

\(Q(S_t, A_t)\) 的更新方式如下:

\[Q(S_{t}, A_{t}) \leftarrow Q(S_{t}, A_{t}) + \alpha [ R_{t+1} + \gamma * \max_{a} Q(S_{t+1}, a) - Q(S_{t}, A_{t}) ] \]

Q-learning algorithm

\(\epsilon\)-greedy 策略定义如下:

Off-policy vs. On-policy

(1) Off-policy: 在acting(inference) 和 update(training) 时,使用不同的policy.
例如在Q-learning 中:
Acting policy: 使用\(\epsilon\)-greedy 选择行动策略。
Updating policy: 使用最优的行动 \(\gamma * \max_{a}Q(S_{t+1}, a)\)。

On-policy: 在acting(inference) 和 update(training) 时,使用相同的policy.

参考:

  1. https://huggingface.co/learn/deep-rl-course
  2. 李宏毅 机器学习 2021

标签:mathit,value,学习,笔记,Learning,policy,pi,Reinforcement,gamma
From: https://www.cnblogs.com/lif323/p/17747455.html

相关文章

  • Webserver学习笔记1
    一.为什么要做webserver的项目呢?串联了C++的相关基础知识,语⾔(C/C++全覆盖,可以扩展⾄C++11/17)+操作系统(含有⼤量的I/O系统调⽤及其封装,还有EPOLL等多路复⽤机制)+计算机⽹络(本身就是⼀个⽹络框架,对⽹络异常的处理)+数据库(注册中⼼的数据库语句、负载均衡等)。二.线程池线程数怎么......
  • 博客笔记目录导航
    博客笔记目录导航本篇作为博客中各科笔记的目录的导航技术类目录Python笔记目录MySQL笔记目录Docker笔记目录Linux笔记目录理论类目录计算机组成原理-哈工大刘宏伟老师操作系统-王道计算机网络-中科大郑烇分布式系统数据库系统概述-赵亮区块链-肖臻......
  • openGauss学习笔记-92 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-M
    openGauss学习笔记-92openGauss数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用MOTSQL覆盖和限制MOT设计几乎能够覆盖SQL和未来特性集。例如,大多数支持标准的PostgresSQL,也支持常见的数据库特性,如存储过程、自定义函数等。下面介绍各种SQL覆盖和限制。92.1不支持......
  • 分布式系统笔记目录
    分布式系统笔记目录本目录源自我校的分布式系统课程,我觉得很有趣,就制作了笔记并分享老师的笔记的目录结构感觉还是有些问题,但是当时学习时间比较紧,就没来得及排版仅供学习使用第一章:基本概念分布式系统相关概念、与并行计算的关系、云计算概念、分布式计算的背景、目的......
  • java web开发入门学习笔记(手打超细版)
    我刚实习的时候写的,先分享分享吧,当时写的也不容易。有错的话请指出,博主会修正,适合入门小白当资料使用。包括包括java基础、数据库、js、jQuery、css、html等等知识点。详细笔记内容如下:面向对象封装:属性私有化,实现细节私有化,对外提供公共的访问方式。属性私有化,对外提供操作该属性......
  • 学习《Linux基础入门》重点前8节--命令汇总笔记
    2023-2024-120232313《Linux基础入门》学习总结作业信息这个作业属于哪个课程2023-2024-1网络空间安全这个作业要求在哪里掌握Linux基本命令,安装虚拟机这个作业的目标掌握Linux基本命令作业正文https://www.cnblogs.com/kitaikuyo/p/17746596.html教材......
  • 动态规划——DP与最短路 学习笔记
    动态规划——DP与最短路学习笔记例题:P2761软件补丁问题,很容易写出转移方程:\(dp_s\leftarrowdp_{s\setminusF_1\cupF_2}+t_i\),但是这样就出现了环,没有形成DAG就无法跑动态规划了,怎么办?可以将原问题转换为[最短路]:将原状态\(s\)记为一个点,将原转移路径记为一条边\(......
  • Python笔记目录
    Python笔记目录本视频学习自b站python视频,原地址在此笔记在原版笔记的基础上根据自己的理解做了调整,与原版的顺序和内容有有些区别笔记仅供学习使用,侵删第一章Python的安装、卸载第二章PyCharm的下载、安装、使用第三章Python的编写和运行第四章Python的基础语法......
  • 学习笔记4——第七八章
    文件操作和系统调用文件操作级别文件和目录的基本操作创建文件:使用touch命令或编程语言中的文件创建函数。这会在文件系统中创建一个新的空文件。创建目录:使用mkdir命令或编程语言中的目录创建函数。这会在文件系统中创建一个新的目录。复制文件或目录:使用cp命令......
  • 密码协议学习笔记(1.4):密码学的一些数学基础
    数学基础:抽象代数:一个算符的代数结构:幺半群:数的集合和一个算符构成的代数结构$(G,+)$,且满足封闭性结合律存在恒等元(在群中我习惯这么叫,避免混淆)群:满足如下条件的代数结构$(G,+)$:封闭性结合律存在恒等元对于每个元素均存在逆元交换群/阿贝尔群:满足如......