深入机器学习系列之强化学习

前言

强化学习(reinforcement learning),又称再励学习,评价学习,是一种重要的机器学习方法,在智能控制机器人及分析预测等领域有许多应用。本文将介绍强化学习的相关概念、算法及其应用实例。



目录  


    一、基本概念

    二、传统强化学习

    • Dynamic Programming

    • Monte Carlo Method

    • Temporal Difference Learnin

三、深度强化学习

  • DQN

  • Policy Gradient

  • Actor Critic

四、强化学习的应用



一、基本概念

    

强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它的本质是解决decision making 问题,即自动进行决策,并且可以做连续决策。它主要包含四个元素,agent,环境状态,行动,奖励,强化学习的目标就是获得最多的累计奖励。


1.什么是强化学习


强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它的本质是解决decision making 问题,即自动进行决策,并且可以做连续决策。它主要包含四个元素,agent,环境状态,行动,奖励,强化学习的目标就是获得最多的累计奖励。


2.强化学习的场景

如图所示,个体与环境的交互:环境(environment)中的个体(agent)根据当前所处状态(state)按照某种策略(policy)选择下一步动作(action)并从环境中得到奖励(reward)。


例如:


下棋:根据棋盘的状态下子。

玩游戏:根据目前的游戏状况选择下一步动作。

机械控制:根据装置的和目标选择下一步动作。


640?wx_fmt=png

3.强化学习的定义


强化学习(reinforcement learning),又称再励学习、评价学习,是一种重要的机器学习方法,在智能控制机器人及分析预测等领域有许多应用


4.强化学习的几个要素:


  • Policy: agent的动作选择函数:


640?wx_fmt=png


  • Value function: 对未来的预测,判断当前状态s的好坏 :


640?wx_fmt=png


  • Model: agent对于环境的评估:


640?wx_fmt=png


强化学习的目的:寻找一个最优的策略或者值函数。


例子:

Grid World

Agent:P


•State:p所处的位置

•Reward:每一步是-1

640?wx_fmt=png

640?wx_fmt=png


5.强化学习的分类


  • 基于value的

有Value function Policy是隐式的,比如选择value最大的action;


  • 基于Policy的

有显式的Polic;

没有value function;


  • Actor Critic

有value function;

有policy;


  • 按照有无model来分

(1)Model free

无model;

有policy或者value function;

(2)Model based

有model;

有policy或者value function;


640?wx_fmt=png


6.与其他机器学习方法的对比



  • 从与环境的交互中学习

  • 没有label,通过reward学习

640?wx_fmt=png


二、传统强化学习

  

使用Markov Decision Process来表示建模agent与env的交互过程。下一个状态St+1只跟当前状态St与动作at有关。


四元组<S , A, P, R, γ>表示;S是状态空间的集合;A是动作空间的集合;P是转移概率矩阵


640?wx_fmt=png


R是奖励函数


640?wx_fmt=png


γ是discount factor;

其目的还是:寻找最优策略,最大化期望回报。


  • 动态规划


动态规划(Dynamic Programming)是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。求解复杂问题的方法,将原问题分解为一些子问题:


Model based:


640?wx_fmt=png


动态规划(DP) – Policy IterationPolicy Evaluate和Policy Improve的循环:


640?wx_fmt=png640?wx_fmt=png


动态规划(DP) – Value Iteration


PolicyIteration每次都需要重新根据当前的策略更新value。

function的评估,Value iteration直接选择greedy的policy。


640?wx_fmt=png


求解最短路径的示例:


640?wx_fmt=png


蒙特卡洛方法(Monte Carlo Method)


Model free

大部分情况下完整的环境状态是未知的,不停的与环境交互,获取state,action, reward的序列;V是return的均值。


640?wx_fmt=png


Temporal Difference Learning

强化学习的核心方法,结合了DP和MC

Model Free


640?wx_fmt=png


Temporal Difference Learning -- Q-Learning

更新公式


640?wx_fmt=png


Off policy


640?wx_fmt=png


Temporal Difference Learning -- Sarsa

更新公式


640?wx_fmt=png


On policy


640?wx_fmt=png


三、深度强化学习


深度强化学习将深度学习的感知能力和强化学习的决策能力相结合,可以直接根据输入的图像进行控制,是一种更接近人类思维方式的人工智能方法。


