【中英字幕】伯克利大学 2018 年秋季 CS 294-112 深度强化学习

开课时间:2018年12月20日
开课时长:26讲

深度强化学习试图让我们明白,与其直接模拟一个成熟的行为,不如先建立一个拥有学习能力的对象,然后再给它施加适当的教育,让他自己去学习理解这个世界,这样更加接近人工智能的未来。

[展开全文]

Deep Reinforcement Learning 

主要讲述了该课程的学习环境

强化学习的背景和应用范式

[展开全文]

目标:训练一个智能体去有效的完成任务,而不是训练神经网络。其中神经网络只是得到结果的一种方式。

定义计算图,训练,计算梯度,反向传播更新。

TF中实现了优化器可自动求导与反向传播。

 

[展开全文]

深度强化学习中deep用来识别环境中的各种复杂信号,reinforcement用来做出复杂的决策。要做的简而言之不是教会智能体如何面对特定情境如何做而是怎么学。

[展开全文]

CS294学习笔记

1 深度学习的特点:处理非结构化的信息。

2 强化学习的特点:强化学习是用来做决策的数学框架。

3 深度强化学习:结合深度学习和强化学习的特点,在强化学习的框架中使用深度学习这个强大工具,为机器人赋予在复杂真实世界中自动决策的能力。

[展开全文]

可以结合着David Silver的课程看效果更好,研究生课程所以基础理论部分不会很详细,总体还是很棒滴,翻译好评

[展开全文]

1. 感知和决策;

2. TD gammon;

3. 增强学习和深度网络;

4. 特征:HOG, CO-HOG,LBP,SHIFT;

  features + svm实现分类;

5.决策:高级抽象

[展开全文]

1 DAgger

1.  So far the problems mentioned in the video, besides 

1) it is expensive for human to label the data generated by  policy

2) it is sometimes impossible for human to be able to give a correct label only by watching a  snapshot (  Marcov process is actually a simplified case) 

one more problem , in my opinion, is still the exploration and exploitation dilemma. Suppose the algorithm has beed well trained with data , say, from forest, it is hard to work well if the drone fiies to ,say, hill.  

 

2.  Non-Markovian Behavior

The reason RL perfers to Markov process may come from the truth that it is easy to calculate and cheap to implement with reasonable memory.  You don't have to know much about what had happened previously before you make a dynamic decision. 

But human is good at making decision with the help of the  accumulated experiences. As a remedy,  it is a common way to think multiple snapshots as the current state to input to the network , or  to take advantage of  RNN  to produce the input 

 

 

[展开全文]

深度强化学习

  1. 从监督学习到决策任务

  2. 免模型算法:Q-learning,policy gradients,actor-critic

  3. 先进的模型学习和预测?

  4. exploration?

  5. 迁移学习和多任务学习,元学习

  6. 开放问题???

  • 深度学习解决复杂环境感知

  • 强化学习提供决策(主要针对马尔科夫决策问题-考虑长期效益:如文本翻译,简单决策也可以做:如图像分类,但监督学习已经做的很好了)

  • 深度强化学习提供从观察到行动的end-to-end的训练过程

有趣的例子:

  1. Atari游戏,输入:图像;输出:向左或右移动

  2. 捡垃圾的机器手,输入:图像;输出:对机械手的连续控制

  3. 交通管理,

这是一个有趣的例子:只能控制一个车子的前进速度,却要对整个交通进行管理。输入:整个交通车辆状态(这在现实中是不可能已知的,更可能的是已知部分交通状况,而且其变化范围要大的多,但也许依然可以干好呢!);输出:一个车子的前进速度

关键是仅仅一个微小的控制力,就能产生整体的效益,真的漂亮!

奖励之外的学习

  • 基础的强化学习是解决最大化奖励的

  • 这并不是序列决策任务的唯一问题

更多的话题:

  • 从样例中学习奖励函数(逆强化学习)

  • 迁移其他领域的知识(迁移学习,元学习)

  • 学习预测并利用预测去行动

