前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习相关面试题

深度学习相关面试题

作者头像
机器学习AI算法工程
发布2021-01-12 14:52:24
7110
发布2021-01-12 14:52:24
举报
文章被收录于专栏:机器学习AI算法工程
1.CNN的特点以及优势

改变全连接为局部连接,这是由于图片的特殊性造成的(图像的一部分的统计特性与其他部分是一样的),通过局部连接和参数共享大范围的减少参数值。可以通过使用多个filter来提取图片的不同特征(多卷积核)。

CNN使用范围是具有局部空间相关性的数据,比如图像,自然语言,语音

代码语言:javascript
复制
1.局部连接:可以提取局部特征。
2.权值共享:减少参数数量,因此降低训练难度(空间、时间消耗都少了)。
3.可以完全共享,也可以局部共享(比如对人脸,眼睛鼻子嘴由于位置和样式相对固定,可以用和脸部不一样的卷积核)
4.降维:通过池化或卷积stride实现。
5.多层次结构:将低层次的局部特征组合成为较高层次的特征。不同层级的特征可以对应不同任务。
2.deconv的作用
代码语言:javascript
复制
1.unsupervised learning:重构图像
2.CNN可视化:将conv中得到的feature map还原到像素空间,来观察特定的feature map对哪些pattern的图片敏感
3.Upsampling:上采样。
3.dropout作用以及实现机制 (参考:https://blog.csdn.net/nini_coded/article/details/79302800)
代码语言:javascript
复制
1.dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,
  对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。
2.dropout是一种CNN训练过程中防止过拟合提高效果的方法
3.dropout带来的缺点是可能减慢收敛速度:由于每次迭代只有一部分参数更新,可能导致梯度下降变慢
4.测试时,需要每个权值乘以P
4.深度学习中有什么加快收敛/降低训练难度的方法:
代码语言:javascript
复制
1.瓶颈结构
2.残差
3.学习率、步长、动量
4.优化方法
5.预训练
5.什么造成过拟合,如何防止过拟合
代码语言:javascript
复制
1.data agumentation
2.early stop
3.参数规则化
4.用更简单模型
5.dropout
6.加噪声
7.预训练网络freeze某几层
6.LSTM防止梯度弥散和爆炸
代码语言:javascript
复制
LSTM用加和的方式取代了乘积,使得很难出现梯度弥散。但是相应的更大的几率会出现梯度爆炸,但是可以通过给梯度加门限解决这一问题
7.为什么很多做人脸的Paper会最后加入一个Local Connected Conv?

在一些研究成果中,作者通过实验表明:人脸在不同的区域存在不同的特征(眼睛/鼻子/嘴的分布位置相对固定),当不存在全局的局部特征分布时,Local-Conv更适合特征的提取。

8.神经网络权值初始化方式以及不同方式的区别?

权值初始化的方法主要有:常量初始化(constant)、高斯分布初始化(gaussian)、positive_unitball初始化、均匀分布初始化(uniform)、xavier初始化、msra初始化、双线性初始化(bilinear)

9.Convolution、 pooling、 Normalization是卷积神经网络中十分重要的三个步骤,分别简述Convolution、 pooling和Normalization在卷积神经网络中的作用。
10.dilated conv(空洞卷积)优缺点以及应用场景
代码语言:javascript
复制
基于FCN的语义分割问题中,需保持输入图像与输出特征图的size相同。
若使用池化层,则降低了特征图size,需在高层阶段使用上采样,由于池化会损失信息,所以此方法会影响导致精度降低;
若使用较小的卷积核尺寸,虽可以实现输入输出特征图的size相同,但输出特征图的各个节点感受野小;
若使用较大的卷积核尺寸,由于需增加特征图通道数,此方法会导致计算量较大;
所以,引入空洞卷积(dilatedconvolution),在卷积后的特征图上进行0填充扩大特征图size,这样既因为有卷积核增大感受野,也因为0填充保持计算点不变。
11.判别模型和生成模型解释

监督学习方法又分生成方法(Generative approach)和判别方法(Discriminative approach),所学到的模型分别称为生成模型(Generative Model)和判别模型(Discriminative Model)。

代码语言:javascript
复制
从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi。

生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布。能够学习到数据生成的机制。

判别模型:学习得到条件概率分布P(y|x),即在特征x出现的情况下标记y出现的概率。

数据要求:生成模型需要的数据量比较大,能够较好地估计概率密度;而判别模型对数据样本量的要求没有那么多。

由生成模型可以得到判别模型,但由判别模型得不到生成模型。

12.如何判断是否收敛
13.正则化方法以及特点

正则化方法包括:L1 regularization 、 L2 regularization 、 数据集扩增 、 dropout 等

14.常用的激活函数 (参考:https://blog.csdn.net/Yshihui/article/details/80540070)
15.1x1卷积的作用
代码语言:javascript
复制
1. 实现跨通道的信息交互和整合。1x1卷积核只有一个参数,当它作用在多通道的feature map上时,相当于不同通道上的一个线性组合,
   实际上就是加起来再乘以一个系数,但是这样输出的feature map就是多个通道的整合信息了,能够使网络提取的特征更加丰富。
2. feature map通道数上的降维。降维这个作用在GoogLeNet和ResNet能够很好的体现。举个例子:假设输入的特征维度为100x100x128,
   卷积核大小为5x5(stride=1,padding=2),通道数为256,则经过卷积后输出的特征维度为100x100x256,卷积参数量为
   128x5x5x256=819200。此时在5x5卷积前使用一个64通道的1x1卷积,最终的输出特征维度依然是100x100x256,但是此时的卷积参数
   量为128x1x1x64 + 64x5x5x256=417792,大约减少一半的参数量。
3. 增加非线性映射次数。1x1卷积后通常加一个非线性激活函数,使网络提取更加具有判别信息的特征,同时网络也能做的越来越深。
16.无监督学习方法有哪些
代码语言:javascript
复制
强化学习、K-means 聚类、自编码、受限波尔兹曼机
17.增大感受野的方法?
代码语言:javascript
复制
空洞卷积、池化操作、较大卷积核尺寸的卷积操作
18.目标检测领域的常见算法?
代码语言:javascript
复制
1.两阶段检测器:R-CNN、Fast R-CNN、Faster R-CNN
2.单阶段检测器:YOLO、YOLO9000、SSD、DSSD、RetinaNet
19.回归问题的评价指标
代码语言:javascript
复制
1.平均绝对值误差(MAE)
2.均方差(MSE)
20.卷积层和全连接层的区别
代码语言:javascript
复制
1.卷积层是局部连接,所以提取的是局部信息;全连接层是全局连接,所以提取的是全局信息;
2.当卷积层的局部连接是全局连接时,全连接层是卷积层的特例;
21.反卷积的棋盘效应及解决方案

图像生成网络的上采样部分通常用反卷积网络,不合理的卷积核大小和步长会使反卷积操作产生棋盘效应

解决方案:

22.分类的预训练模型如何应用到语义分割上
代码语言:javascript
复制
1.参考论文: Fully Convolutional Networks for Semantic Segmentation
23.SSD和YOLO的区别
24.交叉熵和softmax,还有它的BP
实践部分

1.python中range和xrange有什么不同

代码语言:javascript
复制
两者的区别是xrange返回的是一个可迭代的对象;range返回的则是一个列表,同时效率更高,更快。

2.python中带类和main函数的程序执行顺序

代码语言:javascript
复制
1)对于  if __name__ == '__main__': 的解释相关博客已经给出了说明,意思就是当此文件当做模块被调用时,不会从这里执行,
  因为此时name属性就成了模块的名字,而不是main。当此文件当做单独执行的程序运行时,就会从main开始执行。
  
2)对于带有类的程序,会先执行类及类内函数,或者其他类外函数。这里可以总结为,对于没有缩进的程序段,按照顺序执行。然后,才
  到main函数。然后才按照main内函数的执行顺序执行。如果main内对类进行了实例化,那么执行到此处时,只会对类内成员进行初始
  化,然后再返回到main 函数中。执行其他实例化之后对象的成员函数调用。

