交叉熵损失函数
交叉熵损失函数是在分类问题中常用的一种损失函数,交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。
二分类问题中使用交叉熵损失函数,输出层常用sigmoid激活函数
loss=−1n∑i=1n[yilnai+(1−yi)ln(1−ai)] 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激活函数
loss=−1m∑i=1m∑j=1nyijlog(aij)
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编码