强化学习笔记(一)强化学习概述

第一章 强化学习概述

一、强化学习的定义

强化学习是使智能体(agent)在与环境(environment)交互过程中获得奖励(reward)极大化的一种机器学习方法。这里的交互是指智能体从环境中获取状态(state)并输出动作(action),然后环境根据动作输出奖励并给智能体下一个状态,从而循环迭代起来的过程。如下图所示:
在这里插入图片描述
强化学习、深度学习和机器学习等之间的关系,如下图所示:
在这里插入图片描述

二、强化学习特点

强化学习就像是在玩电子游戏,每一次操作可能都有一定的战果并影响随后的胜负趋势,但游戏的胜负只有打到最后才能完全确定,这就是延迟收益;要想玩好游戏,就需要不断的摸索游戏机制,并采取容易获胜的操作,这就是试错探索开发

(1)试错探索(trial-and-error exploration):在强化学习中,agent不会被告知应该采取什么动作,而是必须通过尝试探索发现哪些动作收益最大。这里涉及强化学习的一个重要问题,探索与开发之间的折中权衡。智能体必须尝试各种各样的动作,并且逐渐筛选和采用最好的动作,在此过程中往往包含着大量的工作,同时伴随着游戏失败的风险,游戏经常失败可能导致学习过程十分漫长。探索和开发的含义如下:
探索(exploration) 是指通过尝试不同的行为来得到一个更好的策略,即得到奖励更大的策略。
开发(explotation) 是说我们不去尝试新的东西,就采取已知的可以得到很大奖励的行为。

(2)延迟收益(Delayed Reward):动作不仅会产生即时收益,也会影响后面的状态,从而影响随后的收益,因此哪些动作收益最大往往要等一次游戏结束才知道。换言之,强化学习使用的数据都是有时间关联的,而不是独立同分布的;Agent 在与环境交互获取数据,它的行为会影响随后得到的数据,因此强化学习的另一个重要问题就是如何让 agent 的行为一直稳定地提升

三、强化学习分类

1、按决策方式分类

决策方式来看,强化学习可分为基于策略迭代的方法和基于价值迭代的方法。决策方式是智能体在给定状态下从动作集合中选择一个动作的依据,它是静态的,不随状态变化而变化。

基于策略迭代的强化学习方法中,智能体会制定一套动作策略(确定在给定状态下需要采取何种动作),并根据这个策略进行操作。强化学习算法直接对策略进行优化,使制定的策略能够获得最大的奖励。
基于价值迭代的强化学习方法中,智能体不需要制定显式的策略,它维护一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。基于价值迭代的方法只能应用在不连续的、离散的环境下(如围棋或某些游戏领域),对于行为集合规模庞大、动作连续的场景(如机器人控制领域),其很难学习到较好的结果(此时基于策略迭代的方法能够根据设定的策略来选择连续的动作)。

基于价值迭代的强化学习算法有 Q-learning、 Sarsa 等,而基于策略迭代的强化学习算法有策略梯度算法等。此外, Actor-Critic 算法同时使用策略和价值评估来做出决策,其中,智能体会根据策略做出动作,而价值函数会对做出的动作给出价值,这样可以在原有的策略梯度算法的基础上加速学习过程,取得更好的效果。

2、按环境建模分类

针对是否需要对环境建模,强化学习可分为有模型学习和免模型学习。
有模型学习是指根据环境中的经验,构建一个虚拟世界,同时在真实环境和虚拟世界中学习;
免模型学习是指不对环境进行建模,直接与真实环境进行交互来学习到最优策略。
总的来说,有模型学习相比于免模型学习仅仅多出一个步骤,即对真实环境进行建模。因此,一些有模型的强化学习方法,也可以在免模型的强化学习方法中使用。

