神经网络如何学习?

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

引言

神经网络是受人脑启发而创建的计算机模型,它们利用统计学来识别模式并做出决策。这些由相互连接的节点(或“神经元”)组成的网络,其处理信息的方式类似于大脑的学习方式。每个神经元都由层组成:一个输入层接收信息,任意数量的隐藏层处理信息,以及一个输出层生成输出。

为了随着时间的推移而改进,神经网络通过响应错误来调整神经元之间的连接(或权重)来学习。“前向传播”——将输入数据通过网络传输——和“反向传播”,即网络根据预测结果与实际结果之间的差异进行调整,是学习过程的重要组成部分。神经网络通过迭代训练“分析”复杂的关联,使它们能够识别模式、分类数据甚至做出预测。

神经网络的学习能力使其在机器人技术、语言处理和图像识别等各种任务中都非常有效。尽管这个概念自 20 世纪 50 年代就已存在,但由于计算能力和数据可访问性的提高,神经网络已成为人工智能的前沿,这在机器学习和深度学习领域取得了重要进展。

在训练中,过拟合和欠拟合

在训练神经网络时,过拟合和欠拟合是影响模型在新数据上泛化能力的常见问题。

当神经网络对训练数据学习得“太好”时,就会发生过拟合,包括其噪声和微小波动,导致它在新颖、未见过的数据上表现不佳。在这种情况下,模型变得过于复杂,既捕捉了训练集的随机波动,又捕捉了模式。当一个模型在训练数据上表现良好,但在验证集或测试集上表现不佳时,就称其过拟合。这通常发生在模型较大或训练数据不足时。常见的解决方法包括正则化技术(如 dropout)、使用更简单的模型或提供更多样化的训练数据。

相反,当神经网络过于简单而无法识别数据中的潜在模式时,就会发生欠拟合。在这种情况下,模型在训练集和验证集上的低性能都表明它没有捕捉到数据的关键特征。这通常发生在训练过早终止或模型不够复杂时。可以通过增加模型复杂度、训练更多轮次或改进特征以更好地捕捉相关模式来解决欠拟合问题。

神经网络学习过程

  • 前向传播

前向传播是在训练过程中输入通过网络层的前进机制。每个神经元通过应用激活函数和加权输入和来生成输出。这些输出逐层通过网络传播,直到到达最终的输出层。

  • 计算损失

损失函数,也称为成本函数,用于评估网络的预测与真实目标之间的差异。它计算两者之间的差异。交叉熵损失(用于分类任务)和均方误差(用于回归任务)是常见的损失函数示例。

  • 反向传播

然后,网络确定如何调整其权重以减小损失。使用一种称为反向传播的技术计算损失相对于每个权重的梯度(偏导数),该技术说明如果更改某个特定权重,损失将如何变化。

  • 梯度下降优化

网络使用优化技术(如梯度下降)更新权重以减小损失。模型通过沿着负梯度方向移动来逐渐降低其错误。学习率是一个参数,它确定每次更新的大小。

  • 迭代训练

随着网络学习,这个前向传播、权重更新、反向传播和损失计算的循环会重复进行大量迭代,或称为轮次(epochs)。随着权重和偏置逐渐收敛到某个值,网络在训练数据和未见过的数据上都能提供更准确的预测。

几种神经网络学习方法

  • 监督学习

在监督学习中,神经网络使用标记数据进行训练,这意味着每个输入都有一个已知的输出。通过将其预测与真实标签进行比较并相应地调整其权重,网络可以学习。监督学习通常用于情感分析、语音识别和图像分类等任务。

  • 无监督学习

在无监督学习中,网络在没有标记输出的数据上进行训练。目标是找到数据中的结构或模式。这种方法通常用于异常检测、降维和聚类——将相似项分组。在无监督学习中,通常使用自动编码器和聚类算法(如 K-means)等方法。

  • 半监督学习

半监督学习结合了标记和未标记的数据,当获取标记数据成本高昂或耗时时,这很有用。网络利用更大的未标记数据集并从少量标记数据中学习,从而提高泛化能力。这种方法经常应用于文本和图像处理任务。

  • 自监督学习

在这种类型的无监督学习中,网络通过识别输入中的模式来生成自己的标签。通过学习有用的表示而无需显式标签,网络可以根据语言或图像的其他部分预测其一部分。在自然语言处理领域,自监督学习(例如,像 GPT 这样的语言模型)已取得了重大进展。

  • 强化学习

通过与环境的交互以及以奖励或惩罚为形式的反馈,神经网络(代理)在强化学习中进行学习。目标是找到一个随着时间推移最大化累积奖励的策略。在自动系统、机器人技术和游戏 AI 中,强化学习被广泛用于帮助代理通过反复试验来学习最佳行为。

  • 迁移学习

迁移学习是指使用一个已训练好的神经网络模型,并针对一个新的、相关任务对其进行微调。这种方法通过利用一个领域中已有的知识来提高另一个领域的性能,从而减少所需的数据量和训练时间。文本和图像分类等应用广泛使用迁移学习。

用于改进学习的正则化技术

通过防止神经网络过拟合,正则化技术提高了模型泛化到新的、未知数据的能力。以下是一些最流行的正则化技术:

L1 和 L2 正则化技术根据模型的权重向损失函数添加惩罚。

  • L2 正则化——也称为权重衰减——通过将每个权重的平方值添加到损失中,来惩罚较大的权重,并促进较小、更可接受的权重。
  • L1 正则化通过惩罚权重的绝对值,也可以导致稀疏性,通过将某些权重设置为 0 来降低模型复杂度。

Dropout

