Steepest Gradient Descent:
- constant step size : \(\tau = c\) 固定梯度大小
- Diminishing step size: \(\tau = c/k\) 每次迭代后,梯度都减小
- Exact line search \(\tau = \arg \mathop{\min}\limits_{\alpha} f(x^{k} + \alpha d)\)
- Inexact line search \(\tau \in { \alpha | f(x^{k}) - f(x^{k} + \alpha d) \geq -c \cdot \alpha d^{T} \bigtriangledown f(x^{k}) }\)
Inexact line search:
Newton's Method:
用泰勒展开到Hessian矩阵,这是一个二次型函数,最低点位置就是下次迭代的点。
问题:
- 需要计算Hessian的逆
- Hessian一定是正定的,如果是半正定的,会有奇异值是有零的,没法求逆。如果是不定的,那有可能会往增大的方向迭代
- 原函数、一阶导和二阶导都要是连续的
Practical Newton's Method:修正阻尼牛顿法,为了解决牛顿法非凸函数的不稳定性
- 寻找一个严格正定的M,去接近Hessian矩阵
- 求d的时候,可以用dM = f(x),线性求解出d。
- 不需要求解Hessian矩阵
怎么求M:
- 那Hessian一定是正定的。选择 M = Hessian + 很小的I矩阵
- \([\bigtriangledown ^{2} f(x)]d = - \bigtriangledown f(x)\)
- \(Md = - \bigtriangledown f(x), M = LL^{T}\), 用Cholesky分解将M分解为上三角和下三角的形式,可以很快的将d求解出来
- \(Md = - \bigtriangledown f(x), M = LBL^{T}\) B是一个对角矩阵
- B可以由b1,b2,b3...构成; b可能由一个常数(正的)或\(R^{2*2}\)的矩阵,这个矩阵一定有2个特征值,一正一负。
- Bunch-Kaufman Factorization
Quasi Newton's Method:拟牛顿法,省去Hession逆矩阵求解,仍然需要函数是凸的
思路依然是找一个M矩阵去贴近Hession矩阵\(\triangle x = x^{k+1} - x^{k}\)\(\triangle g = \bigtriangledown f(x^{k+1}) - \bigtriangledown f (x^{k})\)
构建公式:\(\triangle g \approx M^{k+1} \triangle x\)\(\triangle x \approx B^{k+1} \triangle g, M^{K+1} B^{k+1} = I\)
怎么挑选B