【强化学习】强化学习入门以及代码实现

2017 年 9 月 4 日 产业智能官 AI科技大本营

                    AI科技大本营                    

AI科技大本营                                                        

rgznai100

欢迎来到AI科技大本营。这里汇集了优秀的AI学习者,技术大咖和产业领袖;提供接地气的实战课程。在这里和优秀的人一起成长。

                                                                       


介绍

 

目前,对于全球的科学家而言,“如何去学习一种新技能”已经成为最基本的研究课题之一。解决这个问题的意愿显而易见——如果能够解决这个问题,那么人类就有望做到某些从未想过的事情。换句话说,我们可以训练机器去做更多原本人类要做的工作,迎来真正的人工智能时代。


虽然,对于上述问题,目前我们还没有一个完整的回答,但有一些事情是十分明确的。不考虑技能方面的学习,我们首先的是在与环境的交互过程中进行学习。不管是学习开车,还是婴儿学习走路,学习的基础都是与环境的交互过程。在互动中学习是所有学习理论以及智力发展理论的最根本的概念。


强化学习

 

今天,我们将探讨强化学习。其中与环境的交互是深度学习的基础,通常伴有明确的目的。有些人认为,强化学习是实现强人工智能的真正希望。这么说确实没错,因为强化学习拥有着巨大的潜力。

 

目前,有关强化学习的研究正在快速增长,人们为不同的应用程序生成了各种各样的学习算法。因此,熟悉强化学习的技术变得尤其重要。如果你还不是很熟悉强化学习,那么我建议你可以去看看我以前有关强化学习的文章和一些开源的强化学习平台。

 

如果你已经掌握并理解了强化学习的基础知识,那么请继续阅读这篇文章。读完本文之后,你将会对强化学习以及代码实现过程有一个透彻的了解。

 

注:在代码实现部分,我们假设你已经有了 Python 的基本知识。如果你还不知道 Python,那么你应该先看看这篇教程。


https://www.analyticsvidhya.com/blog/2016/01/complete-tutorial-learn-data-science-python-scratch-2/

 

目录

 

  1. 强化学习问题的表现形式

  2. 与其他机器学习方法的比较

  3. 解决强化问题的框架

  4. 强化学习的实现

  5. 增加强化学习的复杂性

  6. 深入了解强化学习的最新进展

  7. 其他资源



1. 强化学习问题的表现形式

 

强化学习不仅需要学习做什么,也需要学习如何根据与环境的交互采取相应的行动。强化学习的最终结果,就是要实现系统回报信号的最大化。学习者事先并不知道要去执行什么行为,需要自己去发现哪种行动能产生最大的回报。让我们通过一个简单的例子来解释一下。

 

我们以一个正在学习走路的孩子为例进行讲解。

 


以下是孩子在学习走路时所要采取的步骤:

 

  1. 孩子关注的第一件事,就是观察身边的人是如何走路的。身边的人使用两条腿走路,一次走一步,一步一步按照次序往前走。孩子会抓住这个概念,然后努力去模仿这个过程。

  2. 但很快他/她又会明白,在走路之前,必须先站起来!在学习走路的过程中,站立对于孩子来说是一个挑战。因此,孩子试图自己站起来,他/她不断跌倒,但是仍然决定站起来。

  3. 然而接下来,还有另外一个挑战需要应付。站起来是相对容易的,但是要保持站立状态就是另一个挑战了。在狭小的空间中找到支撑,孩子就能成功保持站立状态。

  4. 现在,孩子的真正任务就是开始学习走路了。但是学习走路说起来很容易,而实际做起来就不是那么容易了。在孩子的大脑中需要处理很多事情,比如平衡身体、决定接下来放哪个脚、放在哪里。

 

这听起来像是一个很困难的任务,对吗?事实上,这确实是一个挑战,先要学习站立,然后才能学习行走。但是,现在我们不都学会了走路嘛,再也不会被这个问题所困扰了。现在你应该可以明白,为什么学习走路对于孩子来说非常困难了。

 

让我们用具体的形式来表述上面的例子。例子所要陈述的问题是“走路问题”,其中孩子是一个试图通过采取行动(走路)来操纵环境(在地上走路)的智能体,他/她试图从一个状态(即,他/她走的每一步)转移到另一个状态。当他/她完成任务的一个子模块(即孩子走了几步)时,孩子会获得奖励(比如,一些巧克力),但是当他/她不会走路时,他/她不会收到任何巧克力(这是一个负反馈过程)。这就是对强化学习问题的简单描述。

        

 

