面试总结——L1和L2

1、L2正则化,为什么L2正则化可以防止过拟合?L1正则化是啥?

避免过拟合的第一个思路:使尽可能多的参数为零。为此,最直观地可以引入L0-范数。这意味着,我们希望绝大多数w的分量为零。

L0范数:向量中非0元素的个数。

通过引入L0正则项,我们可以使模型稀疏化且易于解释,并且在某种意义上实现了「特征选择」。这看起来很美好,但是L0正则项:非连续、非凸、不可导。因此,L0正则项虽好,但是求解这样的最优化问题,难以在多项式时间内找到有效解(NP-Hard 问题)。

于是我们考虑 L0范数最紧的凸放松:L1-范数。

L1-norm 又叫做Manhattan-norm,可能最早提出的大神直接用在曼哈顿区坐出租车来做比喻。下图中绿线是两个黑点的 L2 距离,而其他几根就是 taxicab 也就是 L1 距离,确实很像我们平时用地图时走的路线了。

这两个正则项最主要的不同,包括两点:

  • L2 计算起来更方便,而 L1 在特别是非稀疏向量上的计算效率就很低;
  • 还有就是 L1 最重要的一个特点,输出稀疏,会把不重要的特征直接置零,而 L2 则不会;
  • 最后,如之前多次提过,L2 有唯一解,而 L1 不是。

因为 L1 天然的输出稀疏性,把不重要的特征都置为 0,所以它也是一个天然的特征选择器

为什么使用L1正则项,会倾向于使得参数稀疏化;而使用L2-正则项,会倾向于使得参数稠密地接近于零?

为了简便起见,我们只考虑模型有两个参数w1与w2的情形。

在图中,我们有三组「等值线」。位于同一条等值线上的w1与w2,具有相同的值(平方误差、L1-范数或L2-范数)。并且,对于三组等值线来说,当 (w1,w2)沿着等值线法线方向,像外扩张,则对应的值增大;反之,若沿着法线方向向内收缩,则对应的值减小。

因此,对于目标函数Obj(F)来说,实际上是要在正则项的等值线与损失函数的等值线中寻找一个交点,使得二者的和最小。

对于L1-正则项来说,因为L1-正则项的等值线是一组菱形,这些交点容易落在坐标轴上。因此,另一个参数的值在这个交点上就是零,从而实现了稀疏化。

对于L2-正则项来说,因为L2-正则项的等值线是一组圆形。所以,这些交点可能落在整个平面的任意位置。所以它不能实现「稀疏化」。但是,另一方面,由于 (w1,w2)落在圆上,所以它们的值会比较接近。这就是为什么L2-正则项可以使得参数在零附近稠密而平滑。

 

2、深度学习里面怎么防止过拟合?(data augdropoutmulti-task learning)如何防止过拟合,列举了4中主要防止过拟合方法:Early Stopping、数据集扩充、正则化法以及dropout,还详细跟他说了每种方法原理及使用的场景,并解释我在哪些项目里具体用到了这些方法,

 

3、机器学习中使用「正则化来防止过拟合」到底是一个什么原理?为什么正则化项就可以防止过拟合?https://www.zhihu.com/question/20700829

过拟合发生的本质原因,是由于监督学习问题的不适定:数据远远少于模型空间。因此过拟合现象的发生,可以分解成以下三点:

  1. 有限的训练数据不能完全反映出一个模型的好坏,然而我们却不得不在这有限的数据上挑选模型,因此我们完全有可能挑选到在训练数据上表现很好而在测试数据上表现很差的模型,因为我们完全无法知道模型在测试数据上的表现。
  2. 如果模型空间很大,也就是有很多很多模型以给我们挑选,那么挑到对的模型的机会就会很小。
  3. 与此同时,如果我们要在训练数据上表现良好,最为直接的方法就是要在足够大的模型空间中挑选模型,否则如果模型空间很小,就不存在能够拟合数据很好的模型。

