【鼠鼠学AI代码合集#7】概率

机器学习与概率——理解预测的核心

1. 机器学习的本质:基于数据做预测

机器学习的核心目标是基于已有的数据来进行预测和推断。在不同领域,机器学习的应用场景广泛,但背后的逻辑都是基于概率模型来估计某种事件发生的可能性。以下是几个典型应用场景:

  • 临床医学: 根据患者的临床病史预测未来一段时间内心脏病发作的概率。
  • 工业监测: 通过分析飞机发动机的读数,判断其是否正常运行。
  • 推荐系统: 评估用户购买某种商品的概率,进而做个性化推荐。
  • 强化学习: 通过智能体在环境中采取不同行为,来评估某个策略的回报概率。

这些任务的共同点在于都涉及概率的估计,而这就是为什么机器学习通常依赖概率论的工具和方法。

2. 概率在机器学习中的作用

概率是描述不确定性的一种语言。通过概率论,我们可以量化模型在给定数据下的预测可信度。理解概率的基础知识是构建有效机器学习模型的必要前提。

基础概率示例
  1. 图像分类问题:识别猫和狗
    当我们处理图像识别任务时,如区分猫和狗,模型需要根据图像的特征估计每个类别的概率。图像的分辨率会直接影响分类难度:

    • 高分辨率(如160×160像素)时,人和机器都容易区分。
    • 低分辨率(如10×10像素)时,模型的预测会充满不确定性。

    这时可以使用概率来表达模型的信心。举例来说:

    • 如果模型非常肯定图像是一只猫,可以设定 P(y=“猫”) = 1
    • 如果模型完全没有信息支持某个类别,可以均匀分配概率,即 P(y=“猫”) = P(y=“狗”) = 0.5
    • 如果模型比较倾向于猫,但还不确定,可以设定 0.5 < P(y=“猫”) < 1
  2. 随机事件:天气预测
    在天气预测中,假设给定夏季的监测数据,我们可能会估计北京明天降雨的概率为 50%。这种情况下,降雨本身是一个随机事件,无法用二选一的方式描述。因此,概率更像是一种对未来事件的不确定性评估。

两种不确定性的区别:
  • 图像分类(确定性类别): 图像不是猫就是狗,类别是确定的(只是我们不确定),因此概率用于表示我们对某个类别的置信度。
  • 天气预测(随机事件): 天气是未来的随机事件,不存在明确的确定性,而概率是对事件发生可能性的表达。
3. 为什么学习概率?

概率学是理解机器学习模型的基础。无论是从构建分类模型、预测模型,还是设计智能体的策略,都需要概率知识来量化和处理不确定性。因此,在机器学习的学习过程中,掌握概率论的基础知识至关重要。

4. 机器学习中的实际应用
  • 分类任务: 根据输入特征预测不同类别的概率,如判断邮件是垃圾邮件的概率。
  • 回归任务: 预测连续变量的分布,如房价的概率分布。
  • 强化学习: 评估在某种策略下获得高回报的概率,从而指导智能体的行动。

2基本概率论

1. 基本概念:概率与大数定律

概率是衡量一个事件发生的可能性的数学量化指标。我们可以通过概率分布来描述所有可能结果的概率总和为 1 的分配。概率论中有一个重要的性质,称为大数定律,它揭示了当实验次数足够多时,实际观测到的相对频率会逐渐逼近真实概率。

  • 大数定律: 随着实验次数增加,事件的相对频率会逐渐接近其真实概率。

示例:掷骰子
如果我们掷一个公平的六面骰子,它的六个结果 {1, 2, 3, 4, 5, 6} 发生的概率是相同的,每个结果的概率为 1/6 ≈ 0.167。为了验证这个结论,我们可以通过多次掷骰子来估计每个结果出现的相对频率。根据大数定律,随着掷骰次数的增加,每个点数的相对频率将会收敛于 1/6。

2. 多项分布与抽样

