强化学习(RL)——Reinforcement learning

强化学习

  • 一、强化学习简介
  • 二、强化学习发展历程
  • 三、深度强化学习DRL
  • 四、马尔可夫决策过程
  • 五、值函数
  • 六、Q值
  • 七、蒙特卡洛(MC)与时序差分(TD)
  • 八、强化学习的代表算法
    • 1.Q-learning算法
    • 2.DQN(Deep Q Network)算法
  • 九、求拟合Q值的大致过程
  • 十、扩展与总结

一、强化学习简介

强化学习(Reinforcement Learning, RL)是机器学习中的一个领域,又称再励学习、评价学习或增强学习。
强化学习(RL)——Reinforcement learning_第1张图片

强化学习也是一类机器学习算法, 而强化学习是介于监督学习和非监督学习的另外一种学习方式,是让计算机实现从一开始什么都不懂,脑袋里没有一点想法,通过不断地尝试,从错误中学习,最后找到规律,学会达到目的的方法。
强化学习(RL)——Reinforcement learning_第2张图片
好比于它是模拟大自然中的生物进化的过程,一个生物他接受环境给他的状态和奖励,他再采取下一步的动作在接受环境给他的新的状态和奖励。
一个智能体它采取行动给环境,环境给他新的奖励和新的状态,这个智能体根据他所受的奖励和新的状态,来采取下一步的行动形成一个闭环,这就是强化学习。
强化学习(RL)——Reinforcement learning_第3张图片
强化学习所解决的问题的特点:

  1. 智能体和环境之间不断进行交互;
  2. 搜索和试错;
  3. 延迟奖励(当前所做的动作可能很多步之后才会产生相应的结果)。

目标:

  1. 获取更多的累积奖励;
  2. 获得更可靠的估计。

二、强化学习发展历程

  1. 强化学习最早可以追溯到巴甫洛夫的条件反射实验,它从动物行为研究和优化控制两个领域独立发展,最终经Bellman之手将其抽象为马尔可夫决策过程(Markov Decision Process,MDP);
  2. 1956年Bellman提出了动态规划方法;
  3. 1992年Watkins 提出Q-learning 算法;
  4. 2015年Google-deepmind 提出Deep-Q-Network算法;
  5. 在2016年,AlphaGo击败李世石之后,融合了深度学习的强化学习技术大放异彩,成为这几年最火的技术之一。

强化学习的发展历程主要可以分为两个阶段:
在2015年之前,人们对强化学习的研究还处于理论阶段,提出了重要的马尔可夫决策Q-learning算法,为强化学习奠定了一定的理论基础。
2015年DeepMind公司提出了著名的Deep-Q-Network算法,将强化学习与深度学习进行了融合,设计出了AlphaGo,并于2016、2017年相继战胜世界围棋冠军李世石和柯洁,自此强化学习名声大噪。


三、深度强化学习DRL

深度强化学习全称是 Deep Reinforcement Learning(DRL)

由于近些年来的技术突破, 和深度学习 (Deep Learning) 的整合, 使得强化学习有了进一步的运用。比如让计算机学着玩游戏, AlphaGo 挑战世界围棋高手, 都是强化学习在行的事。强化学习也是让你的程序从对当前环境完全陌生, 成长为一个在环境中游刃有余的高手。

人工智能在模拟大自然的两个方面,神经网络强化学习神经网络模拟的是人类和哺乳动物的神经系统神经元,而强化学习它模拟进化过程生物与环境的交互,所以一个微观一个宏观,它都显示了人类在探索人工智能道路上的向大自然学习的两个方面。

  • 深度学习:能够利用深度神经网络对状态特征进行自动抽取,避免了人工定义状态特征带来的不准确性,使得Agent能够在更原始的状态上进行学习。
  • 强化学习:其所带来的推理能力是智能的一个关键特征衡量,真正的让机器有了自我学习、自我思考的能力。

我们把强化学习和深度学习结合,这样你会发现它更接近于通用的人工智能,我们之前学习到的机器学习也好,深度学习也好,它解决的主要是这4类问题,分类和回归是监督学习是有标签的,聚类和降维是非监督学习是没有标签的,这也是数据挖掘领域常面临要解决的4个问题。


