Keras参数设置说明

(一)keras参数:loss
定义:loss是目标函数(损失函数)
可用目标函数:
    -回归问题(loss='mse' | 'mae' | 'mape')
    -分类问题(loss='binary_crossentropy' | 'categorical_crossentropy')
     tip:1.binary_crossentropy作为目标函数用于二分类
          2.categorical_crossentropy作为目标函数用于多分类且标签采用one-hot编码
         代码如下:
         from keras.utils import to_categorical
         y = to_categorical(Y,num_classes=labels)

(二)keras参数:optimizer
定义:optimizer是优化器(优化参数的算法)
可用的优化器:
1.SGD(随机梯度下降)
from keras.optimizers import SGD
sgd = SGD(lr=0.01,momentum=0,decay=0,nesterov=False)
lr:学习率 momentum:动量参数
decay:(每次更新)学习率的衰减值
nesterov:是否使用Nesterov动量

2.RMSprop(均方根反向传播)
from keras.optimizers import RMSprop
rmsprop = RMSprop(lr=0.001,rho=0.9,epsilon=None,decay=0)
lr:学习率 rho:衰减因子
epsilon:模糊因子 decay:(每次更新)学习率的衰减值
tip:该算法是面对递归神经网络RNN的良好选择,实际调参时只调整lr即可

3.Adagrad(自适应梯度)
from keras.optimizers import Adagrad
adagrad = Adagrad(lr=0.01,epsilon=None,decay=0)
lr:学习率 epsilon:模糊因子 decay:(每次更新)学习率的衰减值
tip:该算法建议保持默认参数

4.Adadelta(Adagrad的改进)
from keras.optimizers import Adadelta
adadelta = Adadelta(lr=0.01,rho=0.95,epsilon=None,decay=0)
lr:学习率 rho:衰减因子
epsilon:模糊因子 decay:(每次更新)学习率的衰减值
tip:该算法建议保持默认参数

5.Adam(自适应移动估计=RMSprop+momentum)
from keras.optimizers import Adam
adam = Adam(lr=0.001,beta_1=0.9,beta_2=0.999,epsilon=None,decay=0,amsgrad=False)
tip:该算法是面对反馈神经网络的良好选择

(三)keras参数:metrics
定义:metrics是性能评估函数
可用的性能评估函数:
    -分类问题:metrics=['acc']
    -回归问题:metrics=['mae']
    
(四)keras参数:activation
定义:activation是激活函数
常用的激活函数:linear+relu+sigmoid+softmax+tanh

(五)keras参数:initializers
定义:initializers是对keras层设置初始化权重的方法
常用的方法:
model.add(Dense(kernel_initializer='random_uniform',bias_initializer='zeros'))
kernel_initializer(权值向量) = 'zeros'|'ones'|'constant'|'random_uniform'|'random_normal'
参考手册:
https://keras-cn.readthedocs.io/en/latest/other/initializations/(Chinese)

(六)keras:regularizers
定义:regularizer是正则项(优化过程中层的参数或输出值添加的惩罚项)
可用的层正则项:
1.kernel_regularizer(施加在权重上)
(1)方式1(默认)
from keras import regularizers
model.add(Dense(...,kernel_regularizer=regularizers.l1(l=0.01)))
model.add(Dense(...,kernel_regularizer=regularizers.l2(l=0.01))
model.add(Dense(...,kernel_regularizer=regularizers.l1_l2(l=0.01)))    
tip:默认正则项为L1和L2,惩罚系数为0.01
(1)方式2(自定义)
from keras import backend as K
def reg(weight_matrix):
    ...
model.add(Dense(...,kernel_regularizer=reg))

2.bias_regularizer(施加在偏置上)
方式同1

3.activity_regularizer(施加在输出上)
方式同上1

猜你喜欢

转载自blog.csdn.net/qq_42394743/article/details/82951240