hello,大家好,昨天呢,我们认真分享了有关tSNE的相关知识,文章在10X单细胞(10X空间转录组)降维分析之tSNE(算法基础知识),其中留了两个小尾巴,今天我们来认真解决一下,第一个是KL散度,这个需要点数学知识,我们先来解决,第二个就是我们在用Seurat分析单细胞数据函数RunTSNE的参数tsne.method,这个参数有两个选项,一个就是默认的Rtsne,另一个就是不怎么常用的FIt-SNE,那么对于FIt-SNE的认识,我们也需要分享一下,下一篇安排。
首先来讲KL散度
上篇文章我们知道,在机器学习中一般用KL散度来衡量两个概率分布之间的距离。那我们来详细了解一下KL散度,这里面有很深的知识背景,需要我们从最基础的地方开始。
KL散度又称相对熵,是两个概率分布(probability distribution)间差异的非对称性度量 [1] 。在信息理论中,相对熵等价于两个概率分布的信息熵(Shannon entropy)的差值(来源于百度百科)
那么了解KL散度,首先就知道知道什么是信息熵
确定性过程在数学里是司空见惯的现象。众所周知,一个函数的迭代过程是确定性的,因为下一个迭代点完全由当前已知的迭代点唯一地确定。譬如混沌学中著名的逻辑斯蒂模型 ,当等于0.1时的函数值必为0.36,而不会等于0.35或0.37。同样,一个微分方程初值问题的解也是确定性的:解在任一时刻的值是唯一确定的一个数。然而,和确定性现象一样, 随机现象在自然界也是到处可见的。小孩子们喜欢猜硬币正反面的游戏:将一枚五分钱的平整硬币在桌上旋转,然后猛地用手把它拍倒按住,猜猜是钱的正面朝上还是反面朝上。即便旋转过一百次都是正面朝上,第一百零一次旋转后,硬币正面朝上的或然率还是同一个概率值:。这就是典型的随机性,它意味着试验结果是不可确定的。如果历史上英国铸币局(牛顿(1643-1727)曾在这里当了几十年的局长)把钱币故意制成一个圆锥体陀螺形状,那么无论怎样旋转,待它最终停转时总是站在那里,也就是说正面总是朝上,这就是一个确定性的例子——旋转结果是可以预测的。人们认识到随机性的历史也许比数学史本身还要长,甚至可能就等于人类自己的历史——毕竟,孕妇肚子里怀的是儿子还是女儿,本身就是一个不可预测的随机事件问题。不确定性作为自然的基本属性,应该怎样用数学的语言去刻画呢?“熵”就是关于不确定性的一个极好的数学描述。历史上的熵概念起源于热力学。凡是学过热力学、统计物理或物理化学的人对“熵”这一术语都不陌生,但是这一概念发展的初始阶段却跟混沌思想并无任何历史瓜葛。实际上,当熵的名词诞生之时,混沌之祖庞加莱(Henri Poincare, 1854-1912)还只是一个乳臭未干的少年。当熵的触角从宏观的热力学伸展到微观的统计力学之后,才逐渐拉近它和混沌概念的距离。二十世纪中叶的一场信息论革命,无意中在古典熵的旧作坊内又酿造出醇香的新酒(写的很文艺吧,希望大家给个赞)。
信息熵
信息熵对需要交流的人类而言,通讯犹如吃饭睡觉一样重要。就像人类不断探索水稻增产一样,不断改进通讯质量与速度的科学研究一直是全世界方兴未艾的事业。1948年,博士毕业后就在贝尔实验室里研究通讯技术的电子工程师克劳德 • 香农(Claude Shannon, 1916-2001)在《贝尔系统技术杂志》(Bell System Technology Journal)上分两期发表了他一生中也许是最有名的一篇论文:《通讯的数学理论》(A mathematical theory of communications,1948),引入了一条全新的思路,震撼了整个科学技术界,开启了现代信息论研究的先河。在这一伟大的贡献中,他引进的“信息熵”之一般概念举足轻重:它在数学上量化了通讯过程中“信息漏失”的统计本质,具有划时代的意义。
克劳德 • 香农(Claude Shannon, 1916-2001),这个家伙居然活了85岁,2001年才去世,人才啊。
香农的信息熵本质上是对我们司空见惯的“不确定现象”的数学化度量。譬如说,如果天气预报说“今天中午下雨的可能性是百分之九十”,我们就会不约而同想到出门带伞;如果预报说“有百分之五十的可能性下雨”,我们就会犹豫是否带伞,因为雨伞无用时确是累赘之物。显然,第一则天气预报中,下雨这件事的不确定性程度较小,而第二则关于下雨的不确定度就大多了。
对于一般的不确定事件,我们怎样数学地刻画它的不确定程度呢?设想有n个“基本事件”,各自出现的概率分别为,则它们构成一个样本空间,可以简记为所谓的“概率数组” 。样本空间最简单的例子是我们上面提到的抛硬币游戏,它只有两个基本事件:抛硬币结果是“正面朝上”或“反面朝上”,其中每个事件的概率均为 ,其对应的样本空间为 。如果铸币厂别出心裁地将硬币做成两面不对称,使得抛硬币时正面朝上的概率增加到,而反面朝上的概率减少到,则对应的样本空间就是 。如果我们用符号 来表示第一个样本空间的不确定度,用数 代表第二个样本空间的不确定度,那么直觉马上告诉我们:数 大于数 ,也就是前者比后者更加不确定(不确定性越高,值越大)。
更一般地,若用 记样本空间 所对应的不确定度,运用同样的直觉分析,我们相信当所有的基本事件机会均等,即都有同样的概率时,其不确定度最大。因而,不确定度函数应该满足如下的基本不等式:对所有的加起来等于的非负“概率数” ,
。
如果我们不抛硬币,而像澳门赌场的常客那样掷骰子,每掷一次,小立方骰子的每一个面朝上的概率均为。想一想就知道,某个指定面朝上的不确定度应大于玩硬币时正面或反面朝上的不确定度。将这个直观发现一般化,我们就有不确定度函数 应该满足的单调性要求:
是自然数 的严格递增函数。
假设物理系赵教授、数学系钱教授和孙教授竞争理学院的一笔科研基金,他们每人申请成功的概率分别为。院长为求公平,让每个系得此奖励的机会均等。若物理系拿到资助,就到了赵教授的名下。如数学系得到了它,钱教授有的概率拿到,孙教授则有的机会到手。通过分析“条件概率”,我们能得出不确定度 的数值:这三个教授获得基金的不确定度,等于物理系或数学系拿到这笔基金的不确定度,加上数学系赢得该基金的概率与在数学系拿到基金的条件之下,钱教授或孙教授得到它的不确定度之乘积。换言之,。推而广之,可以得出不确定度与条件概率有关的“加权和”性质: (3) 如果一个不确定事件分解成几个持续事件,则原先事件的不确定度等于持续事件不确定度的加权和。
既然我们想用一个漂亮的数学公式来表达不确定度这一样本空间概率值函数,我们自然希望这个函数表达式和几乎所有的物理公式一样连续依赖于公式中的所有变元。这样,第四个条件就自然而然地加在了不确定度函数的头上:
(4) 对固定的自然数,不确定度函数 是 的一个连续函数。
香农无需什么高深的数学,甚至连微积分都可不要,就证明了:任何在所有样本空间上都有定义的函数,只要它满足以上的“三项基本原则 ”,就非如下的表达式莫属:,其中符号 代表以 为底的自然对数函数,可以是任意一个常数。并可证明,条件(1)自动满足(有兴趣的读者可用初等微积分证之)。当然,熵公式的证明需要的是一种创造的头脑思维、一手精湛的代数技巧、一个巧妙的极限思想。如果取成玻尔兹曼常数,它就能和当年吉布斯在统计热力学中得到的“吉布斯熵”一模一样。香农取 ,如此得到了非负函数:, 按照冯 • 诺依曼的建议,该函数被定义为样本空间 所对应的信息熵。现在,这个数被广称为“香农熵”,以纪念它的创造者、信息论之父——香农。
现在我们知道了,其实信息熵就是用来衡量我们得到信息的混乱度,我们作为外行,基本的特性需要知道,但是详细的算法非我所及啊,简单看一下
熵:
我们知道:当一个事件发生的概率为 ,那么它的信息量是 。
那么如果我们把这个事件的所有可能性罗列出来,就可以求得该事件信息量的期望,信息量的期望就是熵,所以熵的公式为:
假设 事件共有种可能,发生的概率为,那么该事件的熵为:
然而有一类比较特殊的问题,比如投掷硬币只有两种可能,字朝上或花朝上。买彩票只有两种可能,中奖或不中奖。我们称之为0-1分布问题(二项分布的特例),对于这类问题,熵的计算方法可以简化为如下算式:
相对熵(KL散度):
接下来就是KL散度了
上面说过了,讲的是两个信息熵的差值,如果我们对于同一个随机变量 有两个单独的概率分布 和 ,我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异。
在机器学习中,往往用来表示样本的真实分布,用来表示模型所预测的分布,那么KL散度就可以计算两个分布的差异,也就是Loss损失值。
从KL散度公式中可以看到的分布越接近(分布越拟合),那么散度值越小,即损失值越小。
因为对数函数是凸函数,所以KL散度的值为非负数。
有时会将KL散度称为KL距离,但它并不满足距离的性质:
- KL散度不是对称的;
- KL散度不满足三角不等式。
用在我们单细胞tSNE降维这里,就是上篇文章说到的情况了。
生活很好,有你更好