机器学习(李宏毅)lecture02学习笔记(Gradient Descent)

Gradient Descent

优化问题

θ=argminθL(θ)\theta^*=argmin_{\theta}L(\theta)
L:L:Loss Function
θ:\theta:参数

θ0:\theta^0:随机设定
θ0=[θ1,θ2,...,θn]T\theta^0=[\theta_1,\theta_2,...,\theta_n]^T

L(θ)=[L(θ1)θ1,L(θ2)θ2,...,L(θn)θn]T{\nabla}L(\theta)=[\frac{{\partial}L(\theta_1)}{\partial\theta_1},\frac{{\partial}L(\theta_2)}{\partial\theta_2},...,\frac{{\partial}L(\theta_n)}{\partial\theta_n}]^T

θi=θi1ηL(θi1)\theta^i=\theta^{i-1}-\eta{\nabla}L(\theta^{i-1})

η:\eta:学习率

调整学习率

1.要画Loss下降图。
机器学习(李宏毅)lecture02学习笔记(Gradient Descent)
2.自动调学习率的方法

Adagrad算法:
一开始,比较大;后面减小;每个不同的参数给不同的学习率。

w1=w0η0σ0g0w^1=w^0-\frac{\eta_0}{\sigma^0}g^0
σ0=(g0)2\sigma^0=\sqrt{(g^0)^2}
w2=w1η1σ1g1w^2=w^1-\frac{\eta_1}{\sigma^1}g^1
σ1=12[(g0)2+(g1)2]\sigma^1=\sqrt{\frac{1}{2}[(g^0)^2+(g^1)^2]}
......
wt+1=wtηtσtgtw^{t+1}=w^t-\frac{\eta_t}{\sigma^t}g^t
σt=1t+1i=0t(gi)2\sigma^t=\sqrt{\frac{1}{t+1}\sum^t_{i=0}(g^i)^2}

ηt=ηt+1\eta^t=\frac{\eta}{\sqrt{t+1}},则:
wt+1=wtηi=0t(gi)2gtw^{t+1}=w^t-\frac{\eta}{\sqrt{\sum^t_{i=0}(g^i)^2}}g^t

Stochastic Gradient Descent(随机梯度下降):

普通梯度下降:
L=n(y^n(b+wixin))2L=\sum_n({\widehat{y}}^n-(b+\sum{w_ix_i^n}))^2
θi=θi1ηL(θi1)\theta^i=\theta^{i-1}-\eta{\nabla}L(\theta^{i-1})
随机梯度下降:
随机选一个样本xnx^n,每个样本都更新一次参数
Ln=n(y^n(b+wixin))2L^n=\sum_n({\widehat{y}}^n-(b+\sum{w_ix_i^n}))^2
LnL^n:对一个样本的Loss。
θi=θi1ηLn(θi1)\theta^i=\theta^{i-1}-\eta{\nabla}L^n(\theta^{i-1})

Feature Scaling(特征缩放)

将不同的feature的scale调到差不多。
机器学习(李宏毅)lecture02学习笔记(Gradient Descent)
原因:做参数更新时效率较高。

问题:

(1)局部最小值。
(2)鞍点。
(3)在高原地区比较慢。

Demo:

https://blog.****.net/Xiao_yanling/article/details/89300638