Antkillerfarm Hacking V7.0

数学狂想曲(四)——统计杂谈, Gabriel's Horn, 抛物线

2017-01-14

概率分布(1)

多项分布和狄利克雷分布(续)

和多项分布类似的还有Categorical Distribution:

  • 将一个小球放入k个桶,记变量X为k个桶内的小球个数,所以是一个向量,并且是One-hot的形式,因为这个小球只能在一个桶里面,所以是服从Categorical分布;

  • 将n个小球放入k个桶,记变量X为k个桶内的小球个数,是一个向量,并且向量元素的和为n,所以是服从多项分布。

参考:

http://cos.name/2013/01/lda-math-beta-dirichlet/

LDA-math-认识Beta/Dirichlet分布

http://www.cs.cmu.edu/~epxing/Class/10701-08s/recitation/dirichlet.pdf

Dirichlet Distribution, Dirichlet Process and Dirichlet Process Mixture

https://zhuanlan.zhihu.com/p/59550457

Categorical Distribution

Tweedie分布

Tweedie分布是一种泊松分布和伽马分布的复合分布。

其重要的调节参数p,当p=1,Tweedie就是Poisson分布,当p=2,Tweedie就是Gamma分布。\(1< p < 2\)的时候就变成Poisson和Gamma的复合分布。

https://mp.weixin.qq.com/s/UAXSGp0Lx_-HvIMEH3ttLg

tweedie回归在信贷业务中的应用

https://www.zhihu.com/question/442615310

有没有大佬可以讲解一下Tweedie分布对正态、泊松、伽马分布的统一,和后三个分布间的相互转换与区别?

各种概率分布的关系

参考:

http://www.math.wm.edu/~leemis/2008amstat.pdf

Univariate Distribution Relationships

http://www.math.wm.edu/~leemis/chart/UDR/UDR.html

上图的网页版

http://www.wzchen.com/s/probability_cheatsheet.pdf

Probability Cheatsheet v2.0

https://mp.weixin.qq.com/s/svNVryWhiGxWFBz0s0dX5g

概率论简史

https://zhuanlan.zhihu.com/p/158801020

深度学习那些需要掌握的概率分布

统计杂谈

统计模拟

统计模拟是数理统计中非常有用的工具之一, 它是利用计算机产生某概率模型的随机数,再通过这些随机数来模拟真实模型。

这方面的书籍首推Sheldon M.Ross所著的《Simulation》。

注:Sheldon M.Ross,斯坦福大学统计学博士(1968),UCB教授(1976~2004),南加州大学Industrial and Systems Engineering系主任。

以下仅记录一些简单的结论。

均匀分布

通过线性同余生成器(linear congruential generator, LCG)可以生成伪随机数,且该随机数满足均匀分布。

\[x_n=ax_{n-1}\quad \mathrm{modulo} \quad m\]

这里的a和m通常都是大质数。

正态分布

Box-Muller变换:如果随机变量\(U_1,U_2\)独立且\(U_1, U_2 \sim Uniform(0,1)\),

\[\begin{align} Z_0 & = \sqrt{-2\ln U_1} cos(2\pi U_2) \\ Z_1 & = \sqrt{-2\ln U_1} sin(2\pi U_2) \end{align}\]

则\(Z_0,Z_1\)独立且服从标准正态分布。

注:George Edward Pelham Box,1919~2013,英国统计学家。伦敦学院大学博士,先后供职于普林斯顿大学和威斯康辛-麦迪逊大学。Ronald Aylmer Fisher的女婿。英国皇家学会会员,美国统计协会主席,数理统计学会(这是一个国际组织)主席。

Mervin Edgar Muller,俄亥俄州立大学教授。

https://mp.weixin.qq.com/s?__biz=MzI1MTIzMzI2MA==&mid=2650561098&idx=1&sn=675375265279cce7fdb1ecd94fd7a549

生成特定分布随机数的方法

numpy实战

从上面的描述可以看出,统计模拟一般包括两步:

1.生成均匀分布的随机数(Random generator)。例如:numpy.random.randtf.random.uniform

