李宏毅老师课程:Network Compression

Hung-Yi Lee homework[7]: Network Compression Hung-Yi Lee homework[7]: Network Compression一、知识蒸馏1.1 知识蒸馏的理论依据   李宏毅老师上课介绍了四种network compression的方式(知识蒸馏,网路剪枝,网络重构,参数量化)在此进行一个整理。 一、知识蒸馏   主要思想:通过使用一个较大的已经训练好的网络去训练一个较小的网络,使得小网络可以尝试复制出大网络的输出。 1.1 知识蒸馏的理论依据   知识蒸馏使用Teacher-Student模型。知识蒸馏的过程分为2个阶段: 原始模型训练 阅读详情

Why ?

在未来我们可能需要model放到model device上面,但这些device上面的资源是有限的,包括存储控价有限和computing power有限
在这里插入图片描述

Network Pruning(修剪)

Network can be pruned

在这里插入图片描述

Network Pruning

对于训练好的network,我们要判断其weight和neural的重要性:

  • 如果某个weight接近于0,那么我们可以认为这个weight是不那么重要的,是可以pruning的;如果是某个很正或很负的值,该weight就被认为对该network很重要;
  • 如果某个neural在给定的dataset下的输出都是0,那么我们就可以认为该neural是不那么重要的
    在这里插入图片描述
    在评估出weight和neural的重要性后,再进行排序,来移除一些不那么重要的weight和neural,这样network就会变得smaller,但network的精确度也会随之降低,因此还需要进行fine-tuning

最好是每次都进行小部分的remove,再进行fine-tuing,如果一次性remove很多,network的精确度也不会再恢复

Why Pruning?

那么为什么不直接train一个小的network呢?

因为小的network比较难train,大的network更容易optimize(优化)

Lottery Ticket Hypothesis(彩票假说)

我们先对一个network进行初始化(红色的weight),再得到训练好的network(紫色的weight),再进行pruned,得到一个pruned network

  • 如果我们使用pruned network的结构,再进行随机初始化random init(绿色的weight),会发现这个network不能train下去
  • 如果我们使用pruned network的结构,再使用原始随机初始化original random init(红色的weight),会发现network可以得到很好的结果

train这个network就像买大乐透一样,有的random可以tranin起来,有的不可以
在这里插入图片描述

Pratical Issue(实际问题)

如果我们现在进行weight pruning,进行weight pruning之后的network会变得不规则,有些neural有2个weight,有些neural有4个weight,这样的network是不好implement(实行)出来的;

GPU对矩阵运算进行加速,但现在我们的weight是不规则的,并不能使用GPU加速;

实做的方法是将pruning的weight写成0,仍然在做矩阵运算,仍然可以使用GPU进行加速;但这样也会带来一个新的问题,我们并没有将这些weight给pruning掉,只是将它写成0了而已
在这里插入图片描述
实际上做weight pruning是很麻烦的,通常我们都进行neuron pruning,可以更好地进行implement,也很容易进行speedup
在这里插入图片描述

Knowledge Distillation

Student and Teacher

我们可以使用一个small network(student)来学习teacher net的输出分布(1:0.7…),并计算两者之间的cross-entropy,使其最小化,从而可以使两者的输出分布相近
在这里插入图片描述
teacher提供了比label data更丰富的资料,比如teacher net不仅给出了输入图片和1很像的结果,还说明了1和7长得很像,1和9长得很像;所以,student跟着teacher net学习,是可以得到更多的information的

Ensemble(合奏)

在实际生活中,设备往往放不下太多的model,这时我们就可以使用Knowledge Distillation的思想,使用student net来对teacher进行学习,在实际的应用中,我们只需要student net的model就好
在这里插入图片描述

Temperature

在这里插入图片描述

Parameter Quantization(参数量化)

在这里插入图片描述

Architecture Design(架构设计)

Low rank approximation(低阶近似)

中间插入一个linear层,大小为K,那么也可以减少需要训练的参数
在这里插入图片描述

Review: Standard CNN

每个filter要处理所有的channel
在这里插入图片描述

Depthwise Separable Convolution(深度可分离卷积)

每个filter只处理一个channel,不同channel之间不会相互影响
在这里插入图片描述
和一般的convolution是一样的,有4个filter,就有4个不同的matrix
在这里插入图片描述
第一步用到的参数量为3 x 3 x 2 = 18,第二步用到的参数量为2 x 4 = 8,一共有26个参数

Standard CNN vs Depthwise Separable Convolution

在这里插入图片描述
在这里插入图片描述

Dynamic Computation

