稀疏分类交叉熵的标签平滑化

4

根据Tensorflow文档,可以通过添加“label_smoothing”参数将标签平滑应用到分类交叉熵损失函数中。我的问题是,在稀疏分类交叉熵损失函数中是否也有类似的“label_smoothing”参数。

3个回答

6
很容易编写自己的损失函数:
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)

1
使用稀疏分类交叉熵作为损失函数时,没有标签平滑参数。

0

有一种更好的方法,如果您在最后一个激活中使用softmax,那么通过标签平滑t与使用t/num_classes L1正则化(在softmax之前)权重为1/(num/t-2),然后缩放为1-2t/num是相同的。

数学有点简单,重要的技巧是将lse(x)从对数中取出,然后它会很好地与所有内容抵消,只留下x的对数按标签缩放。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接