深度学习中如何选择好的优化方法(optimizer)【原理】

除了随机梯度初始化(SGD),在深度学习中还有很多其他的方法可以对网络进行优化

1. 减少网络收敛时间

2. 除了学习率(learning rate)还有更多其他的参数

3. 比SGD到达更高的分类准确率


一. 自适应学习率

为了更好的理解优化的方法,这里我们都是用伪代码的方式来进行描述。

首先,我们先来看我们最熟悉的SGD的方法

W += -lr * dW

其中我们有三个变量:

1. W:权值矩阵

2. lr:学习率

3. dW:权值W的梯度

其中,我们的学习率是固定的,假设它很足够小,loss在训练的过程中就会下降。

(1)Adagrad

Adagrad在网络中会自适应的改变学习率,在参数改变不明显的时候学习率变化更频繁,在参数改变明显的地方学习率变化减弱。我们来看看Adagrad的更新公式:

cache += (dW ** 2)
W += -lr * dW / (np.sqrt(cache) + eps)

注意到的第一个参数是cache,这个参数表示每一个参数梯度平方的总和,会在训练过程每一次小的mini-batch进行更新。当观察cache时,我们可以发现哪些参数更新的快,哪些更新的慢。

接着使用lr*dW除以cache的平方(这里加一个epsilon的原因是为了防止除数为0)。发现,当ca

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值