深度学习 (Deep Learning)
所有的内容均来自网络和相关论文。不是原创,仅限于学习交流。
背景 深度学习的基本概念 常用的模型 应用实例
背景 中间的三部分,概括起来就是特征表达。好的特征表达,对结果的准确性起了非常关键的作用,这一大部分占据了系统大量的计算和测试。实际中,这部分一般都是人工完成的。(SIFT,HOG,HAAR-LIKE,LBP等)。
背景 人工特征的选取需要大量的时间,需要 专业知识和经验,能不能自动地学习一 些特征呢?通过Deep Learning可以实 现这一点。
背景 Deep Learning是模拟人的视觉信息处理。 人的视觉系统的信息处理是分级的。从低级的V1区提取边缘特征,再到V2区的形状或者目标的部分等,再到更高层。 高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越到高层越容易分类。
背景 就一个图片来说,像素级的特征没有价值。 V1层提取边缘特征,然后V2层是V1层这些特征的 组合。
背景 浅层学习的理论,例如支撑向量机(SVM,Support Vector Machines)、 Boosting、最大熵方法(Logistic Regression)等。这些模型结构,有的含有一层隐含层,有的没有隐含层。 其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。
深度学习 I =>S1=>S2=>…..=>Sn => O。如果I=O,这 个系统的信息没有任何损失。深度学习的思想就 是设计多个层,上一层的输出作为下一层的输入。 通过这种方式,就可以实现对输入信息进行分级 表达了。
深度学习 深度学习的不同在于: 强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点; 通过逐层特征变换,将样本在原空间的特征(权值和偏置)表示变换到一个新特征空间。
深度学习 Deep Learning可以看成是神经网络的发 展。传统神经网络的比较容易过拟合, 训练速度比较慢。比如BP神经网络,如 果层次达到7层以上。传播到最前面的层 误差已经太小,对权值的影响很小。而 且容易收敛到局部极小值。
深度学习 2006年前,尝试训练深度架构都失败了。 2006年的3篇论文改变了这种状况:
深度学习 深度学习过程: 使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练)。第一步就是特征提取的过程。 自顶向下的监督学习(就是通过分类的数据去训练,误差自顶向下传输,对网络进行微调)。 Deep learning效果好很大程度上取决于于第一步。
深度学习
常用模型 AutoEncoder Sparse AutoEncoder Restricted Boltzmann Machine (RBM) Denoising AutoEncoders Convolutional Neural Networks
AutoEncoder 设计一个神经网络,训练调整其参数,得到每一层中的权重,使得输出与输入是相同的。
AutoEncoder 有分类和无分类的学习过程
AutoEncoder 因为数据是没有分类的,所以误差的来 源就是直接重构后与原输入相比得到。
AutoEncoder 下一层训练
AutoEncoder 前面的过程是无监督的过程。最后部分是分类: 只对分类部分的参数进行调整
AutoEncoder 对所有部分的参数进行调整
Sparse AutoEncoder 对于二维的平面坐标都,正交向量(1,0)和(0,1)就是坐标的基。任何一个坐标都可以用a*(1,0)+ b*(0,1)。 O = a1*Φ1 + a2*Φ2+….+ an*Φn, Φi是基,ai是系数。 稀疏编码对于一组输入向量,只有少数几个系数远大于零。
Sparse AutoEncoder
Sparse AutoEncoder
Denoising AutoEncoders 流形学习
Restricted Boltzmann Machine (RBM) 两层的神经网络,每一层的节点之间没有链接,一层是可视层,即输入数据层(v),一层是隐藏层(h)。所有的节点都是随机二值变量节点(只能取0或者1值),同时假设全概率分布p(v,h)满足Boltzmann 分布
Restricted Boltzmann Machine 因为节点之间不存在连接,隐藏节点之间是条件独立的,即p(h|v)=p(h1|v)…p(hn|v)。 在已知隐藏层h的情况下,所有的可视节点都是条件独立的。 p(v|h)=p(v1|h)…p(vn|h)。 当输入v的时候,通过p(h|v) 可以得到隐藏层h,而得到隐藏层h之后,通过p(v|h)又能得到可视层。 隐藏层就是可视层另外一种表达 。 训练:最大似然估计 。
Restricted Boltzmann Machine 把隐藏层的层数增加,可以得到Deep Boltzmann Machine(DBM)
Restricted Boltzmann Machine
Convolutional Neural Networks DBNs并没有考虑到图像的2维结构信息,因为 输入是简单的从一个图像矩阵一维向量化的。 卷积神经网络是神经网络的一种,是为识别二维形状而特殊设计的一个多层感知器。 对平移、比例缩放、倾斜或者其他形式的变形具有高度不变性。 是感受野概念在人工神经网络领域的应用。其布局更接近于实际的生物神经网络。
Convolutional Neural Networks C层是一个卷积层, S层是一个下采样层,下一C层起到二次特征提取的作用。
Convolutional Neural Networks
Convolutional Neural Networks 每层所含的平面数递增,这样可用于检 测更多的特征信息。
Convolutional Neural Networks 卷积神经网络通过感受野和权值共享减 少了神经网络需要训练的参数的个数。 1000x1000像素的图像,有1百万个隐层 神经元,1000x1000x1000000=10^12 个连接。
Convolutional Neural Networks 每一个神经元都连接10x10个图像区域,或者说每 一个神经元存在10x10=100个连接权值参数,加 上偏置是101个参数。如果每个神经元这101个参 数是相同的。无论隐层的神经元个数为多少,两层 间的连接,只有101个参数。这个101个参数,对 应着一个滤波器,只提取了一种特征。
Convolutional Neural Networks 需要提取不同的特征,可以设计多个不同的滤波器。100个滤波器,就有1万多个参数。 训练算法与传统的BP算法差不多。
应用举例 深度学习在信号处理中的应用对象不仅包含语音、图像和视频,同样也包含文本、语言和传递人类可获知的语义信息。
Hierarchical Face Parsing via Deep Learning
Hierarchical Face Parsing via Deep Learning
Deep Learning Shape Priors for Object Segmentation
Deep Learning Shape Priors for Object Segmentation
Deep Learning Shape Priors for Object Segmentation
人脸姿态映射