IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 初入神经网络剪枝量化3(大白话) -> 正文阅读

[人工智能]初入神经网络剪枝量化3(大白话)

剪枝

1.1?MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning

? ? ? ? 该论文提出了一种使用元学习(meta learning)来实现深度神经网络剪枝的策略。

? ? ? ? 什么是元学习?

? ? ? ? 一句话来说,机器学习是让机器学习,元学习是让机器学会如何学习。

? ? ? ? 听起来很厉害,实际上我个人认为意义不是特别大,因为元学习通过学习超参数来实现所谓的机器学会了如何学习,但是元学习本身在训练时也需要人工手动设置参数,更像一种无限套娃的感觉。

? ? ? ? 本文的特别之处,我认为主要不在元学习,而是进化算法的使用。

? ? ? ? anyway,本论文就是首先训练一个元网络PruningNet,实现我们提供给定目标网络框架,从而得到网络权值参数。提供的网络框架也就是,有多少层,每一层多少个卷积核,卷积步长之类。我们不可能把所有的情况都一一列出并训练,不太现实。

? ? ? ? 所以这里采用随机抽样的方法,随机从网络框架中抽取一定量的网络结构,得到网络权值参数。之后通过进化算法得到最优的网络结构,实现不用微调的剪枝结构。

? ? ? ? 什么是进化算法?

? ? ? ? 物竞天择,适者生存,大自然的进化规律。自然界会淘汰掉不好的,好的自然会留下,同时好的之间互相交配,同时产生变异,交配和变异中好的也就相当于进化,而不好的再被自然界淘汰。以此,不断进化,最终得到的物种必定是最好的。

? ? ? ? 本文呢,也就是将送入元网络中的网络框架作为基因(gene),我们取准确率较高的一定数量的网络框架,作为好的保留,在这些好的之间,进行交叉和变异,交叉也就是两个好的网络框架中互相交换某些参数,变异就是网络框架中随机改变某些参数值,再送入元网络中训练,以此循环,最终得到最优网络框架。

? ? ? ? 本文大体就如上述,接下来聊聊细节。

? ? ? ? 传统的剪枝算法一般有三个步骤,稀疏训练,剪枝,微调。本论文发现微调会耗费大量的计算量。同时,通过最新研究发现,信道剪枝本质是找到良好的修剪结构-分层的信道数。所以本文提出了一种不用微调的剪枝方法,也就是通过元学习,搜索网络剪枝的结构,来直接得到剪枝结构的网络权重。

? ? ? ? 需要注意的是,这里还有一个优势,就是我们选择好的剪枝结构的标准是可以按照我们的要求来加的,这里还是比较方便。

? ? ? ? 由于网络规模一般都很大,所以不可能穷举出所有的情况。故采用进化算法,原理就是上面提到的,来得到最优的剪枝网络结构。?

? ? ? ? 这篇论文的结构还是非常巧妙,网络每一层的权值都是相互关联不可分割的,所以剪枝重要的应该是网络结构的调整,相对于通过每一层的权值的重要性来裁剪,我认为更合理一些。

1.2?EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning

? ? ? ? 这篇论文,首先提出了两个非常重要的问题。

? ? ? ? 1. 在传统的剪枝算法中,我们都是剪枝不重要的,重要性低的通道,那为什么模型还是会有明显的精度下降。

? ? ? ? 2. 剪枝后的精度是否与微调后的精度为正相关?或者说有多强的正相关?也就是说,他们是否有关联?

? ? ? ? 这篇论文,认为DNN剪枝本质就是搜索问题,从所有合法的剪枝策略中,搜索到最优的剪枝策略。

? ? ? ? 那我们如何评价哪个剪枝策略更好呢?当然是准确率。那么剪枝过后的网络,再通过微调,时间成本过大。EagleEye提出一种快速并且准确衡量子网络性能的方法,加快剪枝的过程。

? ? ? ? 首先,我们来看看,剪枝后的精度与微调后的精度是否为正相关。

????????

? ? ? ? 看左图,很明显,不相关,剪枝后精度本来低的,微调后精度不一定高。但是,我们看右图微调过后的权重也就是相当于做一个简单的移动。这说明什么?既然权重没发生太大变化,而精度却产生非常大的差异,那说明不是权重的问题,而是BN层的问题。也即是BN层的参数与权值不匹配。所以我们只需对BN层做简单的操作,也就是原本是对权值进行微调,现在就是对于BN层的参数进行微调。

? ? ? ? 这就是论文的创新之处。论文提出的思路是将网络中的其他参数冻住,然后利用训练集的样本进行前向计算,修正“继承”来的BN层参数。最终实现将微调后的模型与剪枝后的模型形成正相关。

????????

? ? ? ? ?这很关键,这意味着,我们并不需要对所有剪枝出来的网络进行微调,我们只需对剪枝后效果最好的网络进行微调训练得到最佳剪枝网络,因为他们成正相关,剪枝后效果好,那么微调后效果肯定也好。

? ? ? ? 最终,网络的剪枝流程如下

? ? ? ? 可以看到,我们只需要在最优的剪枝后的模型上进行微调即可,大大减少了时间成本。

?

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-15 15:52:28  更:2021-11-15 15:53:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 6:33:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码