四、马尔可夫决策过程

强化学习(RL)——Reinforcement learning_第4张图片
马可洛夫链描述的是智能体和环境进行互动的过程。简单说:就是智能体在一个状态S下,选择了某个动作A,进入了另外一个状态S’,并获得奖励R的过程。

在这里插入图片描述
马尔可夫过程由五个基本的元素组成,S表示状态,A表示动作,P表示状态转移概率,γ表示折扣因子,R表示奖励(有时也称回报函数)。

  • S: 表示状态集(states),有s∈S,si表示第i步的状态。
  • A: 表示一组动作(actions),有a∈A,ai表示第i步的动作。
  • P: 表示状态转移概率。
  • γ:折扣因子。
  • R: S×A⟼ℝ ,R是回报函数(reward function)。 有些回报函数状态S的函数,可以简化为R:
    S⟼ℝ。如果一组(s,a)转移到了下个状态s’,那么回报函数可记为r(s’|s,
    a)。如果(s,a)对应的下个状态s’是唯一的,那么回报函数也可以记为r(s,a)。

其实马尔可夫过程说起来也非常简单,就是当前的状态,当前的动作,当前的奖励,下一刻状态,下一刻动作,下一刻奖励,下下刻状态,下下刻动作,下下刻奖励,一直到最后一刻的状态,最后一刻的奖励。这就是马尔可夫决策过程。但需要注意的是,当前的状态只与上一刻的状态有关,而与之前更久远的过去没有关系
强化学习(RL)——Reinforcement learning_第5张图片
这两张图的区别就在于所处状态观察角度的不同,上面这张图是站在终止状态往后看,每一个动作和每一个状态都已经确定了,而下面这张图是站在当前状态或者称之为初始状态从现在往前看,这条链就是充满不确定性的,每个状态可能做出多个动作,而且每个动作可能到达多个状态,图中的Π称之为策略或决策,P称为状态转移概率,我们将这马尔可夫过程称为马尔可夫树
强化学习(RL)——Reinforcement learning_第6张图片
最终是希望通过让智能体在环境里获取最多的奖励,把智能体训练成我们想要的样子——就是能完成某些特定的任务。


五、值函数

强化学习(RL)——Reinforcement learning_第7张图片
R就是最终需要优化的函数,把每从头到尾每一时刻的奖励加起来,作为这个R就是从头到尾全部的奖励
强化学习(RL)——Reinforcement learning_第8张图片
最后这个等式就是把当前时刻的这个折扣的奖励改写一下,把每个折扣γ提取出来就变成了这么一个递推公式,当前的奖励加上t+1时刻的折扣状态乘以折扣因子γ,这个公式非常重要。
强化学习的目标就是找到最佳的策略,来最大化Rt(折扣的未来奖励)。


六、Q值

在当前时刻状态S下的动作A,定义函数Q(s,a)使得未来折扣奖励最大化:
在这里插入图片描述
Q-learning其实就是一个函数,它表示了当前状态下采取某个动作的质量,也就是说当前St状态采取At的Q值,就等于使得t+1时刻的折扣未来奖励最大化的一个数。
在这里插入图片描述
当前状态下的最佳策略就是找到当前状态下的使得质量Q值最大的动作A,这样就找到了最佳策略。


七、蒙特卡洛(MC)与时序差分(TD)

前面所说到的Q值是对动作节点进行估算,而现在的V值就是对状态节点进行估算,这两种是属于估算每个节点价值的方法。
强化学习(RL)——Reinforcement learning_第9张图片

蒙特卡罗会让智能体从某个状态S出发,直到最终状态,然后回过头来给每个节点标记这次的价值G。G代表了某次智能体在这个节点的价值。经过多次后,把每个状态的G值进行平均。这就是状态的V值。
强化学习(RL)——Reinforcement learning_第10张图片

而时序差分是一步一回头。用下一步的估值,估算当前状态的估值。这就相当于,把下一步状态直接当成最终状态。但这个状态它自己包含了这个状态的价值。


八、强化学习的代表算法

