强化学习( RL )是机器学习的一个分支,agent通过与环境(env)交互来进行学习。这是一个以目标为导向的学习过程,agent不被告知要采取什么行为(action);相反,agent从其行为(action)的结果中学习。它正以各种各样的算法(DQN, A3C, DDPG, TRPO等)迅速发展,是目前人工智能( AI )最活跃的研究领域之一。
agent可以探索(exploration)可能提供良好回报(reward)的不同行为(action),或者可以利用(exploitation)导致良好回报(reward)的先前行为(action)。如果agent探索不同的行为(action),则很有可能agent将获得较差的回报,因为所有的行为并不都不是最佳的。如果agent仅利用(exploitation)已知的最佳行为(action),那么错过最佳行为(action)的可能性也很大,这也许会提供更好的回报(reward)。鱼和熊掌不可兼得,探索和利用之间也总是有取舍的。我们不能同时进行探索和利用。我们将在后续部分详细讨探索和利困境(exploration-exploitation dilemma)。
一个典型RL算法的步骤如下:
首先,agent通过执行行为(action)与环境(env)进行交互;
agent执行行为(action)并从一种状态(state)移动到另一种状态(state);
然后agent将根据其执行的行为(action)获得回报(reward);
根据回报(reward),agent将知道行为(action)是好的还是坏的;
如果action是好的,也就是说,如果agent得到了积极的reward,那么agent将更喜欢执行该action,否则agent将尝试执行导致积极reward的其他action。所以这基本上是一个反复试验学习过程.
曾经有人将人工智能划分为三个阶段,第一个是阶段运算智能,在1997年,就有 AI 战胜了象棋大师,当时 IBM 研发的“深蓝”,击败了俄罗斯国际象棋特级大师 Garry Kasparov。第二阶段是感知智能,顾名思义,也就是处理听、看、说等感知任务,也就是当下比较热的深度学习了,图像分类,目标检测,语音识别和自然语言处理等等,我们只需要给网络模型足够的数据集,让它不断的训练,就可以生成一个很好的模型,就可以解决我们的感知问题,但是它还不能为我们做出决策,换言之,它处理的都是模型已知的数据,给它输入一个未知的数据可能会预测出一个奇怪的答案,它未必满足我们的实际需求,这也是它的局限性所在。于是我们引出了第三个阶段决策智能,我们希望我们训练出来的模型可以像人类一样不断地学习,相比于感知智能,我们需要的是一个动态的过程,例如agent在玩迷宫游戏时,首先通过动作a与周围环境进行交互,在动作a和环境的作用下,agent会产生新的状态,同时环境会给出一个立即回报(有时回报可能需要很长时间)。如此循环下去,agent与环境进行不断地交互从而产生很多数据。强化学习算法利用产生的数据修改自身的行为策略,再与环境交互, 产生新的数据,并利用新的数据进一步改善自身的行为, 经过数次迭代学习后,agent能最终地学到完成相应任务的最优动作(最优策略) 。
agent(智能体)
agent是作出智能决策的主体,也是RL的学习者。agent通过与环境交互来采取行为,并接收奖励(或称回报)基于他们的行为,例如,超级马里奥在视频游戏中导航。
Policy function(策略函数)
策略定义智能体在环境中的行为。智能体决定执行哪些操作的方式取决于策略。说你想从家里到办公室,到你的办公室有不同的路,有些路是捷径,有些路很长。这些路线被称为策略,因为它们代表了我们为实现目标而选择的行动方式。策略通常用符号π表示。策略可以是查找表或复杂搜索过程的形式.
Value function(值函数)
值函数表示智能体处于特定状态有多好。它取决于策略,通常用v ( s )表示。它等于智能体从初始状态开始收到的预期奖励总额。可以有几个值函数;最优值函数是与其他值函数相比,在所有状态下具有最高值的函数。同样,最优策略是具有最优价值函数的策略。
Model(模型)
模型是智能体对环境的表示。学习可以分为两种类型——基于模型的学习(model-based)和无模型(model-free)的学习。在基于模型的学习中,智能体(agent)利用以前学习的信息来完成任务,而在无模型的学习中,agent仅仅依靠反复尝试的经验来执行正确的操作。说你想更快地从家里到办公室。在基于模型的学习中,你只需使用以前学到的经验来更快地到达办公室,而在无模型的学习中,你将不会使用以前的经验,而是尝试所有不同的路线并选择更快的路线。
智能体是在时间t时执行动作(action)a_t以从一个状态S_t移动到另一个状态S_t + 1。基于行为,智能体从环境中获得数字奖励R_t。归根到底,RL就是要找到能增加数值回报的最优行为(action):
让我们用迷宫游戏来理解RL的概念:
工作流程如下:
1.智能体是穿越迷宫的人,这是我们的软件程序RL算法;
2. 环境就是迷宫;
3. 状态是代理当前所在迷宫中的位置;
4. 智能体通过从一种状态移动到另一种状态来执行操作;
5. 当智能体的行为没有被任何障碍物卡住时,智能体会获得正面奖励;当智能体的行为被障碍物卡住而无法到达目的地时,智能体会获得负面奖励;
6. 目的是要通过迷宫到达目的地。
智能体交互的所有内容都称为环境。环境就是外部世界。它包括智能体之外的一切。有不同类型的环境,将在下一节中介绍。
确定性环境(Deterministic environment)
当我们知道基于当前状态的结果时,环境被称为确定性的。例如,在象棋游戏中,我们知道移动任何玩家的确切结果。
随机环境(Stochastic environment)
当我们无法根据当前状态来确定结果时,环境就被称为是随机的。会有更大程度的不确定性。例如,我们永远不知道掷骰子时会出现什么数字。
完全可观测环境(Fully observable environment)
当智能体可以随时确定系统的状态时,它被称为完全可观察的。例如,在象棋游戏中,系统的状态,也就是所有棋手在棋盘上的位置,始终是可用的,所以棋手可以做出最佳的决定。
部分可观测环境(Partially observable environment)
当代理不能始终确定系统的状态时,它被称为部分可观察的。例如,在扑克游戏中,我们不知道对手有哪些牌。
离散环境(Discrete environment)
当只有有限的动作状态可用于从一种状态移动到另一种状态时,它被称为离散环境。例如,在象棋游戏中,我们只有一组有限的动作。
连续环境(Continuous environment)
当有无限状态的动作可以从一种状态移动到另一种状态时,它被称为连续环境。例如,我们有多条路线可供从源头到目的地旅行。
偶发和非偶发环境(Episodic and non-episodic environment)
偶发环境也称为非顺序环境。在偶发环境中,智能体的当前行为不会影响未来的行为,而在非偶发环境中,智能体的当前行为会影响未来的行为,也称为顺序环境。也就是说,智能体在情景环境中执行独立的任务,而在非偶发环境中,所有代理人的行为都是相互关联的。
单智能体和多智能体环境(Single and multi-agent environment)
顾名思义,单智能体环境只有一个智能体,多智能体环境有多个智能体。在执行复杂任务时广泛使用多智能体环境。将有不同的智能体在完全不同的环境中工作,不同环境中的智能体将彼此通信。多智能体环境将大部分是随机的,因为它具有更大程度的不确定性。
RL平台用于在环境中模拟、构建、渲染和试验我们的RL算法。有许多不同的RL平台可供使用,如下节所述。
OpenAI Gym and Universe
OpenAI Gym是一个用于构建、评估和比较RL算法的工具包。它与在任何框架中编写的算法兼容,如TensorFlow、Theano、Keras等。它简单易懂。它没有假设我们的智能体(agent)的结构,并提供了所有RL任务的接口。
OpenAI Universe是OpenAI Gym的延伸。它提供了在各种简单到实时的复杂环境中训练和评估智能体的能力。它可以无限制地访问许多游戏环境。使用Universe,任何程序都可以变成Gym环境,而无需访问程序内部、源代码或APIs,因为Universe通过在虚拟网络计算远程桌面后面自动启动程序来工作。
DeepMind Lab
DeepMind Lab是基于AI智能体的研究的另一个令人惊叹的平台。它提供了一个丰富的模拟环境,作为运行几种RL算法的实验室。它是高度可定制和可扩展的。视觉效果非常丰富,科幻风格。
随着更大的进 步和研究,RL在从玩电脑游戏到汽车自动化等几个领域迅速发展。以下部分列出了一些RL应用程序。
教育
许多在线教育平台正在使用RL为每个学生提供个性化内容。一些学生可以从视频内容中学到更多,也可以从项目中学到更多,还可以从笔记中学到更多。RL用于根据每个学生的学习风格调整个性化的教育内容,并且可以根据用户的行为动态地改变。
医药卫生
RL在医药卫生领域有着无穷的应用;其中包括个性化医疗、基于医学图像的诊断、在临床决策中获得治疗策略、医学图像分割等。
制造业
在制造业中,智能机器人被用来将物体放置在正确的位置。如果它未能成功地将物体放置在正确的位置,它会记住物体,并训练自己以更高的精度完成这项工作。智能代理的使用将降低人工成本并显著提高性能。
存货管理
RL在库存管理中得到了广泛应用重要的商业活动。其中一些活动包括供应链管理、需求预测和处理多个仓库操作(例如将产品放置在仓库中以有效地管理空间)。Google DeepMind的研究人员已经开发了RL算法,用于有效降低他们自己数据中心的能耗。
金融
RL广泛应用于金融投资组合管理,这是一个不断将资金重新分配到不同金融产品的过程,也是商业交易市场的预测和交易。摩根大通已成功利用RL为大宗订单提供更好的交易执行结果。
自然语言处理与计算机视觉
随着深度学习和RL的统一,深度强化学习( DRL )在自然语言处理( NLP )和计算机视觉( CV )领域有了很大发展。DRL已经被用于文本摘要、信息提取、机器翻译和图像识别,提供了比当前系统更高的准确性。
在本文中,我们学习了RL的基础知识和一些关键概念。我们学习了RL的不同组成部分和不同类型的RL环境。我们还介绍了各种可用的RL平台,以及RL在各个领域的应用。
在下文中,我们将从OpenAI和TensorFlow开始,我们将学习OpenAI和TensorFlow的基础知识和安装方法,然后模拟环境并教智能体在环境中学习。
问题如下,你掌握了吗?欢迎留言。
What is reinforcement learning?
How does RL differ from other ML paradigms?
What are agents and how do agents learn?
What is the difference between a policy function and a value function?
What is the difference between model-based and model-free learning?
What are all the different types of environments in RL?
How does OpenAI Universe differ from other RL platforms?
What are some of the applications of RL?