深度学习-RL增强学习(Reinforcement Learning)

标签: 深度学习 深度增强学习 DRL DQN
221人阅读 评论(0) 收藏 举报
分类:

学习李伟老师《深度学习》课程


增强学习基础

增强学习是传统机器学习中已经提出来的问题,主要侧重人机交互/模仿人类和自然交互的能力。

什么是增强学习

传统的深度学习:训练一个模型,然后用来预测、分类、生成图片….,而深度增强学习一开始就是考虑和现实交流的问题,面对不同的情况可以分析和决策。

组件:

这里写图片描述

  • Agent:要学习的智能程序
  • Policy:程序知道所处的某状态后,采取行动的策略(复杂情况DL,简单情况lookup table)
  • Environment:智能程序交互的外部环境,接受action产生状态变化,返回reward,可以是真实世界,游戏模拟器,棋牌等

方程:

激励方程(reward function):

  • 某次行为结果产生的激励
  • 定义增强学习的目的

价值方程(value function):

  • agent能带来的长期累计回报
  • 激励方程短期(eg:跳一跳中跳过一格增加x分),价值方程长期(跳一跳总得分)

环境模型(Model of the environment):

  • 环境模拟模型,模拟action动作之后环境返回的价值/激励以及状态变化,模拟器中不需要,真实世界中有指导训练意义

任务目的

增强学习:通过训练得到最优的state-action映射关系的过程,使action得到最好的value/reward

MDPs:(Markov Decision Process)马尔可夫决策过程

  • 状态 state
  • 行为 action
  • 状态转化 state-action
  • 回报 reward

增强学习中的问题:

  • 策略学习Policy learning:Policy 梯度学习(eg:围棋下一步走哪步的概率)
  • value/reward 迭代学习:确定方法:Q-learning;DQN;DQN扩展(eg:总体赢的概率)
  • 环境模型学习environment modeling:知道此刻的状态及行为(s,a)预测下一刻的状态以及回报,模拟真实的环境反馈

Q-learning

t时刻价值:
这里写图片描述
下一状态的最大回报作为价值:
这里写图片描述
能够达到价值最大的行为作为策略:
这里写图片描述
目标价值由当前价值和t+1价值:
这里写图片描述

Q-learning实例

官方Step-By-Step Tutorial:http://mnemstudio.org/path-finding-q-learning-tutorial.htm

假设我们在的建筑物里有5个由门连接的房间,如下图所示。 我们将每个房间的号码设置为0到4.建筑物的外部可以被认为是一个大房间(5)。 请注意,门1和4从房间5(外面)进入建筑物。
这里写图片描述

我们可以在一个图上表示房间,每个房间表示一个节点,每个门表示一个链接。
这里写图片描述
对于这个例子,我们想把代理人放在任何房间里,然后从那个房间出去,这个房间就是我们的目标房间。 换句话说,目标房间是5号。为了将这个房间设置为目标,我们将把奖励值与每个门(即节点之间的链接)相关联。 立即通往目标的门立即获得100的奖励。其他没有直接连接到目标房间的门没有奖励。 由于门是双向的(0通向4,4也可通向0),每个房间分配两个箭头。 每个箭头都包含一个即时奖励值,如下所示:
这里写图片描述

当然,5号房间的回报率为100,其他所有与目标房间的直接连接奖励为100.在Q学习中,目标是达到奖励最高的状态,这样如果 代理人到达目标,它将永远在那里。 这种类型的目标被称为“吸收目标”。

想象我们的代理人是一个虚拟的虚拟机器人,可以通过经验学习。 代理人可以从一个房间转移到另一个房间,但不知道环境,也不知道哪一扇门通向外面。

假设我们想建立一个简单的从房间的任何一个房间疏散代理人的模式。 现在假设我们在房间2有一个代理,我们希望代理学习到房子外面(5)。
这里写图片描述

Q-Learning中的术语包括术语“状态”和“行动”。

我们会打电话给每个房间,包括外面的一个“状态”,而且房间里的一个房间的移动是一个“行动”。 在我们的图中,“状态”被描绘成一个节点,而“行动”被箭头表示。
这里写图片描述
假设代理处于状态2,从状态2到状态3,因为状态2连接到3,但是从状态2,代理不能直接进入状态1,因为没有直接的连接门1和 2(因此没有箭头)。 从状态3,它可以转到状态1或4,或者转回到2(查看关于状态3的所有箭头)。 如果代理处于状态4,则三种可能的动作是进入状态0,5或3.如果代理处于状态1,则它可以进入状态5或状态3,状态0只能返回到状态4。

