深度学习机器学习面试题汇——模型优化,轻量化,模型压缩

article/2025/9/9 7:48:40

深度学习机器学习面试题汇——模型优化,轻量化,模型压缩

提示:互联网大厂可能考的面试题

若CNN网络很庞大,在手机上运行效率不高,对应模型压缩方法有了解吗
介绍一下模型压缩常用的方法?为什么用知识蒸馏?
知道模型蒸馏吗?谈下原理
做过模型优化吗?模型蒸馏和模型裁剪?
squeezeNet的Fire Module有什么特点?
降低网络复杂度但不影响精度的方法
如果让模型速度提高一倍,有什么解决方案?


文章目录

  • 深度学习机器学习面试题汇——模型优化,轻量化,模型压缩
    • @[TOC](文章目录)
  • 若CNN网络很庞大,在手机上运行效率不高,对应模型压缩方法有了解吗?
  • 介绍一下模型压缩常用的方法?为什么用知识蒸馏?
  • 知道模型蒸馏吗?谈下原理
  • 做过模型优化吗?模型蒸馏和模型裁剪?
  • squeezeNet的Fire Module有什么特点?
  • 降低网络复杂度但不影响精度的方法
  • 如果让模型速度提高一倍,有什么解决方案?
  • 总结

若CNN网络很庞大,在手机上运行效率不高,对应模型压缩方法有了解吗?

两个思路:大多数都是剪枝和知识蒸馏
还有一个方案就是设计短小精悍的网络结构

整体来讲模型优化的方法有以下几种:
低秩近似
剪枝与稀疏约束
参数量化
二值网络
知识蒸馏
紧凑的网络结构

(1)低秩近似
神经网络的基本运算卷积,实则就是矩阵运算
低秩近似的技术是通过一系列小规模矩阵将权重矩阵重构出来
以此降低运算量和存储开销

目前有两种常用的方法:
一是Toeplitz矩阵 【托普利兹】直接重构权重矩阵,简称为T型矩阵,它是由Bryc、Dembo、Jiang于2006年提出的。托普利兹矩阵的主对角线上的元素相等,平行于主对角线的线上的元素也相等;
二是奇异值分解(SVD),将权重矩阵分解为若干个小矩阵。

(2)剪枝与稀疏约束
剪枝是模型压缩领域中一种经典的后处理技术
典型应用如决策树的前剪枝和后剪枝
剪枝技术可以减少模型参数量防止过拟合,提升模型泛化能力

剪枝被应用于神经网络中,遵循四个步骤:
(1)衡量神经元的重要程度
(2)移除掉一部分不重要的神经元
(3)对网络进行微调
(4)返回第一步(1),进行下一轮剪枝

稀疏约束:
在这里插入图片描述
(3)参数量化
相比于剪枝操作,参数量化则是一种常用的后端压缩技术
量化就是从权重中归纳出若干个有代表性的权重,由这些代表来表示某一类权重的具体数值。这些“代表”被存储在码本(codebook)中,
原权重矩阵只需记录各自“代表”的索引即可

从而极大地降低了存储开销
类似于数据结构与算法中的并查集,有一个代表,当集合的代表。
所以可以看出来,参数量化就是换一种存储方式从而降低模型的存储。

(4)二值网络
二值网络可以被视为量化方法的一种极端情况
所有参数的取值只能是**+1或-1**。
这种极端的设置,使得二值网络能够获得极大的压缩效益

现有神经网络大多基于梯度下降来训练,但二值网络的权重只有+1或-1,
无法直接计算梯度信息,也无法更新权重。
一个折中的方法是,网络的前向与反向回传是二值的
而权重的更新则是对单精度权重进行

(5)知识蒸馏 老师教学生
知识蒸馏指的是模型压缩的思想,通过一步一步地使用一个较大的已经训练好的网络去教导一个较小的网络确切地去做什么
将从大而笨重中需要的知识转换到一个小但是更合适部署的模型

