
神经网络基础结构
全连接层的引入可以增加网络的灵活性和表达能力,使其能够适应各种复杂的任务,并进行准确的分类和预测。然而,随着网络层数的增加,全连接层的参数量也会大幅增加,导致计算量增加和过拟合的风险,因此需要适当的正则化和优化策略来处理。通过交替堆叠多个卷积层和池化层,CNN能够逐渐提取出抽象和高级的特征,并在全连接层中进行进一步的处理和分类。:全连接层也称为密集连接层或输出层,是神经网络中的一种常见层类型。参数
1. 神经网络
在神经网络中,每个神经元都有一个与之关联的权重和偏置,它们用于计算神经元的输出值。神经元接收来自上一层神经元的输入,并将这些输入与权重相乘并加上偏置,然后通过激活函数进行非线性处理,最终产生输出值。
- 输入层(Input Layer):输入层是神经网络接收外部输入数据的地方。每个输入层节点代表输入数据的一个特征或属性。例如,对于图像分类任务,每个输入节点可以表示图像中的像素值。
- 隐藏层(Hidden Layers):隐藏层位于输入层和输出层之间,用于处理输入数据并提取特征。神经网络可以有一个或多个隐藏层,这取决于网络的复杂程度。每个隐藏层由多个神经元(节点)组成,每个神经元接受来自前一层的输入,并通过权重和激活函数处理输入。
- 输出层(Output Layer):输出层是神经网路产生结果的地方。每个输出节点对应于网络的一个输出类别或预测结果。例如,在图像分类任务中,每个输出节点可以表示一种可能的类别。
2. 卷积神经网络(CNN)
与传统神经网络区别:
卷积层(Convolutional Layer):在卷积层中,有一组可学习的滤波器(也称为卷积核),每个滤波器都是一个小的二维矩阵。这些滤波器通过对输入数据进行卷积操作,可以提取出不同的特征。卷积操作是通过将滤波器与输入数据的局部区域进行逐元素相乘,并将结果相加得到特征图的过程。
卷积层的主要功能包括:
-
特征提取:通过对输入数据进行卷积操作,提取出不同的特征,如边缘、纹理等。
-
参数共享:卷积层中的每个滤波器都使用相同的权重参数对输入数据进行卷积操作,从而减少了参数数量,降低了模型复杂度。
-
平移不变性:卷积操作具有平移不变性,即无论物体在图像中的位置如何变化,卷积操作都能够识别出相同的特征。
通过堆叠多个卷积层,神经网络可以逐渐提取出越来越抽象和高级的特征,从而实现对复杂数据的表征和分类。卷积层的引入极大地提升了神经网络在图像处理等领域的性能和应用范围。
其中W1、H1表示输入的宽度、长度;W2、H2表示输出特征图的宽度、长度;
F表示卷积核长和宽的大小;S表示滑动窗口的步长;P表示边界填充(加几圈0)。
计算卷积特征是卷积神经网络(CNNs)的核心操作。卷积操作的目的是提取输入数据中的特征,这通常涉及将一个小的过滤器(卷积核)在输入数据上滑动,并进行点积运算。
- 输入数据:通常是二维或三维矩阵(例如图像)。
- 卷积核(过滤器):一个小的矩阵,通常尺寸为 k×k。
- 滑动操作:卷积核在输入数据上滑动,每次移动一个步长(stride)。
- 点积运算:卷积核的元素与输入数据对应位置的元素相乘并求和。
- 生成特征图:每个位置的点积结果构成输出的一个特征图。
池化层(Pooling Layer):池化层是卷积神经网络(CNN)中的一个重要组成部分,用于减少数据维度并保留最显著的特征。它通常紧跟在卷积层之后,有助于提高网络的计算效率和泛化能力。
池化层的主要功能包括:
- 下采样:池化层通过将输入数据进行下采样,即减少数据的尺寸和维度。这样可以大幅降低网络的参数量,减少计算复杂度,并提高模型训练和推理的效率。
- 特征选择:通过池化操作,池化层会选择输入数据中最显著的特征,并保留其相对位置关系。这有助于提取出最重要的特征,并且使得网络具有一定程度的平移不变性和局部不变性。
- 降噪:在某些情况下,池化层可以帮助降低输入数据中的噪声和冗余信息,提高模型的鲁棒性和泛化能力。
常见的池化操作包括最大池化和平均池化。最大池化从输入数据的局部区域中选择最大值作为输出,而平均池化则计算输入数据局部区域的平均值作为输出。最大池化更常用,因为它能够更好地保留输入数据的显著特征。
通过交替堆叠多个卷积层和池化层,CNN能够逐渐提取出抽象和高级的特征,并在全连接层中进行进一步的处理和分类。池化层的引入不仅有效地减少了计算量,还有助于提高网络对位置和尺度变化的鲁棒性,使得CNN在图像处理、物体识别等任务中表现出色。
全连接(Fully Connected Layer):全连接层也称为密集连接层或输出层,是神经网络中的一种常见层类型。它通常位于卷积层和池化层之后,负责将前面层的特征进行扁平化并与权重进行全连接操作。
在全连接层中,每个神经元都与前一层的所有神经元相连。这意味着每个神经元都接收来自前一层所有神经元的输入,并通过权重进行处理。全连接层的每个神经元都有其独立的权重参数,这些参数将在训练过程中进行学习和更新。
全连接层的主要功能包括:
- 特征组合:全连接层能够将前面层提取到的特征进行组合和整合,从而得到更高级别的表征。这有助于网络对输入数据进行更复杂、更抽象的分析和理解。
- 分类和预测:全连接层是神经网络的最后一层,通常用于进行分类、预测或输出。它将前面层的特征映射到最终的输出类别或数值。
在深度学习任务中,通常会将全连接层放置在卷积层和池化层之后,构成一个典型的卷积神经网络(CNN)结构。全连接层的引入可以增加网络的灵活性和表达能力,使其能够适应各种复杂的任务,并进行准确的分类和预测。然而,随着网络层数的增加,全连接层的参数量也会大幅增加,导致计算量增加和过拟合的风险,因此需要适当的正则化和优化策略来处理。
神经网络层数 = CONV + FC
3. 残差网络(ResNet)
ResNet是一种深度神经网络架构,由何凯明等人在2015年提出,旨在解决深层神经网络中常见的梯度消失和梯度爆炸问题。ResNet通过引入残差模块(Residual Block),使得深层网络更容易训练,并且能够有效地增加网络的深度,从而提高模型的性能。
- 输入层:通常是一个7x7的卷积层,步幅为2,后接最大池化层,提取初步特征。
- 残杀块(Residual Block):每个残差块包括多个卷积层(通常是2个或3个),每个卷积层后面跟着批归一化(Batch Normalization)和 ReLU 函数。最后的卷积层输出和输入层通过跳跃直接相加。这一加法操作后,输出经过 ReLU 激活。
- 跳跃连接(Shortcut Connection):跳跃连接将残差块输入直接传递到输出层,与卷积层输出相加。在 ResNet 的初始版本中,跳跃连接通常是恒等映射(直接连接)。在某些情况下(例如,当输入输出尺寸不匹配时),跳跃连接会包含一个1x1的卷积操作来调整维度。
- 重复堆叠:多个残差块堆叠在一起,形成更深的网络结构。
- 全局平均池化层:在最后一个残差快之后,网络通常包含一个全局平均池化层,减少参数数量。
- 全连接层和输出层:全局平均池化层的输出连接到一个全连接层,用于分类任务的最终预测。
4. 感受野(Receptive Field)
指的是输出特征图上某个位置的神经元对应输入图像的区域。简单来说,感受野描述了网络中某个神经元能够“看到”输入图像的范围。
在卷积神经网络中,每一层的感受野随着网络深度的增加而增大。卷积层、池化层、和步长(stride)都会影响感受野的大小
- 初始感受野:输入图像的感受野为自身大小。
- 卷积层:如果卷积核大小为 k×k,步长为 s,则输出特征图每个位置的感受野会增加 (k−1)×s。新感受野大小 = 旧感受野大小 + (卷积核大小 - 1) \times 步长。
- 池化层:池化层的计算类似于卷积层。如果池化窗口大小为 k×k,步长为 s,感受野增加 (k−1)×s。
5. 递归神经网络(RNN)
递归神经网络(Recurrent Neural Network)是一种专门处理序列数据的神经网络架构。RNN 通过在网络中引入循环(递归)连接,可以记住以前的输入信息,这使得它在处理时间序列数据或自然语言等具有顺序依赖性的任务时非常有效。
RNN 的基本原理:
- 时间步:RNN处理序列数据的每一个时间步,每个时间步都会产生一个隐藏状态,代表当前时间步的记忆。
- 隐藏状态:在每个时间步,RNN会根据当前输入和前一个时间步的隐藏状态来更新当前的隐藏状态。这种机制使得网络能够捕捉时间上的依赖关系。
- 递归连接:RNN的隐藏状态在时间步之间共享权重,通过递归公式进行更新。
更多推荐
所有评论(0)