深度学习试题_深度学习面试题汇总(2)

1.BatchNormalization的作用 [1]

神经网络在训练的时候随着网络层数的加深,激活函数的输入值的整体分布逐渐往激活函数的取值区间上下限靠近,从而导致在反向传播时低层的神经网络的梯度消失。而BatchNormalization的作用是通过规范化的手段,将越来越偏的分布拉回到标准化的分布,使得激活函数的输入值落在激活函数对输入比较敏感的区域,从而使得梯度变大,加快学习收敛速度,避免梯度消失问题。

作用:加速训练平稳收敛

计算

深度学习试题_深度学习面试题汇总(2)_第1张图片

BN层在train和inference时的差别:在训练时,我们可以计算出batch的均值和方差,迭代训练过程中,均值和方差一直在发生变化。但是在推理时,均值和方差是固定的,它们在训练过程中被确定下来。

在模型中的哪些位置插入BN层:推荐在conv层或这fc层之后,非线性变换激活层之前插入BN层。

2.梯度消失 [2] [3]

在神经网络中,当前面隐藏层的学习速率低于后面隐藏层的学习速率,即随着隐藏层数目的增加,分类准确率反而下降了,这种现象叫梯度消失(梯度爆炸)

梯度消失产生原因:隐藏层数过多;采用了不合适的激活函数

梯度爆炸产生的原因:隐藏层数过多;权重的初始化值过大

梯度消失和梯度爆炸本质上是一样的,都是因为网络层数太深而引发的梯度反向传播中的连乘效应。

解决梯度消失和梯度爆炸的办法:换用Relu, LeakyRelu, Elu等激活函数;采用BatchNormalization; 预训练加finetunning; 梯度剪切、正则。

3. 循环神经网络,为什么好?

循环神经网络模型(RNN)是一种节点定向连接成环的人工神经网络,是一种反馈神经网络,RNN利用内部的记忆来处理任意时序的输入序列,并且在其处理单元之间既有内部的反馈连接又有前馈连接,这使得RNN可以更加容易处理不分段的文本等。

4.什么是Group Convolution

若卷积神经网络的上一层有N个卷积核,则对应的通道数也为N。设群数目为M,在进行卷积操作的时候,将通道分成M份,每个group对应N/M个通道,然后每个group卷积完成后输出叠在一起,作为当前层的输出通道。

5.什么是RNN

一个序列当前的输出与前面的输出也有关,在RNN网络结构中,隐藏层的输入不仅包括输入层的输出还包含上一时刻隐藏层的输出,网络会对之前的信息进行记忆并应用于计算当前的输入计算中。

6. 训练过程中,若一个模型不收敛,那么是否说明这个模型无效?导致模型不收敛的原因有哪些?

并不能说明这个模型无效,导致模型不收敛的原因可能有数据分类的标注不准确,样本的信息量太大导致不足以fit整个样本空间。学习率设置的太大容易产生震荡,太小会导致不收敛。可能复杂的分类任务用了简单的模型。数据没有进行归一化操作。

7.图像处理中锐化和平滑的操作

锐化就是通过增加高频分量来减少图像中的模糊,在增强图像边缘的同时也增加了图像的噪声。

平滑与锐化相反,过滤掉高频分量,减少图像的噪声使得图片变模糊。

8. 什么是感受野?

感受野的定义是卷积神经网络每一层输出的特征图上的像素点在输入图片上映射的区域大小。

感受野的计算:

其中,

是第i层卷积层的感受野,
是第(i+1)层的感受野,stride是卷积的步长,Ksize是本层卷积核的大小。
9.VGG使用3*3卷积核的优势是什么?

2个3*3的卷积核串联和5*5的卷积核有相同的感受野,前者拥有更少的参数。多个3*3的卷积核比一个较大尺寸的卷积核有更多层的非线性函数,增加了非线性表达,使判决函数更具有判决性。

10. Relu比Sigmoid的效果好在哪里?

