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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章