在这里插入图片描述
在这里插入图片描述
本文图片来自李宏毅老师课程PPT,文字是对李宏毅老师上课内容的笔记或者原话复述,在此感谢李宏毅老师的教导。

Matlab结果性能评价---rms函数(计算矩阵、数组和向量元素均方根) 实例1:创建一个向量(正弦波)并计算其均方根值 实例2:创建一个二维矩阵并计算其均方根值 实例3:计算二维矩阵沿指定维度的均方根值 本例程配套完整源码下载 均方根(Root-Mean-Square Level): 向量x的均方根值为沿着指定的维度执行求和: 语法描述: y = rms(x)返回输入x的均方根值。如果x是行或列向量,y是实数值标量。对于大小尺寸大于1矩阵x,y包含沿x的第一个数组维度计算的均方根值。例如,如果x是N > 1的N*M矩阵,那么y是1*M行向量,对应x矩.. 阅读详情

相关推荐

[亚信线上教学] AX58100: EtherCAT从站设备仿真功能设计教学

什么情况需要开启EtherCAT从站设备仿真功能呢? 一般来说, 当EtherCAT从站产品,不需要使用额外的微控制器介入,或使用不具备EtherCAT从站通讯协议栈的微控制器一同协作的情况下,就必须开启EtherCAT从站设备仿真功能,这样EtherCAT主站才能够正常设置从站设备的工作状态. 亚信AX58100 EtherCAT从站控制芯片的优点 AX58100 EtherCAT从站控制器, 集成2个百兆以太网Phis, 并支持一些额外的控制接口, 例如脉冲宽度调变, 增量, 霍尔编码器, .

allanchou1的专栏 7426

机器学习-27-Network Compression( 网络压缩)

文章目录Network Pruning(修剪)INTRODUCTIONWhy PruningLottery Ticket Hypothesis(大乐透假说)Rethinking the Value of Network PruningPractical IssueKnowledge Distillation(知识蒸馏)Student and TeacherEnsemble(合奏)TemperatureParameter Quantization(参数量化)less bitsweight clustering

迷雾总会解 1456

通俗理解Xgboost

为了简化计算,XGBoost采用了一阶导数(梯度)和二阶导数(Hessian)来近似损失函数的变化,从而推导出叶子节点值的更新公式。其中 z 就是所有树的叶子节点分数之和。通过这两个正则化项,XGBoost能够在优化目标函数时,不仅考虑损失函数的最小化,还考虑了模型的复杂度,从而达到更好的泛化性能。正则化项通常包括两个部分:一个是与叶子节点数量相关的项,另一个是与叶子节点输出值大小相关的项。通过这种方式,XGBoost能够有效地计算出每个叶子节点的值,同时通过正则化项来平衡模型的复杂度和泛化能力。

金融风控笔记 755

李宏毅机器学习笔记—— 15. Network Compression( 网络压缩)

摘要: 本章主要是讲解了 文章目录Network Compression( 网络压缩)1. Network Pruning(网络剪枝)1.1 Network can be Pruned2. Knowledge Distillation(知识蒸馏)3. Parameter Quantization(参数量化)4. Architecture Design(架构设计)5. Dynamic Computation(动态计算)6. 总结与展望 Network Compression( 网络压缩) Network C

weixin_44790306的博客 4511

OAI数据集申请下载全攻略:从个人NDA账号注册到数据包下载的保姆级避坑指南

本文提供OAI数据集申请下载的完整指南,涵盖从个人NDA账号注册到数据包下载的全流程。重点解析login.gov验证陷阱、浏览器兼容性问题、NDA权限申请技巧及nda-tools高效使用方法,帮助医学影像研究者避开常见技术障碍,快速获取全球骨关节炎研究数据库OAI的宝贵数据资源。

weixin_28698059的博客 754

UE5垃圾回收优化实战:定位GC卡顿与内存泄漏

垃圾回收(GC)是Unreal Engine 5中保障UObject内存安全的核心机制,其基于引用图的标记-清除原理决定了性能高度依赖引用结构合理性。当GC频繁触发或单次耗时突增,往往映射出蓝图强引用冗余、C++根对象管理失控或资源生命周期设计缺陷等底层问题。技术价值在于降低主线程阻塞、稳定60帧体验、抑制内存异常增长;典型应用场景包括关卡切换卡顿、UI打开后持续GC、打包后内存不释放等。本文聚焦UE5特有的Full GC模式、UObject生命周期约束及GC触发时机不可见性,提供从蓝图变量规范、TSoft

weixin_31995251的博客 363

Lesson 18 Network Compression