下面的链接,是介绍强化学习的很好的视频。


https://youtu.be/m2weFARriE8

 


2. 与其他机器学习方法的比较

 

强化学习是机器学习算法中的一类。以下是有关机器学习算法类型的描述。

 


让我们比较一下强化学习算法和其他类型算法之间的区别:

 

监督学习与强化学习:在监督学习中,其外部有一个“监督主管”,这个“监督主管”拥有环境方面的知识,并且与智能体一起共享这个知识,从而帮助智能体完成任务。但是这存在一些问题,因为存在如此多的子任务之间的组合,智能体要实现其目标的话,这些组合都是可以利用的。所以,创建一个“监督主管”几乎是不切实际的。例如,在象棋游戏中,存在数万个移动方法。因此,创建玩法知识库的任务将会单调而乏味。有一个更加合理可行的方法,就是设法从自己的经历中学习,并以此获得所需的知识。这就是强化学习和监督学习的主要区别。在监督学习和强化学习中,输入和输出之间都存在映射。但是在强化学习中,存在的是对智能体的奖励反馈函数,而不是像监督学习一样,直接告诉智能体最终的答案。


无监督学习与强化学习:在强化学习中,有一个从输入到输出的映射过程,但是这个过程在无监督学习中是不存在的。在无监督学习中,主要任务是找到一种最基本的模式,而不是映射关系。例如,如果任务是向用户推荐新闻文章,那么无监督学习算法首先将会查看该人以前读过的类似文章,并把它们推荐给其他人。而强化学习算法则是,通过用户阅读的某文章,不断获得用户的反馈,从而构建一个“知识图谱”,推测用户喜欢的文章。

 

还有第四种类型的机器学习,称为半监督学习。半监督学习本质上是监督学习和无监督学习的组合。它不同于强化学习,而是与监督学习相类似。半监督学习会直接给出参照答案,而强化学习不会。

 


3. 解决强化学习问题的框架

 

为了理解解决强化学习问题的过程,让我们通过一个经典的例子来解释一下强化学习问题——多臂赌博机。首先,我们需要了解探索与开发的基本问题,然后去定义解决强化学习问题的框架。


 

如上图中的老虎机,假设你已经在老虎机上面玩了很多次了。

 

现在你想做的是从老虎机上面获得最大的回报,并且尽可能快地获得这个回报。你会怎么做呢?


 

一个比较天真的想法是,只选择一个老虎机,然后一整天都去玩它。这听起来非常无聊,但老虎机确实可能会给你一些“回报”,即让你赢钱。使用这种方法,你可能中奖的概率大约是0.00000.....1。也就是说,大多数时间你可能知识坐在老虎机面前亏钱。正式说明一下,我们可以将其定义为一种纯粹的开发方法。但是这是最佳选择吗?答案当然是否定的。

 

让我们看看另外一种方法。我们可以拉每个老虎机的拉杆,并且向上帝祈祷,让我们至少打中一个。当然,这是另一种天真的想法,它只会让你一天都在拉动拉杆,但只是给你一点点报酬。正式说明一下,这种方法只是一种纯粹的探索方法。

 

这两种方法都不是最优的,我们必须在它们之间找到适当的平衡点,以获得最大的回报。这就是强化学习中“探索VS开发”的两难选择。

 

首先,我们来正式地定义一下解决强化学习问题的框架,然后列出可能的方法来解决这个问题。

 

马尔科夫决策过程

 

在强化学习场景中,用于解决问题的数学框架叫做马尔科夫决策过程。这可以被设计为:

  • 状态集合:S

  • 动作集合:A

  • 奖励函数:R

  • 策略:π

  • 价值:V

 

要想从开始状态转变到结束状态(S),我们必须采取一定的行动(A)。每当我们采取一个行动之后,我们都会得到一定的回报作为奖励。当然,所获得的奖励的性质(正面奖励还是负面奖励)是由我们的行动决定的。


策略集合(π)取决于我们的动作集合,而我们得到的回报将会决定我们的价值(V)。在这里,我们的任务就是选择正确的策略来最大化我们的价值。所以我们必须最大化下面的方程:



在时间点t,我们必须最大化S中所有可能的值。

 

旅行推销员问题

 

