当前位置: 首页 > news >正文

李宏毅机器学习笔记39

目录

摘要

1.network pruning

2.knowledge distillation

 


 

 

摘要

 

本篇文章继续学习李宏毅老师2025春季机器学习课程,学习内容是network compression的两个方法,分别是network pruning和knowledge distillation

 

很多时候,模型的使用是受到环境的资源限制的,例如在智能手表上等,如果模型过大,可能无法在手表上运行。network compression就是将模型简化,减少参数但是效果与原来差不多。

1.network pruning

顾名思义就是,把network中一些参数剪掉,network pruning的想法就是把模型中没有用的参数找出来去掉。架构如下,首先训练一个大的network,再去评估network中每个参数或neuron的重要性。评估方法可以看参数绝对值,绝对值越大可能影响越大或者是计算神经元输出不为0的次数等。然后就可以把不重要的参数或neuron去掉得到一个较小的network。通常去掉参数之后模型正确率会低一点,我们需要重新微调参数,重新训练一下较小的network。去掉参数的过程可以反复进行。

假设去掉参数,我们得到的network的形状可能是不规则的,这样的问题就实现麻烦,因为形状不固定输入输出存在不同,且不好用GPU加速。

下图是实际实验数据纵轴是去除参数占比,大部分参数都被去掉了(紫色线段接近1),但实际上并未加速多少,柱状图仅有少量大于1,大部分情况下都是变慢。

假设以神经元为单位,丢掉一些神经元后,network的架构仍然是规则的,这样便于实作也便于加速。

还有一个问题是为什么要这样做?如果先训练一个大的network再把他变小和一个小的network效果差不多,那为什么不直接训练一个小的network呢?普遍的答案是大的network比较好训练,直接训练小的network往往没有这么高的正确率。

有一个大乐透假说用于解释为什么大的network比较好训练。训练是看运气的,每次训练的结果都不一定一样,抽到一组好的参数就得到好结果,抽到坏的参数就得到坏结果,乐透也是一个看运气的游戏,要在乐透里得到较高的中奖率就是买较多彩券。那么对于一个大的network来说也是一样,大的network视为是很多小的sub-network的组合,每一个小的不一定可以成功训练出来,但是众多的sub-network中只要有一个成功训练出来,大的network就成功了。

有一个实验证明了大乐透假说,一个红色的随机初始参数的模型,训练之后得到紫色的模型,再用network pruning技术丢掉一些参数得到一个小的network。接下来把小的network仅仅重新随机参数训练(绿色线段),会发现训练不起来,但是如果小的network用原本大的随机初始参数(红色线段)就可以训练起来。红色的参数就相当于抽到的好的参数。

 

2.knowledge distillation

knowledge distillation的概念是先训练一个大的network,当作teacher network,真正想要的小的network叫做student network,student network是根据teacher network来学习的。假设要做数字辨识,学习的方法是把训练资料都给teacher network,输入图片,输出分布,然后给student network一模一样的图片输入,但是学生不上看正确答案来学习,而是把老师的输出当正确答案,即输出要尽可能接近teacher network输出的分布。

knowledge distillation有一个小技巧,就是稍微更改softmax function。简单复习一下softmax,softmax就是把每个neuron的输出取exponential(取指数)然后再进行normalize(标准化)得到最终network的输出,让network的输出变为几率分布。

knowledge distillation的改变就是给softmax增加temperature,实际上就是在exponential之前,每个数值都除T,T是一个需要调整的参数。除T(假设T>1)的作用是把比较集中的分布变得平滑一些。

为什么需要更平滑呢?假设y1,y2,y3分别是100,10,1就会发现softmax的结果是接近1,0,0,这样给student network学习就跟与正确答案学习没有差别。跟teacher network学习的好处是,会得到额外的资讯,老师会告诉你哪些类别是比较相似的。假设T是100,softmax处理后输出就会变为0.56,0.23,0.21分类的结果不会变但是分数变平滑了。

 

 

 

http://www.dtcms.com/a/564652.html

相关文章:

  • 【代码随想录算法训练营——Day57(Day56周日休息)】图论——53.寻宝
  • PPT+配音生成带旁白的PPT演示视频
  • abp vnext cli无法正常使用,卡在 Checking extensions..,cli修改abp版本及.net版本
  • 萤石摄像头使用NAS作为存储
  • 2025江西省职业院校技能大赛(中职组)移动应用与开发竞赛样题
  • 建站公司哪家好在哪里推广比较好
  • 在 iOS 18 的照片应用,如何批量隐藏截屏?
  • OK3568 Android11 实现 App 独占隔离 CPU 核心完整指
  • 湖南网站建设公司 都来磐石网络泰安营销型网站建设公司
  • Oracle 如何计算 AWR 报告中的 Sessions 数量
  • JavaScript 流程控制语句
  • 走向专精:我的NLP特化算子开发之旅
  • 如何写prompt?prompt收集
  • 打工人日报#20251103
  • 技术文章大纲:设备如何“开口说话”?
  • CH585 高速 USB模拟 CDC串口应用示例
  • 2024/07 JLPT听力原文 问题四
  • 【AAOS】【源码分析】Car Location服务(二)- NMEA 数据
  • 如何建立国外网站搜索引擎优化岗位
  • 怎么建立网站网址在线做网站需要什么
  • https 可以访问 8866端口吗
  • python excel转为jsonl 格式 和 jsonl格式转为excel
  • docker中使用SSL证书实现前后端Https
  • IDE/编码代理架构与 Cursor 相关研究(汇总)
  • Multi-Stride Predictive RNG:革命性的可控随机数生成算法
  • Let’s Encrypt 证书申请与多服务器 HTTPS 配置指南
  • 艺术名画网站怎么建设多姿wordpress
  • R 绘图 - 散点图
  • 使用yarn@4.6.0装包,项目是react+vite搭建的,项目无法启动,报错:
  • 末备案网站如何做cdnwordpress填写