常见的面试问题————深度学习篇(持续更新)

1、pooling 有什么作用,为什么要用 pooling,pooling 的种类?

Pooling 主要作用是保留主要特征,同时保持特征一定的旋转、平移不变性。主要有 max pooling 和 average pooling,一般来说 max pooling 更突出前景,average pooling 更突出背景。

2. Pooling 层如何进行反向传播和梯度更新?

对于 max pooling 只对 max value 处进行梯度更新,其它都为 0;对于 average pooling 对之前的 pooling 位置处的所有元素做更新,更新值为 average pooling 层对应位置上的梯度除以采样个数(比如 2x2 pooling 则对应 4)

      mean pooling

mean pooling 的前向传播就是把一个 patch 中的值求取平均来做 pooling,那么反向传播的过程也就是把某个元素的梯度等分为 n 份分配给前一层,这样就保证池化前后的梯度(残差)之和保持不变,还是比较理解的,图示如下 :

  max pooling

max pooling 也要满足梯度之和不变的原则,max pooling 的前向传播是把 patch 中最大的值传递给后一层,而其他像素的值直接被舍弃掉。那么反向传播也就是把梯度直接传给前一层某一个像素,而其他像素不接受梯度,也就是为 0。所以 max pooling 操作和 mean pooling 操作不同点在于需要记录下池化操作时到底哪个像素的值是最大,也就是 max _id,这个变量就是记录最大值所在位置的,因为在反向传播中要用到,那么假设前向传播和反向传播的过程就如下图所示 :

3、max pooling 和 mean pooling 有什么缺点?

pooling 能够增大感受野,让卷积看到更多的信息,但是它在降维的过程中丢失了一些信息(因为毕竟它变小了嘛,只留下了它认为重要的信息),所以 pooling 增大感受野的前提是丢失了一些信息(即降低了分辨率),这对 segmentation 要求的精确度 location 有一定的影响。

4、卷积的反向传播:https://blog.csdn.net/legend_hua/article/details/81590979

CNN并行是怎么做的?模型并行和数据并行在CNN上是怎么做的?https://blog.csdn.net/xsc_c/article/details/42420167

5、卷积层中 1x1 卷积的作用?

    1) 实现跨通道的交互和信息整合。

    2) 进行卷积核通道数的降维和升维。

6、梯度消失和梯度爆炸产生原因

6、RNN 为什么会产生梯度消失?LSTM 如何解决 RNN 中梯度消失的问题?

https://zhuanlan.zhihu.com/p/28687529

https://weizhixiaoyi.com/archives/491.html

7、LSTM、GRU 等结构和原理,LSTM和GRU的参数怎么计算的

处理过拟合和欠拟合的方法:过拟合:1、增强训练数据  2、降低模型复杂度  3、添加正则项  4、使用bagging的方法  

欠拟合:1、添加新特征  2、增加模型复杂度  3、减少正则化系数

8、如何选择激活函数?

选择一个适合的激活函数并不容易,需要考虑很多因素,通常的做法是,如果不确定哪一个激活函数效果更好,可以把它们都试试,然后在验证集或者测试集上进行评价。然后看哪一种表现的更好,就去使用它。

以下是常见的选择情况:

1、如果输出是 0、1 值(二分类问题),则输出层选择 sigmoid 函数,然后其它的所有单元都选择 ReLU 函数。

2、如果在隐藏层上不确定使用哪个激活函数,那么通常会使用 ReLU 激活函数。有时,也会使用 tanh 激活函数,但 ReLU 的一个优点是:当是负值的时候,导数等于 0,它求导的时候是使用次梯度。缺点是:在训练过程该函数不适应较大梯度输入,容易导致梯度永远都是零。

3、sigmoid 激活函数:除了输出层是一个二分类问题基本不会用它。

4、tanh 激活函数:tanh 是非常优秀的,几乎适合所有场合。

5、ReLU 激活函数:最常用的默认函数,如果不确定用哪个激活函数,就使用 ReLu 或者 Leaky ReLU,再去尝试其他的激活函数。

6、如果遇到了一些死的神经元,我们可以使用 Leaky ReLU 函数。

激活函数的作用?将输出转化成非线性。

激活函数的优缺点:https://zhuanlan.zhihu.com/p/92412922

