Good-Turning Smoothing介绍及推理

article/2025/8/19 2:45:06

在介绍Good-Turning Smoothing之前,我们可以先看一个有趣的例子:
假设你在钓鱼,已经抓到了18只鱼:
10条鲤鱼,3条黑鱼,2条刀鱼,1条鲨鱼,1条草鱼,1条鳗鱼…
Q1:下一个钓到的鱼是鲨鱼的概率是多少?
Q2:下一条鱼是新鱼种(之前没有出现过)的概率是多少?
Q3:既然如此,重新想一下,下一条抓到鱼为鲨鱼的概率是多少?

我们在看到Q1时,可以很简单的算出Q1结果为 1/18.
但是到了Q2,此时概率是无法计算的,所以我们便可以在此引出Good-Turning。在Good-Turning方法论中,我们会假设未出现过的鱼种的概率与出现一次的鱼种的概率相同,即N_0 = N_1 (N_k表示出现k次的元素的总数),在上面的例子中N_10=1,N_3=1,N_2=1,N_1=3。
然后我们回到Q2,此时Q2的结果也为3/18,即1/6。
然后我们继续看Q3,因为没有出现的鱼种出现的概率有1/6,所以Q1的结果,应该小于1/18。
在Good-Turning方法论中,当我们要求一个元素c出现的概率时,会先计算:
在这里插入图片描述
然后再通过原本的概率算出新的概率,即P(鲨鱼)=(1+1) * 1/3 * (1/18) = 1/27
在这里插入图片描述
接下来可以拿实际使用的场景距离,再次进行推导:
假如我们有一个长度我c的词库,每次从中抽出1个次,由训练集放入验证集中,循环c次获得了c个训练数据。
在这里插入图片描述
在Q1中,因为只有出现1次的单词,从训练数据集中拿出后,就不会再出现了,所以Q1的结果为 N_1/C。
同理,我们需要单词在训练集中出现K次,则拿过来的单词原本应该出现K+1次,所以Q2的结果应该是N_(K+1)(K+1)/C。
再继续,假如此时我们只需要求得其中1个单词出现K次的概率,则再Q2中,分母上乘以一个N_k就可以了,即N_(K+1)
(K+1)/(CN_k)。
我们在拉普拉斯平滑中,知道平滑向是:在这里插入图片描述
但是此时的1,是一个频次,然后我们上面算出来的是一个概率,要将概率转换为频次,即乘以一个C(词库大小)就可以了,即N_(K+1)
(K+1)/*N_k,与前面得到的结果一致
在这里插入图片描述
下面是一个实际的词频统计的例子:
第一列是单词出现次数,第二列是出现r次的单词的数量,第三列是我们的期望概率
在这里插入图片描述
其中,第三列的期望概率就是通过上述结论计算出来的,例如:
P(1) = (1+1)*263611/1132844 = 0.46539
P(2) = (2+1)*123615/263611 = 1.40679

最后讲一下这个方法论的缺点:
从上图中也可以看出,当单词出现次数慢慢增大时,r值并不是连续性的,但是每一个P®的计算都依赖于r+1的count值。
简单的解决方案是,我们可以通过线性回归之类的方法,平滑的推断出7、9等不存在的r值的对应的count值,然后再带入上式进行计算。


http://chatgpt.dhexx.cn/article/dTbB1VcT.shtml

相关文章

关于label smoothing的理解

背景介绍 提到label smoothing(标签平滑),首先介绍一下什么是hard label和soft label. 简单来说,hard label就是非1即0,不存在既可能是A也可能是B的情况,soft label则不同,它并不要求所有的“精…

Label-Smoothing

论文:Rethinking the Inception Architecture for Computer Vision 个人理解: 就是让softmax不那么相信某一类的数据,增强泛化性。主要操作就是,在制作标签的时候,属于那一类就让网络90%相信他,其他…

MATLAB Smoothing Spline 拟合

参考 The Elements of Statistical Learning (chapter 5.4) MATLAB - Smoothing Splines MATLAB - fit 1. 基础 Smoothing Spline 可以用于离散数据的函数拟合。考虑下面的问题:在所有存在二阶连续导数的函数中寻找拟合函数 f ( x ) f(x) f(x),可以使…

Label Smoothing分析

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 作者丨王峰知乎 来源丨https://zhuanlan.zhihu.com/p/302843504 编辑丨极市平台 转自 | 极市平台 导读 Label Smoothing在图像识别中能稳定涨点,但在人脸的…

label smoothing

label smoothing 背景:当我们将交叉熵损失函数用于分类任务的时候,我们期望真实的标签为1,而其他虚假的标签为0。换句话来说,我们认为原始数据的标注是准确无误的。但是,真实情况并不是这样,在某些领域,或者使用一些数据增强的方法时,都会存…

标签平滑(Label Smoothing)详解

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

标签平滑Label Smoothing

Lable Smoothing 是分类问题中错误标注的一种解决方法。 对于分类问题,特别是多分类问题,常常把向量转换成one-hot-vector(独热向量) one-hot带来的问题:(对于独热的简单解释:https://blog.csd…

模型优化之Label Smoothing

1. 引言 Label Smoothing 又被称之为标签平滑,常常被用在分类网络中来作为防止过拟合的一种手段,整体方案简单易用,在小数据集上可以取得非常好的效果。 Label Smoothing 做为一种简单的训练trick,可以通过很少的代价&#xff08…

Smoothing

文章目录 返回主目录Add-one SmoothingAdd-K SmoothingInterpolationGood-Turning Smoothing 返回主目录 这是一个系列的文章,点击返回综合目录页 Add-one Smoothing P A d d − 1 ( W i ∣ W i − 1 ) C ( W i − 1 , W i ) 1 C ( W i ) V P_{Add-1}(W_i|W_{i-…

分类任务中常用的Label smoothing

目录 1.Label smoothing的原理 2.pytorh中如何使用Label smoothing 3.适用场景 1.Label smoothing的原理 交叉熵损失(softmax cross Entropy)中,常用公式: yi: 表示样本i的label,正类为1,负类为0; pi:…

平滑(smoothing)

1 问题的提出 由于在现实生活中,我们的观察尺度有限,我们的样本(输入)很可能没有办法包含所有可能的情况,那么我们怎么去处理先前看不见的事件呢? 举个例子,莎士比亚使用了30000个双连词(bigra…

【简单理解】自然语言处理-平滑方法(Smoothing)

【简单理解】自然语言处理-平滑方法(Smoothing) 简单介绍平滑策略 平滑策略的引入,主要使为了解决语言模型计算过程中出现的零概率问题。零概率问题又会对语言模型中N-gram模型的Perplexity评估带来困难。 零概率问题,就是在计算实例的概率时&#xf…

二十二、动网格Smoothing Spring方法及实例

1 概念介绍 最近一直忙着其他的事情,好久都没有更新,让各位家人们久等了。 今天我们接着聊一聊动网格问题,我们在文章二十一中介绍了动网格的Layering方法,但是Layering方法的局限性很高,只能对四边形网格或六面体网格…

numpy安装

1.以管理员的形式打开cmd 2.安装numpy插件 pip install numpy 3.安装成功后,输入pip list 命令查看是否安装成功 pip list 3.创建 #使用array创建一维数组 list01 [1,2,3,4] np01 np.array(list01) print(np01) print(type(np01)) #使用array创建二维数组 …

Matplotlib安装

安装matplotlib 使用python中pip命令安装 使用python中pip命令安装 第一步:使用winR输入cmd命令打开命令窗口,找到python安装目录下的Scripts目录,使用python -m pip install matplotlib命令 如果出现以下错误或警告,则需按照指示…

node安装

1、进入node官网,下载长期支持版,安装 2、输入node -v,能查询到版本号即为安装成功 3、为方便管理,修改默认的缓存和模块存放路径(C:\Users\Administrator\AppData\Roaming\npm),在nodede 安装文…

如何安装仿宋GB2312字体

步骤: 一、下载仿宋_GB2312.zip压缩包并解压缩; 百度网盘:https://pan.baidu.com/s/1L7yYKhoDmUw1RpNXVS5KDQ 提取码:eclz 阿里云盘:https://www.aliyundrive.com/s/ih3kDDidcGa 二、双击打开字体文件,…

安装Matplotlib

文章目录 一、pip安装二、conda安装1、anaconda navigator安装2、condan命令安装 一、pip安装 运行如下的命令即可 pip install matplotlib二、conda安装 Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等。conda是一个开源的…

cnpm安装

1.将node安装到D:\Program Files\nodejs目录。 2.设置npm全局安装路径与缓存路径 npm config set prefix "D:\Program Files\nodejs\node_global" npm config set cache "D:\Program Files\nodejs\node_cache" 3.安装cnpm npm install -g cnpm --regis…

torch安装

第n次安装了,每次都得结合很多篇才能安装成功,这次直接自己写一个。 一、安装anaconda 这个自己搜吧,挺简单的。 二、安装pytorch 进入anaconda prompt 创建一个虚拟环境(就不用再安装python了,创建之后直接就是用…