深度学习小样本分类选用什么网络?_机器学习与深度学习常见面试题(上)-程序员宅基地

技术标签: 深度学习试题  深度学习小样本分类选用什么网络?  

36392fbefa39d33a2488398ec7aed399.png

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。

其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。

  • 书的购买链接
  • 书的勘误,优化,源代码资源

一年一度的校园招聘已经开始了,为了帮助参加校园招聘、社招的同学更好的准备面试,SIGAI整理出了一些常见的机器学习、深度学习面试题。理解它们,对你通过技术面试非常有帮助,当然,我们不能只限于会做这些题目,最终的目标是真正理解机器学习与深度学习的原理、应用。

1.比较Boosting和Bagging的异同

二者都是集成学习算法,都是将多个弱学习器组合成强学习器的方法。

Bagging:从原始数据集中每一轮有放回地抽取训练集,训练得到k个弱学习器,将这k个弱学习器以投票的方式得到最终的分类结果。

Boosting:每一轮根据上一轮的分类结果动态调整每个样本在分类器中的权重,训练得到k个弱分类器,他们都有各自的权重,通过加权组合的方式得到最终的分类结果。

2.无监督学习中存在过拟合吗?

存在。我们可以使用无监督学习的某些指标或人为地去评估模型性能,以此来判断是否过拟合。

3.什么是k折交叉验证?

将原始数据集划分为k个子集,将其中一个子集作为验证集,其余k-1个子集作为训练集,如此训练和验证一轮称为一次交叉验证。交叉验证重复k次,每个子集都做一次验证集,得到k个模型,加权平均k个模型的结果作为评估整体模型的依据。

4.关于k折交叉验证,需要注意什么?

k越大,不一定效果越好,而且越大的k会加大训练时间;在选择k时,需要考虑最小化数据集之间的方差,比如对于2分类任务,采用2折交叉验证,即将原始数据集对半分,若此时训练集中都是A类别,验证集中都是B类别,则交叉验证效果会非常差。

5.对于一个二分类问题,我们定义超过阈值t的判定为正例,否则判定为负例。现在若将t增大,则准确率和召回率会如何变化?

准确率 = TP / (TP + FP),召回率 = TP / (TP + FN),其中TP表示将正例正确分类为正例的数量,FP表示将负例错误分类为正例的数量,FN表示将正例错误分类为负例的数量。

准确率可以理解为在所有分类为正例的样品中,分类正确的样本所占比例;召回率可以理解为在所有原始数据集中的正例样品中,正确挑出的正例样本的比例。

因此若增大阈值t,更多不确定(分类概率较小)的样本将会被分为负例,剩余确定(分类概率较大)的样本所占比例将会增大(或不变),即正确率会增大(或不变);若增大阈值t,则可能将部分不确定(分类概率较小)的正例样品误分类为负例,即召回率会减小(或不变)。

6.以下关于神经网络的说法中,正确的是( )?

A.增加网络层数,总能减小训练集错误率

B.减小网络层数,总能减小测试集错误率

C.增加网络层数,可能增加测试集错误率

C。增加神经网络层数,确实可能提高模型的泛化性能,但不能绝对地说更深的网络能带来更小的错误率,还是要根据实际应用来判断,比如会导致过拟合等问题,因此只能选C。

7.说明Lp范数间的区别

L1范数:向量中各个元素绝对值之和

L2范数:向量中各个元素平方和的开二次方根

Lp范数:向量中各个元素绝对值的p次方和的开p次方根

8.用梯度下降训练神经网络的参数,为什么参数有时会被训练为nan值?

输入数据本身存在nan值,或者梯度爆炸了(可以降低学习率、或者设置梯度的阈值)

9.卷积神经网络CNN中池化层有什么作用?

减小图像尺寸即数据降维,缓解过拟合,保持一定程度的旋转和平移不变性。

10.请列举几种常见的激活函数。激活函数有什么作用?

sigmoi,relu,tanh。非线性化

11.神经网络中Dropout的作用?具体是怎么实现的?

防止过拟合。每次训练,都对每个神经网络单元,按一定概率临时丢弃。

12.利用梯度下降法训练神经网络,发现模型loss不变,可能有哪些问题?怎么解决?

很有可能是梯度消失了,它表示神经网络迭代更新时,有些权值不更新的现象。

改变激活函数,改变权值的初始化等。

13.如何解决不平衡数据集的分类问题?

可以扩充数据集,对数据重新采样,改变评价指标等。

14.残差网络为什么能做到很深层?