由上3点可见,要拟合训练数据,就要足够大的模型空间;用了足够大的模型空间,挑选到测试性能好的模型的概率就会下降。因此,就会出现训练数据拟合越好,测试性能越差的过拟合现象。

为什么正则化能够避免过拟合:因为正则化就是控制模型空间的一种办法。正则化能够在保证模型有效的前提下使得模型简单,而越简单的模型泛化能力越强。就像求解n个一阶变量的方程组,但是方程组的个数不足n,这样就会有无数解,引入正则化项使得有唯一解,而且此解会使该方程组简单。

 

4、机器学习中常常提到的正则化到底是什么意思?https://www.zhihu.com/question/20924039

 

5、什么是正则项,L1范式,L2范式区别是什么,各自用在什么地方?L1 L2 的区别以及如何解决 L1 求导困难;

 

L1 和 L2 范数在机器学习上最主要的应用大概分下面两类

  • 作为损失函数使用
  • 作为正则项使用也即所谓 L1-regularization 和 L2-regularization

我们可以担当损失函数

先来看个回归问题

preview

我们需要做的是,获得一条线,让数据点到线上的总距离(也就是error)最小。

于是可以用能表示距离的 L1-norm 和 L2-norm 来作为损失函数了。

首先是 L1-norm 损失函数,又被称为 least absolute deviation (LAD,最小绝对偏差)

如果我们最小化上面的损失函数,其实就是在最小化预测值 和目标值 的绝对值。

之后是大家最熟悉的 L2-norm 损失函数,又有大名最小二乘误差 (least squares error, LSE):

为什么大家一般都用 L2 损失函数,却不用 L1 呢?

这个就说来话长了,如果你问一个学习过微积分的同学,如何求一个方程的最小值,他/她大概会想当然的说:“求导,置零,解方程。” 号称微积分届的农夫三拳。

但如果给出一个绝对值的方程,突然就会发现农夫三拳不管用了,求最小值就有点麻烦了。主要是因为绝对值的倒数是不连续的。

同样的对于 L1 和 L2 损失函数的选择,也会碰到同样的问题,所以最后大家一般用 L2 损失函数而不用 L1 损失函数的原因就是:

因为计算方便!可以直接求导获得取最小值时各个参数的取值。

此外还有一点,用 L2 一定只有一条最好的预测线,L1 则因为其性质可能存在多个最优解

L1 损失函数好处,就是鲁棒性 (Robust) 更强,对异常值更不敏感

 

我们还能担当正则项

在损失函数中加个正则项(Regularization Term),来防止参数拟合得过好。

L1-regularization 和 L2-regularization 便都是我们常用的正则项,两者公式的例子分别如下

preview

preview

这两个正则项最主要的不同,包括两点:

  • L2 计算起来更方便,而 L1 在特别是非稀疏向量上的计算效率就很低;
  • 还有就是 L1 最重要的一个特点,输出稀疏,会把不重要的特征直接置零,而 L2 则不会;因为 L1 天然的输出稀疏性,把不重要的特征都置为 0,所以它也是一个天然的特征选择器
  • L2 有唯一解,而 L1 不是。

L1可以实现稀疏,但是为什么要稀疏?让我们的参数稀疏有什么好处呢?

1)特征选择(Feature Selection):

       大家对稀疏规则化趋之若鹜的一个关键原因在于它能实现特征的自动选择。一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。

2)可解释性(Interpretability):

       另一个青睐于稀疏的理由是,模型更容易解释。例如患某种病的概率是y,然后我们收集到的数据x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。假设我们这个是个回归模型:y=w1*x1+w2*x2+…+w1000*x1000+b(当然了,为了让y限定在[0,1]的范围,一般还得加个Logistic函数)。通过学习,如果最后学习到的w*就只有很少的非零元素,例如只有5个非零的wi,那么我们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。也就是说,患不患这种病只和这5个因素有关,那医生就好分析多了。但如果1000个wi都非0,医生面对这1000种因素,累觉不爱。
 

