人工智能 (AI) 已迅速从科幻小说领域转变为我们日常生活中越来越普遍的一部分。这场人工智能革命的核心是神经网络——一个复杂的分层系统,其最基本的目的是模仿人脑的信息处理能力。虽然它们的应用范围很广——从识别人脸和生成艺术到玩复杂的游戏和诊断疾病——但了解神经网络“学习”的底层机制对于充分发挥其潜力仍然至关重要。本文旨在超越简单的类比,更深入地了解神经网络训练所涉及的复杂过程。
**1. 基本架构:节点、连接和权重**
神经网络的核心是由相互连接的计算单元(通常表示为节点)组成。这些节点被组织成层:输入层、一个或多个隐藏层和输出层。层中的每个节点都连接到后续层中的每个节点(在完全连接的架构中,尽管存在许多变体),每个连接都分配一个。
权重:这些是代表两个节点之间连接强度或重要性的数值。它们最初被分配随机值。学习过程的核心是调整这些权重以提高网络执行所需任务的能力。激活函数:每个节点还会对其输入的加权和应用一个激活函数。这些函数引入了非线性,使神经网络能够对数据中的复杂非线性关系进行建模。常见示例包括 ReLU、Sigmoid 和 Tanh 函数,每个函数都具有独特的属性,适用于不同的环境。如果没有非线性激活函数,神经网络基本上会表现得像线性回归模型。偏差:每个神经元也有一个相关的偏差项(表示为单独的值)。当将此项添加到加权和中时,有助于改变神经元的输出,从而提高训练的适应性**2. 数据是燃料:训练数据的作用**
神经网络本质上是数据驱动的系统。为了“学习”,它们需要一个包含与它们要执行的特定任务相关的标记或结构化信息的大型数据集。对于监督学习,训练数据集由输入数据及其已知的正确或理想输出(通常称为目标或地面实况值)组成。
质量重于数量(大多数情况下):虽然大型数据集至关重要,但数据质量也会显著影响训练性能。嘈杂的数据或无法很好地代表真实情况的数据可能会误导学习过程并导致性能不佳。预处理:数据通常在输入神经网络之前进行预处理。这可以包括诸如规范化(缩放到特定范围)、标准化(将平均值转换为 0 和标准差转换为 1)、处理缺失值、特征编码(将分类变量转换为数值变量)或各种特征选择方法等技术。**3. 学习的核心:前向传播和后向传播**
神经网络的实际“学习”取决于和的迭代,并辅以方法。
前向传播:在前向传播过程中,输入数据点逐层通过网络。在每个节点,加权输入被节点的激活函数相加并处理以生成输出。流程从输入前进到最后一层,并输出最终预测,这是一个连续值和决策。损失函数:通过前向传播过程产生的网络预测通过损失函数或成本函数与基本事实进行比较。该函数量化网络在此特定输入上的表现,指示其预测的“偏差”程度。损失值提供反馈信号,使神经网络能够做出决策。根据任务,损失函数有不同的选择,包括 (i) 回归任务均方误差、(ii) 二分类交叉熵损失和 (iii) 多类交叉熵损失。学习的关键是最小化训练集中所有数据的该函数值。反向传播:前向传播中计算出的损失驱动了一个复杂的误差反馈过程,称为反向传播。该算法计算网络中每个参数的损失梯度(斜率)。然后,它使用该梯度使用链式法则向后更新权重。链式法则计算导数,将误差信号从最终层向后移动到输入层,以使用随机梯度下降法等随机优化来更新权重。**4. 优化:权重调整的艺术**
反向传播提供梯度,指示网络应如何最小化损失;这些信号就像地图方向,用于调整参数以将权重移动到适当的范围,从而提高网络性能。这些更改是通过优化算法执行的。这些是更新参数的不同方法,包括克服会阻碍学习率的问题(例如平坦景观和鞍点)的技术,这些问题都会导致无法找到优化参数。
梯度下降 (GD):最简单的情况是,该算法沿着最快减少损失的方向调整权重(使用计算出的梯度)。随机 GD 算法一次处理一个样本的数据。为了提高效率和可并行性(使用所有 CPU 内核),样本的小批量一起传递,每个样本的大小从 32、64 到 2048(小批量 SGD),而不是像常规梯度下降那样传递整个数据集。梯度下降的变体:更先进的方法(Adam、RMSprop、Momentum 等)通过基于梯度历史的修改来改进标准 SGD,这些修改使得参数更新更加高效,并避开了解决方案景观中平坦地形区域中的一些陷阱,在这些区域中,学习率通常非常低,这可能导致长时间学习或不收敛学习率:学习率是一个超参数(用户可调设置)。较大的学习率最初可能导致快速学习,但可能过于粗糙,最终会错过更好的解决方案,并且可能存在波动。相反,较小的学习率会使收敛速度变慢,尽管可能会更精细。根据训练数据的特征进行适当的调整非常重要,这会影响损失如何根据景观中的权重和偏差(局部最小值、全局最小值和鞍点)而变化。为了解决这个问题,人们通常会对其进行调度,这将缓慢降低参数。超参数调整:找到最佳学习率和层数(针对网络宽度和深度)涉及在保留测试数据集上进行实验和验证。通常这些选择会导致权衡(例如,具有大量参数的较大网络规模往往会实现更好但更慢,代价是大量内存使用)。在实践中,需要仔细考虑超参数选择,以实现特定的训练结果目标,例如训练和评估的时间复杂度以及最终性能结果。**5. 正则化:对抗过度拟合**
过度拟合是神经网络训练中一个主要问题,当模型对训练数据的学习过于出色以至于无法推广到未见过的数据时,就会发生这种情况。它学习的是噪声,而不是预测未来未见过样本的相关特征。正则化方法旨在通过减少可训练参数来降低网络复杂性,使网络保持简单,专注于主要信号而不是细节:
权重衰减(L1 和 L2):这些方法对大权重引入惩罚,以阻止仅从训练数据集中学习细节或噪声的极其复杂的表示,这种权衡将迫使模型关注样本之间的共性,从而对看不见的数据集的预测有更好的结果。Dropout:在训练过程中,dropout 会随机停用节点和连接以提高泛化能力,因为它会减少在整体中学习的机会,而不是每个神经元的单独参数,因为它需要应对由于 dropout 而导致的子网络节点变化。它减少了单元的协同适应,使权重更加稳健。提前停止:在训练期间监控验证集上的网络性能。如果性能在几次迭代中停止改善或下降,则表明模型过度拟合训练数据,训练应停止以缓解这种情况(使用之前找到的参数)以供评估。**6. 批量大小:优化计算**
在优化过程中,参数(权重/偏差)会通过梯度进行更新,梯度可以通过逐个(1 个批次大小)对训练数据集的每个样本的前向和后向传递进行计算,批次包含 32、64、256 个或更多样本(或小批次)。如果将整个训练数据集放在一起,则效率会很低,而使用小批次则具有以下优势:
高效学习:小批量允许使用多个 CPU 核心进行并行处理。在此设置中,所有参数更改都可以在批量前向和后向传递完成后进行,参数在完整迭代(称为 epoch,对数据集中的所有小批量进行单次传递)内的每个训练迭代(一个小批量)中的每个小批量训练之后进行更新。小批量通常会在单个示例随机设置上平滑梯度,因为参数变化信号现在不会那么不稳定。提高稳定性:批量更新还可以带来更稳定的参数(或与基于单个样本进行更改的纯随机学习相比更好的梯度信号)。这些梯度往往具有较小的可变性,这可能有助于在优化过程的梯度下降步骤中更平滑地调整参数。**7. 学习的持续进化:超越简单的神经网络**
虽然我们已经探索了基本设置,但许多其他策略可以进一步增强网络学习,并突破能力和学习表现的界限。这包括与网络结构相关的策略:
卷积神经网络 (CNN):特别是用于处理基于图像的数据,它们结合了卷积层,可以自动提取分层和局部特征,否则需要手动预先设计,使用可训练的卷积参数作为空间滤波器来识别空间和关系特征,这些滤波器应用于输入通道以映射到不同滤波器参数上的激活(使用滤波器大小如 3X3、5x5 或更大,并使用 1、2、3 或更多像素范围内的不同步长值)在分层格式的每一层循环神经网络 (RNN) 和长短期记忆网络 (LSTM):处理文本和时间序列等序列数据,其中先前的信号/输入可以影响决策(序列中的下一步)或预测(对于未来序列中的下一步预测,此类模型包含隐藏的反馈单元,其中每个位置或步骤的信息可以提供模型的状态(来自当前时间的信息和历史状态),从而允许长期短期历史依赖建模(即开始和结束的信息)。Transformers:利用自我注意机制的模型可以通过查看其他样本或序列输入来执行注意,以预测或分析当前位置或输入,该输入可以处理和学习不同长度的输入序列,而不依赖于递归和反馈。迁移学习:预先训练好的神经网络通常用于针对特定数据集或应用场景进行特定的调整和微调,从而利用更广义的先验知识加快学习速度,而不是重新训练或从初始零或随机分配的权重开始训练,通常只需要很少的训练或微调以及较少的参数变化。少量学习、一次性学习和零次学习神经网络能够在给定单个或较少标记样本(而非数百万个样本)的情况下进行快速学习,其应用正在快速发展,朝着更快采用、定制或数据稀缺场景或缺乏训练示例的领域的任务/应用的方向发展持续学习:神经网络能够进行非遗忘增量式适应,在任务切换时不会丢弃先前的学习和知识,重点关注训练数据、参数、网络权重,对于不需要从头开始重新训练模型的任务,而是在同一空间内逐渐学习新任务,而无需先前学习的经验,使用策略在学习/适应新任务的同时保留先前学习的知识/经验。集成技术采用不同的网络及其不同的视角,针对类似的任务,根据一组模型之间的共识进行性能优化,以改善结果而不是单一结果。**8. 挑战和未来方向**
虽然神经网络已经取得了巨大的进步,但许多研究问题和挑战仍然存在,并推动着更多能力的创新:
可解释性:如何开发神经网络,使其能够理解其行为、参数/模型或可解释输出的决策。如何提取驱动模型输出以诊断行为和错误情况的人类可理解规则是重要的研究领域。偏见和公平性:识别、减轻和理解训练数据集和模型中存在的固有偏见,以产生更公平的人工智能算法,在任务学习或执行期间不会给予某些用户、类别或群体更多的权重或考虑。数据效率:需要更好、更新颖的方法来处理小型和不平衡的数据集。新的模型或算法架构以及使用少量短期或一次性训练来训练小型数据集的方法将使广泛的用例场景成为可能。模型优化和内存优化在较小的资源设置和移动或嵌入式应用程序中的内存使用和延迟,其中响应期间的低延迟时间和数据大小限制是实际 AI 应用程序设置中的一些当前问题,其中效率很重要,功能损失最小是另一个重点领域,存在开放的研究问题**结论**
神经网络学习通常被概念化为一个神奇的过程,它是算法、线性代数和数学计算的迷人相互作用,它依赖于数据和复杂的优化技术来训练模型,更新模型参数以进行适应。这项深入探索揭开了几种机制的神秘面纱,试图详细解释如何进行参数调整(以特定的梯度和数学方式进行优化)。通过深入研究内部工作原理,从基本的连接和权重到前向传播和复杂的优化调整方法,很明显,还需要进行大量研究才能释放人工智能进步的巨大潜力。这种理解不仅加深了我们的洞察力,而且让我们意识到设计、调整、优化网络的实际方面,而这些方面并不总是被讨论。它启发并指导进一步的探索、实际开发或使用符合道德的人工智能解决方案的案例,这些解决方案通过利用数据造福和赋予社会和人类力量。