Task3 批量归一化与卷积神经网络
3.7 批量归一化
批量归一化(Batch Normalization, BN):用于平滑误差表面,提升训练效果。
机制:对每个批量的数据进行归一化,计算均值 (\mu) 和标准差 (\sigma)。
公式:
z
i
=
z
i
−
μ
σ
(1)
\mathbf{z_i} = \frac{\mathbf{z_i} - \boldsymbol{\mu}}{\boldsymbol{\sigma}} \tag{1}
zi=σzi−μ(1)
在深度学习中,归一化后用
γ
\gamma
γ和
β
\beta
β进行缩放和平移:
z
^
i
=
γ
⋅
z
i
+
β
(2)
\mathbf{\hat{z}_i} = \gamma \cdot \mathbf{z_i} + \beta \tag{2}
z^i=γ⋅zi+β(2)
如此做的原因是,(1)式在深度网络中,对网络某一层A的输出数据做归一化,然后送入网络下一层B,送入B训练的数据之间“差距”太小,会影响层A习得的特征分布。故而用(2)式,引入了可学习参数
γ
\gamma
γ和
β
\beta
β。
优点:
- 这样得到的数据平均值是0,方差是1
- 可以选择比较大的初始学习率,加速网络收敛
- 提高泛化能力,减少正则化的参数选取
书中有言特征归一化。它代表了一类归一化的方法。上述是Z值归一化。
批量归一化形象过程如下:每一个蓝条都是一个批量,每一个橙色圈圈都是一个特征,以
x
i
r
x^r_{i}
xir的形式出现。其中
r
r
r是第
r
r
r个批量,
i
i
i是第
r
r
r个批量中第
i
i
i个特征。
特征归一化:是将数据的特征值调整到相似的范围,从而提高机器学习模型的训练效果和收敛速度。以下两种方法是最为常见的:
-
标准化(Z-score Normalization):
- 将数据调整为均值为 0,标准差为 1。
- 公式: x ′ = x − μ σ x' = \frac{x - \mu}{\sigma} x′=σx−μ
-
最小最大缩放(Min-Max Scaling):
- 将数据缩放到 [0, 1] 的范围。
- 公式: x ′ = x − x m i n x m a x − x m i n x' = \frac{x - x_{min}}{x_{max} - x_{min}} x′=xmax−xminx−xmin
另附:最小最大缩放方法可以用于熵权法或者Topsis方法进行评价。
其他归一化方法
-
层归一化(Layer Normalization):对每个神经网络层的输出进行归一化。
-
权重归一化(Weight Normalization):对每层的权重进行归一化。
-
谱归一化(Spectral Normalization):控制网络层的特征矩阵的谱范数。
4 卷积神经网络概述
卷积神经网络(CNN):常用于图像分类任务。它将输入图像作为三维张量(宽、高、通道)。
名词解释:
图像分类:给出一幅图像,由机器判断图像中的内容。
以我目前的知识推测,图像分类是结合了无监督学习的习得数据中的结构与有监督学习中习得输入与输出的映射,从而更好地分辨图像中的内容。
通道:目前网络上流传的彩色图像多数是RGB色彩模型编辑的。每个像素都由R,G,B三个颜色组成,从0到255各有区分。
在模型输入中,由于图像有大有小,所以必要的一步是在训练时候将所有的图像调整到统一的大小。
4.1 观察 1:检测模式不需要整张图像
参考模式识别:
对一个图像识别的类神经网络而言,神经元检测特定模式(如鸟嘴、眼睛)不需要整张图像,只需关注小范围内的特征。这模仿了人类在观察识别一个物体的时候,也是通过眼睛目光,观察物体的最主要特征从而思考,得到结论。
图像识别类似的:
4.2 简化 1:感受野
感受野(Receptive Field):
- 每个神经元只关注图像中的一个小区域,而不是整张图像。
- 可以通过设定感受野的大小(例如 3 × 3 3 \times 3 3×3)来限制每个神经元的观察范围。
注意:我们所言的是张量的“高”和“宽”,深度看张量本身的深度。
机制:
- 感受野中的像素数被“拉直”成一个向量,作为神经元的输入。
- 每个神经元有对应的权重,用于处理这些输入。
- 一般同一个感受野会有一组神经元去守备这个范围
步幅:从左上角开始时,让感受野往水平方向或者垂直方向移动的量。让感受野之间能重合是步幅选取的原则。超过了张量大小就需要填充。填充一般有填0法或者取平均法。如下图所示:
4.3 观察 2:同样的模式可能会出现在图像的不同区域
由于同一模式(如鸟嘴)可能出现在图像的不同位置。我们要做的,是检测到“特征”或“模式”本身,而不是它的位置。故而考虑在不同神经元之间共享参数,从而起到简化参数但都能检测鸟嘴的作用。
4.4 简化 2:共享参数
共享方法如下:
参数共享(Parameter Sharing):不同感受野的神经元可以共享相同的参数。这种共享减少了模型的参数量,同时保持了原有的检测对应“特征”或“模式”的能力。
机制实现:相同功能的神经元在不同感受野中使用相同的权重。
优点:
1.显著减少参数数量,提高计算效率。
2.增强模型的泛化能力,减少过拟合风险。
这样在不同神经元之间得到的相同参数称为滤波器(filter)。
4.5 简化 1 和 2 的总结
全连接网络 vs 卷积神经网络:
- 全连接网络可以看整张图像或局部范围。
- 卷积层通过感受野和参数共享(感受野加上参数共享就是卷积层),对全连接网络增加了限制。此时的网络叫卷积神经网络。模型偏差大,灵活性降低,但减少了过拟合风险。
我们在选取全连接网络或者卷积神经网络取解决图像处理问题时,要理解卷积层的设计初衷,针对图像处理优化。如果在其他任务中使用它们的时候,要需重新考虑这些特性是否适用。
特征映射(Feature Map):指在卷积神经网络(Convolutional Neural Network,CNN)中的卷积层中,通过对输入数据进行卷积操作得到的输出数据。当一张图像通过一个卷积层里面一堆(n个)滤波器的时候,就会产生一个特征映射。
注意到,如果我们选取感受野为
3
×
3
3 \times 3
3×3的大小,第一层的卷积层只有
3
×
3
3 \times 3
3×3的大小,也就是图中红色部分。而在第二次卷积层中,由于
6
×
6
6 \times 6
6×6的长宽经过
3
×
3
3 \times 3
3×3的滤波器相乘相加后,变成了
4
×
4
4 \times 4
4×4的长宽,此时
3
×
3
3 \times 3
3×3的感受野在
6
×
6
6 \times 6
6×6的长宽里实际上是
5
×
5
5 \times 5
5×5的感受野,即图中蓝色部分。
4.6 观察 3:下采样不影响模式检测
- 下采样(Downsampling):通过减少图像尺寸,不影响模式检测。
使用下采样来减少计算量,但要注意不会丢失关键特征。如果是要检测非常精细的东西,下采样方式可能遗失一些关键特征。
另附其他的采样方法:
- 上采样(Upsampling):增加数据的分辨率或尺寸。
有两个方法:
1.最近邻插值:复制最近的像素值。
2.双线性插值:使用相邻像素的线性组合。 - 欠采样(Undersampling):减少多数类样本数量(随机抽取)。
- 过采样(Oversampling):增加少数类样本数量(重复随机抽样),解决不平衡数据。
有两个方法:
1.随机复制:从样本少的类别中随机抽样,再将它们添加到数据集中(容易出现过拟合)。
2.SMOTE(Synthetic Minority Oversampling Technique):在少数类的样本之间,进行插值操作来产生额外的样本。
4.7 简化 3:汇聚
汇聚(Pooling):没有参数,类似激活函数,实际上是一个操作符。它将滤波器产生的一组数字分组。
最大汇聚(Max Pooling):分组中保留最大的数字。可保留最显著特征。
平均汇聚(Average Pooling):分组中计算平均值。保留整体信息。
选取建议:综合考虑计算资源,任务需求等的情况下,资源有限时使用汇聚。
扁平化(Flattening):将多维数据转换为一维向量的过程。
使用地点:在卷积神经网络的卷积层和全连接层之间使用。
4.8 卷积神经网络的应用:下围棋
AlphaGo:将棋盘视为图像,使用卷积网络预测落子位置。
注意,==如果一个问题跟图像没有共通的特性,就不该用卷积神经网络。==下围棋的时候不适合用汇聚,因为
19
×
19
19 \times 19
19×19的围棋棋盘上拿掉一行或者一列棋局就完全变了。
那么我们如果要考虑把卷积神经网络用在除图像之外的地方,就要考虑它与图像的共通点,它的特性与架构是不是和用卷积神经网络。怎样设计感受野和参数共享也是一大问题。
CNN的缺点:
1.CNN 对图像的缩放和旋转不敏感,需要进行数据增强。
2.没有汇聚仅卷积的情况下,计算资源占用较高。
名词解释:
- 数据增强:
简单来说,在图像处理方面,同一个图像,将它放大缩小或者旋转后再喂给卷积神经网络进行学习。