在概率论中,多项分布(Multinomial Distribution) 是用于处理离散事件的分布形式。多项分布描述了在 n 次独立试验中,每个事件发生的次数分配情况。它的参数包括:

  • 试验次数 n(如掷骰子的次数)
  • 事件的概率向量 p(如骰子每个面出现的概率)

抽样(Sampling): 抽样是从概率分布中抽取样本的过程。它可以被看作是生成一个随机序列,目的是了解某个分布的特征。

  • 使用 torch.distributions.multinomial.Multinomial 函数可以实现多项分布的抽样。

示例代码:

import torch
from torch.distributions import multinomial

# 定义一个公平骰子的概率分布
fair_probs = torch.ones([6]) / 6

# 抽取1次样本
single_sample = multinomial.Multinomial(1, fair_probs).sample()
print(single_sample)  # 输出:tensor([0., 0., 1., 0., 0., 0.]),表示第3个事件出现了1次

# 抽取10次样本
multiple_samples = multinomial.Multinomial(10, fair_probs).sample()
print(multiple_samples)  # 例如:tensor([5., 3., 2., 0., 0., 0.]),表示第1个事件出现5次,依次类推
3. 模拟与实验

为了验证多项分布的理论,我们可以进行大量模拟实验。以下是一个具体的实验步骤:

  1. 生成数据: 模拟多次掷骰子(如1000次),记录每个点数出现的频率。
  2. 估计概率: 通过计算每个点数的相对频率,得到每个点数的估计概率。

代码示例:

import torch
from torch.distributions import multinomial

# 定义一个公平骰子的概率分布
fair_probs = torch.ones([6]) / 6
# 1000次投掷骰子
counts = multinomial.Multinomial(1000, fair_probs).sample()
estimated_probabilities = counts / 1000
print(estimated_probabilities)  # 例如:tensor([0.155, 0.182, 0.177, 0.171, 0.160, 0.155])

上面代码中,我们通过1000次掷骰子估计每个面出现的概率。由于数据是从一个公平骰子的分布生成的,因此每个面出现的概率大约接近 0.167。

4. 实验频率的收敛性

为了进一步研究概率的收敛性,我们可以进行多组实验(例如500组,每组10次抽样),并观察相对频率如何随实验次数增加而趋于真实值。

代码实现:

import torch
from torch.distributions import multinomial

# 定义一个公平骰子的概率分布
fair_probs = torch.ones([6]) / 6

# 500组实验,每组10次投掷
counts = multinomial.Multinomial(10, fair_probs).sample((500,))
cum_counts = counts.cumsum(dim=0)  # 计算累计次数
estimates = cum_counts / cum_counts.sum(dim=1, keepdims=True)  # 计算相对频率

# 绘制收敛图
import matplotlib.pyplot as plt
for i in range(6):
    plt.plot(estimates[:, i].numpy(), label=f"P(die={i+1})")
plt.axhline(y=0.167, color='black', linestyle='dashed')  # 真实概率值
plt.xlabel('Groups of experiments')
plt.ylabel('Estimated probability')
plt.legend()
plt.show()

在这里插入图片描述

  • 图中含义: 实线表示6个面每组实验后的估计概率。随着实验次数的增加,各条曲线逐渐收敛到理论值 1/6,表明估计值越来越接近真实概率。
5. 总结与应用

通过模拟实验,我们验证了大数定律的正确性:在随机实验中,随着实验次数的增加,事件的相对频率会越来越接近理论概率。多项分布为我们提供了处理离散概率分布的工具,并可以广泛应用于机器学习的分类、预测、推荐系统等问题中。

  • 应用场景:
    • 通过多项分布预测分类模型中不同类别的概率。
    • 在强化学习中,通过采样来评估不同策略的收益分布。
    • 用于推荐系统中估计用户偏好的概率分布。

理解这些基本概率知识,将为进一步的概率模型(如贝叶斯模型、隐马尔可夫模型)和复杂机器学习模型(如深度学习中的概率推断)打下坚实基础