3.神经网络的参数量计算

4.计算空洞卷积的感受野

5.mAP的计算

6.Python tuple和list的区别

7.Python的多线程和多进程,Python伪多线程,什么时候应该用它

8.tensorflow while_loop和python for循环的区别,什么情况下for更优?

代码语言:javascript
复制
while loop的循环次数不确定的情况下效率低,因为要不断重新建图
参考文献

[1] https://blog.csdn.net/u014722627/article/details/77938703

[2] https://www.cnblogs.com/houjun/p/8535471.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.deconv的作用
  • 3.dropout作用以及实现机制 (参考:https://blog.csdn.net/nini_coded/article/details/79302800)
  • 4.深度学习中有什么加快收敛/降低训练难度的方法:
  • 5.什么造成过拟合,如何防止过拟合
  • 6.LSTM防止梯度弥散和爆炸
  • 7.为什么很多做人脸的Paper会最后加入一个Local Connected Conv?
  • 8.神经网络权值初始化方式以及不同方式的区别?
  • 9.Convolution、 pooling、 Normalization是卷积神经网络中十分重要的三个步骤,分别简述Convolution、 pooling和Normalization在卷积神经网络中的作用。
  • 10.dilated conv(空洞卷积)优缺点以及应用场景
  • 11.判别模型和生成模型解释
  • 12.如何判断是否收敛
  • 13.正则化方法以及特点
  • 14.常用的激活函数 (参考:https://blog.csdn.net/Yshihui/article/details/80540070)
  • 15.1x1卷积的作用
  • 16.无监督学习方法有哪些
  • 17.增大感受野的方法?
  • 18.目标检测领域的常见算法?
  • 19.回归问题的评价指标
  • 20.卷积层和全连接层的区别
  • 21.反卷积的棋盘效应及解决方案
  • 22.分类的预训练模型如何应用到语义分割上
  • 23.SSD和YOLO的区别
  • 24.交叉熵和softmax,还有它的BP
  • 实践部分
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档