Gradient Descent
优化问题
θ∗=argminθL(θ)
L:Loss Function
θ:参数
θ0:随机设定
θ0=[θ1,θ2,...,θn]T
∇L(θ)=[∂θ1∂L(θ1),∂θ2∂L(θ2),...,∂θn∂L(θn)]T
θi=θi−1−η∇L(θi−1)
η:学习率
调整学习率
1.要画Loss下降图。
2.自动调学习率的方法
Adagrad算法:
一开始,比较大;后面减小;每个不同的参数给不同的学习率。
w1=w0−σ0η0g0
σ0=(g0)2
w2=w1−σ1η1g1
σ1=21[(g0)2+(g1)2]
...
wt+1=wt−σtηtgt
σt=t+11∑i=0t(gi)2
令ηt=t+1η,则:
wt+1=wt−∑i=0t(gi)2ηgt
Stochastic Gradient Descent(随机梯度下降):
普通梯度下降:
L=n∑(yn−(b+∑wixin))2
θi=θi−1−η∇L(θi−1)
随机梯度下降:
随机选一个样本xn,每个样本都更新一次参数
Ln=n∑(yn−(b+∑wixin))2
Ln:对一个样本的Loss。
θi=θi−1−η∇Ln(θi−1)
Feature Scaling(特征缩放)
将不同的feature的scale调到差不多。
原因:做参数更新时效率较高。
问题:
(1)局部最小值。
(2)鞍点。
(3)在高原地区比较慢。
Demo:
https://blog.****.net/Xiao_yanling/article/details/89300638