Dropout 在每次训练批次中随机“丢弃”(设置为 0)一部分神经元,迫使模型学习数据的多种不同表示。结果是网络更加健壮,不太可能过拟合,因为没有任何一个神经元能够产生过大的影响。

提前终止

该技术在训练过程中跟踪模型在验证集上的性能,并在性能停止增长时停止训练,以避免模型过度拟合训练数据中的噪声。

数据增强

数据增强通过增加训练数据的样式(例如,旋转、翻转或裁剪图像)来鼓励模型学习更广泛的特征。这使得模型更难记住单个数据点。

批量归一化

通过对批次内的输入进行归一化来稳定和加速训练。通过降低模型对学习率设置和权重初始化的敏感性,它降低了过拟合的风险。

神经网络优化算法

  • 梯度下降

梯度下降是最基本有效的优化技术。它计算损失函数相对于每个权重的梯度(斜率),以便反复调整模型权重。为了最小化误差,模型然后沿着与梯度相反的方向移动。版本包括:

  • 批量梯度下降:每次更新使用整个数据集,这可能计算成本高昂且速度慢。
  • 随机梯度下降(SGD):通过在每一步仅基于一个训练样本更新权重来加速训练,但会增加额外的噪声。
  • 小批量梯度下降:通过结合两者的优点来平衡噪声和性能,在每次更新中使用小批量数据。
  • 动量

通过将先前更新的一部分添加到当前步骤,该方法通过平滑到最小值的路径并帮助模型避免局部最小值来改进梯度下降。

  • 均方根传播(RMSprop)

RMSprop 通过将梯度除以新梯度幅度的移动平均值来调整每个权重的学习率。这在稀疏数据上效果很好,并可能导致更快的收敛。

  • Adam(自适应矩估计)

Adam 结合了 Momentum 和 RMSprop 的优点,是一种流行且适应性强的优化器,它根据梯度的第一和第二矩调整每个参数的学习率。总的来说,它在大量问题上只需少量调整即可获得良好的效果。

  • Adadelta 和 Adagrad

这些自适应算法根据先前的梯度调整学习率;Adagrad 在稀疏数据上表现良好,而 Adadelta 是一个改进版本,可以解决 Adagrad 学习率下降的问题。

神经网络训练的挑战

  • 梯度爆炸和梯度消失

在深度网络中,梯度在反向传播过程中可能会在层之间传播,要么变得非常小(消失),要么变得非常大(爆炸)。这可能导致训练停止或变得不稳定,尤其是在多层网络中。通过使用批量归一化、仔细的权重初始化和 ReLU 等激活函数等技术,可以缓解此问题。

  • 过拟合

当模型吸收了训练集中的过多噪声和细节时,它在新数据上的表现会很差。过拟合是一个严重的问题,尤其是在处理有限的数据集和复杂模型时。可以通过使用正则化技术、dropout 和数据增强来避免过拟合。

  • 计算成本

大型神经网络的训练需要大量的内存和处理资源,尤其是在处理深度架构和大型数据集时。因此,训练可能会变得昂贵且缓慢,需要 GPU 和 TPU 等专用硬件来加速处理。

  • 数据量和质量

神经网络要有效运行,通常需要大量的标记、高质量数据。嘈杂或不足的数据可能导致泛化能力差。大规模数据集的收集、清理和标记可能成本高昂且耗时。

  • 超参数调优

神经网络有许多超参数,包括层数、批次大小和学习率。找到最佳组合很困难,并且通常需要大量的实验,这在时间和计算方面可能成本很高。

  • 鞍点和局部最小值

神经网络可能会陷入鞍点(损失函数的平坦区域)或局部最小值,这会阻碍训练。借助 Adam 等优化器和动量等技术,模型可以克服这些障碍并找到更好的解决方案。

  • 可解释性

深度模型通常被称为“黑箱”,因为很难解释它们的决策过程。在理解模型决策至关重要的行业(如医疗保健或金融)中,这种缺乏透明度可能会带来问题。

神经网络学习的应用

  • 视频和图像识别

自动驾驶、物体识别和面部识别都是神经网络的常见应用。卷积神经网络(CNN)尤其适合视觉任务,它们能够实现实时图像解释以及物体和人物的识别。

  • NLP,即自然语言处理

许多 NLP 应用,包括语音识别、情感分析和语言翻译,都由神经网络提供支持。虚拟助手、聊天机器人和翻译程序依赖于计算机理解和生成人类语言的能力,这得益于循环神经网络(RNN)和 Transformer 模型。

  • 医学诊断

通过分析 X 光片、MRI 和 CT 扫描等医学图像,神经网络可以诊断医疗状况。它们还有助于个性化治疗、分析遗传信息和预测患者预后,从而提高医疗保健的速度和准确性。

  • 金融服务

算法交易、风险评估和欺诈检测都使用神经网络。通过分析交易数据中的模式,这些算法可以预测股市走势、评估信用风险并检测欺诈行为。这有助于银行和其他金融机构提高安全性和盈利能力。

  • 推荐系统

社交网络平台、流媒体服务和在线零售商使用神经网络根据用户历史记录推荐内容。通过根据用户兴趣推荐电影、产品和帖子,这些平台提高了用户满意度和参与度。

  • 自主系统和机器人

神经网络对于机器人来说至关重要,它们使机器人能够自主导航、操作物体并做出复杂决策。在自动驾驶汽车中,神经网络会分析传感器数据以做出实时、安全的驾驶决策。

  • 人工智能和游戏

神经网络用于视频游戏中,以生成能够响应玩家动作的智能非玩家角色(NPC)。神经网络还用于 AI 研究,以创建自学习 AI 模型,并在游戏开发中提供逼真的视觉效果。