我们可以将状态图和即时奖励值放入以下奖励表格“矩阵R”中。
这里写图片描述
(表中的-1表示空值(即:节点之间没有链接的地方)。 例如,状态0不能进入状态1。)

现在我们将添加一个类似的矩阵“Q”给我们的代理人大脑,代表了代理人通过经验学到的东西的记忆。 矩阵Q的行表示代理的当前状态,列表示导致下一个状态(节点之间的链接)的可能操作。
代理开始什么都不知道,矩阵Q被初始化为零。 在这个例子中,为了解释简单,我们假设状态的数目是已知的(六个)。 如果我们不知道涉及多少个状态,矩阵Q只能从一个元素开始。 如果找到新的状态,则在矩阵Q中添加更多的列和行是一项简单的任务。
Q学习的过渡规则是一个非常简单的公式:

Q(state, action) = R(state, action) + Gamma * Max[Q(next state, all actions)]

根据这个公式,分配给矩阵Q的特定元素的值等于矩阵R中的对应值与学习参数Gamma之和,乘以下一状态下所有可能动作的Q的最大值。
我们的虚拟代理将通过经验学习,没有老师(这被称为无监督学习)。 代理将从某个状态开始探索,直到达到目标。 我们将每个探索都称为一个情节。 每个情节由代理从初始状态转移到目标状态组成。 每当代理人到达目标状态,程序就会进入下一情节。
Q学习算法如下:

1.在矩阵R中设置gamma 参数和环境奖励。

2.将矩阵Q初始化为零。

3.

 For each episode:
    选择一个随机的初始状态。
    While循环直至达到目标状态:
        1.为当前状态选择所有可能的操作之一。
        2.使用这种可能的操作,考虑进入下一个状态。
        3.根据所有可能的操作获取下一个状态的最大Q值。
        4.计算: Q(state, action) = R(state, action) + Gamma * Max[Q(next state, all actions)]
        5.将下一个状态设置为当前状态。
    end while
end for

上面的算法被代理人用来从经验中学习。 每次相当于一个经验。 在每次训练中,代理人探索环境(由矩阵R表示),接收奖励(如果有的话),直到达到目标状态。 训练的目的在于增强由矩阵Q表示的代理人的“大脑”。更多的训练产生更优化的矩阵Q.在这种情况下,如果矩阵Q得到增强,而不是四处探索, 来回到相同的房间,代理将找到到达目标状态的最快路线。

Gamma参数的范围是0到1(0 <= Gamma> 1)。 如果Gamma更接近于零,代理将倾向于只考虑立即奖励。 如果Gamma接近1,代理人将考虑未来奖励的权重更大,愿意延迟奖励。

为了使用矩阵Q,代理简单地追踪从初始状态到目标状态的状态序列。 该算法找出在当前状态下记录在矩阵Q中具有最高奖励值的动作:
使用Q矩阵的算法:

1.设置当前状态=初始状态。
2.从当前状态,找出Q值最高的动作。
3.设置当前状态=下一个状态。
4.重复步骤2和3,直到当前状态=目标状态。

上面的算法将返回从初始状态到目标状态的状态序列。

逐步实例请看官网:
http://mnemstudio.org/path-finding-q-learning-tutorial.htm 的Q-Learning Example By Hand
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
所以从2开始到5的路径为:
这里写图片描述

Q-Learning总结

  • 直接用表格查询方式确定回报,适合简单任务
  • 回报矩阵不变,价值矩阵不断更新,价值矩阵描述了从某状态出发的action的不同选择的回报信息
  • 理论上如果信息能够用查询表格(lookup table)表示,Q-Learning能学习到最优策略

DQN(Deep Q-Network)深度增强学习

  • 用于Atari 2600游戏的自动学习
  • 同Q-Learning过程类似,迭代优化
  • action-reward不是简单的table是深度学习要学习的目标
  • 添加了经验回放experience reply,用于模型训练

DQN对比Q-Learning:

  • Q matrix无法描述复杂问题
  • 神经网络作为Q函数
  • 优化输入输出:只把state作为输入,直接生产Q+a

DQN(Deep Q-Network)基本结构

这里写图片描述
没有pooling层:因为位置信息很重要,不需要被弱化。

DQN(Deep Q-Network)loss及优化

这里写图片描述
这里写图片描述

DQN:exploration-exploitation(深度搜索-随机尝试)

深度搜索:一直在优化自己最初的方向,但很有可能是错的,类似贪心算法
随机尝试:按照一定概率允许尝试不同的可能性


DQN改进模型:

DQN可能的问题:

在目标max(Q(s’,a’))确定过程中,选用的方法是直接找到value-action列表的最大值,由于模型的不稳定性,最大值不一定是最优值。

