【算法岗面试题】深度学习中如何防止过拟合?

这是个深度学习中比较常见的问题。网上有好多解答,我就梳理一下:

1. 更换网络结构

首先从模型上解决的一个很好的例子是rsnet可以缓解过拟合的风险,更深的网络通常更容易过拟合 ,但ResNet通过**跳跃连接(skip connections)**,使梯度能够有效传播,避免梯度消失问题,同时让模型能学习更深层次的特征。通过可以参考。

hyshhh:何恺明ResNet(残差网络)------彻底改变深度神经网络的训练方式

2. 早停法

然后进行早停法也是一种提高泛化能力的方法它通过监控验证集损失(Validation Loss),在模型开始过拟合之前停止训练,从而提高泛化能力。

  • 初始阶段 :训练损失 & 验证损失 都下降(模型正在学习)。
  • 中期阶段 :训练损失继续下降,但验证损失下降变慢(模型学习到较好的特征)。
  • 后期阶段 :训练损失继续下降,但验证损失开始上升 (模型过拟合,记住了训练数据的细节,但无法泛化到新数据)。 早停法的关键 : 当发现验证集损失不再下降或开始上升 ,就停止训练,防止模型在训练集上过度拟合。

3. 更换损失函数

Focal Loss(焦点损失,适用于类别不均衡)

  • 为什么?
  • 传统交叉熵容易被简单样本主导,导致模型忽视难分类样本。
  • Focal Loss 降低了对易分类样本的关注,并强化了对困难样本的学习。
  • 适用任务:目标检测(如 RetinaNet)、医学图像分类、小样本分类。

4. 数据增强

数据增强是一种最常见的提高泛化能力的方式

(1) 数据增强(Data Augmentation)

  • 通过对训练数据进行变换,增加数据多样性,使模型学习到更加稳健的特征,防止过拟合。
  • 图像任务
  • 几何变换(旋转、缩放、翻转、剪切)
  • 颜色扰动(亮度、对比度、色调变化)
  • Cutout、Mixup、CutMix(随机遮挡或混合样本)
  • 时序任务
  • 时间窗口变化、随机抖动、噪声扰动

(2) 数据清理 & 去噪

  • 确保数据标注准确,避免错误标签影响模型学习(Label smoothing 也可以缓解标注错误的影响)。
  • 处理噪声数据,减少错误示例对模型学习的干扰。

(3) 增大数据集

  • 采集更多真实数据(如果可能)。
  • 使用合成数据(如GAN生成数据、物理仿真数据)。
  • 半监督学习 & 伪标签(利用未标注数据进行训练)。

5. 正则化

比较少见的一种是对正则化的处理,主要方法如下

L1/L2 正则化(权重衰减,Weight Decay) L1 正则化 :鼓励稀疏性(让部分权重变为0)。 L2 正则化 (常见于AdamW、SGD):防止权重过大,减少过拟合。 Dropout (随机丢弃神经元): 训练时随机让部分神经元失效,防止神经元对特定模式的过度依赖。 **Batch Normalization / Layer Normalization:**归一化输入分布,提高训练稳定性,减少对特定样本的过拟合。

推荐阅读:

hyshhh:李沐ResNest:残差网络(resnet)经典改进深入解析------Split-Attention Networks。

hyshhh:【论文】ICCV2017------Soft-NMS一种NMS(非极大值抑制)的改进方法

hyshhh:【qzzh感知算法岗面试】NMS------YOLO网络中的NMS(非极大值抑制)算法作用原理

hyshhh:何恺明ResNet(残差网络)------彻底改变深度神经网络的训练方式

相关推荐
骇客野人30 分钟前
Spring Cloud Gateway解析和用法
运维·网络
拾忆,想起33 分钟前
Dubbo超时问题排查与调优指南:从根因到解决方案
服务器·开发语言·网络·微服务·架构·php·dubbo
晨非辰1 小时前
数据结构排序系列指南:从O(n²)到O(n),计数排序如何实现线性时间复杂度
运维·数据结构·c++·人工智能·后端·深度学习·排序算法
2301_812914872 小时前
简单神经网络
人工智能·深度学习·神经网络
小曹要微笑2 小时前
STM32H7系列全面解析:嵌入式性能的巅峰之作
c语言·stm32·单片机·嵌入式硬件·算法
寻星探路2 小时前
JavaSE重点总结后篇
java·开发语言·算法
koo3643 小时前
pytorch环境配置
人工智能·pytorch·python
松涛和鸣4 小时前
14、C 语言进阶:函数指针、typedef、二级指针、const 指针
c语言·开发语言·算法·排序算法·学习方法
yagamiraito_6 小时前
757. 设置交集大小至少为2 (leetcode每日一题)
算法·leetcode·go
星释6 小时前
Rust 练习册 57:阿特巴什密码与字符映射技术
服务器·算法·rust