大数据技术之深度学习
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络
所谓神经网络就是将许多个单一“神经元”联结在一起,这样, 一个“神经元”的输出就可以是另一个“神经元”的输入。
网络的层数: 将第 l 层记为:
为输入层,
为输出层
是第
层第 单元与第
层第 单元之间的联接参数
输入层 隐藏层 输出层
其实就是连接线上的权重。
神经网络
表示第 层第 单元的激活值(输出值)。 当 时,也就是第 个输入值(输入值的第 个特征)。
CNN样例
AlexNet
在ImageNet举办的大规模图像识别比赛ILSVRC2012中分类比赛中,Hinton的学 生Alex搭建了一个8层的CNN,最终top-5的漏报率是16%,抛离而第二名的27% 整整有11个百分点。
包括5个卷积层,和3个全连接层,最后一个softmax分类器
深度学习
华中科技大学计算机学院
目录
深度学习概述
神经网络
典型深度网络
卷积神经网络(CNN) 深度学习工具
深度学习概述
深度学习概述
深度学习的概念源于人工神经网络的研究。含多隐层的 多层感知器就是一种深度学习结构。深度学习通过组合低 层特征形成更加抽象的高层表示属性类别或特征,以发现 数据的分布式特征表示。 深度学习是机器学习研究中的一个新的领域,其动机在
深度学习工具
caffe
Lrn …
Pooling
FC with dropout
转换图像
Relu
ConvLayer
Softmax with Loss
LevelDB
DataLayer
The End Thanks
表示第 层第 单元的输入加权和(包括偏置单元)。
如:
,则
上面的计算步骤叫作前向传播
神经网络
神经网络也可以有多个输出单元。比如,下面的神经网络有两层隐藏 层:
隐藏层: 及
输出层:
有两个输出单元
要求解这样的神经网络,需要 样本集 ,预测的输出 是多个的。 如:在医疗诊断应用中,患者的 体征指标就可以作为向量的输入 值,而不同的输出值可以表示不 同的疾病存在与否。
3)卷积核上的权值大小说明了对应的邻域 点对最后结果的贡献能力,权重越大,贡 献能力越大。 4)卷积核沿着图像所有像素移动并计算响 应。 5)在处理边缘上点时,卷积核会覆盖到图 像外层没有定义的点,这时候有几种方法 设定这些没有定义的点,可以用内层像素 镜像复制,也可以全设置为0。
池化
在通过卷积获得了特征之后,下一步我们希望利用这些特征去做分 类。例如:对于一个 96X96 像素的图像,假设我们已经学习得到了400 个定义在8X8输入上的特征,每一个特征和图像卷积都会得到一个 (96 − 8 + 1) * (96 − 8 + 1) = 7921 维的卷积特征,由于有 400 个特征,所以 每个样例都会得到一个 892 * 400 = 3,168,400 维的卷积特征向量。
卷积神经网络
特点 1.局部感知
2.参数共享
3.多卷积核
4.子采样(池化)
5.多层卷积
卷积神经网络
重新开始
播放
卷积神经网络
训练过程
1.前向传播过程
a)从样本集中取一个样本(X,Yp),将X输入网络; b)计算相应的实际输出Op。
2.反向传播过程
c)算实际输出Op与相应的理想输出Yp的差;
神经网络
反向传播算法(Backpropagation algorithm) 样本集 代价函数 整体代价函数
第二项是权重衰减项,控制两项的相对重要性,防止过拟合。
目标:针对参数W和b来求
的最小值。
神经网络
反向传播算法(Backpropagation algorithm) 神经网络一般用批量梯度下降的方法来求解,按照如下公式来更新W和b
卷积神经网络
存在的问题:
1.由于网络参数增多,导致了严重的过拟合现象
2.在训练过程中,梯度消失,导致前面的网络得不到训练,网络难以收敛。
解决方案:
1.共享权值:卷积层的卷积核权值共享,大大减少了网络中参数的数量级。
2.加大数据量:一个是通过众包的方式来增加样本的量级,比如,目前ImageNet已经有了120万的 带标注的图片数据。另一个是通过对已有的样本进行随机截取、局部扰动、小角度扭动等方法,来 倍增已有的样本数。
卷积神经网络
反向传播残差调整
接在pooling层的下一层为卷积层时,求该pooling层的残差
第L层有N张特征图,第L+1层(卷积层)有M个特征图,L层中的每个特征图都对应有自己的残差,计算依据 是第L+1层所有特征核的贡献之和,第L+1层中第j个核对第L层第i个通道的残差计算方法:
例:设前向传播时的两个卷积核为:
第l+1层2个卷积图的残差为:
对待卷积矩阵进行0扩展,如果卷积核为k*k,待卷积矩阵为n*n,需要以n*n原矩阵为中心扩展到 (n+2(k-1))*(n+2(k-1))
卷积神经网络
反向传播残差调整
接在pooling层的下一层为卷积层时,求该pooling层的残差
右图中为离散卷积操作,需要先将卷积核旋转180度之后再进行相关操作:
CIFAR-10
50,000
10,000
32*32
分类
10类
CIFAR-100
50,000
10,000
32*32
分类
100类(精确) 20 类(粗糙) 8类 0~9手写字体 10类
LabelMe MNIST STL-10
2,920 60,000 5,000
1,133 10,000 8,000
随机 28*28 96*96
让机器自动学习良好的特征,而免去人工选取过程 把层次学习看做一个network,则:
①无监督学习用于每一层网络的pre-train;
②每次用无监督学习只训练一层,将其训练结果作为其higher一层 的输入;
③最后用监督学习去调整所有层
神经网络
神经网络
以监督学习为例,假设我们有训练样本集 (xi , yi ) ,那么神经 网络算法能够提供一种复杂且非线性的假设模型 ,它具 有参数 ,可以以此参数来拟合我们的数据。
标注 分类 分类
深度学习工具
caffe:C++开发,支持python和matlab,加 州伯克利分校,应用最广发;
Theano:Python开发,蒙特利尔理工学院, 扩展框架多;
Torch:Lua开发,速度快;
TenserFlow:Google最新开源框架,C++开 发;
MXNet:DMLC组织,C++开发,接口稳定;
CNN样例
GoogLenet
GoogLenet, 2014年ILSVRC挑战赛冠军,将Top5 的错误率降低到6.67%. 一个 22层的深度网络。
深度学习数据集
名称 训练集 测试集 尺寸 标签属性 其他
PASCAL VOC
14,197,122
(>256)*(>256)
分类,标注,检索
局部框图分析
[ x1 , x2 , a
]
a ,
1,2 ,
min xi ai , j j
i 1 j 1
m
k
2
ai , j
i 1 j 1
m
k
深度置信网
H3
W3
H2 W2
H1 W1 V
深度置信网
CAT
卷积神经网络(CNN)
输入层
卷积层 C1
池化层 S2
卷积层 池化层 全连接层 C3 S4
则第L层的残差值为上面两者之和:
卷积神经网络
反向传播残差调整
与卷积层相连那层的权值、偏置值导数
设现在需要求第L层的第i个通道,与第L+1层的第j个通道之间的权值和偏置的导数:
其中符号⊙表示矩阵的相关操作。 例如:第L层某个通道矩阵i大小为4*4,第L+1层第j个特征的残差矩阵大小为3×3,分 别如下:
激活函数:
神经网络
神经细胞的输出值取决于这个激励值是否超过某个阀值(t),用方 程表示: w1x1 + w2x2 + w3x3 +...+ wnxn >= t 为了调整阀值t, w1x1 + w2x2 + w3x3 +...+ wnxn –t >= 0 w1x1 + w2x2 + w3x3 +...+ wnxn+ t *(–1) >= 0
于建立、模拟人脑进行分析学习的神经网络,它模仿人脑
的机制来解释数据,例如图像,声音和文本。
深度学习概述
浅层机器学习模型 SVM,Boosting,Logistic Regression等等,带有一层隐层结点 或者根本没有隐层结点。 深度学习模型 2006年,加拿大多伦多大学教授Geoffrey Hinton和他的学生 RuslanSalakhutdinov在《Science》上发表了一篇文章 《Supporting Online Material for Reducing the Dimensionality of Data with Neural Networks》。
deconvnet
CNN样例
在下一年的比赛ILSVRC2013中,在同样的数据集同样的任务下,Matthew进一步将漏 报率降到了11%。他使用了一个被命名为“Deconvolutional Network”(简称 deconvnet)的技术。
将CNN学习出来的特征映射回原图片,来对每个卷积层最具有判别性的部分实现可视 化——也就是,观察CNN在来自百度文库积层中学习到了什么。
卷积神经网络
反向传播残差调整
与卷积层相连那层的权值、偏置值导数
那么权值导数矩阵为2*2的,如下:
而此时偏置b的导数为1.2,将j区域的误差敏感值相加即可(0.8+0.1-0.6+0.3+0.5+0.70.4-0.2=1.2),因为b对j中的每个节点都有贡献,按照多项式的求导规则(和的导数等 于导数的和)很容易得到。
3.改变激活函数:使用ReLU作为激活函数,由于ReLU的导数对于正数输入来说恒为1,能够很好地 将梯度传到位于前面的网络当中。`
4.Dropout机制:Hinton在2012提出了Dropout机制,能够在训练过程中将通过随机禁止一半的神 经元被修改,避免了过拟合的现象。 5.GPU编程:使用GPU进行运算,比起CPU时代运算性能有了数量级的提升。
输出层
卷积神经网络(CNN)
卷积
数学定义
函数f与g的卷积记作f * g,它是其中一个函数翻转并 平移后与另一个函数的乘积的积分,是一个对平移量的 函数。 积分区间取决于f与g的定义域。 对于定义在离散域的函数,卷积定义为
卷积
图像卷积
1)卷积是一种线性运算
2)卷积核的大小,定义了图像中任何一点 参与运算的邻域的大小。
3.对 算方法如下:
的各个层,第 层的第 个节点的残差计
神经网络
反向传播算法(Backpropagation algorithm)
将上式中的
与
的关系替换为 与
的关系,就可以得到:
反向传播
4. 我们要计算的偏导数求解如下:
典型深度网络
稀疏编码
输入 码值 重构
编码
解码
错误
样本 参数编码 参数基
其中, 是学习速率,关键步骤是求解偏导数
反向传播算法是计算偏导数的一个有效的方法
神经网络
反向传播算法(Backpropagation algorithm)
算法步骤
1.进行前馈传导计算,利用前向传导公式,得到 的激活值。 2.对于第 层(输出层)的每个输出单元 ,我们根据以下公式计算 残差: 直到输出层
d)按极小化误差的方法反向传播调整权矩阵。
卷积神经网络
反向传播残差调整
输出层的残差
接在卷积层的下一层为pooling层时,求卷积层的残差
第l层为卷积层,l+1层为pooling层,pooling层的误差为 ,卷积层的误差为
卷积神经网络
反向传播残差调整
接在卷积层的下一层为pooling层时,求卷积层的残差
1.多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对 数据有更本质的刻画,从而有利于可视化或分类; 2.深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学 习实现的。
深度学习概述
核心思想: