论文地址:

https://arxiv.org/pdf/1503.02531.pdf

蒸馏网络的重要公式:

其中,\(p^g\)为Teacher网络,\(q\)为Student网络。

个体神经网络(CNN模型):

CNN层 + 全连接层(输出的是logits) + softmax层(输出的是预测值概率P) + 交叉熵损失函数

蒸馏算法:

第一步:使用训练数据集训练Teacher网络,这时候的logits是不使用Temperature参数调控的,和正常算法流程一致;

第二步:使用Teacher网络的\(p^{g}\)和Student网络的\(q\)使用\(KL(p^{g}, q)\)来训练Student网络,需要注意这时的\(p^{g}\)和\(q\)都是使用在对各自的logits使用Temerature系数之后的,并且需要注意这里的Temperature可以视作为一个超参数,并且在使用Teacher网络训练Student网络时使用的训练数据集和单独训练Teacher网络的数据集一致;

第三步:完成Student网络训练后进行测试,注意,这时的Student网络是不需要对logits使用Temperature参数调控的,也就是说测试Student网络时是和普通算法流程一致的,是不使用Temperature参数的。

可以说,在蒸馏算法中这个Temperature是一个超参数形式的存在,并且只存在于使用Teacher网络训练Student网络的时候,其主要原因是这时候如果只是使用概率P进行训练则难以解决概率分布不均衡的情况,并且也无法识别不同logits得到相同P的情况,如果只使用logits则也无法计算时的单位不统一的问题,为此论文中提出对logits加入Temperature系数调整,并用KL散度进行Student网络的训练。

很多人不理解这个知识蒸馏算法,其主要障碍就是不理解这个Temperature系数上,其实这个系数只是一个超参,并且在实际训练时也只是起到一个调节的作用,虽然这个Temperature系统对算法的最终performance影响很大,但是却并不神秘。

读论文《Distilling the Knowledge in a Neural Network》——蒸馏网络 —— 蒸馏算法 —— 知识蒸馏 中的温度系数到底怎么用, temperature怎么用?的更多相关文章

  1. 【DKNN】Distilling the Knowledge in a Neural Network 第一次提出神经网络的知识蒸馏概念

    原文链接 小样本学习与智能前沿 . 在这个公众号后台回复"DKNN",即可获得课件电子资源. 文章已经表明,对于将知识从整体模型或高度正则化的大型模型转换为较小的蒸馏模型,蒸馏非常 ...

  2. 【论文考古】知识蒸馏 Distilling the Knowledge in a Neural Network

    论文内容 G. Hinton, O. Vinyals, and J. Dean, "Distilling the Knowledge in a Neural Network." 2 ...

  3. Distilling the Knowledge in a Neural Network

    url: https://arxiv.org/abs/1503.02531 year: NIPS 2014   简介 将大模型的泛化能力转移到小模型的一种显而易见的方法是使用由大模型产生的类概率作 ...

  4. ASPLOS'17论文导读——SC-DCNN: Highly-Scalable Deep Convolutional Neural Network using Stochastic Computing

    今年去参加了ASPLOS 2017大会,这个会议总体来说我感觉偏系统和偏软一点,涉及硬件的相对少一些,对我这个喜欢算法以及硬件架构的菜鸟来说并不算非常契合.中间记录了几篇相对比较有趣的paper,今天 ...

  5. 论文翻译:2019_TCNN: Temporal convolutional neural network for real-time speech enhancement in the time domain

    论文地址:TCNN:时域卷积神经网络用于实时语音增强 论文代码:https://github.com/LXP-Never/TCNN(非官方复现) 引用格式:Pandey A, Wang D L. TC ...

  6. 论文笔记之:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation

    Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation xx

  7. 论文笔记:ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks

    ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks2018-03-05  11:13:05   ...

  8. 【论文考古】Training a 3-Node Neural Network is NP-Complete

    今天看到一篇1988年的老文章谈到了训练一个简单网络是NPC问题[1].也就是下面的网络结构,在线性激活函数下,如果要找到参数使得输入数据的标签估计准确,这个问题是一个NPC问题.这个文章的意义在于宣 ...

  9. 1503.02531-Distilling the Knowledge in a Neural Network.md

    原来交叉熵还有一个tempature,这个tempature有如下的定义: \[ q_i=\frac{e^{z_i/T}}{\sum_j{e^{z_j/T}}} \] 其中T就是tempature,一 ...

  10. 源自人脑的神奇算法 -- 读《How to make your own neural network》有感

    最近读到了一本很好的关于机器学习-深度学习的书值得推荐下并特意做了这个学习总结. 为什么推荐 在我认为好书(计算机类)的评判有几个标准: 试图以通俗的语言阐述,并在引入任何新概念的时候都讲述来龙去脉, ...

随机推荐

  1. mysql中,时间类型datetime和timestamp的区别

    TIMESTAMP和DATETIME的相同点: 两者都可用来表示 YYYY-MM-DD HH:MM:SS 类型的日期. TIMESTAMP和DATETIME的不同点: 1>  两者的存储方式不一 ...

  2. Go版RuoYi

    RuoYi-Go  https://github.com/Kun-GitHub/RuoYi-Go 1. 关于我 个人介绍 2. 介绍 后端用Go写的RuoYi权限管理系统 (功能正在持续实现)后端 G ...

  3. Linux常用耗资源命令汇总

    在Linux中,以下命令可能在处理大量数据或复杂操作时比较消耗资源.一般来说,涉及大量数据处理.计算或者I/O操作的命令会比较耗费系统资源. ​ 注意:所有命令资源消耗都是相对的,基于文件的处理量来展 ...

  4. Linux 内核:设备驱动模型(4)uevent与热插拔

    Linux 内核:设备驱动模型(4)uevent与热插拔 背景 我们简单回顾一下Linux的设备驱动模型(Linux Device Driver Model,LDDM): 1.在<sysfs与k ...

  5. xpath-猪八戒网服务商名称爬取

    import requests from lxml import etree url = 'https://changsha.zbj.com/xcxkfzbjzbj/f.html?fr=zbj.sy. ...

  6. Java助力加固Excel文件,保障数据安全

    前言 Excel文件保护是常用的一种功能,文件保护主要有三种: 添加密码,如果没有密码不允许打开文件. 添加密码,如果没有密码,不能修改文件,但可以打开,只读以及另存文件. 只读推荐,通常推荐打开Ex ...

  7. Me-and-My-Girlfriend-1靶机渗透流程

    Me-and-My-Girlfriend-1 靶机下载 Description: This VM tells us that there are a couple of lovers namely A ...

  8. SpringBoot 整合Activiti 7.X 从入门到精通

    简介 Activiti 是一个轻量级工作流程和业务流程管理 (BPM) 平台,面向业务人员.开发人员和系统管理员.其核心是一个超快且坚如磐石的 Java BPMN 2 流程引擎.它是开源的,并根据 A ...

  9. yb课堂之订单列表接口开发 《十七》

    订单列表接口开发 VideoOrderController.java VideoOrderService.java VideoOrderServiceImpl.java VideoOrderMappe ...

  10. yb课堂 实战之Mybatis打通Mysql数据库 《二》

    配置mybatis连接Mysql数据库 server.port=8081 # ========================数据库相关配置===================== spring.d ...