年月中旬蔚来算法工程师面试题道
文末免费送电子书:七月在线干货组最新 升级的《名企AI面试100题》免费送!
问题一:你常用的优化算法?有什么特点?为什么?
梯度下降:在一个方向上更新和调整模型的参数,来最小化损失函数。
随机梯度下降(Stochastic gradient descent,SGD)对每个训练样本进行参数更新,每次执行都进行一次更新,且执行速度更快。
为了避免SGD和标准梯度下降中存在的问题,一个改进方法为小批量梯度下降(Mini Batch Gradient Descent),因为对每个批次中的n个训练样本,这种方法只执行一次更新。
使用小批量梯度下降的优点是:
- 可以减少参数更新的波动,最终得到效果更好和更稳定的收敛。
- 还可以使用最新的深层学习库中通用的矩阵优化方法,使计算小批量数据的梯度更加高效。
- 通常来说,小批量样本的大小范围是从50到256,可以根据实际问题而有所不同。
- 在训练神经网络时,通常都会选择小批量梯度下降算法。
SGD方法中的高方差振荡使得网络很难稳定收敛,所以有研究者提出了一种称为动量(Momentum)的技术,通过优化相关方向的训练和弱化无关方向的振荡,来加速SGD训练。
Nesterov梯度加速法,通过使网络更新与误差函数的斜率相适应,并依次加速SGD,也可根据每个参数的重要性来调整和更新对应参数,以执行更大或更小的更新幅度。
AdaDelta方法是AdaGrad的延伸方法,它倾向于解决其学习率衰减的问题。Adadelta不是累积所有之前的平方梯度,而是将累积之前梯度的窗口限制到某个固定大小w。
Adam算法即自适应时刻估计方法(Adaptive Moment Estimation),能计算每个参数的自适应学习率。这个方法不仅存储了AdaDelta先前平方梯度的指数衰减平均值,而且保持了先前梯度M(t)的指数衰减平均值,这一点与动量类似。
Adagrad方法是通过参数来调整合适的学习率η,对稀疏参数进行大幅更新和对频繁参数进行小幅更新。因此,Adagrad方法非常适合处理稀疏数据。
七月在线手推机器学习22讲(下):无监督学习,8月26日(本周四)就要开课啦!
课程由AI LAB 陈博士授课、答疑,从聚类、PCA推到马尔可夫、LDA等,且本课将全面带你梳理模型发展脉络,构建模型体系框架,为后续“深度学习”模型学习和项目实战扫清障碍。
点击查看» https://www.julyedu.com/course/getDetail/376
原价800元,限时99元秒杀!
问题2:Kmeans 和 EM算法?Kmeans和EM算法很相似,类比一下?
K-means(K均值聚类)是一种基于中心的聚类算法,通过迭代,将样本分到K个类中,使每个样本与其所属类中心的距离之和最小。
EM的算法核心就是E步和M步(期望步和最大化步)
- 期望步(E-步)
给定当前的簇中心,每个对象都被指派到簇中心离该对象最近的簇。这里,期望每个对象都属于最近的簇。
- 最大化步(M-步)
给定簇指派,对于每·个簇,算法调整其中心,使得指派到该簇的对象到该新中心到的距离之和最小化。也就是说,将指派到一个簇的对象的相似度最大化。
问题3:圆上任选一条弦,其长度大于圆内接正三角形边长的概率为?
- 解法一:由于对称性,可预先指定弦的方向。作垂直于此方向的直径,只有交直径于1/4 点与 3/4点间的弦,其长才大于内接正三角形边长。所有交点是等可能的,则所求概率为
- 原文作者:知识铺
- 原文链接:https://geek.zshipu.com/post/%E4%BA%92%E8%81%94%E7%BD%91/%E5%B9%B4%E6%9C%88%E4%B8%AD%E6%97%AC%E8%94%9A%E6%9D%A5%E7%AE%97%E6%B3%95%E5%B7%A5%E7%A8%8B%E5%B8%88%E9%9D%A2%E8%AF%95%E9%A2%98%E9%81%93/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com