欢迎光临 x-algo
关注算法在工业界应用
Hi, 这是一个关注大数据算法在工业界应用的网站

强化学习(1)-介绍

本文读书笔记《Reinforcement Learning: An Introduction》

对人类来说,学习离不开和环境的交互。对原始的人类,在没有老师传授知识的时候,人类通过和环境的「交互」学习;经过多轮和环境交互,最终总结出规律,知识就是这样产生的。

可以发现,这个交互的过程有三个重要部分,分别是「状态」,「行为」,「结果」;

具体为,人类根据当前的「状态」产生了一个「行为」,环境反馈出了一个「结果」。这个模式也是「强化学习」和传统机器学习重要的差别。

最优化理论和随机优化是强化学习的重要组成部分。

两个难点

  1. 根据状态选择行为,因为对当前状态来说, 可以选择的行为往往是多个,如何最大化自己的收益,是一个需要深思的问题
  2. 当产生一个行为之后,「结果」延迟到达

强化学习和有监督学习的差别

第一个区别

如果数据充足,强化学习和有监督学习「差不多」,如果数据多到一定量,甚至都可以不用模型(想象一下你有无限数据,做决策还需要模型吗?)。

在数据量一般或者稀少的时候,强化学习具有很大优势。下面一句话,在点击率预估角度,我认为「很好」的表述了强化学习和有监督学习的「特点」:

站在点击率预估的角度,有监督学习(例如LR)是在给定的样本下,尽可能的将点击率预估准确;强化学习是,在给定的样本下,用尽可能小的曝光成本将点击率估准确。

第二个区别

强化学习更有全局观,并且明确了分工,考虑了角色的因素。

要素

形式化表示强化学习的要素,可以表示为:一个策略、一个奖励函数、一个价值函数、一个环境模型(可选)。

下面一个一个说:

  • 策略是用来建立从「环境」到「行为」的映射,不同的策略可以在相同环境下触发不同的行为。
  • 奖励函数,执行一个行为后就得到一个奖励,不同的行为得到不同的奖励;确定这次行为的好坏
  • 价值函数,是对当前状态的未来价值的预估,评估奖励不能及时完全反馈的情况;价值函数存在的目的就是为了获取更多的奖励,行为的选择依据就是根据价值决定,对价值的预估是系统最核心的部分。
  • 环境的模型,环境模型可以为:输入为当前「状态和行为」,输出下一个「状态和奖励」

作者认为遗传算法虽然效率较高,但是有很多缺陷。

一个游戏

游戏的规则很简单,下图是一个9宫格,两个玩家轮流落子,谁先用3个棋子组成一条线就获胜,横着、竖着、斜着的线都可以。下图就是X斜着获胜的状态。

QQ20170406-133821

我们的问题也很直接,如何设计一个模型,确定每一步的落子位置,尽可能的获胜。

当然,这个问题也可以使用传统的有监督的机器学习方法,搞出来一个分类器,决定每一步落子的位置。由于状态空间很小,样本穷举所有的情况,应该也可以得到一个准确率很高的模型。但是如果棋盘比较大,状态空间不可穷举,就难办了;这也就是围棋直到AlphaGo出现才彻底击败人类的原因。

那么,使用强化学习会怎么做呢?大致分为下面几步:

  1. 棋盘的状态数量不超过 \(3^9\) ,对每一个状态编号
  2. 每一个状态初始胜率为0.5,随着学习过程这个数值会被调整
  3. 发现自己是一行/列的时候胜率为1,对方为一行/列的时候为0,无子可下也为0
  4. 状态转移的时候使用贪心策略+随机策略,贪心就是选择价值最大的作为下一个状态,随机就是随机选择一个状态,随机可以帮助系统探索新的更好的状态;
  5. 每次状态转移需要更新前一个状态价值,具体公式为 \(V(s_t)=\alpha V(s_{t+1}) + (1-\alpha)V(s_t)\) ,其中 \(\alpha\) 代表学习率,发现其越大越容易受到下一个状态的影响。

过程可以用下图表示:

QQ20170406-165758

整个过程有两个精彩的地方,一个是「随机探索」,一个是权重更新逻辑。

注意:每一局的过程,只有分出输赢的时候才有有效反馈进入,并不是每一步都有反馈。

总结

强化学习是解决长目标的有效方法(如上面游戏,目标是获胜),价值函数(value function)是强化学习的核心问题。

资料

《Reinforcement Learning: An Introduction》

未经允许不得转载:大数据算法 » 强化学习(1)-介绍

分享到:更多 ()

评论 抢沙发

*

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

关注大数据算法在工业界应用

本站的GitHub关于本站