CNN vs.RNN vs.ANN——浅析深度学习中的三种神经网络

2020-02-20 14:45:35 浏览数 (1)

文章概述

  • 检验三种不同类型的神经网络在深度学习中的应用
  • 了解何时使用哪种类型的神经网络来解决深度学习问题
  • 比较不同类型的神经网络

为什么是深度学习?

这是一个值得思考的问题。机器学习算法并不缺乏,那么为什么数据科学家会倾向于深度学习算法呢?神经网络提供了传统机器学习算法不具备的功能吗?

我看到的另一个常见问题是:神经网络需要大量的算力,所以它真的值得使用吗?虽然这个问题带有细微差别,但这里有一个简短的答案——是的!

在深度学习中,不同类型的神经网络,如卷积神经网络(CNN)、循环神经网络(RNN)、人工神经网络(ANN)等,正在改变我们与世界互动的方式。这些不同类型的神经网络是深度学习革命的核心,为无人机、自动驾驶汽车、语音识别等应用提供了源动力。

人们很自然地会怀疑——机器学习算法难道不能做到同样的效果吗?好吧,以下是研究人员和专家倾向于深度学习而非机器学习的两个关键原因:

  • 决策边界
  • 特征工程

好奇吗?很好-让我解释一下。

1.机器学习vs.深度学习:决策边界(Decision Boundary)

每种机器学习算法都从输入到输出中学习映射。对于参数化模型,该算法学习具有几组权重的函数:

Input -> f(w1,w2…..wn) -> Output

在分类问题中,算法学习分离两个类的函数,这就是所谓的决策边界。决策边界帮助我们确定给定的数据点是属于正类还是负类。

例如,在逻辑回归的情况下,学习函数是Sigmoid函数,它试图将两个类分开:

逻辑函数的决策边界逻辑函数的决策边界

可以看到,逻辑回归算法学习线性决策边界。它不能学习下图这样的非线性数据的决策边界。

非线性数据非线性数据

同样,每一种机器学习算法都不能学习所有的函数。这就限制了这些算法能够解决的涉及复杂关系的问题。

2. 机器学习vs.深度学习: 特征工程(Feature Engineering)

特征工程是建模过程中的关键步骤。这是一个分为两步的过程:

  • 特征提取
  • 特征选择

在特征提取中,提取问题陈述所需的所有特征。在特征选择中,选择能够提高机器学习或深度学习模型性能的重要特征。

想一个图像分类问题。从图像中手动提取特征需要对主题和领域有很强的了解。这是一个非常耗时的过程。多亏了深度学习,我们可以使特征工程的过程自动化!

机器学习与深度学习对比机器学习与深度学习对比

既然了解了深度学习的重要性以及它为什么超越了传统的机器学习算法,那么进入本文的重点。讨论不同类型的神经网络,一起解决深度学习问题。

深度学习中不同类型的神经网络

本文重点介绍了三种重要类型的神经网络,它们构成了深度学习中大多数预训练模型的基础:

  • 人工神经网络(ANN)
  • 卷积神经网络(CNN)
  • 循环神经网络(RNN)

让我们详细讨论一下每个神经网络。

人工神经网络 (ANN) – 什么是ANN以及为什么使用它?

单个感知器(或神经元)可以想象为逻辑回归。人工神经网络(ANN)是一组多层感知器/神经元。ANN也被称为前馈神经网络,因为输入只在正向处理:

ANNANN

ANN由3层组成:输入层、隐藏层和输出层。输入层接受输入,隐藏层处理输入,输出层生成结果。本质上,每一层都试图学习某些权重。

ANN可用于解决与以下相关的问题:

  • 表格数据
  • 图像数据
  • 文本数据

人工神经网络(ANN)的优势

人工神经网络能够学习任何非线性函数。因此,这些网络被普遍称为通用函数逼近器(Universal Function Approximators)。人工神经网络有能力学习将任何输入映射到输出的权重。

万能近似(universal approximation)的主要原因之一是激活函数。激活函数将非线性特性引入网络。这有助于网络学习输入和输出之间的任何复杂关系。

感知器感知器