在实际应用中,如果不清楚该用有模型强化学习还是免模型强化学习,可以先思考一下,在智能体执行动作前,是否能对下一步的状态和奖励进行预测,如果可以,就能够对环境进行建模,从而采用有模型学习。目前,大部分深度强化学习方法都采用了免模型学习,这是因为:免模型学习更为简单直观且有丰富的开源资料,像 DQN、AlphaGo 系列等都采用免模型学习;在目前的强化学习研究中,大部分情况下环境都是静态的、可描述的,智能体的状态是离散的、可观察的(如 Atari 游戏平台),这种相对简单确定的问题并不需要评估状态转移函数和奖励函数,直接采用免模型学习,使用大量的样本进行训练就能获得较好的效果。

四、Agent 分类

1、按学习依据分类

基于价值的 agent(value-based agent):agent 显式地学习价值函数,隐式地学习策略,它的策略是从价值函数推算出来的。
基于策略的 agent(policy-based agent):agent 直接学习策略(policy),直接给它一个状态,它就会输出这个动作的概率,基于策略的 agent 不会去学习价值函数。
Actor-Critic agent: agent把 value-based 和 policy-based 结合起来,学习策略函数和价值函数,然后通过两者的交互得到一个最佳的行为。

2、按有无环境模型分类

另外,我们是可以通过 agent 到底学习环境模型来分类。
第一种是 model-based(有模型) RL agent,通过环境模型学习状态转移来采取动作。
另外一种是 model-free(免模型) RL agent,它没有去直接估计状态转移,也没有得到环境的具体转移变量,而是通过学习价值函数和策略函数进行决策。

下面将几类模型放到同一个饼图中,饼图有三个组成部分:价值函数、策略和模型。按一个 agent 具不具有三者中的两者或者一者可以把它分成很多类。
在这里插入图片描述

五、基本概念术语

1、强化学习定义有关的概念

智能体(agent):强化学习的主体,游戏玩家。
环境(environment):强化学习的客体,游戏本身。
动作(action):智能体将环境的当前状态转移为下一状态的操作。
奖励(rewards) :环境给智能体动作的反馈信号,反馈 agent 在某一步采取某个策略是否有益。强化学习一个重要的课题就是近期奖励和远期奖励的一个权衡(trade-off),怎么让 agent 取得更多的长期奖励是强化学习的问题。
状态(state) :是对环境的完整描述,不会隐藏环境的信息。
观测(observation) :是智能体对状态的部分描述,可能会遗漏一些信息。
游戏的历史是观测、行为、奖励的序列,Agent 在采取当前动作的时候会依赖于它之前得到的这个历史,游戏状态则是关于这个历史的函数。

2、马尔可夫决策过程的相关概念

策略函数(policy function):环境状态到动作的映射,定义了智能体的行为方式。
奖励信号(reward signal):每一步(短时间内)的收益。
价值函数(value function):反映总收益的函数,定义了强化学习问题的目标。
模型(model):环境对动作和当前状态的反应模式,由此产生奖励和下一个状态。

3、与训练有关的概念

Rollout :从当前帧去生成很多局的游戏。
轨迹(trajectory) 当前帧以及它采取的策略,即状态和动作的一个序列。
回合(episode) 或 **试验(trial)**一场游戏 。

4、其他方面

**深度强化学习(Deep Reinforcemet Learning)**把强化学习跟深度学习结合起来,在强化学习中用神经网络来拟合价值函数或策略函数,省去特征工程(feature engineering)的过程。

六、Gym库的用法

OpenAI Gym 是一个环境仿真库,里面包含了很多现有的环境(小游戏),可用来测试强化学习算法。针对不同的场景,我们可以选择不同的环境,如:离散控制场景(输出的动作是可数的,比如 Pong 游戏中输出的向上或向下动作),一般使用 Atari 环境评估;连续控制场景(输出的动作是不可数的,比如机器人走路时不仅有方向,还要角度,角度就是不可数的,是一个连续的量 ),一般使用 mujoco 环境评估。

Gym库的教程和示例见: https://github.com/cuhkrlcourse/RLexample.
Gym库官网的环境介绍: https://gym.openai.com/envs/#algorithmic.

Gym库的用法总结如下:
使用 env=gym.make(环境名) 取出环境,
使用 env.reset()初始化环境,
使用 env.step(动作)执行一步环境,
使用 env.render()显示环境,
使用 env.close() 关闭环境。
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值