CNN、RNN、DNN区别

神经网络的来源

      神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),包含有输入层、输出层和一个隐藏层。输入的特征向量通过隐藏层变换到达输出层,由输出层得到分类结果。但早期的单层感知机存在一个严重的问题——它对稍微复杂一些的函数都无能为力(如异或操作)。直到上世纪八十年代才被Hition、Rumelhart等人发明的多层感知机克服,就是具有多层隐藏层的感知机。

      多层感知机可以摆脱早期离散传输函数的束缚,使用sigmoid或tanh等连续函数模拟神经元对激励的响应,在训练算法上则使用Werbos发明的反向传播BP算法。这就是现在所说的神经网络NN。

      神经网络的层数直接决定了它对现实的刻画能力——利用每层更少的神经元拟合更加复杂的函数。但问题出现了——随着神经网络层数的加深,优化函数越来越容易陷入局部最优解,并且这个“陷阱”越来越偏离真正的全局最优。利用有限数据训练的深层网络,性能还不如较浅层网络。同时,另一个不可忽略的问题是随着网络层数增加,“梯度消失”现象更加严重。(具体来说,我们常常使用sigmoid作为神经元的输入输出函数。对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25。层数一多,梯度指数衰减后低层基本上接受不到有效的训练信号。)

      2006年,Hition提出了深度学习的概念,引发了深度学习的热潮。具体是利用预训练的方式缓解了局部最优解的问题,将隐藏层增加到了7层,实现了真正意义上的“深度”。

DNN形成

    为了克服梯度消失,ReLU、maxout等传输函数代替了sigmoid,形成了如今DNN的基本形式。结构跟多层感知机一样,如下图所示:

       我们看到全连接DNN的结构里下层神经元和所有上层神经元都能够形成连接,从而导致参数数量膨胀。假设输入的是一幅像素为1K*1K的图像,隐含层有1M个节点,光这一层就有10^12个权重需要训练,这不仅容易过拟合,而且极容易陷入局部最优。

CNN形成

      由于图像中存在固有的局部模式(如人脸中的眼睛、鼻子、嘴巴等),所以将图像处理和神将网络结合引出卷积神经网络CNN。CNN是通过卷积核将上下层进行链接,同一个卷积核在所有图像中是共享的,图像通过卷积操作后仍然保留原先的位置关系。

       通过一个例子简单说明卷积神经网络的结构。假设我们需要识别一幅彩色图像,这幅图像具有四个通道ARGB(透明度和红绿蓝,对应了四幅相同大小的图像),假设卷积核大小为100*100,共使用100个卷积核w1到w100(从直觉来看,每个卷积核应该学习到不同的结构特征)。

       用w1在ARGB图像上进行卷积操作,可以得到隐含层的第一幅图像;这幅隐含层图像左上角第一个像素是四幅输入图像左上角100*100区域内像素的加权求和,以此类推。

同理,算上其他卷积核,隐含层对应100幅“图像”。每幅图像对是对原始图像中不同特征的响应。按照这样的结构继续传递下去。CNN中还有max-pooling等操作进一步提高鲁棒性。

      注意到最后一层实际上是一个全连接层,在这个例子里,我们注意到输入层到隐藏层的参数瞬间降低到了100*100*100=10^6个!这使得我们能够用已有的训练数据得到良好的模型。题主所说的适用于图像识别,正是由于CNN模型限制参数了个数并挖掘了局部结构的这个特点。顺着同样的思路,利用语音语谱结构中的局部信息,CNN照样能应用在语音识别中。

RNN形成

      DNN无法对时间序列上的变化进行建模。然而,样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要。为了适应这种需求,就出现了大家所说的另一种神经网络结构——循环神经网络RNN。雷锋网

      在普通的全连接网络或CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,因此又被成为前向神经网络(Feed-forward Neural Networks)。而在RNN中,神经元的输出可以在下一个时间段直接作用到自身,即第i层神经元在m时刻的输入,除了(i-1)层神经元在该时刻的输出外,还包括其自身在(m-1)时刻的输出!表示成图就是这样的:

为方便分析,按照时间段展开如下图所示:

(t+1)时刻网络的最终结果O(t+1)是该时刻输入和所有历史共同作用的结果!这就达到了对时间序列建模的目的。RNN可以看成一个在时间上传递的神经网络,它的深度是时间的长度!正如我们上面所说,“梯度消失”现象又要出现了,只不过这次发生在时间轴上

       所以RNN存在无法解决长时依赖的问题。为解决上述问题,提出了LSTM(长短时记忆单元),通过cell门开关实现时间上的记忆功能,并防止梯度消失,LSTM单元结构如下图所示:

      除了DNN、CNN、RNN、ResNet(深度残差)、LSTM之外,还有很多其他结构的神经网络。如因为在序列信号分析中,如果我能预知未来,对识别一定也是有所帮助的。因此就有了双向RNN、双向LSTM,同时利用历史和未来的信息

      事实上,不论是哪种网络,他们在实际应用中常常都混合着使用,比如CNN和RNN在上层输出之前往往会接上全连接层,很难说某个网络到底属于哪个类别。不难想象随着深度学习热度的延续,更灵活的组合方式、更多的网络结构将被发展出来。

