内容纲要
欢迎转载,作者:Ling,注明出处:深度学习:原理简明教程09-深度学习:损失函数
损失函数:又称Objective函数或者称Cost函数,主要是用于衡量预测值与真实值的差异情况。
1)如果预测结果和真实结果越接近,损失函数值越小,预测结果和真实结果越不同,损失函数值越大
2)通过BP算法,根据损失函数,可以不断优化神经网络各种参数
框架常见损失函数有:基本所有损失函数都是输入预测值与真实值
mean_squared_error
mean_absolute_error
mean_absolute_percentage_error
mean_squared_logarithmic_error
squared_hinge
hinge
categorical_hinge
logcosh
binary_crossentropy
categorical_crossentropy
sparse_categorical_crossentropy
kullback_leibler_divergence
poisson
cosine_proximity
mean_squared_error:
公式:
特点:
1)常用于回归问题
2)MSE均方误差损失
mean_absolute_error:
公式:
特点:
1)MAE平均绝对值误差损失
mean_absolute_percentage_error:
公式:
特点:
1)MAPE平均绝对百分误差
mean_squared_logarithmic_error:
公式:
特点:
1)MSLE均方对数损失(mse的改进)
2)MSLE相比与MSE的改进:如果想要预测的值范围很大,MSE会受到一些大的值的引导,即使小的值预测准也不行.假设如:
y_true:[1,2,3,100]
y_1:[1,2,3,110]
y_2:[2,3,4,100]
MSE计算结果(y_1:100,y_2:3)会认为y_2优于y_1.
MSLE计算结果(有_1:0.047,0.27)通过预先将所有值取log缓解了这一情况,会认为y_1优于y_2.这比较合理.
squared_hinge:
公式:
hinge:
公式:
categorical_hinge:
公式:
logcosh:
公式:
特点:
1)从图中大致可以看出来如果y_pred与y_true差异越小则值越小.
2)感觉用得不多
binary_crossentropy:(注意keras中是概率,需要先转成logits,也就是w*x没有经过sigmoid之前的值)
公式:
L = y * -log(sigmoid(z)) + (1 - y) * -log(1 - sigmoid(z))
= y * -log(1 / (1 + exp(-z))) + (1 - y) * -log(exp(-z) / (1 + exp(-z)))
= y * log(1 + exp(-z)) + (1 -y) * (-log(exp(-z)) + log(1 + exp(-z)))
= y * log(1 + exp(-z)) + (1 - y) * (z + log(1 + exp(-z))
= (1 - y) * z + log(1 + exp(-z))
= z - z * y + log(1 + exp(-z))
其中z=w*x,即没有做sigmoid之前的值,在tensorflow中称为logits
如果是做了sigmod之后的值为:
本文标准写法:
特点:
1)主要用于二分类
2)配合sigmod用
categorical_crossentropy:
公式:
特点:
1)其中n为样本数,c为label类别,主要适用于one-hot
2)一定配合softmax
3)适用于多分类问题
4)必须是one-hot类型的vector作为y值
sparse_categorical_crossentropy:
特点:
1)和categorical_crossentropy一样,不过可以接受非one-hot的vector作为y值
2)配合softmax用
3)可用于稀疏多分类问题
kullback_leibler_divergence:
公式:
特点:
1)两个概率分布P和Q差别的非对称性的度量. 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。如果两者可以互相替代,值越小,否则越大。
2)KL散度
poisson:
公式:
cosine_proximity:
公式:
总结:
1)回归问题,经常用:
mean_squared_error
mean_absolute_error
mean_absolute_percentage_error
mean_squared_logarithmic_error
squared_hinge
hinge
categorical_hinge
logcosh
kullback_leibler_divergence
poisson
cosine_proximity
2)二分类问题常用:
binary_crossentropy
3)多分类问题常用:
categorical_crossentropy:one-hot的y
sparse_categorical_crossentropy:非one-hot的y