NLP学习笔记28:梯度下降梯度时间复杂度计算与收敛性推导

一 序

  本篇属于贪心NLP训练营学习笔记。

二 逻辑回顾的梯度下降法

逻辑回顾的目标函数:

w,b= argmin_{w,b}-\sum _{i=1}^{n}y_ilogp(y_i=1|x,w)^y^i+(1-y_i)log[1-p(y_i=1|x,w)]

 

w^{t+1}=w^t-\eta \sum_{i=1}^n[\sigma(w^Tx_i+b)-y_i]x_i

b^{t+1}=b^t-\eta \sum_{i=1}^n[\sigma(w^Tx_i+b)-y_i]

推导过程:NLP学习笔记21-逻辑回归2:决策边界,目标函数,凸函数,梯度下降  梯度下降法结果的解释

时间复杂度Gradient Descent Algorithm

   这个很难直接给出时间复杂度。梯度下降法是一个迭代的过程,受到初始值。步长等因素影响。

三 Convergence Analysis of Gradient Descent 梯度下降法的收敛分析

1. 定理

  假设函数f(x)满足L- Lipschitz 条件(即是平滑函数,LR符合), 并且是凸函数, 设定x^* = argmin f(x)
(我们最后想得到的最优解), 步长\eta_t\leq\frac{1}{L} (L 即是一个常数), 即满足:

 

f(x_k)\leq f(x^*)+\frac{||x_0-x^* ||_2^2 }{2\eta _tk}

当我们迭代 k = \frac{L||x_0 - x_*||_2^2}{\varepsilon }次之后我们可以保证得到

\varepsilon - approximation \ optional \ value x(\eta_t = \frac{1}{L})

注意:

条件 1:Lipschiyz条件要比连续的条件要强。称一个函数是Lipschitz的, 要求该函数是连续的且其斜率要是有限的
条件2: 凸函数

f(x_k) 表示的是第k次迭代后x的值。即在程序运行中我们希望通过学习使得f(x_k) 慢慢接近于f(x^*),即\frac{||x_0-x^* ||_2^2 }{2\eta _tk}作为误差越来越小(这项是分析梯度下降法的核心,变化的越快,接近的越快)

A算法:f(x_{10})\leq f(x^*)+0.1 \\f(x_{20})\leq f(x^*)+0.01

B 算法:f(x_{10})\leq f(x^*)+0.1 \\f(x_{20})\leq f(x^*)+0.0001

那么就是B算法下降更快。

2凸函数性质以及 L- Lipschitz 条件

f(x_k)\leq f(x^*)+\frac{||x_0-x^* ||_2^2 }{2\eta _tk}  式子1

把    k = \frac{L||x_0 - x_*||_2^2}{\varepsilon }  ,\eta_t\leq\frac{1}{L}  代入式子1

\frac{||x_0-x^* ||_2^2 }{2\eta _tk}= \frac{||x_0-x^* ||_2^2 }{ 2 \frac{1}{L} . \frac{ L||x_0-x^* ||_2^2}{ \varepsilon } }= \frac{\varepsilon }{2} 

==>f(x_k)\leq f(x^*)+\frac{ \varepsilon }{2}  也可写作:f(x_k)\leq f(x^*)+\O( \varepsilon )  

3. 公式求导

先回顾下凸函数定义及性质:若f(x) 是凸函数(convexity)则任意的x,y \in R^d, 0\leqslant \lambda \leq 1

f(\lambda x+(1-\lambda)y) \leq \lambda f(x)+(1-\lambda )f(x)   式子3.1

f(x)+ \nabla f(x)(y-x)\leq f(y)    first order convexity

L- Lipschitz条件以及定理(第二个定理)

一个光滑函数(smooth function)f 满足 L- Lipschitz条件, 则对于任意x,y \in R^d

||\nabla f(x)- \nabla f(y)||\leq L||x-y||       (Claim 1)

上面L是常数, 证明Claim 1 , 举例linear regression,

L = \frac{1}{n} ||X_w-y ||^2  其中X是训练数据,w才是变量参数

||\nabla f(x)- \nabla f(y)||= || \nabla f(w_1)- \nablaf(w_2) ||

==>\frac{1}{n} || 2X^T(xw_1-y )-2X^T(xw_2-y ) ||

==>\frac{2}{n} || X^Txw_1-X^Ty -X^Txw_2+X^Ty ) ||

==>\frac{2}{n} || X^Tx(w_1 -w_2 ) ||

==>\frac{2}{n} \underbrace{|| X^Tx||}_L ||(w_1 -w_2 ) ||  其中x是训练数据,是已知的,所以看做常数项L。

L- Lipschitz3条件以及定理(给定的第三个定理)

假设一个函数满足L-Lipschitz 条件, 并且是凸函数,对于任意的x,y\in R^d,我们有:

f(y) \leq f(x)+\nabla f(x)(y-x)+ \frac{L}{2}||y-x|| ^2

 已知:h(x): h(1)= h(0) + \int_0^1 {h(\tau)}d\tau (积分函数的性质,都忘了还没看)

定义函数h(\tau)=f(x + \tau(y-x))

所以:h(1)=f(y), h(0)=f(x)  代入到上面的积分函数性质式子。

f(y)=f(x)+\int_0^1\nabla f(x+\tau(y-x))(y-x)d\tau

