深度学习和机器学习_面试问题(二)



640?wx_fmt=jpeg

1、无监督学习的方法有哪些?

Answer:

强化学习、K-means聚类、自编码、受限波尔兹曼机;


2、描述对空洞卷积(dilated convolution)的理解。

Answer:

基于FCN的语义分割问题,需要保持输入图像与输出特征图的尺寸相同。

若使用池化层,则降低了特征图size,需要在高层阶段使用上采样,由于池化会损失信息,所以,此方法导致精度降低;

若使用较小的卷积核尺寸,虽然可以实现输入输出特征图的尺寸相同,但输出特征图的各个节点感受野小;

若使用较大的卷积核尺寸,由于需要增加特征图通道数,此方法会导致计算量较大;

所以,引入空洞卷积,在卷积后的特征图上进行0填充扩大特征图尺寸,这样既因为有卷积核而增大感受野,也因为0填充而保持了计算点不变。


3、增大感受野的方法?

Answer:

空洞卷积、池化操作、较大卷积核尺寸的卷积操作。


4、梯度下降法和牛顿法的优缺点?

Answer:

(1)优点:

    梯度下降法:可用于数量较大的情况;

    牛顿法:收敛速度更快;

(2)缺点:

    梯度下降法:每一步可能不是向着最优解的方向;

    牛顿法:每次迭代时间长,需要计算一阶和二阶导数;


5、如何解决训练样本类别不平衡的问题?

Answer:

现象:训练样本中,正负样本数量的比例较大。

解决方法:

(1)过采样。增加正例样本数量,使得正负样本数量接近,然后再进行学习;

(2)欠采样。去除反例样本数量,使得正负样本数量接近,然后再进行学习;

(3)设置阈值。基于原始数据集学习,当使用已训练好的分类器进行预测时,将正负样本数量的比例作为阈值嵌入到决策过程中。


640?wx_fmt=jpeg


6、目标检测领域的常见算法有哪些?

Answer:

(1)单阶段检测器:YOLO、YOLO9000、SSD、DSSD、RetinaNet

(2)双阶段检测器:R-CNN、Fast R_CNN、Faster R-CNN


7、Momentum优化算法的原理和作用?

Answer:

(1)原理:在梯度下降算法中引入指数加权平均数,在更新梯度方向的过程中,在一定程度上保留了之前梯度更新的方向,同时利用当前mini_batch的梯度方向微调最终的更新方向。

(2)作用:在一定程度上增加梯度更新方向的稳定性,从而使得收敛速度更快。


8、什么是群卷积?

Answer:

假设上一层的特征图通道数为N,群卷积数目为M,则每个群卷积层上的特征图通道数为N/M,然后将其分配在不同的GPU上,待卷积完成后将输出叠加在一起。


9、什么是反卷积?

Answer:

卷积的逆过程,GANs基于反卷积操作生成图片。


10、什么是梯度消失和梯度爆炸?

Answer:

引发以上现象的原因是:激活函数的选择。

(1)梯度消失:令bias=0,则神经网络的输出结果等于各层权重参数的积再与输入数据集相乘,参数值较小时,则权重参数呈指数级减小。

(2)梯度爆炸:令bias=0,则神经网络的输出结果等于各层权重参数的积再与输入数据集相乘,参数值较大时,则权重参数呈指数级增长。


640?wx_fmt=jpeg


11、从变化矩阵和变换效果等方面阐述相似变换、仿射变换、投影变换的区别。

Answer:

等距变换:图像旋转+平移

相似变换:图像旋转+平移+缩放(放大或缩小原图)

仿射变换:图像旋转+平移+缩放+切变(虽改变图像的形状,但未改变图像中的平行线)

投影变换:图像旋转+平移+缩放+切变+射影(不仅改变可图像的形状,而且改变了图像中的平行线)


12、简要描述SVM。

Answer:

SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。

扩展描述:

支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机、线性支持向量机及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。


13、简要介绍TensorFlow的计算图。

Answer:

Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做是一种有向图,Tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。


14、为什么XGBoost要用泰勒展开,优势是什么?

Answer:

XGBoost使用了一阶和二阶偏导, 二阶导数有利于梯度下降的更快更准. 使用泰勒展开取得二阶倒数形式, 可以在不选定损失函数具体形式的情况下用于算法优化分析.本质上也就把损失函数的选取和模型算法优化/参数选择分开了. 这种去耦合增加了XGBoost的适用性。


15、经常在网上搜索东西的朋友都知道,当你不小心输入一个不存在的单词时,搜索引擎会提示你是不是要输入某一个正确的单词,比如当你在Google中输入“Julw”时,系统会猜测你的意图:是不是要搜索“July”,如下图所示,请针对这一现象解释其实现原理。

640?wx_fmt=jpeg

Answer:

这叫做拼写检查。根据谷歌一员工写的文章How to Write a Spelling Corrector显示,Google的拼写检查基于贝叶斯方法。请说说的你的理解,具体Google是怎么利用贝叶斯方法,实现”拼写检查”的功能。

用户输入一个单词时,可能拼写正确,也可能拼写错误。如果把拼写正确的情况记做c(代表correct),拼写错误的情况记做w(代表wrong),那么”拼写检查”要做的事情就是:在发生w的情况下,试图推断出c。换言之:已知w,然后在若干个备选方案中,找出可能性最大的那个c,也就是求的最大值。而根据贝叶斯定理,有:由于对于所有备选的c来说,对应的都是同一个w,所以它们的P(w)是相同的,因此我们只要最大化即可。其中:

P(c)表示某个正确的词的出现”概率”,它可以用”频率”代替。如果我们有一个足够大的文本库,那么这个文本库中每个单词的出现频率,就相当于它的发生概率。某个词的出现频率越高,P(c)就越大。比如在你输入一个错误的词“Julw”时,系统更倾向于去猜测你可能想输入的词是“July”,而不是“Jult”,因为“July”更常见。

P(w|c)表示在试图拼写c的情况下,出现拼写错误w的概率。为了简化问题,假定两个单词在字形上越接近,就有越可能拼错,P(w|c)就越大。举例来说,相差一个字母的拼法,就比相差两个字母的拼法,发生概率更高。你想拼写单词July,那么错误拼成Julw(相差一个字母)的可能性,就比拼成Jullw高(相差两个字母)。值得一提的是,一般把这种问题称为“编辑距离”。

所以,我们比较所有拼写相近的词在文本库中的出现频率,再从中挑出出现频率最高的一个,即是用户最想输入的那个词。

长按订阅更多精彩▼

640?wx_fmt=jpeg


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值