概述


深度学习(Deep Learning)是利用多层神经网络结构,从大数据中学习现实世界中各类事物能直接用于计算机计算的表示形式(如图像中的事物、音频中的声音等),被认为是智能机器可能的“大脑结构”

Learning:让计算机自动调整函数参数以拟合想要的函数的过程

Deep:多个函数进行嵌套,构成一个多层神经网络,利用非监督贪心逐层训练算法调整有效地自动调整函数参数

简单地说深度学习就是:使用多层神经网络来进行机器学习

从生物神经元到人工神经元


生物神经元的数学模型

生物神经元的工作机制:一个神经元就是一个可以接受、发射脉冲信号的细胞。树突接受其他神经元的脉冲信号,而轴突将输出脉冲传递给其他神经元

人工神经元模型:把一个神经元看做一个计算单元,对输入进行线性组合,然后通过该一个非线性的激活函数作为输出。有

在这里,x和y作为输入和输出,它们是任意的实数。w和b是模型的参数,不同的参数会构成实现不同功能的模型

人工神经元的激活函数

不同的激活函数适合不同的具体问题和神经网络参数学习算法

如果期望得到离散的输出,可以使用阶跃激活函数

如果期望得到连续的输出,可以使用一类被称为sigmoid的S形函数。使用较多的是Logistic函数

Logistic函数处处可导,并且导数大于0,为后面的参数学习提供了方便

从生物神经网络到人工神经网络


构成人脑的神经元所实现的功能很固定很简单,人之所以拥有智能,是因为数量庞大的这样的简单单元以某种非常特殊的方式互相连接着

人工神经网络可以看作是对人脑某种程度的模拟,人工神经网络中的函数相当于定义了某种特殊的脑细胞的连接方式,而函数中可调的参数则定义了在这种连接方式下这些连接的强度

神经网络的理念是,给出一种通用的函数形式,它的计算步骤、方式均是固定的,其功能只由其中的参数取值决定

有监督参数学习


模型的评价

设输入为x,输出为y,我们期望的输出为y*,可定义实际输出与期望输出的差别作为评价神经网络的好坏。例如将两个向量的距离的平方定义为这个差别

通常需要考察一个测试集,例如有

定义损失函数为

有监督学习

既然损失函数可以用来评价模型的好坏,那么让损失函数的值最小的那组参数就应该是最好的参数

在数学上,这是一个无约束优化问题

如果用测试集上的损失函数来调整参数,会出现严重过拟合。所以通常准备两个集合,一个是测试集,一个是训练集。参数的学习只针对训练集,找到使训练集损失尽量小的参数,然后在测试集上测试该组参数面对训练集之外的样本的表现

梯度下降法

梯度下降法是解决无约束优化问题的基本方法。首先选择一组参数,然后一次次地对这组参数进行微小的调整,不断使得新的参数的损失函数更小。梯度下降算法

梯度下降算法最大的不足是无法保证最终得到全局最优的结果。另外,步长的确定也是一个问题,一种方法是让步长随着时间t的推移而变小

后向传播算法计算梯度

多层前馈网络可以表示成嵌套函数

如果参数学习用梯度下降法,方法并不直观。此时应该用后向传播算法

后向传播算法的数学原理其实就是计算导数的链式法则

梯度计算的步骤,要先求得y的梯度,才能求得b的梯度,最后求得W的梯度

计算各个变量的值是从左到右计算的,而计算梯度是从右到左计算的,这就是后向传播算法名字的来由

非监督贪心逐层预训练


自动编码器

它是一种只有一层隐层的神经网络,训练的目的是让输出尽量等于输入——通过隐层到输出层的变换,我们得到了包含输入样本几乎全部无损信息的另一种表示形式,能将其完全还原成输入

输入层到隐层的过程称为编码过程,隐层到输出层的过程称为解码过程

通常隐层神经元个数小于输入层,或者在隐层加入额外的限制

逐层预训练

