损失函数
损失函数,也称目标函数或者优化评分函数,是编译模型时所必需的两个参数之一。在编译时,可以给loss
参数传递一个字符串形式的损失函数名或者TensorFlow/Theano符号函数。
常用的损失函数有以下这些:
mean_squared_error
或mse
,均方误差,\(L=\frac{1}{n}\sum_{i=1}^{n}(y_{true}^{(i)}-y_{pred}^{(i)})^2\)。mean_absolute_error
,绝对值误差,\(L=\frac{1}{n}\sum_{i=1}^{n}|y_{true}^{(i)}-y_{pred}^{(i)}|\)。mean_absolute_percentage_error
,\(L=\frac{1}{n}\sum_{i=1}^{n}|\frac{y_{true}^{(i)}-y_{pred}^{(i)}}{y_{true}^{(i)}}| \cdot 100\)。mean_squared_logarithmic_error
,\(L=\frac{1}{n}\sum_{i=1}^{n}(log(y_{true}^{(i)}+1)-log(y_{pred}^{(i)}+1))^2\)。squared_hinge
,\(L=\frac{1}{n}\sum_{i=1}^{n}(max(0, 1-y_{true}^{(i)} \cdot y_{pred}^{(i)}))^2\)。hinge
,\(L=\frac{1}{n}\sum_{i=1}^{n}max(0, 1-y_{true}^{(i)} \cdot y_{pred}^{(i)})\)。categorical_hinge
。logcosh
。categorical_crossentropy
,分类交叉熵,目标值需要使用分类格式,如果有n个类,那么每个样本的目标值应该是一个n维的向量,所属类的目标值应该是1,不属于该类的目标值为0。从整型目标值转换为分类目标值可以使用Keras的工具函数to_categorical
。binary_crossentropy
,对数损失(二元交叉熵),主要用于二选一的分类。kullback_leibler_divergence
,从预测值概率分布到真值概率分布的信息增益,用来度量两个分布的差异。poisson
,\(L=\frac{1}{n}\sum_{i=1}^{n}(y_{pred}^{(i)}-y_{true}^{(i)} \cdot log(y_{pred}^{(i)}))\)。cosine_proximity
,\(L=-\frac{\sum_{i=1}^{n}y_{true}^{(i)} \cdot y_{pred}^{(i)}}{\sqrt{\sum_{i=1}^{n}(y_{true}^{(i)})^2} \cdot \sqrt{\sum_{i=1}^{n}(y_{pred}^{(i)})^2}}\)。