8-探索与开发(Exploration and Exploitation)
1.导论
探索与开发二难问题
- 基于决策的决策过程存在以下两种选择
- 开发:基于目前的学习做最优的决策
- 探索:获取更多的学习
- 最佳的长期策略或许会包含一些短期的牺牲
- 获取足够的信息更能得到最为全面的决策
探索的方案(Approach to Exploration)
- 随机探索(Randon exploration)
- 通过随机动作进行探索(如(epsilon-Greedy, softmax))
- 基于不确定性的最优解
- 先估计各种价值的不确定性
- 然后优先选择最高不确定性的状态与动作
- 信息状态空间
- 将智能体agent的信息也作为状态部分之一
- 前向观察看看得到的信息对回报有没有帮助
状态-动作探索与参数探索
- 状态-动作探索(Sate-action exploration)
- 系统性地对状态/动作空间进行探索
- 例如在每次到达(S)选择不同的动作(A)
- 参数探索(Parameter exploration)
- 存在参数策略(pi(A|S,mathbf u))
- 例如,每次都选择不同的参数然后测试一下
- 好处在于:可持续性的探索行为
- 劣势在于:不能获知状态/动作空间(即事实上并非因为信息增益而走出了这一步)
因此我们重点在于状态-动作探索
2.多臂老(和谐)虎(和谐)机问题(Multi bandit)
- 对于一个多臂老(和谐)虎(和谐)机模型是一个元组(langle mathcal{A,R} angle)
- (mathcal{A})是一个已知的动作序列(”摇臂“)
- (mathcal{R^a}(r)=mathbb{P}[R=r|A=a])则是一个未知的回报概率分布
- 对于每一步(t),智能体agent会选择一个动作(A_tinmathcal{A})
- 然后环境在生成一个回报(R_tsimmathcal{R^{A_t}})
- 目标在于最大化累计回报(sum^t_{r=1}R_r)
**可以看作一个单步MDP模型
分析
-
对于一个动作-价值是对于动作(a)的一个均值回报
[q(a)=mathbb{E}[R|A=a] ] -
对于最优价值(v_*)则是
[v_*=q(a^*)=max_{ainmathcal{A}}q(a) ] -
对于悔数(Regret)则是对于每一步的机会损失(opportunity loss)
[l_t=mathbb{E}[v_*-q(A_t)] ] -
总的悔数则是总的机会损失
[L_t = mathbb{E}igg[sum^t_{ au=1}v_*-q(A_ au)igg] ] -
最大化累计回报(equiv)最小化总悔数
计算悔数(Counting Regret)
-
对于计数(N_t(a))是对于选择动作(a)的期望
-
对于间隔(gap)(Delta_a)是动作(a)与最优动作(a^*)的价值之差,(Delta_a = v_*-q(a))
-
悔数则是与间隔与计数相关的函数
[egin{align} L_t & = mathbb{E}igg[sum^t_{ au=1}v_*-q(A_{ au})igg] \ & = sum_{ainmathcal{A}}mathbb{E}[N_t(a)](v_*-q(a)) \ & = sum_{ainmathcal{A}}mathbb{E}[N_t(a)]Delta_a end{align} ] -
对于一个性质良好的算法可以确保小计数量就可以得到大的间隔
-
问题在于间隔乃是未知的!
贪心算法(Greedy Algorithm)
-
我们认定算法中存在近似关系(Q_t(a)approx q(a))
-
然后通过蒙特卡罗评估去估计每一次动作的价值
[Q_t(a) = frac{1}{N_t(a)}sum^T_{t=1}mathbf1(A_t=a)R_t ] -
贪心算法选择最高价值的动作
[A_t=mathop{argmax}_{ainmathcal{A}}Q_t(a) ] -
为此贪心算法(因为其完全不探索)使得其局限于局部最优解动作中
-
为此贪心算法的总悔数函数是呈线性的
最优初始化的贪心算法(Greedy Algorithm with optimistic initialisation)
-
将价值初始化为最大值即(Q(a)=f_max)
-
然后运行贪心算法的行为:
[A_t=mathop{argmax}_{ainmathcal{A}}Q_t(a) ] -
鼓励去探索未知的价值
-
同样也存在一些情况会使得其无法找到最优解动作
-
同样最优初始化贪心算法也是线性悔数
-
主要思想:未知价值的动作高阶于已知价值的动作
(epsilon-Greedy)算法
-
对于(epsilon-Greedy)一直保持探索状态
-
对于(1-epsilon)的概率选择
[A_t=mathop{argmax}_{ainmathcal{A}}Q_t(a) ] -
对于(epsilon)的概率会选择一个随机动作
-
-
但是(epsilon-Greedy)同样会是线性的总悔数
-
跟Softmax探索差不多
衰变(epsilon-Greedy)算法(Decaying (epsilon-Greedy) Algorithm)
-
我们为(epsilon_1,epsilon_2)去加入一个衰变的新方式
-
如下所示;
[egin{align} c & > 0 \ d & = min_{a|Delta_a>0}Delta_a \ epsilon_t & = minigg{1,frac{c|mathcal{A}|}{d^2t}igg} end{align} ] -
衰变(epsilon-greedy)算法对数渐近的总悔数
-
不过不幸的是,这种衰变形式需要提前知道间隔
-
目标:找到一个在多臂老(和谐)虎(和谐)机上具有近似于线性总悔数的算法(一开始对于(mathcal{R})是一无所知的)
-
算法的表现主要取决于最优摇臂以及其他摇臂的差距
-
最复杂的问题就是相似的摇臂但是有多个均值
-
主要是用间隔(Delta_a)以及分布的相似度(KL散度):(KL(mathcal{R^a|R^(a^*)}))
黎·拉宾氏定理(Lai and Robbins)**黎氏:黎子良(Tze Leung Lai)香港美籍科学家
对于渐近总悔数其下界至少是与步数呈对数增长
上确信界(Upper Confidence Bounds)
-
为每个动作价值估算一个上确信界(U_t(a))
-
例如说(q(a)le Q_t(a) + U_(a))就具有较高的概率
-
这主要取决于计数(N(a))的取值
- 如果是小的(N_t(a))情况下( ightarrow)具有较大的(U_t(a))(这么说估计价值是不确定的)
- 如果是大的(N_t(a))情况下( ightarrow)具有较小的(U_t(a))(这么说估计价值是精确的)
-
为此我们选择上确信界(UCB)最大的动作
[A_t = mathop{argmax}_{ainmathcal{A}}Q_t(a) + U_t(a) ]
霍夫丁不等式(Hoeffding;s Inequality)
-
使(X_1,dots,X_t)是符合(i.i.d.)条件的处于区间([0,1])随机变量,并且使得(overline X_t = frac{1}{ au}sum^t_{ au=1}X_ au)作为采样均值。然后:
[mathbb{P}[mathbb{E}[X]>overline X_t + u]le e^{-2tu^2} ] -
我们将会把霍夫丁不等式应用于老(和谐)虎(和谐)机问题的回报
-
由选择动作作为条件
[mathbb{P}[q(a)>Q_t(a) + U_t(a)] le e^{-2N_t(a)U_t(a)^2} ]
解决上确信界(Solving Upper Confidence Bounds)
-
求出真实价值超出(UCB)的概率(p)
-
开始求解(U_t(a))
[egin{align} e^{-2N_t(a)U_t(a)^2} & = p \ U_t(a) & = sqrt{frac{-log p}{2N_t(a)}} end{align} ] -
当我们对回报的观测越多,(p)就会降低,例如说(p = t^{-4})
-
确保我们在(t ightarrow infin)时每次选择最优动作
[U_t(a) = sqrt{frac{2log t}{N_t(a)}} ] -
为此引出了(UCB1)算法(还有很多形式可供尝试)
[A_t = mathop{argmax}_{ainmathcal{A}}igg(Q_t(a) + sqrt{frac{2log t}{N_t(a)}}igg) ]为此(UCB)算法成功达到了对数渐近总悔数
[lim_{t ightarrowinfin}L_tle 8log tsum_{a|Delta_a > 0}Delta_a ]
更多的上确信界形式
- 上确信界也可以用其他不等式去表示
- 伯恩斯坦不等式(bernstein's inequality)
- 经验伯恩斯坦不等式(Empirical Bernstein's inequality)
- 车尔诺夫不等式(Chernoff inequality)
- 奥兹玛不等式(Azuma's inequality)
- ...
贝叶斯老(和谐)虎(和谐)机(Bayesian bandits)
-
贝叶斯老(和谐)虎(和谐)机显式地利用了以往关于回报的学习,即(p[mathcal{R^a}])
-
我们定义一个带有参数(mathbf w)关于动作-价值函数分布(p[Q|mathbf w])
- 例如说多组独立的高斯分布(mathbf w = [mu_1,sigma_1^2,dotsmu_k,sigma^2_k])对于所有的(ain[1,k])
-
贝叶斯方法在于计算后来的关于(mathbf w)的分布
[p[mathbf w | R_1,dots,R_t] ] -
通过后来的数据来制导探索进程
- 上确信界
- 概率匹配(Probability Matching)
-
前置信息越精确,那么算法性能越好
基于上确信界的贝叶斯老(和谐)虎(和谐)机(Bayesian Bandits with Upper Confidence Bounds)
-
通过贝叶斯定律计算前置(p[mathbf w|R_1,dots R_{t-1}])
-
计算动作-价值的后置分布
(p[Q(a)|R_1,dots R_{t-1}]=p[Q(a)|mathbf w]p[mathbf w|R_1,dots,R_{t-1}])
-
然后估计后置状态的上确信界,如(U_t(a)=csigma(a))
- 其中(sigma(a))是(p(Q(a)|mathbf w))的标准差
-
然后选择动作以让(Q_t(a) + csigma(a))最大化
概率匹配(Probability Matching)
-
概率匹配基于(a)是最优动作的概率去选择动作
[pi(a)=mathbb{P}igg[Q(a) =max_{a'}Q(a')|R_1,dots,R_{t-1}igg] ] -
概率匹配在于未确定下方面也是充分乐观的
-
对于不确定性的动作有更高的可能性成为最大值
-
但是解析性地计算后续状态的(pi(a))比较困难
辛普森采样(Thompson Sampling)
-
辛普森采样属于一种基于采样的概率匹配
[pi(a)=mathbb{E}igg[mathbf 1(Q(a)=max_{a'}Q(a'))|R_1,dots,R_{t-1}igg] ] -
然后通过贝叶斯定律去计算后续分布
[p_mathbf w(Q|R_1,dots,R_{t-1}) ] -
从前驱状态去采用一个动作-价值函数(Q(a))
-
然后通过最大化采样去选择动作
[A_t = mathop{argmax}_{ainmathcal{A}}Q(a) ] -
对于伯努利老(和谐)虎(和谐)机,辛普森采样成功达到了黎氏与拉宾氏最低悔数下界
价值信息(Value Information)
- 探索之所以好用乃是因为其增长了信息
- 那么我们可以去量化信息的价值吗?
- 多少回报对于一个决策器会准备去付出代价去探索获取其信息,而不着急于决策
- 获取信息后的长期回报与短期回报(瞬间回报)的对比
- 在不确定性的情况下,显然信息增益更为重要
- 为此在未知情况下进行探索更为合理
- 当我们知道了信息的价值之后,我们就能最优地权衡探索与开发了
信息状态空间(Information State Space)
-
我们已经将老(和谐)虎(和谐)机问题视为一步决策问题了
-
同样也可以视为序列决策问题
-
每一步都存在一个信息状态(overline{S})把过去所有的信息累计起来
-
对于每个动作(A)会引出一个状态转移到达新的一个信息状态(overline{S'})(通过信息加和),基于概率(overline{P}^A_{overline{S},overline{S}'})
-
为此现在我们就拥有了一个增强信息状态空间的(MDP mathcal{overline{M}})
[mathcal{overline{M}}=langle overline{S}, mathcal{A},mathcal{overline{P}},mathcal{R},gamma angle ]
伯努利老(和谐)虎(和谐)机(Bernoulli Bandit)
- 我们定义伯努利老(和谐)虎(和谐)机即:(mathcal{R^a}=mathcal{B}(mu_a))
- 例如说:药动力学成功的概率就有(mu_a)
- 欲找出最高(mu_a)的摇臂
- 因此信息空间为(overline{S}=langlealpha, eta
angle)
- (alpha_a)计数了拉取摇臂(a)然后其回报为0
- (eta_a)计数了拉取摇臂(b)然后其回报为1
信息状态空间老(和谐)虎(和谐)机(Information State Space Bandits)
- 我们通过一个关于信息状态的无穷MDP来方程化这个老(和谐)虎(和谐)机
- 这个MDP显然可以用强化学习解决
- 无模型强化学习(Model-free reinforcement learning)
- 例如:Q-learning(Duff,1994)
- 基于贝叶斯模型的强化学习
- 例如:吉丁斯指标(Gittins indices)(Gittins,1979)
- 后来的方法一般被认为是适应于贝叶斯的强化学习
- 寻找关于先前分布的探索/开发贝叶斯最优解
适应于贝叶斯的伯努利老(和谐)虎(和谐)机(Bayes-adaptive Bernoulli Bandits)
-
从关于回报函数(mathcal{R^a})的(Beta(alpha_a,eta_a))开始
-
每一次时间选择动作(a),然后更新后续的(mathcal{R^a})
- (Beta(alpha_a + 1,eta))若回报为0
- (Beta(alpha_a,eta_a+1))若回报为1
-
如此就得以为适用于贝叶斯的MDP了一个状态转移函数(mathcal{overline{P}})
-
对于所有的信息状态((alpha,eta))代表着一个模型(Beta(alpha,eta))
-
而每次状态转移则代表一个贝叶斯模型的更新
-
求解适用于贝叶斯的MDP需要考虑到价值信息
-
因为新信息的影响会作为因子影响到模型更新中
更多拓展
-
在伯努利的问题中,适用于贝叶斯的MDP可以直接通过动态规划解决
-
这种解法正是被称之为吉丁斯索引(Gittins index)
-
但是精确来说解决一个适用于贝叶斯的MDP是有点麻烦的
-
近来的方法已经可以做到探索大规模规划了
(例如蒙特卡罗树搜索算法)
-
供以构造一颗前向树然后寻找贝叶斯从最开始的学习状态的最优探索与开发权衡
解决多臂老(和谐)虎(和谐)机的总算法
- 随机探索
- (epsilon-Greedy)
- (Softmax)
- 高斯噪音
- 基于不确定性的最乐观情况(当未知状态太多时容易陷入无穷状态)
- 最优初始化
- 确信上界
- 辛普森采样
- 学习状态空间
- 吉丁斯指标
- 适用于贝叶斯的MDP
上下文式老(和谐)虎(和谐)机
- 对于一个上下文式老(和谐)虎(和谐)机定义为元组(langle mathcal{A, color{red}{S},R} angle)
- (mathcal{A})为一个已知的动作集(或者称为摇臂)
- (mathcalcolor{red}{S}=mathbb{P}[mathcal{S}])则为一个关于状态(或者称为上下文)相关的未知分布
- (mathcal{R^a_color{red}{s}}(r)=mathbb{P}[R=r|color{red}{S=s},A=a])则为一个关于回报未知的概率分布
- 对于每一步(t)
- 环境产生状态(S_tsim mathcal{S})
- 智能体选择动作(A_tinmathcal{A})
- 环境产生回报(R_tinmathcal{R^{A_t}_{S_t}})
- 目标是最优化累计回报(sum^t_{r=1}R_r)
马尔科夫决策过程
上确信界的马尔科夫决策过程
- 对于UCB法也能应用于整个MDPs
- 然后给出一个无模型的强化学习算法
- 最大化动作-价值函数中的上确信界
- 其中有一个较成功的方法去解决无模型强化学习的探索与开发
- 首先构造一个MDP模型
- 对于未知或者是知道极少的状态,直接用(r_max)去取代他的回报函数
- 即是:非常乐观地面对不确定性
- 通过你喜欢的算法解决这个乐观MDP即可
- 策略迭代
- 价值迭代
- 树形搜索
- ...
- 例如说 Rmax算法
适用于贝叶斯的MDP
-
MDPs同样可以通过信息状态来增强
-
现在增强过的状态为(overline{S}=langle S,I angle)
- 其中(S)是MDP的原状态
- 其中(I)是累计的信息
-
适用于贝叶斯的方法得到了一个后继状态模型代表着每个已经被增强过的状态(mathbb{P}[mathcal{P,R}|I])
-
求解适用于贝叶斯的MDP去寻找最优探索开发权衡必须关系与前驱状态
-
然而增强MDP一般来说都较为庞大
-
蒙特卡罗树形搜索在这里就被证明比较高效了(Guez等人的工作)
-
进阶的来说还有更多用来安排探索与开发的复杂方法
- 随机探索
- 乐观不确定性
- 学习状态空间