AI深度学习25道基础题目(含答案)

1.请简单介绍一下什么是卷积以及它的原理

    答:对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作。

      卷积神经网络最主要的特点就是局部感知和权值共享。局部感知使其每次只需感知较小的区域,降低了参数数量,也提供了特征拟合能力(特征简单了,拟合更容易)。而权值共享,使一些基本特征可得到重复利用,使参数可以共享,提高了神经网络的训练效果

      原理:卷积核窗口滑动,生成特征图等

2.池化在卷积神经网络里面有何作用,在引进池化后解决了什么问题?

   答:作用:保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型泛化能力减少模型参数。

3.激活函数的作用?列举至少三种激活函数,分别阐述他们的优缺点

    答:神经网络就是一个无限逼近器,若没有激活函数,网络都是线性输出,和原始的感知机无差别,引入激活函数可以给模型加入非线性因素,提高神经网络对模型的表达能力,解决线性不能解决的问题(如简单的异或问题)

Sigmoid:1/(1+e^-x),优点,提供非线性能力、可以作为输出层,输出概率值。缺点:容易梯度消失,sigmoid导数最大为0.25,每传递一层梯度都会减为原来0.25倍,而sigmoid在两头梯度几乎为0导致权重几乎不更新;Sigmoid不是关于原点对称和中心对称的函数,这样网络收敛效果不好;幂运算耗时。

Tanh:(e^x-e^−x)/(e^x+e^x),它解决了Sigmoid函数的不是中心对称输出问题可惜的是它在两边还是有梯度饱和(也就是梯度趋近于0)和幂运算问题

Relu:速度快,relu函数其实就是一个max(0,x),计算代价小很多减轻梯度消失问题relu的梯度为1;适合用于反向传播。缺点:不是关于原点对称的、不会对数据进行幅度压缩,数据幅度随着模型层数增加不断扩张、数据在负半轴的特征归为零。

4.介绍一下感受野的概念,以及如何计算感受野的大小,以及增大感受野大小的方法?

答:感受野是卷积神经网络(CNN)输出的特征图(feature map)上的像素点在原始输入图像上映射的区域大小公式:(N-1)_RF = (N_RF - 1) * stride + kernel举一个例子,原始图像为5*5 k=3 ,p=1,s=2,依照此卷积规则,连续做两次卷积感受野为7),方法:增加pooling层,但是会降低准确性(pooling过程中造成了信息损失)增大卷积核的kernel size,但是会增加参数增加卷积层的个数,但是会面临梯度消失的问题

5.什么是过拟合现象,在训练网络的过程中如何防止过拟合现象的发生?如果网络中出现了过拟合,你该怎么应对?

答:过拟合(方差很大),神经网络及决策树容易产生过拟合:特征数目过多,可能导致我们在分类过程中过于注重某个特征导致分类错误表现:模型在训练集上表现良好,在测试集上表现差,原因:训练集的数量级和模型的复杂度不匹配。测试集和训练集特征分布不一致;训练集噪音过大,模型忽略了样本特征;训练轮次过多,模型学习到了一些不重要的特征。防止过拟合本质上来说就是添加先验,具体做法有:调整模型减少模型参数,样本扩充(图片缩放,旋转等),L1L2正则,dropout,early stopping(accuracy不再升高就停止训练),集成学习(Bagging通过平均多个模型的结果,来降低模型的方差。Boosting不仅能够减小偏差,还能减小方差。)

6.什么是欠拟合现象,网络欠拟合你该怎么办?

答:欠拟合(偏差很大),感知机及简单线性回归容易产生欠拟合特征数目过少,模型无法精确的分类和拟合数据,模型无法很好捕捉到特征办法:增加训练轮次,减少正则参数(减小高偏差),增加网络复杂度。

7.当网络损失下降的很平稳,突然间损失开始出现剧烈波动时,请分析是什么原因导致的?

答:数据集标签标注错误(本来输出是正确的,因为label错误,损失便很高);模型中loss一直不下降的原因有:数据的输入是否正常,data和label是否一致;网络架构的选择,一般是越深越好,也分数据集;损失函数的选择。

8.什么是梯度消失和梯度爆炸,分别阐述解决办法?

  答:梯度消失:神经网络在反向传播时,越靠近输入层梯度更新越慢,即随着隐藏层数目的增加,分类准确率反而下降。梯度爆炸:网络反向传播过程中,由于初始化值很大,根据链式法则,权值变化会很大,表现就是损失无法显示。影响的因素主要是初始化权值和激活函数以及隐藏层数过多消失和。梯度梯度爆炸解决方案大体一致:Batch Normalization、用ReLU(Leaky-ReLU、P-ReLU)等替代sigmoid函数、LSTM的结构设计也可以改善RNN的梯度消失、残差结构、减少不必要的隐藏层、添加正则解决梯度爆炸

