作者丨ARAVIND PAI
出品 | AI科技大本营(ID:rgznai100)
这个问题很有意义。机器学习算法并没有什么不足之处,那么为什么数据科学家要选择深度学习算法呢?神经网路能够提供给我们哪些传统机器学习提供不了的功能呢?
我还常常会见到另一个问题——神经网络需要强大的计算能力,那么当问题中只是存在一些细微差别时,使用神经网络真的值得吗?问题的答案很简单——值得!
深度学习中不同的神经网络(如卷积神经网络CNN、循环神经网络RNN、人工神经网络ANN)正在改变着我们与世界之间的交互方式。这些不同类型的神经网络是深度学习革命的核心,为无人机、自动驾驶汽车、语音识别等应用提供了推动力。
人们自然会联想到——机器学习算法难道不能做到吗?以下是研究人员和专家们倾向于选用深度学习而非机器学习的两个关键原因:
每种机器学习算法都会学习从输入到输出的映射。换句话说,该算法会学习一个仅有几组权重的函数:
Input -> f(w1,w2…..wn) -> Output
在分类问题中,算法将学习将两种类别分开的函数——这被称为决策边界(Decision boundary)。决策边界能够帮助我们确定给定数据点属于正向类还是负向类。
例如,在逻辑回归的情况下,学习函数就是一个试图将两种类别分开的Sigmoid函数。
如上图所示,逻辑回归算法要学习线性决策边界。它不能学习下图这种非线性数据的决策边界:
非线性数据
同样,一种机器学习算法是无法学习所有函数的。这就限制了算法能够解决的有关复杂关系的问题。
特征工程是模型构建过程中的关键步骤。此过程分为两步:
1. 特征提取(Feature extraction)
2. 特征选择(Feature selection)
在特征提取中,我们提取问题陈述中所需的所有特征;在特征选择中,我们选择能够提高机器学习或深度学习模型性能的重要特征。
想一想图像分类问题。要从图像中手动提取特征的话,就要对该主题和领域有深入的了解。这是一个及其耗时的过程。有了深度学习,我们就可以实现特征工程自动化了!
既然我们已经了解了深度学习的重要性,以及它为何能超越传统的机器学习算法,那么接下来就让我们进入本文的关键部分。我们将讨论在解决深度学习问题时会用到的不同类型的神经网络。
本文将重点讨论3种重要类型的神经网络,它们构成了深度学习中大多数预训练模型的基础:
多层感知器Multi-Layer Perceptron (MLP) / 人工神经网络Artificial Neural Networks (ANN)
卷积神经网络Convolution Neural Networks (CNN)
循环神经网络Recurrent Neural Networks (RNN)
下面让我们详细了解一下这几种神经网络吧!
单个感知器(或神经元)可以被想象成逻辑回归。多层感知器(MLP),是每一层上的一组多个感知器。因为输入仅单方向地向前处理,所以MLP也被称为前馈神经网络( Feed-Forward Neural network):
如图所示,MLP由三层组成——输入层、隐藏层和输出层。输入层仅接收输入,隐藏层处理输入,输出层生成结果。基本上,每一层都要训练权值。
多层感知器能够学习任意非线性函数。因此,这些网络被普遍称为通用函数逼近器(Universal Function Approximator)。MLP能够学习将任何输入映射到输出的权重。
通用逼近背后的主要原因之一是激活函数(activation function)。激活函数将非线性特征引入网络中,有助于网络学习输入和输出之间的复杂关系。
感知器(点击查看动图)
如图所示,每个神经元的输出都是输入加权和的激活。但是,如果没有激活函数会怎样呢?该网络仅学习线性函数,但不学习复杂关系,原因是:激活函数是多层感知器的核心!
-
在利用MLP解决图像分类问题时,首先要将二维图像转换成一维向量,然后再对模型进行训练。这样做有两个缺点:
(1)随着图像尺寸的增大,可训练参数的数量会急剧增加。
MLP:图像分类
在上述情况下,如果图像的大小为224*224,那么在只有4个神经元的第一个隐藏层中的可训练参数就是602112,这可不是个小数目!
(2)MLP会丢失图像的空间特征。空间特征指的是图像中像素的排列。我会在以下几节中详细讨论这一问题。
-
在所有这些神经网络中,存在一个共同问题:梯度消失与爆炸(Vanishing and Exploding Gradient)。此问题与反向传播(backpropagation)算法有关。反向传播算法通过寻找梯度来更新神经网络的权值。
因此,在非常深的神经网络(具有大量隐藏层的网络)中,梯度会随着向后传播而消失或爆炸,从而导致梯度消失与爆炸(Vanishing and Exploding Gradient)。
-
MLP无法捕获处理序列数据所需的输入数据中的顺序信息。
现在,让我们来看看如何通过两种不同的架构——循环神经网络(RNN)和卷积神经网络(CNN)来克服MLP的局限性。
我们先从架构角度了解一下RNN和MLP之间的区别:
如上图所示,RNN在隐藏状态上有一个循环连接,此循环约束能够确保在输入数据中捕捉到顺序信息。
-
RNN能够捕捉数据中出现的顺序信息,例如,预测时文本中单词之间的依赖关系:
如图所示,每个时间步长的输出(o1, o2, o3, o4)不仅取决于当前单词,还取决于先前的单词。
-
RNN跨不同的时间步长共享参数。这通常被称为参数共享(Parameter Sharing)。这将减少训练参数并降低计算成本。
展开的RNN
如上图所示,U、W、V 这3个权值矩阵是所有时间步长中共享的权值矩阵。
深度RNN(具有大量时间步长的RNN)也存在梯度消失和爆炸问题,这是在所有不同类型神经网络中常见的问题。
梯度消失(RNN)
如图所示,在最后一个时间步长处计算的梯度在到达初始时间步长时消失。
卷积神经网络(CNN)
卷积神经网络(CNN)目前在深度学习领域非常热门。这些CNN模型被应用于不同的应用和领域,在图像和视频处理项目中尤其普遍。
CNN的构建块是过滤器,也就是内核。内核的作用是利用卷积运算从输入中提取相关特征。我们可以试着了解一下使用图像作为输入数据的过滤器的重要性。将图像与过滤器进行卷积会生成一个特征图(feature map):
尽管引入卷积神经网络的初衷是要解决与图像数据相关的问题,但它们在顺序输入上的表现也十分出色。
-
CNN能够自动学习过滤器。这些过滤器有助于从输入数据中提取正确的相关特征。
CNN从图像中捕捉空间特征(spatial features)。空间特征指的是像素在图像中的排列以及它们之间的关系。它们能够帮助我们准确地识别物体、物体位置、以及它与图像中其他物体的关系。
在上面的图像中,我们可以通过查看特定的特征(例如眼睛、鼻子、嘴巴等)轻松识别出图像是一张人脸。我们还可以看到这些特征在图像中的排列方式。这正是CNN能够捕捉的内容。
在本文中,我们讨论了深度学习的重要性,并了解了不同类型的神经网络间的差异。我一直相信知识共享才是学习的最终形式,因此我也期待听到更多来自你们的不同的声音!欢迎评论区与我们分享你的看法!
原文:
https://www.analyticsvidhya.com/blog/2020/02/cnn-vs-rnn-vs-mlp-analyzing-3-types-of-neural-networks-in-deep-learning
本文为 CSDN 翻译,转载请注明来源出处。
CSDNx巨杉大学联合认证学习,免费开放!
“分布式数据库集训营”帮助您
从零开始
学习分布式数据库、分布式架构知识,现在加入活动,完成课程还将专属礼品。
快来参加吧~
☞
Facebook最新研究:
无需额外训练AI,即可加速NLP任务