神经网络模型优化学习笔记


参考文献链接: AI嵌入式系统:算法优化与实现

前言

神经网络的实现与优化方式:

  • 基本运算实现
  • 权重系数优化
  • 神经网络结构优化

一. 基本运算实现

二. 权重系数优化

三. 神经网络结构优化

  • 剪枝操作
    • 裁剪不必要的结构,降低运算量。
    • (细粒度)操作细节:
      • 找出待选的可修剪参数(即可以置零),将其固定为0;
      • 在部分参数固定后,补充训练神经网络,以弥补下降的网络性能;
      • 交替执行,直到达到可接受指标;
      • 为了减小权重系数数量,使得更多的权重系数接近于0,在损失函数中添加一个L1范数损失项。
    • (粗粒度)操作细节:
      • 删除卷积层中若干特征图, 同时消除相关运算;
      • 卷积层剪枝配合BN层进行,删除 ∥ α c ∥ \|\alpha_c \| αc小于门限的特征图来降低卷积运算量;
      • 补充训练(finetune) 调整剩余网络参数, 降低网络结构的改变带来的性能损失;
      • 交替执行,直到达到可接受指标;;
      • 某个特征图删除后,对应上游,下游的所有运算和数据均成为冗余;
      • 执行剪枝前提: 训练时,使得BN层有足够多的缩放因子接近0,在损失函数中添加所有BN层的缩放因子的绝对值之和, ∥ θ B N ∥ = ∣ α 1 ∣ + ∣ α 1 ∣ + ∣ α 1 ∣ + . . . \|\theta_{BN} \|=|\alpha_1|+|\alpha_1|+|\alpha_1|+ ... θBN=α1+α1+α1+...
  • 卷积结构优化
    • 按点卷积 (pointwise convolution)
      • 1*1 卷积
    • 按深度卷积(depthwise convolution)
      • 对每个通道特征图与对应卷积核卷积得到输出特征图;
      • 输出特征图的数目与输入特征图数目一致;
    • 深度可分离卷积(depthwise separable convolution)
      • 深度卷积与按点卷积的级联
    • MobileNet
      • MobileNet V2
        1. 反残差模块(inverted residual):
          反残差模块
        2. 以滑动步长为2的卷积运算环节,取代神经网络的池化运算
      • MobileNet V3
        1. 激活函数进行了修改
        2. 网络架构的自动搜索
  • 知识蒸馏
    • 基本过程:
      • 先训练大而复杂的神经网络(教师网络)。
      • 构建小型神经网络(学生网), 用大神经网络从输入数据中提取的中间信息来帮助训练小网络。
      • 教师网络仅进行推理操作,学生网负责训练过程;

总结

	学会针对不同系统运算特点,尝试多种可能的改进方式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值