本系列主要是上述这本Introduction to Multi-Armed Bandits
的读书笔记。
多臂老虎机是一个简单但非常强大的算法框架,主要是在一段时间内不确定情况下做出决策。主要描述的是,一个算法有K个可能的动作可供选择,也就是臂,还有T轮。在每一轮中,算法选择一个臂,并为这个臂收集一个奖励。奖励是独立于某个固定的分布(即,只取决于所选的臂),但算法不知道这个分布。算法最核心的在于平衡探索和利用。
多臂老虎机算法能得到的反馈主要分为三种:
- Bandit feedback:算法所观察到的奖励只来自所选择的
arm
; - Full feedback:算法所观察到的奖励来自所有
arm
; - Partial feedback:并不总是
Full feedback
。
奖励的模型也大致可以分为以下几种情况:
- IID rewards:每个
arm
的奖励都是独立的,从一个固定的分布中得到,只与arm
有关,与回合数 无关。 - Adversarial rewards:奖励任意,但是这个任意是为了迷惑算法。
- Constrained adversary:奖励也是任意的,但是改变不会太大,或者说具有改变的上界,也就是被约束的。
- Stochastic rewards (beyond IID):奖励就是随机给的。
这里还有一些名词需要解释一下
- Contexts: 上下文的一些信息,比如做食物推荐,
Contex
可能就包括位置信息等,用于更好的做个性化推荐。在多臂老虎机问题中就显现在某个arm
上具备一些特定的信息,用于辅助决策。 - Bayesian priors:问题转化为贝叶斯框架下的求解问题之后,将某些知识转化为一个先验分布,称之为贝叶斯先验
Bayesian priors
。 - Structured rewards:奖励是一个已知的结构,例如奖励是所选择arm的一个线性函数。
- Global constraints:算法会受到一些全局的约束,这种约束是跨arms和回合(rounds)的。例如动态竞价中,就有库存的限制。
- Structured actions:一个算法可能需要同时做出几个决策,比如说,一个新闻网站可能需要挑选一板块的文章,而一个卖家可能需要为整板块的产品选择价格。
虽然这是我在看Bandit Algorithms
的术语笔记,但是这些术语对于强化学习依旧适用。
Reward
衡量成功的量化标准。在商业领域,最终的回报是利润,但我们通常可以将更简单的指标,如广告点击率或新用户注册率,视为回报。重要的是(A
)有一个明确的量化尺度(B
)奖励越多越好。
Arm
表示的是我们有什么选择?我们可以采取什么行动?
Bandit
Bandit
是Arm
的集合。当你有很多选择的时候,我们把这些选择称为Multiarmed Bandit
。“Multiarmed Bandit
”是一个数学模型,你可以用它来推断当你有很多行动可以采取时,你该如何做决定,以及在采取这些行动后你将得到的回报的不完全信息。
Play/Trial
当你在处理一个bandit
问题的时候,你通常会pull arm
多次,当你每次pull
的时候,我们称之为play
。
Horizon
Horizon
表示的是在游戏结束之前,你还可以trials
多少次(The number of trials left is called the horizon.
)。Horizon
长短所使用的strategy
通常是不同的。因为你可以使用更加激进的方案来加大探索。
Exploitation
一种解决Multiarmed Bandit
问题的算法,更多考虑以前所play
过的情况。
Exploration
一种解决Multiarmed Bandit
问题的算法,更多考虑探索以前未play
过的情况。
Explore/Exploit Dilemma
任何学习系统都必须在探索和利用之间做出妥协。这个难题没有确切的解决方案,但本书中描述的算法为解决探索和开发的冲突目标提供了有用的策略。
Annealing
An algorithm for solving the Multiarmed Bandit Problem anneals(退火) if it explores less over time.
Temperature
控制exploration
的参数。
Streaming Algorithms
一个算法是一个流式算法(streaming algorithm
),它处理的数据一块一次。这与批处理算法(batch processing algorithms
) 相反,批处理算法需要访问所有数据才能对其进行处理。
Online Learning
Online Learning
算法不仅可以一次处理一块数据,而且还可以在看到每一块数据后提供其分析的临时结果。
Active Learning
一个算法是一个主动学习算法,如果它可以决定下一个它想要看到的数据片段,以便最有效地学习。大多数传统的机器学习算法都不是主动的:它们被动地接受我们提供给它们的数据,而不告诉我们下一步应该收集什么数据。
Bernoulli
A Bernoulli system outputs a 1 with probability and a 0 with probability .
我的微信公众号名称:深度学习先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究深度学习、强化学习、机器博弈等相关内容!期待您的关注,欢迎一起学习交流进步!