神经网络在反向传播过程中要不断地传播梯度,而当网络层数加深时,梯度在逐层传播过程中会逐渐衰减,导致无法对前面网络层的权重进行有效的调整。 残差网络中, 加入了short connections 为梯度带来了一个直接向前面层的传播通道,缓解了梯度的减小问题。

15.相比sigmoid激活函数ReLU激活函数有什么优势?

(1) 防止梯度消失 ( sigmoid的导数只有在0附近的时候有比较好的激活性,在正负饱和区的梯度都接近于0)

(2) ReLU的输出具有稀疏性

(3) ReLU函数简单计算速度快

16.卷积神经网络中空洞卷积的作用是什么?

空洞卷积也叫扩张卷积,在保持参数个数不变的情况下增大了卷积核的感受野,同时它可以保证输出的特征映射(feature map)的大小保持不变。一个扩张率为2的3×3卷积核,感受野与5×5的卷积核相同,但参数数量仅为9个。

17.解释下卷积神经网络中感受野的概念?

在卷积神经网络中,感受野 (receptive field)的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。

18.模型欠拟合什么情况下会出现?有什么解决方案?

模型复杂度过低,不能很好的拟合所有的数据

增加模型复杂度,如采用高阶模型(预测)或者引入更多特征(分类)等

19. 适用于移动端部署的网络结构都有哪些?