9.介绍一下L1、L2正则化的原理和作用? 

  答:正则化:在优化目标函数时,在目标函数后添加的一个惩罚项。作用:防止过拟合,提高模型泛化能力,限制模型的复杂度,使得模型在复杂度和性能达到平衡。使用L1正则化的模型叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)。L1正则:表达式为α乘以权值向量w各元素绝对值和,L1会将对模型特征表达影响较小的权值变为0,产生一个稀疏矩阵。L2正则:表达式为α乘以权值向量w各元素的平方和开根,会对网络一些大数值的参数进行惩罚,可以理解为:L2正则就是使网络更倾向于使用所有输入特征,而不是严重依赖输入特征中某些小部分特征(由于L1正则化约束的解空间是一个菱形,所以等值线与菱形端点相交的概率比与线的中间相交的概率要大很多,端点在坐标轴上,一些参数的取值便为0。L2正则化约束的解空间是圆形,所以等值线与圆的任何部分相交的概率都是一样的,所以也就不会产生稀疏的参数)

10.归一化和标准化的方法有哪些?在神经网络中归一化和标准化的作用?

    答:最值归一化((i-min(x))/(max(x)-min(x)) for i in x),均值方差归一化zscore(减均值,除方差)。作用:提升模型的收敛速度(数据具有不同的量纲和数量级,不做归一化,梯度下降时,各数据对模型的贡献不一致,导致模型不稳定,收敛性不好,错过最优解)、提升模型的精度。

11.简述一下数据增样、图像增强的常用方法?

   答:翻转、旋转、平移、缩放、亮度变换、对比度变换、添加高斯噪声椒盐噪声

12.介绍一下经典的五种卷积神经网络(VGG、残差两个是重点,其他的看改进点就好)

答:AlexNet、DenseNet、ResNet、GoogLeNet、VGG

VGG:证明了增加网络的深度能够在一定程度上影响网络最终的性能,网络使用多个3*3卷积核代替大卷积核,减少了网络计算量和参数,VGG网络的结构非常简洁,从头到尾全部使用的是3x3的卷积和2x2的max pooling,缺点就是3个全连接层占用太多内存

GoogLeNet:以前的网络设计思想是网络越深表现会越好,GoogLeNet不仅加深了网络深度还增加了网络宽度,具体操作就是对于同一个输入,用不同卷积核去卷,然后将结果进行concatenate(保证形状),但这样有一个问题就是计算量太大,这时bottleneck结构引入,使用1*1卷积核进行特征降维,减少特征图的层数,从而减少计算量

ResNet:解决了网络过深,梯度消失的问题,它的网络达到了152层,加上了短路连接的残差块,可以直接将信息从输入绕道传入输出,保护了信息的完整性,更加有利于网络的学习。主要特点:每个卷积层后加入了BN层,每个残差块包含连个3*3卷积层。

DenseNet:与残差类似,只是每一个输出层都与前面的所有层进行短路连接,特征提取更加充分,考虑到了所有特征,缓解了梯度消失,大大减少了参数量。

13.在很多卷积神经网络中都会用到1*1卷积核,它的作用是什么?

   答:最初是在2014年GoogLeNet中首先应用作用:降维、加入非线性、通道融合、减少参数及计算量(MobileNet)

14.介绍一下卷积和全连接的区别,为什么在图像领域卷积的效果要比全连接好?

答:区别:输入和输出不同,卷积输入输出都是NCHW格式,全连接输入输出都是NV结构;全连接网络两层之间的神经元是两两相连,卷积是部分相连;

全连接不适合做CV:参数两过多扩展性差;网络局限,梯度传播很难超过3层;没有利用像素之间的位置关系。卷积适合做CV:局部连接、权值共享以及池化,减少参数、利用像素之间的关系。

15.介绍一下目前主流的目标检测算法,并简单做个对比,你在项目中使用的是什么算法,为什么用它而不用其他的?

   答:MTCNN、YOLO系列、RCNN系列

16.什么是anchor框,它在检测算法里面有什么作用?

   答:字面意思是“锚,表示的是固定尺寸的参考框或建议框,最早是在Faster R-CNN中提出了anchor概念,作用是:在目标识别任务中,存在目标类别不确定、数量不确定、位置不确定、尺寸不确定等问题,以往的检测方法是通过图像金字塔+滑窗的方法,由于笨重耗时,才引入了anchor框,是在训练之前,在训练集上利用k-means等方法聚类出来的一组矩形框,代表数据集中目标主要分布的长宽尺度,通过网络学习anchor与真实框之间的关系,在侦测时便会输出大小不同的预测框,会大大的提高检查的召回率;再通过后续的网络对这些边框进行调整,其精度也能大大的提高。

