zoukankan      html  css  js  c++  java
  • 三分钟理解知识蒸馏

    知识蒸馏的意义

    能够压缩模型,提升模型性能

    为什么能够压缩模型?

    !!!谁知道了告诉我一下!!!

    为什么能提升模型精度?

    栗子:分类问题有三个分类:猫,狗,乌龟,实际训练过程中,比如当前的数据真实标签是:猫,模型预测出猫,狗,乌龟的概率分别是0.6, 0.3, 0.1,

    传统思路:不错,识别对了,猫的概率最高,给模型一定的奖励;

    知识蒸馏:不错,识别对了,猫的概率最高,并且狗比乌龟更像猫,给模型一定的奖励;

    总结:即便是负样本,也包含大量知识,知识蒸馏能把这部分知识也学习起来。

    大致步骤:

    1. 基于一个已经训练好的NET-T模型,该模型经过大量数据的训练准确度很高,但是模型笨重,将NET-T模型最终softmax结果进行软化,生成soft-target,继而生成loss1;

    2. 创造一个轻量模型NET-S正常前像传播,实际标签用one-hot向量表示即hard-target,生成loss2;

    3. 将loss1与loss2加权求和生成loss3;

    4. loss3用于更新NET-S网络;

    即将NET-T模型的知识迁移到NET-S上并优化性能

  • 相关阅读:
    noip2011 总结
    noip2010 总结
    noip2009 总结
    noip2008 总结
    noip2006总结
    noip2007 总结
    noip2006 总结
    【模板】线段树模板
    【数学】8.30题解-count数页码
    【数论】8.30题解-prime素数密度 洛谷p1835
  • 原文地址:https://www.cnblogs.com/niulang/p/13100095.html
Copyright © 2011-2022 走看看