现实中的奖励来自哪里?

  • 从范式中学习

    • 直接拷贝已知的行为(模仿学习:自动驾驶,alphago的早期版本)

    • 从已知行为推断奖励(逆强化学习,推断目标)

  • 从观察世界中学习

    • 学习预测未来

    • 无监督学习(自编码:学习世界的构成原理)

  • 从其他任务中学习

    • 迁移学习

    • 元学习:学会学习

[展开全文]

DAgger算法总结:

   1:根据人类的数据集(观察1,行动1,... 观察N,行动N) 在给定的观察 O下来训练策略π

 2: 运行策略π 来得到新数据集(O1,O2,... OM)

3:    根据获取的数据集来给每个数据打上相应的标签a

4:用新的D和新的标签a 来更新新的D,再次训练π,重复整个过程

[展开全文]

1. 强化学习是一门历史长久的学问。

2. 深度学习通过端到端,自行学习特征,此特征甚至有时候无法解释

3.  深度强化学习近年取得进展得益于:

1.   深度学习的进展

2.  强化学习方面的进展

3.  计算能力的提高

 

[展开全文]

How do we build intelligent machines?

all unexpected events that happen in the real world:

  • doing its job without people(无人化)
  • deal with the physicality(物理接触)
  • visual complexity(视觉识别上的复杂性)
  • the diversity(环境多样性)

Intelligent machines

short of(challenge):

  • adaptability(适应性)
  • flexibility(灵活性)

good at:

  • calculation(计算)
  • fast reactions(快速响应)
  • complicated planning(复杂规划)

 

Deep learning helps us handle unstructured(can't predict in advence how everthing will be laid out,diversity and variety)environments,but doesn't tell us anything about decision-making. 识别

build models that can deal with raw sensory observations(建立可以处理原始传感器信息的模型)

 

图像识别,translate text(文字识别),recognize speech(语音识别)

Reinforcement learning provides a formalism for behavior(the framework for dealing with decision making)

 

the circle continues to evolve

What is deep RL?

                   computer vision

 

  • designing the right feature by hand(人为定义) for computer vision(计算机视觉) is very important.
  • classifier: learning happens 

 

DL和传统的比:

  • basic pipeline is almost same: have multiple layers of representation
  • how it's trained is different: all of the layers are trained end to end(端到端)to optimize final performance(目标最优化)on the task
  • 2 benefits:
  1. don't have to design feature manually(不需要手动提取特征)
  2. adapted to the task at hand(任务自适应):find the right features for solving the particular problem(以优化特征为主)

 

  • constrained by the ability designed the right features that could make right reinforcement learning algorithms behave well(被“定义的特征能否使得强化学习算法表现优异的能力“”所限制)

 

  • don't need to rely on human and optimize the features at hand
  • have the right low level representation(底层特征抽象) that make the right high-level decision

 

 

 

 

 

[展开全文]

机器学习算法大致可以分为三种:

1. 监督学习(如回归,分类)

2. 非监督学习(如聚类,降维)

3. 增强学习

 

什么是强化学习(增强学习)

定义: Reinforcement learning is learning what to do ----how to map situations to actions ---- so as to maximize a numerical reward signal.[1] 

即:增强学习关注的是智能体如何在环境中采取一系列行为,从而获得最大的累积回报

 

智能体:增强学习有一个学习者,称之为智能体。

策略:通过增强学习,一个智能体应该知道在什么状态下应该采取什么行为。RL是从环境状态到动作的映射的学习,我们把这个映射称为策略。

 

 

RL最重要的3个特性:

(1)通常是一种闭环的形式;

(2)不会直接指示选择哪种行动(actions);

(3)一系列的 actions 和奖励信号(reward signals)都会影响之后较长的时间。

 

为什么要研究深度增强学习

现阶段,深度学习已经能够帮我们解决一些复杂性,多变性,非结构化的问题,比如:CV,NLP等,

所以我们希望在深度学习的基础上,能让增强学习算法更进一步解决更复杂的决策性问题。

比如:通过深度学习,发现前方有一只老虎,这时该做什么决策,赶紧溜啊(决策)。

 

参考资料:

[1] R.Sutton et al. Reinforcement learning: An introduction

[展开全文]

监督驾驶问题可以通过随机切片解决,这样就防止误差累加,之前伯克利的行走机器人不是这样的吗,效果很不错。

[展开全文]

目前的监督学习只是人工智能发展的一个开始,随着任务范围的扩张,无监督学习、模仿学习将会有一个新的发展。更少的人力投入,更多的数据输入,更好的泛化能力。但模仿学习还处于发展阶段,需要更多的理论和实践支持。

[展开全文]

深度学习:1)处理非结构化环境问题。在实际的场景中,我们要面对的主要是非结构化问题,即我们不能完整的观测并预测到周围的环境。

