前言
强化学习(reinforcement learning),又称再励学习,评价学习,是一种重要的机器学习方法,在智能控制机器人及分析预测等领域有许多应用。本文将介绍强化学习的相关概念、算法及其应用实例。
目录
一、基本概念
二、传统强化学习
三、深度强化学习
四、强化学习的应用
一、基本概念
强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它的本质是解决decision making 问题,即自动进行决策,并且可以做连续决策。它主要包含四个元素,agent,环境状态,行动,奖励,强化学习的目标就是获得最多的累计奖励。
1.什么是强化学习
强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它的本质是解决decision making 问题,即自动进行决策,并且可以做连续决策。它主要包含四个元素,agent,环境状态,行动,奖励,强化学习的目标就是获得最多的累计奖励。
2.强化学习的场景
如图所示,个体与环境的交互:环境(environment)中的个体(agent)根据当前所处状态(state)按照某种策略(policy)选择下一步动作(action)并从环境中得到奖励(reward)。
例如:
下棋:根据棋盘的状态下子。
玩游戏:根据目前的游戏状况选择下一步动作。
机械控制:根据装置的和目标选择下一步动作。
3.强化学习的定义
强化学习(reinforcement learning),又称再励学习、评价学习,是一种重要的机器学习方法,在智能控制机器人及分析预测等领域有许多应用
4.强化学习的几个要素:
强化学习的目的:寻找一个最优的策略或者值函数。
例子:
Grid World
Agent:P
•State:p所处的位置
•Reward:每一步是-1
5.强化学习的分类
有Value function Policy是隐式的,比如选择value最大的action;
有显式的Polic;
没有value function;
有value function;
有policy;
(1)Model free
无model;
有policy或者value function;
(2)Model based
有model;
有policy或者value function;
6.与其他机器学习方法的对比
二、传统强化学习
使用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
前面介绍的方法都是基于表格的,记录每个状态的情况。
棋类游戏:围棋,象棋等。
机械控制:机械臂,机器人等。
Value Function Approximation
使用一个函数来近似表示当前状态的估计值:
使用一个神经网络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之前的参数值。
2.改进:Double DQN
3.改进:Dueling DQN
4.改进:PrioritizedDQN,改进batch选择的方式
训练:
结合value based method和policy gradient method。
类似DQN,计算状态的value v(s; w)
使用Policy Gradient方法更新
使用Critic得到的value衡量当前步骤的好坏
(1)优势
单步更新
速度快
(2)劣势
难收敛
四、强化学习的应用
深度学习与强化学习相结合应用于机械控制领域。深度学习非常适合解决非结构化的真实世界场景,而强化学习能够实现较长期的推理(longer-term reasoning),同时能够在一系列决策时做出更好更鲁棒的决策。将这两个工具结合到一起,就有可能能够让机器人从自身经验中不断学习,使得机器人能够通过数据,而不是人工手动定义的方法来掌握运动感知的技能。
我们正越来越多地使用自然语言对话接口与计算机进行交互。简单的问答(QA)机器人已经在亚马逊的 Alexa、苹果的 Siri、谷歌的 Now 和微软的 Cortana(小娜)中为数百万用户提供服务了。这些 bot 通常执行的是单个交流的对话,但我们渴望开发出更通用的对话智能体,使其对话广度能接近人类对话者所表现出的能力。强化学习成为对话系统的基础技术,应用于传统面向任务的对话系统的不同模块。充分利用大数据,结合端到端的训练和强化学习。
近年来,强化学习被越来越多地应用在游戏中,包括多种单人游戏和多人游戏,其优点在于能从大量的训练数据中学习出非线性的表示,从而达到更好的预测效果。棋类博弈和对战游戏都是很典型的应用场景。
强化学习对于自动建模也有重大贡献,通过环境反馈提供最优模型,搜索神经网络架构,能促进建模任务高效完成。