听课(李宏毅老师的)笔记,方便梳理框架,以作复习之用。本节课主要讲了Network Compression,包括为什么要压缩,压缩的主要手段(pruning,knowledge distillation,parameter quantization,architecture design,dynamic computation)

qq_52641289的博客 814

最大面积验证码通用解法

最大面积验证码、面积验证通用解法

九月镇灵将的博客 1044

Network Compression 网络压缩

网络压缩(Network Compression):就是把一个大的网络压缩成一个小的网络。现如今,手机设备、手表等都比较流行,但我们平常训练的网络都比较大,在一些“小”的设备或许很难存储和运行。所以这就需要把网络进行压缩。 常用的方法: Network Pruning(网络剪枝):将训练完的network不重要的参数或神经元进行删除,然后在训练一次。在我们训练网络时,有的参数或者神经元其实并没有起作用或者起很大的作用,所以可以把这些参数或者神经元删除,然后在训练一遍。但为什么要再训练一遍呢,因为你删除参数或

01世界的博客 1023

华为OD机试真题-国际移动用户识别码(IMSI)匹配

华为OD机试双机位C卷 国际移动用户识别码(IMSI)匹配 , 提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 国际移动用户识别码(IMSI)匹配

qq_45776114的博客 4927

paddle 43 用onnxruntime实现ppyoloe模型的部署(含python和c++版本)

PP-YOLOE+是PP-YOLOE模型的升级版,PP-YOLOE+_l在COCO test-dev2017达到了53.3的mAP, 同时其速度在Tesla V100上达到了78.1 FPS。PP-YOLOE+_s/m/x同样具有卓越的精度速度性价比。paddle官方只给出了基于paddle框架的部署案例,为了更好的部署,为此实现将paddle模型转换为onnx模型,然后在python下实现onnxruntime部署。后续会补充c++ onnxruntime部署

a486259的博客 1916

深度学习中模型压缩(Network Compression)的几种方法(李宏毅视频课总结)

文章目录0 前言1 Network Pruning(网络剪枝)1.1 Base method1.2 Weight Pruning1.3 Neuron Pruning2 Knowledge Distillation(知识蒸馏)3 Parameter Quantization (参数量化)3.1 Base Method3.2 Binary Weight(二元权值)4 Architecture Design(结构设计)4.1 Low Rank Appropriation4.2 Depthwise Separabl

双鸭山•克里菲斯•北方孤星之堕 3746

智能车浅谈——手把手让车跑起来(电磁篇)

手把手让你的电磁车上路。

qq_41954556的博客 7万+

李宏毅学习笔记20.Network Compression

NETWORK COMPRESSION 由于未来我们的模型有可能要运行在很多类似手机,手表,智能眼镜,无人机上,这些移动终端的算力和存储空间有限,因此要对模型进行压缩(变小)。本节内容从五个方面进行展开。当然也可以根据具体的硬件平台定制专门的模型架构(本节不涉及这些内容)。

老毛的博客 921

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【李宏毅2020 ML/DL】P45-50 Network Compression

模型压缩各个技术的介绍。

记录学习痕迹的公众号:Piper蛋窝 1159

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

李宏毅作业七其二 Network Compression (Knowledge Distillation)

Network Compression ——Knowledge Distillation前言一、knowledge distillation是什么?1.原理2.KL散度3.Readme二、使用步骤1.引入库2.读入数据总结 前言 知识蒸馏,实质上就是用训练好的网络告诉没训练的网络如何学习。 一、knowledge distillation是什么? 1.原理 知识蒸馏(暗知识提取)的概念,即通过引入与教师网络(teacher network:复杂、但推理性能优越)相关的软目标(soft-target)作为.

闲看庭前雪的博客 1675

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【李宏毅2020 ML/DL】P52 Network Compression - Network Pruning

讨论了剪枝的基准,以及“大乐透”与Rethinking的讨论。

记录学习痕迹的公众号:Piper蛋窝 1109

【学习笔记】李宏毅2020ML&DL课程 1_6-6_6 Network Compression

Network Compression 1_6 先train好一个大的network,然后评估network中哪些neuron重要,哪些不重要。如果weight接近0可能是不重要的weight。给一个input,如果output几乎都是0,那这个neuron就不重要。 将这些neuron按照重要性排序,移除不重要的weight和neuron。移除最不重要的weight或neuron,所以perfo...

锥栗的博客 333

深度学习(十四)network compression