2)处理复杂的多传感器输入数据。通过深度学习能有效提取物体特征(例如图像特征)的能力,把输入的数据特征提取出来(包括高维特征和低维特征)

强化学习:1)提取特征能力差

2)算法善于做出多种决策

通过将DL和RL结合,通过端到端的深度学习提取输入特征,利用RL根据提取到的特征进一步做出决策,形成agents通过action作用于world,world得到consequence结果,通过reward的形式强化agents来得到基本强化学习的闭环过程。

 

DRL涉及到的reward的问题:如何定义奖励?如何最大化奖励?

 

端到端学习的连续决策问题:1)基础强化学习的最大化奖励问题

2)逆强化学习。通过从数据出发执行任务,从案例中反向得出奖励函数

3)迁移学习和元学习(通过过去的经验experience replay实现更好更快的学习)

4)学习如何预测以及通过预测去行动

[展开全文]

深度学习能够让machine认识世界,强化学习让machine行动。深度强化学习能够实现end to end,使得能够使得machine具有更强大的决策能力

[展开全文]

需要判定一个决定是好是坏,而不是我们采取的动作符合我们在采样中学习到的,因此就需要公式化的目标函数。

zero-one loss/log likelihood loss

建议使用0-1loss,若你的动作匹配专家,你的损失就是0;否则就是1。

需要做的界定:更标准的机器学习,即界定泛化误差。bounded generalization error。如果你看到和你的训练数据同一个分布的新状态,你的误差仍然不大于误差。

————————————————————

Tensorflow综述:

defing computation graphs

calculating gradients

创建一个会话Session:一张白纸,在上面写下一些数学操作。

sess.run(c)是一种能让数据在你创建的图中进行流动的操作。

placeholder:shape=[None],你只能让你所有维度中的一个等于None。shape=[None, None]时,无法得到正确的结果。因为,需要知道,在运行过程中,矩阵乘法有多大。通常把None用在第一个维度上,作为数据的批量大小。

例子:

a是列向量,b是行向量。当运行a+b时,得到一个3X3的向量作为输出。tensorflow做了被称为广播操作的处理。broadcasting自行进行了维度匹配。通过复制两个3x3的矩阵,然后再将它们加在一起,以使两个向量的维度匹配。

——————————————————

create 变量:神经网络参数

tf.get_variable可以和这个被称为重复利用的机制(tf.global_variables)良好地协同运作。如果你想多次创建一个计算图,但却想使用相同的变量,这就将使得这些变量能有更安全的内部机制。

实际上,变量也是一个张量tensor。

当训练自己的模型的时候,变量只是略有不同被对待处理而已。

sess.run的计算顺序不重要。

接受一个批次的输入数据,一直运行下去,到最后计算损失(error,均方误差),然后返回,进行反向传播,计算梯度,并利用梯度值来更新参数,所以完成了一步梯度下降。

每次调用sess.run时,就调用了一个优化器,它就会做一步梯度下降。

 

 

 

 

 

 

 

 

 

[展开全文]

大纲:

1、sequential decision problems

从监督学习到序列决策

2、imitation learning

3、关于深度模仿学习的case

 

Terminology & notation

O:input/observation

S:state(控制论x)

A:output/action 随机分类值,1到n(控制论u)

让我联想到了现代控制理论

在这里,S和O的区别是,S是这个世界背后隐含的状态,O指的是所观察到的图片像素,即表象。

转移函数的定义。

s1 s2 s3:如果你精确地知道s2,那么知道s1或者更早的信息,并不能帮助你预测s3,也无法改进你的决策。此时s3与s1是独立的。因为s2的知识就是你进行预测时,所需要的全部。

