keras model.compile損失函數與優化器

損失函數

概述

損失函數是模型優化的目標,所以又叫目標函數、優化評分函數,在keras中,模型編譯的參數loss指定了損失函數的類別,有兩種指定方法:

model.compile(loss='mean_squared_error', optimizer='sgd')

或者

from keras import losses
model.compile(loss=losses.mean_squared_error, optimizer='sgd')

可用損失函數

可用的損失目標函數:

mean_squared_error或mse
mean_absolute_error或mae
mean_absolute_percentage_error或mape
mean_squared_logarithmic_error或msle
squared_hinge
hinge
categorical_hinge
binary_crossentropy(亦稱作對數損失,logloss)
logcosh

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:即預測值與真實標籤的餘弦距離平均值的相反數

損失函數公式

https://zhuanlan.zhihu.com/p/34667893

二分類-報錯

關於損失函數的藏奸報錯:
用Keras做文本二分類,總是遇到如題錯誤,

我的類別是0或1,但是錯誤跟我說不能是1.

參見:Received a label value of 1 which is outside the valid range of [0, 1) - Python, Keras

loss function的問題。

原來用的是sparse_categorical_crossentropy,

改爲binary_crossentropy問題解決。

優化器

https://www.cnblogs.com/xiaobingqianrui/p/10756046.html

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