概率论公理笔记

1. 样本空间(Sample Space)与事件(Event)

在概率论中,我们首先要定义样本空间和事件。

  • 样本空间(S):样本空间是所有可能结果的集合。在一个掷骰子的实验中,样本空间为 {1, 2, 3, 4, 5, 6}

  • 事件(Event):事件是样本空间中结果的一个子集。任何结果集合都可以视为一个事件。

    例如:

    • 单个结果事件: “掷出5” 可以表示为事件 {5}
    • 多个结果事件: “掷出奇数” 可以表示为 {1, 3, 5}

    当实验的结果出现在某个事件集合中时,我们称该事件发生了。例如,如果实际结果是 3,因为 3 属于 {1, 3, 5},我们说“看到奇数”的事件发生了。

2. 概率(Probability)

概率是用来度量事件发生可能性的函数。我们通常将事件 A 的概率表示为 P(A)。概率函数在样本空间中定义,并且映射规则需要满足一系列条件。根据概率论的公理体系(由科尔莫戈罗夫于1933年提出),一个合法的概率函数应当满足以下三个公理。

3. 概率论的三大公理

对于样本空间 S 中的任意事件 A,概率 P(A) 需满足以下三条基本公理:

  1. 非负性(Non-negativity):
    对于任意事件 A,其概率 P(A) 不会是负数,即:

    [
    P(A) \geq 0
    ]

    解释:概率表示某个事件发生的可能性,因此它必须是非负数。

  2. 标准化(Normalization):
    整个样本空间的概率为 1,即:

    [
    P(S) = 1
    ]

    解释:样本空间 S 包含所有可能发生的结果,因此样本空间的总概率为 1,表示某个结果一定会发生。

  3. 可列可加性(Countable Additivity):
    如果我们有一组互斥事件 A_1, A_2, A_3, ...(即任意两个事件 A_iA_j 都不会同时发生),那么这些事件中至少一个事件发生的概率等于它们各自发生概率的总和:

    [
    P\left(\bigcup_{i=1}^{\infty} A_i\right) = \sum_{i=1}^{\infty} P(A_i)
    ]

    解释:互斥事件的概率可以简单相加,因为这些事件不会重叠。

举例:
如果 A 表示“掷出1或2”,B 表示“掷出3或4”,并且 AB 是互斥事件(因为掷骰子一次只能得到一个结果),那么 P(A∪B) = P(A) + P(B)

4. 推论与性质

利用上述公理,可以推导出一些常用的概率性质:

  • 空集(∅)的概率为 0:
    空集表示不可能发生的事件,因此它的概率为 0。
    [
    P(\emptyset) = 0
    ]

  • 事件的补集:
    对于事件 A,它的补集 A^c(表示事件 A 不发生的情形)的概率为:
    [
    P(A^c) = 1 - P(A)
    ]

    解释:事件 A 发生和 A 不发生(补集)是两种互斥的情况,总概率为 1。

  • 有限互斥事件的可加性:
    如果 AB 是互斥事件(即 A ∩ B = ∅),那么:
    [
    P(A ∪ B) = P(A) + P(B)
    ]

    示例:
    如果 A 表示“掷出奇数” {1, 3, 5}B 表示“掷出偶数” {2, 4, 6}AB 是互斥事件,因此:
    [
    P(A ∪ B) = P(A) + P(B) = 1
    ]

5. 互斥事件与独立事件的区别

在概率论中,“互斥事件”和“独立事件”是两个不同的概念:

  • 互斥事件(Mutually Exclusive Events): 如果 AB 是互斥的(即 A ∩ B = ∅),则它们不会同时发生。
    例如:在一次掷骰子中,事件 A = “掷出1” 和 B = “掷出2” 是互斥的。

  • 独立事件(Independent Events): 如果事件 AB 是独立的,则 A 是否发生对 B 是否发生没有影响。
    例如:连续掷两次骰子,第一个骰子掷出的结果与第二个骰子掷出的结果相互独立。

    数学上,独立事件满足:
    [
    P(A ∩ B) = P(A) \times P(B)
    ]

