1、无监督学习的方法有哪些?
Answer:
强化学习、K-means聚类、自编码、受限波尔兹曼机;
2、描述对空洞卷积(dilated convolution)的理解。
Answer:
基于FCN的语义分割问题,需要保持输入图像与输出特征图的尺寸相同。
若使用池化层,则降低了特征图size,需要在高层阶段使用上采样,由于池化会损失信息,所以,此方法导致精度降低;
若使用较小的卷积核尺寸,虽然可以实现输入输出特征图的尺寸相同,但输出特征图的各个节点感受野小;
若使用较大的卷积核尺寸,由于需要增加特征图通道数,此方法会导致计算量较大;
所以,引入空洞卷积,在卷积后的特征图上进行0填充扩大特征图尺寸,这样既因为有卷积核而增大感受野,也因为0填充而保持了计算点不变。
3、增大感受野的方法?
Answer:
空洞卷积、池化操作、较大卷积核尺寸的卷积操作。
4、梯度下降法和牛顿法的优缺点?
Answer:
(1)优点:
梯度下降法:可用于数量较大的情况;
牛顿法:收敛速度更快;
(2)缺点:
梯度下降法:每一步可能不是向着最优解的方向;
牛顿法:每次迭代时间长,需要计算一阶和二阶导数;
5、如何解决训练样本类别不平衡的问题?
Answer:
现象:训练样本中,正负样本数量的比例较大。
解决方法:
(1)过采样。增加正例样本数量,使得正负样本数量接近,然后再进行学习;
(2)欠采样。去除反例样本数量,使得正负样本数量接近,然后再进行学习;
(3)设置阈值。基于原始数据集学习,当使用已训练好的分类器进行预测时,将正负样本数量的比例作为阈值嵌入到决策过程中。
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,则神经网络的输出结果等于各层权重参数的积再与输入数据集相乘,参数值较大时,则权重参数呈指数级增长。
11、从变化矩阵和变换效果等方面阐述相似变换、仿射变换、投影变换的区别。
Answer:
等距变换:图像旋转+平移
相似变换:图像旋转+平移+缩放(放大或缩小原图)
仿射变换:图像旋转+平移+缩放+切变(虽改变图像的形状,但未改变图像中的平行线)
投影变换:图像旋转+平移+缩放+切变+射影(不仅改变可图像的形状,而且改变了图像中的平行线)
12、简要描述SVM。
Answer:
SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。
扩展描述:
支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机、线性支持向量机及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
13、简要介绍TensorFlow的计算图。
Answer:
Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做是一种有向图,Tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。
14、为什么XGBoost要用泰勒展开,优势是什么?
Answer:
XGBoost使用了一阶和二阶偏导, 二阶导数有利于梯度下降的更快更准. 使用泰勒展开取得二阶倒数形式, 可以在不选定损失函数具体形式的情况下用于算法优化分析.本质上也就把损失函数的选取和模型算法优化/参数选择分开了. 这种去耦合增加了XGBoost的适用性。
15、经常在网上搜索东西的朋友都知道,当你不小心输入一个不存在的单词时,搜索引擎会提示你是不是要输入某一个正确的单词,比如当你在Google中输入“Julw”时,系统会猜测你的意图:是不是要搜索“July”,如下图所示,请针对这一现象解释其实现原理。
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高(相差两个字母)。值得一提的是,一般把这种问题称为“编辑距离”。
所以,我们比较所有拼写相近的词在文本库中的出现频率,再从中挑出出现频率最高的一个,即是用户最想输入的那个词。
长按订阅更多精彩▼