机器学习总结(基础):信息论、概率
本系列我们将总结机器学习基础并研究主要的机器学习(ML)算法。我们假设您对机器学习(ML)有了基本的接触,我们可能会跳过或仅仅简要介绍某些概念。
信息论
香农信息量(information content)是事件x发生时的信息增益量。在数学上,它被定义为
如果一枚硬币是有偏差的,并且总是正面朝上,那么事件是可以预测的,信息量为零。如果硬币是均匀的,那么概率分布是均匀的,到底发生了什么是最不可预测的,信息量最高。
在计算机科学中,我们把信息量看作是利用事件频率以最有效的编码方案编码信息的比特数。对于均匀硬币,正面编码方案为0b0,反面编码方案为0b1。为了便于讨论,log以2为底。抛一枚均匀硬币的正面或反面的信息内容为-log₂(½)= 1。当我们抛硬币一次时,我们得到了1位的信息。
如果X的值是随机过程的结果,例如掷骰子时的数字,则X称为随机变量。我们可以模拟从分布p(X)生成的X的值。根据中心极限定理,我们可以用高斯模型对X进行建模。
熵H测量随机变量的预期信息——事件的期望信息量是多少。因此,我们以等于事件频率(概率)的权重来总结所有信息量。
例如,在抛均匀硬币时,P(X =head)= 1/2,P(X =tail)= 1/2。它的熵等于
因此,我们只需要一位来编码每个事件。
交叉熵
交叉熵H(P, Q)通过一种针对分布Q的编码方案,测量用分布P编码X的期望比特数。
在机器学习(ML)中,我们希望我们的预测Q与ground truth值P匹配。我们将使用交叉熵作为我们的训练目标,以最小化ground truth值标签与我们的预测之间的差异。
该训练数据点的交叉熵计算结果为
许多分类问题的成本函数很简单
KL-散度
kl散度测量两个分布P和Q的差异。
KL-发散总是大于或等于零。
交叉熵、熵与KL散度的关系为:
由于熵不随模型参数而变化,因此优化KL散度与优化交叉熵相同。因此,在训练模型时,既可以优化交叉熵,也可以优化kl -散度。
kl散度有几个点需要注意
- KL(p,q)≥0
- KL(p,p)= 0
- KL(p,q)≠KL(q,p)(非对称)
KL(q, p)叫做逆KL散度。kl散度的非对称性具有非常重要的意义。例如,假设ground truth P是一个双峰分布(下面的蓝色曲线),我们想用single mode高斯分布(红色曲线)对其建模。如果使用KL散度 KL(p, q)作为训练目标函数,我们将得到(a)中的高斯分布,该高斯分布覆盖了ground truth p的两种模态,并且在两种模态之间的波谷处有一个峰值。如果使用逆KL-散度KL(q, p),我们将得到(b)或(c)中的一个局部最优。
对于KL(p,q),如果p(x)不为零,我们希望q(x)不为零。否则,如果q(x)很小,则KL值将很高。对于KL(q,p),如果P(x)为零,我们也希望Q(x)也为零。
可能更容易看到2D空间的差异。逆KL仅覆盖双峰ground truth实例中的一种模态,但Q的峰值将接近该模态之一的峰值。
问题的根源是,我们使用的是一个简单的模型,用于更复杂的ground truth。在一些问题领域,我们可能没有这个问题,因为两个模型都很接近。
条件熵
条件熵H(Y|X)是所有可能的X条件下Y的加权熵。计算公式为:
信息增益
互信息(或信息增益)I(X ; Y)是当观察到Y时在随机变量X上获得的信息。下面的数学定义并不直观。
用熵可以更好地理解它
直觉上,互信息通过了解X来衡量我们获得了多少信息?如果知道Y给出了关于X的所有信息,则条件熵H(X | Y)为零,因为不再需要关于X的信息。互信息I变为H(X)(或H(Y))。另一方面,如果知道Y不给我们关于X的信息,则条件熵是H(X)并且互信息是零。
例如,如果我们知道对象的标签(Y),我们就会获得有关其原始图像(X)的大量信息。我们不应该把它的图片误认为是其他对象。因此,信息增益I(X; Y)很高。让我们用集合来形象化。互信息是它的重叠。
如果随机变量X和Y不相关,则它们的交集为空,因此,互信息为零。如果随机变量X和Y相同,则H(X)= H(Y)= I(X; Y),知道Y与知道X的集合相同。
让我们简要介绍一下互信息的一些应用。在决策树中,我们选择一个条件来最大化I——这个条件通过根据分支条件分离数据来获得最大的信息。在另一个例子中,InfoGAN最大化了生成的图像G与其预期标签c之间的互信息。这鼓励GAN模型生成与其预期标签相关的图像。
概率
概率质量函数是离散变量的概率分布。例如,
概率密度函数(PDF)是具有小写符号p(x)的连续变量的概率分布。我们可以通过在这个范围内对它进行积分来计算两个值之间的概率。
累积分布函数(CDF):CDF计算累积概率p(X≤x)。
条件概率
独立性:如果两个随机变量A和B是独立的
边际概率:边际概率P(X)通过将联合概率与其他变量相加(或积分)来计算。
在许多机器学习(ML)问题中,我们为所有变量建立联合分布模型。一旦建模,我们可以通过对其余变量求和或积分来推断单个或一个变量子集(p(x 1)或p(x 1,x 2,x 3))的概率。
链式法则
贝叶斯定理
该等式看起来很简单,但它是机器学习(ML)中最重要的等式之一。
贝叶斯定理可以用不同的形式表示。
假设有一种遗传性疾病,只有0.1%的人患病。我们开发了一个测试,其正面和负面结果的准确率为99%。所以,如果你测试为阳性,你是否应该担心呢?直觉会说是,但实际上,贝叶斯定理证明你只有9%的几率得到这种疾病(证明)。
概率模型和非概率模型
通常,模型可以分类为概率模型和非概率模型。概率模型使用概率分布来模拟问题并进行预测。这些模型通常建立在MLE(最大似然估计)或MAP(最大后验估计)上。例如,在训练线性回归模型时,我们优化其参数w以最大化观察数据的可能性。非概率模型不使用分布来对它们进行建模。他们的一些例子包括聚类,SVM,决策树等......
贝叶斯推断与点估计
在贝叶斯定理中,我们感兴趣的是估计p(y|x)的分布。在给定观察到的变量x的情况下,贝叶斯推断可被视为推断未观察到的变量,如潜在因子,标签或模型参数θ。这不是点估计。我们估计一个概率曲线,给出了相应可能性的所有可能性。例如,我们不知道杂工的平均收费率(一个点估算),而是回答有关可能的费率问题。
在线性回归推理中,我们基于输入特征预测确定值(点估计)。例如,房屋的价格可以从平方英尺和房间数量计算(价格= a×平方英尺+ b×房间数+ c)。
在贝叶斯定理中,先验和可能性都是概率密度函数(PDF)。计算出的后验是PDF。利用贝叶斯定理,我们预测了一个值的分布以及这些值的确定性。与点估计相比,概率模型能更好地解释现实世界中的不确定性。
贝叶斯定理的优缺点
在一些机器学习(ML)问题中,建模P(y | x 1,x 2,x 3, ... )可能很难。如后面Naive Bayes定理所示,对于某些问题域,这个概率可以进一步分解为独立分量(P(x 1 | y)P(x 2 | y))...)。这使得建模和解决变得极其容易。此外,在早期实验阶段,由于我们还没有收集到足够的样本,证据很薄弱。但如果我们有一个坚实的先验信念,我们可以使用贝叶斯定理将新证据与信念结合起来。现在不要担心细节。
我们现在正在研究曲线而不是单点估计。一般来说,计算后验并不容易,即使方程看起来很简单。
疾病例子中的计算非常简单,因为状态数很小。然而,在高维空间或连续空间中,将先验和似然曲线相乘通常是难以处理的。
计算积分可能更难。我们需要推断一个联合概率并将其整合到y上。在许多问题中,x和/或y由许多变量组成(x =(x 1,x 2,x 3,...))。指数复杂度的诅咒很快就形成了。
在我们的机器学习系列中讨论的大部分机器学习(ML)算法都致力于简化或近似后验。例如,我们可以用高斯分布对先验和似然进行建模。后验分布为高斯分布,易于分析计算。
在ML中,模型训练也可以表示为贝叶斯推理中的后验
其中w是模型参数。分母中的边际概率总和超过w,不再是w的函数。因此,它不会改变。为了找到最优模型,我们可以忽略边际概率。通常,我们会在不评估边际概率的情况下找到最优解。
朴素贝叶斯定理
朴素贝叶斯定理通过探索变量的独立性来解决分类问题。如前所述,当P(x | y)更容易建模时,贝叶斯定理帮助我们求解P(y | x),即我们通过P (x₁, x₂, x₃,…| y)计算P(y | x 1,x 2,x 3,...),。但是,联合条件概率P(x 1,x 2,x 3,... | y)通常仍然过于复杂。x 1,x 2,...,xn的指数组合使得收集数据以进行估计变得非常困难。
但是我们可以假设x 1,x 2,x 3,...和xn彼此独立,将P(x 1,x 2,... | y)简化为P(x 1 | y)P(x 2 | y)... P(xn | y)..,因此,P(y | x)可以计算为
在ML中,利用独立性P(A, B) = P(A) P(B)或条件独立性P(A, B|C) = P(A|C) P(B|C)是避免指数复杂度和使问题易于处理的重要步骤。即使朴素贝叶斯算法中的变量相互独立通常是错误的,但从经验上看,这仍然是解决问题的有效简化。
让我们使用朴素贝叶斯定理来检测垃圾邮件。我们知道垃圾邮件可能经常使用哪些字词(例如“money”)。我们将P(x 1,x 2,... | y)简化为独立分量P(x 1 | y)P(x 2 | y)的乘法...我们使用贝叶斯定理来枚举是否是垃圾邮件,并选择下面计算值最高的分类。
在这个例子中,我们忽略了电子邮件中单词的频率。但是单词的频率是垃圾邮件的一个很好的指标。例如,“money”一词在垃圾邮件中出现的频率可能会更高。为了模拟它,我们可以使用泊松分布P(xⱼ|垃圾邮件),其中xⱼ代表一个特定的词。给定一个特定的词,对于垃圾邮件或非垃圾邮件,我们使用具有不同λ的泊松分布来相应地模拟这种字数的概率。