Sigmoid的导数只有在0的附近时有较好的激活性,而在正负饱和区域的梯度趋向于0,从而产生梯度弥散的现象,而relu在大于0的部分梯度为常数,所以不会有梯度弥散现象。Relu的导数计算的更快。Relu在负半区的导数为0,所以神经元激活值为负时,梯度为0,此时神经元不参与训练,具有稀疏性。

11.神经网络的激活函数 [4]

(1)Sigmoid函数:

函数图像:

深度学习试题_深度学习面试题汇总(2)_第2张图片

导数图像:

深度学习试题_深度学习面试题汇总(2)_第3张图片

(2)tanh函数:

函数与导数图像:

深度学习试题_深度学习面试题汇总(2)_第4张图片

(3)Relu函数:

函数与导数图像:

深度学习试题_深度学习面试题汇总(2)_第5张图片

(4)Leaky Relu函数:

函数与导数图像(

深度学习试题_深度学习面试题汇总(2)_第6张图片

(5)ELU(Exponential Linear Units)函数:

深度学习试题_深度学习面试题汇总(2)_第7张图片

函数及导数的图像:

深度学习试题_深度学习面试题汇总(2)_第8张图片
12. 在深度学习中,通常会finetuning已有的成熟模型,再基于新数据,修改最后几层神经网络权值,为什么?

实践中的数据集质量参差不齐,可以使用训练好的网络来进行提取特征。把训练好的网络当做特征提取器。

13. Attention机制的作用

简单理解就是权重分配。

减少处理高维输入数据的计算负担,结构化的选取输入的子集,从而降低数据的维度。让系统更加容易找到输入的数据中与当前输出信息相关的有用信息,从而提高输出的质量。帮助类似于decoder这样的模型框架更好地学到多种内容模态之间的相互关系。

14.什么是dropout

在神经网络的训练过程中,对于神经元按一定的概率将其随机从网络中丢弃,从而达到对于每个mini-batch都是在训练不同网络的效果,防止过拟合。

15.DropConnect的原理

防止过拟合方法的一种,与dropout不同的是,它不是按概率将隐藏层的节点输出清0,而是对每个节点与之相连的输入权值以一定的概率清0.

16.Adam

Adam算法和传统的随机梯度下降不同,随机梯度下降保持单一的学习率更新所有的权重,学习率在训练过程中并不会改变。而Adam通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率。

17. 1*1的卷积作用

实现跨通道的交互和信息整合,实现卷积核通道数的降维和升维,可以实现多个feature map的线性组合,而且可以实现与全连接层的等价效果。

18.怎么提升网络的泛化能力?

从数据上提升性能:收集更多的数据,对数据做缩放和变换,特征组合和重新定义问题。

从算法调优上提升性能:用可靠的模型诊断工具对模型进行诊断,权重的初始化,用小的随机数初始化权重。对学习率进行调节,尝试选择合适的激活函数,调整网络的拓扑结构,调节batch和epoch的大小,添加正则化的方法,尝试使用其他的优化方法,使用early stopping.

19.激活函数的作用

激活函数是用来加入非线性因素的,提高神经网络对模型的表达能力,解决线性模型所不能解决的问题。

20.L1,L2正则化

L1正则化公式很简单,直接在原来的损失函数基础上加上权重参数的绝对值:

L2是在损失函数基础上加上权重参数的平方和:

21.cycleGAN原理介绍一下

cycleGAN其实就是一个A->B单向GAN加上一个B->A单向GAN。两个GAN共享两个生成器,然后各自带一个判别器,所以加起来总共有两个判别器和两个生成器。一个单向GAN有两个loss,而cycleGAN加起来总共有四个loss.

22. 训练GAN的时候有没有遇到什么问题

遇到过GAN训练不稳定的问题,通过WGAN来解决这个问题。

参考

  1. ^https://www.jianshu.com/p/437fb1a5823e
  2. ^https://www.jianshu.com/p/3f35e555d5ba
  3. ^https://www.cnblogs.com/XDU-Lakers/p/10553239.html
  4. ^https://blog.csdn.net/tyhj_sf/article/details/79932893

你可能感兴趣的:(深度学习试题)