Reinforcement Learning:An Inteoduction第二章读书笔记

Part I:Tabular Solution Methods

在这一部分中我们描述了强化学习中几乎所有的核心思想。在这些问题中state和action空间足够小可以被估计值函数如队列,表来展示。在这些例子中,都能准确地找到最佳值函数和最佳策略。这与下一部分是不同的,下一部分模糊的解决,但适用范围更广。

这一部分的第一章介绍了强化学习的特殊例子,它只有一种情况,被称作bandit问题。第二章介绍了延续到本书剩余部分的通用问题形式化——有限马尔科夫决策过程。他的核心思想包括bellman equation 和value function。

接下来的三章介绍了解决有限马尔科夫问题的三类问题:动态编程,Monte Carlo method,和时序差分学习。每类方法都各有优缺点。

方法 评价
动态编程 可以发挥数学上计算优势(are well developed mathematically),但是需要一个完全准确地环境模型。
Monte Carlo methond 不需要环境模型,概念简单,但不适合步进计算。
时序差分算法 不需要环境模型,完全步进,但分析十分复杂。

接下来的两章如何结合三种方法来最大化效果。在前一章中我们介绍了如何通过 multi-step bootstrapping method 来吧Monte Carlo methon和时序差分学习的优势结合起来,最后一章介绍了时序差分学习如何跟模型学习和计划方法(如动态规划)结合来提供一个完全的统一的解决表式强化学习问题的方法。

Chapter 2 Multi_armed Bandits

强化学习与其他类型的学习最显著的特征是它靠训练的信息评定action而不是通过给出正确的action来被指导。评定性反馈(evaluative)完全根据采取的行动,而指导性反馈(instructive)和采取的行动是独立的。

在这一章我们以最简单的方式来研究评定性强化学习,只涉及一种情况(situation)。学习这种非关联(nonassociative)问题可以简化完全强化学习问题,并清晰地掌握评定性判定与指导性的不同和结合。

2.1 k臂赌博机问题(A k-armed Bandit Problem)

简单来说有k个不同的选择,选择后得到reward,目标是最大化reward。在今天"bandit problem"一般就代表这类问题。

每个action都有期望reward,称为the value of the action。

At: 表示在t步的action     q*(a):表示该action的期望reward    Qt(a) :estimate of the q*(a)

the greedy action:每次都选择最大的估计值的action,即max Qt(a).

explore :选择非贪婪action,非最大estimate,目标是改变该action的估计值,使之更接近真实q*(a).

有探索(explore)的方法通常开始时效果不好,但随着过程的继续,会有更好的效果。

与平衡explore和exploit有关的因素有:value of estimate的准确程度,不确定度,剩余步数。有许多复杂的方法来对该问题平衡。在本书中我们不关心复杂平衡算法的具体方式,而只需了解有平衡利用和探索这个问题就行。

2.2 值函数方法(action——value method)

一个自然的方法是通过给已收到reward求平均来计算。

贪婪算法就是每次都选择最大估计值得action。每次都用贪婪算法都是利用已有的数据,所以必须要探索新的action,一个可以行得通的方法是 e-greedy 方法。每次有e的概率非贪婪选择,这样可以explore到更多的action,通常情况下效果更好。

2.3 10臂测试(The 10-armed Testbed)

一种分配方法,平均值为0,方差为1


Rt:在第t步的reward

我们比较了greedy算法 和 e_greedy算法的性能。


e-greedy方法要比greedy方法好,在这个例子下,e greedy method后来的性能要好。而且e=0.01的性能要比e=0.1的要好,因为前者的上升趋势更明显。

e greedy 和greedy 的比较也与问题有关。例如方差是10时,优势更明显,方差是0时,贪婪算法更好,因为只需实验一次,可以比e greedy更快地找到最优行动。但是,即使是确定性的问题e greedy方法表现的更好,当我们弱化一些假设。例如当bandit task 是动态的也就是value是变动的。这种情况下探索是必要的来适应变动。动态问题是强化学习中最常见的。

2.4增量实现(Incremental Implementation)

到目前为止,值函数的估计都是利用了样例的平均。我们现在考虑一个计算高效的方式。

Ri: 代表第i次选择该action的reward。

Qn:代表前n-1次action 的result的平均值。

