Network Compression(李宏毅)机器学习 2023 Spring HW13 (Boss Baseline)

news/2025/1/12 12:40:49/
aidu_pl">

1. Introduction to Network Compression

深度学习中的网络压缩是指在保持神经网络性能的同时,减少其规模的过程。这非常重要,因为深度学习模型,尤其是用于自然语言处理或计算机视觉的大型模型,训练和部署的计算成本可能非常高。网络压缩通过降低内存占用并加快推理速度,在不牺牲精度的情况下,使模型更加高效。

网络压缩所使用的技术有:

1.1 Network Pruning

Network Pruning (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

对于网络剪枝,有一个彩票假设理论,该理论指出:“密集的、随机初始化的前馈网络中包含子网络(中奖票),当这些子网络单独训练时,其测试精度可以在类似的迭代次数下达到与原始网络相当的水平。这些中奖票之所以‘中奖’,是因为它们的连接权重初始值使训练特别高效。”(来源:论文链接)。

还有一篇关于神经网络重要性估计的论文也值得阅读。(来源:论文链接)

1.2 Knowledge Distillation

知识蒸馏(Knowledge Distillation, KD)是一种机器学习技术,其中一个较小且更简单的模型(称为学生模型)被训练以复制一个较大且更复杂的模型(称为教师模型)的行为。其目标是将教师模型的“知识”转移到学生模型,使得较小的模型在保持高性能的同时,在计算和内存方面更加高效。

knowledge distillation (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

在进行知识蒸馏时,一个常用的技巧是引入一个称为温度(temperature)的超参数。知识蒸馏中的温度用于使教师模型的输出概率分布更加平滑。它控制预测的置信度或分散程度,从而使学生模型更容易从教师模型的输出中学习。

teperature for softmax (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

1.3 Parameter Quantization

参数量化是一种模型压缩技术,通过用更少的位数表示神经网络的参数(权重和激活值),来减少内存占用和计算需求。与使用全精度(如32位浮点数)表示参数不同,参数量化使用低精度数据类型,例如16位、8位甚至二进制格式来存储和处理参数。

Parameter Quantization (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

Range Mapping and Clipping (source: https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-quantization)

这篇文章在解释和可视化量化方面做得非常出色: 文章链接。

1.4 Architecture Design

架构设计涉及创建内在高效的神经网络结构,通过减少模型规模、内存使用和计算复杂性来优化性能,而无需依赖训练后的压缩技术。与剪枝或量化不同,这种方法从一开始就专注于设计更小、更快且更高效的网络。

以卷积神经网络(CNN)为例,常规的卷积核如下:

Standard CNN (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

但是,我们可以引入一种新的卷积方式,即深度可分卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolution)。深度可分卷积对每个输入通道独立地应用一个单独的滤波器。逐点卷积则用于跨通道混合信息,它使用一个 1×1 的卷积核来调整输出通道的数量。

Depthwise and pointwise convolutions (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

与普通卷积相比,深度可分卷积的参数量大大减少,减少的比例约为 k×k。其中 k 是卷积核的大小。

Depthwise and pointwise convolutions (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

之所以有效,是因为它是一种低秩近似(low rank approximation)。

低秩近似是一种在机器学习神经网络中使用的技术,通过用较小的低秩矩阵来近似大矩阵,从而减少其规模和复杂度。其目标是捕捉最重要的信息,同时丢弃冗余部分,从而减少计算、存储和内存需求。在卷积神经网络中,深度可分卷积通过将传统的卷积操作分解为两个较小的操作(深度卷积和逐点卷积),有效地降低了计算量和参数数量,这正是低秩近似的一种应用。

Low-rank approximation (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

Low-rank approximation (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

1.5 Dynamic Computation

动态计算方法允许网络根据输入数据、网络当前状态或资源限制来调整其计算的操作数或层数。这种适应性可以发生在推理过程中(例如在测试图像上),甚至在训练过程中。通过动态地选择不同的计算路径或层,网络能够在保证性能的同时,优化计算资源的使用,提高效率。

Dynamic Depth (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

Dynamic Width (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/tiny_v7.pdf)

2. Homework Results and Analysis

机器学习作业13是网络压缩。

网络压缩:在不损失性能的情况下使模型更小。在这个任务中,我们需要训练一个非常小的模型来完成作业3(在Food-11数据集上进行图像分类)。

数据集仍然是Food-11,但顺序不同。

Dataset (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/HW13.pdf)

有一个特别的规定:确保你的模型的总参数数目小于或等于60,000。


http://www.ppmy.cn/news/1562503.html

相关文章

el-table 合并单元格

参考文章&#xff1a;vue3.0 el-table 动态合并单元格 - flyComeOn - 博客园 <el-table :data"tableData" border empty-text"暂无数据" :header-cell-style"{ background: #f5f7fa }" class"parent-table" :span-method"obj…

pytest+allure 入门

使用allure如何生成自动化测试报​​​​​​告 &#xff1f;一文详解allure的使用 。_allure测试报告-CSDN博客 例子&#xff1a; import allure import pytest import osallure.epic("闹钟") allure.feature("闹钟增删") class TestSchedule():def setu…

一键部署Netdata系统无需公网IP轻松实现本地服务器的可视化监控

文章目录 前言1.关于Netdata2.本地部署Netdata3.使用Netdata4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定Netdata公网地址 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。…

Elasticsearch学习(2) :DSL和RestClient实现搜索文档

之前的学习中——Elasticsearch学习(1) &#xff0c;我们已经导入了大量数据到elasticsearch中&#xff0c;实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以这篇我们研究下elasticsearch的数据搜索功能。我们分别使用DSL(Domain Specif…

Android14上使用libgpiod[gpioinfo gpioget gpioset ...]

环境 $ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.5 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.5 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="…

计算机视觉算法实战——实例分割

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​​ ​​​​​​​​​​​​ ​​​​​ 1. 算法基本原理✨✨ 实例分割&#xff08;Instance Segmentation&#xff09;是计算机视…

Adobe Flash,Flash Player和RTMP之间的关系

flash也有很多版本&#xff0c;主要就分为Adobe Flash和Flash Player&#xff0c;那么二者间有什么关联呢&#xff1f; 母公司都是Adobe&#xff0c;flashplayer主要是网页播放插件&#xff0c;有些时候电脑里也会内置flashplayer来播放swf矢量动画文件。而swf文件动画又是Ado…

Spring——自动装配

假设一个场景&#xff1a; 一个人&#xff08;Person&#xff09;有一条狗&#xff08;Dog&#xff09;和一只猫(Cat)&#xff0c;狗和猫都会叫&#xff0c;狗叫是“汪汪”&#xff0c;猫叫是“喵喵”&#xff0c;同时人还有一个自己的名字。 将上述场景 抽象出三个实体类&…