目录
lastDay
凸优化;梯度下降;优化算法进阶;
1.凸优化
1.1优化在深度学习中的挑战
- 局部最小值
- 鞍点
- 梯度消失
2.梯度下降
2.1梯度下降法--GD
假设有n个样本,batch_size=n
存在问题:容易陷入局部极小值
时间复杂度O(n)
def f(x):
return x**2 # Objective function
def gradf(x):
return 2 * x # Its derivative
def gd(eta):
x = 10
results = [x]
for i in range(10):
x -= eta * gradf(x)
results.append(x)
print('epoch 10, x:', x)
return results
res = gd(0.2)
2.2随机梯度下降---SGD
假设有n个样本,batch_size=1
缺点:存在震荡,抖动
时间复杂度:O(1)
2.3小批量随机梯度下降---mini-SGD
假设有n个样本,batch_size=m(小批量m个)
时间复杂度O(m)
2.4 SGD Momentum
ill-conditioned
由指数加权移动平均(exponential moving average)理解动量法
2.5 AdaGrad
根据自变量在每个维度的梯度值的大小来调整各个维度上的学习率,从而避免统一的学习率难以适应所有维度的问题
2.6 RMSProp
相当于 AdaGrad+expotential moving average
2.7 AdaDelta
对RMSProp的改进
2.8 Adam
相当于RMSProp+Momentum