神经网络超参数分类

2024 年 11 月 29 日 | 阅读 13 分钟

神经网络在计算机视觉、自然语言处理和强化学习等领域引起了革命性的变化,在图像分类、文本生成等方面取得了非凡的准确性。然而,在这些任务中取得出色的性能在很大程度上取决于选择正确的超参数。超参数是在训练和评估神经网络时使用的外部配置。它们不是在训练过程中确定的;相反,它们是通过实验进行调整的。在这里,我们根据神经网络超参数的功能对其进行分类,并讨论它们对网络性能的影响。

模型架构超参数

模型架构超参数定义了神经网络的结构元素。这些设置会影响网络捕捉数据中复杂关系的能力。选择这些参数需要平衡模型的表达能力、计算效率和泛化能力。以下是一些关键的模型结构超参数及其对网络性能的影响。

1. 层数

神经网络中的层数决定了其深度,进而影响其学习复杂表示的能力。

  • 浅层网络:层数较少的网络更简单,需要的计算量也更少,但它们可能难以捕捉复杂数据集中的复杂模式。
  • 深层网络:具有许多隐藏层的深层网络在捕捉分层模式方面效果更好,因此非常适合图像识别等任务。然而,它们需要更多的计算能力,并且如果不经过适当的正则化,很容易过拟合。

在深度学习中,具有 50-100 层或更多层的网络在复杂任务中很常见,尽管像 ResNet 这样的架构包含跳跃连接来稳定非常深的 sieci。

2. 每层的神经元数量

此超参数定义了每层的宽度,即其中的神经元数量。

  • 窄层:神经元数量较少的层计算量较小,对于简单任务可能具有更好的泛化性。
  • 宽层:神经元数量众多的层可以捕捉数据中更复杂的模式,但也可能存在过拟合的风险。在大多数架构中,神经元数量会随着网络的深入而减少,以促进抽象。

总的来说,层宽的选择通常基于数据和任务的复杂性。例如,图像分类器中的密集层通常比前面的层有更少的神经元。

3. 激活函数

激活函数定义了神经元的输出,并使网络能够捕捉非线性关系。

  • ReLU (Rectified Linear Unit):ReLU 函数 (f(x) = max(0, x)) 被广泛用于隐藏层,因为它缓解了梯度消失问题并引入了稀疏性,从而提高了计算效率。
  • Sigmoid 和 Tanh:这些函数虽然对二元分类和序列任务有用,但经常会导致深层网络中梯度消失,从而减慢训练速度。
  • Swish 和 Leaky ReLU:Swish (f(x) = x * sigmoid(x)) 和 Leaky ReLU (f(x) = x if x > 0, else α * x) 是较新的激活函数,通过避免 ReLU 的一些障碍,在深层网络中表现良好。

激活函数的选择会影响网络的收敛性和学习复杂模式的能力,其中基于 ReLU 的函数在现代架构中主导隐藏层。

4. 核大小和步幅(用于卷积网络)

对于卷积神经网络 (CNN),核大小和步幅定义了滤波器在输入数据上的操作方式,从而影响特征提取。

  • 核大小:较小的核大小(例如 3x3)可捕捉精细粒度的信息,而较大的核大小(例如 5x5 或 7x7)可捕捉更广泛的特征。CNN 通常使用 3x3 核以获得灵活性和效率,通过堆叠多个层来捕捉复杂特征。
  • 步幅:步幅是滤波器在每一步移动的像素数。较高的步幅值会导致输出特征图的空间分辨率降低,但会降低计算需求。

在实践中,由于其细节捕捉和性能的稳定性,3x3 的核大小和 1 的步幅通常在现代架构中使用。

5. 池化层(大小和类型)

