1.引入
★ 强化学习真正的火起来是在2016年,AlphaGo程序的大获全胜,吸睛无数。
- 2013年,DeepMind团队利用强化学习技术玩雅达利游戏,击败人类玩家,并在2015年将其成果发布于《Nature》期刊。
- 2014年,DeepMind团队被Google收购。
- 2016年,DeepMind团队开发的AlphaGo击败围棋高手李世石。
★ AlphaGo的取胜,让人们意识到机器或者是程序是可以像我们人类一样自主学习的,是我们认为可以实现更高智能的手段或方法。
接下来据一个简单的例子,多臂赌博机,或许可以让我们更加形象的理解强化学习。
多臂赌博机(Multi-Armed Bandit)是指一台拥有K个臂的机器(如图所示,图中的多臂赌博机有3个臂,即K=3),玩家每次可以摇动这K个臂中的1个臂,摇动摇臂后,多臂赌博机绘图出不同数量的金币,吐出金币的数量服从一定的概率分布,这个概率分布玩家并不知道。
多臂赌博机
问:如何能获得最多的金币?
答:我们人通过多次尝试,就可以感觉到哪个臂突出的金币数量最多,从而之后每次摇动自己认为金币最多的那个臂就可以。
★ 抽象强化学习框架
上面所谓的尝试在这里就是指:玩家摇动摇臂->机器吐出不等数量的金币->玩家采取新的动作,如此不断循环。
由上面我们已经可以初步的抽象出强化学习的基本框架,如下图:
将多臂赌博机游戏和强化学习框架对应起来:
Agent:玩家
Action:选择或摇动摇臂
Environment:多臂赌博机每个臂吐不同数量的金币,服从不同的分布
Reward:吐出的金币
总结:强化学习就是智能体采取某种动作作用于环境,然后环境给出不同的回报或者奖励反馈给智能体,智能体根据回报来采取新的动作,如此往复循环,直至终止条件达到,使得最终获得的回报最大。
2.强化学习概念
2.1理解与概念
通俗的理解:强化学习讨论的问题就是一个智能体(Agent)怎么样与一个复杂的不确定的环境(Environment)进行交互,能够最大化回报(Reward)。
强化学习的基本框架包含有了两个部分,即智能体(Agent)和环境(Environment)。智能体与环境进行交互,智能体采取一个动作作用于环境,环境对其采取的动作作出响应给出一定的回报,智能体根据获得的回报作出新的动作。
此处又引出一个概念——策略,智能体根据环境当前的状态选择某个动作输出,这就是策略。策略是一个函数,这个函数的输入为环境的状态,输出为智能体要采取的动作。
强化学习可以应用于无人驾驶、下棋,机器人等方向,我们可以发现,强化学习就是要智能体学会采取合适的行为动作。例子是举不完的,可以用一句话来说明强化学习所能解决的问题:智能决策问题。跟确切的说是序贯决策问题,就是需要连续不断地做出决策,才能实现最终目标地问题。
2.2强化学习与监督学习地区别
监督学习解决智能感知问题
监督学习最典型的例子就是手写数字识别,当给出一个手写数字时,监督学习需要判断识别这个手写数字是多少。可以发现,监督学习关心它长什么样子,有什么特征,然后将这些特征映射到某个类别标签。-
强化学习解决智能决策问题
强化学习不关心输入长什么样子,只关心在当前输入状态下采用什么动作才能实现最终目标。
监督学习与强化学习的区别 一句话总结异同点
强化学习和监督学习的共同点是两者都需要大量的数据进行训练,但是两者所需的数据类型不同。监督学习需要的是多样化的标签数据,强化学习需要的是带有回报的交互数据。
3.Questions
问:强化学习的基本结构是什么?
答:智能体与环境进行交互。智能体采取动作作用于环境,环境会变为下一个状态,环境将回报反馈给智能体,智能体按照策略根据当前状态输出新的动作。
问:强化学习相对于监督学习为什么会更加困难?
答:强化学习的数据为交互数据,是与时间相关的,不服从独立同分布;强化学习的奖励有延时,反馈不及时;强化学习需要主动去尝试更多的数据,监督学习利用标签修正就可以。
问:强化学习基本特征有哪些?
答:是一个试错的过程;奖励有延迟;训练数据与时间相关,不服从独立同分布;
问:强化学习近几年发展迅速的原因?
答:算力的提升;深度学习和强化学习的结合;
问:状态和观测有什么关系?
答:状态是对世界的完整描述,而观测是对世界部分描述,可能会有遗漏的信息。
问:一个强化学习的智能体,有什么组成?
答:策略函数,是由状态到动作的映射,智能体通过策略来选取动作;价值函数,对当前状态进行评估,表明当前状态对后续收益带来多少影响,价值越大越好;模型,表示智能体对环境的理解,这个系统是怎么进行的。
问:根据强化学习智能体不同进行分类?
答:基于价值函数的智能体;基于策略的智能体;价值函数和策略结合的智能体;
问:基于策略迭代和价值迭代的区别?
答:1. 策略迭代:强化学习需要学习到一个最优的策略函数,策略函数实现从状态到动作的映射。2. 价值迭代:不需要学习更新策略,只需要维护一个价值表格或者价值函数并通过这个表格或者函数来选取动作。
问:有模型学习和免模型学习的区别?
答:有模型学习需要构建一个近似于真实世界的虚拟模型,免模型学习不需要对环境进行建模,直接在真实世界进行学习,属于数据驱动型的。免模型的泛化性能优于有模型学习。