1. 神经网络
在神经网络中,每个神经元都有一个与之关联的权重和偏置,它们用于计算神经元的输出值。神经元接收来自上一层神经元的输入,并将这些输入与权重相乘并加上偏置,然后通过激活函数进行非线性处理,最终产生输出值。
- 输入层(Input Layer):输入层是神经网络接收外部输入数据的地方。每个输入层节点代表输入数据的一个特征或属性。例如,对于图像分类任务,每个输入节点可以表示图像中的像素值。
- 隐藏层(Hidden Layers):隐藏层位于输入层和输出层之间,用于处理输入数据并提取特征。神经网络可以有一个或多个隐藏层,这取决于网络的复杂程度。每个隐藏层由多个神经元(节点)组成,每个神经元接受来自前一层的输入,并通过权重和激活函数处理输入。
- 输出层(Output Layer):输出层是神经网路产生结果的地方。每个输出节点对应于网络的一个输出类别或预测结果。例如,在图像分类任务中,每个输出节点可以表示一种可能的类别。
2. 卷积神经网络(CNN)
与传统神经网络区别:
卷积层(Convolutional Layer):在卷积层中,有一组可学习的滤波器(也称为卷积核),每个滤波器都是一个小的二维矩阵。这些滤波器通过对输入数据进行卷积操作,可以提取出不同的特征。卷积操作是通过将滤波器与输入数据的局部区域进行逐元素相乘,并将结果相加得到特征图的过程。
卷积层的主要功能包括:
-
特征提取:通过对输入数据进行卷积操作,提取出不同的特征,如边缘、纹理等。
-
参数共享:卷积层中的每个滤波器都使用相同的权重参数对输入数据进行卷积操作,从而减少了参数数量,降低了模型复杂度。
-
平移不变性:卷积操作具有平移不变性,即无论物体在图像中的位置如何变化,卷积操作都能够识别出相同的特征。
通过堆叠多个卷积层,神经网络可以逐渐提取出越来越抽象和高级的特征,从而实现对复杂数据的表征和分类。卷积层的引入极大地提升了神经网络在图像处理等领域的性能和应用范围。
其中W1、H1表示输入的宽度、长度;W2、H2表示输出特征图的宽度、长度;
F表示卷积核长和宽的大小;S表示滑动窗口的步长;P表示边界填充(加几圈0)。
池化层(Pooling Layer):池化层是卷积神经网络(CNN)中的一个重要组成部分,用于减少数据维度并保留最显著的特征。它通常紧跟在卷积层之后,有助于提高网络的计算效率和泛化能力。
池化层的主要功能包括:
- 下采样:池化层通过将输入数据进行下采样,即减少数据的尺寸和维度。这样可以大幅降低网络的参数量,减少计算复杂度,并提高模型训练和推理的效率。
- 特征选择:通过池化操作,池化层会选择输入数据中最显著的特征,并保留其相对位置关系。这有助于提取出最重要的特征,并且使得网络具有一定程度的平移不变性和局部不变性。
- 降噪:在某些情况下,池化层可以帮助降低输入数据中的噪声和冗余信息,提高模型的鲁棒性和泛化能力。
常见的池化操作包括最大池化和平均池化。最大池化从输入数据的局部区域中选择最大值作为输出,而平均池化则计算输入数据局部区域的平均值作为输出。最大池化更常用,因为它能够更好地保留输入数据的显著特征。
通过交替堆叠多个卷积层和池化层,CNN能够逐渐提取出抽象和高级的特征,并在全连接层中进行进一步的处理和分类。池化层的引入不仅有效地减少了计算量,还有助于提高网络对位置和尺度变化的鲁棒性,使得CNN在图像处理、物体识别等任务中表现出色。
全连接(Fully Connected Layer):全连接层也称为密集连接层或输出层,是神经网络中的一种常见层类型。它通常位于卷积层和池化层之后,负责将前面层的特征进行扁平化并与权重进行全连接操作。
在全连接层中,每个神经元都与前一层的所有神经元相连。这意味着每个神经元都接收来自前一层所有神经元的输入,并通过权重进行处理。全连接层的每个神经元都有其独立的权重参数,这些参数将在训练过程中进行学习和更新。
全连接层的主要功能包括:
- 特征组合:全连接层能够将前面层提取到的特征进行组合和整合,从而得到更高级别的表征。这有助于网络对输入数据进行更复杂、更抽象的分析和理解。
- 分类和预测:全连接层是神经网络的最后一层,通常用于进行分类、预测或输出。它将前面层的特征映射到最终的输出类别或数值。
在深度学习任务中,通常会将全连接层放置在卷积层和池化层之后,构成一个典型的卷积神经网络(CNN)结构。全连接层的引入可以增加网络的灵活性和表达能力,使其能够适应各种复杂的任务,并进行准确的分类和预测。然而,随着网络层数的增加,全连接层的参数量也会大幅增加,导致计算量增加和过拟合的风险,因此需要适当的正则化和优化策略来处理。
神经网络层数 = CONV + FC