池化层会减小特征图的空间尺寸,从而降低计算需求并帮助控制过拟合。

  • 池化大小:常见的池化大小为 2x2 或 3x3,它们会显著减小空间尺寸。较小的池化大小保留更多的空间信息,而较大的池化大小则优先考虑泛化。
  • 池化类型:最大池化(取块中的最大值)因其简单性和在保留重要特征方面的有效性而广受欢迎。平均池化(对块中的值进行平均)在需要保留更细微信息的情况下可能很有用。

在典型的 CNN 架构中,由于能够保留重要特征并减少过拟合,因此 2x2 大小的最大池化最为常见。

学习过程超参数

学习过程超参数控制神经网络在训练过程中从数据中学习的机制。这些参数会影响优化过程,决定收敛速度、训练稳定性以及最终模型的准确性。以下是对关键学习过程超参数的详细分析。

1. 学习率

学习率是最重要的超参数之一,因为它决定了在梯度下降过程中更新模型权重的步长。

  • 高学习率:高学习率可以更快地收敛,但可能导致模型越过最优点,从而导致训练不稳定。
  • 低学习率:低学习率更稳定,可以获得更高的准确性,但可能导致收敛缓慢,需要更长的训练时间。

选择正确的学习率通常通过实验完成,或者通过使用学习率调度器,该调度器在训练过程中动态调整学习率。

2. 优化器

优化器根据使用的梯度下降算法决定学习率的应用和更新方式。常见的优化器包括:

  • 随机梯度下降 (SGD):最基本的技术之一,SGD 根据小批量更新权重,速度更快但噪声更大。
  • Adam (自适应矩估计):Adam 因结合了 SGD 和 RMSprop 的优点而广受欢迎,它高效且能适应各种学习率。它适用于大多数深度学习任务。
  • RMSprop:RMSprop 会为每个参数调整学习率,有助于在训练过程中保持恒定的学习率,这使其在具有复杂数据分布的任务中非常有效。

选择正确的优化器会显著影响学习过程中的收敛速度和质量。

3. 批次大小

批次大小定义了在更新模型权重之前处理的样本数量。

  • 小批次大小:较小的批次会产生更频繁的更新,通常泛化性更好,但计算量大且速度慢。
  • 大批次大小:较大的批次可以加快训练速度,但会降低泛化能力,因为它们平均了梯度的噪声,可能导致模型在新数据上的性能较差。

在实践中,批次大小通常在 32 到 256 之间,尽管具体值取决于可用的计算资源和模型的复杂性。

4. 动量

动量通过将前一个更新的一部分添加到当前更新中来帮助加速梯度下降过程,从而有效地平滑了振荡。

  • 标准动量:通常设置为 0.5 到 0.9 之间,动量会将梯度推向先前步骤的方向,帮助模型快速穿过优化地形中的平坦区域。
  • Nesterov 动量:标准动量的扩展,Nesterov 动量会进行超前查看更新,通常会导致更快的收敛和更稳定的优化。

动量尤其适用于具有噪声梯度的数据集,可以防止模型陷入局部最小值。

正则化超参数

正则化超参数是控制神经网络过拟合的关键,可提高模型对未见数据的泛化能力。当模型在训练数据上表现极好,但在新数据上表现不佳时,就会发生过拟合。正则化技术通过限制模型的容量或引入噪声来防止这种情况,确保模型学习相关模式而不是记忆训练数据。以下是一些主要的正则化超参数及其对模型性能的影响。

1. Dropout 率

Dropout 是最广泛使用的正则化技术之一,尤其是在深度网络中。在训练期间,Dropout 会在每个层中随机禁用一部分神经元,迫使网络学习不依赖于特定神经元的鲁棒特征。

  • Dropout 率:Dropout 率决定了在每次前向传播中丢弃的神经元比例。常见值介于 0.2 到 0.5 之间,其中 0.5 会丢弃一半的神经元,通常用于全连接层。
  • 应用:Dropout 通常应用于密集层,而在卷积网络中,由于卷积层通常倾向于良好泛化,因此通常使用较低的 Dropout 率或完全避免。