首先构造一个自动编码器,输入为深度神经网络的输入,隐层神经元个数为深度神经网络第一个隐层神经元个数。如此训练自动编码器后,记录自动编码器输入层到隐层的权重,这些权重用以初始化深度神经网络输入层到第一个隐层权重的初始值。往后自动编码器的输入为前一个深度神经网络的隐层。如此逐层重复,知道所有层之间的权重均被初始化

深度学习的训练方法


深度神经网络的训练过程主要是先逐层预训练初始化深度神经网络每一层的参数,然后通过监督学习对整个深度结构神经网络进行微调。训练过程如下

  1. 将第一层作为一个自编码模型,采用无监督训练,使原始输入的重建误差最小
  2. 将自编码模型的隐单元输出作为另一层的输入
  3. 按步骤2迭代初始化每一层的参数
  4. 采用最后一个隐层的输出作为输入施加于一个有监督的层(通常为输出层),并初始化该层的参数
  5. 根据监督准则调整深度结构神经网络的所有参数

卷积神经网络模型(CNN)


特点

卷积神经网络通过使用接受域的局部联结,对网络的结构有一些约束限制

  1. 卷积层:特征提取、特征映射
  2. 子采样层(池化层)

另外一个特点是权值共享,由于同一隐层的神经元共享同一权值集,大大减少了自由参数的数量

训练

  1. 向前传播阶段:先用随机数初始化网络所有权值然后训练
  2. 向后传播阶段:误差反向传播

深度置信型网络模型(DBN)


受限玻尔兹曼机(RBM)

RBM包含隐层、可见层和偏置层,可见层和隐层间的链接是不定向的和完全链接的

DBN的生成结构

DBN可以解释为贝叶斯概率生成模型,由多层随机隐变量组成,上面的两层具有无向对称联结,下面的层得到来自上一层的自顶向下的有向联结,最底层单元的状态为可见输入数据向量。DBN由若干RBM堆栈组成

堆栈自编码网络模型


自编码模型

自编码模型是一个两层的神经网络,第一层为编码层,第二层为解码层

堆栈自编码网络模型

堆栈自编码模型是一个由多层自编码模型组成的神经网络,其前一层的自编码器的输出作为其后一层自编码器的输入

对于一个n层堆栈自编码网络模型的编码过程就是,按照从前向后的顺序执行每一层自编码器的编码步骤

深度学习的应用领域


  1. 语音识别
  2. 图像和视频
    1. 手写字体识别
    2. 人脸识别
    3. 图像识别
  3. 自然语言处理
  4. 搜索广告与CTR预估

参考文献书籍


《神经网络与深度学习》吴岸城

《人工智能及其演化》刘海滨

《大数据智能——互联网时代的机器学习和自然语言处理技术》刘知远 崔安颀

