Keras读书笔记----其他重要模块

1. 目标函数Objectives

目标函数,或称损失函数,是编译一个模型必须的两个参数之一
可以通过传递预定义目标函数名字指定目标函数,也可以传递一个Theano/TensroFlow的符号函数作为目标函数,该函数对每个数据点应该只返回一个标量值,并以下列两个参数为参数:
y_true:真实的数据标签, Theano/TensorFlow张量
y_pred:预测值,与y_true相同shape的Theano/TensorFlow张量
真实的优化目标函数是在各个数据点得到的损失函数值之和的均值
可用的目标函数
  • mean_squared_error或mse
  • mean_absolute_error或mae
  • mean_absolute_percentage_error或mape
  • mean_squared_logarithmic_error或msle
  • squared_hinge
  • hinge
  • binary_crossentropy(亦称作对数损失, logloss)
  • categorical_crossentropy:亦称作多类的对数损失,注意使用该目标函数时,需要将标签转化为形如 (nb_samples, nb_classes) 的二值序列
  • sparse_categorical_crossentrop:如上,但接受稀疏标签。注意,使用该函数时仍然需要你的标签与输出值的维度相同,你可能需要在标签数据上增加一个维度: np.expand_dims(y,-1)
  • kullback_leibler_divergence:从预测值概率分布Q到真值概率分布P的信息增益,用以度量两个分布的差异.
  • poisson:即 (predictions - targets * log(predictions)) 的均值
  • cosine_proximity:即预测值与真实标签的余弦距离平均值的相反数

2. 优化器optimizers

优化器是编译Keras模型必要的两个参数之一,可以在调用 model.compile() 之前初始化一个优化器对象,然后传入该函数(如上所示),也可以在调用 model.compile() 时传递一个预定义优化器名。
参数 clipnorm 和 clipvalue 是所有优化器都可以使用的参数,用于对梯度进行裁剪.

2.1. SGD

keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)
随机梯度下降法,支持动量参数,支持学习衰减率,支持Nesterov动量
  • lr:大于0的浮点数,学习率
  • momentum:大于0的浮点数,动量参数
  • decay:大于0的浮点数,每次更新后的学习率衰减值
  • nesterov:布尔值,确定是否使用Nesterov动量

2.2. RMSprop

keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-06)
除学习率可调整外,建议保持优化器的其他默认参数不变,该优化器通常是面对递归神经网络时的一个良好选择
  • lr:大于0的浮点数,学习率
  • rho:大于0的浮点数
  • epsilon:大于0的小浮点数,防止除0错误

2.3. Adagrad

keras.optimizers.Adagrad(lr=0.01, epsilon=1e-06)
建议保持优化器的默认参数不变
  • lr:大于0的浮点数,学习率
  • epsilon:大于0的小浮点数,防止除0错误

2.4. Adadelta

keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-06)
建议保持优化器的默认参数不变
  • lr:大于0的浮点数,学习率
  • rho:大于0的浮点数
  • epsilon:大于0的小浮点数,防止除0错误

2.5. Adam

keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08)
  • lr:大于0的浮点数,学习率
  • beta_1/beta_2:浮点数, 0<beta<1,通常很接近1
  • epsilon:大于0的小浮点数,防止除0错误

2.6. Adamax

keras.optimizers.Adamax(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=1e-08)
Adamax优化器来自于Adam的论文的Section7,该方法是基于无穷范数的Adam方法的变体。
  • lr:大于0的浮点数,学习率
  • beta_1/beta_2:浮点数, 0<beta<1,通常很接近1
  • epsilon:大于0的小浮点数,防止除0错误

2.7. Nadam

keras.optimizers.Nadam(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=1e-08, schedule_decay=0.004)
Nesterov Adam optimizer: Adam本质上像是带有动量项的RMSprop, Nadam就是带有Nesterov 动量的Adam RMSprop
  • lr:大于0的浮点数,学习率
  • beta_1/beta_2:浮点数, 0<beta<1,通常很接近1
  • epsilon:大于0的小浮点数,防止除0错误

3. 激活函数Activations

激活函数可以通过设置单独的激活层实现,也可以在构造层对象时通过传递 activation 参数实现。
from keras.layers.core import Activation, Dense
model.add(Dense(64))
m
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值