参考链接:https://www.leiphone.com/news/201702/ZwcjmiJ45aW27ULB.html

简单总结如下:






  • 162
    点赞
  • 697
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
### 回答1: CNNRNNDNN和YOLO都是深度学习中的经典算法。 CNN是卷积神经网络,其通过卷积操作提取高级别的特征,并将其用于分类、定位和识别任务。相比于传统的机器学习算法,CNN在图像处理方面取得了巨大的成功,并被广泛应用于计算机视觉领域。 RNN是循环神经网络,其特点是能够处理序列数据,如自然语言和音频。通过在每个时刻上输入前一时刻的隐状态和当前输入,RNN能够捕捉到序列中的长期依赖性,从而在语言模型、机器翻译等任务上取得了卓越的成果。 DNN是深度神经网络,其层数往往比传统的神经网络更深,可以提取更复杂的特征。DNN可以作为CNNRNN的基础结构,也可以在自然语言处理、音频处理、图像识别等领域中独立应用。 YOLO是目标检测算法,其全称为You Only Look Once。相比于传统的目标检测算法,YOLO具备高速度和较好的准确率,可实现实时的目标检测。其原理基于CNN网络,在输入图像的同时,预测图像中所有目标的位置、大小和类别。 总之,这四种算法都是深度学习领域的重要算法,各自在不同领域中表现出色,并被广泛应用于实际场景中。 ### 回答2: CNNRNNDNN、YOLO 都是深度学习领域比较常见的模型或算法,以下逐一进行介绍。 1. CNN(卷积神经网络CNN 是深度学习中最常用的模型之一。它主要用于图像识别、语音识别、自然语言处理等领域。CNN 的基本特点就是卷积和池化操作,通过卷积来提取图像中的特征和纹理,通过池化来减小特征图的尺寸,最终得到一个全局的特征表达。实现 CNN 的方式有很多,常见的有 AlexNet、VGG、ResNet 等。 2. RNN(循环神经网络RNN 可以解决序列数据的建模问题,比如语音、文本、时间序列等。RNN 的基本结构就是一个循环单元,它可以传递信息到下一时刻,并且可以保留之前的状态。 RNN 的缺点是很难处理长期依赖关系,因为随着时间的推移,网络后面的信息会依赖于前面的信息,这会导致梯度消失或梯度爆炸。实现 RNN 的方式有很多,常见的有 LSTM、GRU 等。 3. DNN(深度神经网络DNN 是一种深度学习模型,它主要用于分类、回归、生成等领域。DNN 的基本结构就是多层神经元堆叠在一起。通过多个隐藏层,DNN 可以学习到更高层次的特征表示,并且在训练过程中通过反向传播算法来优化权重和偏置。实现 DNN 的方式有很多,常见的有 MLP、LeNet、AlexNet、VGG、ResNet 等。 4. YOLO(You Only Look Once) YOLO 是一种目标检测算法,它可以识别图像中的物体并定位它们的位置。与传统的目标检测算法相比,YOLO 速度较快,因为它只需要一次前向传播就可以得出结果。YOLO 的基本思想就是在输入图像的同时,在全局范围内进行特征提取和物体检测。最后通过非极大值抑制等处理来过滤掉重复检测。 YOLO 的最新版本是 YOLOv5。 总之,CNNRNNDNN、YOLO 都是深度学习领域常见的模型或算法。它们各自有着不同的应用领域和实现方法,但都可以用于解决复杂的数据建模和预测问题。随着科技和计算能力的不断发展,相信这些模型和算法会不断得到改进和优化,为人工智能技术的发展做出更大的贡献。 ### 回答3: cnn,即卷积神经网络,是一种高效的神经网络模型,其主要用于图像和视频处理方面。卷积神经网络具有很好的特征提取能力,可以提取图像中的空间信息,并输入到下一层进行分类、检测等。 rnn,即循环神经网络,是一种特殊的神经网络,其主要用于序列数据的处理,比如语音识别、自然语言处理等。循环神经网络通过循环反馈机制,能够处理长时序列的数据,并记住之前的历史信息。它具有记忆能力,可以帮助我们更好地理解和处理序列数据。 dnn,即深度神经网络,是一种多层次的神经网络,其主要用于复杂数据的处理。深度神经网络是在传统神经网络基础上发展的,具有更好的精度和更高的泛化能力。它可以学习到更深层次的特征,从而提高机器学习的效果。 yolo,即You Only Look Once,是一种目标检测算法。它可以在一张图像中同时检测多个目标,并输出其类别、位置和大小等信息。YOLO算法具有很高的准确度和速度,适用于实时目标检测等领域。 以上四种算法是深度学习中常见的的算法之一。它们分别应用在图像处理、序列数据处理、复杂数据处理和目标检测等领域中。随着人工智能的发展,这些算法将有更广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值