知识蒸馏的目的是将一个高精度且笨重的teacher转换为一个更加紧凑的student

具体思路是:训练teacher模型softmax层的超参数获得一个合适的soft target集合(“软标签”指的是大网络在每一层卷积后输出的feature map。),
然后对要训练的student模型,使用同样的超参数值尽可能地接近teacher模型的soft target集合,作为student模型总目标函数的一部分
以诱导student模型的训练,实现知识的迁移

牛啊!!!
据说,不管你模型有多大,只要你能解决问题,知识蒸馏的技术,就能将其迁移到手机中,问题不大

(6)紧凑的网络结构
以上的方法都可以理解为后处理。
而紧凑的网络结构方法则是另起炉灶
直接设计短小精悍的结构保证网络的速度与精度
如squeezeNet的Fire Module模块和GoogLeNet的Conv-M模块

介绍一下模型压缩常用的方法?为什么用知识蒸馏?

(1)低秩近似
(2)剪枝与稀疏约束,参数稀疏为0
(3)参数量化,记录代表
(4)二值网络
(5)知识蒸馏(老师教学生)
(6)紧凑的网络结构

深度学习在计算机视觉、语音识别、自然语言处理等众多领域取得了令人难以置信的成绩。
然而,这些模型中的大多数在移动电话或嵌入式设备上运行的计算成本太过昂贵
所以需要采用模型压缩的方法,如知识蒸馏

知识蒸馏指的是模型压缩的思想,通过一步一步地使用一个较大的已经训练好的网络去教导一个较小的网络确切地去做什么
将从大而笨重中需要的知识转换到一个小但是更合适部署的模型

知道模型蒸馏吗?谈下原理

知识蒸馏指的是模型压缩的思想,
通过一步一步地使用一个较大的已经训练好的网络去教导一个较小的网络确切地去做什么。
将从大而笨重中需要的知识转换到一个小但是更合适部署的模型

知识蒸馏的目的是将一个高精度且笨重的teacher转换为一个更加紧凑的student

具体思路是:
训练teacher模型softmax层的超参数获得一个合适的soft target集合(“软标签”指的是大网络在每一层卷积后输出的feature map。),
然后对要训练的student模型,使用同样的超参数值尽可能地接近teacher模型的soft target集合,作为student模型总目标函数的一部分,
诱导student模型的训练,实现知识的迁移。

做过模型优化吗?模型蒸馏和模型裁剪?

知识蒸馏指的是模型压缩的思想,
通过一步一步地使用一个较大的已经训练好的网络去教导一个较小的网络确切地去做什么。将从大而笨重中需要的知识转换到一个小但是更合适部署的模型

知识蒸馏的目的是将一个高精度且笨重的teacher转换为一个更加紧凑的student
具体思路是:
训练teacher模型softmax层的超参数获得一个合适的soft target集合(“软标签”指的是大网络在每一层卷积后输出的feature map。),
然后对要训练的student模型,
使用同样的超参数值尽可能地接近teacher模型的soft target集合,作为student模型总目标函数的一部分,
以诱导student模型的训练,实现知识的迁移

剪枝是模型压缩领域中一种经典的后处理技术,典型应用如决策树的前剪枝和后剪枝。剪枝技术可以减少模型参数量,防止过拟合,提升模型泛化能力。

squeezeNet的Fire Module有什么特点?

在这里插入图片描述

降低网络复杂度但不影响精度的方法

模型优化的几种方法中,就只有剪枝可以做到这一点。

如果让模型速度提高一倍,有什么解决方案?

问你的就是模型压缩,优化速度的方法,知识蒸馏的好处
低秩近似
剪枝与稀疏约束
参数量化
二值网络
知识蒸馏
紧凑的网络结构


总结

提示:重要经验:

