【深度学习】深度学习简介「建议收藏」

【深度学习】深度学习简介「建议收藏」概述深度学习(DeepLearning)是利用多层神经网络结构,从大数据中学习现实世界中各类事物能直接用于计算机计算的表示形式(如图像中的事物、音频中的声音等),被认为是智能机器可能的“大脑结构”。Learning:让计算机自动调整函数参数以拟合想要的函数的过程。Deep:多个函数进行嵌套,构成一个多层神经网络,利用非监督贪心逐层训练算法调整有效地自动调整函数参数简单地说深度学习就是:使用多层神经_传统深度学习基于多层神经网络进行计算

概述


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

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

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

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

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


生物神经元的数学模型

生物神经元.png

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

人工神经元.png

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

【深度学习】深度学习简介「建议收藏」

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

人工神经元的激活函数

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

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

【深度学习】深度学习简介「建议收藏」

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

【深度学习】深度学习简介「建议收藏」

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

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


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

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

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

有监督参数学习


模型的评价

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

【深度学习】深度学习简介「建议收藏」

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

【深度学习】深度学习简介「建议收藏」

定义损失函数为

【深度学习】深度学习简介「建议收藏」

有监督学习

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

【深度学习】深度学习简介「建议收藏」

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

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

梯度下降法

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

【深度学习】深度学习简介「建议收藏」

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

后向传播算法计算梯度

多层前馈网络

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

【深度学习】深度学习简介「建议收藏」

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

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

【深度学习】深度学习简介「建议收藏」

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

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

非监督贪心逐层预训练


自动编码器

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

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

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

逐层预训练

逐层预训练.png

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

深度学习的训练方法


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

  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预估

参考文献书籍


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

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

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

今天的文章【深度学习】深度学习简介「建议收藏」分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/58185.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注