2.1.5 损失函数

分类和回归问题是有监督学习的两大类问题。为了训练解决分类或回归问题的模型,我们通常会定义一个损失函数(loss function)来描述对问题的求解精度,损失值越小,代表模型得到的结果与实际值的偏差越小,即模型越精确。很多文献也常将损失函数称为代价函数(cost function)或误差函数(error function)。其优化目标函数是各个样本得到的损失函数值之和的均值。Keras中可用的损失函数有如下几种。

  • mean_squared_error或mse。
  • mean_absolute_error或mae。
  • mean_absolute_percentage_error或mape。
  • mean_squared_logarithmic_error或msle。
  • squared_hinge。
  • hinge。
  • binary_crossentropy(也称作对数损失,logloss)。
  • logcosh。
  • categorical_crossentropy:也称作多类的对数损失。注意,使用该目标函数时,需要将标签转化为形如c(nb_samples, nb_classes)的二值序列。
  • sparse_categorical_crossentropy:与categorical_crossentropy类似,但接受稀疏标签。注意,使用该函数时仍然需要标签与输出值的维度相同,你可能需要在标签数据上增加一个维度。
  • kullback_leibler_divergence:从预测值概率分布Q到实际值概率分布P的信息增益,用以度量两个分布的差异。
  • poisson:即(predictions - targets * log(predictions))的均值。
  • cosine_proximity:即预测值与实际值的余弦距离平均值的相反数。

损失函数按照用途可以归为以下4类。

  • 准确率(accuracy):用在分类问题上,它的取值有多种,例如binary_accuracy指各种二分类问题预测的准确率;categorical_accuracy指各种多分类问题预测的准确率;sparse_categorical_accuracy在对稀疏目标值预测时使用;top_k_categorical_accuracy指当预测值的前k值中存在目标类别即认为预测正确。
  • 误差损失(error loss):用在回归问题上,用于度量预测值与实际值之间的差异,可有如下取值。mse指预测值与实际值之间的均方误差;rmse指预测值与实际值之间的均方根误差;mae指预测值与实际值之间的平均绝对误差;mape指预测值与实际值之间的平均绝对百分比误差;msle指预测值与实际值之间的均方对数误差。
  • hinge loss:通常用于训练分类器,有两种取值,hinge和squared hinge。其中,hinge定义为max(1-ytrue×ypred,0),squared hinge指hinge损失的平方值。
  • class loss:用于计算分类问题中的交叉熵,存在多个取值,包括二分类交叉熵和多分类交叉熵。

[1]引自维基百科:https://en.wikipedia.org/wiki/Activation_function