强化学习-简介

背景

  强化学习是机器学习三大分支之一,除去强化学习外,还有监督式学习和非监督式学习,虽然本系列文章主要介绍强化学习,可是了解另外两类的特色还都是颇有必要。本系列的文章首先总体介绍强化学习的相关知识,而后是相关的算法,第一个算法是Q-Learning。算法

监督式学习

  监督式学习比如有一位老师告诉机器某个物件有什么特征,例如人有两条腿,两只眼睛等等,而这些特征被称之为标签,机器根据这些带有标签的大量数据训练本身,得到经验,当得到数据集以外的输入时(检验模型),机器会根据本身学习到的经验,判断这个输入是什么物件。不难看出,监督学习即是经过大量带有标签的数据训练机器自身,机器从中得到经验,达到可识别物体的目的,普遍应用于分类问题和回归问题。为了便于理解,这里举一个例子:如今须要让机器可以在分辨羊和鸡,最初机器是一个白痴,什么也不懂,因而用大量带有特征的数据集来训练机器,例如告诉机器羊有四条腿,鸡只有两条腿;羊的体型大,鸡的体型小;羊有一对犄角,而鸡没有等等,固然数据越多越好,特征越具体越好,经过大量的数据训练后,放一只羊交给机器识别,机器便会提取当前识别对象的特征,有没有犄角,有几只腿等等,而后和本身学习到的标签对比,得出是羊的结论。机器学习

非监督式学习

  非监督学习在学习过程当中没有老师告诉你数据的标签,也就是说机器获得的数据仅仅是一条条数据,数据不带有任何提示信息,而机器的任务是经过观察大量的数据,本身造成一套认知体系,可以将全部的数据进行归类,可是机器自己并不知道这个类表明什么,例如:给机器输入大量的鸡和羊的数据,可是不告诉机器它们的特征,机器经过训练后可以将羊和鸡分红两类,可是机器并不知道他们是羊和鸡,就叫聚类。函数

强化学习

  从前文能够看出,监督学习和非监督学习的经验来源(也就是数据集)都是静态的。如今假设这样一个情景,咱们须要训练一个机器人可以自主的在地面上行走,咱们应该怎么训练它呢?按照非监督学习或者监督学习,咱们须要向机器人提供大量关于环境的数据,什么是障碍物,什么是沟壑等等,可是现实环境中影响因素不少,例如障碍物有不少种,有石头这样的较小障碍物,也有高楼这样的障碍物,机器面临不一样的障碍物做出的反应也不一样,前者是作出更大的跨步躲开障碍物,后者则须要绕行。而在环境中这样的因素不少,加之环境变化很快,所以提供一个完整的数据集来训练机器人显然已经不可行。而强化学习即可解决这样的问题,强化学习的数据集不是静态数据集,而是动态的。强化学习可称之为引导式学习,也有人称之为试错式学习,将机器(代理)仍在环境中,让它本身探索(即在环境中自由玩耍),机器会作出不少动做做用于环境,而且环境会反馈给机器一个奖励告诉机器人他作的动做是好仍是坏,好比机器人向右走跌倒了,环境会反馈一个很差的奖励给机器,告诉机器在这个状态做这个动做并不有利,若是向左走没有跌倒,则会反馈一个较好的奖励,告诉机器在这个状态作向左走的动做有利,经过不断地施加动做做用于环境,环境作出反馈,是的机器人不断从环境中获得经验完善本身,告诉本身在某个状态下作某个动做使本身不会摔倒,从而使其能自主行走。从而获得与环境最佳的交互策略。比如一位老师在你面前不会告诉你应该作什么,可是你作的每个动做老师都会给你打分(奖励),不一样动做得分有高有低,所以你会选择分数更高的动做避免更低的动做。这里用一个经典的方格世界举例:假设这里有一个5*5的方格,要求机器人从(1,1)的方格开始,目标走到(5,5)的方格。机器人在每一个方格的动做只有先后左右,最初机器人什么也不懂,在方格世界乱走,在(1,1)(左下角)有上下左右四种动做,若是选择了左或者下,就走出方格世界,环境返回奖励-1告诉机器人在(1,1)向左向下的动做很很差,若是向上或者向右则获得0的奖励,这样子机器人的状态从(1,1)转移到(1,2)或者(2,1),而后机器人继续在该位置执行四个动做中的一个到达下一个状态,获得相应的奖励,当到达(5,5)时,得到奖励+10,经过这样不断的训练,机器人便会在每一个状态选择有利的动做执行而避免收益低的动做(例如在起点不会向左向下),从而最终到达终点。学习

在这里插入图片描述

强化学习五个方面

  前文简单介绍了监督学习、非监督学习、强化学习,而本系列文章主要记录强化学习相关知识,首先看一下强化学习的五个内容组成。强化学习能够总结为环境+奖励+表达策略的方法+选择算法训练代理+部署验证。在强化学习中,须要训练的对象(即为前文的机器、机器人)统称为Agent(代理、智能体)。代理

Environment(环境)

  环境即为代理玩耍的场所,前文提到,强化学习就是代理与环境不断和交互获得反馈来完善自身的过程。代理能够有不少的动做,动做做用于环境,环境能够根据动做给代理奖励评价代理的动做的好坏,而且代理能够从环境中观察到状态信息。在方格世界中,环境就是整个5*5的方格,动做就是上下左右,状态就是对应的位置信息,也就是坐标。对象

Reward(奖励)

  奖励是代理用于获取经验、完善本身的重要依据,根据环境反馈的经验,代理能够了解到在当前状态下执行某个动做的利弊,从而使其在每一个状态执行有利的动做,而避免低收益动做。例如在方格世界中在(1,1)点执行向下或者向左会获得-1奖励,是一个消极奖励,代理便会在该状态避免该动做。而在(4,5)执行向右的动做,便会获得+10的奖励,是一个积极的奖励,是的代理在该状态更倾向于该动做。blog

Policy(策略)

  策略能够理解为一个函数,该函数是状态空间到动做空间的映射,输入是状态,输出是执行动做,用于指引代理在该状态执行什么动做,最优策略则是在每个状态下,都能使得代理作出合适的动做从而得到最佳的长期奖励(价值)。而强化学习的目标就是学习与环境交互得最佳策略,而学习就是系统性调整参数使得策略收敛到最佳状态的过程。表达策略的方法多种多样,在以后的文章会介绍。 图片

训练代理的方法

  经常使用的强化学习算法有Q-Learning、Sarsa、DQN(Deep Q-Learning Network),在后面会逐步介绍。资源

部署验证

实地部署验证结果。开发

强化学习分类

  强化学习能够分为两类,基于模型的方法和无模型方法。

无模型的方法

  在无模型训练方法中,代理对环境一无所知,所以代理须要对环境的全部区域进行探索,意味着会花费大量时间去探索低奖励回报的区域,这样会浪费大量的时间去作无用功,但在大多数状况都会使用这种方式。

基于模型的方法

  在开发者知道环境中某些区域或者所有环境的状况下,开发者能够将这些状况告知代理,就像一张地图,会告诉代理哪些区域回报极低,避免探索低回报区域,加快训练速度,节约资源。

总结

  关于强化学习的概述就当这里结束,水平有限,若有理解不当或者须要改正补充的地方,欢迎批评指正。接下来我将详细阐述五个方面,阐述完后开始相关算法的分享,包括算法的理解、算法分析与总结、算法实现、具体场景的仿真与分析。

相关文章
相关标签/搜索