一文带你了解(神经网络)DNN、CNN、和RNN

今日头条

1097人已加入

描述

导语:

记得前些年在买火车票时,还得玩个“大家来找茬”的验证码游戏,比如让你找出孙楠、杨臣刚、王大冶中的某一位,这对于那些脸盲患者而言,无疑是崩溃的。


当然了,撞脸这事可不是娱乐圈独有的,在AI界也有很多“长相相似”的专有名词,比如我们今天要说的“三胞胎”DNN(深度神经网络)、CNN(卷积神经网络)、RNN(递归神经网络),就让许许多多的AI初学者们傻傻分不清楚。


而今天,就让我们一起擦亮眼睛,好好的把它们给区分出来!



什么是神经网络?


DNN(深度神经网络)、CNN(卷积神经网络)、RNN(递归神经网络)都属于第三代神经网络,在认识它们之前,让我们简单了解下,第一代和第二代神经网络是什么样子的。


第一代神经网络又称为感知机,在上世纪五、六十年代被提出来,感知机属于二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别(取+1和-1),即只能做到线性的区分工作(一分为二),不能解决重叠不可分的问题,对稍微复杂一些的函数就无能为力。


为了解决第一代神经网络的缺陷,在1980年左右Rumelhart、Williams、Hinton、LeCun等人提出第二代神经网络多层感知器(MLP)。MLP可以看成一个输入层由学习到的非线性转化phi进行转化的逻辑回归分类器。这种转化将输入数据投影到线性可分空间,这个中间层被称为隐藏层。


第二代神经网络让科学家们发现神经网络的层数直接决定了它对现实的表达能力,但是随着层数的增加,优化函数愈发容易出现局部最优解的现象,由于存在梯度消失的问题(在神经网络中,随着隐藏层数目的增加,分类准确率反而会降低的现象,被称为消失的梯度问题),深层网络往往难以训练,效果还不如浅层网络。


2006年,Hinton利用预训练方法缓解了梯度消失的问题,使得深度神经网络变得可训练,将隐含层发展到7层,神经网络真正意义上有了“深度”,由此揭开了深度学习的浪潮,第三代神经网络开始正式兴起。


第三代深度神经网络最常用的三大算法


DNN:深度神经网络


从结构上来说,DNN和传统意义上的NN(神经网络)并无太大区别,最大的不同是层数增多了,并解决了模型可训练的问题。


简言之,DNN比NN多了一些隐层,但这些隐层的作用是巨大的,带来的效果是非常显著和神奇的。


DNN中的“deep”意为深度,但深度学习中深度没有固定的定义或者衡量标准,不同问题的解决所需要的隐含层数自然也是不相同的,就大家比较熟识的语音识别来说,解决问题可能4层就够了,但一般图像识别需要达到20多层才能够解决问题。


DNN最大的问题是只能看到预先设定长度的数据,对于语音和语言等前后相关的时序信号的表达能力还是有限的。


CNN:卷积神经网络


卷积神经网络主要是模拟人的视觉神经系统提出来的。


以CNN做人脸识别任务为例,先得到一些像素信息,再往上层得到一些边界信息,然后再往上提取就是一些人脸的部件信息,包括眼睛、耳朵、眉毛嘴巴等,最后是人脸识别,这整个过程和人的视觉神经系统是非常相似的。


对于CNN来说,并不是所有上下层神经单元都直接相连,而是通过“卷积核”作为中介。同一个卷积核在所有图像内是共享的,图像通过卷积操作后仍然保留原有的位置关系。


每次卷积操作就会产生多个通道的“图像”,每幅“图像”都是对原始图像不同特征的响应,并按照这样的结构继续传递下去。


RNN:递归神经网络


在普通的全连接神经网络或卷积神经网络中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,无法对时间序列上的变化进行建模。然而,样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要,为了应对这种需求,业内提出了递归神经网络RNN。


在RNN中,神经元的输出可以在下一时间段直接作用到本身。换句话说,就是递归神经网络的隐层不但可以接收到上一层的输入,也可以得到上一时刻当前隐层的输入。


这一个变化的重要意义就在于使得神经网络具备了历史记忆的功能,原则上它可以看到无穷长的历史信息,这非常适合于像语音语言这种具有长时相关性的任务。


结语:


相信看到这里大家应该对DNN、CNN、RNN有了一个大致的了解。虽然他们各有特点,各有不同,但他们在实际应用中常常都是混合使用的。值得期待的是,随着人工智能的不断发展,更多的神经网络结构将被发展应用起来!


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分