前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入机器学习系列之强化学习

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

作者头像
数据猿
发布2019-07-31 15:47:30
9590
发布2019-07-31 15:47:30
举报
文章被收录于专栏:数据猿数据猿

前言

强化学习(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)。

例如:

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

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

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

3.强化学习的定义

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

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

  • Policy: agent的动作选择函数:
  • Value function: 对未来的预测,判断当前状态s的好坏 :
  • Model: agent对于环境的评估:

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

例子:

Grid World

Agent:P

•State:p所处的位置

•Reward:每一步是-1

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;

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

  • 从与环境的交互中学习
  • 没有label,通过reward学习

二、传统强化学习

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

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

R是奖励函数

γ是discount factor;

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

  • 动态规划

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

Model based:

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

动态规划(DP) – Value Iteration

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

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

求解最短路径的示例:

蒙特卡洛方法(Monte Carlo Method)

Model free

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

Temporal Difference Learning

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

Model Free

Temporal Difference Learning -- Q-Learning

更新公式

Off policy

Temporal Difference Learning -- Sarsa

更新公式

On policy

三、深度强化学习

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

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

Tabular based method

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

  • 状态数变大--- not available

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

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

Value Function Approximation

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

  • 状态feature的构造feature engineering
  • Polynomials
  • Fourier Basis
  • Coarse Coding
  • ...
  • 函数选取
  • 线性: liner regression...
  • 非线性: tree-based, neural network …
  • Deep Q Network

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

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

2.改进:Double DQN

  • DQN的目标值
  • 从target net选取一个action
  • 根据target net计算这个action的value
  • Double DQN的目标值
  • 从target net选取一个action
  • 根据eval net计算这个action的value

3.改进:Dueling DQN

  • 改变Q值计算的方式
  • State value与action value之和

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

  • DQN
  • Uniform
  • Prioritized DQN
  • Weighted with td-error
  • Policy Gradient
  • 直接优化决策函数π(s; θ)
  • 相比value based方法更直接
  • 能够直接适用于连续action的场景

训练:

  • 没有loss
  • 构造回传的梯度,使reward大的action更有可能出现
  • REINFORCE-- episodic based
  • Actor Critic

结合value based method和policy gradient method。

  • Critic

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

  • Actor

使用Policy Gradient方法更新

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

  • Actor Critic

(1)优势

单步更新

速度快

(2)劣势

难收敛

四、强化学习的应用

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

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

  • NLP:对话系统

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

  • 游戏:棋类、对战游戏

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯智能对话平台
腾讯智能对话平台(Tencent Bot Platform,TBP)专注于“对话即服务”的愿景,全面开放腾讯对话系统核心技术,为大型企业客户、开发者和生态合作伙伴提供开发平台和机器人中间件能力,实现便捷、低成本构建人机对话体验和高效、多样化赋能行业。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档