蚂蚁金服-算法工程师-机器学习-面经

一面

自我介绍

专业方向

做的最好的项目

特征处理过程
特征,标签

朴素贝叶斯

梯度消失和梯度爆炸

完整相关问题原文链接如下:
https://blog.csdn.net/qq_25737169/article/details/78847691

为何会产生梯度消失或者梯度爆炸?

  1. 从网络层数的角度考虑,网络层数变多,由于BP算法的链式求导法则导致。如果对某层的激活函数求导大于1,那么层数增多的时候,最终的求出的梯度更新将以指数形式增加,即发生梯度爆炸,如果此部分小于1,那么随着层数增多,求出的梯度更新信息将会以指数形式衰减,即发生了梯度消失。
  2. 从激活函数的角度考虑,如果使用sigmoid作为损失函数,其梯度是不可能超过0.25的,这样经过链式求导之后,很容易发生梯度消失。同理,tanh作为激活函数,它的导数图如下,可以看出,tanh比sigmoid要好一些,但是它的导数仍然是小于1的。

如何解决?

  1. 采用relu激活函数,应为对其求导,导数恒为1.不会发生梯度爆炸和梯度消失。relu的主要贡献在于:解决了梯度消失、爆炸的问题。计算方便,计算速度快。 加速了网络的训练。
  2. 梯度剪切。梯度剪切这个方案主要是针对梯度爆炸提出的,其思想是设置一个梯度剪切阈值,然后更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内。这可以防止梯度爆炸。
  3. 权重正则化。比较常见的是 l 1 l1 l1正则,和 l 2 l2 l2正则。如果发生梯度爆炸,权值的范数就会变的非常大,通过正则化项,可以部分限制梯度爆炸的发生。应为优化器会求最小的loss函数,若果正则化项大的话,会被loss损失函数约束变小。
  4. 残差网络。几乎所有的深度网络都离不开残差的身影,相比较之前的几层,几十层的深度网络,在残差网络面前都不值一提,残差可以很轻松的构建几百层,一千多层的网络而不用担心梯度消失过快的问题。相比较于以前网络的直来直去结构,残差中有很多跨层连接结构,这样的结构在反向传播中具有很大的好处,见下式:
    在这里插入图片描述
    式子的第一个因子 ∂ L o s s ∂ x l \frac{\partial Loss}{\partial x_l} xlLoss表示的损失函数到达 L 的梯度,小括号中的1表明短路机制可以无损地传播梯度,而另外一项残差梯度则需要经过带有weights的层,梯度不是直接传递过来的。残差梯度不会那么巧全为-1,而且就算其比较小,有1的存在也不会导致梯度消失。所以残差学习会更容易。
  5. 采用LSTM的结构。LSTM全称是长短期记忆网络(long-short term memory networks),是不那么容易发生梯度消失的,主要原因在于LSTM内部复杂的“门”(gates),如下图,LSTM通过它内部的“门”可以接下来更新的时候“记住”前几次训练的”残留记忆“,因此,经常用于生成文本中。目前也有基于CNN的LSTM,感兴趣的可以尝试一下。
    在这里插入图片描述

线性回归

线性回归有怎样的条件假设?

详情见博文
https://blog.csdn.net/Noob_daniel/article/details/76087829

MSE 如何推出?

https://blog.csdn.net/gangyin5071/article/details/81280019
为什么用2次型?
https://blog.csdn.net/saltriver/article/details/57544704

正则化项作用?
https://blog.csdn.net/hit0803107/article/details/52901915
防止过拟合
为什么可以防止过拟合?
正则化项描述了模型复杂度,模型越复杂正则化项越大。正则化平衡了方差(方差大过拟合)于偏差(偏差大欠拟合)
最小化正则化项,减少了特征向量个数,降低了模型的复杂度。正则化符合奥卡姆剃刀原理,奥卡姆剃刀原理应用于模型选择时采用以下想法:在所有可能选择的模型中,能够很好的解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率,可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。
a、特征选择(FeatureSelection):
最小化正则化项能实现特征的自动选择。在我们事先假定的特征(或自变量)中,有很多自变量或特征对输出的影响较小,可以看作是不重要的特征或自变量。而正则化项会自动对自变量或特征的系数参数进行惩罚,令某些特征或自变量的参数(权重系数)为0或接近于0,自动选择主要自变量或特征(类此于PCA)。
b、可解释性(Interpretability):
最小化正则化项模型更容易解释。
例如一回归问题,假设回归模型为:y=w1x1+w2x2+…+w1000x1000+b
通过学习,如果最后学习到的w
就只有很少的非零元素,大部分W*为0或接近于0,例如只有5个非零的wi,那可以认为y之于这5个(因素)xi有关系,这更有利于人们对问题的认识和分析,抓住影响问题的主要方面(因素)更符合人们的认知习惯。

