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

devtools/2025/1/12 9:53:19/
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/devtools/149841.html

相关文章

采用GPT生成的Python 的 2048 游戏

采用GPT生成的Python 的 2048 游戏 文章说明核心代码效果展示源码下载 文章说明 采用GPT生成的一个小工具,作为一个python开发小游戏的demo,打发时间的小代码,后续可以考虑继续利用GPT生成更多有趣的小游戏 核心代码 2048小游戏-1.0版本 impo…

/src/utils/request.ts:axios 请求封装,适用于需要统一处理请求和响应的场景

文章目录 数据结构解释1. 核心功能2. 代码结构分析请求拦截器响应拦截器 3. 改进建议4. 总结 console.log(Intercepted Response:, JSON.stringify(response));{"data": {"code": 0,"msg": "成功","data": {"id":…

论文阅读:LDA-AQU:Adaptive Query-guided Upsampling via Local Deformable Attention

论文地址:arxiv 摘要 提出了一种上采样的模块,有着较好的效果。 正文 常见的上采样方法有最近邻插值和双线性插值,通过手动的范式从邻近点聚合特征。之后又提出了可学习的上采样方法,比如反卷积,像素洗牌等。但是这…

如何优化爬虫效率?

以下是一些优化爬虫效率和避免被网站封锁的技巧: 优化爬虫效率 使用并发技术: 多线程:适用于I/O密集型任务,如网络请求,通过Java的Thread或ExecutorService实现并发请求,提高数据抓取速度。多进程&#x…

Git 常用命令指南

Git 常用命令指南 基础命令 git init # 初始化Git仓库 git clone <url> # 克隆远程仓库 git status # 查看仓库状态 git add <file> # 添加文件到暂存区 git add . # 添加所有修改到暂存区 git commit …

Docker Compose etcd 服务

目录 /usr/etcd vim docker-compose.yml version: 3.7services:etcd:image: quay.io/coreos/etcd:v3.5.7container_name: etcdenvironment:- ETCD_DATA_DIR/etcd-data- ETCD_LISTEN_PEER_URLShttp://0.0.0.0:2380- ETCD_LISTEN_CLIENT_URLShttp://0.0.0.0:2379- ETCD_ADVERTI…

一个很实用的语音处理工具ClearerVoice-Studio

阿里巴巴刚刚开源了一个很实用的语音处理工具&#xff1a;ClearerVoice-Studio&#xff0c;它可以语音增强、语音分离和音视频说话人提取&#xff0c;可以用来处理会议录音、电话录音等等 功能&#xff1a; 1、语音降噪&#xff0c;把嘈杂的语音转成高质量、清晰的音频信号 2、…

多模态人工智能在零售业的未来:通过GPT-4 Vision和MongoDB实现智能产品发现

多模态人工智能在零售业的未来&#xff1a;通过GPT-4 Vision和MongoDB实现智能产品发现 引言 想象一下&#xff0c;顾客在购物时只需上传一张他们所期望的服装或产品的照片&#xff0c;几分钟内便能收到来自他们最喜欢的商店的个性化推荐。这就是多模态人工智能在零售领域所带…