发新帖

关于逻辑回归的学习速率选择问题

[复制链接]
677 8

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
以前使用matlab,使用梯度下降,fmincg函数可以帮助选择学习速率,但是把代码转换成tensorflow就不知道该怎么选择学习速率,而且我的测试数据集,固定的一个学习速率很难达到收敛,所以想问大家都是怎么解决的?
我知道答案 回答被采纳将会获得10 金币 + 5 金币 已有8人回答
本楼点评(0) 收起

精彩评论8

M丶Sulayman  TF豆豆  发表于 2018-5-29 18:23:29 | 显示全部楼层
Optimizer:
tf.train.GradientDescentOptimizer
tf.train.AdadeltaOptimizer
tf.train.AdagradOptimizer
tf.train.AdagradDAOptimizer
tf.train.MomentumOptimizer
tf.train.AdamOptimizer
tf.train.FtrlOptimizer
tf.train.ProximalGradientDescentOptimizer
tf.train.ProximalAdagradOptimizer
tf.train.RMSPropOptimizer
各种优化器对比:
标准梯度下降法:
标准梯度下降先计算所有样本汇总误差,然后根据总误差来更新权值
随机梯度下降法:
随机梯度下降随机抽取一个样本来计算误差,然后更新权值
批量梯度下降法:
批量梯度下降算是一种折中的方案,从总样本中选取一个批次(比如一共有10000个样本,随
机选取100个样本作为一个batch),然后计算这个batch的总误差,根据总误差来更新权
值。
本楼点评(1) 收起
winter  TF荚荚  发表于 2018-5-29 18:40:20 来自手机  | 显示全部楼层
1. 如果是从头训练那么初始学习率可以较大,可以试试0.1,0.01,如果是迁移学习那么通常给小一点0.01,0.001,0.0001
2.可以试试Adam等带自学习性质的optimizer
3.加上learning decay,可以在一定程度上解决loss过高的问题。
4.在loss不再下降后将学习率除以10(许多论文中都是这么做的,如VGG, RESNET)
5. 使用cycle learning rate,周期性的增大降低学习率
本楼点评(2) 收起
北冥有鱼。  TF荚荚  发表于 2018-6-1 09:28:33 来自手机  | 显示全部楼层
实质上这个学习效率就是每一次沿着负梯度方向的步长,步长大可能来回震荡,难以收敛,步长小可能需要很多次迭代才可以收敛同时还可能陷入局部最优情况。但是多更改初始点进行计算求出最小值可以在数据量小的情况下有效。因此想要达到收敛,建议多更改初始点(多运行几次)然后划定一定梯度再更改步长尝试。
本楼点评(0) 收起
重庆不热  TF荚荚  发表于 2018-7-3 16:28:15 | 显示全部楼层
学习速率可以使用adam吧,这个推荐使用api默认的学习率。
本楼点评(0) 收起
Bingohong  TF荚荚  发表于 2018-7-3 16:49:38 | 显示全部楼层
可以尝试使用lr_find方法,这个方法在fastai中有实现,网上应该也有tf版本的,我自己改过以tf作为后端的keras版本实现。这个方法可用于寻找最佳初始学习率,搜索策略是从一个很小的学习率开始,例如1e-6,然后每一个迭代逐渐增加学习率,记录每次迭代的cost。具体可见fastai官网解释http://forums.fast.ai/t/interpre ... -from-lr-find/12329
本楼点评(0) 收起
ViolinSolo  TF豆豆  发表于 2018-7-3 20:27:48 | 显示全部楼层
我觉得对于学习率你可以试一下,反正经验值是0.01-0.001
本楼点评(0) 收起
ViolinSolo  TF豆豆  发表于 2018-7-3 20:28:14 | 显示全部楼层
或者可以考虑变化的学习率,用lr_decay
本楼点评(0) 收起
neverchange  TF豆豆  发表于 2018-7-3 21:42:43 | 显示全部楼层
按照一般的经验值调整吧,没有尝试过其他办法
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

快速回复 返回顶部 返回列表