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 进行更新。
图: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 的示例。如果正例出现的频率大致相同,则根据误报、漏报和复核成本选择阈值。当输入质量不足或案例超出分布范围时,提供弃权路径。
实现步骤
-
定义预测时间、种群规模、标签、延迟限制和误差成本。
-
冻结实体感知、时间感知和位置感知的划分;仅对训练数据进行预处理。
-
在相同的划分和指标上比较线性模型或小型多层感知器 (MLP)。
-
记录损失、学习率、梯度范数、NaN 值、训练集与验证集之间的差距以及切片性能。
-
注入缺失值、噪声、延迟和超出分布范围的输入;测试弃权和回滚策略。
使梯度可观测
训练失败时,首先检查数据和梯度路径。尝试记住一个小批次的数据;失败通常会揭示标签偏移、掩码错误、维度错误或损失 API 的误用。然后记录每一层的激活值、梯度范数和更新幅度。底层数值消失表明梯度损失,突然增长表明发散,零更新表明图分离或参数冻结。
初始化旨在保持信号方差在各层可用。He 初始化是 ReLU 函数族的常用起点,而 Xavier 初始化是 tanh 函数的常用起点,但归一化和残差连接会改变实际行为。梯度裁剪是一种紧急边界,不能掩盖错误损失或输入缩放。在混合精度下,比较小规模的 float32 运行结果,并监控损失缩放、溢出和下溢。
公平的实验单元
比较种子分布、学习曲线和计算预算,而不是只比较一个最佳分数。当预处理、预训练、数据增强或后处理不同时,相同的参数数量并不能进行公平的比较。切勿在测试集上重新调整阈值。对于不平衡情况,保留宏观和类别指标;当概率驱动决策时,还要检查校准情况。
| 可观察 | 正常模式 | 如果异常,请检查 |
|---|---|---|
| 训练/验证损失 | 两者均呈稳定下降趋势 | 泄漏、过拟合、实体分割 |
| 梯度范数 | 有限且无突变 | 尺度、初始化、损失 |
| 预测分布 | 与任务和普遍性一致 | 标签映射、softmax 轴、阈值 |
| 推理延迟 | 尾部延迟满足截止时间 | 预热、批处理、预处理/后处理 |
失败示例:验证集污染
在经过数十次验证检查后选择架构、数据增强和随机种子会导致验证集过拟合。仅对未经修改的测试集进行一次评估,并记录搜索次数和选择规则。如果来自同一视频的相邻帧发生交叉分割,则文件级分割仍然无效。应根据确定独立性的实体进行分割:患者、车辆、生产批次或录制会话。
部署前检查清单
-
将代表性案例与手动计算或可信实现进行比较。
-
自动化小批量过拟合、有限梯度和保存/重新加载等效性测试。
-
对基线、候选模型和使用相同的输入和计时器对模型进行量化。
-
在 API 协议中加入无效、缺失或延迟输入的拒绝值和回退行为。
-
将模型、数据、代码提交、依赖项和评估结果整合到一个发布记录中。
神经网络工程的工作是使从数据到决策的路径可衡量。每次只增加一项变更,这样每次改进都有解释,每次出现问题都有已知的回滚点。
添加层总是能改进吗?
准确性?数据、优化、过拟合和计算也很重要。增加复杂性需要有证据表明在验证数据上有所改进。
评论
请先登录。
暂无数据。