||
思考智能和学习的本质时,我们首先想到是我们通过与环境的互动来学习。
无论是在比赛,工作,还是谈话,我 们试图通过行为来影响后续发生的事情。
我们能感觉或者观察到环境是如何回应我们的,
审视小孩和自己的学习过程,很明显而且必须,通过触碰(touch)世界,
和他人和动物交流,得到正向和负面的经验,从而了解这个世界也了解自己。
强化学习,或者说从互动中学习几乎是所有智能系统(不管是人的智能还是人工智能)
学习的方法论。
要说明的是,这里“强化“两字是从英文 Reinforcement (Learning)翻译而来,
其实英文原意是以自举【0】自主的方式提高自己,不是intensify的意思。
强化学习和闭环控制都要把主控端(或者叫智能体,agent)发命令的执行结果反馈
回主控端,作为下一步行动的参考 数据, 所以说强化学习是闭环控制在各种场景下
的推广。 因为控制论已经很成熟,本文简略而过, 重点在介绍强化学习上。
一 .强化学习是机器学习的三大分支之一
机器学习的三大分支是有监督学习,无监督学习,强化学习。
常说的深度学习和强化学习不是并列关系。深度学习Deep Learning
是机器学习的子集。有监督无监督深度学习的准确度本质上是依赖大量数据的【13】,
但是强化学习和闭环控制一般不需要大量数据或者大数据。
强化学习和深度学习【1】技术可以结合,称之为强化深度学习。
监督学习和非监督学习的经验来源(也就是数据集)都是静态的。现在假设这样一个
情景, 我们需要训练 一 个机器人能够自主的在地面上行走,
按照非监督学 习或 者监督学习的理念,我们需要向机器人提供大量关于环境的数据,
什么是障碍物等, 由于障碍物和环境有很多种,大的小的动的静的, 机器人面临不同
的 障碍 物, 作出的应对方案也不同。所以提供完全的数据集来 训练机器人不可行。
而强化学习用于自适应地解决这样需要”与时俱进“的问 题,强化学习的数据集不是
静态 数据集,也不是开始就有的,而是通过自身与环境交互产生和得到的,是自举的。
强化学习又可称之为试错式学习,将智能体(agent)
扔在环境中,让它自己探索,agent会做出各种动作作用于环境,环境会给agent一个
反馈 告知能否得到奖励, agent不断得到经验完善自己的行动策略。
二. 什么是开环控制
开环控制系统是指一个输出只受系统输入控制的没有反馈回路的系统。其特点是主控
端(agent)指挥执行机构动作,被控端相应地发生变化,而这种变化并不再次构成
主控端动作的原因,即控制信号和被控量之间没有反馈回路。
举例来说,我们常坐的垂直电梯就是开环控制系统,人把去几楼的信号发出去的一瞬间,控制就完成 了,受控端不会给反馈。
三.什么是闭环控制
闭环指的是有反馈【2】。
1948年在奠基性著作《控制论-关于在动物和机器中控制与通信的科学》,维纳抓住了
一切通信和控制系统都包含有信息传输和信息处理的过程的共同特点,确认了信息和反
馈在控制论中的基础性,指出精确的自动控制系统必须根据周围环境的变化自行调整自
己的运动。
闭环控制系统指作为被控对象的结果返回到作为主控端,并对主控端施加影响的
一种控制系统 。当主控端启动系统后,反馈回来的控制结果与期望值比较,并根据
它们之间的差别,主控端发出新控制信号,反复如此直到误差消除。
可以说闭环控制本身已经具有相当程度的人工智能,举例来说,飞机
的自动驾驶,从机电数学角度看是自动控制,从图灵测试的角度看就是
人工智能【14】。
例1. 人穿针引线
人把线头穿进针眼,实际有个反馈过程,如果眼睛看到线头没有对准针眼,会把
误差信 号反馈给大脑,再反馈到手,手多次调整位置,直到线头对准针眼。
例2. 机器人穿针引线
机器人把线头穿进针眼,实际有个反馈过程,如果摄像头看到线头没有对准针
眼,会把误差信号反馈中枢控制器,再反馈给机械手,机械手多次调整位置,
直到线头对准针眼。
机械手接近针眼的算法称之为路径规划算法,目的是寻求机械手到目标的最
短 路。 显然,机械手的运行是模仿人的判断过程。
例3. 空调控温
四. 什么是强化学习
强化学习是一种以结果论英雄的“逐利学习”。
它是一种主动学习方法,通过主动和环境交互产生学习样本。【3】
强化学习主要由智能体(Agent)、环境(Environment)、状态(State)、动作(Action)、奖励(Reward)组成。智能体执行了某个动作后,环境将会转换到一个
新的状态,对于该新的状态环境会给出奖励信号(正奖励或者负奖励)。随后,智能体
根据新的状态和环境反馈的奖励,按照一定的策略执行新的动作。
智能体通过强化学习,可以知道自己在什么状态下,应该采取什么样的动作获得
最大奖励。由于智能体与环境的交互方式与人类与环境的交互方式类似,可以认为强化
学习是一套通用的学习框架,这是强化学习用来解决通用人工智能问题的逻辑基础。
因此强化学习也被称为通用人工智能的机器学习方法。
强化学习和闭环控制的反馈,原则上类似深度学习里的反向传播BP算法。
例1. AlphaGo下围棋
AlphaGo就是强化学习的训练对象,AlphaGo走的每一步不存在对错之分,但是存在
“好坏”之分。强化学习的训练基础在于AlphaGo的每一步行动环境都能给予反馈,是
“好”还是“ 坏”?“好”“坏”具体多少,可以量化。
强化学习在AlphaGo这个场景中训练目的就是让棋子最终占领棋面上更大的区域。
例2.用一个经典的方格世界举例【4】:
假设这里有一个5*5的方格,要求机器人从(1,1)的方格开始,目地是
走到(5,5)的方格。机器人在每个方格的动作只有前后左右,最初机器人什么也不懂,
在方格世界随机游走。如在(1,1)有上下左右四种动作。如果选择了左或者下,
就走出方格范围,环境返回奖励-1告诉机器 人在(1,1)向左向下的动作不好,如果向上
或者 向右则得到0的奖励,这样子机器人的状态从(1,1)转 移到(1,2)或者(2,1),
然后 机器人继续执行四个动作中的一个到达下一个状态,得到相 应的奖励,当到达
(5,5)时, 获得奖励+10,通过这样不断的训练并记忆有利策略,机器人便会在每个状态
选择 有利 的动作,最终到达终点。
例3. 闭环控制,见本文第三节。
五.强化学习的训练过程
整个训练过程都基于一个前提,我们认为整个过程都是符合马尔可夫决策过程的。
马尔可夫链是一种随机游走模型。
马尔可夫决策过程(Markov Decision Process),以下用MDP代替。
MDP核心思想就是下一步的State只和当前的状态State以及当前状态将要采取的Action
有关,只回溯一步。
实际应用中很多场景都是马尔可夫决策过程,比如AlphaGo下围棋,当前棋面是什
么,当前棋子准备落在哪里,我们就可以清晰地知道下一步的棋面是什么了。
为什么我们要先假设整个训练过程符合MDP了,因为只有符合MDP,我们才能
根据当前的State,以及要采取的Action,推理出下一步的State。
六.强化学习的算法分类【5,12】
1. value based
代表性算法: Q-Learning、SARSA(State-Action-Reward-State-Action)
代表性算法: Policy Gradients
3. Actor-Critic(演员-批评者)
4. 其他分类
上述三种分类是常见的分类方法,有时候我们还会通过其他角度进行分类,以下分类方
法和上述的分类存在一定的重叠:
根据是否学习(训练)出环境Model分类:
Model-based指的是,agent已经学习出整个环境是如何运行的,当agent已知任何
状态下执行任何动作获得的回报和到达的下一个状态都可以通过模型得出时,此时总的
问题就变成了一个动态规划的问题,直接利用贪心算法即可了。
而Model-free指的是,有时候并不需要对环境进行建模也能找到最优的策略。虽然我
们无法知道确切的环境回报,但我们可以对它进行估计。Q-learning中的Q(s,a)就是对
在状态s下,执行动作a后获得的未来收益总和进行的估计,经过很多轮训练后,Q(s,a)
的估计值会越来越准,这时候同样利用贪心算法来决定agent在某个具体状态下采取什
么行动。
如何判断该强化学习算法是Model-based or Model-free? 我们是否在agent在
状态s下执行它的动作a之前,就已经可以准确对下一步的状态和回报做出预测,如果
可以,那么就是Model-based,如果不能,即为Model-free。
七.EE(Explore & Exploit)探索与利用的权衡
我们人以及动物,生活生存中会面临一个留在原地还是开辟新工作生活疆域的
两难问题。留在原地习惯了,比较省心省力,迁徙比较危险,但可能发现新大陆
和工作机会。工作中探索发明创造,可能失败也可能成功。这就是Explore & Exploit,
探索与利用问题的起源。
强化学习里,探索指自由或者随机的试验。利用指利用已有的信息。
Explore&Exploit问题,并不仅仅只是强化学 习中会遇到,
在生活工作中,在推荐系统中也会遇到,比如用户对某个商品 or 内容感兴趣,系统是
否应该一直为用户推送,是不是也要适当搭配随机一些其他商品/内容。
强化学习不追求单步最优,而追求与环境交互的长期累积奖励。智能体决策时,
偏重于历史上带来更多奖励的动作。正如发现这些一样,未曾选择的动作可能是
更有利的决策,所以鼓励智能体尝试未做过的决策。重点是要在探索未知范围和利
用现有信息之间寻找一个平衡(tradeoff).
所以在强化学习训练的时候,一开始会让Agent偏向于探索Explore,并不是哪一个
Action带来的Value最大就执行该Action,选择Action时具有一定的随机性,目的是为
了覆盖更多的Action,尝试每一种可能性。
等训练很多轮以后各种State下的各种Action基本尝试完以后,我们这时候会大幅降低
探索的比例,尽量让Agent偏向于利用Exploit,哪一个Action返回的Value最大,
就选择哪一个Action。
八.强化学习技术【6】
主要的强化学习技术有蒙特卡洛学习((Monte-Carlo learning, MC)、Q-learning、
策略梯度(policy gradient, PG)、Actor-Critic(AC), A2C(advantage actor-critic), A3C(asynchronous advantage actor-critic) ,时间差分学习(temporal-difference learning, TD)等。
九. Q-learning 【7,12】
Q-learning 是model free的。它结合了动态规划的思想,是一种 values-based 算法,
最终是会学习出一个表格 Q-Table,例如在一个游戏中有下面5种状态和4种行为,则
表格为:
这个表格的每一行代表每个 state,每一列代表每个 action,表格的数值就是在各个
state 下采取各个 action 时能够获得的最大的未来期望奖励。
通过 Q table 就可以找到每个状态下的最优行为,进而通过找到所有最优的action得到
最大 的期望奖励。
关键问题是表格的数值如何计算?
首先 Q-table 初始化为 0。
然后根据当前的Q-Table给当前state选择一个action并执行。
执行过程是一直到本轮训练停止才算完成。不过因为初始的 Q-value 全是0,就要采取
epsilon greedy strategy 来选择。
所谓 epsilon greedy strategy 是指,
开始时通过设置一个较大的 epsilon,让agent探索环境并随机选择action。
随着agent对环境的了解,降低epsilon ,这样agent开始利用环境做出行动。
在当前state下选择了某个action后,就可以用Bellman equation计算Q-values:
评估步骤:采取行动得到了奖励后就可以用Q函数更新 Q(s,a):
重复这个过程一直到训练停止,就可以得到最优的 Q-table。
根据Q表决定做什么action,很像图灵机读写头,或有限状态自动机
的移动决策方式。
十. 蒙特卡洛方法【8】
1.蒙特卡罗法,也称统法模拟法、统计试验法。是把概率现象作为研究对象的数值模拟方法。
上图中,求中间曲线区域的面积。曲线区域的面积不易计算,而正方形面积易于计算。
则可以进行随机地采样,将属于曲线内的点的数量记作N a ,一共采样了N次。
则中间曲线区域的面积为:
这样可以通过随机采样的方式计算出了曲线区域的面积,采样的次数越多,结果越准确。
2.蒙特卡洛树
大多数的博弈,可以当做一棵树。在树上找路径。围棋有3^(19x19)的可能,有些路
径是死路,需要修剪掉。神经网络有记忆能力,由神经网络做剪枝,将需要的部分记忆
下来。
上图展示的是蒙特卡洛树的建立过程,选择路径、扩张、模拟、反向传播(BP,
Back propagation)。
如果持续这样的过程,经过很多步,可以建立一个庞大的树结构,称之为蒙特卡洛
树。每一个节点的比例,则代表的是该节点的胜率。只要建立这样的一棵树以后,
在实际下棋的过程中,按照每一个节点的胜率,选择最大的一个即可.
十一. Actor-Critic(AC,演员--评论家) 方法【9】
AC算法框架被广泛应用于实际强化学习算法中,该框架集成了值函数估计算法和策略搜
索算法,是解决实际问题时最常考虑的框架。
Q-learning或策略梯度是使用单个神经网络的强化学习方法。 Actor-Critic 可以看作
是 Q learning和策略梯度的混合强化学习模型。
Actor-Critic,其实是用了两个网络: 一个输出策略,负责选择动作,我们把这个网络
称为Actor;一个负责计算每个动作的分数,我们把这个网络称为Critic。Actor,Critic都
可用(深度学习)神经网络代替。
大家可以形象地想象为,Actor是舞台上的舞者,Critic是台下的评委,Actor在台上跳
舞,Critic根据Actor的舞姿打分。Actor通过Critic给出的分数去学习。如果Critic给的分
数高,那么Actor会调高这个动作的使用概率,否则就减少这个动作使用的概率。
Actor-Critic方法结合了值函数逼近(Critic)和策略函数逼近(Actor),它从与环境的
交互中学习到越来越精确的Critic(评估),能够实现单步更新,相对单纯的策略梯度,Actor-Critic能够更充分的利用数据。
十二. 动态规划方法【10】
强化学习研究大体分为了两个研究路线:一个value-based路线,主要从值函数近
似角度入手去研究强化学习,这也是强化学习最初发展起来时的路线;第二个
是以policy-based路线,主要从策略近似角度出发研究强化学习。
动态规划算法思想在value-based乃至整个强化学习领域都起到了至关重要的作用,
很多的算法都从中衍生而来。
动态规划是一种优化算法,起源于最优控制领域,用来解决多阶段序列决策
问 题,或者离散时间动态自适应控制问题。一个问题可以用动态规划求解,需要
满足以下几条基本性质:
*子问题最优性/最优子结构
原问题可以被分解为子问题,原问题的最优性可以通过子问题的最优性推导出。
*子问题重叠性/重叠子问题
一个问题满足子问题重叠性,意味着当我们去求解一个较大问题的最优解时,会多次调
用子问题的最优解,即子问题的解会被多次递归调用。实际编程中我们会把子问题的解
存储起来,后续会多次访问。
马尔可夫决策过程MDP满足上述两条基本性质:
*bellman equation方程给出了递归分解式,将原问题的求解分解
为子问题的求解
*价值函数可以被存储和多次调用。
十三. 强化学习的应用
1. 作为强化学习的特例,闭环控制已经得到广泛应用.
2.自动驾驶
自动驾驶领域中就使用了一定的强化学习算法,但是因为强化学习需要和环境交互
试错,现实世界中这个成本太高,所以真实训练时都需要加入安全员进行干预,及时纠
正Agent的错误行为。
3 .游戏
游戏可以说是目前强化学习应用最方便的。游戏环境下可以随便交互,随便试
错,没有真实成本。由于存在明显的奖励机制,Reward也相对比较容易设置。
如AlphaGo。
4. 强化学习应用于推荐系统【11】
智能体: 推荐系统本身,它包括基于深度学习的推荐模型、探索(explore )策略,
以及相关 的数据存储(memory )。
环境: 由新闻网站或App、用户组成的整个推荐系统外部环境。在环境中, 用户接收
推荐的结果并做出相应反馈。
行动: 对一个新闻推荐系统来说,“行动”指的就是推荐系统进行新闻排序 后推送给
用户的动作。
反馈: 用户收到推荐结果后,进行正向的或负向的反馈。例如,点击行为被认为是
正反馈,未点击则是负反馈。此外,用户的活跃程度,打开应用的间隔时间
也是有价值的反馈信号。
5. 强化学习目前以学术研究为主
除了闭环控制已经成熟外,由于训练复杂,实际工业环境通常不完全符合强化
学习 理论的理想条件,其设计,实验和实施的经济和时间成本较高,
强化学习尚无法在生产中普及。
【0】自举:计算机刚加电时,很少的BIOS和操作系统启动代码将将操作系统主体部分调入内存,
再由操作系统承担起那些 自举代码无法完成的复杂的任务,这个过程类似自己举起自己的形象,
计算机专业术语里叫自举。
【1】科学网—深度学习基本原理 - 徐明昆的博文 (sciencenet.cn)
【2】科学网—人工智能转入深度学习时代的方法论原因 - 徐明昆的博文 (sciencenet.cn)
【5】(35条消息) 机器学习算法(三十):_意念回复的博客-CSDN 博客_强化学习
【6】强化学习(Reinforcement Learning) - 走看看 (zoukankan.com)
【7】什么是 Q-learning? - 简书 (jianshu.com)
【8】(35条消息) 深入浅出Alpha Zero技术原理_「已注销」的博客-CSDN博客_阿尔法zero
【9】强化学习——Actor Critic Method - 飞桨AI Studio (baidu.com)
【10】强化学习之动态规划算法 - 知乎 (zhihu.com)
【11】(35条消息) DRN——强化学习与推荐系统结合_bugmaker.的博客-CSDN博客_drn
【12】强化学习(Reinforcement Learning) - 走看看 (zoukankan.com)
【13】科学网—机器学习借助并行计算挖掘数据关联信息 - 徐明昆的博文 (sciencenet.cn)
【14】图灵测试:在不预先告知的情况下,局外人如果无法分辨行为是真正的人还是机器人(agent)
产生的,则称这个机器人(agent)具有(人工)智能。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-25 23:32
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社