1.Q-learning算法

虽然前面所说到的Q值很神奇,但是它怎么计算呢,那么假设这个Q存在,有了这个假设就可以找到最佳策略,而这个Q值可以通过贝尔曼公式计算。

贝尔曼公式(Bellman Equation):
在这里插入图片描述
类比于之前关于值函数也就是未来折扣奖励的递推公式,那么我们就可以类比出一个状态下采取某个动作的Q值就等于当前状态的奖励,再加上下一时刻的Q值乘以γ。

Q值计算的过程异常复杂,且它是一种表格方法。
有了这个递推公式和Q函数,就可以得到一个Q表。这个Q表的意思就是每一行就表示某一个状态,每一列就表示某一种动作,Q表定义了某个状态采取某个动作的质量或者叫Q值。有了这个表就可以找到最佳策略,但是这个Q表前提是要把每一个状态给记录下来,这是很难显示定义给出的,显示地定义这个Q值几乎是不可能。

同时Q-learning没有预测能力,也就是没有泛化能力!
于是可以利用深度学习,深度学习中的神经网络是一种非常强大的函数逼近工具

2.DQN(Deep Q Network)算法

DQN(Deep Q Network)是一种融合了神经网络和Q-learning的方法。
有些问题太复杂,Q表无法存储,即使可以存储,搜索也很麻烦。故而,将Q表用神经网络进行替代。
在这里插入图片描述
(θ代表的是模型参数)

数学上可以证明两层神经网络就可以逼近任何一种形式的函数,借助了神经网络的泛化能力,就不需要显式地把每一种状态都遍历一遍,而利用它的泛化能力就可以给出它的Q值。

用深度神经网络端到端的拟合Q值:
强化学习(RL)——Reinforcement learning_第11张图片


九、求拟合Q值的大致过程

强化学习(RL)——Reinforcement learning_第12张图片
有了Q值就可以找到最佳策略,所以任务就变成了如何训练这个Q网络,使得它可以计算Q值,这就是正向传播

那么通过标签和误差来进行反向传播,就是训练这个网络的过程,这就变成了一个简单的监督学习问题。只要这个网络有了Q值就能够得出最佳策略。
在这里插入图片描述
这里使用简单的平方误差,经贝尔曼公式可以得到这个红色的式子,这个就是真实的Q(s,a)。而预测的Q(s,a)就是通过神经网络预估的。
在这里插入图片描述

通过真实的Q值和估计的Q值,来计算平方误差,这样就可以用反向传播的方法进行链式求导,最后通过梯度下降方法(SGD)优化目标端到端,就可以解决该监督学习,得到拟合Q值。


十、扩展与总结

强化学习(RL)——Reinforcement learning_第13张图片
这篇论文就是DeepMind团队发表在Nature上的关于DQN的经典论文,被引用数高达五千多次。

强化学习(RL)——Reinforcement learning_第14张图片

  • 利用神经网络从端到端对Q值进行计算(预测),而不显式的构建Q-learning的Q表
  • 利用深度学习可以从高维中提取高维的特征,并且具有强大的泛化能力

在这里插入图片描述
所以强化学习+深度学习就等同于人工智能,这句著名的话是由DeepMind的首席科学家,同时也是AlphaGo负责人David Silver提出的。

到此,强化学习就介绍到这,后面是强化学习领域中一些重要的论文,大家有兴趣可以看一下!

  • DQN原文: Mnih, Volodymyr, et al. Human-level control through deep reinforcement learning. Nature. 518 (7540): 529-533, 201
  • AlphaGO原文:David Silver, et al. Mastering the Game of Go with Deep Neural Networks and Tree Search. Nature, 2016.
  • Q-learning原文:Christopher JCH Watkins and Peter Dayan. Q-learning. Machine learning, 8(3-4):279–292, 1992.

本文讲述了强化学习的基本概念和基础算法,介绍了强化学习的发展进程与未来期望!

(注:第八次发文,如有错误和疑问,欢迎在评论区指出,再次感谢!)
——2021.09.23

你可能感兴趣的:(大数据基础,强化学习,机器学习,人工智能)