“当我们没有能力判断什么是正确的,我们应该按照什么是最可能正确的去做。”
1.强化学习定义
2.强化学习的领域选择
3.状态-动作对和奖励的复杂概率分布
4.机器学习与时间的关系
5.神经网络和深度强化学习
6.一些真实世界的应用
介绍
深度强化学习把人工神经网络和强化学习框架结合在一起,帮助software agent 学习如何达到它的目标。
它将函数逼近和目标优化结合起来,将状态和动作映射到它们导致的奖励。
你可能不理解那些术语,但是我将在下方解释,用更深入、通俗的语言,借鉴您作为个人在世界中穿行的个人经历。
最近AI在计算机视觉,机器翻译,时序预测等方面的突破,与神经网络有关。
同时,神经网络也可以与强化学习算法结合创造出令人惊奇的东西,比如Deepmind的 AlphaGo,这个算法打败了世界冠军(board game)这就是你为什么应该关注deep RL.
强化学习是目标导向的算法,这些算法就是学习如何去达成一个复杂的目标或者如何在多个步骤中沿着特定维度最大化,举例来说,他们能最大化在一个游戏中经过许多移动后赢的得分。强化学习算法能从零开始,在一个适当的环境下,达到一些超人类的表现。就像一个宠物被责骂和抚摸来激励,这些算法在做出错误行为的时候被处罚,在做正确行为的时候被奖励——这就是强化学习。
加上神经网络的强化学习在玩Atari video games, Starcraft II 和 Dota-2. 的时候,能打败人类专家,然而这些可能听起来对不怎么玩游戏的人根本不重要,但这相比于强化学习之前的成就而言,已经有了巨大的改善。并且最先进的技术正在迅速发展。
强化学习解决了显示立即的行为和行为产生的延迟的奖励之间的关系这个难题。像人类一样,强化学习算法有时不得不等待看到他们决策的成果
他们在一个delayed-return的环境操作,在这个环境很难理解过了很多时间步骤之后究竟是哪个行为导致了哪个结果。
强化学习算法在更模糊、真实的环境中慢慢地表现得越来越好,同时从任意数量的可能动作中进行选择,而不是从可重复视频游戏的有限选项中进行选择。也就是说,他们开始在现实世界中实现目标
如果您要达到可衡量的 KPI,深度强化学习可能会有所帮助。 DeepMind 在 2021 年 5 月声称,强化学习可能足以实现通用人工智能 (AGI)。
许多公司开始将深度强化学习应用于行业问题。
Pieter Abbeel 的 Covariant 在工业机器人中使用了深度强化学习。 Pathmind 将深度强化学习应用于工业运营和供应链的模拟,以优化工厂、仓库和物流。谷歌正在将深度强化学习应用于机器人运动和芯片设计等问题,而微软则依靠深度强化学习为其自主控制系统技术提供动力。
1.强化学习定义
基本术语;
agents, environments, states, actions and rewards
大写的字母表示sets of things。小写的字母表示a specific instance of that thing;
例子:
A is all possible actions, while a is a specific action contained in the set.
Agent:其实不用说了,agent 就是你自己,环境就是这个世界,你可能有什么目标,比如拿奖学金,你要做一些事情,得到惩罚或者奖励,等等。
Action (A):agent能做的行为。比如格子世界,就是上下左右。cartpole就是0,1,也就是左右。
Discount factor:折扣因子乘以代理发现的未来奖励,以抑制这些奖励对代理选择行动的影响。设计这个旨在使的未来的奖励的价值比即刻的奖励要低。他把短视的享乐主义强加给agent,通常被表示为小写希腊字母gamma:γ.
Environment:环境就是对agent做出反应的世界,就是agent移动的世界。很好理解。The environment takes the agent’s current state and action as input, and returns as output the agent’s reward and its next state.
State:是代理当前的具体的处境。(一个特定的地点和时刻,一种将代理与其他重要事物(例如工具、障碍物、敌人或奖品)相关联的瞬时配置。它可以返回当前情况
)比如grid world,一个元组就是一个状态。
Reward (R):奖励就是反馈,什么反馈,在一个给定的状态下,我们对一个agent的行为成功或失败的测量的反馈。
Policy (π):策略是agent是利用的策略,基于当前的状态来决定下一个行为。
It maps states to actions, the actions that promise the highest reward.
Value (V): 带有折扣的长远回报的期望,与短期奖励相对。Vπ(s)指的是在当前状态在策略π下的长远期望。
Q-value or action-value (Q): Q-value与value差不多,不过多了一个参数,namely,当前行为a。Qπ(s, a)。
Q把状态行为对映射为奖励。
Trajectory:轨迹
Key distinctions:奖励是即时的奖励,回报是长远的预期。
所以环境是函数,agents也是函数。环境接收当前状态的做出的行为,然后返回下一个状态和奖励。agent将新状态和奖励转换成下一个动作。我们可以知道和设置代理的功能,但是在应用强化学习有用且有趣的大多数情况下,我们不知道环境的功能。
这是一个黑匣子,我们只能看到输入和输出。这就像大多数人与技术的关系:我们知道它做什么,但我们不知道它是如何工作的
强化学习描述的是,一个agent 试图近似环境函数。这样我们就可以将动作发送到黑盒环境中,从而最大化其输出的奖励
在上面的反馈循环中,下标表示时间步长 t 和 t+1,每个步长指的是不同的状态:t 时刻的状态和 t+1 时刻的状态。与其他形式的机器学习(例如监督学习和无监督学习)不同,强化学习只能从一个接一个发生的状态-动作对的角度来考虑。
强化学习通过行为产生的结果来评判行为。它是目标导向的,它的目标是学会使agent达到它的目标的或者最大化它的目标函数的连续的行为,Here are some examples:
- In video games, the goal is to finish the game with the most points, so each additional point obtained throughout the game will affect the agent’s subsequent behavior; i.e. the agent may learn that it should shoot battleships, touch coins or dodge meteors to maximize its score.
- In the real world, the goal might be for a robot to travel from point A to point B, and every inch the robot is able to move closer to point B could be counted like points.
这是一个强化学习目标函数的例子。它定义目标的方式:
从这张图看,我们在求和,奖励函数的t次方,t从0到无穷的求和,t代表着时间步。这个目标函数计算了我们运行过程中所有的我们能获得的奖励,比如,游戏。
x是给定时间t的状态,a是这个状态做出的action.
强化学习和机器学习非常的不同。强化学习与监督学习和无监督学习的不同之处在于它如何理解输入。我们可以通过描述关于一个‘thing’他们学习了什么来阐述他们的不同。
1.非监督学习:That thing is like this other thing
2.监督学习:That thing is a “double bacon cheese burger”
3.强化学习:Eat that thing because it tastes good and will keep you alive longer.
强化学习的领域选择
一个想象自主的强化学习agent的方式是,比如,像一个盲人,试图仅仅依靠他们的耳朵和拐杖在世界里寻找方向一样。代理有小窗口,可以让他们感知环境,而这些窗口甚至可能不是他们感知周围事物的最合适方式。
事实上,决定你的agent应该关注哪种反馈和输入是一个很难解决的问题。This is known as domain selection。
这称为域选择。学习如何玩电子游戏的算法大多可以忽略这个问题,因为环境是人造的,并且受到严格限制。因此,视频游戏提供了实验室的无菌环境,可以测试有关强化学习的想法。领域选择需要人工决策,通常基于要解决的问题的知识或理论;例如为自动驾驶汽车中的算法选择输入域可能包括选择除了摄像头和 GPS 数据之外还包括雷达传感器。
State-Action Pairs & Complex Probability Distributions of Reward
强化学习的目标是为任何给定状态选择最知名的动作,
强化学习的目标是为任何给定状态选择最知名的动作,这意味着必须对动作进行排名,并相对于彼此分配值。由于这些动作是状态相关的,我们真正衡量的是状态-动作对的值;an action taken from a certain state, something you did somewhere,这里有几个例子来说明一个动作的价值和意义取决于它所处的状态
If the action is marrying someone, then marrying a 35-year-old when you’re 18 probably means something different than marrying a 35-year-old when you’re 90, and those two outcomes probably have different motivations and lead to different outcomes.
If the action is yelling “Fire!”, then performing the action a crowded theater should mean something different from performing the action next to a squad of men with rifles. We can’t predict an action’s outcome without knowing the context.
我们将状态行为对映射成Q函数产生的值。Q 函数将代理的状态和动作作为其输入,并将它们映射到可能的奖励。
强化学习是运行agent通过一系列状态行为对的过程。观察奖励,使Q函数的预测适应那些奖励直到它能准确的预测对agent来说最好的路径。这个预测就叫做policy。
任何统计方法本质上都是在承认自己的无知。某些现象(生物、政治、社会学或与棋盘游戏相关)极其复杂,因此无法从第一原则进行推理。研究它们的唯一方法是通过统计、测量表面事件并尝试建立它们之间的相关性,即使我们不了解它们相关的机制。强化学习,就像深度神经网络一样,就是这样一种策略,它依靠采样从数据中提取信息。
强化学习是迭代的。在其最有趣的应用中,它并不是从知道状态-动作对将产生哪些奖励开始。它通过一次又一次地遍历状态来学习这些关系,就像运动员或音乐家遍历状态以试图提高他们的表现一样。
由于人类从未在电影之外体验土拨鼠日,因此强化学习算法有可能比人类学得更多、更好。事实上,这些算法相对于人类的真正优势与其说是源于它们的内在本质,不如说是源于它们同时在多个芯片上并行运行的能力,能够在不疲劳的情况下日夜训练,从而学习更多。在围棋游戏上训练的算法,例如 AlphaGo,将比任何人希望在 100 个生命周期内完成的围棋游戏多得多。
Neural Networks and Deep Reinforcement Learning
神经网络适用于何处?
神经网络是函数逼近器,当状态空间或动作空间太大而无法完全知道时,它在强化学习中特别有用.神经网络可用于近似值函数或策略函数
也就是说,神经网络可以学习将状态映射到值,或将状态-动作对映射到 Q 值。
与其使用查找表来存储、索引和更新所有可能的状态及其值,这在非常大的问题中是不可能的,我们可以在来自状态或动作空间的样本上训练神经网络,以学习预测它们相对于我们强化学习的目标。
我们可以在来自状态或动作空间的样本上训练神经网络,以学习预测这些样本相对于我们在强化学习中的目标的价值。
与所有神经网络一样,它们使用系数来近似将输入与输出相关联的函数,并且它们的学习包括通过沿着保证较小误差的梯度迭代调整这些权重来找到正确的系数或权重。
在强化学习中,当输入是视觉时,卷积网络可用于识别代理的状态,马里奥所在的屏幕,或无人机前的地形。也就是说,它们执行其典型的图像识别任务。
但是卷积网络在强化学习和监督学习中从图像中得到不同的解释。在监督学习中,网络将标签应用于图像;也就是说,它将名称与像素匹配。
事实上,它会根据概率对最适合图像的标签进行排名。显示一头驴的图像,它可能会决定图片 80% 的可能性是驴,50% 的可能性是马,30% 的可能性是狗。
在强化学习中,给定代表状态的图像,卷积网络可以对在该状态下可能执行的动作进行排序;例如,它可能预测向右跑会返回 5 分,跳 7 分,而向左跑则没有。
上图说明了策略代理的作用,将状态映射到最佳动作。
The above image illustrates what a policy agent does, mapping a state to the best action.
A policy maps a state to an action.
To be more specific, Q maps state-action pairs to the highest combination of immediate reward with all future rewards that might be harvested by later actions in the trajectory. Here is the equation for Q, from Wikipedia:
期望奖励被分派价值之后,Q 函数简单地选择具有最高所谓 Q 值的状态-动作对。
在强化学习开始时,神经网络系数可以随机初始化,也可以随机初始化。使用来自环境的反馈,神经网络可以利用其预期奖励和真实奖励之间的差异来调整其权重并改进其对状态-动作对的解释。
这个反馈循环类似于监督学习中错误的反向传播。然而,监督学习从了解神经网络试图预测的真实标签开始。它的目标是创建一个模型,将不同的图像映射到它们各自的名称。
强化学习依赖于环境发送的标量数字作为对每个新行为的反馈。环境返回的奖励可以是不同的,延迟的,或者受未知变量的影响,从而对反馈循环带来噪音。
这使我们得到了更完整的 Q 函数表达式,它不仅考虑了动作产生的即时奖励,还考虑了序列中更深几个时间步可能返回的延迟奖励。
和人类一样,Q 函数是递归的。正如调用湿件方法 human() 中包含另一个方法 human(),我们都是其中的果实,在给定的状态-动作对上调用 Q 函数需要我们调用嵌套的 Q 函数来预测下一个状态,这又取决于此后状态的 Q 函数,依此类推
Real-World Reinforcement Learning Applications
(This section is a WIP.)
强化学习是关于通过多个步骤做出连续决策以实现目标。
- Robotics
- Industrial Operations
- Supply Chain & Logistics
- Traffic Control
- Bidding & Advertising
- Recommender Systems
- Load Balancing
- Augmented NLP