1、有监督学习的损失函数

问题一:有监督学习的损失函数有哪些?请列举并简述它们的特点。

二分类问题第 7 章 优化算法 - 图1

  • 0-1 损失:第 7 章 优化算法 - 图2
  • Hinge 损失:第 7 章 优化算法 - 图3
  • Logistic 损失:第 7 章 优化算法 - 图4
  • 交叉熵损失:第 7 章 优化算法 - 图5,C 是类别数

回归问题第 7 章 优化算法 - 图6

  • 平方损失:第 7 章 优化算法 - 图7
  • 绝对损失:第 7 章 优化算法 - 图8
  • Huber 损失:

2、机器学习中的优化问题

3、经典优化算法

4、梯度验证

5、随机梯度下降法

经典的优化方法,如梯度下降法,在每次迭代时,需要使用所有的训练数据,这给求解大规模数据的优化问题带来了挑战

问题一:当训练数据量特别大时,经典的梯度下降法存在什么问题,需要做如何改进?

答:通常采用小批量梯度下降法来解决训练数据量过大的问题。每次更新模型参数时,只需要处理 m 个训练数据即可

机器学习优化问题的目标函数第 7 章 优化算法 - 图9

  • 模型在所有数据上的平均损失

希望找到平均损失最小的模型参数,即求解优化问题 第 7 章 优化算法 - 图10

经典的梯度下降法:采用所有训练数据的平均损失来近似目标函数

  • 第 7 章 优化算法 - 图11
  • 第 7 章 优化算法 - 图12
  • 模型参数的更新:第 7 章 优化算法 - 图13

随机梯度下降法:用单个训练样本的损失来近似平均损失

  • 第 7 章 优化算法 - 图14
  • 第 7 章 优化算法 - 图15
  • 优点:单个训练数据即可对模型参数进行一次更新,大大加快了收敛速度,适用于数据源源不断到来的在线更新场景

小批量梯度下降法:用 m 个样本的损失来近似平均损失

  • 第 7 章 优化算法 - 图16
  • 第 7 章 优化算法 - 图17
  • 优点:
    • 降低了随机梯度下降法的方差,从而使迭代更稳定
    • 同时处理 m 个训练数据,也能更充分利用高度优化的矩阵运算操作
  • 三个注意点:
    • 参数 m 的选取:m 取 2 的幂次时能充分利用矩阵运算操作,因此在 32、64、128、256 等 2 的幂次中选最优值
    • 挑选 m 个训练数据的方法:每次遍历训练数据之前,先对所有的数据进行随机排序,然后在每次迭代时按顺序挑选 m 个训练数据,直至遍历完所有的数据
    • 学习速率 α 的选取:衰减学习速率:一开始采用较大的学习速率,当误差曲线进入平台期后,减小学习速率做更精细的调整

6、随机梯度下降法的加速

问题一:随机梯度下降法失效的原因——摸着石头下山

(经典)批量梯度下降法:在全部训练集上计算准确的梯度 (相当于正常下山)

  • 第 7 章 优化算法 - 图18,其中 第 7 章 优化算法 - 图19 为正则化项
  • 每一步都把整个训练集载入进来进行计算,以获得准确的梯度,但代价是时间花费和内存开销都非常大,无法应用于大数据集、大模型的changjing

随机梯度下降法:采样单个样本估计当前的梯度 (相当于蒙着眼睛下山)

  • 第 7 章 优化算法 - 图20
  • 每步仅随机采样一个 or 少量样本来估计当前梯度,使得计算速度快、内存开销小,但放弃了对梯度准确性的追求
  • 每步接受的信息量有限,随机梯度下降法对梯度的估计常常出现偏差,造成目标函数曲线收敛得很不稳定,伴有剧烈波动,有时甚至出现不收敛的情况
  • 对随机梯度下降法来说,可怕的不是局部最优点,而是山谷和鞍点两类地形
    • 山谷:准确的梯度方向是沿山道下降,但随机梯度下降可能使得其在两山壁间来回反弹震荡
    • 鞍点:在梯度几乎为零的区域,随机梯度下降法无法准确察觉出梯度的微小变化,出现停滞

问题二:解决之道——惯性保持和环境感知

