强化学习有什么问题?


早在2018年初,就发表了一篇文章《 深度强化学习尚不可行》(“使用强化学习尚不可行。”)。 主要抱怨是,具有增强功能的现代学习算法与常规随机搜索解决问题所需的时间大致相同。


从那以后有什么改变吗? 不行


强化学习被认为是构建强大AI的三大途径之一。 但是,机器学习这一领域所面临的困难以及科学家试图解决这些困难的方法表明,这种方法本身可能存在根本性的问题。


等一下,三个之一是什么意思? 另外两个是什么?


鉴于近年来神经网络的成功以及对它们如何与以前被认为仅是人类和高等动物所特有的高级认知能力一起进行分析的结果,如今在科学界,人们存在三种创建强大AI的主要方法神经网络的基础,可以或多或少地认为是现实的:


1.文字处理


全世界在互联网上积累了大量的书籍和文字,包括教科书和参考书。 文本方便快捷地在计算机上进行处理。 从理论上讲,这一系列文本应该足以训练强大的对话式AI。


暗示在这些文本阵列中,世界的完整结构得到了反映(至少在教科书和参考书中有描述)。 但这根本不是事实。 文本作为一种信息表示形式,与真实的三维世界以及我们所处的时代截然不同。


聊天机器人和自动翻译器是在文本数组上训练的AI的很好例子。 由于要翻译文本,因此您需要了解该短语的含义并用新词(用另一种语言)复述。 常见的误解是语法和语法规则(包括对所有可能例外的描述)完全描述了特定语言。 事实并非如此。 语言只是生活中的辅助工具,它很容易改变并适应新情况。


文本处理(即使是专家系统,甚至是神经网络)的问题在于, 没有规则集,应该在哪些情况下应用哪些短语。 请注意-不是构造短语本身的规则(语法和语法的作用),而是哪种情况下的短语。 在相同情况下,人们用不同的语言发音通常在语言结构上彼此不相关的短语。 比较短语时会非常惊讶:“天哪!” 和“天哪!”。 好了,知道语言模型又如何在它们之间建立对应关系? 没办法 历史上是偶然发生的。 您需要了解情况以及他们通常以特定语言讲的内容。 正因为如此,自动翻译器才如此不完美。


这种知识是否可以与一系列文本完全区分开尚不清楚。 但是,如果自动翻译器完美地翻译而不会犯愚蠢和可笑的错误,那么这将证明仅基于文本创建强大的AI是可能的。


2.图像识别


看这张图片



看着这张照片,我们知道射击是在晚上进行的。 从标志来看,风从右向左吹。 从正确的交通量来看,该案件在英格兰或澳大利亚没有发生。 这些信息均未在图片像素中明确指出,这是外部知识。 在照片中,只有迹象表明我们可以使用从其他来源获得的知识。


您还看这张照片吗?

关于那件事和演讲...最后找到一个女孩


因此,可以相信,如果您训练一个神经网络来识别图片中的对象,那么它将对现实世界的工作方式有一个内在的想法。 从照片中获得的这种观点肯定会与我们的真实世界相对应。 与不能保证的文本数组不同。


在ImageNet的照片阵列(以及现在的OpenImages V4COCOKITTIBDD100K等)上训练的神经网络的价值根本不是识别照片中的猫。 并将其存储在倒数第二层。 这是描述我们的世界的一系列高级功能所在的位置。 1024个数字的向量足以以80%的准确度从中获得1000个不同类别的对象的描述(在95%的情况下,正确的答案将在5个最接近的选项中)。 想一想。


这就是为什么倒数第二层的这些功能如此成功地用于计算机视觉中完全不同的任务的原因。 通过转移学习和微调。 从这个具有1024个数字的向量中,您可以从图片中获取深度图,例如



工作中的一个示例,其中使用了实际上未更改的预训练Densenet-169网络)


或确定一个人的姿势。 有很多应用。



