zl程序教程

您现在的位置是:首页 >  后端

当前栏目

pytorch 10 支持ignore_index和class_weight的标签平滑LabelSmoothingCrossEntropyLoss实现

PyTorch 实现 10 支持 标签 Class index 平滑
2023-09-14 09:15:04 时间

通过标签平滑可以考虑类别间的相似度,加大模型的loss,让模型对自己的预测结果不在那么自信。这样子训练出来的模型类间距离会更大(类间变得分散),同时类内距离更小(类内更加聚拢)。造成这一效果的本质原因是,独热码不一定能完全的表述数据的本质特征,忽略了数据间的共性。如分类数据中,老虎、豹子、大象,老虎和豹子在纹理上更相近,而独热码无法体现这一特性,只认为老虎、豹子、大象是完全独立的个体。

独热码下的标签如下

\hat{y_i}=\left\{\begin{matrix} 1 \: \: \: \: \:\, \, i=target\\ 0 \: \: \: \: \: \: i\neq target \end{matrix}\right.

标签平滑后的标签如下,其中K+1等于类别数,a为标签平滑因子