机器学习——压缩网络作业

文章目录

任务描述

  • 网络压缩:使用小模型模拟大模型的预测/准确性。
  • 在这个任务中,需要训练一个非常小的模型来完成HW3,即在food-11数据集上进行分类。

介绍

有许多种网络/模型压缩的类型,这里介绍两种:

  • 知识蒸馏:让小模型通过观察大模型学习时的行为(预测)来学习得更好。(字面上:让小模型从大模型中提取知识)
  • 设计架构:使用更少的参数来表示原始层。(例如,普通卷积 - 深度卷积和逐点卷积)
  • 如果对网络剪枝感兴趣,可以查看ML-Spring2020-HW7中的Colab教程。

知识蒸馏

  • 在训练小模型时,添加大模型的一些信息(例如预测的概率分布)以帮助小模型更好地学习
  • 提供了一个训练良好的网络,以帮助您进行知识蒸馏(准确率约为0.855)
  • 请注意,在写作业时,只能使用我们提供的预训练模型

网络设计

  • 深度卷积和逐点卷积层(MobileNet中提出)
    • 可以将原始卷积视为密集/线性层,但每行/每个权重是一个滤波器,原始乘法变成了卷积操作。(输入权重 - 输入滤波器)
    • 深度卷积depthwise:让每个通道首先通过各自的滤波器,然后让每个像素通过共享权重的密集/线性层。
    • 逐点卷积pointwise:是一个1x1卷积。
  • 强烈建议使用类似的技术来设计您的模型。 ( N M k k / N k k + N M ) (NMkk / Nkk+NM) (NMkk/Nkk+NM)
    参数量变少很多

Baseline

  • 简单基准(2分,准确率≥0.59856,2小时)
    • 只需运行代码并提交答案。
  • 中等基准(2分,准确率≥0.65412,2小时)
    • 完成知识蒸馏中的损失并控制 alpha 和 T。
  • 强基准(1.5分,准确率≥0.72819,4小时)
    • 通过深度和逐点卷积层修改模型架构。
      • 可以从 MobileNet、ShuffleNet、DenseNet、SqueezeNet、GhostNet 等获取优秀的想法。
    • 在 HW3 - CNN 中学到的任何技术和方法。例如,加强数据增强,修改半监督学习等。
  • Boss Baseline (0.5 pts, acc ≥ 0.81003)
    • 让教师网络更加强大。
      • 如果教师网络太强大,可以考虑TAKD技术。
    • 实施其他高级知识蒸馏。
      • 例如,DML,关系KD ...
    • 如果模型参数数量略大于约束值(100,000),可以使用网络剪枝。
    • 如果对之前的技术感到困惑,可以查看去年TA的课程。(幻灯片,视频)

实践









  • group convolution: 类似于Alexnet,分成一组一组的,alexnet里面是一半一半
  • depthwise,需要将groups设置成in_chs







  • 语料要干净
  • 由于有一个学习过的大模型,让它教导其他小模型。在实现中,让训练目标为大模型的预测,而不是地面真相。

为什么有效?

  • 如果数据不干净,那么大模型的预测可能会忽略带有错误标记数据的噪声。
  • 标签可能具有某些关系。例如,数字8更类似于6、9、0,而不是1、7。
  • hard loss + soft loss

    教师模型设置
  • 提供一个经过良好训练的教师模型,以帮助进行知识蒸馏到学生模型。请注意,如果想更改转换函数,应该考虑是否适合这个经过良好训练的教师模型。
  • 如果无法成功下载,请更改链接(在此Colab教程的底部提供了备用链接)。

在未标记的数据中生成伪标签是一种半监督学习的技术,它可以帮助利用未标记数据来提高模型的性能。生成伪标签的一般步骤如下:

  1. 使用已训练的模型进行推理:首先,使用已经在标记数据上训练好的模型对未标记数据进行推理,得出模型对这些数据的预测结果。

  2. 选择置信度阈值:为了生成可靠的伪标签,需要设置一个置信度阈值。只有当模型对样本的预测置信度高于这个阈值时,才会为该样本生成伪标签。

  3. 生成伪标签:对于那些置信度高于阈值的样本,将模型的预测结果作为它们的伪标签。

  4. 结合标记数据和伪标签数据:将生成的伪标签与已有的标记数据结合起来,形成一个扩充的训练集。

  5. 重新训练模型:使用包含标记数据和伪标签数据的扩充训练集重新训练模型,以提高模型性能和泛化能力。

需要注意的是,在生成伪标签时要谨慎选择置信度阈值,以确保伪标签的质量和对模型性能的提升有益处。








相关推荐
王飞飞不会飞4 分钟前
Mac 安装Hermes Agent 过程记录
运维·深度学习·机器学习
数字供应链安全产品选型7 分钟前
AI全生命周期安全:从开发到下线,悬镜安全灵境AIDR如何覆盖智能体每一个环节?
人工智能
2501_933329557 分钟前
企业舆情处置实战:Infoseek数字公关AI中台技术架构与功能解析
大数据·人工智能·架构·数据库开发
带娃的IT创业者10 分钟前
深度解析 Claude Design:如何利用 Anthropic 最新设计范式构建 AI 原生应用
人工智能·python·llm·claude·应用开发·anthropic·ai原生应用
QC·Rex12 分钟前
Spring AI MCP Apps 实战:打造聊天与富 UI 融合的智能化应用
人工智能·spring·ui·spring ai·mcp
是梦终空13 分钟前
计算机毕业设计271—基于python+深度学习+YOLOV7的车牌识别系统(源代码+数据库+3万字论文)
python·深度学习·opencv·yolo·毕业设计·pyqt5·车牌识别系统
koharu12314 分钟前
大模型后训练全解:SFT、RLHF/PPO、DPO 的原理、实践与选择
人工智能·llm·后训练
AI科技星23 分钟前
精细结构常数α的几何本源:从第一性原理的求导证明、量纲分析与全域验证
算法·机器学习·数学建模·数据挖掘·量子计算
Kel32 分钟前
LangChain.js 架构设计深度剖析
人工智能·设计模式·架构
百度Geek说33 分钟前
我把 Karpathy 的 AutoResearch 搬到了软件开发领域,效果炸了
人工智能