1)模型优化,优化啥呢?就是压缩模型,使得存储量,计算量变小,加快运行速度,使得模型可以迁移到小设备上
2)知识蒸馏的技术可以了解一下,目的就是加速模型运算,降低存储量。
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。


http://chatgpt.dhexx.cn/article/FWNbjOQs.shtml

相关文章

Python干货:破解40大机器学习面试题(包含初中高级)

机器学习(ML)是我们世界的未来。在未来的几年中,几乎每种产品都将包含ML组件。ML预计将从2020年的$ 7.3B增长到2024年的$ 30.6B。对ML技能的需求遍及整个行业。 机器学习面试是一个严格的过程,在此过程中,应聘者会评估…

2021机器学习面试必考面试题汇总(附答案详解)

问题:Xgboost、lightGBM和Catboost之间的异同? 树的特征 三种算法基学习器都是决策树,但是树的特征以及生成的过程仍然有很多不同。 CatBoost使用对称树,其节点可以是镜像的。CatBoost基于的树模型其实都是完全二叉树。 XGBoo…

机器学习面试题之——简单介绍最小二乘

1、常用到的最小二乘场合:最小二乘法直线拟合,最小二乘法多项式(曲线)拟合,机器学习中线性回归的最小二乘法,系统辨识中的最小二乘辨识法,参数估计中的最小二乘法,等等。 2、为什么…

AI人工智能、机器学习 面试题(2022最新版)

人工智能、机器学习面试题总结,侧重于理解,回答供参考,欢迎讨论。 General 深度学习(Deep Learning, DL)和机器学习(Machine Learning, ML)的关系是什么? 深度学习是机器学习的子类…

面试官最爱用的统计学、数据科学、机器学习面试题答案

【导读】本文盘点了数据科学和机器学习面试中的常见问题,着眼于不同类型的面试问题。如果您计划向数据科学领域转行,这些问题一定会有所帮助。 技术的不断进步使得数据和信息的产生速度今非昔比,并且呈现出继续增长的趋势。此外,…

41个机器学习面试题

####41 Essential Machine Learning Interview Questions (with answers) <font color‘orange’&#xff0c;size5>一、算法理论 Q1: 什么是偏倚&#xff08;bias&#xff09;、方差&#xff08;variable&#xff09;均衡&#xff1f; 偏倚指的是模型预测值与真实值的…

推荐收藏,25道机器学习面试问题(附答案)

近年来&#xff0c;对深度学习的需求不断增长&#xff0c;其应用程序被应用于各个商业部门。各公司现在都在寻找能够利用深度学习和机器学习技术的专业人士。 在本文中&#xff0c;将整理深度学习面试中最常被问到的25个问题和答案。如果你最近正在参加深度学习相关的面试工作…

机器学习面试题之机器学习基础(一)

1、L1与L2正则化 他们都是可以防止过拟合&#xff0c;降低模型复杂度。 L1会趋向于产生少量的特征&#xff0c;而其他的特征都是0&#xff1b;L2会选择更多的特征&#xff0c;这些特征都会接近于0。L1在特征选择时非常有用&#xff0c;L2就只是一种规则化而已。 简单总结一下就…

机器学习面试必考面试题汇总—附解析

问题&#xff1a;xgboost对特征缺失敏感吗&#xff0c;对缺失值做了什么操作&#xff0c;存在什么问题 不敏感&#xff0c;可以自动处理&#xff0c;处理方式是将missing值分别加入左节点 右节点取分裂增益最大的节点将missing样本分裂进这个节点 。这种处理方式的问题在xgboo…

机器学习面试题——聚类算法

机器学习面试题——聚类算法 提示&#xff1a;互联网大厂经常考的传统机器学习算法 文章目录 机器学习面试题——聚类算法[TOC](文章目录) 题目k-means介绍一下&#xff0c;K-means的过程k-means优缺点k-means的簇&#xff08;k簇&#xff09;怎么选&#xff0c;K-means如何选取…

机器学习面试题目整理

