概率论与信息论,这也是学习机器学习和深度学习的重要数学基础。1 概率基础1.1 随机变量与概率分布随机变量(Random Variable):用一个变量表示随机试验可能产生的结果。例如,抛一枚硬币,定义随机变量:如果硬币是均匀的,那么:概率分布(Probability Distribution):描述随机变量可能取什么值,以及每个值出现的概率是多少。可以理解为一张“所有可能结果及其概率”的清单。1.2 三种常见概率概念含义例子联合概率 P(A, B)A 和 B 同时发生的概率今天下雨且刮风边缘概率 P(A)只关心 A 发生的概率今天下雨条件概率 P(A | B)已知 B 发生时,A 发生的概率已知刮风,今天下雨的概率条件概率公式:前提是重点: 条件概率不是简单地说“A 和 B 有关系”,而是在已知 B 发生的条件下,重新计算 A 的概率。1.3 独立性与贝叶斯公式如果事件 A 和 B 相互独立,那么:直观地说,知道 B 是否发生,不会改变 A 发生的概率。贝叶斯公式则是:它可以帮助我们利用已经观察到的结果,反过来推断某个原因发生的可能性。例如,在网络安全中,观察到一封邮件包含可疑特征后,可以利用贝叶斯思想分析它属于恶意邮件的概率。但实际判断还需要考虑数据、先验概率和模型假设。1.4 期望与方差期望(Expectation):随机变量长期来看平均会取到什么值。离散随机变量的期望为:例如,均匀硬币对应的随机变量 \(X\) 取 0 或 1,各自概率为 0.5:方差(Variance):衡量随机变量围绕期望值的波动程度。方差越大,通常表示数据围绕平均值的波动越大。小结:随机变量:用变量表示随机结果。概率分布:描述各种结果的概率。条件概率:已知一个事件发生后,计算另一个事件的概率。独立性:一个事件是否发生不改变另一个事件的概率。期望:平均水平。方差:波动程度。2 信息论2.1 信息量(Information Content)信息论研究如何描述、度量和处理信息。先想一个问题:“明天太阳从东方升起。”——这件事几乎可以预料到。“明天突然下起了冰雹。”——如果原本很难预料,这条消息就更令人意外。一件事发生的概率越低,它发生时带来的信息量通常越大。数学上,事件的信息量可以写成:其中::事件发生的概率。:对数函数。负号:确保概率越小,信息量越大。例如,使用以 2 为底的对数:事件概率信息量P(x)=10 bitP(x)=1/21 bitP(x)=1/42 bitP(x)=1/83 bit直观理解:越难预测的事情,一旦发生,就越能提供新信息。2.2 熵(Entropy)如果信息量描述的是“某一次事件带来了多少信息”,那么熵描述的是一个随机变量整体的不确定性。离散随机变量的熵为:你可以把它理解成:把每种可能结果的信息量,按照它发生的概率进行加权平均。以抛硬币为例:假设现在有两枚硬币分别为:1、公平硬币正反面概率各为 0.5,结果最难提前确定。2、几乎必然正面的硬币假设正面概率为 0.99,反面为 0.01,结果比较容易预测。注:这里的计算使用以 2 为底的对数。小结:结果越难预测,熵通常越高。结果越确定,熵越低。对于只有两种可能结果的随机变量,当两种结果概率相等时,熵达到最大值。注意,熵衡量的是不确定性,不是说一个事件本身“好”或“坏”。2.3 交叉熵(Cross-Entropy)是深度学习里最重要的概念之一,因为分类任务经常使用交叉熵作为损失函数。假设模型要识别一张图片里是什么动物,真实答案是“猫”。真实标签和模型预测结果可以表示成概率分布:交叉熵的定义是:这里要区分两个分布::真实分布,也就是正确答案。:模型预测的概率分布。在上面的例子中,真实标签是猫,因此:如果模型只给猫 0.1 的概率,损失就会变成:预测越偏离真实答案,交叉熵损失通常越大;给正确答案的概率越高,损失越小。这就是模型训练时不断调整参数的一个重要目标。2.4 KL 散度(Kullback–Leibler Divergence)KL 散度用于衡量两个概率分布之间的差异,也可以直观地理解为:如果真实分布是,却使用来描述它,会产生多大的分布差异。定义为:它有几个重要性质:。当两个分布相同时,KL 散度为 0。一般情况下,,因此它不是严格意义上的对称距离。2.5 交叉熵和 KL 散度有什么关系?这是一个值得理解的公式:其中::真实分布自身的熵。:真实分布与预测分布之间的差异。:交叉熵。对于固定的真实分布,是常数。因此,最小化交叉熵,相当于最小化 KL 散度。这也解释了为什么交叉熵能有效训练分类模型。小结:概念衡量什么深度学习中的作用信息量单个事件带来的信息理解概率与信息的关系熵一个分布的不确定性分析分布、衡量不确定性交叉熵真实分布与预测分布对应的编码代价常用分类损失函数KL 散度两个概率分布之间的差异分布匹配、变分推断等补充一点:交叉熵和 KL 散度都依赖于所使用的对数底数。使用以 2 为底的对数时,信息量的单位是 bit;使用自然对数时,单位通常记为 nat 。深度学习代码中的一般指自然对数。3 采样(Sampling)3.1 什么是采样?简单来说,采样,就是按照某个概率分布,随机抽取一个结果。假设有一个装着 10 个球的袋子:袋子里有 5 个红球、5 个蓝球。现在闭上眼睛随机摸出一个球:摸到红球的概率是 5/10 = 0.5 。摸到蓝球的概率是 5/10 = 0.5 。你实际摸出来的那个球,就是一次采样的结果。如果放回去再摸一次,就进行了一次新的采样。每次结果可能相同,也可能不同。这里有三个要素:概率分布:红球和蓝球各占多少概率。采样过程:按照这些概率随机抽取。采样结果:这一次实际抽到了什么。所以,采样不是重新计算概率,也不是一定选概率最大的结果,而是根据已有的概率分布随机产生结果。3.2 采样和选择最大概率,有什么区别?假设一个 AI 模型判断下一句话可能出现哪个词,给出了以下概率:候选词模型给出的概率苹果70%香蕉20%橘子10%现在有两种选择结果的方式。方法一:选择最大概率(Argmax)(确定性选择)直接选择概率最大的词。结果:每次都选择“苹果”。方法二:按照概率采样(随机选择)按照 70%、20%、10% 的概率随机选择。大约 70% 的抽样结果会是苹果。大约 20% 的抽样结果会是香蕉。大约 10% 的抽样结果会是橘子。你可以把它们理解为:Argmax 问的是:哪个结果的概率最高?采样问的是:按照这些概率,随机产生一个什么结果?3.3 为什么深度学习需要采样?注:这里我们例举几个简单应用。3.3.1 文本生成例如,你让大语言模型续写一句话。模型认为下一个词可能是:“今天”:概率 0.6“明天”:概率 0.3“昨天”:概率 0.1如果每次都只选择最大概率的词,生成过程会比较确定。如果使用采样,模型就有机会选择其他合理的词,从而产生不同的表达。这就是为什么采样可以增加生成结果的多样性。3.3.2 训练神经网络假设训练集里有 10 万张图片,但每次训练都把 10 万张图片全部输入模型,计算开销会很大。一种常见做法是,每次抽取一小批图片,例如 64 张,用这一批数据计算损失并更新参数。这叫作小批量训练(Mini-batch Training),其中就涉及从数据集中抽取样本。这里需要区分两件事:从数据集中抽取训练样本;从模型输出的概率分布中抽取生成结果。它们都叫采样,但采样对象不同。3.3.3 估计复杂的数学量有些数学期望或概率计算起来很复杂,甚至无法直接计算。此时可以随机抽取大量样本,再根据样本结果估计所需的数值。例如,重复掷骰子 1000 次,用点数的平均值估计骰子的期望点数。这是采样用于近似计算的简单例子。4 结构化概率模型(Structured Probabilistic Models)4.1 为什么需要结构化概率模型?首先我们先看一个简单例子。假设我们要建立一个模型,判断一个人是否感冒。我们考虑三个随机变量::是否感冒:是否发烧:是否咳嗽每个变量只有两种取值:是或否。如果直接描述三个变量的联合概率,就需要考虑所有可能的组合。例如:是否感冒 D是否发烧 F是否咳嗽 C是是是是是否是否是是否否否是是否是否否否是否否否三个二元变量一共有种组合。如果变量增加到 20 个,每个变量仍然只有两种取值,那么组合数量就会达到:变量越多,直接描述完整联合分布就越麻烦。结构化概率模型的核心思路,就是利用变量之间的关系来组织概率分布,避免把所有可能的组合都当成互不相关的情况来处理。注意,它并不是让所有计算都自动变得简单,而是通过合理的结构,让模型能够利用变量之间的依赖关系。4.2 用图来表示变量之间的关系结构化概率模型经常用图描述随机变量之间的关系。先看一个简化的感冒模型:这里有三个节点和两条箭头:节点:代表随机变量,例如是否感冒。箭头:表示模型中设定的概率依赖关系。图结构:把变量之间的关系直观地表示出来。这个例子中,我们假设发烧和咳嗽的概率都与是否感冒有关。箭头表示模型的结构设定,但不能仅凭箭头就认定现实中一定存在因果关系。4.3 有向图模型与无向图模型这是需要区分的两个重要概念。1. 有向图模型(Directed Graphical Model)边有方向,例如。典型例子:贝叶斯网络。它通过有方向的图组织变量之间的概率关系。2. 无向图模型(Undirected Graphical Model)边没有方向,例如。典型例子:马尔可夫随机场。它用无方向的边表示变量之间的关联结构。可以简单记忆:有向图看箭头方向,无向图看节点之间是否相连。两者都是表达概率关系的工具,但它们的数学定义和概率分解方式不同。4.4 结构化概率模型有什么用?主要有三个方面:表示依赖关系:清楚地描述哪些变量与哪些变量有关。简化概率建模:利用变量之间的结构,避免无必要地单独描述所有组合。辅助推断和采样:根据模型结构,计算未知变量的概率,或者从模型中生成样本。在深度学习中,这些思想与概率推断、生成模型等方向有关。最后的话感谢你的阅读。如果你喜欢我的文章,或者对深度学习感兴趣,欢迎关注我的“深入浅出深度学习”专栏,希望能对你有所帮助。我们下期再见՞˶•⩊•˶՞ಣ
概率论与信息论,这也是学习机器学习和深度学习的重要数学基础。1 概率基础1.1 随机变量与概率分布随机变量(Random Variable):用一个变量表示随机试验可能产生的结果。例如,抛一枚硬币,定义随机变量:如果硬币是均匀的,那么:概率分布(Probability Distribution):描述随机变量可能取什么值,以及每个值出现的概率是多少。可以理解为一张“所有可能结果及其概率”的清单。1.2 三种常见概率概念含义例子联合概率 P(A, B)A 和 B 同时发生的概率今天下雨且刮风边缘概率 P(A)只关心 A 发生的概率今天下雨条件概率 P(A | B)已知 B 发生时,A 发生的概率已知刮风,今天下雨的概率条件概率公式:前提是重点: 条件概率不是简单地说“A 和 B 有关系”,而是在已知 B 发生的条件下,重新计算 A 的概率。1.3 独立性与贝叶斯公式如果事件 A 和 B 相互独立,那么:直观地说,知道 B 是否发生,不会改变 A 发生的概率。贝叶斯公式则是:它可以帮助我们利用已经观察到的结果,反过来推断某个原因发生的可能性。例如,在网络安全中,观察到一封邮件包含可疑特征后,可以利用贝叶斯思想分析它属于恶意邮件的概率。但实际判断还需要考虑数据、先验概率和模型假设。1.4 期望与方差期望(Expectation):随机变量长期来看平均会取到什么值。离散随机变量的期望为:例如,均匀硬币对应的随机变量 \(X\) 取 0 或 1,各自概率为 0.5:方差(Variance):衡量随机变量围绕期望值的波动程度。方差越大,通常表示数据围绕平均值的波动越大。小结:随机变量:用变量表示随机结果。概率分布:描述各种结果的概率。条件概率:已知一个事件发生后,计算另一个事件的概率。独立性:一个事件是否发生不改变另一个事件的概率。期望:平均水平。方差:波动程度。2 信息论2.1 信息量(Information Content)信息论研究如何描述、度量和处理信息。先想一个问题:“明天太阳从东方升起。”——这件事几乎可以预料到。“明天突然下起了冰雹。”——如果原本很难预料,这条消息就更令人意外。一件事发生的概率越低,它发生时带来的信息量通常越大。数学上,事件的信息量可以写成:其中::事件发生的概率。:对数函数。负号:确保概率越小,信息量越大。例如,使用以 2 为底的对数:事件概率信息量P(x)=10 bitP(x)=1/21 bitP(x)=1/42 bitP(x)=1/83 bit直观理解:越难预测的事情,一旦发生,就越能提供新信息。2.2 熵(Entropy)如果信息量描述的是“某一次事件带来了多少信息”,那么熵描述的是一个随机变量整体的不确定性。离散随机变量的熵为:你可以把它理解成:把每种可能结果的信息量,按照它发生的概率进行加权平均。以抛硬币为例:假设现在有两枚硬币分别为:1、公平硬币正反面概率各为 0.5,结果最难提前确定。2、几乎必然正面的硬币假设正面概率为 0.99,反面为 0.01,结果比较容易预测。注:这里的计算使用以 2 为底的对数。小结:结果越难预测,熵通常越高。结果越确定,熵越低。对于只有两种可能结果的随机变量,当两种结果概率相等时,熵达到最大值。注意,熵衡量的是不确定性,不是说一个事件本身“好”或“坏”。2.3 交叉熵(Cross-Entropy)是深度学习里最重要的概念之一,因为分类任务经常使用交叉熵作为损失函数。假设模型要识别一张图片里是什么动物,真实答案是“猫”。真实标签和模型预测结果可以表示成概率分布:交叉熵的定义是:这里要区分两个分布::真实分布,也就是正确答案。:模型预测的概率分布。在上面的例子中,真实标签是猫,因此:如果模型只给猫 0.1 的概率,损失就会变成:预测越偏离真实答案,交叉熵损失通常越大;给正确答案的概率越高,损失越小。这就是模型训练时不断调整参数的一个重要目标。2.4 KL 散度(Kullback–Leibler Divergence)KL 散度用于衡量两个概率分布之间的差异,也可以直观地理解为:如果真实分布是,却使用来描述它,会产生多大的分布差异。定义为:它有几个重要性质:。当两个分布相同时,KL 散度为 0。一般情况下,,因此它不是严格意义上的对称距离。2.5 交叉熵和 KL 散度有什么关系?这是一个值得理解的公式:其中::真实分布自身的熵。:真实分布与预测分布之间的差异。:交叉熵。对于固定的真实分布,是常数。因此,最小化交叉熵,相当于最小化 KL 散度。这也解释了为什么交叉熵能有效训练分类模型。小结:概念衡量什么深度学习中的作用信息量单个事件带来的信息理解概率与信息的关系熵一个分布的不确定性分析分布、衡量不确定性交叉熵真实分布与预测分布对应的编码代价常用分类损失函数KL 散度两个概率分布之间的差异分布匹配、变分推断等补充一点:交叉熵和 KL 散度都依赖于所使用的对数底数。使用以 2 为底的对数时,信息量的单位是 bit;使用自然对数时,单位通常记为 nat 。深度学习代码中的一般指自然对数。3 采样(Sampling)3.1 什么是采样?简单来说,采样,就是按照某个概率分布,随机抽取一个结果。假设有一个装着 10 个球的袋子:袋子里有 5 个红球、5 个蓝球。现在闭上眼睛随机摸出一个球:摸到红球的概率是 5/10 = 0.5 。摸到蓝球的概率是 5/10 = 0.5 。你实际摸出来的那个球,就是一次采样的结果。如果放回去再摸一次,就进行了一次新的采样。每次结果可能相同,也可能不同。这里有三个要素:概率分布:红球和蓝球各占多少概率。采样过程:按照这些概率随机抽取。采样结果:这一次实际抽到了什么。所以,采样不是重新计算概率,也不是一定选概率最大的结果,而是根据已有的概率分布随机产生结果。3.2 采样和选择最大概率,有什么区别?假设一个 AI 模型判断下一句话可能出现哪个词,给出了以下概率:候选词模型给出的概率苹果70%香蕉20%橘子10%现在有两种选择结果的方式。方法一:选择最大概率(Argmax)(确定性选择)直接选择概率最大的词。结果:每次都选择“苹果”。方法二:按照概率采样(随机选择)按照 70%、20%、10% 的概率随机选择。大约 70% 的抽样结果会是苹果。大约 20% 的抽样结果会是香蕉。大约 10% 的抽样结果会是橘子。你可以把它们理解为:Argmax 问的是:哪个结果的概率最高?采样问的是:按照这些概率,随机产生一个什么结果?3.3 为什么深度学习需要采样?注:这里我们例举几个简单应用。3.3.1 文本生成例如,你让大语言模型续写一句话。模型认为下一个词可能是:“今天”:概率 0.6“明天”:概率 0.3“昨天”:概率 0.1如果每次都只选择最大概率的词,生成过程会比较确定。如果使用采样,模型就有机会选择其他合理的词,从而产生不同的表达。这就是为什么采样可以增加生成结果的多样性。3.3.2 训练神经网络假设训练集里有 10 万张图片,但每次训练都把 10 万张图片全部输入模型,计算开销会很大。一种常见做法是,每次抽取一小批图片,例如 64 张,用这一批数据计算损失并更新参数。这叫作小批量训练(Mini-batch Training),其中就涉及从数据集中抽取样本。这里需要区分两件事:从数据集中抽取训练样本;从模型输出的概率分布中抽取生成结果。它们都叫采样,但采样对象不同。3.3.3 估计复杂的数学量有些数学期望或概率计算起来很复杂,甚至无法直接计算。此时可以随机抽取大量样本,再根据样本结果估计所需的数值。例如,重复掷骰子 1000 次,用点数的平均值估计骰子的期望点数。这是采样用于近似计算的简单例子。4 结构化概率模型(Structured Probabilistic Models)4.1 为什么需要结构化概率模型?首先我们先看一个简单例子。假设我们要建立一个模型,判断一个人是否感冒。我们考虑三个随机变量::是否感冒:是否发烧:是否咳嗽每个变量只有两种取值:是或否。如果直接描述三个变量的联合概率,就需要考虑所有可能的组合。例如:是否感冒 D是否发烧 F是否咳嗽 C是是是是是否是否是是否否否是是否是否否否是否否否三个二元变量一共有种组合。如果变量增加到 20 个,每个变量仍然只有两种取值,那么组合数量就会达到:变量越多,直接描述完整联合分布就越麻烦。结构化概率模型的核心思路,就是利用变量之间的关系来组织概率分布,避免把所有可能的组合都当成互不相关的情况来处理。注意,它并不是让所有计算都自动变得简单,而是通过合理的结构,让模型能够利用变量之间的依赖关系。4.2 用图来表示变量之间的关系结构化概率模型经常用图描述随机变量之间的关系。先看一个简化的感冒模型:这里有三个节点和两条箭头:节点:代表随机变量,例如是否感冒。箭头:表示模型中设定的概率依赖关系。图结构:把变量之间的关系直观地表示出来。这个例子中,我们假设发烧和咳嗽的概率都与是否感冒有关。箭头表示模型的结构设定,但不能仅凭箭头就认定现实中一定存在因果关系。4.3 有向图模型与无向图模型这是需要区分的两个重要概念。1. 有向图模型(Directed Graphical Model)边有方向,例如。典型例子:贝叶斯网络。它通过有方向的图组织变量之间的概率关系。2. 无向图模型(Undirected Graphical Model)边没有方向,例如。典型例子:马尔可夫随机场。它用无方向的边表示变量之间的关联结构。可以简单记忆:有向图看箭头方向,无向图看节点之间是否相连。两者都是表达概率关系的工具,但它们的数学定义和概率分解方式不同。4.4 结构化概率模型有什么用?主要有三个方面:表示依赖关系:清楚地描述哪些变量与哪些变量有关。简化概率建模:利用变量之间的结构,避免无必要地单独描述所有组合。辅助推断和采样:根据模型结构,计算未知变量的概率,或者从模型中生成样本。在深度学习中,这些思想与概率推断、生成模型等方向有关。最后的话感谢你的阅读。如果你喜欢我的文章,或者对深度学习感兴趣,欢迎关注我的“深入浅出深度学习”专栏,希望能对你有所帮助。我们下期再见՞˶•⩊•˶՞ಣ