Contents — find the section you need

层 l 可以写成 h_{l+1}=\phi(W_lh_l+b_l)。如果没有非线性层 \phi,堆叠层会合并成一个线性变换。学习过程反向传播损失函数 L 的梯度,并通过 \theta\leftarrow\theta-\eta\nabla_\theta L 进行更新。

Diagram 1 · Use the button to switch views
Forward and backward neural network flowInput passes through hidden layers to prediction and loss; gradients flow in reverse.input xhidden hprediction ŷloss L

图:Duskcoil,概念图而非具体的测量架构。

激活函数、归一化、残差连接和注意力机制会影响表示和优化。数据增强、权重衰减、提前停止和有效分割有助于监控泛化能力;降低训练损失并不会降低泛化能力。证明安全性或公平性。

元素 作用 注意事项
激活函数 添加非线性表示 饱和度和死单元
优化器 根据梯度更新参数 学习率和数值稳定性
正则化 支持泛化 无法防止测试泄漏

损失、输出层和数值稳定性

在分类器末尾放置 softmax 会将类别 k 的概率变为 p_k=\exp z_k/\sum_j\exp z_j。如果真实标签为独热编码 y,则交叉熵为 L=-\sum_k y_k\log p_k。实现中避免直接计算 \exp z,而是使用对数求和指数技巧来减去最大logit值——这可以避免在logit值较大时指数溢出,从而避免损失值变为NaN。对于回归而言,对异常值敏感的平方误差并非唯一选择:Huber损失也是一个候选方案。损失并非仅仅是“一个使数值变小的表达式”——它具体规定了哪些操作错误应该受到更严厉的惩罚。

小批量优化会引入采样噪声。自适应优化器(例如Adam)可以简化初始训练,但学习率、权重衰减、批次大小和调度都会影响泛化能力。当GPU内核、数据顺序、预处理和库版本不同时,仅仅固定随机种子是不够的。将数据、代码、环境、权重和评估代码打包成一个版本发布。

常见架构比较

架构 优势 典型输入 常见故障
多层感知器 (MLP) 适用于固定长度特征 表格和传感器特征 忽略空间或时间结构
卷积神经网络 (CNN) 利用局部性 适用于图像和网格 分辨率和采集偏移
RNN/状态空间模型 保留有序状态 时间序列和音频 长依赖关系和初始化
Transformer 长程条件化 文本、图像、多模态输入 计算、溯源、不支持的输出

更复杂的架构也无法修复模糊的标签。例如,维护后创建的故障标签可能会允许将事件后字段纳入训练。离线准确率衡量的是未来数据的可访问性。训练和服务应该共享特征代码,并且每个特征都必须在预测截止日期前进行可用性审核。

故障示例:高精度的错觉

随机分割图像可能会将相同的产品、背景或相邻的视频帧同时放入训练集和测试集中。网络会记住采集条件。类似的泄漏也会发生在未来的滚动平均值、重复的患者或机器以及相邻的地理位置上。排除未来的时间段、独立的设施、设备或实体。

第二个错误是将概率视为决策。0.9 的分数并不一定意味着危险。检查得分接近 0.9 的示例。如果正例出现的频率大致相同,则根据误报、漏报和复核成本选择阈值。当输入质量不足或案例超出分布范围时,提供弃权路径。

实现步骤

  1. 定义预测时间、种群规模、标签、延迟限制和误差成本。

  2. 冻结实体感知、时间感知和位置感知的划分;仅对训练数据进行预处理。

  3. 在相同的划分和指标上比较线性模型或小型多层感知器 (MLP)。

  4. 记录损失、学习率、梯度范数、NaN 值、训练集与验证集之间的差距以及切片性能。

  5. 注入缺失值、噪声、延迟和超出分布范围的输入;测试弃权和回滚策略。

使梯度可观测

训练失败时,首先检查数据和梯度路径。尝试记住一个小批次的数据;失败通常会揭示标签偏移、掩码错误、维度错误或损失 API 的误用。然后记录每一层的激活值、梯度范数和更新幅度。底层数值消失表明梯度损失,突然增长表明发散,零更新表明图分离或参数冻结。

初始化旨在保持信号方差在各层可用。He 初始化是 ReLU 函数族的常用起点,而 Xavier 初始化是 tanh 函数的常用起点,但归一化和残差连接会改变实际行为。梯度裁剪是一种紧急边界,不能掩盖错误损失或输入缩放。在混合精度下,比较小规模的 float32 运行结果,并监控损失缩放、溢出和下溢。

公平的实验单元

比较种子分布、学习曲线和计算预算,而不是只比较一个最佳分数。当预处理、预训练、数据增强或后处理不同时,相同的参数数量并不能进行公平的比较。切勿在测试集上重新调整阈值。对于不平衡情况,保留宏观和类别指标;当概率驱动决策时,还要检查校准情况。

可观察 正常模式 如果异常,请检查
训练/验证损失 两者均呈稳定下降趋势 泄漏、过拟合、实体分割
梯度范数 有限且无突变 尺度、初始化、损失
预测分布 与任务和普遍性一致 标签映射、softmax 轴、阈值
推理延迟 尾部延迟满足截止时间 预热、批处理、预处理/后处理

失败示例:验证集污染

在经过数十次验证检查后选择架构、数据增强和随机种子会导致验证集过拟合。仅对未经修改的测试集进行一次评估,并记录搜索次数和选择规则。如果来自同一视频的相邻帧发生交叉分割,则文件级分割仍然无效。应根据确定独立性的实体进行分割:患者、车辆、生产批次或录制会话。

部署前检查清单

  1. 将代表性案例与手动计算或可信实现进行比较。

  2. 自动化小批量过拟合、有限梯度和保存/重新加载等效性测试。

  3. 对基线、候选模型和使用相同的输入和计时器对模型进行量化。

  4. 在 API 协议中加入无效、缺失或延迟输入的拒绝值和回退行为。

  5. 将模型、数据、代码提交、依赖项和评估结果整合到一个发布记录中。

神经网络工程的工作是使从数据到决策的路径可衡量。每次只增加一项变更,这样每次改进都有解释,每次出现问题都有已知的回滚点。

检查你的理解
添加层总是能改进吗?准确性?

数据、优化、过拟合和计算也很重要。增加复杂性需要有证据表明在验证数据上有所改进。

What to read next

Review the background机器学习入门:基础篇——数据设计、损失函数和泛化Continue the series目标检测与语义分割入门——从图像中读取“物体位置”Explore another aspect of this field基准测试本地LLM:首次响应、生成率和内存