基于Theano的深度学习(Deep Learning)框架Keras学习随笔-03-优化器

原地址:http://blog.csdn.net/niuwei22007/article/details/49131393可以查看更多文章

optimizers(优化器)。机器学习包括两部分内容,一部分是如何构建模型,另一部分就是如何训练模型。训练模型就是通过挑选最佳的优化器去训练出最优的模型。

        Keras包含了很多优化方法。比如最常用的随机梯度下降法(SGD),还有Adagrad、Adadelta、RMSprop、Adam等。下面通过具体的代码介绍一下优化器的使用方法。最重要的就是SGD,其他的优化器有兴趣的可以自行了解一下。

一、优化器的使用方法

     在编译一个Keras模型时,优化器是2个参数之一(另外一个是损失函数)。看如下代码:

  1. model = Sequential()  
  2. model.add(Dense(64, init='uniform', input_dim=10))  
  3. model.add(Activation('tanh'))  
  4. model.add(Activation('softmax'))  
  5.    
  6. sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)  
  7. model.compile(loss='mean_squared_error', optimizer=sgd)  

     这个例子中是在调用compile之前实例化了一个优化器。我们也可以通过传递名字的方式调用默认的优化器。代码如下:

  1. # passoptimizer by name: default parameters will be used  
  2. model.compile(loss='mean_squared_error', optimizer='sgd')  

二、基类

  1. keras.optimizers.Optimizer(**kwargs)  

     所有的优化器都继承自上面这个带有keyword参数的类。当然基类是不能用来训练模型的。

三、SGD(随机梯度下降优化器,性价比最好的算法)

  1. keras.optimizers.SGD(lr=0.01, momentum=0., decay=0., nesterov=False)  

     参数:

  1. lr :float>=0,学习速率
  2. momentum :float>=0 参数更新的动量
  3. decay : float>=0 每次更新后学习速率的衰减量
  4. nesterov :Boolean 是否使用Nesterov动量项

四、Adagrad(参数推荐使用默认值) 

  1. keras.optimizers.Adagrad(lr=0.01, epsilon=1e-6)  

     参数:

  1. lr : float>=0,学习速率
  2. epsilon :float>=0

五、Adadelta(参数推荐使用默认值)

  1. keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-6)  

     参数:

  1. lr :float>=0,学习速率
  2. rho : float>=0
  3. epsilon :float>=0 模糊因子

六、RMSprop(参数推荐使用默认值)

  1. keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-6)  

    参数:

  1. lr:float>=0,学习速率
  2. rho : float>=0
  3. epsilon : float>=0 模糊因子

七、Adam(参数推荐使用默认值)

  1. keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-8)  

     参数:

  1. lr : float>=0,学习速率
  2. beta_1, beta_2:floats, 0 < beta < 1 通常都是接近于1
  3. epsilon :float>=0 模糊因子 

参考资料:

  1. 官方教程
  2. http://ju.outofmemory.cn/entry/188683
转载来自:http://blog.csdn.net/niuwei22007/article/details/49131393

转载于:https://my.oschina.net/stevie/blog/692197

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值