大部分的激活函数是单调的,这是为什么?

https://blog.csdn.net/junjun150013652/article/details/81487059

9、常见的损失函数有哪些?

一、0 和 1 损失

二、绝对值损失

三、平方差损失函数

四、指数损失函数

五、对数损失函数

六、交叉熵损失函数(对其进行求导,重中之重)

10、交叉熵损失函数比均方误差损失函数的区别,分类中为什么交叉熵损失函数比均方误差损失函数更常用?

 交叉熵损失函数关于输入权重的梯度表达式与预测值与真实值的误差成正比且不含激活函数的梯度,而均方误差损失函数关于输入权重的梯度表达式中则含有,由于常用的 sigmoid/tanh 等激活函数存在梯度饱和区,使得 MSE 对权重的梯度会很小,参数 w 调整的慢,训练也慢,而交叉熵损失函数则不会出现此问题,其参数 w 会根据误差调整,训练更快,效果更好。

详细请参考:https://www.jianshu.com/p/d20e293a0d34

11、Dropout 为什么能够防止过拟合?算法原理是怎样的?它的缺点是什么? https://blog.csdn.net/program_developer/article/details/80737724

12、BN的实现,BN 算法如何防止过拟合的?BN 算法如何进行网络训练加速的?

BN的公式

在训练中,BN 的使用使得一个 mini-batch 中的所有样本都被关联在了一起,因此网络不会从某一个训练样本中生成确定的结果。其实这句话的意思是,BN 的使用,使得网络在训练时不依靠于某一个样本进行更新或者输出,而是依赖于整个 batch size 的数据,这样参数不会太依赖于某一个数据,而是一个 batch size 内的数据,一定程度上防止了过拟合。

BN 是通过将每次卷积后的数据分布拉到指定分布域内(比如标准高斯分布),这样在参数学习时,由于数据分布基本相同,学习起来速度会变得很快,特别是对于 sigmoid 类型函数来说,将数据分布拉到非梯度饱和区间,这样避免了梯度消失现象,加快了训练速度。https://hellozhaozheng.github.io/z_post/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-Batch-Normalization%E6%B7%B1%E5%85%A5%E8%A7%A3%E6%9E%90/

13、LN与BN的作用和区别  https://zhuanlan.zhihu.com/p/74516930

14、BN一般用在网络的什么地方 :BN 算法像卷积层,池化层、激活层一样也输入一层,BN 层添加在激活函数前,对激活函数的输入进行归一化,这样解决了输入数据发生偏移和增大的影响。

15、dropout一般用在模型的什么地方:一般用在全连接层,也可以用在卷积层,不过用的比较少。

16、L1正则和L2正则的区别(从不同的角度分析)https://blog.csdn.net/Matrix_cc/article/details/115270671

L1正则怎么优化?坐标轴下降法在每次迭代中,计算当前点处沿一个坐标方向进行一维搜索 ,固定其它维度的坐标方向,找到一个函数的局部极小值。而梯度下降总是沿着梯度的负方向求函数的局部最小值;

17、各种优化器的区别,Adadeta 比 Adagrad 好在哪

https://blog.csdn.net/weixin_40170902/article/details/80092628

18、学习率对优化的影响

19、batch size 大小会怎么影响收敛速度  https://www.zhihu.com/question/32673260

20、dnn、cnn、rnn 的区别与联系

参考:

 https://zhuanlan.zhihu.com/p/97326991

 https://zhuanlan.zhihu.com/p/97311641

https://zhuanlan.zhihu.com/p/97324416

21、softmax是否有溢出,为什么会溢出,怎么解决溢出的

https://www.codelast.com/%E5%8E%9F%E5%88%9B-%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2softmax%E5%87%BD%E6%95%B0%E4%B8%8A%E6%BA%A2%E5%87%BAoverflow%E5%92%8C%E4%B8%8B%E6%BA%A2%E5%87%BAunderflow/
22、如何解决模型不收敛问题 https://zhuanlan.zhihu.com/p/36369878

23、如何优化神经网络?(加快训练速度,提高准确度)https://zhuanlan.zhihu.com/p/41286585

猜你喜欢

转载自blog.csdn.net/Matrix_cc/article/details/105485488