Gradient Descent
找一个最好的function,需要解决一个Optimization Problem.
随机地选取一个起始点
如何update参数呢?
θ1=θ0−learningRate∇θ0;
此时我们获得了θ1的位置,这是一个新的位置,此时,我们再获取∇θ1,即获取了我们要走的方向,继续走下去。
即梯度是我们要走的方向,走下去。
Gradient Descent Tips
对于learning rate调整,即learning rate不能太大,也不能太小。
你可以visualize:每次参数变化时update的情形。
Adaptive Learning Rates.
在我们离local minimum比较远之前,步伐大;离得近,步伐小。
ηt=η/√t+1;
随着 t的增大,η变小,learning rate变小。
t是epochs的次数,是你update的次数
- 当然,对learning rate的设置,要因模型施教。
Adaptive Learning Rate:Adagrad
Divide the learning rate of each parameter by the root mean square of its previous derivatives.
过去算过的所有微分值的root mean square.√(gt)2
即每个参数都有不同的learning rate:
wt+1←wt−ηtgt;
这里ηt=η/√t+1;gt=\partC(θt)\partw,
For the Adagrad Situations:
wt+1←wt−ηtσtgt;
这里,σt是前一个参数w的平方根
For specific applications:
假设初识值是w0;那么w1←w0−η0σ0g0
即此时我们获得了w1,故w2←w1−η1σ1g1
σ1=√(g0)2
σ1=√12(g0)2+(g1)2
注意Root mean Square的定义。
wt+1←wt−η√∑ti=0(gi)2gt
直接相当于用这样的一个式子去代替去计算。
Time Decay
Adagrad 的分母是gradient的计算情况。
不增加任何运算的情况下去估计二次微分。
Stochastic Gradient Descent
先有Loss Function的表达式
而Loss Function的表达式就与你选取的模型具体有关。
再有GradientDescent
我们故去在计算Gradient Descent的时候,是对所有样本的loss进行求和统计,
如今我们使用随机梯度下降,我们只需要考虑,Loss for only one example.
梯度下降对比随机梯度下降
梯度下降是看完20个example以后update一次参数,随机梯度下降是看到一个example就update一次参数,所以要快20倍。
Feature Scaling
y=b+w1x1+w2x2
有两个feature .
让不同的feature有相同的scale。
没有scale的话,update参数就变难了。
如何做Feature Scaling?
For each dimention i,即每个component.
计算它的平均值和标准差。
对第r个example的第i个componet进行feature scaling:(真的很像正态分布时候的feature scaling)
xri←xri−miσi
为什么Gradient Descent会work?
当有很接近的时候,我们就可以把高次项删掉。

当这个蓝色的与(u,v)反向的时候,即越接近红色的圈圈的边缘的时候,此时我们有Loss function越小。
初始值的偏微分排成vector
应用前提是泰勒级数给的估计足够精确,当red circle够小时,泰勒级数的估计才足够精确。
而这里red circle就是learning rate
考虑到二次式:牛顿法。
梯度下降的限制
梯度下降有可能会让我们stuck在local minimum/saddle point。