ML-Interview-Optimization

监督学习的损失函数

  1. 有监督学习涉及的损失函数有哪些?请列举并简述它们的特点。
    1. MSE
    2. MAE
    3. Hinge:Hinge损失不仅会惩罚错误的预测,还会惩罚不自信的正确预测。用于支持向量机(SVM)中。
    4. Binary Cross Entropy
    5. Cross Entropy where $Y_i$ is one-hot encoded target vector $(y_{i1},\cdots, y_{i2})$.
    6. Kullback-Leibler Divergence:表示两个概率分布的差异。Variational Auto-Encoder中使用。
    7. Huber:结合 MSE 和 MAE 的优点
    8. Dice loss: 两个轮廓的相似度,应用在图像分割领域

机器学习中的优化问题

  1. 机器学习中,哪些是凸优化问题?

    凸函数曲面上任意两点连接而成的线段,其上的任意一点都不会处于改函数曲面的下方。一个常用的机器学习模型,逻辑回归,对应的优化问题就是凸优化问题。因为我们可以求得优化函数的 Hessian矩阵是半正定的。

  2. 当数据量特别大时,经典的梯度下降算法有什么问题?

    经典的梯度下降算法在每次模型参数进行更新时,需要遍历所有的训练数据。当 M 很大时,这需要进行很大的计算。为了计算这个问题,随机梯度下降法用单个样本损失来近似所有样本的平均损失。为了降低随机梯度的方差,使得迭代更加稳定,一般使用小批量梯度下降算法。对于小批量下降法的使用,需要注意以下几点:

    1. 不同应用中,每个 batch 的大小通常会不一样。一般选择 2 的幂次可以充分利用矩阵运算。
    2. 为了避免数据的特定顺序给算法收敛带来的影响,一般会在每次遍历数据之前,先对所有数据进行shuffle。
    3. 为了加快收敛速度,同时提高求解精度,通常采用衰减学习速率的方案:一开始算法采用较大的学习速率,当误差曲线进入平台期后,减小学习速率做更精细的调整。
  3. 请给出随机梯度下降算法失效的原因。

    随机梯度下降算法放弃了对梯度准确性的追求,每步仅仅采用一个(或少量)样本来估计当前梯度。但是由于每步接受的信息量有限,随机梯度下降法对梯度的估计常常出现偏差,造成目标函数收敛很不稳定,伴有剧烈的波动,有时甚至出现不收敛的情况。对于随机梯度下降法来说,最可怕的不是局部最优点,而是山谷和鞍点。鞍点就是一片平摊的区域,在梯度几乎为零的区域,随机梯度下降法无法计算出梯度的微小变化,导致在来回震荡。

  4. 如何改进随机梯度下降法?(动量和环境感知)

    1. Momentum(动量):当来到鞍点处,在惯性作用下继续前行,则有机会冲出平坦的陷阱。动量法的收敛速度更快,收敛曲线也更稳定。实际上是对 gradient 做 moving average.
  5. AdaGrad 方法

    随机梯度下降法对环境的感知是指在参数空间中,根据不同参数的一些经验性判断,自适应地确定参数的学习速率。例如在文本处理中训练 word embedding,有写词频繁出现,有些词极少出现,我们希望极少出现的词更新的步幅大一些。AdaGrad 采用历史梯度平方和来衡量不同参数的稀疏性,取值越小说明越稀疏。 具体的更新公式为:

  6. Adam 方法

    Adam方法集惯性保持和环境感知两个优点于一身。一方面,Adam 记录梯度的 first moment,即过往梯度与当前梯度的平均,这体现了惯性保持;另一方面,Adam 还记录了梯度的 second moment,即过往梯度平方与当前梯度平方的平均,这类似 AdaGrad方法,体现环境感知能力,为不同参数产生自适应的学习速率。first and second monent 采用exponential decay average,使得时间久远的梯度对当前平均值的贡献呈指数衰减。

    其中$\beta_1$, $\beta_2$ 为衰减系数,$m_t$是 first moment, $v_t$ 是second moment.

https://zhangruochi.com/An-overview-of-gradient-descent-optimization-algorithms/2019/02/23/

  1. L1 正则化与稀疏性原理是什么?

    带正则项和带约束条件是等价的,为了约束w的可能取值空间从而防止过拟合,我们为该最优化问题加上一个约束,就是w的 L2 范数不能大于m

    为了求解带约束条件的凸优化问题,写出拉格朗日函数

    L2正则化相当于为参数定义了一个圆形的解空间(因为必须保证L2范数不能大于m), 而 L1 正则化想当于定义了一个菱形的解空间。L1 的解空间显然更容易与目标函数的等高线在角点碰撞,从而产生稀疏解。

Donate article here