增加 Dropout 率会减少过拟合,但可能会减慢学习速度。经过有效调整后,Dropout 可以通过减少神经元之间的协同适应来提高泛化能力。

2. L2 正则化(权重衰减)

L2 正则化,也称为权重衰减,通过向损失函数添加一个与权重幅度平方成比例的项来惩罚大的权重。

  • 正则化强度 (λ):L2 正则化的强度由 λ 控制,通常设置为 0.001 到 0.1 之间。较高的值会更多地惩罚大权重,鼓励网络中较小的权重。
  • 影响:L2 正则化在控制密集网络中的过拟合方面非常有效。它可以防止模型对任何单个神经元或特征给予过多的重视,从而产生更平滑的决策边界。

L2 正则化与 Dropout 广泛结合使用,因为这两种技术通过阻止依赖于单个神经元和大权重来互补。

3. L1 正则化

L1 正则化与 L2 类似,但它惩罚的是权重的绝对值,而不是它们的平方。这会将一些权重设置为零,从而有助于特征选择。

  • 正则化强度 (λ):L1 正则化的 λ 值控制诱导稀疏的程度。常见值范围为 0.001 至 0.1,具体取决于所需的特征缩减程度。
  • 对模型的影响:与 L2 不同,L1 正则化倾向于创建稀疏权重,即许多权重变为零。这对于受益于特征选择的简单模型可能很有用,因为它有效地降低了输入的维度。

虽然 L1 正则化在深度学习中的应用不如 L2 广泛,但在可以减少激活权重数量以获得更简单、可解释模型的场景中很有用。

4. 提前停止

提前停止是一种通过在模型在验证集上的性能停滞或开始下降时终止训练来防止过拟合的策略。

  • 耐心参数:此参数定义了允许在训练停止之前不取得进展的 epoch 数量。实践中,通常将耐心值设置为 5 到 10 之间。
  • 验证监控:提前停止会监控验证损失或准确性,一旦没有进一步改进,就会停止训练。这可以防止模型对训练数据进行过度优化,并保持泛化能力。

提前停止可以节省计算资源,同时有效地停止过拟合。当训练 epoch 的最佳数量未知时,它尤其有用。

核大小和步幅(用于卷积网络)

在卷积神经网络 (CNN) 中,核大小和步幅是关键的超参数,它们决定了网络处理数据的方式,尤其是在涉及图像和视频处理等空间数据的任务中。这些设置控制卷积层中滤波器的移动和大小,直接影响网络在不同尺度上捕捉信息的能力。

1. 核大小

核(或滤波器)大小定义了滑过输入数据以执行卷积的小矩阵的大小。它决定了感受野的大小——滤波器在每一步覆盖的输入数据区域。

常见核大小:在 CNN 中,3x3、5x5 和 7x7 的核大小最为常见。

  • 3x3 核:3x3 的核大小在现代架构中被广泛使用,因为它在捕捉细节和计算效率之间取得了出色的平衡。堆叠多个 3x3 层可以让网络学习复杂模式,同时将参数数量保持在最低限度。
  • 5x5 及更大的核:较大的核,例如 5x5 或 7x7,可以捕捉数据中更广泛、更粗略的模式,但它们会增加计算负担和参数数量。这些通常在网络的初始层中使用以捕捉大尺度特征,然后被更小的核替换。

总的来说,较小的核捕捉精细粒度的细节,而较大的核捕捉更广泛、更抽象的特征。核大小的选择取决于任务:较小的核适用于复杂、精细的模式,而较大的核可能更适合简单或大尺度的特征。

2. 步幅

步幅定义了核在输入数据上移动的步长。它控制相邻位置感受野之间的重叠程度,并决定输出特征图的大小。

  • 步幅为 1:步幅为 1 表示核一次移动一个像素,导致感受野之间高度重叠。这使得网络能够捕捉精细的空间信息,但会导致较大的输出特征图,这需要更多的内存和计算。
  • 步幅为 2 或更高:增加步幅(例如到 2)会使核移动两个像素,减少重叠并导致较小的输出特征图。这有助于快速减小空间尺寸,类似于池化层,同时保留输入中的一些信息。

