入门强化学习
什么是强化学习参考内容:https://www.bilibili.com/video/BV1g7411Z7SJ(强化学习纲要 第一课 概括与基础)
强化学习讨论的问题是一个智能体(agent)怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。
- 输入的数据,标定的数据,它都是没有关联的,尽可能没有关联。因为如果有关联的话,这个网络是不好学习的。
- 我们告诉这个 learner 正确的标签是什么,这样它可以通过正确的标签来修正自己的这个预测。
强化学习和监督学习的区别
就是我们没有标签来说明你现在这个动作是正确还是错误,必须等到这个游戏结束可能,这个游戏可能十秒过后才结束。现在这个动作往左往右到底是不是对最后游戏的结束能赢有帮助,其实是不清楚的的。这里就面临一个延迟奖励(Delayed Reward) ,所以就使得训练这个网络非常困难。所以这也是强化学习和监督学习不同的地方。
监督学习获取的这些监督数据,其实是人为标定的。比如说 ImageNet,这些图片都是人类标定的。那么我们就可以确定这个算法的 upper bound(上限),人类的这个标定结果决定了它永远不可能超越人类。但是对于强化学习,它在环境里面自己探索,有非常大的潜力,它可以获得超越人的能力的这个表现,比如说AlphaGo
强化学习是有一定的历史的,把强化学习跟深度学习结合起来,就形成了深度强化学习(Deep Reinforcemet Learning) 。
奖励
奖励是由环境给的一个反馈信号,这个信号指定了这个 agent 在某一步采取了某个策略是否得到奖励。强化学习的目的就是为了极大化 agent 可以获得的奖励,agent在这个环境里面存在的目的就是为了极大它的期望积累的奖励。
full observability与partially observed
agent 的状态跟环境的状态等价的时候,我们就说这个环境是 full observability
在玩雅达利游戏的时候,观测到的只是当前电视上面这一帧的信息,你并没有得到游戏内部里面所有的运作状态。也就是说当 agent 只能看到部分的观测,我们就称这个环境是部分可观测的(partially observed) 。
强化学习 agent的组成成分:
- 首先 agent 有一个policy function,agent 会用这个函数来选取下一步的动作。stochastic policy(随机性策略)/deterministic policy(确定性策略),强化学习一般使用随机性策略
- 然后它也可能生成一个价值函数(value function) 。我们用价值函数来对当前状态进行估价,它就是说你进入现在这个状态,可以对你后面的收益带来多大的影响。当这个价值函数大的时候,说明你进入这个状态越有利。
- 另外一个组成成分是**模型(model) **。模型表示了 agent 对这个环境的状态进行了理解,它决定了这个世界是如何进行的。
agent的分类
- 基于价值函数的 agent。这一类 agent 显式地学习的是价值函数,隐式地学习了它的策略。因为这个策略是从我们学到的价值函数里面推算出来的。
- 基于策略的 agent,它直接去学习 policy,就是说你直接给它一个 state,它就会输出这个动作的概率。在这个 policy-based agent 里面并没有去学习它的价值函数。
- 另外还有一种 agent 是把这两者结合,把 value-based 和 policy-based 结合起来就有了 Actor-Critic agent 。这一类 agent 就把它的策略函数和价值函数都学习了,然后通过两者的交互得到一个最佳的行为。
agent 到底有没有学习这个环境模型来分类
- 第一种是 model-based(有模型) RL agent,它通过学习这个状态的转移来采取措施。
- 另外一种是 model-free(免模型) RL agent,它没有去直接估计这个状态的转移,也没有得到环境的具体转移变量。它通过学习 value function 和 policy function进行决策。这种 model-free 的模型里面没有一个环境转移的一个模型。
Exploration 和Exploitation 概念对比
- Exploration 是说我们怎么去探索这个环境,通过尝试不同的行为来得到一个最佳的策略,得到最大奖励的策略。
- Exploitation 是说我们不去尝试新的东西,就采取已知的可以得到很大奖励的行为。
以挖油为例
a. Exploitation 就是说我们直接在已知的地方挖油,我们就可以确保挖到油。
b. Exploration 就是说我们在一个新的地方挖油,就有很大的概率,你可能不能发现任何油,但也可能有比较小的概率可以发现一个非常大的油田。
博客:http://karpathy.github.io/2016/05/31/rl/
阻碍AI的四个独立因素:
- 计算(显而易见的一个:摩尔定律,GPU,ASIC),
- 数据(格式不错,而不仅仅是Internet上的某个地方,例如ImageNet),
- 算法(研究和构想,例如backprop,CNN,LSTM),
- 基础架构(您下的软件-Linux,TCP / IP,Git,ROS,PR2,AWS,AMT,TensorFlow等)。
And of course, our goal is to move the paddle so that we get lots of reward.
Policy network.
Our policy network is a 2-layer fully-connected net.