17.你是按照什么比例来划分你的数据集,训练集、验证集和测试集在网络训练时分别起什么作用?为什么有了测试集后还需要用到验证集?

   答:一般情况下,数据集验证集测试集比例为6:2:2,训练集用于模型拟合的样本;验证集模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估;测试集用来评估模最终模型的泛化能力。但不能作为调参、选择特征等算法相关的选择的依据

模型在一次次重新手动调参并继续训练后所逼近验证集,可能只代表一部分非训练集,导致最终训练好的模型泛化性能不够测试集为了具有泛化代表性,往往数据量比较大,测试一轮要很久,所以往往只取测试集的其中一小部分作为训练过程中的验证集。

18.你有没有关注最新检测框架的论文进展,你对未来的检测框架发展有什么看法?

   答:目标检测的四大任务:语义分割,目标分类,目标检测,实例分割

目标检测未来可能研究方向

(1)Proposal的Anchor生成方式(2)对上下文信息更有效的编码(3)更好更大的数据集(4)Low-shot目标检测(5)适用于检测任务的backbone(6)轻量级目标检测:加速检测算法,使其能够在移动设备上平稳运行。(7)AutoML:未来的一个方向是使用神经结构搜索,减少设计检测模型时的人为干预(例如,如何设计引擎,如何设置锚盒)。AutoML可能是目标检测的未来。(8)弱监督检测(9)小目标检测(10)在视频中检测(11)信息融合检测(12)其他,如batch的大小、增强学习等

19.介绍一下YOLOV3、SSD、Faster-RCNN的思想和实现过程(你和面试官说你擅长用的哪种就介绍哪种)

答:YOLOV3:核心思想就是利用整张图作为输入,将图片进行N*N栅格化,如果哪个格子里面有目标,那这个格子就负责预测框和所属类别,相比于RCNN系列的two_stage,YOLOV3端到端的学习方式速度更快。实现过程:

样本制作--模型训练(损失函数)--侦测过程

20.Batch Normalization原理和作用?

   答:BN层添加在激活函数前,对输入激活函数的输入进行归一化。这样解决了输入数据发生偏移和增大的影响。优点:加快训练速度、降低模型对初始化权值的敏感,一定程度上抑制了过拟合,同时可以防止网络的梯度消失和梯度爆炸。原理:对输入激活函数之前的数据进行求均值和方差,是数据标准化,其中涉及到两个学习参数γ和β(相当于方差和均值),通过线性变换得到新的值,正向传播γ和β学习分布,反向传播,链式求导更新参数。

21.如果你的网络不收敛,请分析一下是什么情况导致的?

答:首先要保证训练轮次足够多,若训练几百甚至上千次也不见收敛,可能愿意有:数据不不符合要求(不完整的数据、错误的数据、重复的数据)或者标签不准确、学习率设定过大、网络设定不合理(任务很复杂却用了很浅的网络)、数据归一化。

 22.你是依据什么去评估你的网络性能?

答:mAP表示Mean Average Precision,所有类标签的平均精确率;P(precision)精确率,正确预测为正/预测为正;R(Recall)召回率,正确预测为正/所有所有的正样本;F1指标(调和平均值),2*P*R/(P+R)。

23.如果让你去改进YOLOV3(Faster-RCNN、SSD),你要从哪方面入手?

    答:速度优化方向:减小输入图片的尺寸,但准确率会有部分降低、优化DarkNet(去掉一些不必要的运算量)、减枝和量化网络、对于模型复杂度要求不高的,更改backbones(比如darknet19)。优化精度方向:增加数据集和数据种类、超参数的调整(batch、lr等)、针对情况对anchor重新进行聚类

24.如果网络不初始化权重,即初始权重为0,那么网络训练出来会是什么效果?

答:在神经网络中,把w初始化为0是不可以的。这是因为如果把w初始化0,那么每一层的神经元学到的东西都是一样的(输出是一样的),而且在bp的时候,每一层内的神经元也是相同的每一层都是0,表示网络失去了学习能力。

并且禁止初始化权重为形同的恒定值,如果这么做,从第一个隐藏层开始,所有结点的输出值都是相同的,在误差反向传播时,必定会平分这将导致权重更新值也是相同的,最终的结果是不管训练多少轮最终的权重都是相同的,也就是所有的输入特征值是同等重要的,这样就失去的神经网络自动抽取高层特证的功能

25.深度学习中betch_size的大小对训练过程的影响是什么样的?

   答:一般来说,在合理的范围之内,越大的 batch size 使下降方向越准确,震荡越小内存利用率提高,一个epoch的时间减少;batch size 如果过大,则可能会出现局部最优的情况。小的 bath size 引入的随机性更大,难以达到收敛,极少数情况下可能会效果变好

  • 6
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值