深度学习面试题
目录
1.神经网络...................................................................................................................................................................................... 3
1.1 各个激活函数的优缺点?............................................................................................................................................... 4
1.2 为什么 ReLU 常用于神经网络的激活函数?.................................................................................................................. 4
1.3 梯度消失和梯度爆炸的解决方案?梯度爆炸引发的问题?........................................................................................ 5
1.4 如何确定是否出现梯度爆炸?........................................................................................................................................5
1.5 神经网络中有哪些正则化技术?....................................................................................................................................5
1.6 批量归一化(BN) 如何实现?作用?................................................................................................................................6
1.7 神经网络中权值共享的理解?........................................................................................................................................6
1.8 对 fine-tuning(微调模型)的理解?为什么要修改最后几层神经网络权值?............................................................... 6
1.9 什么是 Dropout?为什么有用?它是如何工作的?.....................................................................................................6
1.10 如何选择 dropout 的概率?...........................................................................................................................................6
1.11 什么是 Adam?Adam 和 SGD 之间的主要区别是什么?............................................................................................. 7
1.12 为什么 Momentum 可以加速训练?.............................................................................................................................7
1.13 什么时候使用 Adam 和 SGD?....................................................................................................................................... 7
1.14 batch size 和 epoch 的平衡............................................................................................................................................. 8
1.15 SGD 每步做什么,为什么能 online learning?.............................................................................................................8
1.16 学习率太大(太小)时会发生什么?如何设置学习率?............................................................................................... 8
1.17 神经网络为什么不用拟牛顿法而是用梯度下降?...................................................................................................... 8
1.18 BN 和 Dropout 在训练和测试时的差别?....................................................................................................................... 9
1.19 若网络初始化为 0 的话有什么问题?.......................................................................................................................... 9
1.20 sigmoid 和 softmax 的区别?softmax 的公式?............................................................................................................ 9
1.21 改进的 softmax 损失函数有哪些?............................................................................................................................. 10
1.22 深度学习调参有哪些技巧?....................................................................................................................................... 10
1.23 神经网络调参,要往哪些方向想?............................................................................................................................10
1.24 深度学习训练中是否有必要使用 L1 获得稀疏解?.....................................................................................................11
1.25 神经网络数据预处理方法有哪些?中心化/零均值,归一化.................................................................................. 11
1.26 如何初始化神经网络的权重?神经网络怎样进行参数初始化?............................................................................11
1.27 为什么构建深度学习模型需要使用 GPU?................................................................................................................ 11
1.28 前馈神经网络(FNN),递归神经网络(RNN)和 CNN 区别?............................................................................................. 11
1.29 神经网络可以解决哪些问题?....................................................................................................................................11
1.30 如何提高小型网络的精度?....................................................................................................................................... 11
1.31 列举你所知道的神经网络中使用的损失函数............................................................................................................ 11
1.32 什么是鞍点问题?梯度为 0,海森矩阵不定的点,不是极值点。.........................................................................12
1.33 网络设计中,为什么卷积核设计尺寸都是奇数?.................................................................................................... 12
2.CNN............................................................................................................................................................................................. 12
2.1 卷积神经网络的结构..................................................................................................................................................... 12
2.2 Keras 搭建 CNN............................................................................................................................................................... 12
2.2 经典网络分类................................................................................................................................................................. 13
2.2.1 LeNet.....................................................................................................................................................................13
2.2.2 AlexNet................................................................................................................................................................. 14
2.2.3 VGG....................................................................................................................................................................... 14
2.2.4 Inception(GoogLeNet).......................................................................................................................................... 15
2.2.5 ResNet...................................................................................................................................................................15
2.2.6 DenseNet.............................................................................................................................................................. 15
2.3 卷积层有哪些基本参数?............................................................................................................................................. 16
2.4 如何计算卷积层的输出的大小?..................................................................................................................................16
2.5 如何计算卷积层参数数量?......................................................................................................................................... 16
第1页
2.6 有哪些池化方法?......................................................................................................................................................... 16
2.7 1*1 卷积的作用?.......................................................................................................................................................... 16
2.8 卷积层和池化层有什么区别?......................................................................................................................................16
2.9 卷积核是否一定越大越好?......................................................................................................................................... 17
2.10 卷积在图像中有什么直观作用?.................................................................................................................................. 17
2.11 CNN 中空洞卷积的作用是什么?............................................................................................................................... 17
2.12 怎样才能减少卷积层参数量?....................................................................................................................................17
2.13 在进行卷积操作时,必须同时考虑通道和区域吗?................................................................................................ 17
2.14 采用宽卷积,窄卷积的好处有什么?...........................................................................................................................17
2.15 介绍反卷积(转置卷积)................................................................................................................................................. 17
2.16 如何提高卷积神经网络的泛化能力?........................................................................................................................18
2.17 卷积神经网络在 NLP 与 CV 领域应用的区别?............................................................................................................ 18
2.18 全连接、局部连接、全卷积与局部卷积的区别?.................................................................................................... 19
2.19 卷积层和全连接层的区别?....................................................................................................................................... 19
2.20 Max pooling 如何工作?还有其他池化技术吗?....................................................................................................... 19
2.21 卷积神经网络的优点?为什么用小卷积核?............................................................................................................ 19
2.22 CNN 拆成 3x1 1x3 的优点?.........................................................................................................................................19
2.23 BN、LN、IN、GN 和 SN 的区别?............................................................................................................................... 19
3.RNN............................................................................................................................................................................................ 20
3.1 RNNs 训练和传统 ANN 训练异同点?........................................................................................................................... 21
3.2 为什么 RNN 训练的时候 Loss 波动很大?...................................................................................................................... 21
3.3 RNN 中为什么会出现梯度消失?................................................................................................................................. 21
3.4 如何解决 RNN 中的梯度消失问题?.............................................................................................................................21
3.5 CNN VS RNN.....................................................................................................................................................................21
3.6 Keras 搭建 RNN............................................................................................................................................................... 21
4.LSTM........................................................................................................................................................................................... 22
4.1 LSTM 结构推导,为什么比 RNN 好?........................................................................................................................... 23
4.2 为什么 LSTM 模型中既存在 sigmoid 又存在 tanh 两种激活函数,而不是选择统一一种 sigmoid 或者 tanh?.......23
4.3 LSTM 中为什么经常是两层双向 LSTM?...................................................................................................................... 23
4.4 RNN 扩展改进................................................................................................................................................................. 23
4.4.1 Bidirectional RNNs................................................................................................................................................ 23
4.4.2 CNN-LSTMs........................................................................................................................................................... 24
4.4.3 Bidirectional LSTMs...............................................................................................................................................24
4.4.4 GRU....................................................................................................................................................................... 24
4.5 LSTM、RNN、GRU 区别?.............................................................................................................................................24
4.6 LSTM 是如何实现长短期记忆功能的?........................................................................................................................ 25
4.7 LSTM 的原理、写 LSTM 的公式、手推 LSTM 的梯度反向传播...................................................................................25
5.反向传播.................................................................................................................................................................................... 25
5.1 什么是反向传播?.........................................................................................................................................................25
5.2 反向传播是如何工作的?............................................................................................................................................. 25
5.3 为什么需要反向传播?................................................................................................................................................. 25
5.4 手推 BP............................................................................................................................................................................ 25
6.GAN............................................................................................................................................................................................ 27
6.1 生成器............................................................................................................................................................................. 27
6.2 判别器............................................................................................................................................................................. 28
6.3 训练技巧......................................................................................................................................................................... 28
7.超参数调整................................................................................................................................................................................ 29
7.1 神经网络中包含哪些超参数?......................................................................................................................................29
第2页
7.2 为什么要进行超参数调优?......................................................................................................................................... 29
7.3 超参数的重要性顺序..................................................................................................................................................... 29
7.4 极端批样本数量下,如何训练网络?..........................................................................................................................29
7.5 合理使用预训练网络..................................................................................................................................................... 30
7.5.1 什么是微调(fine-tune)................................................................................................................................... 30
7.5.2 微调有哪些不同方法?...................................................................................................................................... 30
7.5.3 微调先冻结底层,训练顶层的原因?...............................................................................................................30
7.5.4 不同的数据集特性下如何微调?.......................................................................................................................30
7.5.5 目标检测中使用预训练模型的优劣?...............................................................................................................31
7.5.6 目标检测中如何从零开始训练(train from scratch)?........................................................................................31
7.6 自动化超参数搜索方法有哪些?..................................................................................................................................31
第3页
1.神经网络
1.1 各个激活函数的优缺点?
1.2 为什么 ReLU 常用于神经网络的激活函数?
1.在前向传播和反向传播过程中,ReLU 相比于 Sigmoid 等激活函数计算量小;
第4页
2.避免梯度消失问题。对于深层网络,Sigmoid 函数反向传播时,很容易就会出现梯度消失问题(在
Sigmoid 接近饱和区时,变换太缓慢,导数趋于 0,这种情况会造成信息丢失),从而无法完成深层网络的
训练。
3.可以缓解过拟合问题的发生。Relu 会使一部分神经元的输出为 0,这样就造成了网络的稀疏性,并且减
少了参数的相互依存关系,缓解了过拟合问题的发生。
4.相比 Sigmoid 型函数,ReLU 函数有助于随机梯度下降方法收敛。
为什么需要激活功能?
激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。
1.3 梯度消失和梯度爆炸的解决方案?梯度爆炸引发的问题?
梯度消失:靠近输出层的 hidden layer 梯度大,参数更新快,所以很快就会收敛;
而靠近输入层的 hidden layer 梯度小,参数更新慢,几乎就和初始状态一样,随机分布。
另一种解释:当反向传播进行很多层的时候,由于每一层都对前一层梯度乘以了一个小数,因此越往前传
递,梯度就会越小,训练越慢。
梯度爆炸:前面 layer 的梯度通过训练变大,而后面 layer 的梯度指数级增大。
①在深度多层感知机(MLP)网络中,梯度爆炸会引起网络不稳定,最好的结果是无法从训练数据中学习,
而最坏的结果是出现无法再更新的 NaN 权重值。
②在 RNN 中,梯度爆炸会导致网络不稳定,无法利用训练数据学习,最好的结果是网络无法学习长的输
入序列数据。
第5页
1.4 如何确定是否出现梯度爆炸?
模型不稳定,导致更新过程中的损失出现显著变化;
训练过程中模型梯度快速变大;
训练过程中模型权重变成 NaN 值;
训练过程中,每个节点和层的误差梯度值持续超过 1.0。
1.5 神经网络中有哪些正则化技术?
L2 正则化(Ridge); L1 正则化(Lasso);
权重衰减; 丢弃法;
批量归一化; 数据增强
早停法
1.6 批量归一化(BN) 如何实现?作用?
实现过程: 计算训练阶段 mini_batch 数量激活函数前结果的均值和方差,然后对其进行归一化,最后对
第6页
其进行缩放和平移。
作用: 1.可以使用更高的学习率进行优化;
2.移除或使用较低的 dropout;
3.降低 L2 权重衰减系数;
4.调整了数据的分布,不考虑激活函数,它让每一层的输出归一化到了均值为 0 方差为 1 的分布,这保证
了梯度的有效性,可以解决反向传播过程中的梯度问题。
1.7 神经网络中权值共享的理解?
权值共享这个词是由 LeNet5 模型提出来的。以 CNN 为例,在对一张图偏进行卷积的过程中,使用的是同
一个卷积核的参数。
比如一个 3×3×1 的卷积核,这个卷积核内 9 个的参数被整张图共享,而不会因为图像内位置的不同而改
变卷积核内的权系数。
通俗说:就是用一个卷积核不改变其内权系数的情况下卷积处理整张图片。
1.8 对 fine-tuning(微调模型)的理解?为什么要修改最后几层神经网络权值?
使用预训练模型的好处:在于利用训练好的 SOTA 模型权重去做特征提取,可以节省我们训练模型和调参
的时间。
理由:
1.CNN 中更靠近底部的层(定义模型时先添加到模型中的层)编码的是更加通用的可复用特征,而更靠近
顶部的层(最后添加到模型中的层)编码的是更专业化的特征。微调这些更专业化的特征更加有用,它更
代表了新数据集上的有用特征。
2.训练的参数越多,过拟合的风险越大。很多 SOTA 模型拥有超过千万的参数,在一个不大的数据集上训
练这么多参数是有过拟合风险的,除非你的数据集像 Imagenet 那样大。
1.9 什么是 Dropout?为什么有用?它是如何工作的?
背景:如果模型的参数太多,数据量又太小,则容易产生过拟合。为了解决过拟合,就同时训练多个网络。
第7页
然后多个网络取均值。费时!
介绍:Dropout 可以防止过拟合,在前向传播的时候,让某个神经元的激活值以一定的概率 P 停止工作,这
样可以使模型的泛化性更强。
Dropout 效果跟 bagging 效果类似(bagging 是减少方差 variance,而 boosting 是减少偏差 bias)。
加入 dropout 会使神经网络训练时间长,模型预测时不需要 dropout,记得关掉。
具体流程:
i.随机删除(临时)网络中一定的隐藏神经元,输入输出保持不变,
ii.让输入通过修改后的网络。然后把得到的损失同时修改后的网络进行反向传播。在未删除的神经元上面
进行参数更新
iii.重复该过程(恢复之前删除掉的神经元,以一定概率删除其他神经元。前向传播、反向传播更新参数)
1.10 如何选择 dropout 的概率?
input 的 dropout 概率推荐是 0.8, hidden layer 推荐是 0.5
为什么 dropout 可以解决过拟合?
1.取平均的作用:
Dropout 产生了许多子结构之后的操作,父神经网络有 N 个节点,加入 Dropout 之后可以看做在权值不变
的情况下(参数共享)将模型数量扩增到指数级别
2.减少神经元之间复杂的共适应关系,迫使网络去学习更加鲁棒;
Dropout 在训练和测试的区别?
训练时随机删除一些神经元,在测试模型时将所有的神经元加入。
1.11 什么是 Adam?Adam 和 SGD 之间的主要区别是什么?
1.12 一阶优化和二阶优化的方法有哪些?为什么不使用二阶优化?