较高的步幅可以通过生成较小的特征图来帮助降低计算成本,但它们可能会牺牲一些空间细节。通常,初始层使用步幅为 1 来保留最大信息,而较深的层可能使用较大的步幅来下采样特征图。

3. 对特征图大小的影响

核大小和步幅都会影响输出特征图的大小。特征图的大小随着步幅的增加而减小,并且较大的核(在未应用填充的情况下)倾向于比较小的核更快地减小特征图的大小。

  • 无填充:由于核在没有额外边框的情况下在输入上移动,因此输出大小可能小于输入大小。
  • 带填充:填充(例如零填充)在输入周围添加了更多像素,允许核完全覆盖输入区域。这确保输出特征图的大小与输入大小相同,通常与 3x3 核一起使用以在层之间保持空间尺寸。

选择核大小和步幅

核大小和步幅的选择对于设计针对特定任务定制的 CNN 架构至关重要。

  • 小核、小步幅(例如 3x3,步幅 1):适用于捕捉图像中的精细特征,其中精细粒度分析至关重要,例如在医学成像或人脸识别中。
  • 大核、小步幅(例如 5x5 或 7x7,步幅 1):用于初始层检测大尺度特征或简化低分辨率图像中的特征提取。
  • 小核、大步幅(例如 3x3,步幅 2):通常用于较深层进行下采样,在保留重要信息的同时减小空间尺寸。

池化层(大小和类型)

池化层会减小特征图的空间尺寸,从而降低计算需求并帮助控制过拟合。

  • 池化大小:常见的池化大小为 2x2 或 3x3,它们会显著减小空间尺寸。较小的池化大小保留更多的空间信息,而较大的池化大小则优先考虑泛化。
  • 池化类型:最大池化(取块中的最大值)因其简单性和在保留重要特征方面的有效性而广受欢迎。平均池化(对块中的值进行平均)在需要保留更细微信息的情况下可能很有用。

在典型的 CNN 架构中,由于能够保留重要特征并减少过拟合,因此 2x2 大小的最大池化最为常见。

循环神经网络 (RNN) 超参数

对于涉及序列数据(如语言建模或时间序列预测)的任务,RNN 特定的超参数变得相关。

  • 序列长度:时间步长或序列长度决定了网络考虑多少历史信息。较短的序列长度计算量较小,但可能丢失重要的上下文,而较长的序列长度可以捕捉更丰富的上下文,但也可能增加梯度消失的风险。
  • 隐藏状态大小:此参数控制 RNN 隐藏状态中的单元数量。较大的隐藏状态大小允许网络捕捉更多上下文,但会增加计算需求。
  • 双向性:双向 RNN 以正向和反向两个方向处理数据,从而提高对过去和未来上下文都至关重要的任务的准确性。

注意力机制参数(用于 Transformer)

在 Transformer 等模型中,注意力机制允许网络关注输入序列的特定部分,从而捕捉长距离依赖关系。

  • 注意力头数量:多头注意力将输入分成多个头,每个头专注于序列的不同方面。更多的头可以提供更丰富的上下文知识,但需要更多的计算。
  • 注意力窗口:在长序列中,限制注意力窗口可以通过仅关注相邻 token 来提高计算效率,这对于长文本处理任务很有用。
  • 嵌入维度:此维度表示序列中每个 token 的向量大小。较大的嵌入维度可以捕捉更复杂的表示,而较小的维度计算效率更高,但可能会丢失信息。

结论

模型架构超参数是构建高效、强大且可泛化的神经网络的基础。通过仔细选择这些超参数,从业者可以设计出能够平衡任务需求与可用资源的网络,从而获得能够捕捉复杂关系同时保持泛化能力的模型。


下一主题动态时间规整