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

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

开课时间:2018年12月20日
开课时长:26讲
强化学习是机器器学习领域之⼀一,受到⾏行行为⼼心理理学的启发,主要关注智能体如何在环境中采取不不同的⾏行行动, 以最⼤大限度地提⾼高累积奖励。 智能体通过强化学习,可以知道⾃自⼰己在什什么状态下,应该采取什什么样的动作使得⾃自身获得最⼤大奖励。由 于智能体与环境的交互⽅方式与⼈人类与环境的交互⽅方式类似,可以认为强化学习是⼀一套通⽤用的学习框架,可⽤用 来解决通⽤用⼈人⼯工智能的问题。因此强化学习也被称为通⽤用⼈人⼯工智能的机器器学习⽅方法。
[展开全文]

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

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

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

 

[展开全文]

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

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

 

 

 

 

 

 

 

 

 

[展开全文]

进入小组观看课程

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