2018-05-23 12:01:20 qq_25011449 阅读数 458

李宏毅深度学习_Backpropagation

本文是李宏毅深度学习 (2015)的学习笔记,主要介绍了神经网络Backpropagation算法的推导过程。本文所用到的图示均来自课堂ppt。

原视频地址:李宏毅深度学习 (2015)

Background

BP的背景

为了使用Gradient Descent对网络参数进行训练,我们就要求出Cost Function对每一层参数的梯度,由于本质上wijlbil差别不大(可将bil看作wijl中的一项),因此我们这里仅对Cr/wijl进行推导,Cr/bil推导类似。

链式法则

求导链式法则

这里使用求导链式法则先将这个问题拆解成两部分,然后分别对每一部分的求导进行计算。

计算链式法则中拆解的两部分

1. 计算zil/wijl

第一部分求导

第一部分的求导分为两种情况:

  • l>1。即当权值不是第一层时,导数为ajl1
  • l=1。即权值为第一层时,导数为xjr

2. 计算Cr/zil

第二部分求导1

为了描述方便将Cr/zil描述为δil。此时利用BP的思想,先求出最后一层的δL,再找出后一层δl+1与前一层δl的关系,以此求出所有的δl

第二部分求导2

同样根据链式求导法则可以得出

δnL=σ(znL)Crynr

其中Crynr与Cost Function的选取有关。

第二部分求导3
第二部分求导4

zil的变化Δzil会对ail造成影响进而影响到下一层的zl+1

第二部分求导6

向量化后得到

δl=σ(zl)(Wl+1)Tδl+1

总结

总结

至此,我们已经完成了对Cr/wijl的推导,并且实现了向量化。Cr/bil推导类似。

2017-11-27 14:42:36 Allenlzcoder 阅读数 2186

台大李宏毅2017深度学习国语课程(更新)

      本博客转载自:新浪微博爱可可-爱生活
      【台大李宏毅2017深度学习国语课程(更新)】”Advanced Topics in Deep Learning (Hung-yi Lee, NTU) - YouTube”
      新增SELU、Tuning Hyperparameters、Interesting things about deep learning、Capsule等节,最新#bilibili#完整搬运版:https://www.bilibili.com/video/av9770302/
2019-07-21 15:52:53 weixin_43848117 阅读数 14

回归算法的应用

应用

1.梯度下降(Gradient Descent)

1.1什么是梯度下降

梯度下降算法(随机梯度下降算法(SGD)、小批量梯度下降算法(mini-batch SGD))都需要对于每一个参数都用相同的学习率进行更新。
但是在实际应用中,各个参数的重要性肯定是不一样的,所以我们对于不同的参数要动态的采取不同的学习率,让目标函数更快的收敛。

1.1.1自适应学习率(Adaptive Learning Rates)

自适应学习率

1.1.2 Adagrad算法

AdaGrad算法就是将每一个参数的每一次迭代的梯度取平方累加后在开方,用全局学习率除以这个数,作为学习率的动态更新。
算法介绍
进行不同参数的比较,取二阶导数。
二阶导数

1.2 随机梯度下降(SGD)

随机梯度下降,Stochastic Gradient Descent,可以加快训练速度。
其原理为:
算法原理
算法比较:
算法比较

1.3 特征缩放(feature scaling)

特征缩放作为特征工程中的一部分,其意义为:
特征缩放的意义

1.3.1 常用方法—标准化

标准化

1.4 梯度下降的限制

限制

2019-08-16 13:56:08 wangwei19871103 阅读数 199

深度学习的概况

深度学习从2012年的图像识别比赛开始就复苏了,发展越来越快,越来越好,具体他的发展历史可以百度下,可以追溯到很早时期,还有几个大起大落的阶段:
在这里插入图片描述
可以看看这些时间点的重要发展:
在这里插入图片描述

深度学习的步骤

那深度学习的步骤是怎么样的呢,其实跟我们前面说的机器学习差不多,就跟把大象放冰箱里的步骤差不多:
在这里插入图片描述
我们上次讲到了神经网络就是深度学习的重要部分,是由对个逻辑回归单元组合起来的:
在这里插入图片描述

前馈神经网络

先介绍下这个,其实就是前向传播,从输入计算到输出,输入的是向量,每个向量的每个特征都与后一层的每个神经元相连,通过激活函数计算输入,然后继续往后面的层输入,最后到输出层,是一个向量,比如图上的例子输入是[1,-1],经过第一层的计算后,得到[0.98,0.12],很明显经过了sigmoid的非线性作用:
在这里插入图片描述
那我们继续这样计算,知道计算到最后的输出:
在这里插入图片描述
那这整一个网络结构就可以看做是一个模型集合,输入是一个向量,输出也是一个向量:
在这里插入图片描述