L1 L2 的区别:

  • L1范数可以进行特征选择,即让特征的系数变为0.
  • L2范数可以防止过拟合,提升模型的泛化能力,有助于处理 condition number不好下的矩阵(数据变化很小矩阵求解后结果变化很大)
  • (核心:L2对大数,对outlier离群点更敏感!)
  • 下降速度:最小化权值参数L1比L2变化的快
  • 模型空间的限制:L1会产生稀疏 L2不会。
  • L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。

坐标轴下降法(解决L1正则化不可导的问题)

由于lasso回归的损失函数是不可导的,所以梯度下降算法将不再有效,下面利用坐标轴下降法进行求解。

坐标轴下降法和梯度下降法具有同样的思想,都是沿着某个方向不断迭代,但是梯度下降法是沿着当前点的负梯度方向进行参数更新,而坐标轴下降法是沿着坐标轴的方向

下面为具体的更新过程。

    1选取初始参数

           

    (2)针对当前得到的参数进行迭代,假设已经求出第k-1轮的参数,现在由求,其中,则:

          

   (3)通过以上步骤即可以得到每轮的迭代结果,如果相对于的变化很小,则停止迭代,否则,重复步骤2.

通过以上迭代过程可以看出

    1. 坐标轴下降法进行参数更新时,每次总是固定另外m-1个值,求另外一个的局部最优值,这样也避免了Lasso回归的损失函数不可导的问题。

    2. 坐标轴下降法每轮迭代都需要O(mn)的计算。(和梯度下降算法相同)

坐标轴下降法的数学依据为:

    对于一个可微凸函数,其中的向量,如果对于一个解,使得在某个坐标轴

都能达到最小值,则就是的全局的最小值点。

 

坐标轴下降法的求极值过程,可以和梯度下降做一个比较:

    a) 坐标轴下降法在每次迭代中在当前点处沿一个坐标方向进行一维搜索 ,固定其他的坐标方向,找到一个函数的局部极小值。而梯度下降总是沿着梯度的负方向求函数的局部最小值。

    b) 坐标轴下降优化方法是一种非梯度优化算法。在整个过程中依次循环使用不同的坐标方向进行迭代,一个周期的一维搜索迭代过程相当于一个梯度下降的迭代。

    c) 梯度下降是利用目标函数的导数来确定搜索方向的,该梯度方向可能不与任何坐标轴平行。而坐标轴下降法法是利用当前坐标方向进行搜索,不需要求目标函数的导数,只按照某一坐标方向进行搜索最小值。

    d) 两者都是迭代方法,且每一轮迭代,都需要O(mn)的计算量(m为样本数,n为系数向量的维度)

 

6、L1正则为什么能让系数变为0L1正则怎么处理0点不可导的情形?(这个谁会?近端梯度下降)

l1 相比于 l2 为什么容易获得稀疏解?

假设费用函数 L 与某个参数 x 的关系如图所示:

preview

则最优的 x 在绿点处,x 非零。

现在施加 L2 regularization,新的费用函数如图中蓝线所示:

preview

最优的 x 在黄点处,x 的绝对值减小了,但依然非零。

而如果施加 L1 regularization,则新的费用函数如图中粉线所示

preview

最优的 x 就变成了 0。这里利用的就是绝对值函数的尖峰。

 

两种 regularization 能不能把最优的 x 变成 0,取决于原先的费用函数在 0 点处的导数。
如果本来导数不为 0,那么施加 L2 regularization 后导数依然不为 0,最优的 x 也不会变成 0。
而施加 L1 regularization 时,只要 regularization 项的系数 C 大于原先费用函数在 0 点处的导数的绝对值,x = 0 就会变成一个极小值点。

上面只分析了一个参数 x。事实上 L1 regularization 会使得许多参数的最优值变成 0,这样模型就稀疏了。

为什么使用L1正则项,会倾向于使得参数稀疏化;而使用L2-正则项,会倾向于使得参数稠密地接近于零?

为了简便起见,我们只考虑模型有两个参数w1与w2的情形。

