文献精读——(第十一篇)Data-Free Learning of Student Network

一、文献梳理

1、文献背景

为解决下述问题,需要高效的,少样本或零样本的网络压缩方法。

  • CNN被广泛应用于CV任务,但需要大量计算资源支持,为满足移动计算需要进行神经网络的压缩
  • 在现实应用,数据集往往很难获取
  • 现有的零样本下的网络压缩,性能下降很多

2、研究成果

1)模型意义

  • 提出了一个有效的无数据训练的办法;
  • 有效的组合了GAN和教师-学生网络;
  • 设计了适合于这篇文章中的GAN模型的总损失函数;
  • 利用知识蒸馏将教师网络压缩为学生网络;
  • 对多个数据集和多个经典网络进行了实验以证明有效性。

2)实验

  • 实验一:(MNIST/HintonNet)+LeNet-5
  • 实验二:模型简化实验
  • 实验三:可视化结果
  • 实验四:CIFAR+ResNet
  • 实验五:CelebA+AlexNet
  • 实验六:扩展实验

二、基础知识(传统压缩方法)

1、数据驱动压缩方法

(1)奇异值分解

(2)剪枝、权重分层、哈夫曼编码

(3)相似神经元聚类

神经网络接收外界输入模式时,将会分为不同的对应区域,各区域对输入模式有不同的响应特征,而这个过程是自动完成的。其特点与人脑的自组织特性类似。导师学习网络。它通过自动寻找样本中的内在规律和本质属性,自组织,自适应地改变网络参数与结构。

2、无数据压缩方法——元数据进行数据重构

目的是实现快速学习,而快速学习的关键一点是神经网络的梯度下降要准,要快,那么是不是可以让神经网络利用以往的任务学习如何预测梯度,这样面对新的任务,只要梯度预测得准,那么学习得就会更快了

不足:由于没有原始数据训练,无法进行准确的微调,因此现有算法压缩方法比较差,需要一种有效的无数据方法来学习性能相当高效的CNN。

三、文献重点

1、原理

1)使用GAN构建训练数据

  • 使用GAN生成与训练数据相似的样本以便与神经网络的压缩
  • 把待压缩网络作为一个固定的判别器,来训练生成网络
  • 三个损失感受加和,使生成器的生成接近真实数据样本

2)蒸馏算法

  • 引入教师学生网络学习范式,利用蒸馏算法实现利用为标注生成样本对黑盒网络的压缩

2、适合于这篇文章中的GAN模型的总损失函数

1)总式

由于判别网络用的是已被训练好的网络,但是该网络被训练来做的是图像分类任务而不是去分辨图像是真实的还是生成的。因此,需要对损失函数进行调整才能使得GAN可以得以进行。该论文将损失函数分为了三个部分:

 2)one-hot loss

输入分别表示学生网络和教师网络的输出。如果生成器G生成的图像与教师网络的训练数据分布相同,那么它们的输出也应该与训练数据具有相似的输出。因此使用one-hot loss促使教师网络生成的图像输出接近one-hot like vectors。也就是说,期望生成与教师网络完全兼容的合成图像,而不是适用于任何场景的一般真实图像。

其中,Hcross是交叉熵损失函数,有i个样本,yiT是判别网络(教师网络)对第i ii个样本的输出,因为判别网络(教师网络)是对图像进行分类的网络,因此其有多个输出并使用的是softmax,因此当输入的是真实的图像时,此时输出应该是稀疏的,即应该有某个类别的概率是非常大的,而如果输入的图像和训练集图像差异太大的话,此时网络是无法提取有用的特征来作最后的分类的,此时判别网络(教师网络)的输出就不是稀疏的。因此,通过判断判别网络(教师网络)输出的稀疏性与否可以来衡量输入是生成网络生成的还是真实的。

3)激活损失函数

激活损失函数相当于是看输入的图像是否会触发网络的某些特征提取器,如果能触发,则证明输入的图片和真实训练集是比较相似的,如果触发的特征提取器较多,则说明输入的图片是真实图片的概率较大,因为网络中的特征提取器就是被训练来提取真实训练集中的图像特征的。这样便能分辨输入的图像时自然的还是生成的了。

4)生成图像的信息熵损失函数

训练数据的类别基本均衡,entropy loss 来衡量生成图片的类别均衡, 当所有的变量为1/k时得到最大值。 当loss最小的时候,每个1/n*∑yi应该等于1/k 。说明G生成的每个类别的图片的概率大致相等。因此, 最小化信息熵损失能够得到一组类别数量均衡的生成样本。

3、利用知识蒸馏将教师网络压缩为学生网络

知识蒸馏(Knowledge Distillation, KD)是一种广泛使用的方法,用于将输出信息从大的网络转移到较小的网络,以获得更高的性能,它不使用给定网络的参数和体系结构。通过以下的损失函数LKD 即可实现将教师网络的知识蒸馏到学生网络的操作:

