作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己学习强化学习的学习历程,希望对大家能有所帮助。这个系列后面会不断更新,希望自己在2021年能保证平均每日一更的更新速度,主要是介绍强化学习的基础知识,后面也会更新强化学习的论文阅读专栏。本来是想每一篇多更新一点内容的,后面发现大家上CSDN主要是来提问的,就把很多拆分开来了(而且这样每天任务量也小一点哈哈哈哈偷懒大法)。但是我还是希望知识点能成系统,所以我在目录里面都好按章节系统地写的,而且在github上写成了书籍的形式,如果大家觉得有帮助,希望从头看的话欢迎关注我的github啊,谢谢大家!另外我还会分享深度学习-基础知识专栏以及深度学习-论文阅读专栏,很早以前就和小伙伴们花了很多精力写的,如果有对深度学习感兴趣的小伙伴也欢迎大家关注啊。大家一起互相学习啊!可能会有很多错漏,希望大家批评指正!不要高估一年的努力,也不要低估十年的积累,与君共勉!
Policy evalution
定义
- Objective: Evaluate a given policy π \pi π for a MDP :为了评价MDP中一个策略的好坏
- Output: the value function under policy v π v^{\pi} vπ :输出是价值函数
- Solution: iteration on Bellman expectation backup :不断做贝尔曼更新
- Algorithm: Synchronous backup
At each iteration t + 1 t+1 t+1 update v t + 1 ( s ) v_{t+1}(s) vt+1(s) from v t ( s ′ ) v_{t}\left(s^{\prime}\right) vt(s′) for all states s ∈ S s \in \mathcal{S} s∈S where s ′ s^{\prime} s′ is a successor state of s s s
v t + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v t ( s ′ ) ) \begin{array}{c} v_{t+1}(s)=\sum_{a \in \mathcal{A}} \pi(a \mid s)\left(R(s, a)+\gamma \sum_{s^{\prime} \in \mathcal{S}} P\left(s^{\prime} \mid s, a\right) v_{t}\left(s^{\prime}\right)\right) \\ \end{array} vt+1(s)=∑a∈Aπ(a∣s)(R(s,a)+γ∑s′∈SP(s′∣s,a)vt(s′))
Convergence: v 1 → v 2 → … → v π \begin{array}{c} \text { Convergence: } v_{1} \rightarrow v_{2} \rightarrow \ldots \rightarrow v^{\pi} \end{array} Convergence: v1→v2→…→vπ
Or if in the form of
M
R
P
<
S
,
P
π
,
R
,
γ
>
\mathrm{MRP}<\mathcal{S}, \mathcal{P}^{\pi}, \mathcal{R}, \gamma>
MRP<S,Pπ,R,γ>
v
t
+
1
(
s
)
=
R
π
(
s
)
+
γ
P
π
(
s
′
∣
s
)
v
t
(
s
′
)
v_{t+1}(s)=R^{\pi}(s)+\gamma P^{\pi}\left(s^{\prime} \mid s\right) v_{t}\left(s^{\prime}\right)
vt+1(s)=Rπ(s)+γPπ(s′∣s)vt(s′)
最优策略和最优价值函数
解决强化学习任务大概意味着要从长远的角度找到一个取得很大回报策略。 对于有限MDP,我们可以通过以下方式精确地定义一个最优策略。价值函数对策略进行部分排序。 如果策略 π 所有状态的预期返回值大于或等于策略 π′ 的值, 则该策略 π 被定义为优于或等于策略 π′。 换句话说,对所有 s∈S,π≥π′, 当且仅当 vπ(s)≥vπ′(s) 时,成立。 总是至少有一个策略优于或等于所有其他策略。这个策略称为 最优策略。 虽然可能有不止一个,我们用 π∗ 表示所有最优策略。 它们共享同样的状态值函数,称为 最优状态价值函数,表示为 v∗,并定义为
v ∗ ( s ) = max π v π ( s ) v^{*}(s)=\max _{\pi} v^{\pi}(s) v∗(s)=maxπvπ(s)
可以说,当我们知道 v ∗ ( s ) v^{*}(s) v∗(s)的时候,这个MDP问题就被解决了,(因为我们就可以把所有动作遍历一遍,然后求出最大的q(s,a)。
最优的策略:
π ∗ ( s ) = arg max π v π ( s ) \pi^{*}(s)=\underset{\pi}{\arg \max } v^{\pi}(s) π∗(s)=πargmaxvπ(s)
最优动作价值函数:
q ∗ ( s , a ) ≐ max π q π ( s , a ) q_{*}(s, a) \doteq \max _{\pi} q_{\pi}(s, a) q∗(s,a)≐maxπqπ(s,a)
q ∗ ( s , a ) = E [ R t + 1 + γ v ∗ ( S t + 1 ) ∣ S t = s , A t = a ] q_{*}(s, a)=\mathbb{E}\left[R_{t+1}+\gamma v_{*}\left(S_{t+1}\right) \mid S_{t}=s, A_{t}=a\right] q∗(s,a)=E[Rt+1+γv∗(St+1)∣St=s,At=a]
当我们知道 q ∗ ( s ) q^{*}(s) q∗(s)的时候,我们马上就得到了最优策略。
上一篇:强化学习的学习之路(十一)_2021-01-11 :贝尔曼方程
下一篇:强化学习的学习之路(十三)_2021-01-13:Policy Iteration和Value Iteration及其Python实现