在图中,我们有三组「等值线」。位于同一条等值线上的w1与w2,具有相同的值(平方误差、L1-范数或L2-范数)。并且,对于三组等值线来说,当 (w1,w2)沿着等值线法线方向,像外扩张,则对应的值增大;反之,若沿着法线方向向内收缩,则对应的值减小。

因此,对于目标函数Obj(F)来说,实际上是要在正则项的等值线与损失函数的等值线中寻找一个交点,使得二者的和最小。

对于L1-正则项来说,因为L1-正则项的等值线是一组菱形,这些交点容易落在坐标轴上。因此,另一个参数的值在这个交点上就是零,从而实现了稀疏化。

对于L2-正则项来说,因为L2-正则项的等值线是一组圆形。所以,这些交点可能落在整个平面的任意位置。所以它不能实现「稀疏化」。但是,另一方面,由于 (w1,w2)落在圆上,所以它们的值会比较接近。这就是为什么L2-正则项可以使得参数在零附近稠密而平滑。

 

7、L0L1L2正则化(如果能推导绝对是加分项,一般人最多能画个等高线,L0NP问题)其实上面的这些问题基本都能在《李航:统计学习方法》《周志华:机器学习》里面找到,能翻个45遍基本就无压力了

 

8、避免过拟合策略、如何提高模型泛化能力、L1L2正则区别,优缺点、生成式,判别式模型、深度学习这块了解多少、

避免过拟合策略

1、获取更多数据:

     

2、使用合适的模型:

2.1 网络结构 Architecture

减少网络的层数、神经元个数等均可以限制网络的拟合能力;

2.2 训练时间 Early stopping

对于每个神经元而言,其激活函数在不同区间的性能是不同的。当网络权值较小时,神经元的激活函数工作在线性区,此时神经元的拟合能力较弱(类似线性神经元)。有了上述共识之后,我们就可以解释为什么限制训练时间有用:因为我们在初始化网络的时候一般都是初始为较小的权值。训练时间越长,部分网络权值可能越大。如果我们在合适时间停止训练,就可以将网络的能力限制在一定范围内。

2.3 限制权值 Weight-decay,也叫正则化(regularization)

原理同上,但是这类方法直接将权值的大小加入到 Cost 里,在训练的时候限制权值变大。以 L2 regularization为例:

训练过程需要降低整体的 Cost,这时候,一方面能降低实际输出与样本之间的误差 C0,也能降低权值大小。

2.4 增加噪声 Noise

2.4.1 在输入中加噪声:噪声会随着网络传播,按照权值的平方放大,并传播到输出层,对误差 Cost 产生影响。

2.4.2 在权值上加噪声:在初始化网络的时候,用0均值的高斯分布作为初始化。

2.4.3 对网络的响应加噪声:如在前向传播过程中,让默写神经元的输出变为 binary 或 random。

3、结合多种模型:训练多个模型,以每个模型的平均输出作为结果。

大概基于这个原理,就可以有很多方法了:

3.3 Dropout

这是一个很高效的方法。

4. 贝叶斯方法

如何提高模型泛化能力

基本思路就是:先把模型搞复杂,复杂到得到令你满意的训练误差(训练误差要低于『令你满意的测试误差』),然后在慢慢调参、简化模型、添加先验和正则、改变数据维度、特征提取等,直到测试误差也满足『低于令你满意的测试误差』。

 

改进思路一般有两个:
1、改进模型:
①、换算法;
②、调参数。

2、做好数据预处理:
有一个好的数据集远比有一个好的模型更为重要。这里的“好”主要表现在两方面:
①、做好特征选择;
②、做好数据离散化、异常值处理、缺失填充等。

 

9、如何克服过拟合,欠拟合

 

10、L1 L2 的区别以及如何解决 L1 求导困难;

