首页 AI学术青年与开发者社区

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

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

深度强化学习

  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时,就调用了一个优化器,它就会做一步梯度下降。

 

 

 

 

 

 

 

 

 

[展开全文]

进入小组观看课程

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