6. 概率公理体系的意义

科尔莫戈罗夫的概率公理体系为概率论奠定了严谨的数学基础。通过这些公理,我们可以严格地证明各种概率性质,而不需要依赖直观的随机性解释。这种方法使得概率论在各种复杂的应用场景中(如金融建模、统计推断、机器学习)具有广泛的适用性。

随机变量

随机变量(Random Variable)是概率论中的一个基本概念,它将随机实验的结果映射为数值。随机变量可以取离散或连续的值,具体取决于实验的性质。

1. 随机变量的定义:

随机变量 (X) 是一个函数,它将样本空间中的每个可能结果映射到一个数值。比如,在掷骰子的例子中,样本空间为 ( {1, 2, 3, 4, 5, 6} ),那么我们可以定义一个随机变量 (X) ,表示骰子的点数。

2. 离散随机变量:

  • 离散随机变量 是那些只取有限或可数个值的变量。例如,骰子的每一面(1到6)就是一个典型的离散随机变量。
  • 事件可以通过随机变量表示,比如“掷骰子得到1”可以表示为 ( X = 1 ) 。
  • 概率表示: ( P(X = 1) = \frac{1}{6} ),表示随机变量 (X) 取值为1的概率是六分之一。

3. 概率分布:

随机变量的概率分布描述了每个可能值的概率。例如,骰子的概率分布可以表示为:
[
P(X = x) = \frac{1}{6} \quad \text{for} \quad x = 1, 2, 3, 4, 5, 6
]
这表示骰子每个面出现的概率都是1/6。

4. 连续随机变量:

  • 连续随机变量 是那些可以取无限多个值的变量,比如人的身高、体重等。在这种情况下,随机变量不会取某个具体的值,而是取一个范围内的值。
  • 由于连续变量可以取无穷多个值,某个特定值的概率为0。因此,我们使用概率密度函数(PDF) 来描述概率分布。在给定区间内(例如 ( [1.79, 1.81] ))的概率通过积分来计算,而不是单个点的概率。

例如,某个人的身高 ( X ) 落在 ( [1.79 , \text{m}, 1.81 , \text{m}] ) 之间的概率可以表示为:
[
P(1.79 \leq X \leq 1.81)
]
这表明我们更关心的是一个区间而非一个确切的值。

5. 概率质量与密度:

  • 离散随机变量 使用概率质量函数(PMF),它为每个可能的值分配一个概率。
  • 连续随机变量 使用概率密度函数(PDF),它通过积分计算某个区间的概率。虽然某个具体数值的概率为0,但区间内的概率则为非零。

处理多个随机变量

1. 多个随机变量的概念
  • 许多实际问题涉及多个随机变量,这些变量可以互相影响并共同决定结果。
  • 例如,在医学领域,某些疾病和症状的出现是相关的,理解这种关系对于诊断和治疗至关重要。
2. 示例
  • 疾病与症状

    • 案例:流感与咳嗽。
    • 目标:估计流感和咳嗽的发生概率,并分析它们之间的关系,以改进医疗服务的质量和效率。
  • 图像处理

    • 像素作为随机变量:一幅图像包含数百万个像素,每个像素可以视为一个独立的随机变量。
    • 标签:图像中的对象标签(例如,动物、建筑)同样是一个随机变量,指示该图像所描述的内容。
    • 元数据:图像的附加信息(如拍摄位置、时间、光圈、焦距、ISO、对焦距离、相机类型)都可以视为随机变量,影响图像的特征和分析。
    • 联合随机变量:这些变量共同作用,形成一个复杂的联合分布,影响图像识别和分析的结果。
