1、梯度下降的步骤
选择初始点,求偏微分,按梯度下降公式和学习率移动点。最终到达最低点。梯度也可以理解为等高线的法线方向,但是梯度下降取的是梯度的相反方向。
2、学习率的大小对算法的影响
学习率过大会在最低点附近震荡,甚至直接越过最低点,学习率太低,移动速度会很慢,要调整学习率,使得Loss function下降的最快
3、学习率的调整方法
1)随着参数的更新,学习率不断变小,并将参数的学习率分开计算。
一般的方法:
w
t
+
1
=
w
t
−
η
t
g
t
w^{t+1}=w^t-\eta^tg^t
wt+1=wt−ηtgt
η
t
=
η
t
+
1
\eta^t=\frac{\eta}{\sqrt{t+1}}
ηt=t+1η
g
t
=
∂
C
(
θ
t
)
∂
w
g^t=\frac{\partial C(\theta^t)}{\partial w}
gt=∂w∂C(θt)
Adagrad:
w
t
+
1
=
w
t
−
η
t
σ
t
g
t
w^{t+1}=w^t-\frac{\eta^t}{\sigma^t}g^t
wt+1=wt−σtηtgt
σ
t
\sigma^t
σt是参数w所有的
g
t
g^t
gt的均方根,化简得:
η
t
σ
t
=
η
∑
i
=
0
t
(
g
i
)
2
\frac{\eta^t}{\sigma^t}=\frac{\eta}{\sqrt{\sum_{i=0}^t (g^i)^2}}
σtηt=∑i=0t(gi)2η
Stochastic Gradient Descent:
步骤一:初始随机选择一个数据
步骤二:一般的递归下降,计算所有的训练数据的Loss后取和只走一步,而SGD计算时,每一轮每计算一个数据的Loss就走一步
L
n
=
y
^
n
−
(
b
+
∑
w
i
x
i
n
)
2
L^n=\hat{y}^n-(b+\sum w_ix_i^n)^{2}
Ln=y^n−(b+∑wixin)2
Fearure Scaling特征缩放:让不同的因素的分布基本相同,即变化速率基本相同。可以让下降的方向与等高线垂直
4、梯度下降的推导
根据泰勒级数的推导,因此学习率要足够小,才能保证泰勒级数成立,即使用一个一次函数代替半径为学习率的邻域内的函数。
5、梯度下降算法的能力限制
不容易看出当前是否接近极地点,因为可能某些地方斜率很小
其解不保证是全局最优解,梯度下降法的速度也未必是最快的。
此时
μ
1
,
μ
2
\mu_1,\mu_2
μ1,μ2的计算方法依旧是取均值,但Σ的计算方式略有不同
Σ
=
n
1
n
Σ
1
+
n
2
n
Σ
2
\Sigma = \frac{n_1}{n}\Sigma_1+\frac{n_2}{n}\Sigma_2
Σ=nn1Σ1+nn2Σ2
其中
n
1
,
n
2
n_1,n_2
n1,n2分别是总的样本空间为n的训练数据中,类别一和类别二的样本空间大小
优化后新的结果,分类的boundary是线性的,所以也将这种分类叫做linear model。如果考虑所有的属性,发现正确率提高到了73%。