基于Theano的深度学习(Deep Learning)框架Keras学习随笔-03-优化器
来源:互联网 发布:java模拟 qq加好友 编辑:程序博客网 时间:2024/05/30 13:42
原地址:http://blog.csdn.net/niuwei22007/article/details/49131393可以查看更多文章
optimizers(优化器)。机器学习包括两部分内容,一部分是如何构建模型,另一部分就是如何训练模型。训练模型就是通过挑选最佳的优化器去训练出最优的模型。
Keras包含了很多优化方法。比如最常用的随机梯度下降法(SGD),还有Adagrad、Adadelta、RMSprop、Adam等。下面通过具体的代码介绍一下优化器的使用方法。最重要的就是SGD,其他的优化器有兴趣的可以自行了解一下。
一、优化器的使用方法
在编译一个Keras模型时,优化器是2个参数之一(另外一个是损失函数)。看如下代码:
model = Sequential()model.add(Dense(64, init='uniform', input_dim=10))model.add(Activation('tanh'))model.add(Activation('softmax')) sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)model.compile(loss='mean_squared_error', optimizer=sgd)
这个例子中是在调用compile之前实例化了一个优化器。我们也可以通过传递名字的方式调用默认的优化器。代码如下:
# passoptimizer by name: default parameters will be usedmodel.compile(loss='mean_squared_error', optimizer='sgd')
二、基类
keras.optimizers.Optimizer(**kwargs)
所有的优化器都继承自上面这个带有keyword参数的类。当然基类是不能用来训练模型的。
三、SGD(随机梯度下降优化器,性价比最好的算法)
keras.optimizers.SGD(lr=0.01, momentum=0., decay=0., nesterov=False)
参数:
- lr :float>=0,学习速率
- momentum :float>=0 参数更新的动量
- decay : float>=0 每次更新后学习速率的衰减量
- nesterov :Boolean 是否使用Nesterov动量项
四、Adagrad(参数推荐使用默认值)
keras.optimizers.Adagrad(lr=0.01, epsilon=1e-6)
参数:
- lr : float>=0,学习速率
- epsilon :float>=0
五、Adadelta(参数推荐使用默认值)
keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-6)
参数:
- lr :float>=0,学习速率
- rho : float>=0
- epsilon :float>=0 模糊因子
六、RMSprop(参数推荐使用默认值)
keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-6)
参数:
- lr:float>=0,学习速率
- rho : float>=0
- epsilon : float>=0 模糊因子
七、Adam(参数推荐使用默认值)
keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-8)
参数:
- lr : float>=0,学习速率
- beta_1, beta_2:floats, 0 < beta < 1 通常都是接近于1
- epsilon :float>=0 模糊因子
参考资料:
- 官方教程
- http://ju.outofmemory.cn/entry/188683
0 0
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-03-优化器
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-03-优化器
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-02-Example
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-04-目标函数
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-05-模型
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-06-激活函数
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-07-初始化权值
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-08-规则化(规格化)
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-09-约束限制
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-10-回调
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-11-数据集
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-12-核心层
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-13-卷积层
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-14-递归层
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-15-Advanced Activation Layers
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-16-Normalization
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-17-Embedding Layers
- 【自考】算法——时间复杂度汇总
- iOS static dispatch_once_t oneToken;
- 博客园收藏
- 利用php-java-bridge包实现PHP调用JAVA类
- How to prevent object bloat in PostgreSQL
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-03-优化器
- ListView 禁止Item被点击
- iOS中UITabBarController的剖析
- leetcode Plus ONE
- lintcode-背包问题II-125
- 黑马程序员——反射与其相关概念
- Vi and Vim Macro Tutorial: How To Record and Play
- iOS推送机制
- android 抓取wifi网卡的数据包