0 调参技巧 清洗数据&#xff0c;数据预处理&#xff0c;数据增广是否使用预训练模型使用BN在过拟合后&#xff0c;使用正则化技巧如L1、L2、Dropout对于不均匀样本&#xff0c;使用重采样使用合适的优化器。第一&#xff0c;如果你关心快速收敛&#xff0c;使用自适应优化器&…

面试 | 22道机器学习常见面试题目

(1) 无监督和有监督算法的区别&#xff1f; 有监督学习&#xff1a;对具有概念标记&#xff08;分类&#xff09;的训练样本进行学习&#xff0c;以尽可能对训练样本集外的数据进行标记&#xff08;分类&#xff09;预测。这里&#xff0c;所有的标记&#xff08;分类&#xf…

最基本的25道深度学习面试问题和答案

近年来&#xff0c;对深度学习的需求不断增长&#xff0c;其应用程序被应用于各个商业部门。各公司现在都在寻找能够利用深度学习和机器学习技术的专业人士。在本文中&#xff0c;将整理深度学习面试中最常被问到的25个问题和答案。如果你最近正在参加深度学习相关的面试工作&a…

机器学习高频面试题(41道)

Q1: What’s the trade-off between bias and variance? 问题1: 什么是偏差&#xff08;bias&#xff09;、方差&#xff08;variable&#xff09;之间的均衡&#xff1f; Bias 是由于你使用的学习算法过度简单地拟合结果或者错误地拟合结果导致的错误。它反映的是模型在样本…

总结了200道经典的机器学习面试题(附参考答案)

刷题&#xff0c;是面试前的必备环节。本文总结了往年BAT机器学习面试题&#xff0c;干货满满&#xff0c;值得收藏。 想要入职大厂可谓是千军万马过独木桥。 为了通过层层考验&#xff0c;刷题肯定是必不可少的。本文根据网络在线发布的BAT机器学习面试1000题系列&#xff0…

微信小程序—域名配置(图文)

微信小程序—域名配置 1、微信公众平台登录 进入后选择‘开发’ 选择‘开发设置’ 域名配置&#xff0c;输入easy-mock即可&#xff08;因为我用的地址就是easy-mock&#xff0c;如果用的是豆瓣接口就直接域名配置成豆瓣的就行&#xff09; 2、打开右上角的详情 选择不校验…

微信小程序:小程序服务器域名配置合法域名

微信小程序开发过程中,微信小程序只要有网络请求就必定要用到服务器接口,这样的话就需要在微信小程序管理平台里面添加服务器的域名,而且添加的这个域名一定是合法有效的域名,不然就不会设置成功的。 微信小程序在生产环境下如果没有配置合法域名,是不能正常访问的,那就…

tomcat 配置域名

Tomcat 配置域名 在windows中首先找到conf下面的server.xml 把Connector 标签中的端口改成80 然后把添加一个Host name为域名appBase为路径 如下 Engine 标签也是 最后在C盘 windows\System32\drivers\etc 下面的hosts添加下面这行 127.0.0.1 www.test.com 重新启动tomcat …

vuepress(六)阿里云二级域名配置与添加SSL证书

文章目录 写在前面第一类&#xff1a;用来存放网站第二类&#xff1a;自定义 OSS对象存储 的图片路径 写在前面 这里是小飞侠Pan&#x1f973;&#xff0c;立志成为一名优秀的前端程序媛&#xff01;&#xff01;&#xff01; 本篇博客收录于我的github前端笔记仓库中&#x…

前端nginx配置并且同一域名配置多个项目以及nginx跨域设置

前端nginx配置并且同一域名配置多个项目 前端nginx配置并且同一域名配置多个项目first of all下载配置nginx配置nginx开机自启动nginx -t 找不到nginx的修复nginx进行重启Nginx同一个域名配置多个项目nginx按不同的目录分发给不同的项目启用二级域名&#xff0c;不同的项目分配…