Machine Learning
  • Introduction
  • man
  • Linear model
    • Linear Regression
    • Generalized Linear Models
    • Nonlinear regression
  • bayes
    • bayesian network
    • Variational Bayesian inference
    • Gaussian Process Regression
  • Logistic Regression
    • L1 regularization
    • L2 regularization
    • softmax
    • Overflow and Underflow
  • SVM
    • C-SVM
    • C-SVM求解
  • EM
    • GMM
  • Maximum Entropy
    • IIS
  • HMM
    • viterbi algorithm
  • CRF
  • Random Forest
    • bagging
    • random forest
  • boosting
    • catboost
    • gradient boosting
    • Newton Boosting
    • online boosting
    • gcForest
    • Mixture models
    • XGBoost
    • lightGBM
    • SecureBoost
  • LDA
  • rank
    • RankNet
    • LambdaRank
    • SimRank
  • Factorization Machine
    • Field-aware Factorization Machine
    • xdeepFM
  • Clustering
    • BIRCH
    • Deep Embedding Clustering
  • Kalman filtering
  • word2vec
  • 关联规则挖掘
  • MATH-Mathematical Analysis
    • measure
  • MATH-probability
    • Variational Inference
    • Dirichlet分布
    • Gibbs Sampling
    • Maximum entropy probability distribution
    • Conjugate prior
    • Gaussian Process
    • Markov process
    • Poisson process
    • measure
    • Gumbel
  • MATH-Linear Algebra
    • SVD
    • SVD-推荐
    • PCA
    • Linear Discriminant Analysis
    • Nonnegative Matrix Factorization
  • MATH-Convex optimization
    • 梯度下降
    • 随机梯度下降
    • 牛顿法
    • L-BFGS
    • 最速下降法
    • 坐标下降法
    • OWL-QN
    • 对偶问题
    • 障碍函数法
    • 原对偶内点法
    • ISTA
    • ADMM
    • SAG
  • MATH-碎碎念
    • cost function
    • Learning Theory
    • sampling
    • Entropy
    • variational inference
    • basis function
    • Diffie–Hellman key exchange
    • wavelet transform
    • 图
    • Portfolio
    • 凯利公式
  • ML碎碎念
    • 特征
    • test
    • TF-IDF
    • population stability index
    • Shapley Values
  • 课件
    • xgboost算法演进
  • Time Series
  • PID
  • graph
    • SimRank
    • community detection
    • FRAUDAR
    • Anti-Trust Rank
    • Struc2Vec
    • graph theory
    • GNN
  • Anomaly Detection
    • Isolation Forest
    • Time Series
  • Dimensionality Reduction
    • Deep Embedded Clustering
  • Federated Learning
  • automl
  • Look-alike
  • KNN
  • causal inference
Powered by GitBook
On this page
  • 梯度下降
  • line search
  • wolfe条件
  • 收敛性分析
  • 参考佳文

Was this helpful?

  1. MATH-Convex optimization

梯度下降

PreviousMATH-Convex optimizationNext随机梯度下降

Last updated 5 years ago

Was this helpful?

梯度与方向导数

方向导数,注意并不只是沿着坐标轴方向,而是任意方向上求导。

上升最快的方向导数,即是梯度。

梯度下降

求最小值时的解,很难直接写出解析解,改用沿着下降方向的前进,找到最小值。有几点:

  • 下降方向:比如负梯度,牛顿方向

  • 停止条件:函数值变化很小,梯度趋近于0, 设置最大迭代次数

  • 前进的步长

梯度下降选的就是负梯度方向,就是下降充要条件:∇f(xk)Tdk≤0\nabla f(x^k)^T d^k \le 0∇f(xk)Tdk≤0 选L2范数时,这个值最小。若选L1范数,则方向是梯度最大分量的反方向,就是最速下降法。

