深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍

简介: 神经网络剪枝是一种通过移除不重要的权重来减小模型大小并提高效率的技术,同时尽量保持模型性能。

1:What is pruning

剪枝是一种模型压缩的方法,这种方法可以有效的裁剪模型参数且最小化精度的损失。由于深度学习模型可以看作是一个复杂树状结构,如果能减去一些对结果没什么影响的旁枝,也就是修剪神经网络中不重要的权重,就可以实现模型的减小。比如说看下图

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

我们通过观察这个函数发现有些项对应的系数是很小的,也就是说对于拟合的贡献不是很大,如果我们把系数小的去掉得到-1.2x^2-2x-8的式子,得到下图

在这里插入图片描述

这时候我们可以观察到这时候拟合出来的效果它的泛化能力更好,更加不会过拟合。这也是剪枝的最基本的原理,总而言之就是把不重要的参数去掉。

2:Pruning in MLP(多层感知机)

在多层感知机中,剪枝也就是减去不重要的权重,也就是近似为0的权重。

在这里插入图片描述

拿到最初的权重矩阵之后,在生成一个叫掩码的矩阵,也就是说如果原来的权重比较接近于0,我们就把它的掩码置为0,最后在通过原来的权重矩阵乘以掩码矩阵就可以得到新的矩阵。新的参数矩阵对应的就是上面这个连接图,没有连的就相当于被置0了。

2.2 How to make mask

在这里插入图片描述
numpy里面的这个函数相当方便,percentile:一组n个观测值从小到大排序,处于p%位置的值称第p百分位数。

也就是说通过np.abs()求完绝对值后,在通过np.percentile(,50)减去50%没必要的权重,后面得到的0.6意思是小于0.6的权重将被剪掉,被置为0.

3.Pruning in CNN(卷积神经网络)

在这里插入图片描述
中间是4个卷积核,左边是输入的特征图,右边是输出的特征图,输入的特征图对每个卷积核都进行一个卷积,中间黑色的部分是我们观察到这个卷积核的参数特别的小,置为0之后将会对output产生影响,也就是有1/4的部分都为0.和上面一样也需要设置一个mask,然后去计算每个卷积核的L2范数,如果小的话直接去掉,去掉的话就是直接乘以mask

目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 运维
网管不再抓头发:深度学习教你提前发现网络事故
网管不再抓头发:深度学习教你提前发现网络事故
172 2
|
3月前
|
机器学习/深度学习 存储 PyTorch
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
Neural ODE将神经网络与微分方程结合,用连续思维建模数据演化,突破传统离散层的限制,实现自适应深度与高效连续学习。
203 3
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
|
2月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
5月前
|
机器学习/深度学习 人工智能 算法
Wi-Fi老是卡?不如试试让“深度学习”来当网络管家!
Wi-Fi老是卡?不如试试让“深度学习”来当网络管家!
295 68
|
4月前
|
机器学习/深度学习 算法 数据库
基于GoogleNet深度学习网络和GEI步态能量提取的步态识别算法matlab仿真,数据库采用CASIA库
本项目基于GoogleNet深度学习网络与GEI步态能量图提取技术,实现高精度步态识别。采用CASI库训练模型,结合Inception模块多尺度特征提取与GEI图像能量整合,提升识别稳定性与准确率,适用于智能安防、身份验证等领域。
|
8月前
|
机器学习/深度学习 人工智能 运维
AI“捕风捉影”:深度学习如何让网络事件检测更智能?
AI“捕风捉影”:深度学习如何让网络事件检测更智能?
316 8
|
9月前
|
机器学习/深度学习 数据采集 算法
基于MobileNet深度学习网络的MQAM调制类型识别matlab仿真
本项目基于Matlab2022a实现MQAM调制类型识别,使用MobileNet深度学习网络。完整程序运行效果无水印,核心代码含详细中文注释和操作视频。MQAM调制在无线通信中至关重要,MobileNet以其轻量化、高效性适合资源受限环境。通过数据预处理、网络训练与优化,确保高识别准确率并降低计算复杂度,为频谱监测、信号解调等提供支持。
|
9月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
548 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
9月前
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
380 0

热门文章

最新文章