醋醋百科网

Good Luck To You!

从概率到模型训练:最大似然在AI中的全面应用

从概率到模型训练:最大似然在AI中的全面应用


引言

在人工智能(AI)的世界里,概率论与数理统计不仅是数学基础,更是支撑算法设计、模型推理和优化策略的核心工具。

  • o 当你在优化深度神经网络的损失函数时,你实际上是在最小化负对数似然
  • o 当你在做贝叶斯推断时,背后依托的是概率密度函数的运算;
  • o 当你在设计采样策略时,你就在用统计学中的随机抽样理论

今天,我们将围绕以下几个主题展开深入剖析:

  1. 1. 离散与连续随机变量
  2. 2. 连续型随机变量的概率密度与分布
  3. 3. 简单随机抽样及其在机器学习中的意义
  4. 4. 似然函数与极大似然估计(MLE)

一、离散与连续随机变量

1.1 随机变量的定义

数学定义
设样本空间为 ,随机变量是定义在 上的实值函数:

它将随机试验的每个可能结果映射为一个实数。


1.2 离散随机变量

定义:取值为有限个或可数无限多个的随机变量。

概率分布(PMF)

常见分布

  • o 伯努利分布:一次试验成败
  • o 二项分布:多次独立伯努利试验成功次数
  • o 泊松分布:单位时间(空间)内事件发生次数

例子
二项分布 的概率质量函数为:


二项分布计算例子(Python)

import math

def binomial_pmf(k, n, p):
    """二项分布 PMF"""
    return math.comb(n, k) * (p**k) * ((1-p)**(n-k))

print(binomial_pmf(3, 10, 0.3))  # 恰好3次成功的概率

注释:二项分布在分类模型正确预测的次数等问题中广泛应用。


1.3 连续随机变量

定义:取值是不可数无限多个(实数区间)。

概率密度函数(PDF)

常见分布

  • o 均匀分布
  • o 正态分布
  • o 指数分布

正态分布概率计算(Python)

import scipy.stats as stats

prob = stats.norm.cdf(1, loc=0, scale=1) - stats.norm.cdf(-1, loc=0, scale=1)
print(prob)  # 区间[-1,1]的概率

二、连续型随机变量的概率密度

2.1 常见概率密度函数

  1. 1. 均匀分布
  1. 2. 正态分布
  1. 3. 指数分布

2.2 PyTorch分布采样

import torch

# 正态分布采样
samples = torch.normal(mean=0.0, std=1.0, size=(5,))
print(samples)

# 均匀分布采样
uniform_samples = torch.rand(5)
print(uniform_samples)

应用:GAN 生成器的输入噪声通常采自标准正态分布。


三、简单随机抽样(SRS)

3.1 定义

从总体中抽取 个样本,每个样本被抽到的概率相等且独立。


3.2 Python实现

import random

population = list(range(1, 101))
sample = random.sample(population, 10)  # 无放回抽样
print(sample)

3.3 AI应用案例

  • o 数据集划分(训练集/验证集/测试集)
  • o Mini-batch SGD:每轮迭代从数据集中随机抽取一批样本训练,降低计算量并提升泛化性能。

四、似然函数(Likelihood)

4.1 定义

假设 独立同分布于 ,似然函数为:


4.2 对数似然

取对数:

AI联系:交叉熵损失 = NLL 的一种形式。

4.3 似然函数的作用

核心作用
似然函数的本质是衡量“在给定参数的情况下,观测到当前数据的可能性有多大”。
它不是在问“数据发生的概率是多少”(那是概率密度的功能),而是在问“给定这批数据,哪一组参数最可能生成它们”。

通俗理解

  • o 如果你是一个侦探,参数 就是不同的“嫌疑人画像”,数据就是案发现场的证据。
  • o 似然函数就是一个打分器,告诉你每个嫌疑人画像和现场证据的匹配程度。
  • o 你的目标是找到最匹配的那个画像(即参数估计)。

AI中的作用

  • o 在机器学习中,我们的模型 就是由参数 决定的概率分布。
  • o 训练的过程,本质上是寻找一组 ,让训练数据在这个模型下的似然值最大。
  • o 这直接对应了我们常用的**最大似然估计(MLE)**方法。

五、极大似然估计(MLE)

5.1 定义

MLE目标:


5.2 数学推导:正态分布参数估计

假设 :

对 求偏导

得:

对 求偏导

得:


5.3 Python实现

import numpy as np

data = np.array([2.1, 2.5, 1.8, 2.0, 2.3])

mu_hat = np.mean(data)
sigma2_hat = np.mean((data - mu_hat)**2)

print(f"MLE估计: 均值={mu_hat}, 方差={sigma2_hat}")

5.4 PyTorch中MLE的体现

import torch
import torch.nn as nn

logits = torch.tensor([[2.0, 1.0, 0.1]])  # 模型输出
target = torch.tensor([0])  # 类别标签

loss_fn = nn.CrossEntropyLoss()
loss = loss_fn(logits, target)
print(loss.item())

注释:交叉熵损失等价于最大化类别正确的似然。

5.1 极大似然估计(MLE)的用途

数学目标

它用来干什么

  • o 估计模型参数:通过找到使观测数据最可能出现的参数值,得到最符合当前数据分布的模型。
  • o 连接统计与深度学习:神经网络训练时,我们最小化的很多损失函数,其实就是负对数似然(NLL)。
  • o 构造推理框架:在贝叶斯推断中,MLE是MAP(最大后验估计)的特例,当先验分布均匀时,两者等价。

直观例子
假设我们要训练一个二分类逻辑回归模型,参数是权重 和偏置 。
MLE的过程就是:

  1. 1. 先假设样本服从伯努利分布 ;
  2. 2. 写出似然函数 ;
  3. 3. 对其取对数并求最大值(等价于最小化交叉熵损失);
  4. 4. 得到最优的 ,用于分类预测。

PyTorch 示例:MLE等价于最小化交叉熵

import torch
import torch.nn as nn

# 模拟模型输出(logits)和真实标签
logits = torch.tensor([[2.0, 1.0, 0.1]])
target = torch.tensor([0])

# CrossEntropyLoss 实际上是 -log(softmax概率) => 负对数似然
loss_fn = nn.CrossEntropyLoss()
loss = loss_fn(logits, target)

print(f"负对数似然损失(NLL) = {loss.item():.4f}")

六、总结

  • o 离散与连续随机变量:构成概率论的两大类对象;
  • o 概率密度函数:刻画连续随机变量的概率分布;
  • o 简单随机抽样:是数据抽取与训练的重要方法;
  • o 似然函数与极大似然估计:是参数估计和深度学习损失函数设计的数学基础。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言