3. 关注点
  • 变量选择:在处理多个随机变量时,识别和选择感兴趣的变量至关重要,尤其是那些对结果有显著影响的变量。
  • 建模与关系分析:需要应用统计学和机器学习技术建模变量之间的关系,以捕捉复杂的依赖性和交互作用。
  • 推断与决策:理解多个随机变量的关系有助于做出更准确的推断和决策,尤其是在医疗诊断和图像识别等领域。

结论

处理多个随机变量的能力是现代科学研究和应用中的核心。通过深入理解这些变量及其关系,可以显著提高模型的预测能力和实际应用效果,尤其是在医疗和计算机视觉等复杂领域。

联合概率

1. 联合概率的定义
  • 联合概率 ( P(A = a, B = b) ) :是指事件 ( A = a ) 和 ( B = b ) 同时发生的概率。
2. 性质
  • 联合概率 ( P(A = a, B = b) ) 总是小于或等于边缘概率 ( P(A = a) ),即:
    [
    P(A = a, B = b) \leq P(A = a)
    ]
    因为两个事件同时发生的概率不会超过单个事件发生的概率。

  • 同理,联合概率 ( P(A = a, B = b) ) 也小于或等于 ( P(B = b) ),即:
    [
    P(A = a, B = b) \leq P(B = b)
    ]

3. 解释
  • 当两个事件 ( A ) 和 ( B ) 同时发生时,联合概率表示两者同时满足的条件。
  • 联合事件的概率总是不会大于单个事件的概率,因为同时满足两个条件比只满足其中一个条件的可能性更小。

条件概率

1. 条件概率的定义
  • 条件概率表示在已知某个事件发生的条件下,另一个事件发生的概率。
  • 记作:( P(A \mid B) ),表示在 ( B ) 发生的条件下,事件 ( A ) 发生的概率。
2. 条件概率公式
  • 条件概率的计算公式:
    [
    P(A \mid B) = \frac{P(A = a, B = b)}{P(B = b)}
    ]
    其中,( P(A = a, B = b) ) 是联合概率,( P(B = b) ) 是事件 ( B ) 发生的边缘概率。
3. 联合概率与条件概率的关系
  • 条件概率通过联合概率定义,表示在已知事件 ( B ) 发生的情况下,事件 ( A ) 发生的相对可能性。
  • 条件概率反映了两个事件之间的关联程度,当 ( P(B) \neq 0 ) 时,条件概率为定义良好的概率比率。

结论

条件概率是联合概率的延伸,用于描述一个事件在另一个事件已知发生时的发生可能性。它在概率推断和统计分析中非常重要,尤其是在分析事件之间的相互影响时。

贝叶斯定理

1. 贝叶斯定理的定义
  • 贝叶斯定理利用条件概率的定义,通过已知信息更新事件发生的概率。
  • 贝叶斯定理公式:
    [
    P(A \mid B) = \frac{P(B \mid A) P(A)}{P(B)}
    ]
    其中:
    • ( P(A \mid B) ) 是在 ( B ) 发生的情况下,事件 ( A ) 发生的条件概率。
    • ( P(B \mid A) ) 是在 ( A ) 发生的情况下,事件 ( B ) 发生的条件概率。
    • ( P(A) ) 是事件 ( A ) 的先验概率。
    • ( P(B) ) 是事件 ( B ) 的边缘概率。
2. 推导
  • 根据乘法法则:
    [
    P(A \cap B) = P(A \mid B) P(B) = P(B \mid A) P(A)
    ]
  • 利用对称性,可以得到贝叶斯定理公式,求解一个条件变量。
3. 含义
  • 贝叶斯定理提供了一种将先验概率后验概率联系起来的方式,通过更新先验知识来反映新的信息。
  • ( P(A \mid B) ) 被称为后验概率,代表在观察到 ( B ) 发生后,对 ( A ) 发生的更新概率。
4. 联合分布与条件分布
  • 联合分布 ( P(A, B) ):表示事件 ( A ) 和事件 ( B ) 同时发生的概率。
  • 条件分布 ( P(B \mid A) ):表示在 ( A ) 已知发生的情况下,事件 ( B ) 发生的概率。