2.通过采样(Draw samples)将分布变为特定分布。例如:numpy.random.multinomialtf.random.categorical

Mersenne Twister

LCG是最古老,也是最知名的伪随机序列生成器算法(Pseudorandom number generator, PRNG)。然而它也有一些缺点:

1.如果用于选择n维空间中的点,那么这些点至多会位于\((n! \cdot m)^{1/n}\)超平面(Marsaglia’s Theorem)。

2.当m为2的幂时,低阶比特周期较短。

因此,在Monte Carlo模拟或者加密算法领域,通常要使用更高质量的PRNG。

Mersenne Twister算法是1997年由Makoto Matsumoto(松本 眞)和Takuji Nishimura(西村 拓士)提出的算法。这种算法由于和梅森素数(Mersenne prime)有关,故名。

该算法最常见的实现基于梅森素数\(2^{19937}-1\),因此又被称为MT19937。原始的MT19937可以生成32位的随机数,它还有64位的版本:MT19937-64。

MT算法的实现也很多了,参见原作者的官网:

http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html


除了MT算法之外,Philox算法也是比较常用的,且后者更适合并行,速度也更快。

Philox原作者官网:

http://www.thesalmons.org/john/random123/

Philox算法的实现一般以philox_4x32_10的形式命名,它表明算法一次能生成4个32位的无符号数,10表示运算迭代的次数。

官方的代码由于要考虑各种兼容性,写的复杂无比,这里有一个精简版:

https://github.com/antkillerfarm/antkillerfarm_crazy/blob/master/Tool/Gcc/random/philox.c

还有一个进阶版,增加了多线程并行生成、均匀分布变换、正态分布变换的功能:

https://github.com/antkillerfarm/antkillerfarm_crazy/blob/master/Tool/Gcc/random/philox_1.c

这个算法能够并行的要害在于,它有两个寄存器:种子寄存器和状态寄存器。这两个中任意一个不同,都会生成不同的随机数序列。

类似的,在tf中有两组随机数生成器:tf.random.stateless_xxxtf.random.xxx

所谓的stateless是指,只要种子确定,每次运行都会生成相同的随机数序列。


https://bashtage.github.io/randomgen/index.html

这是一个RNG(Random Number Generation)项目,集成了多种算法。

参考:

https://blog.csdn.net/wuha391/article/details/78486021

随机算法mt19937

https://blog.csdn.net/caimouse/article/details/55668071

mt19937是什么鬼?

http://michaelbrundage.com/note/2005/01/05/random-number-generation/

这是一篇RNG方面的综述。

http://www.azillionmonkeys.com/qed/random.html

这篇blog讲述了将随机整数变为浮点数,需要注意的问题。

统计力学与组合优化

MCMC和Gibbs Sampling最早都是统计力学的概念,后来才被用于机器学习领域。现将统计力学与组合优化的对应关系罗列如下:

统计力学 组合优化
样本 问题实例
状态(构形) 构形
能量 代价函数
温度 控制参数
基态能量 最小代价
基态构形 最小构形

频率统计学派 vs. 贝叶斯学派

对数学史感兴趣的朋友,可以看看陈希孺院士的《数理统计学简史》一书。rickjin文章的内容有相当部分取自该书。

注:陈希孺,1934~2005,数理统计学家。1956年毕业于武汉大学数学系,1997年当选为中国科学院院士。

该书中关于频率统计学派和贝叶斯学派的争议,引起了我的注意。

频率统计学派是所谓的正统派,由于其简单且便于理解的特点,多数入门级的数理统计学教程,一般都是按照该学派的思路写的。

而贝叶斯学派可谓另辟蹊径,它和频率统计学派的差异,参见《机器学习(九)》。由于该派系的思想比较新颖,我一度以为它和频率统计学派的关系,就犹如相对论之于经典力学。

然而,陈希孺院士告诉我们,两者各有优劣,尚未到一方决出胜负的阶段。比如,贝叶斯学派的先验估计,既是其成功的奥秘,也是其不成功的软肋。比如,对于“无信息先验分布”,目前尚处于“信则灵,不信则无”的境地。