李宏毅老师课程链接 为能够把神经网络放到移动端设备或者能进行实时计算,就需要压缩网络的大小提高效率。 本节介绍几种压缩网络的办法 network pruning 一个庞大的网络中,其实有很多节点和权重几乎是没有作用的,那么压缩网络最直接的方式当然就是把这些没用的剪掉。 网络剪枝的大概步骤如下: 首先要训练好一个较大的网络,然后评估网络中每个节点或者每个权重的重要性,去除那些不重要的部分。最后再次训练恢复网络的功能。 一次去除可能是不够的,一般需要多次迭代剪枝。 ...

qq_43533956的博客 358

李宏毅机器学习network compression(网络压缩) 学习笔记

由于现代智能设备逐渐趋于小型化,小型芯片的算力无法支持很深的网络模型计算,因此产生了network compression的需求。 network compression共有几种方法: 1.参数/神经元的修剪 由于修剪参数(weight)会导致无法使用gpu cuda加速矩阵运算,因此一般选择减少神经元,即通过评估每个神经元的重要性(weight的值是否接近0,计算L1或L2的数值/对神经元:若不管输入是什么,神经元输出的都接近0则不重要) 为什么要做修剪,而不是一开始就用比较小的网络结构:因为参数比较多的

irony_202的博客 570

【李宏毅2020 ML/DL】P51 Network Compression - Knowledge Distillation | 知识蒸馏两大流派

详细讨论了知识蒸馏,包括 Logits Distillation 与 Feature Distillation 两大流派。

记录学习痕迹的公众号:Piper蛋窝 1836

2020李宏毅学习笔记——34.Network Compression(3_6)

3.Knowledge Distillation(知识蒸馏) 整个知识蒸馏过程中会用到两个模型:大模型(Teacher Net)和小模型(Student Net)。 3.1 具体方法 先用大模型在数据集上学习到收敛,并且这个大模型要学的还不错,因为后面我们要用大模型当老师来教小模型学习嘛,如果大模型本身都没学好还教个锤子,对吧?1和7长得蛮像的。所以这里的损失函数用的是交叉熵,不能用简单的平方差之类的。 3.2 举例子 我们以MNIST数据集为例,假设大模型训练好了,现在对于一张数字为“1”的图像,大模型

weixin_44554337的博客 213

机器学习11-NETWORK COMPRESSION

东阳的学习记录,坚持就是胜利! 文章目录为什么需要做网络压缩常用的网络压缩方法Network PruningNetwork Pruning的步骤为什么选择裁减而不是直接训练一个小的网络Knowledge Distillation为什么跟着Teacher训练会比单独训练好Parameter QuantizationBinary Weights(不太懂)结构设计(在运用中最有效的)Low rank approximationDepthwise Separable Convolution(通道分离卷积)一些值.

qq_22473333的博客 233

[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩

1、监督自己把50多个小时的视频看下去,所以每看一部分内容做一下笔记,我认为这是比较有意义的一件事情。 2、路漫漫其修远兮,学习是不断重复和积累的过程。怕自己看完视频不及时做笔记,学习效果不好,因此想着做笔记,提高学习效果。 3、因为刚刚入门深度学习,听课的过程中,理解难免有偏差,也希望各位大佬指正。虽然大的模型效果不错,但是小的模型同意有应用市场。需要把模型跑在资源有限的情况下比如手表,这种情况就不适合用大的模型。如果传到云端,但是可能会有延时(自动驾驶),同时可能涉及隐私安全。所以我们需要小的模型,但是

weixin_45920982的博客 422

李宏毅课<一>:神经网络的模型压缩方法Network Compression

模型压缩是为了 可以用更少的参数来实现不错的效果。一方面是为了在延迟性、隐私性等等。 网络剪枝 把网路的一些冗杂的参数剪掉。有些参数并没有起到很大的效果。我们要做的事情把这些冗杂的参数找出来,并裁掉。 90年代已经有人发表相关的论文,比如optimal brain damage等等优秀论文。 那么网络剪枝是怎么做的呢,大概的流程是怎么样子的呢? (1)首先训练的一个大的network (2)评估每一个参数/神经元的重要程度 那么怎么去评估这个重要性呢?最简单的方法是看他的绝对值。这个参数的绝对值越大,表示对

Jiana_Feng的博客 1165

李宏毅机器学习课程梳理【十六】:Network Compression(压缩深度神经网络)

Network Compression 在一些移动设备上,如智能手机、智能手表、机器人、无人机飞行器等设备,没有足够的存储空间去使用训练好的模型,因为深度神经网络可能过于庞大。 Network Pruning 现在训练出来的模型是参数冗余的 ...

-Belladonna的博客 601
上一篇: 李宏毅老师课程:Attack ML Models
下一篇: 李宏毅老师课程:Conditional Generation by RNN & Attention
APythonC
博客等级 码龄7年 23粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值