Mobilenet(https://arxiv.org/abs/1704.04861)

Shufflenet(https://arxiv.org/abs/1707.01083)

Xception(https://arxiv.org/abs/1610.02357)

20. 卷积神经网络中im2col是如何实现的?

使用im2col的方法将划窗卷积转为两个大的矩阵相乘,见下图:

b609670b14b128765fb3fb6dc5afb934.png

21.多任务学习中标签缺失如何处理?

一般做法是将缺失的标签设置特殊标志,在计算梯度的时候忽略。

22.梯度爆炸的解决方法?

针对梯度爆炸问题,解决方案是引入Gradient Clipping(梯度裁剪)。通过Gradient Clipping,将梯度约束在一个范围内,这样不会使得梯度过大。

23.深度学习模型参数初始化都有哪些方法?

(1)Gaussian 满足mean=0,std=1的高斯分布x∼N(mean,

)

(2)Xavier 满足x∼U(−a,+a)x∼U(−a,+a)的均匀分布, 其中 a = sqrt(3/n)

(3)MSRA 满足x∼N(0,

)x∼N(0,
)的高斯分布,其中σ = sqrt(2/n)

(4)Uniform 满足min=0,max=1的均匀分布。x∼U(min,max)x∼U(min,max)

等等

24.注意力机制在深度学习中的作用是什么?有哪些场景会使用?

深度学习中的注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标是从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略大多不重要的信息。目前在神经机器翻译(Neural Machine Translation)、图像理解(Image caption)等场景都有广泛应用。

25.卷积神经网络为什么会具有平移不变性?

MaxPooling能保证卷积神经网络在一定范围内平移特征能得到同样的激励,具有平移不变形。

26.神经网络参数共享(parameter sharing)是指什么?

所谓的权值共享就是说,用一个卷积核去卷积一张图,这张图每个位置是被同样数值的卷积核操作的,权重是一样的,也就是参数共享。

27.如何提高小型网络的精度?

(1)模型蒸馏技术(https://arxiv.org/abs/1503.02531)

(2)利用AutoML进行网络结构的优化,可将网络计算复杂度作为约束条件之一,得到更优的结构。(https://arxiv.org/abs/1807.11626)

28.什么是神经网络的梯度消失问题,为什么会有梯度消失问题?有什么办法能缓解梯度消失问题?

在反向传播算法计算每一层的误差项的时候,需要乘以本层激活函数的导数值,如果导数值接近于0,则多次乘积之后误差项会趋向于0,而参数的梯度值通过误差项计算,这会导致参数的梯度值接近于0,无法用梯度下降法来有效的更新参数的值。

改进激活函数,选用更不容易饱和的函数,如ReLU函数。

29.列举你所知道的神经网络中使用的损失函数

欧氏距离,交叉熵,对比损失,合页损失

30.对于多分类问题,为什么神经网络一般使用交叉熵而不用欧氏距离损失?

交叉熵在一般情况下更容易收敛到一个更好的解。

31.1x1卷积有什么用途?

通道降维,保证卷积神经网络可以接受任何尺寸的输入数据

32.随机梯度下降法,在每次迭代时能保证目标函数值一定下降吗?为什么?

不能,每次迭代时目标函数不一样

33.梯度下降法,为什么需要设置一个学习率?

使得迭代之后的值在上次值的邻域内,保证可以忽略泰勒展开中的二次及二次以上的项

34.解释梯度下降法中动量项的作用

利用之前迭代时的梯度值,减小震荡

35.为什么现在倾向于用小尺寸的卷积核?

用多个小卷积核串联可以有大卷积核同样的能力,而且参数更少,另外有更多次的激活函数作用,增强非线性

36.解释GoogLeNet的Inception模块的原理

对输入图像用多个不同尺寸的卷积核、池化操作进行同时处理,然后将输出结果按照通道拼接起来

37.解释反卷积的原理和用途

反卷积即转置卷积,正向传播时乘以卷积核的转置矩阵,反向传播时乘以卷积核矩阵

由卷积输出结果近似重构输入数据,上采样

38.解释批量归一化的原理

在数据送入神经网络的某一层进行处理之前,对数据做归一化。按照训练样本的批量进行处理,先减掉这批样本的均值,然后除以标准差,然后进行缩放和平移。缩放和平移参数同训练得到。预测时使用训练时确定的这些值来计算

39.解释SVM核函数的原理

核函数将数据映射到更高维的空间后处理,但不用做这种显式映射,而是先对两个样本向量做内积,然后用核函数映射。这等价于先进行映射,然后再做内积。

40.什么是过拟合,过拟合产生的原因是什么?有什么方法能减轻过拟合?

过拟合指在训练集上表现的很好,但在测试集上表现很差,推广泛化能力差。产生过拟合的原因是训练样本的抽样误差,训练时拟合了这种误差。增加训练样本,尤其是样本的代表性;正则化

41.什么样的函数可以用作激活函数?

非线性,几乎处处可到,单调

42.什么是鞍点问题?

梯度为0,Hessian矩阵不定的点,不是极值点

43.在训练深度神经网络的过程中,遇到过哪些问题,怎么解决的?

不收敛,收敛太慢,泛化能力差。调整网络结构,调整样本,调整学习率,调整参数初始化策略

44.SVM如何解决多分类问题

多个二分类器组合。1对1方案,1对剩余方案,多类损失函数

45.列举你知道的聚类算法

层次聚类,k均值算法,DBSCAN算法,OPTICS算法,谱聚类

46.K均值算法中,初始类中心怎么确定

随机选择K个样本作为类中心,将样本随机划分成K个子集然后计算类中心

47.简述EM算法的原理

EM算法用于求解带有隐变量的最大似然估计问题。由于有隐变量的存在,无法直接用最大似然估计求得对数似然函数极大值的公式解。此时通过jensen不等式构造对数似然函数的下界函数,然后优化下界函数,再用估计出的参数值构造新的下界函数,反复迭代直至收敛到局部极小值点

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39994665/article/details/110144260

智能推荐

中国采购招标网爬虫采集破解_采招网脚本-程序员宅基地

文章浏览阅读7.8k次,点赞5次,收藏22次。中国采购招标网URL,通过爬虫去请求该网站会返回521状态码,需要带着特定cookie去访问,此cookie又是动态变化,如果想要持续采集就得破解此cookie生成规则。站点反爬分析通过Fiddler抓包分析,可以看出它的请求顺序。1. 首次发起请求,返回状态码为521,返回第一段加密cookie,携带第一段加密的cookie去请求会返回第二个521状态码,会返回第二段加密cookie,然后携带第一段和第二段cookie去请求页面,才返回正常状态码,通过观察第二段加密cookie有时效性,._采招网脚本

【Unity学习笔记】为什么欧拉角(Euler)会符合万向节(Gimbal)规则?_unity欧拉角旋转顺序-程序员宅基地

文章浏览阅读821次,点赞2次,收藏5次。声明:此篇文章是个人学习笔记,并非教程,所以内容可能不够严谨。可作参考,但不保证绝对正确。如果你发现我的文章有什么错误,非常欢迎指正,谢谢哦。0 引言在我的上一篇笔记中,我主要关注点在“什么是万向节和万向节锁”上,另外简单说了说欧拉角会按照万向节的规则运行。但对于“欧拉角为什么会按照万向节这一(相对)复杂规则来确定旋转值”没有讨论。本篇文章,就来谈谈我对欧拉角为什么会符合万向节规则的理解。本文使用的欧拉角的定义是我为了清晰易懂从而根据自己的理解描述的(可能不准确)。1 什么是欧拉角1.1 我的理解:_unity欧拉角旋转顺序

工厂方法模式_工厂类可以直接调用吗-程序员宅基地

文章浏览阅读133次。设计模式是根据人们的经验总结出来的使用技巧。本篇博客将从模式定义、角色与职责、实现方式、优缺点、应用场景等方面对工厂模式进行解读,并且在文本还附带小的程序案例以便更加一步理解该模式。_工厂类可以直接调用吗

树莓派java代码远程部署运行【1】------树莓派配置java环境_在树莓派上配置jni运行javac代码-程序员宅基地

文章浏览阅读6.2k次。ssh登录到树莓派,只需要敲击一条命令即可sudo apt-get install oracle-java8-jdk等程序安装了,什么都不需要配置,java 和javac 命令是同时有用的安装的java目录在/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/ 这个文件夹..._在树莓派上配置jni运行javac代码

CAS客户端服务器端配置步骤-程序员宅基地

文章浏览阅读1.8k次。来自我的个人网站:http://lkf.22web.org/cas介绍:CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:开源的企业级单点登录解决方案。CAS Server 为需要独立部署的 Web 应用。支持非常多的客户端(这里指

webpack打包优化与首页白屏渲染问题【低性能移动端】解决方案_webpack 的externals 配置导致页面白屏-程序员宅基地

文章浏览阅读1.8k次。转眼间已经来到了2019年的6月份,我也已经实习半年多了,这半年尽管没有写过博客,但积累下来的经验还是不少的,日后慢慢补上今天来讲讲的是webpack的打包优化经验,优化的角度从路由组件懒加载和常用库CDN引入两大块入手,至于nginx的Gzip还没有尝试过,后续尝试过再做补充【因为暂时手头上负责的项目都是在pad端上做的单机版应用.......】1. 路由组件懒加载这样在路由配置..._webpack 的externals 配置导致页面白屏

随便推点

支付宝小程序、百度小程序、微信小程序、今日头条小程序技术分析_头条小程序和微信小程序登录的区别-程序员宅基地

文章浏览阅读6.8k次,点赞4次,收藏33次。支付宝小程序、百度小程序、微信小程序、今日头条小程序四大小程序对比分析,BAT小程序技术分析_头条小程序和微信小程序登录的区别

python之os模块详解_python os模块详解-程序员宅基地

文章浏览阅读8k次,点赞9次,收藏63次。os模块详解在看大神们的代码时经常能看到os模块的身影,然后就想着做一下总结,方便以后查看下图是参考CSDN博主“数据分析与统计学之美”,非常感谢博主的图片下面我们针对每一个详细的介绍一下其用法:(1)os.getcwd() 获取当前的工作路径;>>> import os>>> os.getcwd()'C:\\Users\\cc'(2)os.listdir(path) 显示当前文件夹下所有文件和目录组成的列表;>>> pat_python os模块详解

关于torch.gather(input, dim, index)_torch.gather(input,dim,index)-程序员宅基地

文章浏览阅读254次。torch.gather()函数可以理解为根据索引和维度来求张量中对应的数,最后得到的是一个shape和index相同的张量即“以A = B.gather(dim=0, index=torch.tensor([[2, 1, 2]]))为例,(index维度可以是任意的维度,不要受限于B),即A的维度为(1,3);其次dim=0代表按列索引,那么index第一个元素“2”的含义为在B中其所在列(即第0列)的第2个元素。同理,index第二个元素“1”的含义为在B中其所在列(即第1列)的第1个元素;_torch.gather(input,dim,index)

BeanUtils中copyProperties的使用_hutool beanutil.copyproperties-程序员宅基地

文章浏览阅读2.6k次,点赞4次,收藏4次。Java copyProperties拷贝工具类的使用前几天优化代码时,目光停在了copyProperties上。因为我在正式转历史时可以较明显的但觉到卡顿。我原本使用的是org.apache.commons.beanutils。但是众所周知的commons系列的突出问题其一,就是著名的BeanUtils.copyProperties性能问题。经过了解后,我盯上了Hutool。在我个人看来,对于copyProperties性能问题,Hutool还是有一定自己的强处。特此分享一下我的使用过程和心得体会。_hutool beanutil.copyproperties

uniapp 自定义TabBar 组件_uniapp tabbar宽度-程序员宅基地

文章浏览阅读1.2k次。uniapp 自定义TabBar 组件_uniapp tabbar宽度

SpringBoot整合EasyExcel二级分类_java easyexcel 分组汇总-程序员宅基地

文章浏览阅读744次。一、Excel导入导出的应用场景1、数据导入:减轻录入工作量2、数据导出:统计信息归档3、数据传输:异构系统之间数据传输二、EasyExcel简介1、EasyExcel特点Java领域解析、生成Excel比较有名的框架有Apachepoi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的fullgc。EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能_java easyexcel 分组汇总

推荐文章

热门文章

相关标签