机器学习面试准备资料汇总

580 阅读4分钟

过拟合及解决方法

  • 正则化
  • 剪枝
  • 提前终止迭代:初始化参数往往较小
  • 权值共享:CNN降低模型复杂度
  • 增加噪声(在输入中、在权值上加高斯噪声)
  • Batch Normalization
  • 结合多种模型(Bagging, Boosting, Dropout)
  • 增大数据集-数据增强(平移、翻转、缩放、切割)

blog.csdn.net/jingbo18/ar…

www.cnblogs.com/jiangxinyan…


正则化的理解

  • L_{0}正则化的值是模型参数中非零参数的个数。
  • L_{1}正则化表示各个参数绝对值之和。
  • L_{2}正则化标识各个参数的平方的和的开方值。
  • blog.csdn.net/qq_20412595…

    L1 特征选择,L2权重衰减

    L1 可以降低维度(降低模型复杂度,防止过拟合)二次正则项也做到了这一点,但是一次正则项做的更加彻底,更稀疏。但L1有拐点,不是处处可微,给计算带来了难度。

    L1正则化对于所有权重予以同样的惩罚,也就是说,不管模型参数的大小,对它们都施加同等力度的惩罚,因此,较小的权重在被惩罚后,就会变成0。因此,在经过L1正则化后,大量模型参数的值变为0或趋近于0,当然也有一部分参数的值飙得很高。由于大量模型参数变为0,这些参数就不会出现在最终的模型中,因此达到了稀疏化的作用,这也说明了L1正则化自带特征选择的功能,这一点十分有用。

    从贝叶斯推导的角度看,L1的w服从一个均值为0的拉普拉斯先验分布。拉普拉斯概率密度函数的截尾比高斯概率密度函数的截尾更长,也就是说L1正则化更能够接受绝对值较大的参数值

    从拉普拉斯分布比高斯分布有更长的截尾,那么可以推知L1正则化的鲁棒性要好于L2正则化,即,L1正则化对于绝对值较大的参数没有L2正则化那么敏感,从而能够容忍一些这样的参数留下。

    因此对于L1正则化,一般可以采取坐标下降法求解。

    L2 处处可导,方便计算。

    L2正则化对于绝对值较大的权重予以很重的惩罚,对于绝对值很小的权重予以非常非常小的惩罚,当权重绝对值趋近于0时,基本不惩罚。这个性质与L2的平方项有关系,即越大的数,其平方越大,越小的数,比如小于1的数,其平方反而越小。

    从贝叶斯推导的角度看,我们可以认为L2中w服从均值为0的高斯先验分布,即,w~N(0, b^{2})。这也符合我们对于参数w的先验认知:w的绝对值不是很大。

    L2正则化的作用实际上就是使得参数向量w的大部分分量的值趋近于0,而不是等于0。这一点在处理具有共线性特征的特征集时非常重要,也是L2在这种情况下胜过L1的原因。

    但L2无法满足模型稀疏化的要求:因为它只是使得模型的参数值趋近于0,而不是等于0,这样就无法丢掉模型里的任何一个特征,因此无法做到稀疏化。

    L1正则化和L2正则化在实际应用中的比较。

    L1在确实需要稀疏化模型的场景下,才能发挥很好的作用并且效果远胜于L2在模型特征个数远大于训练样本数的情况下,如果我们事先知道模型的特征中只有少量相关特征(即参数值不为0),并且相关特征的个数少于训练样本数,那么L1的效果远好于L2

    但是,有时训练数据里的特征很多是共线性的,比方说,有几个特征的共线性很高,并且它们对于分类都很重要,这时L1的做法是随机选择其中一个特征,而扔掉其它的特征。那么经过L1正则化后的模型将会失去很多有用的特征,进而导致模型误差较大。

    这个时候,我们不得不选择L2正则化。但由于L2正则化在面对大量无关特征并且特征不是由高斯分布产生时,误差依然很大,因此需要在训练模型之前,先进行特征选择,然后再用L2正则化,L2正则化的特点是,在面对几个存在共线性的特征时,它会将权值平分给这些特征,从而使得这些有用的特征都得以留下,从而改进分类的准确率。

    实践中也可以采取L1+L2结合的方式,即elastic net。这种方式同时兼顾特征选择(L1)和权重衰减(L2)。

    L1L2正则面经:www.jianshu.com/p/7d5997878…


    LR推导

    www.jianshu.com/p/e8dca5613…


    XGBoost

    www.jianshu.com/p/7467e616f…

    决策树和CART分类回归数:

    zhuanlan.zhihu.com/p/30059442