结果,图像识别可潜在地用于创建强大的AI,因为它确实反映了我们真实世界的模型。 从摄影到录像,录像就是我们的生活,因为我们从视觉上获得了大约99%的信息。


但是从照片上,如何激励神经网络去思考并得出结论是完全不可理解的。 可以训练她回答诸如“桌上有几支铅笔?”之类的问题。 (此类任务称为视觉问题解答,此类数据集的示例: https : //visualqa.org )。 或对照片中发生的事情进行文字描述。 这是图像字幕任务类。



但是,这是智慧吗? 通过开发这种方法,神经网络将在不久的将来能够回答视频问题,例如“两只麻雀坐在电线上,其中一只飞走了,还剩下多少只麻雀?” 这是真正的数学,在稍微复杂一些的情况下,是动物无法达到的,并且是在人类学校教育方面。 特别是如果除了麻雀以外,还会有山雀坐在它们旁边,但是不必考虑它们,因为问题仅在于麻雀。 是的,绝对是智力。


3.强化学习


这个想法很简单:鼓励采取行动以产生回报,并避免导致失败。 这是一种通用的学习方式,显然,它肯定可以导致创建强大的AI。 因此,近年来对强化学习引起了极大的兴趣。


混合但不要摇晃

当然,最好结合所有三种方法来创建强大的AI。 通过图片和强化训练,您可以获得动物级的AI。 在图片上添加对象的文本名称(当然是个笑话-迫使AI观看人们互动和交谈的视频,就像在教婴儿时一样),并在文本数组上进行重新训练以获取知识(我们学校和大学的类似物),从理论上讲,您可以获得人类级AI。 会说话。


强化学习具有一大优势。 在模拟器中,您可以创建一个简化的世界模型。 因此,对于一个人的身材来说,仅17个自由度就足够了,而不是活着的人的700个自由度(大约肌肉数)。 因此,在模拟器中,您可以在很小的范围内解决问题。


展望未来,即使具有17个自由度,现代的强化学习算法也无法任意控制人的模型。 也就是说,它们不能解决输入有44个数字,输入有17个数字的优化问题,只有在非常简单的情况下,通过对初始条件和超参数进行微调,才有可能做到这一点。 甚至在这种情况下,例如,要教导一个具有17个自由度的人形模型,并从站立位置开始(这要简单得多),您就需要在功能强大的GPU上进行数天的计算。 而稍微复杂一些的情况,例如学习从任意姿势站起来,可能根本就不会学。 这是失败的。


此外,所有强化学习算法都可与令人沮丧的小型神经网络配合使用,但无法应对大型神经网络的学习。 大型卷积网络仅用于将图片的尺寸缩小为几个特征,这些特征经过强化后被馈送到学习算法中。 相同的运行类人动物由具有两层或三层的128个神经元的前馈网络控制。 真的吗 基于此,我们是否正在尝试构建强大的AI?


要尝试理解为什么会发生这种情况以及强化学习有什么问题,您首先需要熟悉现代强化学习中的基本体系结构。


大脑和神经系统的物理结构通过进化来适应动物的特定类型及其生活条件。 因此,在进化过程中,苍蝇在神经节(昆虫中大脑的类似物)中形成了这样的神经系统和神经递质,从而迅速躲开了苍蝇拍。 好吧,不是从苍蝇拍中而是从已经捕鱼了4亿年的鸟类中获得的(只是在开玩笑,鸟类本身就出现在1.5亿年前,最有可能是从青蛙中发现了3.6亿年)。 犀牛足以使神经系统和大脑缓慢转向目标并开始奔跑。 正如他们所说,那里的犀牛视力不好,但这不是他的问题。


但是,除了进化之外,每个特定的人,从出生开始到终生,都在正常的学习机制下得到加强。 对于哺乳动物和昆虫来说 ,多巴胺系统可以完成这项工作。 她的作品充满了秘密和细微差别,但这全都归结为这样一个事实,即在获得奖励时,多巴胺系统通过记忆机制以某种方式固定了之前活跃的神经元之间的联系。 这就是关联存储器的形成方式。


由于其关联性,可将其用于决策。 简而言之,如果当前状态(在这种情况下为当前活动神经元)通过联想记忆激活了愉悦神经元,那么个人将选择她在类似情况下所做的动作以及她记得的动作。 “选择动作”的定义很差。 别无选择。 在特定情况下,由多巴胺系统固定的简单激活的愉悦记忆神经元会自动激活运动神经元,从而导致肌肉收缩。 这是如果需要立即采取行动。


具有增强作用的人工学习作为一个知识领域,有必要解决以下两个问题:


1.选择神经网络的架构(已经为我们做了什么进化)


好消息是,在哺乳动物的新皮层(和皮质的纹状体 )中执行的更高的认知功能是以近似均匀的结构执行的。 显然,这不需要严格规定的“体系结构”。


脑区的多样性可能是纯粹出于历史原因。 随着它们的进化,大脑的新部分在最初的动物剩下的基本部分之上生长。 按照原理,它起作用-请勿触摸。 另一方面,在不同的人中,大脑的相同部分会对相同的情况做出反应。 可以通过关联性(在学习过程中自然地在这些地方形成的特征和“祖母的神经元”)和生理学来解释。 基因中编码的信号传导途径正好导致这些区域。 目前尚无共识,但是您可以阅读例如最近的这篇文章: “生物和人工智能”。


2.学习如何根据强化学习的原理训练神经网络


这就是现代强化学习的主要功能。 那有什么成功呢? 不完全是


天真的方法


训练带有增强的神经网络似乎非常简单:我们进行随机动作,如果得到奖励,则将采取的动作视为“参考”。 我们将它们作为标准标签放在神经网络的输出上,并通过误差的反向传播方法训练神经网络,以便它产生这样的输出。 好吧,最常见的神经网络训练。 如果操作导致失败,则可以忽略这种情况,或者抑制这些操作(我们将其他一些设置为输出,例如,任何其他随机操作)。 通常,该想法重复了多巴胺系统。


但是,如果您尝试以这种方式训练任何神经网络,无论体系结构多么复杂,递归,卷积或普通直接分布,那么它都将无法工作!


怎么了 不明


可以认为有用信号是如此之小,以至于在噪声背景下会丢失。 因此,网络无法学习反向传播错误的标准方法。 奖励很少发生,可能每百步甚至上千步。 甚至LSTM最多可以记住100-500点的历史记录,然后只能记住非常简单的任务。 但是在更复杂的情况下,如果历史记录上有10-20点,那已经很好了。


但是,问题的根源恰恰是非常罕见的奖励(至少在具有实际价值的任务中)。 目前,我们还不知道如何训练会记住孤立案例的神经网络。 大脑如何应付光彩。 您可以记住一生只发生一次的事情。 顺便说一句,大多数的智力训练和工作都是基于这种情况。


这有点像图像识别领域的严重失衡。 根本没有办法解决这个问题。 到目前为止,他们能想到的最好的办法就是将存储在人工专用缓冲区中的新情况以及过去的成功情况连同最新情况一起提交给网络。 也就是说,不仅要不断教授新的案例,还要不断地教成功的旧案例。 自然,不能无限地增加这样的缓冲区,并且不清楚到底要存储什么。 仍然尝试以某种方式临时修复神经网络内部的路径,该路径在成功案例中处于活动状态,以便后续训练不会覆盖它们。 在我看来,这与大脑中发生的事情非常相似,尽管它们在这方面也没有取得很大的成功。 由于新的经过训练的任务在计算中使用了离开冻结路径的神经元结果,因此,信号仅干扰新的冻结路径,而旧任务停止工作。 还有另一种奇怪的方法:仅在与先前任务正交的方向上使用新示例/任务来训练网络( https://arxiv.org/abs/1810.01256 )。 这不会覆盖以前的经验,但是会大大限制网络容量。


在元学习中,正在开发单独的一类算法来应对这种灾难(并同时希望实现强大的AI)。 这些尝试一次教一个神经网络几个任务。 从某种意义上说,它不能识别一项任务中的不同图片,即在不同域中识别不同的任务(每个任务都有自己的分布和解决方案)。 说,识别图片并同时骑自行车。 到目前为止,成功也不是很好,因为通常这一切都归结为预先准备具有通用通用权重的神经网络,然后仅需几步梯度下降就可以使其快速适应特定任务。 元学习算法的示例是MAML和Reptile


通常,只有这个问题(无法从单个成功的示例中学习)才能结束现代培训的强化。 到目前为止,神经网络的所有力量是无能为力的。


这个最简单,最明显的方法不起作用的事实迫使研究人员返回经典的基于表的强化学习。 作为一门科学,它出现在古老的时代,当时项目中甚至没有神经网络。 但是现在,我们不用手动计算表格和公式中的值,而是使用像神经网络这样功能强大的近似器作为目标函数! 这是现代强化学习的本质。 它与通常的神经网络训练的主要区别。


Q学习和DQN


强化学习(甚至在神经网络之前就已经诞生)是一个非常简单而原始的想法:让我们进行随机动作,然后针对表中的每个单元格和每个运动方向,我们根据一个特殊公式(称为Bellman方程,您将进行强化训练,几乎可以在所有工作中见面)这个单元和所选方向的好坏。 这个数字越高,越有可能赢得胜利。



无论您出现在哪个单元格中,都将沿着不断增长的绿色前进! (朝向当前单元格两侧的最大数量)。


这个数字称为Q(从质量一词到“选择的质量”一词),方法是Q学习。 , ( , ), Deepmind DQN . 2015 Atari Deep Reinforcement Learning.


, discrete . DQN state ( ), Q. ( Q), DQN Q(s,a) Q-learning. Q state action ( Q(s,a) s a). argmax Q , .


Q, . , Q- (.. Q , ). . , (Exploration), , , . , .


, ? 5 Atari, continuous ? , -1..1 0.1, , Atari. . , . 10 . - , 10 . . DQN , 17 . , , .


DQN, , , continuous ( ): DDQN, DuDQN, BDQN, CDQN, NAF, Rainbow. , Direct Future Prediction (DFP) , DQN . Q , DFP , . . , . , , , .


, Reinforcement Learning.



Policy Gradient


state, ( , ). , actions, . , R . ( ), ( ). . .


, R , , . ! . "" labels ( ), . , , R.


Policy Gradient. — , R, . — , , . , .


Actor-critic, DDPG


, — , . , Q- , DQN. state, action(s). state, action, , Q : Q(s,a).


, Q(s,a), ( critic, ), , ( , actor), R. , . actor-critic. Policy Gradient, , . .


DDPG. actions, continuous . DDPG continuous DQN .



Advantage Actor Critic (A3C/A2C)


critic Q(s,a) — , actor, DDPG. , .


, . , , , . , , , ( , ).


Q(s,a), Advantage: A(s,a) = Q(s,a) — V(s). A(s,a) Q(s,a) , — , V(s). A(s,a) > 0, , . A(s,a) < 0, , , .. .


V(s) state , ( s, a). — state, V(s). , state, V(s).


, Q(s,a) r, , A = r — V(s).


, V(s) ( ), — actor critic, ! state, head: actions, V(s). c , .. state. , .



V(s) . V(s), action ( ), . Dueling Q-Network (DuDQN), Q(s,a) Q(s,a) = V(s) + A(a), .


Asynchronous Advantage Actor Critic (A3C) , , actor. batch . , actor. , , . , A2C — A3C, actor ( ). A2C , , .


TRPO, PPO, SAC


, .


, . Reinforcement Learning , , , — , . .


— TRPO PPO, state-of-the-art, Actor-Critic. PPO RL. , OpenAI Five Dota 2.


, TRPO PPO — , . , A3C/A2C , . , policy , . - gradient clipping , . , ( , ), , , - .


近来,软演员关键(SAC)算法已变得越来越流行。 它与PPO并没有太大区别,在学习增加政策的熵时仅添加了一个目标。 使代理行为更加随机。 不,不是那样。 该代理能够在更多随机情况下采取行动。 一旦代理为任何随机情况做好准备,这将自动提高策略的可靠性。 另外,与PPO相比,SAC所需的训练示例略少,并且对超参数设置的敏感性较低,这也是一个优点。 但是,即使使用SAC,要训练类人机器人从站立位置开始以17个自由度运行,您也需要大约2000万帧和一天在一个GPU上进行计算。 例如,教人形机器人从任意姿势升起的更困难的初始条件可能根本不会被教。


总计,现代强化学习中的一般建议:使用SAC,PPO,DDPG,DQN(按降序排列)。


基于模型


还有另一种有趣的方法,与强化学习间接相关。 这是为了建立环境模型,并使用它来预测如果我们采取某些措施将会发生什么。


其缺点是它没有以任何方式说明应该采取什么行动。 仅关于他们的结果。 但是这样的神经网络很容易训练-只需训练任何统计数据即可。 事实证明,类似基于神经网络的世界模拟器。


在那之后,我们产生了大量的随机动作,并且每个动作都是通过该模拟器(通过神经网络)驱动的。 我们期待哪一个将带来最大的回报。 有一个小的优化-不仅生成随机动作,而且根据正常定律偏离当前轨迹。 确实,如果我们举手,那么很有可能需要继续举手。 因此,首先,您需要检查与当前轨迹的最小偏差。


这里的技巧是,即使像MuJoCo或pyBullet这样的原始物理模拟器也可以产生大约200 FPS。 而且,如果您训练神经网络至少可以预测几个步骤,那么对于简单的环境,您一次可以轻松获得2000-5000个批次的预测。 根据GPU的功能,由于GPU中的并行化和神经网络中的计算速度,您可以获得每秒数万个随机动作的预测。 这里的神经网络只是充当现实的非常快速的模拟器。


此外,由于神经网络可以预测现实世界(一般来说,这是基于模型的方法),因此可以说,训练完全可以在想象中进行。 强化学习中的这个概念称为“梦想世界”或“世界模型”。 这很好用,在这里有一个很好的描述: https : //worldmodels.imtqy.com 。 此外,它具有自然的对应物-普通的梦想。 并在头部多次滚动最近或计划中的事件。


模仿学习


由于强化学习算法无法执行大范围的任务和复杂的任务,因此人们开始至少以人的形式重复专家的动作。 在这里,取得了良好的效果(传统的强化学习无法达到)。 因此,OpenAI最终通过了游戏Montezuma的复仇 。 技巧很简单-将代理立即放置在游戏结束时(人显示的轨迹的末尾)。 在那里,在PPO的帮助下,由于最终奖励的临近,特工迅速学会了沿着这条轨迹走。 之后,我们将他放回了一点,他很快就学会了到达他已经学习过的地方。 因此,随着“重生”点沿着轨迹逐渐移动,直到游戏开始时,特工学会在整个游戏中传递/模拟专家轨迹。


另一个令人印象深刻的结果是,在Motion Capture: DeepMimic上重复拍摄人物的动作。 配方类似于OpenAI方法:每个情节不是从路径的开头开始,而是从路径上的随机点开始。 然后,PPO成功研究了这一点的环境。


我必须说,Uber的耸人听闻的Go-Explore算法完全没有通过强化学习算法实现,该算法以记录点通过了Montezuma的复仇。 这是常规的随机搜索,但从随机访问的单元格(处于几种状态的粗略单元格)开始。 而且只有通过这种随机搜索找到了直到游戏结束的轨迹时,才使用模仿学习来训练神经网络。 以类似于OpenAI的方式,即 从轨迹的尽头开始。


好奇心(好奇心)


强化学习中一个非常重要的概念是好奇心。 实际上,它是环境研究的引擎。


问题是,作为好奇心的衡量标准,您不能使用简单的网络预测错误,否则接下来会发生什么。 否则,这样的网络将挂在第一棵树前,叶子摇曳。 或在电视前进行随机频道切换。 由于复杂性导致的结果将无法预测,并且误差始终很大。 但是,这正是我们(人们)喜欢看树叶,水和火的原因。 以及其他人的工作方式=)。 但是我们有保护机制,以免永远挂死。


其中一种机制被发明为“ 好奇心驱动的勘探中的逆模型”
自我监督的预测 。 简而言之,一个代理(神经网络)除了预测在给定情况下最佳执行什么动作外,还尝试预测在采取这些动作之后整个世界将会发生什么。 并且他将对世界的这种预测用于下一步,以便他和当前步骤可以预测他较早采取的行动(是的,这很困难,您无法一品脱就无法弄清楚)。


这导致了一种奇怪的效果:代理仅对他可以通过其行动产生的影响感到好奇。 他无法影响树上摆动的树枝,因此它们对他不感兴趣。 但是他可以在该地区走走,所以他很好奇要去探索世界。


但是,如果代理具有可切换随机频道的电视遥控器,则他可能会影响它! 而且他会好奇地无限期地点击频道(因为他无法预测下一个频道是什么,因为它是随机的)。 Google尝试通过可及性来解决《 好奇心》中的问题,以解决这一问题。


但是,也许最好的最新结果是出于好奇,OpenAI目前拥有随机网络蒸馏(RND)的想法。 它的本质是需要第二个完全随机初始化的网络,并将当前状态反馈给它。 我们主要的神经网络正在尝试猜测该神经网络的输出。 第二个网络未经培训,在初始化时一直保持固定。


有什么意义? 关键是,如果我们的工作网络已经访问和研究了任何状态,那么它将或多或少地成功地能够预测该第二网络的输出。 如果这是我们从未去过的新状态,则我们的神经网络将无法预测该RND网络的输出。 预测随机初始化网络的输出时出现的错误被用作好奇心的指标(如果在这种情况下我们无法预测其输出,则将获得很高的回报)。


为何运作尚不完全清楚。 但是他们写道,当预测目标是随机的并且没有足够的数据来预测接下来将发生的情况时,这消除了问题(这在普通好奇心算法中会带来很大的预测误差)。 一种或另一种方式,但RND确实基于游戏的好奇心展示了出色的研究成果。 并且解决随机电视的问题。


有了RND,OpenAI的好奇心才第一次诚实地(而不是像Uber一样没有通过初步的随机搜索)超过了Montezuma的Revenge。 事实并非每次都是不可靠的,而是时有发生。



结果如何?


如您所见,在短短几年内,强化学习取得了长足的进步。 不仅有一些成功的解决方案,例如在卷积网络中,重新连接和跳过连接使训练网络深达数百层成为可能,而不是仅使用Relu激活功能就可以训练十二层,从而克服了乙状结肠和正切中梯度消失的问题。 在强化学习中,在概念上以及在理解这种实施方式或这种实施方式不起作用的原因方面取得了进步。 关键字“没有工作”。


但是从技术角度来看,一切仍然取决于所有相同的Q,V或A值的预测。 在不同的尺度上都没有时间依赖性,例如在大脑中(等级强化学习不算在内,与活着的大脑的结合性相比,等级体系太原始了)。 没有尝试提出专门针对强化学习而量身定制的网络体系结构,就像LSTM和其他针对时间序列的递归网络一样。 强化学习要么当场脚,为小小的成功而欢欣鼓舞,要么朝着完全错误的方向前进。


我想相信,一旦进行强化学习,神经网络的架构将发生突破,这与卷积网络中的情况类似。 我们将看到真正有效的强化学习。 学习孤立的示例,具有相关的记忆并在不同的时间范围内工作。

Source: https://habr.com/ru/post/zh-CN437020/


All Articles