阿里巴巴2020实习-电话面试总结
2020.04.15
4.13晚上做的笔试,结果是一道都没有出来,在4.14晚上收到了第一个面试电话,但是由于不匹配就换了一个部门,第二次面试电话是4.15号下午三点,整个过程持续了三十多分钟,用一句话总结自己是面的很差,脑子都是蒙的,完全无法思考。虽然说面试失败 ,但是经验还是要总结的。
主要问了一下几个问题:
一、自我介绍项目
二、机器学习
1.贝叶斯估计和似然估计的区别
从概念上区分:贝叶斯估计在对样本进行估计之前,需要有一个样本的先验分布,即通过先验分布计算得到后验分布,通过样本去更新先验分布的结果;而似然估计直接根据样本的概率分布得到联合概率的似然函数,通过最大化似然函数得到参数的估计值。
从样本量上看:贝叶斯分布在样本较少的时候的效果比似然估计得到的值较好,比如(0,1)分布,当样本数只有1的事实,似然得到的估计值是0或者1;而贝叶斯得到的估计值与先验分布有关,不会像似然估计的那么极端。
2.批量梯度下降、随机梯度下降和牛顿法在梯度下降中的应用
批量梯度下降在求解函数为凸函数的情况下得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果数据量很大,那么这种方法的迭代速度是很慢的。
所以,针对批量下降的迭代速度慢的问题,产生了随机梯度下降。(适合小数据量)
随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经将theta迭代到最优解了,对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。但是,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。(适合大数据量)
小批量梯度下降法:上述两种方法作结合。每次利用一小部分数据更新迭代参数。数据量上述两者之间。
牛顿法:是通过求解目标函数的一阶导数为0时的参数,进而求出目标函数最小值时的参数。收敛速度很快。海森矩阵的逆在迭代过程中不断减小,可以起到逐步减小步长的效果。缺点:海森矩阵的逆计算复杂,代价比较大,因此有了拟牛顿法。
梯度下降法:是通过梯度方向和步长,直接求解目标函数的最小值时的参数。越接近最优值时,步长应该不断减小,否则会在最优值附近来回震荡。
(https://www.cnblogs.com/lyr2015/p/9010532.html 部分内容的具体公式可以参考这个网页,侵删) 三、笔试代码题
1.第一个数组会溢出:考虑用全局变量
2.三重循环找不到多个城市之间的最短路径+数组溢出问题
我现在脑子还是蒙的,先把问题写在这里,等清醒了,再来回答。
欢迎大家的讨论,共同克敌~