前言:
博主参加了很多面试,应聘岗位是计算机视觉(深度学习方向),现将问到我的一些问题,总结如下,回答的有哪些不对,麻烦指正,大家也可以自己去查答案。特别说一下:面试时一定要把自己项目用到的东西涉及到的东西,都要搞懂,并且有目的性引导面试官问你准备的问题。
问题:
1、深度学习要这么深?
答:1、一个直观的解释,从模型复杂度角度。如果我们能够增强一个学习模型的复杂度,那么它的学习能力能够提升。如何增加神经网络的复杂度呢?要么变宽,即增加隐层网络神经元的个数;要么变深,即增加隐层的层数。当变宽的时候,只不过是增加了一些计算单元,增加了函数的个数,在变深的时候不仅增加了个数,还增加了函数间的嵌入的程度。
2、深度学习可以通过多个layer的转换学习更高维度的特征来解决更加复杂的任务。
3、那现在我们为什么可以用这样的模型?有很多因素,第一我们有了更大的数据;第二我们有强力的计算设备;第三我们有很多有效的训练技巧
4、像在ZFNet网络中已经体现,特征间存在层次性,层次更深,特征不变性强,类别分类能力越强,要学习复杂的任务需要更深的网络
2、如何解决数据不平衡问题?
答:1、利用重采样中的下采样和上采样,对小数据类别采用上采用,通过复制来增加数据,不过这种情况容易出现过拟合,建议用数据扩增的方法,对原有数据集进行翻转,旋转,平移,尺度拉伸,对比度,亮度,色彩变化来增加数据。对大数据类别剔除一些样本量。数据增强具体代码:常用数据增强方法代码
2、组合不同的重采样数据集:假设建立十个模型,选取小数据类1000个数据样本,然后将大数据类别10000个数据样本分为十份,每份为1000个,并训练十个不同的模型。
3、更改分类器评价指标: 在传统的分类方法中,准确率是常用的指标。 然而在不平衡数据分类中,准确率不再是恰当的指标,采用精准率即查准率P:真正例除以真正例与假正例之和。召回率即查全率F。真正例除以真正例与假反例之和。或者F1分数查全率和查准率加权平衡=2*P*R/(P+R)。
3、对于训练集与验证集测试集分布不同的处理办法
1、若训练集与验证集来自不同分布,比如一个网络爬虫获取的高清图像,一个是手机不清晰图像,人工合成图像,比如不清晰图像,亮度高的图像。
2、两种来源的数据一个来源数据大比如20万张,一个来源数据小,如五千张小数据集是我们优化目标,一种情况是将两组数据合并在一起,然后随机分配到训练验证测试集中好处是,三个数据集来自同一分布。缺点:瞄准目标都是大数据那一类的数据,而不是我们的目标小数据集。另外一种情况是训练集全部用大数据集,开发与测试集都是小数据集数据,优点:瞄准目标,坏处是不同分布。
3、分析偏差和方差方法和同一分布的方法不一样,加一个训练开发集(从训练集留出一部分数据)。总共四个数据集,训练集、训练开发集、开发集、测试集。看训练开发集的准确率与训练集验证集的区别来判别式方差还是数据分布不匹配的造成的误差。具体看如下链接:https://blog.csdn.net/koala_tree/article/details/78319908
4、如何改善训练模型的效果呢?
答:1、通过提升数据,获取良好的数据。对数据预处理;零均值1方差化,数据扩充或者增强,
2、诊断网络是否过拟合欠拟合。通过偏差方差。正则化解决过拟合,早停法遏制过拟合。
3、通过学习率,激活函数的选择,改善网络全连接层个数啊层数啊,优化算法,随机梯度,RMSprop,动量,adam,使用batchnormlization.
3、权值初始化Xavier初始化,保持输入与输出端方差一致,避免了所有输出都趋向于0;
5、如何解决梯度爆炸与消失。
-答:1、预训练加微调 - 梯度剪切、权重正则(针对梯度爆炸) -
2、使用不同的激活函数 -
3、使用batchnorm -
4、使用残差结构 -
5、使用LSTM网络
6、你做过其他与职位申请相关项目吗,解释现在的硕士研究内容,有什么效果吗?
答:解答建议。自己做的事情和学的任何技能能够与申请的岗位建立联系。
7、为什么要使用许多小卷积核(如3x 3 )而不是几个大卷积核?
这在VGGNet的原始论文中得到了很好的解释。原因有二:首先,您可以使用几个较小的核而不是几个较大的核来获得相同的感受野并捕获更多的空间上下文,但是使用较小的内核时,您使用的参数和计算量较少。其次,因为使用更小的核,您将使用更多的滤波器,您将能够使用更多的激活函数,从而使您的CNN学习到更具区分性的映射函数。
8、为什么在图像分割中CNNs通常具有编码器-解码器结构?
编码器CNN基本上可以被认为是特征提取网络,而解码器使用该信息通过“解码”特征并放大到原始图像大小来预测图像分割区域。
9、为什么我们对图像使用卷积而不仅仅是FC层?
这个很有趣,因为公司通常不会问这个问题。正如你所料,我是从一家专注于计算机视觉的公司那里得到这个问题的。这个答案有两部分。首先,卷积保存、编码和实际使用来自图像的空间信息。如果我们只使用FC层,我们将没有相对的空间信息。其次,卷积神经网络( CNNs )具有部分内建的平移不变性,因为每个卷积核充当其自身的滤波器/特征检测器。,而且这样减少大量的参数,减轻过拟合。
10、什么是数据正则化/归一化(normalization)?为什么我们需要它?
我觉得这一点很重要。数据归一化是非常重要的预处理步骤,用于重新缩放输入的数值以适应特定的范围,从而确保在反向传播期间更好地收敛。一般来说采取的方法都是减去每个数据点的平均值并除以其标准偏差。如果我们不这样做,那么一些特征(那些具有高幅值的特征)将在cost函数中得到更大的加权(如果较高幅值的特征改变1 %,则该改变相当大,但是对于较小的特征,该改变相当小)。数据归一化使所有特征的权重相等。
11、解释降维(dimensionality reduction),降维在哪里使用,降维的好处是什么?
降维是通过获得一组基本上是重要特征的主变量来减少所考虑的特征变量的过程。特征的重要性取决于特征变量对数据信息表示的贡献程度
数据集降维的好处可以是:
( 1 )减少所需的存储空间。
( 2 )加快计算速度(例如在机器学习算法中),更少的维数意味着更少的计算,并且更少的维数可以允许使用不适合大量维数的算法。
( 3 )将数据的维数降低到2D或3D可以允许我们绘制和可视化它,可能观察模式,给我们提供直观感受。
( 4 )太多的特征或太复杂的模型可以导致过拟合。