随机梯度下降法的参数迭代更新公式:第 7 章 优化算法 - 图21

  • 第 7 章 优化算法 - 图22 是梯度,第 7 章 优化算法 - 图23 是更新时步子的方向,第 7 章 优化算法 - 图24 是学习速率,用于控制步幅

动量(Momentum)方法:利用历史信息

  • 参数的更新公式:第 7 章 优化算法 - 图25
  • 第 7 章 优化算法 - 图26带衰减的前一次步伐,惯性就体现在对前一次步伐信息的重利用上
  • 动量方法的收敛速度更快,收敛曲线也更稳定

AdaGrad 方法:利用环境信息

  • 参数向量 第 7 章 优化算法 - 图27 的第 i 个参数的更新公式:第 7 章 优化算法 - 图28
  • 采用“历史梯度平方和”(分母中的和)来衡量不同参数的梯度的稀疏性,取值越小表明越稀疏
    • 希望更新频率低(梯度稀疏)的参数有较大的更新步伐
    • 希望更新频率高(梯度不稀疏)的参数的更新步伐可以减小
  • 同时分母中求和的形式实现了退火过程,随着时间推移,学习率越来越小,保证了算法的最终收敛

Adam 方法

  • 参数更新公式:第 7 章 优化算法 - 图29
    • 第 7 章 优化算法 - 图30
    • 一阶矩 第 7 章 优化算法 - 图31
    • 二阶矩 第 7 章 优化算法 - 图32
  • 相当于 Momentum + AdaGrad

AdaDelta 和 RMSProp

  • 是对 AdaGrad 的改进,采用指数衰退平均的计算方法,用过往梯度的均值代替它们的求和,避免学习率衰减过快

7、L1 正则化与稀疏性

为什么希望模型参数具有稀疏性?

  • 稀疏性就是模型的很多参数是 0,相当于对模型进行了一次特征选择,只留下一些比较重要的特征,提高模型的泛化能力,降低过拟合的可能
  • 如果没有稀疏性,大规模的模型要在线上实现毫秒级的响应,几乎是不可能的

正则化项严格的数学形式:第 7 章 优化算法 - 图33

  • λ 是正则化系数,λ 越大,正则化的限制越强
  • 后面部分就是模型权重的 q 次方之和
  • q 取 1 就是 L1 正则化,q 取 2 就是 L2 正则化

问题一:L1 正则化使模型参数具有稀疏性的原理是什么?

角度一:解空间形状

“带正则项”和“带约束条件”是等价的,相当于为最优化问题加上一个约束。加入正则项就是定义了一个解空间约束:

  • L2 正则化相当于为参数定义了一个圆形的解空间
  • L1 正则化相当于为参数定义了一个棱形的解空间

如果原问题目标函数的最优解不是恰好落在解空间内,那么约束条件下的最优解一定是在解空间的边界上,而 L1 “棱角分明”的解空间更容易与目标函数等高线的角点碰撞,从而产生稀疏解
image.png

角度二:函数叠加

仅考虑一维的情况,多维的情况类似:

  • 原目标函数/损失函数:第 7 章 优化算法 - 图35,最小值点在蓝点处,对应的 第 7 章 优化算法 - 图36 值非零
  • 加上 L2 正则化项的目标函数 第 7 章 优化算法 - 图37,最小值点在黄点处,对应的 第 7 章 优化算法 - 图38 值非零
    • L2 正则项在原点处的导数是 0,只要原目标函数在原点处的导数不为 0,那么最小值点就不会在原点,因此 L2 正则化只有减小 w 绝对值的作用,对解空间的稀疏性没有贡献
  • 加上 L1 正则化项的目标函数 第 7 章 优化算法 - 图39最小值点在红点处,对应的 第 7 章 优化算法 - 图40 值是零,产生了稀疏性
    • 对目标函数求导,正则项部分产生的导数在原点左边部分是 -C,在远点右边部分是 C,因此,只要原目标函数的导数绝对值小于 C,那么带 L1 正则化项的目标函数在原点左边部分始终是递减的,在原点右边部分始终是递增的,最小值点自然在原点处

image.png

角度三:贝叶斯先验

  • L1 正则化相当于对模型参数 w 引入了拉普拉斯先验,拉普拉斯先验使参数为 0 的可能性更大(在 0 点处是一个尖峰)
  • L2 正则化相当于对模型参数 w 引入了高斯先验(在 0 点处是平滑的)

image.png