说明:来自李飞飞教授博士范麟熙个人公众号:心有麟熙
使用 trial and error 不断尝试,在每一次尝试中总结经验,然后再提高下一次的 reward,这就是强化学习的精髓。
q(a) = E[R_t|A_t = a]
,如 q(3) = E[R_t|A_t = 3]
表示第三台老虎机的期望奖励就是其决策价值。Q_t(a) = (R_1 + R_2 +...+ R_n)/N(a)
A* = argmax Q_t(a)
就是我们要选择的老虎机。思想实验:假设用上述方法,第⑤号老虎机的三次实验平均奖励最高,那么剩下的拉老虎机的机会将全部给予⑤号。然而,很有可能第⑦号老虎机的真正长远价值要大于⑤号,只是在你尝试⑦号老虎机的三次实验,不巧是手气不好的三次。正是因为你没有给第⑦号足够的机会,所以就导致你误判了⑤号老虎机是长远来看最好的选择。
当你专注于一个选项,每次都采取同一个 action 时,就好比在打一口油田,疯狂地针对一个地方往下钻。在强化学习中,我们把这个过程称为 Exploit,中文是 “开采”、“开拓” 的意思。当你把目前看上去最好的选项放在一边,去尝试别的选项时,我们称这个过程为 Explore,即 “探索”。
Optimistic Exploration(乐观探索法),也叫 Optimistic Initial Value(乐观初始值)。
Upper-Confidence Bound(简称 UCB,上限置信区间算法)。该算法相对比较复杂, 且只适用于 Multi-arm Bandit 问题,对别的强化学习问题并没有显著帮助。
M -> Motivation:为什么要发明这个算法?
ε 贪心算法以 ε 概率随机选择一个非最佳的 action 来进行探索。问题在于,很可能一台老虎机你已经试了 1000 次,但另一台你只试了 50 次。从统计上说,试验次数越多,得到价值估计就越准确;反之,试验次数越少,价值估计的不确定性就越大。但 ε 贪心算法完全没有考虑这一点,它只会不顾任何情况地随机试验。
IN -> Intuition:解决这个问题的直观思路是什么?
Upper-Confidence Bound 的中心思想,就是把上文提到的不确定性纳入探索过程,根据一个数学公式调整 Q 值的相对大小对最终决策的影响。校正过 Q 值之后,下一步的 action 就由纯贪心(简单的取最大值)来决定。
T -> Technicality:
其中,第二项分母 N_t(a),即某个 action 的实验次数越大,表达式的值就越小,意味着 argmax 越不容易选择这个 action。换言之,当尝试某个 action 次数越多,那么 Confidence(置信度)就越高,自然不需要更多的探索。
第二项分子中 t 越大,表达式的值也越大,argmax 更可能探索这个 action。直观的说,两个赌场里,假设 ③ 号老虎机的试验次数都是 1000 次(即 N_t(③) = 1000)。如果第一个赌场的总次数是 100 万次,第二个赌场的总次数是 2000 次,则对 ③ 号老虎机的相对置信度是第一个赌场更低。
当 c 越大,第二项的值也越大,意味着我们越多地做探索。当 c = 0,此式等价于未校正过的 Q_t(a),UCB 算法退化为简单的纯贪心算法,相当于没有任何探索成分。
其实,关键就集中在两个问题上:
Motivation
π(a)
是所有 action 的概率分布。 从 explicit policy 的视角,多臂老虎机问题就转化为学习最佳 π(a),即策略的概率分布问题。假设现有 10 台老虎机,则 π(1) = 0.1 表示选择第①台老虎机的概率是 10%;π(9) = 0.3 表示第⑨九台老虎机更可能被选择,概率为 30%。```
皇家赌场里有 10 台老虎机,π(a) 是离散概率,可以由 10 个数表示:π(a) = [p1, p2, ... p10]
,其中每个数字代表尝试每台老虎机的概率,所有概率相加等于 1。该如何学习组成 π(a)
概率分布的 10 个数,使得长远奖励的总和最大化?
Intuition
Hill Climbing,选择最陡峭的山坡移动。
Technicality
H_t(a)
表示上一步 “爬山” 的 x,H_(t+1)(a)
是爬山之后的 xE[R_t]
是奖励期望值 expectation of reward,也就是老虎机的目标函数如何求 E[R_t]
关于 H(a)
的梯度?
π(a)
,action probability,有 10 个数,每个数代表每台老虎机被选择概率,相加总和为 1。H(a)
中每个数本身的大小并不很重要,加起来也不需要等于 1,但他们的相对大小表达了我们策略的偏好。H(a) 直观可以理解为坐标 x,也就是一种选择,或者选择的结果,其中有 10 个参数,10维,可以转换为 softmax 的概率,也就是最应该选择哪一个老虎机。如何把 H(a)
转化为 π(a)
?
目标函数:
q*
为每个老虎机真实的长远价值;π
为是选择老虎机的概率分布。E[R_t]
和 H 值的关系是什么?
q*(b)
的期望值,即每个 action 的长期价值,在 expectation 上应等于 R(t)
。梯度下降
极端情况下,如果 explore 了太多,比如当ε = 1/4,意味着 25% 的时间都在做随机决定,并不妥善;如果 explore 太少,就成了贪心算法,也是非最佳状态。
黑线 Q_0:指 Optimistic Initialization 的超参数,即最初的取值。同样,Q_0 不可太大也不可太小。当 Q_0 = 1,取得最大奖励值;当 Q_0 很大,过于乐观,那么大部分时间都在 explore,浪费精力;当 Q_0 很小,不够乐观,也对获得理想奖励值无益。
蓝线 c:指 UCB(Upper Confidence Bound) 算法的超参数 confidence。同样,c 越大,意味着做越多 exploration。图中可见,随着 c 的增大,UCB 最后获得的奖励退步很明显。当 c = 0,UCB 与贪心算法等价。
绿线 α:指 Gradient Bandit 的超参数,即 step size,或 learning rate。
α与 exploration 和 exploitation 的关系并没这么明显,α控制的是梯度上升的速率。如果α过大,会造成数值不稳定,偏移你的本来目标;但如果α过小,学习的速率就会太慢。 因为 Gradient Bandit 的 explicit policy 是一个概率分布,所以,在做下一步决策时,本身就是随机采样。从这种意义上,explicit policy 是自带 exploration 的。
Gittins Index: 通过计算一个复杂函数,把在每一步取到最大值的 x,作为这一步采取的 action。Gittins 算法不仅比 UCB 更好,而且还可被在数学上证明是多臂老虎机的最优解。其大概基于的原理是:用贝叶斯统计来计算出一个最优的 exploration 和 exploitation 的平衡。一般情况下,这个平衡点无法被计算出,但是因为多臂老虎机过于简单,所以 Gittins Index 足够解决这个问题。但是,任何更复杂的问题,都没有 Gittins Index 的用武之地。