=f(x)+ \nabla f(x)(y-x)+\int_0^1\nabla f(x+\tau(y-x))-\nabla f(x) )(y-x)d\tau

\leq f(x)+ \nabla f(x)(y-x)+\int_0^1 L|| \tau(y-x)||\ ||y-x||d\tau  利用定理2,后面(y-x) \leq ||y-x||

=\leq f(x)+ \nabla f(x)(y-x)+\frac{L}{2} || (y-x)||^2     利用\int _0^1 d\tau =\frac{1}{2}

现在根据上面用f(x_{i+1}),f(x_i)来证明定理

f(x_{i+1}) \leq f(x_i)+\nabla f(x_i)(x_{i+1}-x_i)+\frac{L}{2}|| x_{i+1}-x_i||^2

=f(x_i)+\nabla f(x_i) (x_i-\eta _t \nabla f(x_i) -x_i)+\frac{L}{2}|| x_i- \eta _t \nabla f(x_i) -x_i||^2  (利用李梯度下降法: x_i+1=x_i-\eta \nabla f(x_i))

=f(x_i)+\nabla f(x_i) (-\eta _t \nabla f(x_i) )+\frac{L}{2}|| \eta _t \nabla f(x_i) ||^2

=f(x_i)-\eta _t \nabla f(x_i)^2 +\frac{L \eta _t^2}{2}|| \nabla f(x_i) ||^2

=f(x_i)-\eta _t ( 1-\frac{L \eta _t}{2}) || \nabla f(x_i) ||^2  (利用 \eta _t \leq \frac{1}{L}

\leq f(x_i)- \frac{ \eta _t}{2} || \nabla f(x_i) ||^2

Derivation

f(x_{i+1}) \leq f(x_i)- \frac{ \eta _t}{2} || \nabla f(x_i) ||^2

=f(x^*)+\nabla f(x_i)(x_i- x^*)- \frac{ \eta _t}{2} || \nabla f(x_i) ||^2  (前面 f(x_i)利用First Order Convexity )

=f(x^*)+ \frac{x_i-x_{i+1} }{\eta _t}(x_i-x^*) -\frac{\eta _t }{2}. \frac{ || x_i-x_{i+1}||^2}{\eta _t^2}  (利用x_{i+1}= x_i-\eta _t \nabla f(x_i))

=f(x^*)+ \frac{x_i-x_{i+1} }{\eta _t}(x_i-x^*) -\frac{ || x_i-x_{i+1}||^2 }{2\eta _t}

=f(x^*)+\frac{1}{2\eta _t}||x_i-x^*||^2-\frac{1}{2\eta _t}(( x_i-x^*)^2-2\eta _t \nabla f(x_i)(x_i-x^*)+ ||\eta _t \nabla f(x_i)||^2)  (这个式子展开后就是上面,只是变换了形式)

=f(x^*)+\frac{1}{2\eta _t}||x_i-x^*||^2-\frac{1}{2\eta _t}|| x_i-x^* -\eta _t\nabla f(x_i)||^2

=f(x^*)+\frac{1}{2\eta _t} ( ||x_i-x^*||^2- || x_{i+1}-x^*||^2)  (利用x_{i+1}= x_i-\eta _t \nabla f(x_i))

==>f(x_{i+1})-f(x^*) =\frac{1}{2\eta _t} ( ||x_i-x^*||^2- || x_{i+1}-x^*||^2)

从i=0,开始,代入数据。

f(x_1)-f(x^*) \leq \frac{1}{2 \eta _t} (||x_0-x^* ||^2- ||x_1-x^* ||^2)

f(x_2)-f(x^*) \leq \frac{1}{2 \eta _t} (||x_1-x^* ||^2- ||x_2-x^* ||^2)

...

f(x_k)-f(x^*) \leq \frac{1}{2 \eta _t} (||x_{k-1}-x^* ||^2- ||x_k-x^* ||^2)

相加之后,右侧绝大多数都被消掉了。

\sum_{i=1}^{k} f(x_i) -kf(x^*) \leq \frac{1}{2\eta _t} ( ||x_0-x^*||^2- || x_k-x^*||^2)

\sum_{i=1}^{k} f(x_i) -kf(x^*) \leq \frac{1}{2\eta _t} ||x_0-x^*||^2   (直接丢掉最后一项,也成立)

注意,在梯度下降之下才成立,否则不成立,尤其是随机梯度下降

f(x_{i+1}) \leq f(x_i) - \frac{\eta_t}{2 }|| \nabla f(x_i)||^2   因为\frac{\eta_t}{2 }|| \nabla f(x_i)||^2>0

==> f(x_{i+1}) \leq f(x_i)   从梯度下降法来看,每一步更新后的值要优于更新前的值。

因此我们可以得到:

f(x_k) \leq f(x_{k-1}) \leq f(x_{k-2})...\leq f(x_0)==> k \ f(x_k) \leq \sum_{i=1}^{k} f(x_i)

结合上面,

k \ f(x_k) - kf(x^*) \leq \sum_{i=1}^{k} f(x_i) - kf(x^*) \leq \frac{1}{2\eta _t } ||x_0-x^*||^2

==>f(x_k)-f(x^*) \leq \frac{1}{2\eta _tk} ||x_0-x^*||^2

证明完成,上面这个式子移项后就是定理。

 

 

 

 

 

 

 


 

 

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值