过程: 1. 设置初始步长t>0t \gt 0t>0,容许度0<α<10 \lt \alpha \lt 10<α<1,折半因子0<β<10 \lt \beta \lt 10<β<1 ,尝试次数k=1k=1k=1,最大尝试次数kmaxk_{max}kmax​, 2. 获取搜索方向d,这里可以为负梯度,牛顿方向 3. 尝试wnew←w+td;k←k+1w^{new} \leftarrow w + td ; k \leftarrow k+1wnew←w+td;k←k+1,计算L(wnew)L(w^{new})L(wnew) 4. 如果L(w)−L(wnew)<t∗α∣<d,∇L(w)>∣L(w) - L(w^{new}) \lt t*\alpha |<d,\nabla L(w)>|L(w)−L(wnew)<t∗α∣<d,∇L(w)>∣ 或者k≥kmaxk \ge k_{max}k≥kmax​,跳出,返回wnew,L(wnew)w^{new},L(w^{new})wnew,L(wnew) ;否则,减小步长:t←βtt \leftarrow \beta tt←βt跳到3.

line search

line search可以用来搜索任何下降方向的可行步长。 f(xk+tkdk)=min⁡tf(xk+tdk)f(x^k + t^k d^k) = \min_t f(x^k + t d^k)f(xk+tkdk)=mint​f(xk+tdk) 有精确直线搜索和非精确直线搜索

证明:

min⁡tf(xk+tdk)dkT∇f(xk+tkdk)=0dkTdk+1=0\min_t f(x^k + td^k) \\ {d^k}^T \nabla f(x^k + t^k d^k) =0 \\ {d^k}^T d^{k+1}=0tmin​f(xk+tdk)dkT∇f(xk+tkdk)=0dkTdk+1=0

wolfe条件

  1. 直线搜索停止条件Armijo Condition: L(w+td)≤L(w)+α∗t∗∇L(w)TdL(w+td) \le L(w) + \alpha*t*\nabla L(w)^T dL(w+td)≤L(w)+α∗t∗∇L(w)Td

    函数值需要充分下降

  2. Curvature条件: ∇L(w+td)Td>η∇L(w)Td;0<α<η<1\nabla L(w+td)^T d \gt \eta \nabla L(w)^T d ; 0 \lt \alpha \lt \eta \lt 1∇L(w+td)Td>η∇L(w)Td;0<α<η<1

    函数下降的情况下步长尽可能的长

这两个条件合起来成为wolfe条件,可推导迭代优化的收敛性

缺点:收敛速度慢,需要迭代轮数过多

收敛性分析

∥∇f(x)∥2⩽ϵ\left \| \nabla f(x) \right \|_2 \leqslant \epsilon∥∇f(x)∥2​⩽ϵ 这是一般梯度下降的停止条件之一。

∣∣xk+1−x∣∣Q2≤(λn−λ1λn+λ1)2∣∣xk−x∣∣Q2||x_{k+1} - x||_Q^2 \le (\frac {\lambda_n - \lambda_1}{\lambda_n + \lambda_1})^2 ||x_k - x||_Q^2∣∣xk+1​−x∣∣Q2​≤(λn​+λ1​λn​−λ1​​)2∣∣xk​−x∣∣Q2​

梯度下降的数据由二次型矩阵的最大和最小特征值比值确定著作权归作者所有。这两个值越接近,收敛越快。特别的,若它们相等(意味着所有等高线都是正圆),一次迭代即可收敛。

所以,feature scaling会 使gradient descent的收敛更好。

feature scaling?减去均值,再除以标准差?

凸优化里面有探讨过这个问题, 具体证明可参考一般的凸优化课本. 想补充的一点是, 这也是Newton's method优于gradient descent的一个方面. Newton's method是affine invariant的, 就是收敛速度不受坐标系变换影响。

但是用adaptive gradient descent就没这个问题了。

参考佳文

注意精确直接搜索,新点处的梯度与搜索方向垂直。 ∇f(x(k+1))⊥∇f(x(k))\nabla f(x^{(k+1)}) \bot \nabla f(x^{(k)})∇f(x(k+1))⊥∇f(x(k)) 这也是为什么梯度下降会出现锯齿状。

如何直观形象的理解方向导数与梯度以及它们之间的关系
为什么feature scaling会 使gradient descent的收敛更好?
Gradient Descent, Wolfe's Condition and Logistic Regression
The vanishing gradient problem
为什么梯度反方向是函数值下降最快的方向?