Gen-ai 简明教程
The Role of Probability Density Functions in Generative AI Models
概率分布可以是 discrete 或 continuous 。
-
离散概率分布更适合于结果只能采用离散或分类随机变量的情况。
-
当结果在连续值范围内采用任何值时,连续概率分布更为合适。
在生成模型的上下文中,连续概率分布充当强大的工具,其旨在跨越广泛的应用程序创建逼真且多样化的数据样本。事实上,它们帮助生成模型更好地理解和模仿真实世界的数据。
连续概率分布背后的关键概念之一是概率密度函数 (PDF),它描述了特定值在给定范围内的连续随机变量(例如此时、重量或高度)的可能性。在本章,我们将详细破译概率密度函数。
Understanding the Probability Density Function (PDF)
对于离散变量,我们可以轻松地计算概率。但是,另一方面,对于连续变量,计算概率非常困难,因为概率会采用一系列无穷大的值。在统计中,描述此类变量概率的函数称为概率密度函数 (PDF)。
简单来说,概率密度函数是定义连续随机变量(例如 X)与其概率之间的关系的函数。我们使用该函数来查找变量 X 的概率。
在数学中,连续随机变量 X 的 PDF f(x) 必须满足以下给定的属性−
-
在 X 的范围内,对于所有 x,$\mathrm{f(x) \geq 0}$。
-
在 PDF 曲线下的所有可能的 X 值上的总面积等于 1。这代表了整个概率空间。
-
X 落在特定区间 [a,b] 内的概率由 f(x) 在该区间上的积分给出:$\mathrm{\int_{a}^{b} \: f(x) \: dx}$。
在绘制 PDF 后,我们将得到如下所示的图形 −
概率分布函数是概率论中的一个基本概念,为我们提供了概率分布的连续表示,使我们能够理解不同的结果在连续域中发生的可能性如何。它广泛应用于机器学习、统计和物理等各个领域。
Implementing Probability Density Function using Python
在 Python 中,要查找给定数据集的概率密度函数 (PDF),我们可以使用 NumPy 和 Matplotlib 等库。以下是计算和绘制数据集 PDF 的简单示例 −
Example
# importing necessary libraries
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Creating Sample dataset
data = np.random.normal(loc=0, scale=1, size=1000)
# Fit a Gaussian distribution to the data
mu, std = norm.fit(data)
# Plot the histogram of the data
plt.figure(figsize=(7.2, 2.5))
plt.hist(data, bins=50, density=True, alpha=0.5, color='cyan')
# Plot the PDF of the fitted Gaussian distribution
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = norm.pdf(x, mu, std)
plt.plot(x, p, 'g', linewidth=2)
plt.xlabel('Value')
plt.ylabel('Probability Density')
plt.title('Probability Density Function (PDF)')
plt.grid(True)
plt.show()
在上面的代码中,我们首先使用 NumPy 的 np.random.normal() 函数生成一个随机数据集。
然后,我们使用 SciPy 中的 norm.fit() 将正态分布拟合到数据。此函数返回拟合正态分布的均值 (mu) 和标准偏差 (std)。
之后,我们使用 Matplotlib 的 plt.hist() 绘制数据的直方图。最后,我们在直方图上绘制平滑的钟形曲线 (PDF)。
在运行此代码后,您将得到如下的输出图 −
Role of Probability Density Function in Generative Modeling
在生成模型中,概率密度函数 (PDF) 扮演着以下几个关键角色 −
Generative Adversarial Networks (GANs)
在 GAN 中,我们有一个称为生成器的网络。生成器学习通过捕获基础数据分布来生成真实数据样本。它通常输出遵循连续分布的数据点,并且与该分布关联的概率密度函数指导着学习过程。