2019-03-25


百面 7章 优化算法

1   有监督学习的损失函数

1 ) 有监督学习涉及的损失函数有哪些?列举并简述它们的特点

      在有监督的学习中,损失函数刻画了模型和训练样本的匹配程度,损失函数越小,表明模型在该样本点的匹配得越好。

二分类问题 , 损失函数是0-1损失  [A],其代理损失函数是Hinge损失函数 [B](不能用梯度下降进行优化,而用次梯度下降法);0-1损失的另一个代理损失函数是Logistic函数 [C](该损失函数对所有的样本点都有所惩罚,因此对异常值相对更敏感一些);当预测值为[-1,1] 时 ,0-1损失常用的代理损失函数是交叉熵损失函数 [D]

回归问题,常用的损失函数是 平方损失函数 (光滑函数,能够用梯度下降法进行优化,然而当预测值距离真实值越远时,平方损失函数的惩罚力度越大,因此他对异常点比较敏感)                                                                                                                                         

     绝对损失函数(对异常点更鲁棒性,但是在 f = y处无法求导)

                                               

          Huber损失函数(处处可导,且对异常点鲁棒)


2  机器学习中的优化问题,那些是凸优化问题,那些是非凸优化问题 ?

      凸优化问题:逻辑回归(具体是二分类问题),支持向量机,线性回归等线性模型

    非凸优化问题: 主成分分析对应的优化问题,低秩模型(矩阵分解),深度神经网络模型,一般来说,非凸优化问题被认为是比较难求解的问题,但主成分分析是一个特例,可以借助SVD直接得到主成分分析的全局极小值。

3  经典优化算法

     无约束优化问题的优化方法 ,分为直接法和迭代法

         直接法是直接给出优化问题最优解的方法,要求目标函数满足两个条件:1 是凸函数;2 目标函数在处的梯度为0 存在解。

迭代法 是迭代地修正最优解的估计 ;

        分为 一阶迭代(梯度下降)和二阶迭代(牛顿法)

4     梯度验证

       如何利用求目标函数值的功能来验证求目标函数梯度的功能是否正确?

5  随机梯度下降法 

         梯度下降法采用所有的训练数据的平均损失来近似目标函数,每次对模型参数进行更新时,需要遍历所有的训练数据,当M很大时,需要很大的计算量,耗费很长的计算时间,在实际应用中基本不可行,

为了解决该问题,随机梯度下降法 (用单个训练样本的损失来近似平均损失,使用单个训练数据即可对模型参数进行一次更新,大大加快了收敛速率。)

在实际应用中,我们会同时处理若干训练数据,该方法被称为小批量梯度下降法

在小批量梯度下降法的使用中,有三点要注意:

     1  如何选取参数m

     2  如何挑选 m 个训练数据

    3   如何选取学习速率


6  随机梯度下降法的加速

批量梯度下降法好比正常下山

A    随机梯度下降法好比蒙着眼睛下山,本质上是采用迭代方式更新参数,每次迭代在当前位置的基础上,沿着某一方向迈一小步抵达下一个位置,然后在下一位置重复上述步骤。

B  为了解决随机梯度下降法山谷震荡和鞍点停滞的问题,(举例: 一个纸团在山谷和鞍点处的运动轨迹,在山谷中纸团受重力作用沿山道滚下,两边是不规则的山壁,纸团不可避免地撞在山壁,由于质量小受山壁弹力的干扰大,从一测山壁反弹回来撞向另一侧山壁,结果来回震荡地滚下,如果当纸团来到鞍点的一片平坦之地时,还是由于质量小,速度很快减为0,纸团的情况和随机梯度下降法遇到的问题如出一辙)

随机梯度下降变种(7种):

1  动量方法

2   AdaGrad方法

        在应用中,希望更新频率低的参数可以拥有较大的更新步幅,而更新频率高的参数的步幅可以减小,AdaGrad方法采用历史梯度平方和来衡量不同参数的梯度的稀疏性,取值越小表明越稀疏)

3    Adam方法

         将惯性保持和环境感知集于一身,一方面,Adam记录梯度的一阶矩,即过往梯度与当前梯度的平均,这体现惯性保持,另一方面,Adam 记录梯度的二阶矩,即过往梯度平方与当前梯度平方的平均,这类似AdaGrad 方法,体现了环境感知能力,为不同参数产生自适用的学习速率。

        一阶矩和二阶矩采用类似于滑动窗口内求平均的思想进行融合,即当前梯度和近一段时间内梯度的平均值,时间久远的梯度对当前平均值的贡献呈指数衰减。,具体来说,一阶矩和二阶矩采用指数衰退平均技术。

4  Nesterov Accelerated Gradient 

             扩展动量方法,顺着惯性方向,计算未来可能位置处的梯度而非当前位置的梯度,这个’提前量‘ 的设计让算法有了对前方环境预判的能力。

5  AdaDelta 和 RMSProp

            是对AdaGrad 方法的改进,AdaGrad方法采用所有历史梯度平方和的平方根做分母,分母随时间单调递增,产生的自适用学习速率随时间衰减的速度过于激进,针对这个问题,AdaDelta 和RMSProp 采用指数衰退平均的计算方法,用过往梯度的均值代替它们的和。

6  AdaMax 

         该方法是基于Adam 方法的一个变种方法,对梯度平方的处理 是由指数衰退平均改为指数衰退求最大值。

7  Nadam 

7  L1 正则化与稀疏性

     A  模型具有稀疏性相当于对模型进行一次特征选择,只留下一些比较重要的特征,提高模型的泛华能力。

    B   L1正则化使得模型参数具有稀疏性的原理是

答:

     角度1 : 解空间形状

       带正则项 和 带约束等价

        L2 正则项约束的解空间是圆形,而 L1 正则项约束的解空间是多边形,显然多边形的解空间更容易在尖角处与等高线碰撞出稀疏解。

     角度2 : 函数叠加

                  正则化相当于给目标函数加一个函数

     角度3 : 贝叶斯先验

                       从贝叶斯的角度解释L1和L2正则化,

                       L1正则化相当于对模型参数w引入了拉普拉斯先验,L2 正则化相当于引入高斯先验,而拉普拉斯先验使参数为0 的可能性更大。高斯分布在极值点(0点)处是平滑的,也就是高斯先验分布认为w在极值点附近取不同值的可能性是接近的,这就是L2正则化只会让w更接近0点,但不会等于0的原因。

你可能感兴趣的:(2019-03-25)