zoukankan      html  css  js  c++  java
  • 2018 年大疆机器学习算法工程师春季提前批笔试题

    前不久参加了一次大疆公司的 2018 年春季提前批机器学习算法岗的笔试,发现自己的相关基础知识的确还不是很扎实,特此分享一些事后还记忆深刻的题目,给大家作为一个参考。话说,相比控制算法、导航算法、相机算法等相关算法工程师岗位,机器学习算法的岗位可不是一般的火爆,单这一个岗位的面试人数就足以碾压其他所有岗位的人数之和!

    一、单项选择题

     

    1. 考察SVM 分类和深度学习逻辑回归分类的区别 

    B. SVM 只能应用于线性分类

    错误,SVM 可以应用于线性分类和非线性分类问题,取决于核函数的选取。

    C. SVM 是凸问题,深度学习都是非凸问题

    正确,深度学习算法的目标函数,几乎全都是非凸的。

    2. 考察 L1 和 L2 正则化的区别

    L0 范数:向量中非0元素的个数。

    L1 范数 (Lasso Regularization):向量中各个元素绝对值的和。

    L2 范数(Ridge Regression):向量中各元素平方和再求平方根。

    L0 范数和 L1 范数都能够达到使参数稀疏的目的,但 L0 范数更难优化求解,L1 范数是 L0 范数的最优凸近似,而且它比 L0 范数要容易优化求解。

    L2 范数不但可以防止过拟合,提高模型的泛化能力,还可以让我们的优化求解变得稳定和快速。L2 范数对大数和 outlier 更敏感!

    3. 考察 SVM 决策边界 


    四个点坐标为(1,1),(1,0),(-1,-1),(-1,0),用 SVM 分类的决策边界是 
    A. y = x 
    B. x = 0 
    C. y = -x 
    D. y = 0

    SVM 是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在 margin ,并且需要使各侧的 margin 最大化。本题目四个选项的 margin 分别为 0, 1, 0.707, 0,因此选择 B。

    二、多项选择题

    1. 无监督学习方法

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

    2. 增大感受野方法

    dilated 卷积(空洞卷积)、池化、增大卷积核

    3. 正则化方法

    B. 减少神经网络层数

    错误,减少网络层数实际上是减弱了网络的拟合能力

    C. 减小权重衰减参数  

    错误,应该是增大权重衰减系数,类似于 L2 正则化系数的作用

    三、填空题

    1.  经过下列卷积操作后,3×3 conv -> 3×3 conv -> 2×2 maxpool -> 3×3 conv,卷积步长为 1,没有填充,输出神经元的感受野是多大?

    2. 100×100×3,3×3 卷积核,输出是 50×50×10,算进行了多少次乘-加操作?

    输出的每个像素点都要经过 3×3×3 = 27 次乘-加操作,因此总共需要进行 50×50×10×27 次乘-加操作。

    四、简答题

    1.  简述梯度下降法和牛顿法的优缺点?

    随机梯度下降法:适用于样本量大的情况,需要内存小;但每一步可能并不是向着最优解方向 ;

    牛顿法:收敛速度快;但对目标函数有严格要求,必须有连续的一、二阶偏导数,计算量大。

    2. 正样本 10000,负样本 1000,怎样训练?

    正负样本悬殊具体数据记不太清楚了,异常检测算法(高斯分布算法),可以适用于异常(也就是负样本)比较少的情况。

    3. Relu 相对于 sigmoid 函数的优缺点?

    优点:分段线性,梯度较大,收敛速度快;Relu 会使一部分神经元的输出为 0,会造成了网络的稀疏性;
    缺点:某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。

    4. 正则化方法?

    数据增强(Data Augmentation)、L1 正则化、L2 正则化、 Dropout、Drop Connect 和早停(Early stop)。

    5. 说出物体检测、人脸识别、物体分割等某一领域的常见算法,并用一两句话简述其中一种算法的原理?

    物体检测:YOLO、R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN、SSD 等;
    YOLO 算法直接利用一个卷积神经网络就输出物体所在的位置以及所属的类别,是一个端到端的系统,因此检测速度特别快,可以达到实时性的要求。

    五、编程题

    1. 输入序列 a, 判断是否存在 i < j < k, 满足 a[i] < a[k] < a[j],并写出算法复杂度?

    思路:三个循环,在最内层循环进行一个判断,算法复杂度O(n^3)。

    2. 输入多边形顶点坐标 List,判断是否为凸多边形(如果把一个多边形的所有边中,任意一条边向两方无限延长成为一直线时,其他各边都在此直线的同旁,那么这个多边形就叫做凸多边形)?

    思路:遍历所有相邻顶点,以两点坐标求得直线方程,判断其余顶点是否在直线同侧。

    以上的题目有些记得不是非常清楚,答案也仅代表个人的意见,只作为参考,同时也非常欢迎留言批评指正!

    获取更多精彩,请关注「seniusen」! 

     

  • 相关阅读:
    window.top.location
    JS 退出系统并跳转到登录界面的实现代码
    CSS position 属性
    在网页中插入时间 自动更新
    CKeditor 配置使用
    使用JspSmart文件上传
    复制的web工程为什么不能部署到tomcat
    JDBC 4 PreparedStatement 与Statement 的区别
    每周会商自动化
    晚上的亲子时光
  • 原文地址:https://www.cnblogs.com/seniusen/p/9038259.html
Copyright © 2011-2022 走看看