L1 L2 的区别:

  • L1范数可以进行特征选择,即让特征的系数变为0.
  • L2范数可以防止过拟合,提升模型的泛化能力,有助于处理 condition number不好下的矩阵(数据变化很小矩阵求解后结果变化很大)
  • (核心:L2对大数,对outlier离群点更敏感!)
  • 下降速度:最小化权值参数L1比L2变化的快
  • 模型空间的限制:L1会产生稀疏 L2不会。
  • L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。

 

11、L1正则为什么可以把系数压缩成0,坐标下降法的具体实现细节

坐标轴下降法(解决L1正则化不可导的问题)

由于lasso回归的损失函数是不可导的,所以梯度下降算法将不再有效,下面利用坐标轴下降法进行求解。

坐标轴下降法和梯度下降法具有同样的思想,都是沿着某个方向不断迭代,但是梯度下降法是沿着当前点的负梯度方向进行参数更新,而坐标轴下降法是沿着坐标轴的方向

下面为具体的更新过程。

    1选取初始参数

           

    (2)针对当前得到的参数进行迭代,假设已经求出第k-1轮的参数,现在由求,其中,则:

          

   (3)通过以上步骤即可以得到每轮的迭代结果,如果相对于的变化很小,则停止迭代,否则,重复步骤2.

通过以上迭代过程可以看出

    1. 坐标轴下降法进行参数更新时,每次总是固定另外m-1个值,求另外一个的局部最优值,这样也避免了Lasso回归的损失函数不可导的问题。

    2. 坐标轴下降法每轮迭代都需要O(mn)的计算。(和梯度下降算法相同)

坐标轴下降法的数学依据为:

    对于一个可微凸函数,其中的向量,如果对于一个解,使得在某个坐标轴

都能达到最小值,则就是的全局的最小值点。

 

坐标轴下降法的求极值过程,可以和梯度下降做一个比较:

    a) 坐标轴下降法在每次迭代中在当前点处沿一个坐标方向进行一维搜索 ,固定其他的坐标方向,找到一个函数的局部极小值。而梯度下降总是沿着梯度的负方向求函数的局部最小值。

    b) 坐标轴下降优化方法是一种非梯度优化算法。在整个过程中依次循环使用不同的坐标方向进行迭代,一个周期的一维搜索迭代过程相当于一个梯度下降的迭代。

    c) 梯度下降是利用目标函数的导数来确定搜索方向的,该梯度方向可能不与任何坐标轴平行。而坐标轴下降法法是利用当前坐标方向进行搜索,不需要求目标函数的导数,只按照某一坐标方向进行搜索最小值。

    d) 两者都是迭代方法,且每一轮迭代,都需要O(mn)的计算量(m为样本数,n为系数向量的维度)

 

12、为什么L1正则可以实现参数稀疏,而L2正则不可以?为什么L1很多系数可以被压缩为0L2是被压缩至接近于0

为什么使用L1正则项,会倾向于使得参数稀疏化;而使用L2-正则项,会倾向于使得参数稠密地接近于零?

为了简便起见,我们只考虑模型有两个参数w1与w2的情形。

在图中,我们有三组「等值线」。位于同一条等值线上的w1与w2,具有相同的值(平方误差、L1-范数或L2-范数)。并且,对于三组等值线来说,当 (w1,w2)沿着等值线法线方向,像外扩张,则对应的值增大;反之,若沿着法线方向向内收缩,则对应的值减小。

因此,对于目标函数Obj(F)来说,实际上是要在正则项的等值线与损失函数的等值线中寻找一个交点,使得二者的和最小。

对于L1-正则项来说,因为L1-正则项的等值线是一组菱形,这些交点容易落在坐标轴上。因此,另一个参数的值在这个交点上就是零,从而实现了稀疏化。

对于L2-正则项来说,因为L2-正则项的等值线是一组圆形。所以,这些交点可能落在整个平面的任意位置。所以它不能实现「稀疏化」。但是,另一方面,由于 (w1,w2)落在圆上,所以它们的值会比较接近。这就是为什么L2-正则项可以使得参数在零附近稠密而平滑。

  • 13
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值