全连接神经网络

我们来定义下这个网络,输入的向量也看做一层,叫做输入层,最后输出的向量叫输出层,中间的都叫隐藏层,每个层之间的神经网络都是相互连接的,所以叫做全连接神经网络:
在这里插入图片描述
所以深度学习的深度可以看做隐藏层的层数很多,所以看上去很深,比如经典的一些模型AlexNet,VGG,GoogleNet:
在这里插入图片描述
当然还有残差神经网络Residual Net:
在这里插入图片描述
其实神经网络的计算,我们可以用矩阵,这样就可以在GPU上计算,可以大大缩短时间,比如:
在这里插入图片描述
上面的值是一层,其实每一层都是这么计算的,计算出的结果向量又作为下一层的输入:
在这里插入图片描述
所以输出可以看成一个个sigmoid函数叠起来的结果,有点像递归调用啊:
在这里插入图片描述
通常我们把最后的输出层当做多分类器,中间的隐藏层其实就变成了特征提取器了:
在这里插入图片描述

数字识别分类

我们来举一个识别数字的例子:
我们希望输入一张数字的图片,输出是一个数字:
在这里插入图片描述
我们的输入是16x16像素的图,如果是填充颜色的就是1,没有就是0,因此有256个点也就是256个特征输入:
在这里插入图片描述
我们的输出是一个10维的向量,每一个维度代表一个数字的概率,取概率最大的为分类的数字,如下,2的概率有0.7,所以这个图片的数字被预测为2:
在这里插入图片描述
然后我们需要设计一些隐藏层来组成这个模型:
在这里插入图片描述
那么问题来了,隐藏层多少层好呢,每一层的神经元个数多少好呢,这个没有很准确的答案,很多的是根据经验试错和直觉得来的,也就是实际结果得出来的,当然也有让机器自动选择要多少层,另外网络的结构能不能变呢,可以的,可以用CNN或者RNN或者其他的:
在这里插入图片描述
接下来要定义模型的好坏了,我们拿真实的预测值和预测的值做交叉熵作为损失函数,为什么不用均方差前面一篇将过了,梯度为0的地方可能是远离最小点的:
在这里插入图片描述
于是我们拿很多的样本来进行训练,计算总的损失,我们希望损失越小越好,最小的损失的参数模型就是我们要找的:
在这里插入图片描述
那怎么样找出这个损失最小的模型呢,还是我们的梯度下降法:

在这里插入图片描述
其实这个过程就是反向传播,具体是用链式法则求导的,也就是一个计算梯度更新参数的过程,当然当参数很复杂的时候我们不可能手动去算,现在有很多的框架,当然下面列的可能是比较老的了,现在一般有keras,pytorch,tensorflow,mxnet等等:
在这里插入图片描述
至此,深度学习怎么训练最基本的步骤讲完了。

总结

本篇简单介绍了深度学习的基本框架,介绍全连接神经网络的架构,介绍了前向传播和反向传播,其实如果考虑特征空间问题,那么隐藏层在做的是就是把原始的特征空间不断的进行扭曲变形,生成新的特征空间,也就是特征被映射到新的特征空间,就是坐标变换,用来做分类或者回归,而每一层的神经元的个数就是特征空间的维度,维度越高越容易区分。附上思维导图:
在这里插入图片描述
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵,图片来自李宏毅课件,侵删。

2019-07-21 16:46:17 weixin_43848117 阅读数 9

1.误差来源

误差来源

1.1偏置与方差

期望
方差
估计1
以射击为例。f^为估计值即靶的中心,误差来源一是由于瞄准时候带来的(bias),二是由于子弹下坠所带来的的(variance)。
打靶

1.1方差

方差

1.2 偏置

偏置

1.3 模型分析

1.3.1模型复杂度

简单模型与复杂模型的分析如图所示,从左到右,由简单到复杂。
模型

1.3.2 过拟合、欠拟合

过拟合与欠拟合,通俗的讲。以树叶为例,过拟合会认为特定纹理的树叶才是树叶,欠拟合就是认为所有绿色的都是树叶。
欠拟合:
偏置过大
过拟合:
方差过大

2.模型选择

2.1 模型选择

模型选择

2.2 模型检测

检测1
K折线

李宏毅_深度学习

阅读数 15

没有更多推荐了,返回首页