Run this notebook online: or Colab:

# 2.6. 概率¶

fig_cat_dog 所示，虽然人类很容易以 $$160 \times 160$$ 像素的分辨率识别猫和狗，但它在 $$40 \times 40$$ 像素上变得具有挑战性，而且在 $$10 \times 10$$ 像素下几乎是不可能的。换句话说，我们在很远的距离（从而降低分辨率）区分猫和狗的能力可能会接近不知情的猜测。 概率给了我们一种正式的途径来说明我们的确定性水平。 如果我们完全肯定图像是一只猫，我们说标签$$y$$是”猫”的概率，表示为$$P(y=$$ “猫”$$)$$ 等于 $$1$$。如果我们没有证据表明 $$y =$$ “猫” 或 $$y =$$ “狗”，那么我们可以说这两种可能性是等可能的，把它表示为$$P(y=$$ “猫”$$) = P(y=$$ “狗”$$) = 0.5$$。 如果我们有足够的信心，但不确定图像描绘的是一只猫，我们可以将概率赋值为$$0.5 < P(y=$$ “猫”$$) < 1$$

## 2.6.1. 基本概率论¶

%load ../utils/djl-imports

NDManager manager = NDManager.newBaseManager();


float[] fairProbsArr = new float[6];
for (int i=0; i < fairProbsArr.length; i++) {
fairProbsArr[i] = 1f/6;
}
NDArray fairProbs = manager.create(fairProbsArr);
manager.randomMultinomial(1, fairProbs)

ND: (6) gpu(0) int64
[ 0,  0,  1,  0,  0,  0]


manager.randomMultinomial(10, fairProbs)

ND: (6) gpu(0) int64
[ 2,  1,  5,  1,  0,  1]


NDArray counts = manager.randomMultinomial(1000, fairProbs);
counts.div(1000)

ND: (6) gpu(0) float32
[0.153, 0.155, 0.165, 0.177, 0.17 , 0.18 ]


NDArray counts = manager.randomMultinomial(10, fairProbs, new Shape(500));
NDArray cumCounts = counts.cumSum(0);
NDArray estimates = cumCounts.div(cumCounts.sum(new int[] {1}, true));

int height = 500;
int width = 700;
String xLabel = "Group of experiments";
String yLabel = "Estimated probability";

Layout layout = Layout.builder()
.height(height)
.width(width)
.showLegend(true)
.xAxis(Axis.builder().title(xLabel).build())
.yAxis(Axis.builder().title(yLabel).build())
.build();

ScatterTrace[] traces = new ScatterTrace[7];
double[] x;
double[] y;
for (int i=0; i < 6; i++) {
x = Functions.floatToDoubleArray(manager.arange(500f).toFloatArray());
y = Functions.floatToDoubleArray(estimates.get(new NDIndex(":, "+i)).toFloatArray());

traces[i] = ScatterTrace.builder(x, y)
.mode(ScatterTrace.Mode.LINE)
.name("P(die=" + (i+1) + ")")
.build();
}

x = new double[500];
y = new double[500];
for (int i=0; i<500; i++) {
x[i] = i;
y[i] = 0.167;
}
traces[6] = ScatterTrace.builder(x, y)
.mode(ScatterTrace.Mode.LINE)
.name("Underlying Probability")
.marker(Marker.builder()
.color("black")
.build())
.build();
new Figure(layout, traces)


### 2.6.1.1. 概率论公理¶

• 对于任意事件 $$\mathcal{A}$$，其概率从不会是负数，即 $$P(\mathcal{A}) \geq 0$$

• 整个样本空间的概率为 $$1$$，即 $$P(\mathcal{S}) = 1$$

• 对于互斥（mutually exclusive）（对于所有 $$i \neq j$$ 都有 $$\mathcal{A}_i \cap \mathcal{A}_j = \emptyset$$）事件的任意一个可数序列 $$\mathcal{A}_1, \mathcal{A}_2, \ldots$$ ，序列中任意一个事件发生的概率等于它们各自发生的概率之和，即 $$P(\bigcup_{i=1}^{\infty} \mathcal{A}_i) = \sum_{i=1}^{\infty} P(\mathcal{A}_i)$$

## 2.6.2. 处理多个随机变量¶

### 2.6.2.3. 贝叶斯定理¶

(2.6.1)$P(A \mid B) = \frac{P(B \mid A) P(A)}{P(B)}.$

