文章目录

  • 目录
    • 1. 深度学习基础
      • 1.1 深度学习总览
      • 1.2 深度网络训练过程
        • 1.2.1 传统神经网络的训练方法为什么不能用在深度神经网络
        • 1.2.2 deep learning训练过程
      • 1.3 数学知识:
    • 2. 九种深度学习模型
      • 2.1 受限玻尔兹曼机RBM
      • 2.2 自编码器AE(降维)
      • 2.3 深层信念网络DBN
      • 2.4 深层玻尔兹曼机DBM
      • 2.5 循环神经网络RNN
      • 2.6 卷积神经网络CNN
      • 2.7 其他模型
    • 3. 深度学习的混合模型,广泛应用和开发工具

目录

1. 深度学习基础

1.1 深度学习总览

1.应用:计算机视觉、自然语言处理(NLP)
2.硬件:显卡的处理器,GPU(图形处理器)
3.流行:卷积神经网络CNN、循环神经网络RNN
4.框架:TensorFlow(Python)、Caffe(C++)
5.基础:Hopefield网络、玻尔兹曼机BM、限制玻尔兹曼机RBM
6.起因:浅层神经网络可以近似任意函数,而高层可以综合应用低层信息 ;低层关注局部,高层关注全局。
7.稀疏编码:用几个较少的基将信号表示出来,重复迭代的过程
8.训练机制:layer-wise ;BP机制对于7层以上,残差传到最前面层很小,出现梯度扩散

1.2 深度网络训练过程

1.2.1 传统神经网络的训练方法为什么不能用在深度神经网络

BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想。深度结构(涉及多个非线性处理单元层)非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源。

  • BP算法存在的问题:

    • 梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;
    • 收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);
    • 一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的的数据中学习;

1.2.2 deep learning训练过程

  • 一是自底向上无监督预训练:每次训练一层网络,逐层构建单层神经元
  • 二是自顶向下有监督调优: 当所有层训练完后,使用wake-sleep算法调优
    无监督预训练的过程==特征学习的过程
    参考博客

1.3 数学知识:

矩阵论、概率论(贝叶斯公式)、信息论(熵)、概率图模型

  • 概率有向图模型(贝叶斯网络、信念网络)
  • 概率无向图模型(马尔可夫网络、马尔可夫随机场)
  • 部分有向无圈图模型(链图模型)

2. 九种深度学习模型

2.1 受限玻尔兹曼机RBM

2.2 自编码器AE(降维)



2)AE学习算法

2.3 深层信念网络DBN

1.初识深度信念网络

  深度信念网络是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅而已评估了后者,也就是P(Label|Observation)。

  DBNs由多个限制玻尔兹曼机(Restricted Boltzmann Machines)层组成,一个典型的网络结构如图1所示。这些网络被“限制”为一个可视层和一个隐层,层间存在连接,但层内的单元间不存在连接。隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。


图1

2.需要面对的问题

对于在深度神经网络应用传统的BP算法的时候,DBN遇到了以下问题:

(1)需要为训练提供一个有标签的样本集;

(2)学习过程较慢;

(3)不适当的参数选择会导致学习收敛于局部最优解。

Solution:

  首先,先不考虑最顶构成一个联想记忆(associative memory)的两层,一个DBN的连接是通过自顶向下的生成权值来指导确定的,RBMs就像一个建筑块一样,相比传统和深度分层的sigmoid信念网络,它能易于连接权值的学习。

  最开始的时候,通过一个非监督贪婪逐层方法去预训练获得生成模型的权值,非监督贪婪逐层方法被Hinton证明是有效的,并被其称为对比分歧(contrastive divergence)。


图2

   在这个训练阶段,在可视层会产生一个向量v,通过它将值传递到隐层。反过来,可视层的输入会被随机的选择,以尝试去重构原始的输入信号。最后,这些新的可视的神经元激活单元将前向传递重构隐层激活单元,获得h(在训练过程中,首先将可视向量值映射给隐单元;然后可视单元由隐层单元重建;这些新可视单元再次映射给隐单元,这样就获取新的隐单元。执行这种反复步骤叫做吉布斯采样)。这些后退和前进的步骤就是我们熟悉的Gibbs采样,而隐层激活单元和可视层输入之间的相关性差别就作为权值更新的主要依据。

  训练时间会显著的减少,因为只需要单个步骤就可以接近最大似然学习。增加进网络的每一层都会改进训练数据的对数概率,我们可以理解为越来越接近能量的真实表达。这个有意义的拓展,和无标签数据的使用,是任何一个深度学习应用的决定性的因素。

  在最高两层,权值被连接到一起,这样更低层的输出将会提供一个参考的线索或者关联给顶层,这样顶层就会将其联系到它的记忆内容。而我们最关心的,最后想得到的就是判别性能,例如分类任务里面。

  在预训练后,DBN可以通过利用带标签数据用BP算法去对判别性能做调整。在这里,一个标签集将被附加到顶层(推广联想记忆),通过一个自下向上的,学习到的识别权值获得一个网络的分类面。这个性能会比单纯的BP算法训练的网络好。这可以很直观的解释,DBNs的BP算法只需要对权值参数空间进行一个局部的搜索,这相比前向神经网络来说,训练是要快的,而且收敛的时间也少。

