根据Tensorflow文档,可以通过添加“label_smoothing”参数将标签平滑应用到分类交叉熵损失函数中。我的问题是,在稀疏分类交叉熵损失函数中是否也有类似的“label_smoothing”参数。
根据Tensorflow文档,可以通过添加“label_smoothing”参数将标签平滑应用到分类交叉熵损失函数中。我的问题是,在稀疏分类交叉熵损失函数中是否也有类似的“label_smoothing”参数。
from tensorflow.keras.losses import categorical_crossentropy
def scce_with_ls(y, y_hat):
y = tf.one_hot(tf.cast(y, tf.int32), n_classes)
return categorical_crossentropy(y, y_hat, label_smoothing = 0.1)
有一种更好的方法,如果您在最后一个激活中使用softmax,那么通过标签平滑t与使用t/num_classes L1正则化(在softmax之前)权重为1/(num/t-2),然后缩放为1-2t/num是相同的。
数学有点简单,重要的技巧是将lse(x)从对数中取出,然后它会很好地与所有内容抵消,只留下x的对数按标签缩放。