1.Double DQN

改进方法:训练两个独立的Q1、Q2
这里写图片描述
target与prediction分别用不同的模型生成

2.Dueling DQN

原理:
最终的一个value loss没有学习过程的某些中间量(eg:action)没有引导作用,所以Dueling DQN就是对action的作用进行放大,改变原始模型的loss function
中间层分理出value,advantage(一个action相比其余action有更大的好处)层Q(s,a)=V(s)+A
最终输出均为action-value

结构特点:
训练中侧重于有用信息。


A3C模型-Asynchronous Advantage Actor-Critic

这里写图片描述

Asynchronous异步

  • DQN:单个agent,单个神经网络,一个环境
  • A3C:一个全局神经网络,多个worker agent,每个agent复制一份神经网络,一个环境,单独进行优化。多个训练完后有一个Gradient进行update

通过独立的进行多个worker agent训练,增加训练的多样性

Advantage:优势比较

Advantage不仅考虑模型回报,还考虑某一个具体的行为带来的贡献有多大

A=R-V(s)
  • A:Advantage
  • R:Reward
  • V(s):value方程

Advantage用于value loss的形成

Actor-Critic回报反馈决策

Actor:Policy,根据神经网络推出state下应有的行为的概率分布
Critic:value,不同行为能够得到的回报

Policy与value结合,通过全连接层(fc layer)生成

3个A的结合

这里写图片描述
这里写图片描述

查看评论

强化学习(Reinforcement Learning, RL)初步介绍

强化学习概念介绍
  • coffee_cream
  • coffee_cream
  • 2017-02-25 17:59:46
  • 29587

增强学习(Reinforcement Learning)

机器学习算法大致可以分为三种:     1. 监督学习(如回归,分类)     2. 非监督学习(如聚类,降维)     3. 增强学习 什么是增强学习呢? 增强学习(reinforceme...
  • zz_1215
  • zz_1215
  • 2015-03-08 22:16:25
  • 11308

强化学习介绍(Introduction to RL)

机器学习有三大分支,监督学习、无监督学习和强化学习,强化学习是系统从环境学习以使得奖励最大的机器学习。人工智能中称之为强化学习,在控制论中被称之为动态规划,两者在概念上是等价的。也被翻译为增强学习。...
  • tlzhatao
  • tlzhatao
  • 2017-03-25 11:55:47
  • 2624

深度强化学习(Deep Reinforcement Learning)入门:RL base & DQN-DDPG-A3C introduction

过去的一段时间在深度强化学习领域投入了不少精力,工作中也在应用DRL解决业务问题。子曰:温故而知新,在进一步深入研究和应用DRL前,阶段性的整理下相关知识点。本文集中在DRL的model-free方法...
  • qq_30159351
  • qq_30159351
  • 2017-06-25 21:28:27
  • 2240

Policy Gradient Methods in Reinforcement Learning

强化学习中的策略梯度方法详解。
  • panglinzhuo
  • panglinzhuo
  • 2017-05-18 20:48:40
  • 1562

深度增强学习之Policy Gradient方法1

1 前言 在之前的深度增强学习系列文章中,我们已经详细分析了DQN算法,一种基于价值Value的算法,那么在今天,我们和大家一起分析深度增强学习中的另一种算法,也就是基于策略梯度Policy G...
  • AMDS123
  • AMDS123
  • 2017-04-19 16:15:18
  • 11447

reinforcement learning,增强学习:Policy Gradient

上节课和本节课内容 具体的:  Finite Difference Policy Gradient  Monte-Carlo Policy Gradient Actor-Critic ...
  • mmc2015
  • mmc2015
  • 2016-10-25 10:47:54
  • 4440

强化学习中的off-policy 和on-policy

强化学习可以分成off-policy(离线)和on-policy(在线)两种学习方法,按照个人理解,判断一个强化学习是off-policy还是on-policy的依据在于生成样本的policy(val...
  • u013615687
  • u013615687
  • 2017-05-01 14:44:02
  • 2480

强化学习方法归纳

强化学习算法的分类
  • yeqiang19910412
  • yeqiang19910412
  • 2017-09-14 10:25:26
  • 893

增强学习--策略梯度算法(Policy Gradient)

强化学习--策略梯度
  • u012267725
  • u012267725
  • 2017-08-30 01:38:43
  • 1022
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 30万+
    积分: 4331
    排名: 8698
    联系方式

    博文主要参考网上资料,视频笔记,结合个人见解,仅供学习、交流使用,如有侵权,请联系博主删除。


    博客专栏
    最新评论