强化学习(RLAI)读书笔记第一章介绍

前言 :sutton的《reinforcement learning: an introduction》新版已经基本完成,结合他在学校开设的课程609,进行强化学习的系统学习。609的课程资料等等在这里。博客主要包括书籍的读书笔记,可能会包括609的作业。

第一章: Introduction

1.1 reinforcement learning

强化学习是学习怎么做,怎么从状态映射到动作来最大化一个数值奖励(reward)信号。学习单元不是被安排执行某个动作,而是去尝试来发现哪个动作能够得到最大的反馈。最重要的是动作不仅是被当前反馈影响而是会被之后所有可能状态的反馈决定。通过试错(trial and error)搜索和延迟奖励(delayed reward)这两个特点是强化学习的最重要的特征。

强化学习是一个ing,同时是一个问题,这个问题的一类解法以及对问题和解法的研究。所以强化学习有三个含义。

强化学习和监督学习不同。监督学习给出一堆有标签的训练数据,对于每个样例都有一个标签或者动作。系统的主要动作可能就是判断样例属于哪一类。强化学习也不同于无监督学习。无监督学习是从一堆无标签的数据中找出其中的结构化信息。而强化学习是去最大化一个奖励信息而不是去寻找隐藏的结构化信息。

强化学习中独有的两种挑战:一、explore和exploit的交换。为了获得更多的奖励,agent必须选择当前已知的最优动作。但是为了发现这种最优动作,agent又必须去探索更多的动作选择。问题在于exploit和explore单独使用都不能完成任务,因此这是个dilemma。 二、强化学习需要在与不确定的环境交互的过程中考虑去完成一个完整的全局目标。

强化学习都有明确的目标,能够感知所处环境的一些方面,并且可以选择能够影响环境的动作。强化学习需要在长远规划和当前动作中做出权衡,并且需要解决环境模型的获得和优化。

1.2 Examples

强化学习有很多例子比如:

  • 一个象棋玩家走一步。这个动作需要关注对面玩家可能的反应以及自己的规划。还要考虑是否能够取得某个很近的位置。
  • 一个羚羊在刚出生的几分钟很难站好。半小时之后它可以跑20公里每小时。

所有的强化学习例子包括一个需要完成目标的agen与环境之间的交互,在这过程中agent需要尽力完成目标,尽管环境是难以预测的。agent的动作需要考虑长远的规划,而且在所有的例子中,动作造成的影响是没法被准确预测的,同时他们需要使用自己以前的经验来改善自己的表现。每个agent附带的起始知识可能会影响哪些动作容易学得出来,不过和环境的交互是利用好需要完成的任务的某些特点最关键的地方。

1.3 Elements of Reinforcement Learning

在agent和环境之外,我们可以定义强化学习系统的四个关键元素:策略、奖励信号、值函数和一个可选的环境建模。

策略定义了一个agent在给定时间的动作方式。主要是将环境状态映射到动作。

奖励信号定义了强化学习问题的目标。每一步骤结束环境给agent一个数值信号作为反馈,叫做奖励(reward)。agent唯一的目标就是最大化长期的奖励。因此奖励信号定义了agent的任务目标。

值函数定义了长期来看状态的值。简单地说,一个状态的值就是一个agent从当前状态到未来能够取得的所有奖励的期望。

环境模型是对于agent所属环境的建模,让agent能够预测环境对于action给出的反应。使用环境模型的方法叫model-based否则叫model-free。

1.4 Limitations and Scope

大部分此书中的强化学习方法是通过评估值函数来组织的,不过解决强化学习问题不一定非得这样。比如进化算法。

进化算法能够评估不同的静态方法,每个方法都独立和环境进行一段时间的交互进行评估。然后得到下一代的策略进行迭代。进化算法适合那种agent不能够感知环境的完全状态的问题。进化算法忽略了强化学习问题中的很多部分:他们不能够利用它们搜索的策略是一个状态到动作的映射;它们不能利用每个独立过程中的每一个状态或者状态中选择的动作。因此进化算法不适合强化学习问题。

1.5 An Extended Example: Tic-Tac-Toe

tic-tac-toe是个游戏,三乘三的格子,两个玩家分别在格子中画O和X。谁先把一行一列或一个对角线都划上自己的符号就获胜。

传统方法可能不好解决这个问题。如minimax永远到不了一个可能会输的状态,尽管在那个状态时因为对手失误自己可能会赢。动态规划方法需要输入对手的完全的信息,包括对手每次移动的概率。进化算法会在策略空间内hill-climb,不断地产生新的策略并进行评估,不断地进行改进。

使用值函数的方法会先设立一个每个状态都对应的数字表,每个数字代表当前状态能够获胜的概率作为值。每次运行我们都改变当前状态的值。通过不断地迭代使这个值更加准确。使用增量式的方式来更新状态值信息。

这个例子展示了强化学习和进化算法的区别。强化学习让策略固定,然后进行评估,也就是进行仿真。对于完成胜利的策略,对于其中的每一个动作都进行奖励,甚至是没有执行的动作。而基于值函数的强化学习会更看重与环境之间进行交互的学习以及有一个清晰地目标。比如设置一个陷阱。不使用对手的建模来取得一个长远的规划,甚至不使用显示的搜索来取得远期可能的动作序列是强化学习的一个显著特征。

强化学习可以和其它类型的机器学习方法进行结合,缩小搜索空间的范围,快速得到解决方案。比如和深度学习结合等等。

强化学习可以适用于格子类型的状态环境,但是也适用于连续环境。同样可以适用于有对于环境的建模以及没有建模的情况两种都可以。

1.6 Summary

强化学习是一种理解和自动化目标驱动的学习和决策的可计算性手段。它的特点是直接通过一个与环境交互的agent来学习而不需要其他的监督或者环境的模型。

强化学习使用马尔科夫决策过程来定义一个agent和环境的交互过程。状态值和状态函数大多数强化学习方法的核心。值函数的使用区分了强化学习方法和直接评估策略加策略搜索的进化算法。

猜你喜欢

转载自blog.csdn.net/qq_25037903/article/details/82021640