统计是通过大量样本来估计真实分布的过程,通常与统计相伴出现的一个词是“平滑”,即对统计结果打折扣的处理过程。平滑的思想来源于:如果样本空间非常大,那么统计的结果是稀疏的,这样由于各种偶然因素的存在,导致了小的统计结果不可靠,如频数为1的结果可能只是偶然的结果,其频率并不一定近似于1/N,频数为0的不一定就不会出现。这样我们就需要对统计结果进行平滑,使得结论更为可靠。

平滑的方法有很多,这里介绍一种基于遗忘假设的平滑公式。假设的任务为:我们要从一批语料中,统计每个字的字频。我们模仿人脑遗忘的过程,假设这个字出现一次,我们脑里的记忆量就增加1,但是如果一个周期内(先不管这个周期多大),这个字都没有出现,那么脑里的记忆量就变为原来的β比例。假设字是周期性出现的,那么记忆量An就满足如下递推公式
An+1=βAn+1
这个递推的通解是
An=1βn1β
其极限是
A=11β
我们认为,这个极限才是我们真正的统计结果,即平滑后的结果。

如果一个语料的总字数为N,而某字出现的频数为F,假设字是均匀分布的,那么该字的出现周期就为N/F。而我们可以假设,遗忘的规律是按指数下降变化的(由艾宾浩斯曲线猜测,参考:https://zh.wikipedia.org/wiki/遗忘曲线,或者读者可以自己猜测其他形式的遗忘规律),那么就存在小于1的常数α,使得
β=αN/F
这样,我们得到的数据平滑公式是
ˆF=11αN/F

再仔细分析一下这个公式。不难想到,α一定是非常接近于1的,不然一下子就遗忘光了。其次,我们应当期望,当F足够大的,平滑后的结果ˆF应该跟F接近才对,因为统计越充分结果越可信嘛。因此,我们假设当F=N时,ˆF=F,这时候应当乘上一个因子
ˆF=N(1α)1αN/F
这才是最终的平滑公式。

如果采用憨叔给出的结果,那么可以考虑使用
α=0.99999962...
不过,我们留意到,当F0时,有
ˆF=lim
这也意味着这个平滑公式给统计频数为0的字也分配了一个大于0的频数N(1-\alpha)。显然,固定\alpha在这里显得不大适合。倒不如反过来固定N(1-\alpha)?我们给没有出现过的字都赋予频数\gamma,那么解得
\alpha = 1 - \frac{\gamma}{N}
于是
\hat{F} = \frac{\gamma}{1-(1 - \gamma/N)^{N/F}}
这时候,我们从遗忘假设出发,得到了最终的、只带有一个具有清晰含义的参数的平滑公式。最后留意到当N足够大时,有
(1 - \gamma/N)^N \approx e^{-\gamma}
于是
\hat{F} \approx \frac{\gamma}{1-e^{-\gamma/F}}
这也不失为一个可用的平滑公式,最后我们来看它的泰勒展开
\hat{F} \approx \frac{\gamma}{1-e^{-\gamma/F}} = F + \frac{\gamma}{2} + \frac{\gamma^2}{12F^2}+\dots
如果只截取前两项,那么可以看到,事实上这种做法的效果,跟加1平滑法类似~这样,我们或许可以说,遗忘假设为加1平滑法提供了更充分的理论依据?

转载到请包括本文地址:https://spaces.ac.cn/archives/4182

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (Jan. 07, 2017). 《基于遗忘假设的平滑公式 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/4182

@online{kexuefm-4182,
        title={基于遗忘假设的平滑公式},
        author={苏剑林},
        year={2017},
        month={Jan},
        url={\url{https://spaces.ac.cn/archives/4182}},
}