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

【中文字幕】卡耐基梅隆大学 2018 秋季《深度学习导论》Bhiksha Raj 领衔主讲

开课时间:9月27日开始正式发布,更新节奏视官网课程而定
开课时长:28讲视频

这里从导数讲到梯度,梯度是y随着x的变化最快增长的方向的表达,有了梯度就可以去逼近求解函数的极值点。

这里利用梯度下降的迭代方法来逼近极值点,这个算法一般肯定会找到一个局部极值,不一定是最小值。如果要求解全局最小,可以利用二阶导数的hassin矩阵去去除鞍点,但是这种计算量大。或者可以在函数的构造上下功夫,让函数是个凸函数。

本节用了很长的时间在讲述导数已经梯度的意义,而在最后得出结论和方法,并且列出了多个不同的激活函数及其导数情况。

[展开全文]
fogo · 2019-01-27 · 4.1 反向传播 1

4.1 反向传播

这一节主要介绍导数和梯度的概念。导数是函数值的变化,讨论如果导数是向量。

梯度是一个行向量。二姐偏导数一般用海森矩阵表示。

通常,用迭代的方法寻找极值。

[展开全文]

回顾:

给定training set of input-output pairs:

就可以得到这整个数据集中的平均经验误差,然后取得最小值。这是最小化优化问题。

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

定义导数:

微小变化会在多大程度上影响输出?

若X是一个向量,dx指的是X在每一个方向上的变化。

公式在课件中。

关于梯度的定义。可以定义为行向量(通常),sometimes也可以定义为列向量。

1、把斜率为0作为判断是否达到最小值的依据,是不够充分的。

2、我们真正可以用来检查是否达到最大值和最小值的方法是,首先找到那些导数值为0的点,在这些点中,找到驻点,检查二次导数,若二次导数为正,说明该点是最小值;若为负,则是最大值。

PS:驻点是什么?函数值在这一点停止变化,在驻点前后,函数值的改变的方向会发生变化,要么是先减后增,要么是先增后减。

3、因为函数存在拐点。二阶导数会在拐点处变为0。若某个点,导数为0,则并不一定是极小值点。

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

对于多变量函数,如何计算驻点?

你要计算梯度的每一项是否都是0。如果有一部分为0,另外一些不是0,那么函数在某一些方向上,还是会变化。

梯度是一个向量,是唯一能使函数值增加最快的方向。

Hessian矩阵:

对有多个输入参数的函数定义二阶偏导数,就是Hessian矩阵。对角线上的元素是对单个输入变量的二阶偏导数。

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

总结:如何找到极大极小值?

首先找到梯度为0的点的集合。然后计算这些候选点的Hessian矩阵,如果这个函数的Hessian矩阵是对称矩阵。如果矩阵的某个特征向量的特征值是正数,那么沿着这个特征向量的方向,将会得到极小值点。如果某个特征向量的特征值是负数,那么沿着这个方向,将会得到极大值点。

通俗点的解释就是:我们抵达了某个点,它的梯度为0,如果它是极小值点的话,那么Hessian矩阵的每一个特征值都必须是正数。

如果你想得到最大值点,需要计算Hessian矩阵,计算量大。

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

实际中,给定一个初始猜测的X0,一步步迭代后,我们最终会到达导数为0的点,也就是说,一直迭代到函数值不再减小,那么导数就可以变为0。

初始化时,应该选择函数值不为0的点。

如果梯度为正,我们沿着梯度的负方向改变。

总结:

开始迭代后,你可以检查梯度是否为0,或函数值的改变量(两次迭代之间)在变小,直到一个特定的阈值。

表示网络的函数,必须对每一个参数都可微。这样就可以用梯度下降来最小化误差。

 

 

 

 

[展开全文]
琦舞 · 2019-02-23 · 4.1 反向传播 0

进入小组观看课程

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

SMART Lab学习小组

成员:1泡泡:0

点击观看
生物医学小分队

成员:164泡泡:67

点击观看
CUM 11-485/785 NLP学习小组

成员:278泡泡:160

点击观看