线性回归系数的标准差和样本的什么有关?

线性系数的标准差和样本数量有什么关系?
数学表达式

高斯分布为何如此普遍?
中心极限定理,大数定律
大数定律是说,n只要越来越大,我把这n个独立同分布的数加起来去除以n得到的这个样本均值(也是一个随机变量)会依概率收敛到真值μ,但是样本均值的分布是怎样的我们不知道。
中心极限定理是说,n只要越来越大,这n个数的样本均值会趋近于正态分布,并且这个正态分布以μ为均值,σ2/n为方差

SVM

损失函数
为什么能使间隔最大化?
https://blog.csdn.net/qq_21768483/article/details/86251915

逻辑回归

损失函数
https://blog.csdn.net/qq_21768483/article/details/88425728

分类问题有哪些损失函数

Random Forgest 和GBDT

https://www.cnblogs.com/liuwu265/p/4690486.html

1.bagging: 有放回的抽抽出K个训练集,训练处K个学习器,然后投票(分类),或者求平均(回归)。
2.boost:训练一个学习器改变一次样本权重,分类错误的权重增大,然后在训练第二个学习器,用来拟合上一轮中学习器和便签的残差。
区别:
1.样本上
2.样本权重上
3.预测函数权重上
4.并行计算上

1)Bagging + 决策树 = 随机森林
2)AdaBoost + 决策树 = 提升树 (AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。)
3)Gradient Boosting + 决策树 = GBDT

方差和偏差学习器个数n的函数关系?

bagging: 偏 差 = 偏 差 n 偏差=\frac{偏差 }{n} =n 方差=方差 (与n无关)
原因:Bagging是“多次计算取平均”,即X = (X1+X2+…+Xn)/n,从而假定X1、X2…Xn的方差都相同,记做Xi,直接使用方差计算,很容易得到:Var(X)=Var(Xi)/N,这即“Bagging可以减少方差”的理论依据。

boost:偏差=偏差 ,方差随n增大而减小

矩阵的SVD分解

svd:奇异值分解
类似与方阵的特征值分解。
方阵是N*N的矩阵,
A n ∗ n = Q ∑ Q − 1 A_{n*n}=Q \sum Q^{-1} Ann=QQ1

求解方法:
A n ∗ n v = λ v A_{n*n}v=\lambda v Annv=λv
λ \lambda λ是特征值,v是特征向量

奇异值分解:
A m ∗ n = U m ∗ m ∑ m ∗ n V n ∗ n T A_{m*n}=U_{m*m} \sum_{m*n} V^T_{n*n} Amn=UmmmnVnnT
U m ∗ m , ∑ m ∗ n , V n ∗ n T U_{m*m}, \sum_{m*n}, V^T_{n*n} Umm,mn,VnnT
其中可以利用
A A T = λ v AA^T=\lambda v AAT=λv 求得U
A T A = λ v A^TA=\lambda v ATA=λv 求得V
Σ 的对角元素来源于 AAT 或 ATA 的特征值的平方根,并且是按从大到小的顺序排列的

PCA主成成分分析

  1. 对样本去中性化(第i维特征减掉第i维特征的均值) 。维度:[m*n] m样本特征数,n样本数
  2. 计算协方差矩阵 X X T XX^T XXT(描述的是各个维度之间的相关性)。 维度: [m*m]
  3. 求特征值 λ \lambda λ和特征向量v 。 维度: [1*m],把列横着放
  4. 保留K个特征值最大的特征向量v,组成特征矩阵P 。 维度: [k*m]
  5. 变换后的Y=PX 。 维度: [k*n]

优化方法有哪些?原理?

拟牛顿法

排序算法

排序算法为啥没有快于NlogN?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值