如你所见,每个神经元的输出是输入加权和的激活。如果没有激活功能会怎么样?网络只学习线性函数,不能学习复杂的关系。这就是为什么:

激活函数是人工神经网络的动力!

人工神经网络 (ANN)面临的挑战

  • 在利用人工神经网络解决图像分类问题时,第一步是在训练模型之前将二维图像转换为一维向量。这有两个缺点:

随着图像尺寸的增加,可训练参数的数量急剧增加。

ANN: 图像分类ANN: 图像分类
反向传播反向传播

因此,对于一个非常深的神经网络(具有大量隐藏层的网络),梯度在向后传播时消失或爆炸,从而导致梯度消失和爆炸。

ANN无法在处理序列数据所需的输入数据中捕获序列信息。

现在来看看如何使用两种不同的架构来克服MLP的局限性:循环神经网络(RNN)和卷积神经网络(CNN)。

循环神经网络 (RNN) – 什么是RNN以及为什么使用它?

首先从架构的角度来理解RNN和ANN之间的区别:

ANN隐藏层上的循环约束变为RNN。

正如您所见,RNN在隐藏状态上有一个循环连接。此循环约束确保在输入数据中捕获顺序信息。

我们可以使用递归神经网络来解决以下相关问题:

  • 时间序列数据
  • 文本数据
  • 音频数据

循环神经网络(RNN)的优势

RNN捕获输入数据中的序列信息,即在进行预测时文本中单词之间的依赖关系:

Many2Many Seq2Seq模型Many2Many Seq2Seq模型

如您所见,每个时间步的输出(o1、o2、o3、o4)不仅取决于当前单词,而且还取决于前面的单词。

RNN在不同的时间段共享参数。这就是众所周知的参数共享。这样可以减少训练参数并降低计算成本。

 Unrolled RNN Unrolled RNN

如上图所示,3个权重矩阵-U、W、V是在所有时间步骤中共享的权重矩阵。

循环神经网络面临的挑战

深度RNNs(具有大量时间步长的RNNs)也存在梯度消失和爆炸的问题,这是所有不同类型神经网络中的常见问题。

消失梯度(RNN)消失梯度(RNN)

如您所见,在最后一个时间步计算的梯度在到达初始时间步时消失。

卷积神经网络 (CNN) –什么是CNN 以及为什么使用它?

卷积神经网络(CNN)目前在深度学习领域非常流行。这些CNN模型正被用于不同的应用和领域,它们在图像和视频处理项目中特别流行。

CNN的构造块是被称为kernels的过滤器。核函数用于通过卷积运算从输入中提取相关特征。让我们试着理解使用图像作为输入数据的过滤器的重要性。使用过滤器卷积图像会生成特征映射:

卷积的输出卷积的输出

虽然卷积神经网络被用来解决与图像数据相关的问题,但它们在顺序输入上也有着令人印象深刻的表现。

卷积神经网络(CNN)的优势

CNN会自动学习过滤器,而不会明确提及。这些过滤器有助于从输入数据中提取正确的和相关的特征。

CNN-图像分类CNN-图像分类

CNN从图像中捕捉空间特征。空间特征是指图像中像素的排列及其相互关系。它们帮助我们准确地识别物体,物体的位置,以及它与图像中其他物体的关系。

在上面的图像中,我们可以通过观察眼睛、鼻子、嘴巴等特定的特征,很容易地识别出它是一个人的脸。我们还可以看到这些特定的特征是如何在图像中排列的。这正是CNN能够捕捉到的。

CNN也遵循参数共享的概念。将单个过滤器应用于输入的不同部分以生成特征图:

具有过滤器的卷积图像具有过滤器的卷积图像

请注意,2*2特征图是通过在图像的不同部分滑动相同的3*3过滤器生成的。

比较不同的神经网络类型(MLP(ANN) vs. RNN vs. CNN)

这里,我总结了不同类型神经网络之间的一些差异:

尾注

本文介绍额深度学习的重要性以及不同类型神经网络之间的差异。知识分享是一种美德,欢迎大家进行评论。

参考来源:https://www.analyticsvidhya.com/blog/2020/02/cnn-vs-rnn-vs-mlp-analyzing-3-types-of-neural-networks-in-deep-learning/

0 人点赞