文章目录

  • 1:What is pruning
  • 2:Pruning in MLP(多层感知机)
    • 2.2 How to make mask
  • 3.Pruning in CNN(卷积神经网络)

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

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

  1. 深度学习之递归神经网络(Recurrent Neural Network,RNN)

    为什么有bp神经网络.CNN.还需要RNN? BP神经网络和CNN的输入输出都是互相独立的:但是实际应用中有些场景输出内容和之前的内 容是有关联的. RNN引入"记忆"的概念:递归 ...

  2. 论文学习笔记 POSEIDON: Privacy-Preserving Federated Neural Network Learning

    论文学习笔记 POSEIDON: Privacy-Preserving Federated Neural Network Learning NDSS 2021录用文章 目录 论文学习笔记 POSEID ...

  3. 深度学习之卷积神经网络(Convolutional Neural Networks, CNN)(二)

    前面我们说了CNN的一般层次结构, 每个层的作用及其参数的优缺点等内容.深度学习之卷积神经网络(Convolutional Neural Networks, CNN)_fenglepeng的博客-CS ...

  4. 吴恩达《机器学习》学习笔记九——神经网络相关(1)

    吴恩达<机器学习>学习笔记九--神经网络相关(1) 一. 非线性假设的问题 二. 神经网络相关知识 1.神经网络的大致历史 2.神经网络的表示 3.前向传播:向量化表示 三. 例子与直觉理 ...

  5. July深度学习笔记之神经网络与反向传播算法

    July深度学习笔记之神经网络与反向传播算法 一.神经网络 神经网络的大致结构如下: 大致可以分为输入层.隐藏层与输出层. 而我们可以单独拿出来一个结点,可以发现,其实它就是类似一个逻辑回归(LR), ...

  6. 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)

    深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...

  7. CV学习笔记-BP神经网络训练实例(含详细计算过程与公式推导)

    BP神经网络训练实例 1. BP神经网络 关于BP神经网络在我的上一篇博客<CV学习笔记-推理和训练>中已有介绍,在此不做赘述.本篇中涉及的一些关于BP神经网络的概念与基础知识均在< ...

  8. 1.4)深度学习笔记------深层神经网络

    目录 1)Deep L-layer neural network 2)Forward Propagation in a Deep Network(重点) 3)Getting your matrix d ...

  9. 吴恩达深度学习笔记——卷积神经网络(CNN)

    目录 一.计算机视觉(Computer vision) 二.边缘检测示例(Edge detection example) 三.更多的边缘检测内容(More edge detection) 四.Padd ...

最新文章

  1. 清华大学AMiner团队发布《超级计算机研究报告》(附下载)
  2. Java排序算法(1)
  3. HTML-参考手册: HTML 颜色名
  4. 机器学习之kNN算法(纯python实现)
  5. python归并算法
  6. 网络资产管理系统_固定资产管理系统的三种网络架构方式
  7. JavaScript直接导出Excel,Word
  8. 利用SQL语句自动生成序号的两种方式
  9. usb设备的probe全过程
  10. c++——const关键字
  11. cc2530设计性实验代码七
  12. h5前端开发,96道前端面试题
  13. rvm、Ruby安装(亲测有效)
  14. 计算机论文注释范例,论文注释的标准格式范例(范例详解论文正确书写规范)...
  15. python进行图像的风格转换
  16. Centos7自动挂载Windows中的NTFS 分区
  17. 当出现程序包XXX不存在的时候,解决方案
  18. 执行时遇到 For apos;context.set_contextapos;, package type xxx support apos;devic
  19. EE-SX672 光眼
  20. 全国青少年软件编程(Scratch)等级考试一级真题——2022.6

热门文章

  1. ICA中的峰度(kurtosis)该怎么理解?
  2. jqgrid——shrinkToFit
  3. 三角形重心坐标公式推导
  4. Android 7.1.2上默认wifi链接之后实际能上网却一直显示不能上网问题
  5. wps带阴影的边框怎么设置_WPS表格阴影边框如何设置,教您如何设置
  6. scipy,weibull_min中文翻译(也就是一般的weibull分布,可以通过改变参数设置为三参数或者两参数。)
  7. 如何设置共享文件夹访问不需要输入用户名和密码
  8. vue中设置动态路由
  9. 大数据-玩转数据-MaxCompute 数学函数
  10. mysql 连接查询索引_Mysql (四)连接查询和索引