让我们通过另外一个例子来说明一下。



这个问题是一系列旅行商(TSP)问题的代表。任务是以尽可能低的成本从地点A到达地点F。两个字母之间的每条边上的数字表示两地之间的花费。如果这个值是负数,那么表示经过这条路,你会得到一定的报酬。这里我们定义的价值(Value)是运用选择的策略走完整个路程时,所获得的总价值。

 

这里说明一下符号:

 

  • 所有状态的集合相当于图中的节点:{A,B,C,D,E,F}

  • 动作集合相当于是从一个地点到另一个地点的过程:{A→B, C→D, etc}

  • 奖励函数相当于边上的值,例如“成本”

  • 策略函数相当于完整的路径规划,比如: {A → C → F}

 

现在假设你在地点A,唯一你能看见的路就是你的下一个目的地(也就是说,你只能看见B,D,C,E),而别的地点你是不知道的。


你可以采取贪心算法,选择当前状态下最有利的步骤,也就是说,从{A → (B,C,D,E)}中选择采取 {A→D} 这种方法。同样地,如果现在你所在的地点是D,想要到达地点F,你就可以从{D → (B, C, F)} 中采取 {D → F} 这个方法,这可以让你得到最大的报酬。因此,我们选取这一条路。


至此,我们的策略就是{A → D → F},这种策略所获得的回报是-120。

 

恭喜!你刚刚就已经实现了强化学习算法。这种算法被称之为 epsilon 贪婪算法。这是一种通过逐步测试而解决问题的贪婪算法。现在,如果见你(推销员)想再次从地点A到达地点F的话,你大概会一直选择这条路线了。

 

其他旅游方式?

 

你能猜出我们的策略是属于哪个类别(纯粹的探索VS纯粹的开发)吗?


请注意,我们采取的策略并不是最佳的策略。要想寻找最佳的策略,我们必须更具“探索精神”。在这里,我们采取的方法是局域策略学习,我们的任务是在所有可能的策略中找到最佳的策略。有很多的方法都可以解决这个问题,在这里,我简要的列出一些主要的内容:

 

  • 策略优先:我们的重点是找到最佳的策略

  • 回报优先:我们的重点是找到最佳的回报价值,即累计奖励

  • 行动优先:我们的重点是在每个步骤上采取最佳行动

 

在以后的文章中,我会深入讨论强化学习算法。到那时,你可以参考这篇关于强化学习算法的调研论文


https://www.jair.org/media/301/live-301-1562-jair.pdf

 


4. 强化学习的实现

 

接下来,我们将使用深度Q学习算法。Q学习是一种基于策略的学习算法,它的函数表示和神经网络近似。Google就是采用了这种算法打败了Atari游戏。

让我们看看Q学习的伪代码:


  1. 初始化价值表 ‘Q(s, a)’。

  2. 观察当前的状态值 ‘s’。

  3. 基于动作选择一个策略(例如,epsilon贪婪)作为该状态选择的动作。

  4. 根据这个动作,观察回报价值 ’r’ 和下一个新的状态 ‘s’。

  5. 使用观察到的奖励和可能的下一个状态所获得的最大奖励来更新状态的值。根据上述公式和参数进行更新。

  6. 将状态设置为新的状态,并且重复上述过程,直到达到最终状态。

 

Q学习的简单描述可以总结如下:


 

我们首先来了解一下 Cartpole 问题,然后再继续编写我们的解决方案。

 

当我还是一个孩子的时候,我记得我会挑选一根木棍,并试图用一只手指去使它保持平衡。过去,我和我的朋友有过这样一个比赛:谁能让木棍保持平衡的时间更久,谁就能得到一块巧克力作为奖励。

 

以下链接是一个简短的视频,描述的是真正的 Cart-Pole 系统。


https://youtu.be/XiigTGKZfks

 

让我们开始编写代码吧!

 

在开始编写之前,我们需要先安装几个软件。

 

步骤一:安装keras-rl包

 

在终端中,你可以运行以下命令:


git clone https://github.com/matthiasplappert/keras-rl.git

cd keras-rl

python setup.py install


步骤二:为CartPole环境安装依赖程序

 

我们假设你已经安装好了pip,那么你只需要使用以下命令进行安装:


pip install h5py

pip install gym


步骤三:开始编写代码

 

首先我们需要导入一些我们需要的模块。


import numpy as np

import gym


from keras.models import Sequential

