问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

多层感知器+卷积神经网络(CNN)

创作时间:
作者:
@小白创作中心

多层感知器+卷积神经网络(CNN)

引用
CSDN
1.
https://blog.csdn.net/wpp_only/article/details/139661428

神经网络是人工智能领域的核心技术之一,其中多层感知器(MLP)和卷积神经网络(CNN)是最常见的两种神经网络模型。本文将详细介绍这两种模型的基本原理和关键组件,帮助读者建立对神经网络的初步理解。

一、多层感知器

1.1 感知器

感知器(Perceptron)是一个简单的神经网络模型,它是所有神经网络的基础。感知器主要由全连接层组成,其基本结构如下图所示:

1.2 多层感知器

多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network)。与单层感知器不同,MLP可以包含多个隐藏层,最简单的MLP只含一个隐层,即三层的结构,如下图所示:

多层感知机层与层之间是全连接的。多层感知机最底层是输入层,中间是隐藏层,最后是输出层。

1.3 激活函数

激活函数(Activation Function)在人工神经网络中扮演着重要的角色,它帮助网络学习数据中的复杂模式。通过引入非线性关系,激活函数使得神经网络能够处理复杂的问题,特别是那些非线性可分的问题。

常见的激活函数包括sigmoid、tanh和ReLU等。

1.3.1 sigmoid函数

sigmoid函数常被用作神经网络的激活函数,将变量映射到0和1之间。sigmoid函数可以将一个实数映射到(0,1)的区间,因此它也可以用来做二分类。

sigmoid函数也存在一些缺点:

  1. 当输入值趋于正无穷或负无穷时,梯度会趋近零,从而发生梯度弥散现象,导致在网络中难以训练,尤其在深度网络中。
  2. sigmoid函数的输出恒为正值,不是以零为中心的,这会导致权值更新时只能朝一个方向更新,从而影响收敛速度。
  3. sigmoid函数的计算量较大,计算成本高昂,可能导致计算机运行速度较慢。

1.3.2 tanh函数

与sigmoid函数相比,tanh函数的值域为(-1,1),这使得它在实际应用中往往比sigmoid函数表现更好。然而,tanh函数在深度神经网络中仍然可能存在梯度消失的问题。

1.3.3 ReLU函数

ReLU函数具有多个优点:

  1. 计算效率:ReLU函数具有非常简单的数学形式,因此计算速度非常快。
  2. 稀疏性:ReLU函数可以将输入值映射到零,使得神经网络中的某些神经元在训练过程中变为非激活状态。
  3. 缓解梯度消失问题:与sigmoid和tanh函数相比,ReLU函数在正值区域具有恒定的梯度(即梯度为1),这有助于缓解深度神经网络中的梯度消失问题。

然而,ReLU函数也存在一些缺点:

  1. Dead ReLU问题:由于ReLU函数在输入为负时输出为零,如果某些神经元在训练过程中的梯度始终为零,这些神经元将永远不会被激活,从而导致网络性能下降。
  2. 无界性:ReLU函数的输出是无界的,这可能导致某些神经元的输出值非常大,从而影响网络的稳定性。

为了解决ReLU函数存在的问题,研究者们提出了多种改进版本的ReLU函数,如Leaky ReLU、PReLU、ELU等。这些函数通过引入一个小的非零梯度值或在负值区域使用其他形式的激活函数来缓解Dead ReLU问题,并提高模型的性能。

Leaky ReLU通过在输入为负时引入一个小的非零斜率来避免“死亡ReLU”问题。与ReLU相比,Leaky ReLU的计算复杂度并没有显著增加,因此它仍然能够保持较高的计算效率。

二、卷积神经网络(CNN)

2.1 卷积神经网络基础

卷积神经网络的基本结构包括输入层、卷积层、池化层、全连接层和输出层。

  • 输入层:输入信息
  • 卷积层:卷积神经网络的核心,提取图像的特征。
  • 池化层:主要用于降低特征图的空间分辨率,防止过拟合,将数据维度减小,提取出最显著的特征。
  • 全连接层:将池化层输出的特征映射连接起来,汇总卷积层和池化层得到的图像的底层特征和信息。
  • 输出层:根据全连接层的信息得到概率最大的结果

2.2 卷积神经网络结构

2.2.1 输入层

在卷积神经网络中,输入层是网络的起始点,负责接收原始数据,如图像或语音等,并将其转换为网络可以处理的形式。

输入层通常会对原始数据进行一些预处理操作。对于图像数据,包括去均值、归一化等步骤。这些预处理操作有助于提升网络的训练效果和性能。 此外,输入层还需要确保输入数据具有统一的格式和大小,以便后续卷积层能够正确处理。

2.2.2 卷积层

卷积层是CNN最重要的部分。它与传统全连接层不同,卷积层中每一个节点的输入只是上一层神经网络的一小块。卷积层被称为过滤器(filter)或者内核(kernel),Tensorflow的官方文档中称这个部分为过滤器(filter)。

卷积过程:

2.2.3 池化层

池化层不会改变三维矩阵的深度,但是它可以缩小矩阵的大小。通过池化层,可以进一步缩小最后全连接层中节点的个数,从而达到减少整个神经网络参数的目的。使用池化层既可以加快计算速度也可以防止过拟合。池化层filter的计算不是节点的加权和,而是采用最大值或者平均值计算。使用最大值操作的池化层被称之为最大池化层(max pooling)(最大池化层是使用的最多的磁化层结构)。使用平均值操作的池化层被称之为平均池化层(mean pooling)。

下图分别表示最大池化层、平均池化层:

  • 最大池化

顾名思义,最大池化就是每次取正方形中所有值的最大值,这个最大值也就相当于当前位置最具有代表性的特征,这个过程如下所示:

  • 平均池化

平均池化就是取此正方形区域中所有值的平均值,考虑到每个位置的值对于此处特征的影响,平均池化计算也比较简单,整个过程如下图所示:

2.2.4 全连接层

在经过多轮卷积层和池化层的处理之后,最后一般会由1到2个全连接层来给出最后的分类结果。经过几轮卷积层和池化层的处理之后,可以认为图像中的信息已经被抽象成了信息含量更高的特征。我们可以将卷积层和池化层看成自动图像特征提取的过程。在提取完成之后,仍然需要使用全连接层来完成分类任务。

2.2.5 输出层

卷积神经网络的输出层将全连接层得到的一维向量经过计算后得到识别值的一个概率,这个计算可能是线性的,也可能是非线性的。在深度学习中,我们需要识别的结果一般都是多分类的,所以每个位置都会有一个概率值,代表识别为当前值的概率,取最大的概率值,就是最终的识别结果。在训练的过程中,可以通过不断地调整参数值来使识别结果更准确,从而达到最高的模型准确率。

总结

以上就是本篇博客的全部内容了,由于本人水平有限,有错的地方还望读者指正,谢谢大家!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号