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

微信号

猜你喜欢

转载自blog.csdn.net/HHTNAN/article/details/95596549