总结

贝叶斯定理是统计学和概率论中非常有用的工具,能够在给定新信息时更新事件发生的概率。它在许多领域的应用(如机器学习、医学诊断)中尤为重要。

边际化笔记

1. 边际化的概念
  • 边际化 (Marginalization) 是通过对其他不感兴趣的随机变量进行求和或积分,来获得某个随机变量的边际概率。
  • 边际概率 ( P(A) ) 是通过对联合概率分布中的所有可能情况求和来获得的。
2. 边际化的公式
  • 给定两个随机变量 ( A ) 和 ( B ),边际概率 ( P(A) ) 可以通过对 ( B ) 的所有可能取值进行求和得到:
    [
    P(A) = \sum_{B} P(A, B)
    ]
    • 其中 ( P(A, B) ) 是联合概率,表示 ( A ) 和 ( B ) 同时发生的概率。
3. 边际分布
  • 边际分布是通过边际化过程得到的单个随机变量的概率分布。
  • 它是我们在不关心其他变量的情况下,描述特定随机变量行为的概率分布。
4. 实际例子
  • 例子:假设我们有两个事件,( A ) 表示“今天下雨”,( B ) 表示“今天有风”。为了求今天下雨的边际概率 ( P(\text{下雨}) ),我们需要对“有风”和“无风”的所有情况进行求和:
    [
    P(\text{下雨}) = P(\text{下雨}, \text{有风}) + P(\text{下雨}, \text{无风})
    ]
    通过对所有 ( B ) 的情况进行求和,我们就可以得到 ( A ) 的边际概率。

总结

边际化是一种通过忽略其他变量来获得特定变量概率的技术。通过对联合概率进行求和或积分,我们可以得到单个变量的边际概率或边际分布。这在概率统计中非常重要,尤其是在处理多个随机变量的情况下。

独立性与依赖性笔记

1. 随机变量的独立性
  • 独立性 (Independence):当两个随机变量 ( A ) 和 ( B ) 是独立的时,意味着一个事件的发生不会影响另一个事件的发生。

  • 数学表达:如果 ( A ) 和 ( B ) 独立,则满足:
    [
    P(A \mid B) = P(A)
    ]
    即 ( A ) 的发生概率与 ( B ) 无关。

  • 根据贝叶斯定理,独立性还可以表示为:
    [
    P(A \mid B) = P(A) \quad \text{和} \quad P(B \mid A) = P(B)
    ]

2. 联合分布的独立性
  • 联合分布与独立性:两个随机变量 ( A ) 和 ( B ) 是独立的,当且仅当它们的联合分布可以分解为它们各自边际分布的乘积:
    [
    P(A, B) = P(A) P(B)
    ]
    这表示联合概率等于两个事件各自独立发生的概率的乘积。
3. 条件独立性
  • 条件独立性 (Conditional Independence):如果给定第三个随机变量 ( C ),两个随机变量 ( A ) 和 ( B ) 是条件独立的,表示为:
    [
    P(A, B \mid C) = P(A \mid C) P(B \mid C)
    ]
    这意味着在给定 ( C ) 的条件下, ( A ) 和 ( B ) 彼此独立。
4. 实际例子
  • 独立例子:两次连续掷骰子的事件是独立的,因为第一次的结果不会影响第二次的结果。
  • 依赖例子:灯开关的位置和房间的亮度是依赖的,因为开关的状态可能会影响房间的亮度(除非有其他故障如灯泡坏掉、电源问题等)。

总结

  • 独立性:两个随机变量相互独立时,一个事件的发生不会影响另一个事件,联合分布可以写成边际分布的乘积。
  • 条件独立性:给定一个随机变量 ( C ),两个变量 ( A ) 和 ( B ) 可以是条件独立的,这时它们在给定 ( C ) 的条件下互不影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值