结论:如果你能直接观察A,那么知道当前的状态就足够了,知道过往状态对问题并无帮助;如果你在获得O,那么之前的观察结果就可能给你额外的信息。s3仅仅条件依赖于s2,该属性即马尔科夫性质。

——————————————————

imitation learning:

自动驾驶:

不可行:最简单的监督学习方法:behavior cloning,存在偏移问题。如果你有足够多的数据,你可以覆盖Pdata,监督学习的泛化告诉我们,如果我们的数据都是来自P数据,那么我们的误差和P数据是有界的。

怎样能使这个方案可行呢?即,使得

Pdata(o)=Ppi theta(o)

与其把右边那一项改得完美无缺,不如改变左边的那一项,可以改变数据集,消除数据集分布和滑动的分布不一致问题。

这就是DAgger:Dataset Aggregation算法

这个算法很巧妙!!!有点像控制理论的思路。但是这个策略需要在期间,依赖人去给action的好坏打标签。

————————————————————

怎样利用whole history:CNN网络

非马尔科夫行为:不想将所有的数据都传输到前向卷积神经网络中,这样会面临大量的数据通道,大量的weights。

因此,需要设计一个新的神经网络。共享所有卷积编码器的权值。LSTM cells work better。

多模型行为:使用高斯分布实现。平均平方误差是高斯分布的对数概率。若使用平均平方误差,即使用了高斯分布。

如何解决:

1、output mixture of Gaussians

N个均值,N个方差。且对所有的分布都需要有一个标量权重。所有标量的总合为1(softmax)。混合密度网络,对多模型分布的简单设计。

适用:不能用有限数量的分布元素来表示任意的分布。在低维度的情况下,假设你有一个或者两个维度的行为决策,这个方法将会非常奏效。若你有非常高维度的行为决策,那么这个方法就会非常脆弱。

2、latent variable models使用隐变量模型

复杂,但用于学习多模型分布时,应用广泛。

输出不变,仍然以一种像单高斯分布模型的简单形式存在;但是给神经网络在底部接入额外的输入(随机数)。给神经网络一些随机源,这样就可以利用这些随机性来训练网络,以实质地改变输出的分布。

神经网络是一个普适的函数逼近器,它可以把噪声转换为在输出时的任何分布。

利用噪声,呈现复杂的分布。

3、自动回归离散化。实现简单。

离散:softmax

连续动作决策:若你离散化的是高维度的连续变量,就得面对维数灾难了。两个维度的决策,很好离散化;但若变成十个维度呢?你将面对很多不同维度的离散化数值,很有可能会用尽内存。

自动回归离散化通过一次只离散化一个维度来实现。1)先处理第一个维度,对其离散化并使用softmax,从分布中采样,得到行为决策的第一个维度结果。2)给其他神经网络这个结果。结合我们从第一个维度的所有采样以及第二个维度的条件,来预测一个离散化结果。然后重复。直到对所有维度都完成了采样。

这里的维度是线性增长,并不是维数灾难,维数灾难指的是指数型增长。

——————————————————

模仿学习:

飞行;机器人控制。

structured prediction:机器翻译;

逆强化学习

——————————————————

模仿学习的问题:

1)人们需要给模拟学习提供数据,但是数据是有限的:deep learning在数据充足的时候效果最好。效果与数据正相关。

2)人们在有些任务上,不擅长提供决策。

3)人们可以自动学习。机器是否也可以?通过自身经验获得无限的数据;持续学习以获取持续改善。

——————————————————

在模仿学习中,目标很简单,只需要复制人们示范的。但若是自主学习,目标则不同。自主学习需要构建cost function or reward function。

———————————————————

 

 

 

 

 

 

 

[展开全文]

如何构建智能机器

1:要能够不断的学习

2:每个模块有一个漂亮的算法

为什么使用深度强化学习来构建智能机器

1:深度部分能够处理复杂的感官输入,比如图像,声音等

2:深度部分也能够模拟任意复杂的函数

3:强化部分提供理论数学基础,为选择行为提供理论支持

 

 

 

 

    

[展开全文]

进入小组观看课程

以下为该课程相关学习小组,您可以选择任意小组加入学习课程并交流