from keras.layers import Dense, Activation, Flatten

from keras.optimizers import Adam


from rl.agents.dqn import DQNAgent

from rl.policy import EpsGreedyQPolicy

from rl.memory import SequentialMemory


然后,设置相关变量。


ENV_NAME = 'CartPole-v0'


# Get the environment and extract the number of actions available in the Cartpole problem

env = gym.make(ENV_NAME)

np.random.seed(123)

env.seed(123)

nb_actions = env.action_space.n


之后,我们来构建一个非常简单的单层神经网络模型。


model = Sequential()

model.add(Flatten(input_shape=(1,) + env.observation_space.shape))

model.add(Dense(16))

model.add(Activation('relu'))

model.add(Dense(nb_actions))

model.add(Activation('linear'))

print(model.summary())


接下来,我们对智能体进行相关的配置并进行编译。我们运用的策略是 Epsilon 贪婪算法。同时,我们还将我们的存储空间设置为序列存储,因为我们需要存储执行操作后的结果以及每一个操作所获得的奖励。


policy = EpsGreedyQPolicy()

memory = SequentialMemory(limit=50000, window_length=1)

dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10,

target_model_update=1e-2, policy=policy)

dqn.compile(Adam(lr=1e-3), metrics=['mae'])


# Okay, now it's time to learn something! We visualize the training here for show, but this slows down training quite a lot. 

dqn.fit(env, nb_steps=5000, visualize=True, verbose=2)


现在,让我们来测试一下我们的强化学习模型。


dqn.test(env, nb_episodes=5, visualize=True)


下图是模型的输出结果:

瞧,你刚刚就建立了一个强化学习机器人!

 


5. 增加复杂性

 

现在,你已经看到了一个强化学习的基本的实现过程,让我们开始学习更多的问题吧,每次增加一点点复杂性。

 

汉诺塔问题


 

有些人可能还不知道汉诺塔问题:汉诺塔问题是在1883年发明的,由3根木棍和一系列大小不一的圆盘组成(比如上图中的3个)。从最左侧的木棍开始,目的是以最少的移动次数,把最左边的圆盘移动到最右边的圆盘上。

 

要解决这个问题,我们需要先从其状态开始谈起:

 

  • 初始状态:三个圆盘都在最左边的木棍上(从上到下,依次编号为1,2,3)

  • 结束状态:三个圆盘都在最右边的木棍上(从上到下,依次编号为1,2,3)

 

所有可能的状态:


这里,我们会得到27种可能的状态:



其中,(12)3* 表示,圆盘1和圆盘2在最左边的木棍上面(从上往下编号),圆盘3在中间那个木棍上面,最右边的木棍没有圆盘。

 

数值奖励:

 

由于我们想要以最少的移动步数解决这个问题,所以,我们可以将每次移动的奖励设为 -1 。

 

策略:

 

现在,如果不考虑任何的技术细节,那么从前一个状态过渡到下一个状态过程中,我们可以预测出其可能的状态。比如,当数值奖励为-1时,状态 (123)** 会转移到状态 (23)1*,或者状态 (23)*1 。


如果你现在看到了一个同时进行的状态,那么上面提到的这27个状态的每一个都可以表示成一个类似于旅行商问题的图,我们可以通过实验各种状态和路径来找到最优的解决方案。

 

3 x 3 魔方问题

 

虽然我可以为你解决这个问题,但是我想让你自己去解决这个问题。你可以按照我上述提到的思路来进行,应该就可以解决了。

 

从定义开始状态和结束状态开始,接下来,定义所有可能的状态、转换过程、奖励和策略。最后,你应该就可以使用相同的方法来构建自己的解决方案了。

  


6. 深入了解强化学习的最新进展

 

你可能已经意识到,魔方的复杂性要比汉诺塔问题高出很多倍,可供选择的数量要比汉诺塔问题多得多!现在,让我们来想象一下棋类游戏中的状态和选择的策略数量吧,比如围棋。最近,Google DeepMind公司创建了一个深度强化学习算法,并且打败了李世石。


在深度学习不断取得成功的过程中,人们关注的焦点正逐渐发生变化,视图应用深度学习来解决强化学习问题。最近有一则消息,如洪水般向我们涌来:由Google DeepMind创建的深度强化学习算法打败了李世石。在视频游戏中也出现了类似的情况,深度强化学习算法达到了人类水平的准确性,甚至在某些游戏中,超越了人类。研究和实践仍然需要共同发展,工业界和学术界需要共同努力,以建立出更好地、能自我学习的机器人。

 

