深度学习必须掌握的 13 种概率分布
2024-12-26
深度学习从业者,你需要知道概率分布相关的知识。这里有一份最常见的基本概率分布教程,大多数和使用 python 库进行深度学习有关。
一、概率分布的关系概览
- conjugate 意味着它有共轭分布的关系。
Multi-Class
表示随机方差大于 2。N Times
意味着我们还考虑先验概率 P(X)。- 为了进一步了解概率,我建议阅读 [pattern recognition and machine learning,Bishop 2006]。
在贝叶斯概率论中,如果后验分布 p(θx)与先验概率分布 p(θ)在同一概率分布族中,则先验和后验称为共轭分布,先验称为似然函数的共轭先验。
共轭先验维基百科在这里(https://en.wikipedia.org/wiki/Conjugate_prior)。无损原图可见:https://github.com/graykode/distribution-is-all-you-need/blob/master/overview.pptx
二、分布概率与特征
1. 均匀分布(连续)
均匀分布在 [a,b] 上具有相同的概率值,是简单概率分布。
2. 伯努利分布(离散)
- 先验概率 p(x)不考虑伯努利分布。因此,如果我们对最大似然进行优化,那么我们很容易被过度拟合。
- 利用二元交叉熵对二项分类进行分类。它的形式与伯努利分布的负对数相同。
3. 二项分布(离散)
- 参数为 n 和 p 的二项分布是一系列 n 个独立实验中成功次数的离散概率分布。
- 二项式分布是指通过指定要提前挑选的数量而考虑先验概率的分布。
"""
各分布的生成代码(算法进阶 附注):
https://github.com/graykode/distribution-is-all-you-need
Code by Tae-Hwan Hung(@graykode)
"""
import numpy as np
from matplotlib import pyplot as plt
import operator as op
from functools import reduce
def const(n, r):
r = min(r, n-r)
numer = reduce(op.mul, range(n, n-r, -1), 1)
denom = reduce(op.mul, range(1, r+1), 1)
return numer / denom
def binomial(n, p):
q = 1 - p
y = [const(n, k) * (p ** k) * (q ** (n-k)) for k in range(n)]
return y, np.mean(y), np.std(y)
for ls in [(0.5, 20), (0.7, 40), (0.5, 40)]:
p, n_experiment = ls[0], ls[1]
x = np.arange(n_experiment)
y, u, s = binomial(n_experiment, p)
plt.scatter(x, y, label=r'$\mu=%.2f,\ \sigma=%.2f$' % (u, s))
plt.legend()
plt.savefig('graph/binomial.png')
plt.show()
4. 多伯努利分布,分类分布(离散)
- 多伯努利称为分类分布。
- 交叉熵和采取负对数的多伯努利分布具有相同的形式。
5. 多项式分布(离散)
多项式分布与分类分布的关系与伯努尔分布与二项分布的关系相同。
6. β分布(连续)
- β分布与二项分布和伯努利分布共轭。
- 利用共轭,利用已知的先验分布可以更容易地得到后验分布。
- 当β分布满足特殊情况(α=1,β=1)时,均匀分布是相同的。
7. Dirichlet 分布(连续)
- dirichlet 分布与多项式分布是共轭的。
- 如果 k=2,则为β分布。
8. 伽马分布(连续)
- 如果 gamma(a,1)/gamma(a,1)+gamma(b,1)与beta(a,b)相同,则 gamma分布为β分布。
- 指数分布和卡方分布是伽马分布的特例。
9. 指数分布(连续)
指数分布是 α 为 1 时 γ 分布的特例。
10. 高斯分布(连续)
高斯分布是一种非常常见的连续概率分布。
11. 正态分布(连续)
正态分布为标准高斯分布,平均值为 0,标准差为 1。
12. 卡方分布(连续)
- k 自由度的卡方分布是 k 个独立标准正态随机变量的平方和的分布。
- 卡方分布是 β 分布的特例
13. t 分布(连续)
t 分布是对称的钟形分布,与正态分布类似,但尾部较重,这意味着它更容易产生远低于平均值的值。
代码:https://github.com/graykode/distribution-is-all-you-need/
文章转自微信公众号@算法进阶
同话题下的热门内容