深度学习面试题
2018-08-16 21:37 Time皇族 阅读(297) 评论(0) 编辑 收藏 举报1、神经网络基础问题
(1)Backpropagation
- 反向传播运用的是链式求导的基本思想,首先前向传播求出所有节点的输出值:
- 接下来计算整体损失函数:
- 再求解每层的梯度,用于更新参数,一般的求梯度形式如下:
是激活函数的梯度。
(2)梯度消失、梯度爆炸
对激活函数进行求导,如果此部分大于1,那么层数增多的时候,最终的求出的梯度更新将以指数形式增加,即发生梯度爆炸,如果此部分小于1,那么随着层数增多,求出的梯度更新信息将会以指数形式衰减,即发生了梯度消失。
(3)常用激活函数
激活函数 | 公式 | 缺点 | 优点 |
---|---|---|---|
Sigmoid | σ(x)=1/(1+e^−x)![]() |
1、会有梯度消失 2、不是关于原点对称 3、计算exp比较耗时 |
- |
Tanh | tanh(x)=2σ(2x)−1![]() |
梯度消失没解决 | 1、解决了原点对称问题 |
ReLU | f(x)=max(0,x)![]() |
梯度弥散没完全解决,在(-)部分相当于神经元死亡而且不会复活 | 1、解决了部分梯度消失问题 2、收敛速度更快 |
Leaky ReLU | ![]() |
Leaky ReLU函数中的α,需要通过先验知识人工赋值 | 解决了神经死亡问题 |
Maxout | ![]() |
参数比较多,本质上是在输出结果上又增加了一层 | 克服了ReLU的缺点,比较提倡使用 |
参考资料:https://blog.csdn.net/qq_17130909/article/details/80582226
(5)解决overfitting的方法
dropout, regularization,Early stopping,但是要注意dropout只在训练的时候用,让一部分神经元随机失活。
正则化(Regularization)有很多种,常见的有两种:L2 Regularization和L1 Regularization
Early stopping:模型在验证集上的误差在一开始是随着训练集的误差的下降而下降的。当超过一定训练步数后,模型在训练集上的误差虽然还在下降,但是在验证集上的误差却不在下降了。此时我们的模型就过拟合了。因此我们可以观察我们训练模型在验证集上的误差,一旦当验证集的误差不再下降时,我们就可以提前终止我们训练的模型。
参考资料:https://blog.csdn.net/Left_Think/article/details/77684087?locationNum=5&fps=1
2、CNN问题
(1) 思想
改变全连接为局部连接,这是由于图片的特殊性造成的(图像的一部分的统计特性与其他部分是一样的),通过局部连接和参数共享大范围的减少参数值。可以通过使用多个filter来提取图片的不同特征(多卷积核)。
(2)filter尺寸的选择
通常尺寸多为奇数(1,3,5,7)
(3)输出尺寸计算公式
输出尺寸=(N - F +padding*2)/stride + 1
(4)pooling
优点:
1. invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)
2. 保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型泛化能力
缺点:
pooling能够增大感受野,让卷积看到更多的信息,但是它在降维的过程中丢失了一些信息,所以pooling增大感受野的前提是丢失了一些信息(即降低了分辨率),这对segmentation要求的精确度location有一定的影响。
参考资料:https://blog.csdn.net/zxyhhjs2017/article/details/78607469
(5)常用的几个模型,这个最好能记住模型大致的尺寸参数。
名称 | 特点 |
LeNet5 | 没啥特点-不过是第一个CNN应该要知道 |
AlexNet | 引入了ReLU、dropout和数据增强,五个卷积层和三个全连接层 |
VGGNet | 采用1*1和3*3的卷积核。常用VGGNet-16和VGGNet19 |
Inception | 1、引入Inception Module,这是一个多分支结合的结构。所有的分支都用到了1*1的卷积,这是因为1*1性价比很高,可以有效减少参数数量; 2、Inception-V2将5*5变成2个3*3,而且提出来著名的Batch Normalization; 3、Inception-V3把第一个7×7的卷积层换成一系列的3×3卷积层的组合,进一步缩减参数。另一方面,采用了标签平滑正则化(Label Smoothing Regularization),防止过拟合的出现。 |
ResNet | 引入残差结构,可以让神经网络变得非常深 |
整篇参考资料:https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1