备战秋招——CV方向算法工程师笔试题集锦(持续更新)(含机器学习内容)

1.(来源:百度2019校招计算机视觉方向问答题合集)

关于K-means聚类算法,请回答以下问题: 

1) K-means是有监督聚类还是无监督聚类?(2分) 

2) 写出将N个样本(X=(x1,…,xN))聚成K类的K-means聚类算法的优化目标函数。(6分) 

3) 请用伪代码写出聚类过程。(8分) 

4) 假设样本特征维度为D,请描述Kmeans算法时间复杂度。(4分)

Answer:

1) 无监督聚类。

2) \min \sum_{i=1}^{\mathrm{K}} \sum_{x \in C_{i}} d i s t\left(c_{i}, x\right)^{2}其中K为分类数,c^i为第i个中心,C_i为第i个cluster点的集合,dist表示距离函数,如欧式距离。

3) 初始化:从N个样本中随机选择K个作为初始聚类中心;

    For t=1:T(此处,T为最大迭代次数) 

    将N个样本按距离最近原则分配给K个聚类中心; 

    迭代更新聚类中心; 

    如果达到终止条件,如全部样本归类无变化,或者样本点到聚类中心的平均距离变化率较低,则退出

4)时间复杂度:TNKD 其中T为迭代次数、N为样本个数,K为聚类中心数目,D为样本维度

2.(来源:百度2019校招计算机视觉方向问答题合集)

目前通过卷积神经网络进行检测的方法主要分为one-stage和two-stage,分别写出了解的对应的算法。 

在共性上两类检测算法有哪些差异?

Answer:

One-stage:yolov1、yolov2、yolov3、SSD、RetinaNet(2分) 

Two-stage:Fast R-CNN、Faster R-CNN(2分) 

Two-stage检测算法的共性,以faster r-cnn为例,使用了复杂的网络用于每个候选区域的分类和回归;ROI pooling后的feature channels数目较大,导致内存消耗和计算量都比较大。 

One-stage检测算法的共性,从网络结构上看只是多分类的rpn网络,相当于faster rcnn的第一阶段,因此one-stage主要的优势是速度快。其预测结果是从feature map回归出目标的位置及分类,有的也采用了anchor的概念。而two-stage对上述结果进行roi pooling后会进一步细化,因此two-stage算法检测精度一般相对较高。还有一种观点是,two-stage的rpn部分相当于做了正负样本均衡,这也是two-stage检测效果相对较好的一个原因。one-stage算法对小目标检测效果较差,如果所有的anchor都没有覆盖到这个目标,那么这个目标就会漏检。如果一个比较大的anchor覆盖了这个目标,那么较大的感受野会弱化目标的真实特征,得分也不会高。two-stage算法中的roi pooling会对目标做resize, 小目标的特征被放大,其特征轮廓也更为清晰,因此检测也更为准确。

你可能感兴趣的:(Written,Test)