3.详细训练算法流程


图3

  在训练时, Hinton采用了逐层无监督的方法来学习参数。如图3所示,首先把数据向量x和第一层隐藏层作为一个RBM, 训练出这个RBM的参数(连接x和h1的权重, x和h1各个节点的偏置等等), 然后固定这个RBM的参数, 把h1视作可见向量, 把h2视作隐藏向量, 训练第二个RBM, 得到其参数, 然后固定这些参数, 训练h2和h3构成的RBM, 具体的训练算法如下:

  CD的训练过程中用到了Gibbs 采样,即在训练过程中,首先将可视向量值映射给隐单元,然后用隐层单元重建可视向量,接着再将可视向量值映射给隐单元……反复执行这种步骤。

  k-Gibbs的过程如下:

  其中,P是model distribution,是training set distribution

  DBN训练算法:

  DBN运用CD算法逐层进行训练,得到每一层的参数Wi和ci用于初始化DBN,之后再用监督学习算法对参数进行微调。

4.经典网络结构

  经典的DBN网络结构是由若干层 RBM 和一层 BP 组成的一种深层神经网络, 结构如下图4所示.


图4

  DBN 在训练模型的过程中主要分为两步:

  第 1 步:分别单独无监督地训练每一层 RBM 网络,确保特征向量映射到不同特征空间时,都尽可能多地保留特征信息;

  第 2 步:在 DBN 的最后一层设置 BP 网络,接收 RBM 的输出特征向量作为它的输入特征向量,有监督地训练实体关系分类器.而且每一层 RBM 网络只能确保自身层内的 权值对该层特征向量映射达到最优,并不是对整个 DBN 的特征向量映射达到最优,所以反向传播网络还将错误信息自顶向下传播至每一层 RBM,微调整个 DBN 网络.RBM 网络训练模型的过程可以看作对一个深层 BP 网络权值参数的初始化,使DBN 克服了 BP 网络因随机初始化权值参数而容易陷入局部最优和训练时间长的缺点.

  上述训练模型中第一步在深度学习的术语叫做预训练,第二步叫做微调。最上面有监督学习的那一层,根据具体的应用领域可以换成任何分类器模型,而不必是BP网络。

5.拓展

  DBN的灵活性使得它的拓展比较容易。一个拓展就是卷积DBNs(Convolutional Deep Belief Networks(CDBN))。DBN并没有考虑到图像的2维结构信息,因为输入是简单的从一个图像矩阵一维向量化的。而CDBN就是考虑到了这个问题,它利用邻域像素的空域关系,通过一个称为卷积RBM的模型区达到生成模型的变换不变性,而且可以容易得变换到高维图像。DBN并没有明确地处理对观察变量的时间联系的学习上,虽然目前已经有这方面的研究,例如堆叠时间RBMs,以此为推广,有序列学习的dubbed temporal convolutionmachines,这种序列学习的应用,给语音信号处理问题带来了一个让人激动的未来研究方向。

  目前,和DBN有关的研究包括堆叠自动编码器,它是通过用堆叠自动编码器来替换传统DBN里面的RBM。这就使得可以通过同样的规则来训练产生深度多层神经网络架构,但它缺少层的参数化的严格要求。与DBN不同,自动编码器使用判别模型,这样这个结构就很难采样输入采样空间,这就使得网络更难捕捉它的内部表达。但是,降噪自动编码器却能很好的避免这个问题,并且比传统的DBN更优。它通过在训练过程添加随机的污染并堆叠产生场泛化性能。训练单一的降噪自动编码器的过程和RBM训练生成模型的过程一样。

2.4 深层玻尔兹曼机DBM

DBM生成学习算法

  • DBM是概率无向图模型,采用经过编辑的RBM进行逐层预训练。
  • 逐层预训练完成后,通过权值减半处理,重新编辑成一个DBM,作为逐层预训练的结果。
  • 调优先采用平均场算法估计DBM的后验概率。然后用类CD算法更新参数。

2.5 循环神经网络RNN

2.6 卷积神经网络CNN


2.7 其他模型

和积网络SPN
深层堆叠网络DSN
长短时记忆网络LSTM

3. 深度学习的混合模型,广泛应用和开发工具