【深度学习】深度学习简介相关推荐

  1. 文本深度表示模型Word2Vec 简介 Word2vec 是 Google 在 2013 年年中开源的一款将词表征为实数值向量的高效工具, 其利用深度学习的思想,可以通过训练,把对文本内容的处理简

    文本深度表示模型Word2Vec 简介 Word2vec 是 Google 在 2013 年年中开源的一款将词表征为实数值向量的高效工具, 其利用深度学习的思想,可以通过训练,把对文本内容的处理简化为 ...

  2. DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略

    DL:深度学习(神经网络)的简介.基础知识(神经元/感知机.训练策略.预测原理).算法分类.经典案例应用之详细攻略 目录 深度学习(神经网络)的简介 1.深度学习浪潮兴起的三大因素 深度学习(神经网络 ...

  3. 深度学习及TensorFlow简介

    深度学习及TensorFlow简介 深度学习目前已经被应用到图像识别,语音识别,自然语言处理,机器翻译等场景并取得了很好的行业应用效果.至今已有数种深度学习框架,如TensorFlow.Caffe.T ...

  4. 深度学习和Keras 简介

    随着近年来人工智能(AI)技术的大热,相信读者们对"人工智能""机器学习" 和"深度学习"这几个词汇已经耳熟能详.那么,这三者之间是什么关系 ...

  5. 深度学习 免费课程_深入学习深度学习,提供15项免费在线课程

    深度学习 免费课程 by David Venturi 大卫·文图里(David Venturi) 深入学习深度学习,提供15项免费在线课程 (Dive into Deep Learning with ...

  6. 深度强化元学习教程---元学习概述

    深度强化元学习是近期深度学习技术的一个另人瞩目的新兴领域,其利用元学习,解决了深度学习需要大数据集的问题,以及强化学习收敛慢的问题.同时元学习还可以适用于环境不断改变的应用场景,具有巨大的应用前景. ...

  7. 深度丨深度强化学习研究的短期悲观与长期乐观(长文)

    文章来源:机器之心 深度强化学习是最接近于通用人工智能(AGI)的范式之一.不幸的是,迄今为止这种方法还不能真正地奏效.在本文中,作者将为我们解释深度强化学习没有成功的原因,介绍成功的典型案例,并指出 ...

  8. 向深度学习三剑客学习四种科研精神(上)

    来源:陈德旺科学网博客 深度学习,尤其是深度神经网络学习算法的兴起和大数据的加持,结合GPU的算力,如同 "三英战吕布",终于搞定了人工智能这一反复无常的"吕布" ...

  9. reddit高赞资源:20h系统性深度学习强化学习课程,视频、PPT、代码全都有 | 免费...

    子豪 发自 凹非寺 量子位 报道 | 公众号 QbitAI 告别"拼图式"学习! 最近,一套深度学习和强化学习的免费课程在reddit上引起网友关注,获赞690+. 只因其不仅形式 ...

  10. 【原创】分享一些机器学习和深度学习的学习资料

    如果你还在苦苦寻找机器学习和深度学习入门资料的话,或许可以看看本文我的一些推荐,这些材料我自己都学过一遍,分享一下点评,希望对你有帮助.注意,本文只是点评这些资源,不提供任何资源的盗版下载,所有资源我 ...

最新文章

  1. JAVA多线程机制之死锁
  2. mysql5.7环境搭建_mysql5.7.13环境搭建教程(解压缩版)
  3. 进程间的通信IPC(无名管道和命名管道)
  4. 10个对Web开发者最有用的Python包
  5. 超链接href属性_如何使用标签上的HREF属性制作HTML超链接
  6. Gvim 字体大小设置和FencView插件安装
  7. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第12篇]椭圆曲线上的群理论是什么
  8. 合并相同数据的行_R语言笔记(六):数据框重塑(reshape2)
  9. IE或Chrome浏览器玩Xbox游戏能实现吗
  10. Redmine for windows 一键安装
  11. ubuntu安装sqoop1.4.7
  12. 完美使用application cache几点心得
  13. arcgis交通可达性分析步骤_【规划广角】街道慢行品质的多维度评价与导控策略——基于多源城市数据的整合分析...
  14. 白帽子讲Web安全(对看书之后的一点笔记)
  15. Java8与传统的日期和时间类详解
  16. github电脑壁纸_这可能是2020年最好的电脑壁纸软件推荐文章!
  17. 烂土豆(JuicyPotato)提权
  18. WMS(仓库管理系统)
  19. 初识人工智能AI(基本概念)
  20. python如何取消换行_python怎么取消换行

热门文章

  1. mac安装mysql后找不到_Mac安装MySQL步骤及遇到的问题
  2. 怎么快速生成gif动图?三步完成gif合成
  3. 35岁后失业,出路在哪里?
  4. 主机与Dynamips相连的折中解决方法
  5. AssetMark背后,是华泰的野心?还是TAMP的崛起?| 亿欧解案例
  6. Spring揭秘1:IOC容器、bean的生命周期
  7. 列合并:两列 或 多列 合并为 一列
  8. SPSS24-64bit安装教程以及解决“因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe ”的一些方法
  9. od重新下载与crackme005记录
  10. ntsd.exe病毒专杀--手工清除