深度强化学习将深度学习的感知能力和强化学习的决策能力相结合,可以直接根据输入的图像进行控制,是一种更接近人类思维方式的人工智能方法。


Tabular based method

前面介绍的方法都是基于表格的,记录每个状态的情况。

  • 状态数变大--- not available

棋类游戏:围棋,象棋等。

机械控制:机械臂,机器人等。

640?wx_fmt=png


Value Function Approximation


使用一个函数来近似表示当前状态的估计值:


640?wx_fmt=png


  • 状态feature的构造feature engineering

  • Polynomials

  • Fourier Basis

  • Coarse Coding

  • ...

  • 函数选取

  • 线性: liner regression...

  • 非线性: tree-based, neural network …


640?wx_fmt=png


  • Deep Q Network


使用一个神经网络Q(s;w)来近似表示Q Table输入状态s,输出该状态下每个action的value。


640?wx_fmt=png


1.训练


训练集

使用一个memory记录前段时间内产生的状态动作序列s,a,r,s,随机采样batch Loss,用Q(s:w)来表示预测值;使用r+maxQ(s:w*)来表示w*为几个step之前的参数值。


  • Squred Loss

  • Deep Q Network -- 训练

  • Q(s:w)-- eval net

  • Q(s:w)-- target net


640?wx_fmt=png


2.改进:Double DQN


  • DQN的目标值

  • 从target net选取一个action

  • 根据target net计算这个action的value


640?wx_fmt=png

  • Double DQN的目标值

  • 从target net选取一个action

  • 根据eval net计算这个action的value


640?wx_fmt=png


3.改进:Dueling DQN


  • 改变Q值计算的方式

  • State value与action value之和

640?wx_fmt=png

4.改进:PrioritizedDQN,改进batch选择的方式


  • DQN

  • Uniform

  • Prioritized DQN

  • Weighted with td-error

640?wx_fmt=png


  • Policy Gradient

  • 直接优化决策函数π(s; θ)

  • 相比value based方法更直接

  • 能够直接适用于连续action的场景


640?wx_fmt=png


训练:

  • 没有loss

  • 构造回传的梯度,使reward大的action更有可能出现

  • REINFORCE-- episodic based


640?wx_fmt=png


  • Actor Critic


结合value based method和policy gradient method。

  • Critic

类似DQN,计算状态的value v(s; w)

  • Actor

使用Policy Gradient方法更新

使用Critic得到的value衡量当前步骤的好坏


  • Actor Critic

(1)优势

单步更新

速度快


(2)劣势

难收敛


640?wx_fmt=png



四、强化学习的应用


  • 机械控制:机器人、机械臂


深度学习与强化学习相结合应用于机械控制领域。深度学习非常适合解决非结构化的真实世界场景,而强化学习能够实现较长期的推理(longer-term reasoning),同时能够在一系列决策时做出更好更鲁棒的决策。将这两个工具结合到一起,就有可能能够让机器人从自身经验中不断学习,使得机器人能够通过数据,而不是人工手动定义的方法来掌握运动感知的技能。


  • NLP:对话系统


我们正越来越多地使用自然语言对话接口与计算机进行交互。简单的问答(QA)机器人已经在亚马逊的 Alexa、苹果的 Siri、谷歌的 Now 和微软的 Cortana(小娜)中为数百万用户提供服务了。这些 bot 通常执行的是单个交流的对话,但我们渴望开发出更通用的对话智能体,使其对话广度能接近人类对话者所表现出的能力。强化学习成为对话系统的基础技术,应用于传统面向任务的对话系统的不同模块。充分利用大数据,结合端到端的训练和强化学习。


640?wx_fmt=jpeg


  • 游戏:棋类、对战游戏


近年来,强化学习被越来越多地应用在游戏中,包括多种单人游戏和多人游戏,其优点在于能从大量的训练数据中学习出非线性的表示,从而达到更好的预测效果。棋类博弈和对战游戏都是很典型的应用场景。


640?wx_fmt=jpeg


  • 自动建模:神经网络的架构搜索


强化学习对于自动建模也有重大贡献,通过环境反馈提供最优模型,搜索神经网络架构,能促进建模任务高效完成。


结语强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它最开始是在机器人上的应用,但随着技术的发展,它在制造业,库存,电商,广告,推荐,金融,医疗等与我们生活息息相关的领域也有很好的应用,值得我们多多关注。


640?wx_fmt=png


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值