http://www.tomshardware.com/news/alphago-defeats-sedol-second-time,31377.html


以下是几个已经应用强化学习的重要领域:

 

  • 博弈论和多个智能体交互

  • 机器人

  • 计算机网络

  • 车载导航

  • 医学

  • 工业物流

 

我们可以看到,仍然有许许多多的领域尚未得以开发,加之人们对深度学习的热情非常高涨,我相信以后肯定会有更多的突破!

 

下面是一则最近的消息:


 


7. 其他资源

 

我希望你现在能够深入了解强化学习的工作原理。这里还是一些额外的资源,可以帮助你学习更多有关强化学习的内容。

 

有关强化学习的视频

https://www.analyticsvidhya.com/blog/2016/12/21-deep-learning-videos-tutorials-courses-on-youtube-from-2016/

有关强化学习的书籍

https://webdocs.cs.ualberta.ca/~sutton/book/bookdraft2016sep.pdf

GitHub上有关强化学习的资料库

https://github.com/aikorea/awesome-rl

David Silver的强化学习课程

https://www.youtube.com/playlist?list=PLV_1KI9mrSpGFoaxoL9BCZeen_s987Yxb

 

本文作者 Faizan Shaikh 是 AnalyticsVidhya 的数据科学实习生,目前致力于研究深度学习,目标是利用自己的技能,推动AI研究的进展。


新一代技术+商业操作系统:

AI-CPS OS

     

新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利AI-CPS OS形成字化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生,在行业、企业和自身三个层面勇立鳌头。


数字化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置。

  • 分辨率革命种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品控制、事件控制和结果控制。

  • 复合不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。

  • 边界模糊化:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。


领导者无法依靠某种单一战略方法来应对多维度的数字化变革。随着变革范围不断扩大,一切都几乎变得不确定,即使是最精明的领导者也可能失去方向。面对新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能颠覆性的数字化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位。


如果不能在上述三个层面保持领先,领导力将会不断弱化并难以维继: 

  • 重新进行行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?

  • 重新构建你的企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?

  • 重新打造新的自己:你需要成为怎样的人?要重塑自己并在数字化时代保有领先地位,你必须如何去做?


子曰:“君子和而不同,小人同而不和。”  《论语·子路》

云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。


如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。

在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。

云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!


人工智能通过三个方式激发经济增长:

  1. 创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;

  2. 对现有劳动力和实物资产进行有利的补充和提升,提高资本效率;

  3. 人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间。


新一代信息技术(云计算、大数据、物联网、区块链和人工智能)的商业化落地进度远不及技术其本身的革新来得迅猛,究其原因,技术供应商(乙方)不明确自己的技术可服务于谁,传统企业机构(甲方)不懂如何有效利用新一代信息技术创新商业模式和提升效率。


“产业智能官”,通过甲、乙方价值巨大的云计算、大数据、物联网、区块链和人工智能的论文、研究报告和商业合作项目,面向企业CEO、CDO、CTO和CIO,服务新一代信息技术输出者和新一代信息技术消费者。


助力新一代信息技术公司寻找最有价值的潜在传统客户与商业化落地路径,帮助传统企业选择与开发适合自己的新一代信息技术产品和技术方案,消除新一代信息技术公司与传统企业之间的信息不对称,推动云计算、大数据、物联网、区块链和人工智能的商业化浪潮。


给决策制定者和商业领袖的建议:


  1. 超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;

  2. 迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新

    评估未来的知识和技能类型;

  3. 制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开

    发过程中确定更加明晰的标准和最佳实践;

  4. 重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临

    较高失业风险的人群;

  5. 开发人工智能型企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。


新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。

重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。

新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能正在经历从“概念”到“落地”,最终实现“大范围规模化应用,深刻改变人类生活”的过程。





产业智能官  AI-CPS



新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能),在场景中状态感知-实时分析-自主决策-精准执行-学习提升认知计算机器智能实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链




长按上方二维码关注微信公众号: AI-CPS,更多信息回复:


新技术“云计算”、“大数据”、“物联网”、“区块链”、“人工智能新产业:智能制造”、“智能驾驶”、“智能金融”、“智能城市”、“智能零售新模式:案例分析”、“研究报告”、“商业模式”、“供应链金融”、“财富空间”





