飞桨AI创造营2期-t6-模型优化

(Datawhale34期组队学习)


文章目录

  • 飞桨AI创造营2期-t6-模型优化
  • 1知识点
  • 2具体内容
  • 2.1模型结构优化
  • 2.1.1优化之路
  • 2.1.2senet-sknet-resnest
  • 2.2模型性能优化
  • 2.2.1量化
  • 2.2.2剪枝
  • 2.2.3知识蒸馏
  • 2.3模型训练优化
  • 2.3.1数据处理
  • 2.3.2超参数
  • 2.3.3Loss
  • 2.4模型自动搜索
  • 2.4.1搜空间
  • 2.4.2搜策略
  • 2.5工具
  • 3参考


1知识点

  • 模型结构优化
  • 模型性能优化
  • 模型训练优化
  • 模型自动搜索

2具体内容

cv例子:

  • 场景重构 scenereconstruction
  • 对象检测
  • 事件检测
  • 视频追踪
  • 对象识别
  • 三维姿态估计
  • 运动估计
  • 三维场景建模
  • 图形修复
  • 。。。

2.1模型结构优化

飞桨logistic回归练习 飞桨训练自己的模型_深度学习

2.1.1优化之路
  • 基于深度和参数量 lenet5-vgg
  • 基于宽带和多尺度 Inception多尺度设计和特征融合
  • 基于残差设计 Resnet设计skip connection,讲卷积层结果和输入层结合,增加信息在各层流动,缓解梯度消失
  • 基于不规则卷积 感受野调节,可变形卷积
  • 基于注意力机制 专注重点信息,空间域、通道域、层域、混合域
  • 基于Transformer 全局信息,处理长距离依赖关系,避免cnn归纳偏好,复杂度高
2.1.2senet-sknet-resnest

飞桨logistic回归练习 飞桨训练自己的模型_人工智能_02

2.2模型性能优化

固定精度,改模型:

  • 量化
  • 剪枝

固定模型,教师网络指导学生网络

  • 知识蒸馏
2.2.1量化

1.基于范围的线性量化:

  1. 非饱和方式:浮点数绝对值最大值映射到整数
  2. 饱和方式:按模型结构,计算浮点数阈值,映射到整数
  3. 放射:浮点最大最小映射

受离群点,float参数分布不均,造成量化损失增加

2.PACT量化

  1. 裁剪激活值范围
  2. PACT代替Relu
  3. 改进PACT,大于0,小于0的都要限制,得到更好的待量化范围
2.2.2剪枝

1.卷积重要性分析

  • l1
  • L2
  • 中位数

2.FPGM剪枝

  1. 中位数
  2. 两个循环:epoch;遍历网络每一层,算中位数,接近的剪枝(卷积核参数置0)
  3. 去为0卷积核
2.2.3知识蒸馏

1.迁移学习

  • 教师网络(精度高)
  • 学生网络(小网络)

2.种类

  1. Response based distillation - ssld
  2. Feature based distillation - pp-ocrv2
  3. Relation based distillation -RKD

3.ex
PaddleClass:ppcls/configs/ImageNet/Distillation/

2.3模型训练优化

  • 数据处理
  • 模型结构
  • 超参数
  • loss
  • 后处理
2.3.1数据处理
  • 随机裁剪、随机变换宽高比
  • 高斯模糊、中值模糊、马赛克
  • 亮度变化、对比度变化、色彩变化
  • 随机噪声、随机遮挡、复制粘贴
  • 旋转、平移、翻转、畸变
  • 大尺度训练,多尺度训练
2.3.2超参数
  • 学习率
  • 规范化参数
  • 批大小:适配算力;论文
  • 迭代轮数
2.3.3Loss
  • 类别loss
  • 交叉熵
  • Focal loss
  • Center loss
  • 位置
  • L1
  • L2
  • Smoth L1
  • IoU loss
  • GIoU loss
  • 语义分割
  • DICE loss
  • lovasz loss

2.4模型自动搜索

搜索空间(结构)-》策略(算法,参数)-》评估(评估模型)

2.4.1搜空间

micro-search或单元搜索

  • MNasNet,分解层次搜索空间,机器+人工
  • 一个网分多个块
  • 每块分多个层
  • 每层单独结构搜索
  • 微搜索
2.4.2搜策略
  • Once-for-all
  • SANAS
  • RLNAS
  • DARTS

ex:

  • PaddleSlim,SANAS实现搜索
  • 依赖库
  • 初始化SANAS搜索实例
  • 构建网络
  • 定义training
  • 定义输入数据函数
  • 定义评估函数
  • 完整实例

2.5工具

飞桨logistic回归练习 飞桨训练自己的模型_搜索_03

3参考

https://aistudio.baidu.com/aistudio/education/lessonvideo/2260904