1.批量归一化:
- 加速神经网络的训练速度提高模型的稳定性,并减少模型对初始参数的敏感性。
- 通过在每一层中对输入进行归一化处理,使得每一层的输入数据的分布更加稳定,从而帮助模型更快地收敛。
1.1工作原理:
通常在神经网络的卷积层/全连接层之后,激活函数之前。
1.2优势:
- 加速收敛: 由于批量归一化减少了输入数据分布的变化(即所谓的“内部协变量偏移”),使得梯度下降在训练中更为平稳,从而加快了模型的收敛速度。
- 减少对初始化的敏感程度: BN可以减轻对初始参数选择的依赖。
- 防止过拟合:
import numpy as np
# 假设输入是一个批次大小为 m 的数组
x = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
# 计算均值和方差
mu_B = np.mean(x)
sigma_B = np.var(x)
# 归一化
x_hat = (x - mu_B) / np.sqrt(sigma_B + 1e-7)
# 假设 γ = 1, β = 0
gamma = 1.0
beta = 0.0
# 进行缩放和平移
y = gamma * x_hat + beta
print("归一化后的输出:", y)
1.3内部协变量偏移:
- 指在深度神经网络的训练过程中,由于网络参数的不断更新,导致每一层神经网络的输入分布发生变化的现象。
输入分布: 数据集在模型输入层上的特征值的统计特性,比如均值,方差,分布形状等。
1.4为什么内部协变量偏移是个问题?
- 训练过程慢:当输入分布在不断变化时,网络的每一层需要不断适应新的输入分布,这会使得训练过程变得更加复杂和缓慢。
- 学习率的调优更加困难:由于输入分布不稳定,学习率等超参数的调优变得更加困难。
- 难以收敛到全局最优:输入分布的不断变化意味着每次权重更新都会改变后续层的输入,使得训练过程的不确定性增加,从而可能导致模型难以收敛到全局最优点。
2.卷积神经网络:
用于处理数据具有网格结构的深度学习模型,最常用于图像处理和计算机视觉任务。
2.1CNN的主要结构:
-
输入层(Input Layer):接收原始数据,例如图像。对于图像,输入通常是一个三维矩阵(高度 x 宽度 x 通道数,如 RGB 图像有三个通道)。
-
卷积层(Convolutional Layer): CNN 的核心层,负责提取数据的局部特征。卷积层通过卷积操作(应用滤波器)将输入图像或特征图转换为多个特征图每个滤波器在图像上滑动(应用共享参数),检测不同的特征如边缘、角点等。
-
激活层(Activation Layer):卷积层输出的特征图通常通过一个非线性激活函数进行处理,如 ReLU(Rectified Linear Unit)。激活函数引入非线性,使网络能够学习到更加复杂的特征。
-
池化层(Pooling Layer):用于对特征图进行降采样,减少特征图的尺寸,保留重要特征。常见的池化操作有最大池化(Max Pooling)和平均池化(Average Pooling)。
-
全连接层(Fully Connected Layer, FC Layer):这一层与传统的神经网络类似,将前面提取的特征图展平,并通过一系列全连接的神经元进行分类或回归任务。
-
输出层(Output Layer):最后一层通常使用 Softmax /Sigmoid 函数,将全连接层的输出转换为类概率分布或回归结果。
2.2感受野:
卷积层中某个神经元在输入数据上所能看到的区域。
意义:感受野越大,神经网络就能捕捉到输入数据中更大范围的特征信息。通过堆叠多个卷积层,网络可以逐渐增加感受野,从而在后期层中捕捉到全局特征。
2.3共享参数:
同一卷积层中的所有神经元使用相同的卷积核(过滤器)参数。这种方式减少了网络的参数数量,提高了模型的训练效率。
意义:
- 减少参数:相比全连接网络,CNN的参数大大减少,这使得训练速度更快,所需的存储空间更小。
- 提升泛化能力:可以在图像的不同区域提取相同类型的特征,如边缘或角点,这有助于模型更好地理解图像中的模式。
2.4汇聚:
采样操作,逐步减少特征图的空间大小,从而减少网络参数,控制过拟合,并保留重要特征。
一般汇聚操作为:最大汇聚和平均汇聚。
比如:
输入特征图:
[1,3,2,4]
[5,6,1,2]
[7,3,4,5]
[3,2,6,7]
经过2×2的汇聚:
[6,4]
[7,7]
意义:
- 降维:汇聚层可以减少特征图的尺寸,从而减少计算量和模型参数。
- 保留重要特征:最大汇聚可以保留特征图中最显著的特征,如边缘或纹理信息。
2.5为什么CNN可以用于下围棋?
- 局部感受野:关注棋盘上的局部特征。
- 参数共享:在CNN中,卷积核在整个棋盘上滑动并提取特征,参数在不同位置共享。
- 汇聚(池化):CNN中的池化层通过对局部特征进行下采样,减少了数据的维度。
CNN可以通过多个卷积层逐层提取棋盘区域的特征,选择下棋位置。