深度学习(01)-- 基础学习相关推荐

  1. 通道抠图怎么扣ps教程ps学习视频教程基础学习

    通道抠图怎么扣ps教程ps学习视频教程基础学习

  2. java学习_Python基础学习教程:从0学爬虫?让爬虫满足你的好奇心

    Python基础学习教程:从0学爬虫?让爬虫满足你的好奇心 有必要学爬虫吗? 我想,这已经是一个不需要讨论的问题了. 爬虫,"有用"也"有趣"! 这个数据为王的 ...

  3. linux中断响应时间太慢_linux+arm系统学习与基础学习

    先说说arm吧.先前学习linux+arm老是觉得arm次要的,学习arm和学习单片机一样,了解了中断,UART,AD,定时器就差不多了,工作重心主要在linux上面.随着时间的推移,学习的深入,自我 ...

  4. 深度学习-计算机视觉-基础学习笔记-01

    图像分类的思想:收集大量已知图像数据并带有正确的标签,将以往通过一个函数传入一张图片并返回图片的类型的这个思想转变成,通过俩个函数,第一个函数传入大量的图片并通过该函数训练返回一个模型,该模型通过训练 ...

  5. 深度神经网络TensorFlow基础学习(3)——卷积神经网络的参数个数和张量大小

    今天,我们来分享一篇博文,关于如何计算图像张量的大小以及确定卷积神经网络各层参数个数的公式.假设我们已经熟悉了卷积神经网络相关概念.在这里,我们把张量定义为有任意通道数的图像. 张量是在深度学习中表示 ...

  6. [AngularJS学习笔记] 基础学习01

    2016-06-06开始学习AngularJS AngularJS是会extend HTML的 ng-directives 先学习了四个 ng-app:定义AngularJS Application的 ...

  7. NLP学习D2-TF2基础学习-北大教程

    今天主要学tf2和动手实践:如果有时间,看下Transformer系列的细节!!加油! 一.环境配置 老师很贴心,带着装环境. 1.我建个github仓库~ 2.设置了一个conda的默认清华镜像 参 ...

  8. Babel学习之基础学习

    Babel学习 一.简介 1. Babel是什么? 2. 整体介绍 二.presets(环境预设) 常用的环境预设包 三.plugins(插件) 一.简介 1. Babel是什么? Babel是一个编 ...

  9. ps去掉多余的人物#ps抠图#ps去除抠图教程学习入门基础学习

    ps去掉多余的人物#ps抠图#ps去除抠图教程学习

  10. 统计学习-01统计学习概念

    chapter 2 统计学习 2.1基本概念 统计学习是关于估计 f ( ⋅ ) f(\cdot) f(⋅) 的一系列方法,其中 f ( ⋅ ) f(\cdot) f(⋅)为一个定量的响应变量 Y Y ...

最新文章

  1. -bash: /bin/rm: Argument list too long的解决办法
  2. qt toutf8函数_qt中的toUtf8, toLatin1, Local8bit, toUcs4(转)
  3. 计算机网络-TCP运输连接管理
  4. Masm for Windows集成开发环境编写汇编程序
  5. linux 子域dns,linux下搭建DNS子域及相关授权详解
  6. 基于easyui开发Web版Activiti流程定制器详解(一)——目录结构
  7. 程序员,你可以更优秀些!加油!
  8. 《恋上数据结构第1季》映射 TreeMap,HashMap,LinkedHashMap
  9. 【面试】不容错过的12个深度学习面试问题
  10. log添加 oracle redo_Redo Log之一:理解Oracle redo log
  11. html判断安装没安装qq,QQ提示安装路径无效您没有权限怎么办 QQ2015提示安装路径无效您没有权限的解决方法...
  12. Windows 8 相关资源 MSDN原版
  13. matlab s函数z变换,Matlab符号计算——s函数转z函数
  14. 人工智能在减灾遥感中的应用
  15. 又一次算法作业hhhhhh
  16. 自学html4,HTML4
  17. 16天记住7000考研单词(第一天)
  18. JS生成二维码(兼容各种浏览器及中文)
  19. 数学建模之稳定性模型详解
  20. 互联网的公司没有中年人

热门文章

  1. 基于 Android NDK 的学习之旅-----环境搭建
  2. 设计模式C++实现(2)——单例模式
  3. 计算机工程与应用查重吗,计算机工程期刊录用率_计算机工程与应用期刊_计算机八大核心期刊...
  4. java 邮件模板_Spring Boot 2发送邮件手把手图文教程
  5. mysql not is null_转!!mysql 字段 is not null 和 字段 !=null
  6. gcovr 安装_Kudu 1.8.0 编译安装配置
  7. sleep期间读取所有_ceph部分数据所有副本先后故障的抢救
  8. REVERSE-PRACTICE-BUUCTF-3
  9. 【机器学习】 - keras中的模型可视化plot_model模块(含依赖包pydot和graphviz的详细安装过程与注意事项)
  10. 【HDU - 5744 】Keep On Movin (回文串性质,贪心思维,不是水题)