强化学习(一)——基础篇

一、GYM

(一)常用接口函数:

(二)查看开源代码(环境)

GitHub里的开源代码

二、动态规划

分割—求解—合并

(1)分治法

将问题分成相互独立的子问题,分别解决后再将结果合并

(2)动态规划

先将全问题分出一个小的子问题,解决后,再划分出包含上一个子问题的稍大的子问题,以此类推,直至解决整个全问题。(子问题是嵌套的,要递归的去求解)

(一)动态规划求解问题的步骤

1.找出最优解的性质,并刻画其结构特征;

2.递归地定义子问题和子问题的解;

3.以自底向上的方式求解子问题;

4.根据子问题的解和解的结构回溯构造原问题的最优解。

(二)值函数和贝尔曼方程

马尔科夫链:

S_{0},A_{0},R_{1},S_{1},A_{1},R_{2},S_{2},A_{2},R_{3},...S_{t},A_{t},R_{t+1},...,S_{T-1},A_{T-1},R_{T},S_{T}

2.2.1 累计折扣奖励

(1)即时奖励

S_{T},A_{T}\rightarrow R_{T+1}

(2)累计奖励

G_{t}=R_{t+1}+R_{t+2}+...+R_{T}=\sum_{k=1}^{T-t}R_{t+k}

表示在St状态下,执行动作At后的所有即时奖励的累积

(3)累积折扣奖励

G_{t}=R_{t+1}+\gamma ^{}R_{t+2}+...+\gamma ^{T-t-1}R_{T}=\sum_{k=1}^{T-t}\gamma ^{k-1}R_{t+k}

\gamma是折扣因子(折扣系数)

\gamma=0时,等于贪心,只看当前步的奖励;

\gamma=1,即为累积奖励;

当0<\gamma<1时,即为累积折扣奖励,延时越长,对G_{t}影响越小

强化学习:选择一个能使累积折扣奖励G_{t}最大的最优策略

2.2.2 值函数

(1)状态值函数

设当前策略为\pi,从状态s出发的累积折扣奖励的期望

 V_{\pi }(s)=E_{\pi }[G_{t} | s_{t}=s]=E_{\pi }[\sum_{k=1}^{T-t}\gamma ^{k-1}R_{t+k} | s_{t}=s]   \forall s\in S

(2)动作值函数

从状态s出发,执行动作a后,得到的累积折扣奖励的期望 

Q_{\pi }(s,a)=E_{\pi }[G_{t} | S_{t}=s,A_{t}=a]=E_{\pi }[\sum_{k=1}^{T-t}\gamma ^{k-1}R_{t+k} | S_{t}=s,A_{t}=a]

区别:

状态值函数表示从状态s出发得到的累积折扣奖励的期望,状态s下执行什么动作是不确定的;

动作值函数表示从状态s出发,确定执行动作a以后的累积折扣奖励的期望。

(3)两者之间的互相转化

V_{\pi }=\sum_{a\in \mathbb{A}}^{}\pi (a|s)Q_{\pi }(s,a)

Q_{\pi }(s,a)=R_{t+1}+\gamma P_{ss{}'}^{a}V_{\pi }({s}')=\sum_{s{}'\in \mathbb{S}}^{} P_{ss{}'}^{a}[R_{t+1}+\gamma V_{\pi }({s}')]

2.2.3 贝尔曼方程

(1)状态值函数表达的贝尔曼方程

V_{\pi }=\sum_{a\in \mathbb{A}}^{}\pi (a|s)\sum_{s{}'\in S}^{}P_{ss{}'}^{a}[r+\gamma V_{\pi }({s}')]

r=r(s,a,s') 已知当前状态和执行的动作,以及下一个状态

(2)动作值函数表达的贝尔曼方程

Q_{\pi }(s,a)=r+\gamma P_{ss{}'}^{a}\sum_{a{}'\in\mathbb{A}}^{}\pi(a{}'|s{}')Q_{\pi }(s{}',a{}') =\sum_{s{}'\in \mathbb{S}}^{} P_{ss{}'}^{a}[r+\gamma \sum_{a{}'\in \mathbb{A}}^{}\pi (a{}'|s{}')Q_{\pi }(s{}',a{}')]

 (3)基于二元奖励函数的贝尔曼方程

状态值函数:

V_{\pi }=\sum_{a\in \mathbb{A}}^{}\pi (a|s)[R_{t+1}+\gamma \sum_{s{}'\in S}^{}P_{ss{}'}^{a}V_{\pi }({s}')]

动作值函数:

Q_{\pi }(s,a)=R_{t+1}+\gamma \sum_{s{}'\in \mathbb{S}}^{} P_{ss{}'}^{a}\sum_{a{}'\in \mathbb{A}}^{}\pi (a{}'|s{}')Q_{\pi }(s{}',a{}')

R=R(s,a) 只知当前状态和动作,不确定下一个状态

(三)策略评估

策略评估就是计算策略π下每个状态的状态值

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值