之前的一章了解到了如何在无模型的环境下进行各个状态转移概率以及价值函数的估计。但是仍留有一个疑问,在有模型为前提的动态规划算法中,各个状态的转移概率已知,从而可以通过尝试策略组合找出最优策略。但是实际上我们的蒙特卡洛方法和时间差分方法都只估计除了转移概率和价值函数,并没有对于策略的优化及其方法做出更多的考虑。这也就是我们需要深入讨论的问题——如何优化既有的控制策略。
粗略来说,基于无模型控制的控制策略一般分为在线控制还有离线控制两种,其分别代表在学习的过程中就进行策略优化,抑或是充分学习了各个结点的转移概率之后再进行策略优化。
1.策略优化
在增强学习的控制体系里面,最基本的原理就是获得不同状态-动作对的价值函数,并在新的状态到来之时选择价值函数最高的那个状态-动作对加以执行。这样,控制问题实际上就拆解为了两个子问题:1.如何选取价值最高的状态-动作对。2.如何得到状态-动作对的价值。
1.1.决策问题
我们先来讨论如何选取价值最高的状态–动作对问题,读者可能会疑问:直接选取数值最高的不就好了?但是实际上并不是这样的,偶尔我们还是需要机器做出一些“错误”的决定的。
我们先来看这样一个问题:
假设这样一个场景,在状态 s 时,有两个动作
- A-0
- B-1
- A-0
- B-2
- B-1
- A-7
- A-8
- A-6
如果我们只知道前四项经验,我们可能会理所当然的认为选择 A 动作没有收益,从而偏向于在每一次状态s 的时候都选择 B 动作,但是,这种判断并不一定是正确的。
然而,在实际的控制过程中,由于经验的数目是有限的,我们很难保证我们获得的经验数据就能够全面说明事物之间状态转换的规律了。所以,有一个思想是:我们不能完全信任我们得到的样本,在进行决策判断的时候,偶尔还是要做一个”错误”的决策,来尝试得到新的样本,这就好像是从学校到家每次都是走的同一条路,你已经习惯了走这条路并且“认为”这条路是离你家最近的,但是偶尔某一天你心血来抽从另一条小路回家,发现这条路竟然更近!我们的决策里面,正是要模拟这一过程,以探索得到最佳的答案。