强化学习(Reinforcement Learning, RL)是机器学习中的一个领域,又称再励学习、评价学习或增强学习。
强化学习也是一类机器学习算法, 而强化学习是介于监督学习和非监督学习的另外一种学习方式,是让计算机实现从一开始什么都不懂,脑袋里没有一点想法,通过不断地尝试,从错误中学习,最后找到规律,学会达到目的的方法。
好比于它是模拟大自然中的生物进化的过程,一个生物他接受环境给他的状态和奖励,他再采取下一步的动作在接受环境给他的新的状态和奖励。
一个智能体它采取行动给环境,环境给他新的奖励和新的状态,这个智能体根据他所受的奖励和新的状态,来采取下一步的行动形成一个闭环,这就是强化学习。
强化学习所解决的问题的特点:
目标:
强化学习的发展历程主要可以分为两个阶段:
在2015年之前,人们对强化学习的研究还处于理论阶段,提出了重要的马尔可夫决策和Q-learning算法,为强化学习奠定了一定的理论基础。
2015年DeepMind公司提出了著名的Deep-Q-Network算法,将强化学习与深度学习进行了融合,设计出了AlphaGo,并于2016、2017年相继战胜世界围棋冠军李世石和柯洁,自此强化学习名声大噪。
深度强化学习全称是 Deep Reinforcement Learning(DRL)。
由于近些年来的技术突破, 和深度学习 (Deep Learning) 的整合, 使得强化学习有了进一步的运用。比如让计算机学着玩游戏, AlphaGo 挑战世界围棋高手, 都是强化学习在行的事。强化学习也是让你的程序从对当前环境完全陌生, 成长为一个在环境中游刃有余的高手。
人工智能在模拟大自然的两个方面,神经网络和强化学习,神经网络模拟的是人类和哺乳动物的神经系统神经元,而强化学习它模拟进化过程生物与环境的交互,所以一个微观一个宏观,它都显示了人类在探索人工智能道路上的向大自然学习的两个方面。
我们把强化学习和深度学习结合,这样你会发现它更接近于通用的人工智能,我们之前学习到的机器学习也好,深度学习也好,它解决的主要是这4类问题,分类和回归是监督学习是有标签的,聚类和降维是非监督学习是没有标签的,这也是数据挖掘领域常面临要解决的4个问题。
马可洛夫链描述的是智能体和环境进行互动的过程。简单说:就是智能体在一个状态S下,选择了某个动作A,进入了另外一个状态S’,并获得奖励R的过程。
马尔可夫过程由五个基本的元素组成,S表示状态,A表示动作,P表示状态转移概率,γ表示折扣因子,R表示奖励(有时也称回报函数)。
其实马尔可夫过程说起来也非常简单,就是当前的状态,当前的动作,当前的奖励,下一刻状态,下一刻动作,下一刻奖励,下下刻状态,下下刻动作,下下刻奖励,一直到最后一刻的状态,最后一刻的奖励。这就是马尔可夫决策过程。但需要注意的是,当前的状态只与上一刻的状态有关,而与之前更久远的过去没有关系。
这两张图的区别就在于所处状态观察角度的不同,上面这张图是站在终止状态往后看,每一个动作和每一个状态都已经确定了,而下面这张图是站在当前状态或者称之为初始状态从现在往前看,这条链就是充满不确定性的,每个状态可能做出多个动作,而且每个动作可能到达多个状态,图中的Π称之为策略或决策,P称为状态转移概率,我们将这马尔可夫过程称为马尔可夫树。
最终是希望通过让智能体在环境里获取最多的奖励,把智能体训练成我们想要的样子——就是能完成某些特定的任务。
R就是最终需要优化的函数,把每从头到尾每一时刻的奖励加起来,作为这个R就是从头到尾全部的奖励。
最后这个等式就是把当前时刻的这个折扣的奖励改写一下,把每个折扣γ提取出来就变成了这么一个递推公式,当前的奖励加上t+1时刻的折扣状态乘以折扣因子γ,这个公式非常重要。
强化学习的目标就是找到最佳的策略,来最大化Rt(折扣的未来奖励)。
在当前时刻状态S下的动作A,定义函数Q(s,a)使得未来折扣奖励最大化:
Q-learning其实就是一个函数,它表示了当前状态下采取某个动作的质量,也就是说当前St状态采取At的Q值,就等于使得t+1时刻的折扣未来奖励最大化的一个数。
当前状态下的最佳策略就是找到当前状态下的使得质量Q值最大的动作A,这样就找到了最佳策略。
前面所说到的Q值是对动作节点进行估算,而现在的V值就是对状态节点进行估算,这两种是属于估算每个节点价值的方法。
蒙特卡罗会让智能体从某个状态S出发,直到最终状态,然后回过头来给每个节点标记这次的价值G。G代表了某次智能体在这个节点的价值。经过多次后,把每个状态的G值进行平均。这就是状态的V值。
而时序差分是一步一回头。用下一步的估值,估算当前状态的估值。这就相当于,把下一步状态直接当成最终状态。但这个状态它自己包含了这个状态的价值。
虽然前面所说到的Q值很神奇,但是它怎么计算呢,那么假设这个Q存在,有了这个假设就可以找到最佳策略,而这个Q值可以通过贝尔曼公式计算。
贝尔曼公式(Bellman Equation):
类比于之前关于值函数也就是未来折扣奖励的递推公式,那么我们就可以类比出一个状态下采取某个动作的Q值就等于当前状态的奖励,再加上下一时刻的Q值乘以γ。
Q值计算的过程异常复杂,且它是一种表格方法。
有了这个递推公式和Q函数,就可以得到一个Q表。这个Q表的意思就是每一行就表示某一个状态,每一列就表示某一种动作,Q表定义了某个状态采取某个动作的质量或者叫Q值。有了这个表就可以找到最佳策略,但是这个Q表前提是要把每一个状态给记录下来,这是很难显示定义给出的,显示地定义这个Q值几乎是不可能。
同时Q-learning没有预测能力,也就是没有泛化能力!
于是可以利用深度学习,深度学习中的神经网络是一种非常强大的函数逼近工具。
DQN(Deep Q Network)是一种融合了神经网络和Q-learning的方法。
有些问题太复杂,Q表无法存储,即使可以存储,搜索也很麻烦。故而,将Q表用神经网络进行替代。
(θ代表的是模型参数)
数学上可以证明两层神经网络就可以逼近任何一种形式的函数,借助了神经网络的泛化能力,就不需要显式地把每一种状态都遍历一遍,而利用它的泛化能力就可以给出它的Q值。
有了Q值就可以找到最佳策略,所以任务就变成了如何训练这个Q网络,使得它可以计算Q值,这就是正向传播。
那么通过标签和误差来进行反向传播,就是训练这个网络的过程,这就变成了一个简单的监督学习问题。只要这个网络有了Q值就能够得出最佳策略。
这里使用简单的平方误差,经贝尔曼公式可以得到这个红色的式子,这个就是真实的Q(s,a)。而预测的Q(s,a)就是通过神经网络预估的。
通过真实的Q值和估计的Q值,来计算平方误差,这样就可以用反向传播的方法进行链式求导,最后通过梯度下降方法(SGD)优化目标端到端,就可以解决该监督学习,得到拟合Q值。
这篇论文就是DeepMind团队发表在Nature上的关于DQN的经典论文,被引用数高达五千多次。
所以强化学习+深度学习就等同于人工智能,这句著名的话是由DeepMind的首席科学家,同时也是AlphaGo负责人David Silver提出的。
到此,强化学习就介绍到这,后面是强化学习领域中一些重要的论文,大家有兴趣可以看一下!
本文讲述了强化学习的基本概念和基础算法,介绍了强化学习的发展进程与未来期望!
(注:第八次发文,如有错误和疑问,欢迎在评论区指出,再次感谢!)
——2021.09.23