DNN

作者: thqby | 来源:发表于2020-11-25 14:46 被阅读0次

本文将从以下几个方面介绍DNN:

1.DNN的产生背景

    神经网络技术起源于上世纪五、六十年代,当时叫感知机,拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。但是,单层感知机有一个严重的问题,即它对稍复杂的一些函数都无能为力,比如最典型的“异或”操作。随着数学的发展,这个缺点直到上世纪八十年代才被Rumelhart、Williams、Hinton、LeCun等人(反正就是一票大牛)发明的多层感知机(multilayer perceptron)克服。多层感知机,顾名思义,就是有多个隐含层的感知机。

    

  上图为盗图

    多层感知机可以摆脱早期离散传输函数的束缚,使用sigmoid或tanh等连续函数模拟神经元对激励的影响,在训练算法上则使用Werbos发明的反向传播BP算法。多层感知机解决了之前无法模拟异或逻辑的缺陷,同时更多的层数也让网络更能够刻画现实世界中的复杂情形。但是随着神经网络层数的加深,优化函数越来越容易陷入局部最优解。同时,另一个问题是随着网络层数的增加,“梯度消失”现象也很严重,具体说,我们常常使用sigmoid作为神经元的输入输出函数。对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25,层数多的时候,梯度指数衰减后低层基本上接收不到有效的训练信号。

浅层学习(Shallow Learning)和深度学习(Deep Learning)

    浅层学习是机器学习的第一次浪潮

    20世纪80年代末期,用于人工神经网络的反向传播算法(BP算法)的发明,给机器学习带来了希望,人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性。这个时候的人工神经网络,实际上只含有一层隐层节点的浅层模型。

    20世纪90年代,各种各样的浅层机器学习模型相对被提出,例如支持向量机(SVM)、Boosting、最大熵方法(LR)等。这些模型结构基本上可以看成是带有一层隐层节点(如SVM、Boosting),或者没有隐层节点(如LR)。这些模型无论在理论分析还是实际应用中都获得了巨大的成功。相比之下,由于理论分析的难度大,训练方法又需要很多经验和技巧,这个时期浅层人工神经网络相对沉寂。

    深度学习是机器学习的第二次浪潮

    2006年,加拿大多伦多大学教授,机器学习领域的泰斗Geoffrey Hinton 和他的学生RuslanSalakhutdinov在《科学》上发表了

一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章有两个重要观点:1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。

    当前多数分类、回归等学习方法为浅层结构算法,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。深度学习可以通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本几种学习数据集本质特征的能力。(多层的好处是可以用较少的参数表示复杂的函数)

    深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于:1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2)明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,跟能够刻画数据的丰富内在信息。

Deep learning 与 Neural Network

    深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模范人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种。

Deep learning 与传统的神经网络之间有相同的地方也有很多不同。

二者的相同在于deep learning 采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,每一层可以看作是一个logistic regression 模型;这种分层结构,是比较接近人类大脑的结构的。

2.DNN的特点

    2.1.深度学习

    2.2. 正向传播求解

    2.3. 反向传播训练

    2.4. 使用非线性激活函数模拟现实

    2.5. 容易梯度消失或梯度爆炸

3.DNN的网络模型

    

    上图为盗图

4.DNN的算法

    以上图的4层神经网络为例说明

    第1层,l=1:

    z^1= W^1*x+b^1

    a^1=\sigma (z^1 )

    第2层,l=2:

    z^2= W^2*a^1 +b^2

    a^2=\sigma (z^2 )

    第3层,l=3:

    z^3= W^3*a^2 +b^3

     a^3=\sigma (z^3 )

    第4层,l=4:

      z^4= W^4*a^3 +b^4

      a^4=\sigma (z^4 )

    如果有m个训练样本,其向量化矩阵形式为: 

     第1层,l=1:

    Z^1= W^1*X+b^1 = W^1*A^0 +b^1

    A^1=\sigma (Z^1 )

    第2层,l=2:

    Z^2= W^2*A^1 +b^2

    A^2=\sigma (Z^2)

....

 第m层,l=m:

     Z^m= W^m*A^(m-1) +b^2

      A^m=\sigma (Z^m)

上图为盗图,描述了正向传播和反向传播的公式。

5.DNN的应用场景

    

6.参考文献

    https://blog.csdn.net/weixin_41988628/article/details/80369795

相关文章

  • DNNs & Papers in kaldi

    出处:http://kaldi-asr.org/doc/dnn.html Karel's DNN implemen...

  • DNN 和 CNN的反向传播

    DNN的反向传播 在学习CNN的反向传播之前,先学习一个DNN(普通的全连接层的深度神经网络)的反向传播。 DNN...

  • DNN

    DNN算法的基本思想 多层感知器在如何获取隐层的权值的问题上遇到了瓶颈。既然我们无法直接得到隐层的权值,能否先通过...

  • DNN

    本文将从以下几个方面介绍DNN: 1.DNN的产生背景 神经网络技术起源于上世纪五、六十年代,当时叫感知机,拥...

  • 手推CNN,DNN算法流程和反向传播

    DNN 反向传播 DNN算法流程 卷积层反向传播 池化层反向传播 C NN算法流程

  • 卷积神经网络的反向传播

    1.DNN的反向传播 首先回顾深度神经网络(DNN)的反向传播 forward: Loss Function: b...

  • OpenCV DNN 模块-风格迁移

    本文主要介绍OpenCV的DNN模块的使用。OpenCV的DNN模块自从contrib仓库开始,就是只支持推理,不...

  • DNN正则化

    神经网络DNN的正则化

  • 什么是Seq2Seq模型

    本文首发于微信公众号:查叔笔录 前段在公司做YouTube Dnn模型的复现,然后想在YouTube DNN(De...

  • 【ML】Neural Network Verification

    Deep Neural Network(DNN) verification is a process of ver...

网友评论

      本文标题:DNN

      本文链接:https://www.haomeiwen.com/subject/pjpgiktx.html