一 机器学习表示及数值求解原理
大部分机器学习,尤其是神经网络、深度网络,最优化一个经验损失函数(通常带有正则项),损失函数在某个样本点可表示为: L(β⃗ ,X(i)) L ( β → , X ( i ) ) ,在训练样本上的期望损失函数表示为 L(β⃗ )=1n∑ni=0L(β⃗ ,X(i)) L ( β → ) = 1 n ∑ i = 0 n L ( β → , X ( i ) ) 训练就是给定在样本上寻找期望损失函数 L(β⃗ ) L ( β → ) 全局最小值所在的参数 β⃗ β → 即:
通用的损失函数最优化的数值方法,来源于泰勒展开式,多元函数的泰勒展开式可表示为:
1.1 一阶逼近
一阶泰勒展开式为:
给定 β⃗ ,∥α⃗ ∥2=1,t>0 β → , ‖ α → ‖ 2 = 1 , t > 0 的条件下,忽略高阶项,在 α⃗ =s∇L(β⃗ ),s=∥∇⃗ L(β⃗ )∥−1 α → = s ∇ L ( β → ) , s = ‖ ∇ → L ( β → ) ‖ − 1 时,有最小值。
因此在一阶条件下,最速下降法参数迭代的数值更新公式为:
1.2 二阶逼近
可以对损失函数进行二阶展开,展开式可以表示为:
二阶条件下,给定 β⃗ ,∥α⃗ ∥2=1,t>0 β → , ‖ α → ‖ 2 = 1 , t > 0 的条件下, L(β⃗ +tα⃗ ) L ( β → + t α → ) 取得最小值的必要条件是:
此时 β⃗ β → 的更新参数是:
以上(1)(2)两式是数值求解损失函数的基本方法,不断迭代参数 β⃗ β → ,理想情况下每一步迭代都有 L(β⃗ (k+1))≤L(β⃗ (k)) L ( β → ( k + 1 ) ) ≤ L ( β → ( k ) ) ,反复迭代更新 β⃗ β → 得到 L(β⃗ ) L ( β → ) 的局部最小值,从而求得 β⃗ ∗ β → ∗ ,这就是最优化数值求解的基本思想。
迭代求解的过程,就是机器学习的训练过程,机器学习就是在给定模型和样本的情况下,求解参数 β⃗ ∗ β → ∗ .
二 一阶方法
所有一阶方法,都源于损失函数的一次泰勒逼近(线性逼近),主要是对(1)式的改造,重点是处理 ∇L(β⃗ ) ∇ L ( β → ) .
2.1 梯度下降法(GradDescend)
最基础的梯度下降法,参数更新方程就是(1)式。这一方法的弊端在机器学习 –超参数调优中很详细的讨论过了。还有一个问题,就是梯度下降法是锯齿状前进的。
假设上一步搜索的沿梯度方向 v⃗ t−1 v → t − 1 前进,并且在此方向上搜索到了参数 β⃗ t β → t , β