陈院士的观点是:各取所长,为我所用

近年来,贝叶斯学派的广泛应用,更多的原因在于计算机的计算能力大幅提升之后,由于随机样本获取成本的下降,导致了蒙特卡洛方法大行其道。

参考:

https://mp.weixin.qq.com/s/uFeyZ-6gFo2oOYKTnt2R9Q

揭示贝叶斯公式应用中的认识误区

https://mp.weixin.qq.com/s/AsZyjwUclEoxxl2VRBekHA

拟合目标函数后验分布的调参利器:贝叶斯优化

https://mp.weixin.qq.com/s/psMlGLOZcmX-SmEKr2gUOg

从贝叶斯定理到概率分布:综述概率论基本定义

http://mp.weixin.qq.com/s/axwRMb8lCyMEh2WGIZR1rA

实例详解贝叶斯推理的原理

https://mp.weixin.qq.com/s/rTpmFvgRC-cKbVxQkygdNQ

从概率论到多分类问题:综述贝叶斯统计分类

https://mp.weixin.qq.com/s/TQfaBddaDh_jIhcaKJFx7w

概率论之概念解析:用贝叶斯推断进行参数估计

https://mp.weixin.qq.com/s/i4G2k5yZZV_Q8U4T30XX2A

概率论之概念解析:边缘化(Marginalisation)

https://mp.weixin.qq.com/s/Jcwxx5oxACjDEVZr9qgPGQ

一个我们几乎每天都在使用的数学工具

https://mp.weixin.qq.com/s/vuFBY99-TDdyQELcUdXjTQ

浅谈贝叶斯和MCMC

https://mp.weixin.qq.com/s/eIiFLW5pShrCnK5mZalLSw

贝叶斯统计数据如何说服我去健身房

Gabriel’s Horn

Gabriel’s Horn,又名托里拆利小号(Torricelli’s trumpet),是数学史上非常经典的模型。它最早由Evangelista Torricelli提出,故名。

注:Evangelista Torricelli,1608~1647,意大利物理学家和数学家。主要研究气压、水压,提出了托里拆利原理,并发明了气压计。

上图是Gabriel’s Horn的图像,它由\(y=\frac{1}{x}(x>1)\)绕x轴旋转得到。Torricelli发现Gabriel’s Horn是个体积有限,而表面积无限的形状。

\[V=\pi\int\limits_1^a\left(\frac{1}{x}\right)^2\mathrm{d}x=\pi\left(1-\frac{1}{a}\right)\] \[\lim_{a\to\infty}V=\lim_{a\to\infty}\pi\left(1-\frac{1}{a}\right)=\pi\cdot\lim_{a\to\infty}\left(1-\frac{1}{a}\right)=\pi\] \[A=2\pi\int\limits_1^a {\frac{1}{x}}\sqrt{1+\left(-\frac{1}{x^2}\right)^2}\mathrm{d}x > 2\pi\int\limits_1^a \frac{\mathrm{d}x}{x}=2\pi\ln(a)\] \[\lim_{a\to\infty}A\ge\lim_{a\to\infty}2\pi\ln(a)=\infty\]

但是反过来的情况,即表面积有限,而体积无限的情况,也就是所谓的Gabriel’s horn逆现象,是不存在的。——实际上,众所周知的是表面积一定的形状中,球形体积最大。

Gabriel’s horn现象不仅存在于表面积/体积中,也存在于长度/面积中,即所谓的无限长海岸线问题。对此的进一步研究,开拓了数学中的分形几何领域。

抛物线

我们都知道抛物线只有一个焦点,而椭圆、双曲线有两个焦点,但是对于真正天体的运行来说,其实只有一个焦点是有意义的,就是中心恒星的位置;另一个焦点没有实在的意义。这两个焦点中任取一个就可以构成这条圆锥曲线,而取哪一个作为恒星位置都是一样的。因为对于椭圆、双曲线来说,这两个焦点是对称的。

Fork me on GitHub