4、算法 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
https://www.udemy.com/deep-learning-convolutional-neural-networks-theano-tensorflow/ Deep Learning: Convolutional Neural Networks in Python Computer Vision and Data Science and Machine Learning combined! In Theano and TensorFlow Created by Lazy Programmer Inc. Last updated 5/2017 English What Will I Learn? Understand convolution Understand how convolution can be applied to audio effects Understand how convolution can be applied to image effects Implement Gaussian blur and edge detection in code Implement a simple echo effect in code Understand how convolution helps image classification Understand and explain the architecture of a convolutional neural network (CNN) Implement a convolutional neural network in Theano Implement a convolutional neural network in TensorFlow Requirements Install Python, Numpy, Scipy, Matplotlib, Scikit Learn, Theano, and TensorFlow Learn about backpropagation from Deep Learning in Python part 1 Learn about Theano and TensorFlow implementations of Neural Networks from Deep Learning part 2 Description This is the 3rd part in my Data Science and Machine Learning series on Deep Learning in Python. At this point, you already know a lot about neural networks and deep learning, including not just the basics like backpropagation, but how to improve it using modern techniques like momentum and adaptive learning rates. You’ve already written deep neural networks in Theano and TensorFlow, and you know how to run code using the GPU. This course is all about how to use deep learning for computer vision using convolutional neural networks. These are the state of the art when it comes to image classification and they beat vanilla deep networks at tasks like MNIST. In this course we are going to up the ante and look at the StreetView House Number (SVHN) dataset – which uses larger color images at various angles – so things are going to get tougher both computationally and in terms of the difficulty of the classification task. But we will show that convolutional neural networks, or CNNs, are capable of handling the challenge! Because convolution is such a central part of this type of neural network, we are going to go in-depth on this topic. It has more applications than you might imagine, such as modeling artificial organs like the pancreas and the heart. I’m going to show you how to build convolutional filters that can be applied to audio, like the echo effect, and I’m going to show you how to build filters for image effects, like the Gaussian blur and edge detection. We will also do some biology and talk about how convolutional neural networks have been inspired by the animal visual cortex. After describing the architecture of a convolutional neural network, we will jump straight into code, and I will show you how to extend the deep neural networks we built last time (in part 2) with just a few new functions to turn them into CNNs. We will then test their performance and show how convolutional neural networks written in both Theano and TensorFlow can outperform the accuracy of a plain neural network on the StreetView House Number dataset. All the materials for this course are FREE. You can download and install Python, Numpy, Scipy, Theano, and TensorFlow with simple commands shown in previous courses. This course focuses on “how to build and understand“, not just “how to use”. Anyone can learn to use an API in 15 minutes after reading some documentation. It’s not about “remembering facts”, it’s about “seeing for yourself” via experimentation. It will teach you how to visualize what’s happening in the model internally. If you want more than just a superficial look at machine learning models, this course is for you. NOTES: All the code for this course can be downloaded from my github: /lazyprogrammer/machine_learning_examples In the directory: cnn_class Make sure you always “git pull” so you have the latest version! HARD PREREQUISITES / KNOWLEDGE YOU ARE ASSUMED TO HAVE: calculus linear algebra probability Python coding: if/else, loops, lists, dicts, sets Numpy coding: matrix and vector operations, loading a CSV file Can write a feedforward neural network in Theano and TensorFlow TIPS (for getting through the course): Watch it at 2x. Take handwritten notes. This will drastically increase your ability to retain the information. Write down the equations. If you don’t, I guarantee it will just look like gibberish. Ask lots of questions on the discussion board. The more the better! Realize that most exercises will take you days or weeks to complete. Write code yourself, don’t just sit there and look at my code. USEFUL COURSE ORDERING: (The Numpy Stack in Python) Linear Regression in Python Logistic Regression in Python (Supervised Machine Learning in Python) (Bayesian Machine Learning in Python: A/B Testing) Deep Learning in Python Practical Deep Learning in Theano and TensorFlow (Supervised Machine Learning in Python 2: Ensemble Methods) Convolutional Neural Networks in Python (Easy NLP) (Cluster Analysis and Unsupervised Machine Learning) Unsupervised Deep Learning (Hidden Markov Models) Recurrent Neural Networks in Python Artificial Intelligence: Reinforcement Learning in Python Natural Language Processing with Deep Learning in Python Who is the target audience? Students and professional computer scientists Software engineers Data scientists who work on computer vision tasks Those who want to apply deep learning to images Those who want to expand their knowledge of deep learning past vanilla deep networks People who don’t know what backpropagation is or how it works should not take this course, but instead, take parts 1 and 2. People who are not comfortable with Theano and TensorFlow basics should take part 2 before taking this course.
根据引用\[1\],作者在入职后花了半个月的时间略读了《802.11无线网络》,现在打算进行精读,并做好笔记。作者表示此前读过的一些章节会迅速过掉,这次的重点是关注连接和验证的细节,而对于安全相关的内容不做精读。作者希望在精读过程中能够有特殊的感悟。 根据引用\[2\],802.11i是一项对安全性进行了大幅改善的协议,其中引入了强健安全网络(Robust Security Network)。为了让工作站之间能够交换安全性信息,开发了Extended Supported Rates和Wi-Fi Protected Access。 根据引用\[3\],在802.11协议中,广播和组播帧无需响应,而成帧和寻址较为复杂。组播帧无需分段,也无需得到确认,而单播帧则需要进行基本的肯定确认(最后一个片段)。帧分段是协议中的一个重要概念。 综上所述,802.11协议的精读将涉及连接和验证的细节,以及强健安全网络和Wi-Fi Protected Access的相关内容。同时,了解帧分段和成帧与寻址的复杂性也是重要的。 #### 引用[.reference_title] - *1* *2* [802.11协议精读(二)](https://blog.csdn.net/AngryDog1024/article/details/117464088)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [802.11协议精读(一)](https://blog.csdn.net/AngryDog1024/article/details/117464068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值