keras学习笔记(3)—优化器

本文介绍了Keras中的几种优化器,包括SGD、Adagrad、Adadelta、RMSprop和Adamax。详细阐述了每种优化器的工作原理和优缺点,特别是针对稀疏数据的优化。最后,建议在不确定优化器选择时,使用Adam作为默认选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、keras优化器类别

这里写图片描述

二、算法详解
2.1 SGD

  这里的随机梯度下降,从严格意义上说应该是Mini-batch梯度下降,即每次用一小批样本进行计算,这样一方面具有梯度下降更新参数时低方差的特性,同时也兼顾了随机梯度下降参数更新的效率。

θ=θηθJ(θ;x(i;i+n);y(i;i+n))

伪代码:

for i in range(nb_epoches):
    np.random.shuffle(data)
    for batch in get_batches(data,batch_size=64):
        params_grad = evaluate_gradient(loss_function,batch,params)
        params = params - learning_rate*params_grad

缺点:
  随机梯度下降不能保证很好的收敛性,如果learning rate选择过大会在极小值点震荡,如果选择过小收敛速度太慢,而且对于非凸函数而言该算法容易陷入局部最优。
  SGD在ravines容易被困住,momentum通过加入动量因子,可以加速SGD,并且抑制震荡。

vt=γvt1+ηθJ(θ)
θ=θvt

  加入moment(动量因子)可以使得梯度方向不变的维度上速度下降的更快,梯度方向发生改变的方向上更新速度更慢,从而加快收敛,减小震荡,一般动量取值0.9左右。

2.2 Adagrad

  这个算法可以对低频的参数做较大的更新,对高频的参数做较小的更新,因此,对于稀疏数据它的表现很好,很好的提高了SGD的鲁棒性,例如Youtube视频里的猫,训练Glove word embedings,因为它们都需要在低频的特征上有更大的更新
梯度更新规则:

θt+1,i=θt,iηGt,ii+ϵgt,i

g是t时刻参数 θi 的梯度
gt,i=θJ(θi)

如果是随机梯度下降,那么
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值