这个学习笔记和一般的强化学习的略有不同:不同于其他蛮多从现实出发举例子然后定义问题,本文选择从Bellman Equation
出发,然后偏数学的定义一个我们要解的最佳化问题,然后通过要怎么找到这个问题的解来引入一系列强化学习中常有的算法,稍微大概了解感性上的了解强化学习以后再看这一篇也许会对读者有一点帮助吧!
问题的定义
最佳化问题
强化学习,从某种程度上来说,是在解这样的一个问题:
就是给定了函数 F F 和 ,你需要找到 x1,x2,... x 1 , x 2 , . . . 使得 ∑∞t=0βtF(xt,xt+1) ∑ t = 0 ∞ β t F ( x t , x t + 1 ) (下面称为式子 [∗] [ ∗ ] )最大,并且有限制如下: xt+1 x t + 1 是从 Γ(xt) Γ ( x t ) 中选(请注意是 Γ(xt) Γ ( x t ) 而不是 Γ(xt,xt−1,...,x0) Γ ( x t , x t − 1 , . . . , x 0 ) !这意味着什么呢?)
那对应到强化学习的术语中,我们可以将这里的
xt
x
t
看成是时间
t
t
时候的state,那我们相当于给定初始的状态,选择下一个状态以及下一个(强化学习中选择下一个状态大概相当于要选择一个action
然后到下一个状态)。可以将 看作是reward function
:即从这个状态选择到下个状态,你会得到的reward
。
那如果你对这样的描述没有问题,我想你对强化学习的困惑应该已经少掉些了,因为这个问题显然是有解的,我只要遍历所有的可能就好啦!那显然这样不够有效率(但至少代表你可以解!)
递归问题
要如何从
[∗]
[
∗
]
变到我们熟悉的强化学习的问题呢?恩,
为了方便期间,我用
如果假设我们现在已经选择了
x1
x
1
,那么
Finite Markov Decision Processes
找到问题的解
数学方法
好,我们现在已经把前面的问题转化为以下的问题了:
那么要怎么解这个问题呢?这看起来虽然简单,但好像对于求解这个
我从这里看到的方法(略去了很多关于V
和 F
的假设)
我们
注意 T T 是一个函数,但是他的自变量不是 而是 f f ,即
所以呢,我们要解的是一个不动点的问题,
在这边,由于函数是 T T (对应的)自变量是 f f (对应着上式的),则我们
即
这就回到了式子,那么问题来了,要怎么解这个不动点的问题呢?
之所以可以这么做的原因是
设解是 x∗ x ∗ 那么就有
我们就像看 xn+1 x n + 1 是不是比 xn x n 更接近正确答案 x∗ x ∗ 呢?
我们有的条件是 g(x∗)=x∗ g ( x ∗ ) = x ∗ 以及 xn+1=g(xn) x n + 1 = g ( x n ) ,代入 d d 有
那我们要看 d d 是否大于0,则相当于看
是否大于1(这也是可以使用这个方法的前提!换句话说这是对 V V <script type="math/tex" id="MathJax-Element-45">V</script> 的要求)