文末免费送电子书:七月在线干货组最新 升级的《名企AI面试100题》免费送!

问题一:你常用的优化算法?有什么特点?为什么?

梯度下降:在一个方向上更新和调整模型的参数,来最小化损失函数。

随机梯度下降(Stochastic gradient descent,SGD)对每个训练样本进行参数更新,每次执行都进行一次更新,且执行速度更快。

为了避免SGD和标准梯度下降中存在的问题,一个改进方法为小批量梯度下降(Mini Batch Gradient Descent),因为对每个批次中的n个训练样本,这种方法只执行一次更新。

使用小批量梯度下降的优点是:

  1. 可以减少参数更新的波动,最终得到效果更好和更稳定的收敛。
  2. 还可以使用最新的深层学习库中通用的矩阵优化方法,使计算小批量数据的梯度更加高效。
  3. 通常来说,小批量样本的大小范围是从50到256,可以根据实际问题而有所不同。
  4. 在训练神经网络时,通常都会选择小批量梯度下降算法。

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点间的弦,其长才大于内接正三角形边长。所有交点是等可能的,则所求概率为