首页 > 其他分享 >Label Smoothing(标签平移)

Label Smoothing(标签平移)

时间:2022-09-21 17:12:32浏览次数:83  
标签:平移 temp 标签 Label 类别 alpha Smoothing label class

作用

标签平滑(Label smoothing),像L1、L2和dropout一样,是机器学习领域的一种正则化方法,通常用于分类问题,目的是防止模型在训练时过于自信地预测标签,改善泛化能力差的问题。

原理分析

image

  • 以上便为从onehot编码到标签偏移的公式。可以清楚的看到做完这种变化之后把原来onehot为0的地方变大了,为1的地方变小了,这样就导致在算交叉熵的时候不会只考虑相应类别的那个预测对应的损失,此时会把对所有类别的预测都会考虑进来算损失,使得对所有类别的预测都会相应的变大,只不过经过smoothing之后真实类别的那部分权重更大,模型会更加侧重于对应真实类别的那个预测。
  • 避免模型对于正确标签过于自信,使得预测正负样本的输出值差别不那么大,从而避免过拟合,提高模型的泛化能力
  • 超参数一般设置为0.1

代码实现(pytorch)

def label_smooth(label, n_class=3,alpha=0.1):
    """
    标签平滑
    :param label: 真实lable
    :param n_class: 类别数目
    :param alpha: 平滑系数
    :return:
    """
    k = alpha / (n_class - 1)
    # temp [batch_size,n_class]
    temp = torch.full((label.shape[0], n_class), k)
    # scatter_.(int dim, Tensor index, Tensor src),这个函数比较难理解——用src张量根据dim和index来修改temp中的元素
    temp = temp.scatter_(1, label.unsqueeze(1), (1-alpha))
    return temp

标签:平移,temp,标签,Label,类别,alpha,Smoothing,label,class
From: https://www.cnblogs.com/sxq-blog/p/16716290.html

相关文章

  • dev report 在程序中修改label内的值比如求两个report的总和
    要实现两个报表的和的之和.  比如报表1的和,报表2的和  ,和报表下边label总和,此时用报表的sum无法调用两个数据源的字段. 于是想在后台程序中根据上两个报表......
  • Qt之QLabel文本内容太长时可以使用省略号
    在使用QLabel进行文本内容显示时,有时候可能文本长度过长,会导致文本显示不全的问题,这个时候可以将文本内容的剩余部分使用...显示代码如下:MainWindow::MainWindow(QWidge......
  • SAP UI5 SimpleForm M 和 L 型表单的 label 和 input 分配讲解
    本文介绍SAPUI5ResponsiveGridLayout布局原理。默认情况下,表单和简单表单的大小M在响应式网格布局中也具有单列布局。但是,在大小为M的情况下,标签与相应的输入......
  • UE 实现镜头平移,旋转和缩放
    0x00引在数字孪生三维场景中,通过键盘和鼠标来控制镜头的移动,缩放是很常见的行为,也是很必要的行为,用户正是通过这些操作,达到对整个三维场景的观看和控制。0x01键盘控制......
  • 给Docker集群中Label节点打上标签与服务约束
    https://www.cnblogs.com/caoweixiong/p/12382282.htmlLabel作用:在服务器中通常需要将某个服务固定在某一台机器上运行的时候,可以给集群中的机器打上标签......
  • QT——状态栏添加label
    QLabel*state_msg=newQLabel(this);state_msg->setMinimumSize(state_msg->sizeHint());//设置label属性state_msg->setAlignment(Qt::AlignHCenter);//设......
  • 小样本利器3. 半监督最小熵正则 MinEnt & PseudoLabel代码实现
    在前两章中我们已经聊过对抗学习FGM,一致性正则Temporal等方案,主要通过约束模型对细微的样本扰动给出一致性的预测,推动决策边界更加平滑。这一章我们主要针对低密度分离假设......
  • 平移:translate()
    在CSS3中,我们可以使用transform属性的translate()方法来实现元素的平移效果。语法:transform:translateX(x);/*沿X轴方向平移*/transform:translateY(y);/*沿Y轴方向......
  • cesium教程6-用entity绘制点线面label和billboard广告牌
      完整示例代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>cesium示例</title><!--引用cesium的js和css,天地图的扩展js-->......
  • js轮播图(平移版)
    <divclass="container"><ulclass="list"><!--切换逻辑我们当前的动画逻辑是通过修改list元素的left值平移实现的图片切换在图片1的前边没有图片5的......