Qn = (R1+R2+'''+Rn-1)/(n-1)

优化方法


这个公式表明只需要Qn和n的内存保留,而且仅需要一点计算。

另外这个更新公式其实是本书中经常出现的形式,其通用形式是

NewEstimate = OldEstimate + StepSize[Target-OldEstimate]

解释:[Target-OldEstimate]是估计值的偏差,通过与result更接近来减小偏差。

我们一般用α(a)来表示步进参数。

2.5介绍一个动态问题(Tracking a Nonstationary Problem)

上面平均样例的方法对于静态赌博机问题是合适的,因为赌博机问题result的probability不会改变。

但在强化学习中我们碰到的强化学习问题大多是是非静态的,这种情况下,给最近的reward比以前的result更多的权重就显得比较合理。一种最流行的方式之一是用一个不变的step-size parameter,即

Qn+1 = Qn + α[Rn - Qn]

其中α是常量,


这是一个加权平均值。可以被称为指数式最近权重平均值(exponential recency-weighted average)。

改变α(a)的值是很方便的。求样例平均值的方法中α(a)=1/n,很显然是收敛到真实value的。

不是所有的α(a)都能使之收敛。一个非常出名的随机估计理论给满足收敛我们一个公式


满足第一个条件可以保证有足够多的步数来最终消除初始值和偏差的影响。满足第二个公式可以保证步会越来越小来保证收敛。

强化学习研究问题主要是非静态的,公式现在主要应用于理论研究,很少被用在实际应用中。

2.6乐观初始值(Optimistic Initial Value)

在以上使用的方法都一定程度地受初始action-value值的影响。在统计学中,这些方法是有歧视的。在样例平均方法(sample-average methon)中等到所有action都出现一次,歧视便消失了。而在有常量α的方法中其实一直存在,尽管影响会随着时间减小。优点是可以利用这点来设置value预期来达到自己的目的

设置较高的初始action-value值可以被用作一个简单的方法来鼓励探索。


如上图所示,optimistic greedy方法中开始时效果不好,而在后来效果要比realistic e-greedy方法要好。

这是因为开始时该方法探索了更多的数据,后来表现的好是因为随着时间探索变得少了。

局限:乐观初始值对静态问题十分有效,而对强化学习中最多的动态问题的解决没有多少帮助。因为动态问题对探索的需求一直存在,而不止在开始时需要探索。

它经常被用作简单的方法和其他算法结合起来使用。

2.7上限置信区间(Upper-Confidende-Bound)

因为action-value估计值总有准确度的不确定性,所以探索是必要的。e-greedy算法选择非greedy的action是随机选择的,没有照顾那些接近最好和不确定高的action。一个有效的方法是上限置信区间算法。它既考虑了接近最大的程度,也考虑了action的不确定性。


Nt(a)表示在时间t之前a被选择的次数,c指confidence level,ln t表示t的自然对数(后来增加会变慢)。

进一步解释:假设在一步中选择了a,那么Nt(a)增加,不确定度减少,而非a的不确定度会变大,因为ln t增加。


UCB一般要比e-greedy算法要好,因为它对非贪婪选择有选择依据。

局限:UCB算法应用到其他强化学习问题中要比e-greedy更困难。

困难之一是:处理非静态问题,方法要比之前的方法要更复杂。困难之二是处理大转态空间,特别是在本书第二部分使用的模糊函数。

2.8梯度赌博机算法(Gradient Bandit Algorithm)

到目前为止我们使用方法来估计value,并用action value的估计值来选择action,这些方法一般是个好方法,但不是唯一的。在这一节中我们用Ht(a)来表示该action的数值倾向,倾向越大,该action就越容易被选择,但是倾向与result没有直接关系。

soft—max distribution(选择依据)


π(a)在时间t下 action被选择的可能性。初始时所有action的preference都是相同的,所以他们被选择的可能性都是一样的。

preference更新


在这里Rt表示所有result(包括时间t)的平均值,被叫做baseline。如果result比baseline高,则该action在未来被选择的可能性会变高,反之则选择该action的可能性降低;对非action来说正好相反。


2.9上下文赌博机(Associative Search Contextual Bandits)

到目前为止在本章中我们只考虑了非关联的任务,没有必要考虑在不同的情况下考虑不同的action。然而通用强化学习任务是不止一种情况的,目标是学习到一个策略(policy):一个可以根据不同的情况选择该情况下最好的action的映射。学习非关联问题是为了给学习关联问题做铺垫。

给出一个例子:假设有好几个不同的k-armed bandit问题,每次选择后你将随机面对不同一个问题,这种问题使用我们之前的方法不能很好地解决,除非真实action value变化的很慢。

假设你有一个策略(policy)当出现一种情况,你就可以根据它选择该状态下最好的action,这就是关联搜索问题(associative search task),在学术上经常被叫做contextual bandits。关联搜索问题处于k-armed bandit和完全强化学习之间。它像强化学习是因为它有一个学习策略,它像多臂赌博机问题是因为每个action只影响下一个reward。如果action既能影响reward也能影响下一步的情况,那么就变成完全强化学习问题了。

2.10 总结

本章中介绍了几个解决exploration和exploitation问题的几种方法:

e-greedy方法在小概率情况下随机选择非贪婪action,而UCB算法可以更倾向那些没有多少样本的action。梯度赌博机算法根据preference 而不是action value来选择action,利用了基于等级和概率的soft-max distribution。简单的设置乐观初始值可以使贪婪算法更有效。



在各种方法中我们不仅要看他们的在最佳参数下的情况,还要考虑他们对参数值的敏感程度。所有的这些方法是相当不敏感的。

总体来说UCB方法表现的最好。

这几种平衡exploration和exploitation的方法还远远没达到要求。对于多臂赌博机问题一个比较好的方法是计算特殊函数
(Gittins indices).但是这种方法不通用,而且假设可能问题的分配是一致的。另外一种方法是Bayesian methond。这种方法 有时被称为posterior samplping .这种演化的方式就变成了问题的状态(state)信息。但是选择的数空间十分大,准确地计算出 所有的计算是不实际的,但是可以被高效的估计。这就使bandit problem变成强化学习问题的一个例子了,在第二部分可以用模 糊方法来解决。但是已经超出本书范围了。










猜你喜欢

转载自blog.csdn.net/qq_34719975/article/details/79933606