交叉熵损失函数
交叉熵损失函数是在分类问题中常用的一种损失函数,交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。
二分类问题中使用交叉熵损失函数,输出层常用sigmoid激活函数
l o s s = − 1 n ∑ i = 1 n [ y i ln a i + ( 1 − y i ) ln ( 1 − a i ) ] loss=-\frac{1}{n}\sum_{i=1}^n{\left[ y_i\ln a_i+\left( 1-y_i \right) \ln \left( 1-a_i \right) \right]} loss=−n1i=1∑n[yilnai+(1−yi)ln(1−ai)]
多分类问题中使用多元交叉损失函数,输出层常用softmax激活函数
l
o
s
s
=
−
1
m
∑
i
=
1
m
∑
j
=
1
n
y
i
j
l
o
g
(
a
i
j
)
loss=-\frac{1}{m}\sum_{i=1}^m{\sum_{j=1}^n{y_{ij}log}}\left( a_{ij} \right)
loss=−m1i=1∑mj=1∑nyijlog(aij)
one-hot编码
在多分类问题中,使用多元交叉熵损失函数。损失函数在TensorFlow2.0中的名称为categorical_crossentropy和sparse_categorical_crossentropy
- 当label编码为顺序编码时,使用sparse_categorical_crossentropy损失函数
- 当label编码为one-hot编码时,使用categorical_crossentropy损失函数
- 使用出现交叉则会报错。
当label为顺序编码时,可以使用tf.keras.utils.to_categorical()转化为one-hot编码