本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!



版权声明产业智能官(公众号ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com




登录查看更多
18

相关内容

强化学习(RL)是机器学习的一个领域,与软件代理应如何在环境中采取行动以最大化累积奖励的概念有关。除了监督学习和非监督学习外,强化学习是三种基本的机器学习范式之一。 强化学习与监督学习的不同之处在于,不需要呈现带标签的输入/输出对,也不需要显式纠正次优动作。相反,重点是在探索(未知领域)和利用(当前知识)之间找到平衡。 该环境通常以马尔可夫决策过程(MDP)的形式陈述,因为针对这种情况的许多强化学习算法都使用动态编程技术。经典动态规划方法和强化学习算法之间的主要区别在于,后者不假设MDP的确切数学模型,并且针对无法采用精确方法的大型MDP。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【圣经书】《强化学习导论(2nd)》电子书与代码,548页pdf
专知会员服务
197+阅读 · 2020年5月22日
《强化学习》简介小册,24页pdf
专知会员服务
261+阅读 · 2020年4月19日
《深度学习》圣经花书的数学推导、原理与Python代码实现
《强化学习—使用 Open AI、TensorFlow和Keras实现》174页pdf
专知会员服务
136+阅读 · 2020年3月1日
【强化学习】深度强化学习初学者指南
专知会员服务
178+阅读 · 2019年12月14日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
159+阅读 · 2019年10月28日
强化学习的未来——第一部分
AI研习社
9+阅读 · 2019年1月2日
论强化学习的根本缺陷
AI科技评论
11+阅读 · 2018年7月24日
【干货】强化学习介绍
人工智能学家
13+阅读 · 2018年6月24日
干货|浅谈强化学习的方法及学习路线
机器学习算法与Python学习
16+阅读 · 2018年3月28日
【强化学习】强化学习/增强学习/再励学习介绍
产业智能官
10+阅读 · 2018年2月23日
强化学习的入门之旅
机器学习研究会
6+阅读 · 2018年2月12日
关于强化学习(附代码,练习和解答)
深度学习
34+阅读 · 2018年1月30日
入门 | 从Q学习到DDPG,一文简述多种强化学习算法
Seq2seq强化学习实战 (Pytorch, Tensorflow, Theano)
专知
15+阅读 · 2018年1月16日
技术 | 强化学习入门以及代码实现
AI100
51+阅读 · 2017年8月26日
Deep learning for cardiac image segmentation: A review
Arxiv
21+阅读 · 2019年11月9日
Arxiv
3+阅读 · 2018年10月8日
Arxiv
21+阅读 · 2018年8月30日
Arxiv
4+阅读 · 2018年5月4日
VIP会员
相关VIP内容
【圣经书】《强化学习导论(2nd)》电子书与代码,548页pdf
专知会员服务
197+阅读 · 2020年5月22日
《强化学习》简介小册,24页pdf
专知会员服务
261+阅读 · 2020年4月19日
《深度学习》圣经花书的数学推导、原理与Python代码实现
《强化学习—使用 Open AI、TensorFlow和Keras实现》174页pdf
专知会员服务
136+阅读 · 2020年3月1日
【强化学习】深度强化学习初学者指南
专知会员服务
178+阅读 · 2019年12月14日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
159+阅读 · 2019年10月28日
相关资讯
强化学习的未来——第一部分
AI研习社
9+阅读 · 2019年1月2日
论强化学习的根本缺陷
AI科技评论
11+阅读 · 2018年7月24日
【干货】强化学习介绍
人工智能学家
13+阅读 · 2018年6月24日
干货|浅谈强化学习的方法及学习路线
机器学习算法与Python学习
16+阅读 · 2018年3月28日
【强化学习】强化学习/增强学习/再励学习介绍
产业智能官
10+阅读 · 2018年2月23日
强化学习的入门之旅
机器学习研究会
6+阅读 · 2018年2月12日
关于强化学习(附代码,练习和解答)
深度学习
34+阅读 · 2018年1月30日
入门 | 从Q学习到DDPG,一文简述多种强化学习算法
Seq2seq强化学习实战 (Pytorch, Tensorflow, Theano)
专知
15+阅读 · 2018年1月16日
技术 | 强化学习入门以及代码实现
AI100
51+阅读 · 2017年8月26日
Top
微信扫码咨询专知VIP会员