### 2.6.2.4. 边际化¶

(2.6.2)$P(B) = \sum_{A} P(A, B),$

### 2.6.2.6. 应用¶

$$H=1$$

$$H=0$$

$$P(D_1 = 1 \mid H)$$

1

0.01

$$P(D_1 = 0 \mid H)$$

0

0.99

Table: 条件概率为 $$P(D_1 \mid H)$$

(2.6.3)\begin{split}\begin{aligned} &P(D_1 = 1) \\ =& P(D_1=1, H=0) + P(D_1=1, H=1) \\ =& P(D_1=1 \mid H=0) P(H=0) + P(D_1=1 \mid H=1) P(H=1) \\ =& 0.011485. \end{aligned}\end{split}

(2.6.4)\begin{split}\begin{aligned} &P(H = 1 \mid D_1 = 1)\\ =& \frac{P(D_1=1 \mid H=1) P(H=1)}{P(D_1=1)} \\ =& 0.1306 \end{aligned}.\end{split}

$$H=1$$

$$H=0$$

$$P(D_2 = 1 \mid H)$$

0.98

0.03

$$P(D_2 = 0 \mid H)$$

0.02

0.97

Table: 条件概率为 $$P(D_2 \mid H)$$

(2.6.5)\begin{split}\begin{aligned} &P(D_1 = 1, D_2 = 1 \mid H = 0) \\ =& P(D_1 = 1 \mid H = 0) P(D_2 = 1 \mid H = 0) \\ =& 0.0003, \end{aligned}\end{split}
(2.6.6)\begin{split}\begin{aligned} &P(D_1 = 1, D_2 = 1 \mid H = 1) \\ =& P(D_1 = 1 \mid H = 1) P(D_2 = 1 \mid H = 1) \\ =& 0.98. \end{aligned}\end{split}

(2.6.7)\begin{split}\begin{aligned} &P(D_1 = 1, D_2 = 1) \\ =& P(D_1 = 1, D_2 = 1, H = 0) + P(D_1 = 1, D_2 = 1, H = 1) \\ =& P(D_1 = 1, D_2 = 1 \mid H = 0)P(H=0) + P(D_1 = 1, D_2 = 1 \mid H = 1)P(H=1)\\ =& 0.00176955. \end{aligned}\end{split}

(2.6.8)\begin{split}\begin{aligned} &P(H = 1 \mid D_1 = 1, D_2 = 1)\\ =& \frac{P(D_1 = 1, D_2 = 1 \mid H=1) P(H=1)}{P(D_1 = 1, D_2 = 1)} \\ =& 0.8307. \end{aligned}\end{split}

## 2.6.3. 期望和差异¶

(2.6.9)$E[X] = \sum_{x} x P(X = x).$

(2.6.10)$E_{x \sim P}[f(x)] = \sum_x f(x) P(x).$

(2.6.11)$\mathrm{Var}[X] = E\left[(X - E[X])^2\right] = E[X^2] - E[X]^2.$

(2.6.12)$\mathrm{Var}[f(x)] = E\left[\left(f(x) - E[f(x)]\right)^2\right].$

## 2.6.4. 小结¶

• 我们可以从概率分布中采样。

• 我们可以使用联合分布、条件分布、Bayes 定理、边缘化和独立性假设来分析多个随机变量。

• 期望和方差为概率分布的关键特征的概括提供了实用的度量形式。

## 2.6.5. 练习¶

1. 我们进行了 $$m=500$$ 组实验，每组抽取 $$n=10$$ 个样本。变化 $$m$$$$n$$，观察和分析实验结果。

2. 给定两个概率为 $$P(\mathcal{A})$$$$P(\mathcal{B})$$ 的事件，计算 $$P(\mathcal{A} \cup \mathcal{B})$$$$P(\mathcal{A} \cap \mathcal{B})$$ 的上限和下限。（提示：使用 友元图 来展示这些情况。）

3. 假设我们有一系列随机变量，例如 $$A$$$$B$$$$C$$，其中 $$B$$ 只依赖于 $$A$$，而 $$C$$ 只依赖于 $$B$$，你能简化联合概率 $$P(A, B, C)$$ 吗？（提示：这是一个 马尔可夫链。）

4. Section 2.6.2.6 中，第一个测试更准确。为什么不运行第一个测试两次，而是同时运行第一个和第二个测试?