第9章:深度学习的工程实践
数据预处理与增强
1. 数据预处理的核心步骤
- 数据清洗
- 处理缺失值(均值填充/插值/删除)
- 异常值检测(Z-score、IQR方法)
- 重复数据去重
- 数据标准化与归一化
- Min-Max归一化:
- Z-score标准化:
- 类别数据处理
- 独热编码(One-Hot Encoding)
- 标签编码(Label Encoding)
2. 数据增强技术
图像数据增强
- 几何变换
- 随机旋转、翻转(水平/垂直)、裁剪、缩放
- 颜色空间变换
- 亮度、对比度、饱和度调整
- 添加噪声(高斯噪声、椒盐噪声)
- 高级增强方法
- Mixup:线性插值混合样本
- Cutout:随机遮挡图像区域
- Mixup:线性插值混合样本
文本数据增强
- 同义词替换(基于Word2Vec/GloVe)
- 回译(翻译至其他语言再译回)
- 随机插入/删除/交换词语
3. 工具与框架实践
- 图像处理库
# 使用OpenCV实现随机旋转 import cv2 angle = 30 # 旋转角度 M = cv2.getRotationMatrix2D((width/2, height/2), angle, 1) rotated_img = cv2.warpAffine(img, M, (width, height)) - 文本增强工具
# 使用nlpaug库进行文本增强 import nlpaug.augmenter.word as naw aug = naw.SynonymAug(aug_src='wordnet') augmented_text = aug.augment("Original text")
4. 实际案例
- 医学影像分析
- 问题:数据量少且标注成本高
- 解决方案:弹性变形(Elastic Deformation)+ 灰度值扰动
- 自然语言处理
- 问题:文本分类任务中的类别不平衡
- 解决方案:SMOTE过采样 + 回译增强
5. 注意事项
- 避免测试集污染:增强仅应用于训练集
- 领域适配性:医疗影像增强需保留病理特征
- 计算成本权衡:实时增强 vs 离线增强
关键点总结:数据预处理决定了模型输入的质量,而数据增强是解决小样本问题的有效手段,需结合任务特性选择方法。
此内容包含数学公式、代码示例和结构化列表,可直接用于书籍编写。如需调整技术深度或补充具体案例,可进一步扩展。