梯度下降法复杂度计算与公式推导

梯度下降法复杂度计算与公式推导

如何梯度下降法的复杂度

  1. 通过自己的数据进行实际代码运行测试,看看时间性能如何。但是这样子不能直观看出类似于:quick sort(nlogn)这样的复杂度
  2. 通过公式进行复杂度评估

Gradient Descent Algorithm

  1. 初始化 x 0 ∈ R d x_0\in R^d x0Rd 和步长 (step_size) η t \eta_t ηt>0
  2. for i = 1, 2, 3, …:
    x i + 1 x_{i+1} xi+1= x i x_i xi - η t ∇ \eta_t\nabla ηtf( x i x_i xi)

convergence Analysis of Grandient Descent

(梯度下降法的收敛分析)

1. 定理

       假设满足L- Lipschitz 条件(即是平滑函数i.e.LR等), 并且是凸函数, 设定 x ∗ = a r g m i n f ( x ) x^* = argmin f(x) x=argminf(x)(即我们最后想得到的最优解), 步长 η t ≤ 1 L \eta_t\leq\frac{1}{L} ηtL1(L 即是一个常数), 即满足:
                                                                              (1.1) f ( x k ) ≤ f ( x ∗ ) + ∣ ∣ x 0 − x ∗ ∣ ∣ 2 2 2 η K f(x_k)\leq f(x_*) + \frac{||x_0 - x_*||_2^2}{2\eta K}\tag{1.1} f(xk)f(x)+2ηKx0x22(1.1)
       当我们迭代 k = L ∣ ∣ x 0 − x ∗ ∣ ∣ 2 2 ε k = \frac{L||x_0 - x_*||_2^2}{\varepsilon} k=εLx0x22 , 就能保证收敛到保证 ε \varepsilon ε - approximation optional value x ( η t = 1 L ) x(\eta_t = \frac{1}{L}) x(ηt=L1)
       其中 x k x_k xk是程序第K次迭代的x的值,即在程序运行中我们希望我们的 f ( x k ) f(x_k) f(xk) 慢慢接近于 f ( x ∗ ) f(x_*) f(x), 即 ∣ ∣ x 0 − x ∗ ∣ ∣ 2 2 2 η K \frac{||x_0 - x_*||_2^2}{2\eta K} 2ηKx0x22越来越小, 此时判断GD执行K值收敛的 ε \varepsilon ε即可知复杂度有多少。
即,将 k = L ∣ ∣ x 0 − x ∗ ∣ ∣ 2 2 ε k = \frac{L||x_0 - x_*||_2^2}{\varepsilon} k=εLx0x22 η t ≤ 1 L \eta_t\leq\frac{1}{L} ηtL1带入(1.1):
∣ ∣ x 0 − x ∗ ∣ ∣ 2 2 2 η t L ∣ ∣ x 0 − x ∗ ∣ ∣ 2 2 ε = ε 2 η t L = ε 2 \frac{||x_0 - x_*||_2^2}{2\eta_t \frac{L||x_0 - x_*||_2^2}{\varepsilon}} = \frac{\varepsilon}{2\eta_t L} = \frac{\varepsilon}{2} 2ηtεLx0x22x0x22=2ηtLε=2ε

(1.2) ∴ f ( x k ) ≤ f ( x ∗ ) + ε 2 = f ( x ∗ ) + O ( ε ) \therefore f(x_k) \leq f(x^*) + \frac{\varepsilon}{2} = f(x^*) + O(\varepsilon) \tag{1.2} f(xk)f(x)+2ε=f(x)+O(ε)(1.2)

2. 公式求导

2.1 凸函数性质:
定义:若 f ( x ) f(x) f(x) 是凸函数(convexity)则任意的 x , y ∈ R d , 0 ≤ λ ≤ 1 x,y\in R^d, 0\leq\lambda\leq1 x,yRd,0λ1
(2.1) f ( λ x + ( 1 − λ ) y ) ≤ λ f ( x ) + ( 1 − λ ) f ( x ) f(\lambda x + (1-\lambda)y)\leq\lambda f(x) +(1-\lambda)f(x) \tag{2.1} f(λx+(1λ)y)λf(x)+(1λ)f(x)(2.1)
(2.2 . first order convexity) f ( x ) + ∇ f ( x ) ( y − x ) ≤ f ( y ) f(x) + \nabla f(x)(y-x) \leq f(y) \tag{2.2 . first order convexity} f(x)+f(x)(yx)f(y)(2.2 . first order convexity)

2.1 L- Lipschitz2条件以及定理(给定的第二个定理):
一个光滑函数(smooth function)f 满足 L- Lipschitz条件, 则对于任意 x , y ∈ R d , 即 有 x,y\in R^d, 即有 x,yRd,
(Claim 1) ∣ ∣ ∇ f ( x ) − ∇ f ( y ) ∣ ∣ ≤ L ∣ ∣ x − y ∣ ∣ ||\nabla f(x) - \nabla f(y)|| \leq L|| x-y|| \tag{Claim 1} f(x)f(y)Lxy(Claim 1)

证明Claim 1 , 举例linear regression, loss = 1 n ∣ ∣ X m − y ∣ ∣ 2 , X m 是 矩 阵 形 式 \frac{1}{n}||X_m-y||^2,X_m是矩阵形式 n1Xmy2,Xm

2.3 L- Lipschitz3条件以及定理(给定的第三个定理)
假设一个函数满足L-Lipschitz 条件, 并且是凸函数,对于任意的$x,y\in R^d, 我们有:
(2.3) f ( y ) ≤ f ( x ) + ∇ f ( x ) ( y − x ) + L 2 ∣ ∣ y − x ∣ ∣ 2 f(y)\leq f(x)+ \nabla f(x)(y-x) +\frac{L}{2} ||y-x||^2 \tag{2.3} f(y)f(x)+f(x)(yx)+2Lyx2(2.3)

回顾积分性质:
已知: h ( x ) : h ( 1 ) = h ( 0 ) + ∫ 0 1 h ( τ ) ˙ d τ h(x): h(1)= h(0) + \int_0^1\dot{h(\tau)}d\tau h(x):h(1)=h(0)+01h(τ)˙dτ
定义: h ( τ ) = f ( x + τ ( y − x ) ) h(\tau)=f(x + \tau(y-x)) h(τ)=f(x+τ(yx))
所以: h ( 1 ) = f ( y ) , h ( 0 ) = f ( x ) h(1)=f(y), h(0)=f(x) h(1)=f(y),h(0)=f(x)
(2.4) f ( y ) = f ( x ) + ∫ 0 1 ∇ f ( x + τ ( y − x ) ) ( y − x ) d τ f(y)=f(x)+\int_0^1\nabla f(x+\tau(y-x))(y-x)d\tau \tag{2.4} f(y)=f(x)+01f(x+τ(yx))(yx)dτ(2.4)

定理3 的证明:

根据上面推导的公式,证明定理1:

你可能感兴趣的:(梯度下降,人工智能)