【机器学习】机器学习的基本分类-监督学习-逻辑回归-对数似然损失函数(Log-Likelihood Loss Function)

对数似然损失函数(Log-Likelihood Loss Function)

对数似然损失函数是机器学习和统计学中广泛使用的一种损失函数,特别是在分类问题(例如逻辑回归、神经网络)中应用最为广泛。它基于最大似然估计原理,通过最小化负对数似然(negative log-likelihood, NLL)来优化模型参数。


1. 对数似然损失的定义

对于一个分类问题,我们的目标是预测输入 x 属于类别 y∈{0,1} 的概率。假设模型输出的概率为 ​,则:

对数似然函数

似然函数衡量模型参数在观察到数据下的概率。假设数据集为 ​,样本 i 的预测概率为 ,其似然函数为:

对数似然函数

对数化简乘积:


2. 损失函数形式

为了简化计算,优化通常使用负对数似然损失函数(即最大化对数似然的对立面):

二分类问题

对二分类问题,假设 ​,​,则:

对数化并取负得到:

这就是交叉熵损失函数的形式,广泛用于二分类问题。


3. 推导直观理解

1. 对数似然的意义

对数似然量化了模型预测的质量:

  • :我们希望预测概率 越大越好。
  • :我们希望预测概率 越大越好。

通过最大化对数似然(或最小化负对数似然),模型会调整参数使其预测概率最接近真实概率。

2. 为什么对数?

  • 简化计算:对数化后,将乘积变为求和,优化更加高效。
  • 凸性:对数函数的特性使得损失函数在很多情况下是凸的,便于求解全局最优解。

4. 多分类问题

对于多分类问题(如 softmax 分类器),假设类别标签为 y∈{1,2,...,K}y,模型预测类别 j 的概率为

似然函数

其中 是指示函数,表示样本 y 是否属于类别 j。

对数化

负对数似然损失

对于整个数据集:

其中,​​ 是样本 i 对真实类别 的预测概率。


5. 代码实现

以下是二分类和多分类对数似然损失的 Python 实现:

1. 二分类损失

python 复制代码
import numpy as np

def binary_log_likelihood_loss(y_true, y_pred):
    """
    计算二元对数似然损失函数。

    参数:
    y_true: 真实标签数组,包含0和1,表示负类和正类。
    y_pred: 预测标签数组,包含0到1之间的浮点数,表示属于正类的概率。

    返回:
    返回二元对数似然损失函数的负均值。
    """
    # 避免数值问题
    y_pred = np.clip(y_pred, 1e-10, 1 - 1e-10)
    # 计算并返回二元对数似然损失
    return -np.mean(y_true * np.log(y_pred) + (1 - y_true) * np.log(1 - y_pred))

# 示例
y_true = np.array([1, 0, 1, 1, 0])
y_pred = np.array([0.9, 0.1, 0.8, 0.7, 0.3])
# 计算损失并输出
loss = binary_log_likelihood_loss(y_true, y_pred)
print("Binary Log-Likelihood Loss:", loss)

输出结果

bash 复制代码
Binary Log-Likelihood Loss: 0.22944289410146546

2. 多分类损失

python 复制代码
from sklearn.metrics import log_loss

# 示例数据
# 实际的类别标签
y_true = [0, 2, 1, 2]
# 预测的类别概率,每个子列表代表一个样本预测为各个类别的概率
y_pred = [
    [0.9, 0.05, 0.05],
    [0.1, 0.1, 0.8],
    [0.2, 0.7, 0.1],
    [0.05, 0.1, 0.85]
]

# 使用 sklearn 计算对数似然损失
# 该函数计算的是模型预测的类别概率与实际类别标签之间的对数似然损失
# 对于多分类问题,该损失函数可以衡量模型预测概率与真实标签之间的差异程度
loss = log_loss(y_true, y_pred)
print("Multi-class Log-Likelihood Loss:", loss)

输出结果

bash 复制代码
Multi-class Log-Likelihood Loss: 0.2119244851021358

6. 对数似然损失的应用

  1. 逻辑回归
    • 二分类逻辑回归中,使用对数似然损失来拟合模型参数。
  2. 神经网络
    • 输出层通常采用 softmax 函数并结合对数似然损失,用于多分类任务。
  3. 最大熵模型
    • 最大化熵等价于最小化负对数似然。

7. 优点与缺点

优点

  • 对概率建模有理论支撑,直观解释预测置信度。
  • 能有效捕捉预测概率的质量。

缺点

  • 对异常值敏感:错误分类的高置信预测会导致损失剧增。
  • 数值问题:log⁡(0) 会引发计算错误,需引入数值稳定策略。

对数似然损失函数连接了统计学中的最大似然估计与机器学习中的损失优化,是现代监督学习模型的理论基石之一!

相关推荐
Maynor9963 小时前
Z-Image: 100% Free AI Image Generator
人工智能
码界奇点3 小时前
Python从0到100一站式学习路线图与实战指南
开发语言·python·学习·青少年编程·贴图
爬点儿啥4 小时前
[Ai Agent] 10 MCP基础:快速编写你自己的MCP服务器(Server)
人工智能·ai·langchain·agent·transport·mcp
张人玉4 小时前
百度 AI 图像识别 WinForms 应用代码分析笔记
人工智能·笔记·百度
测试人社区-小明4 小时前
智能弹性伸缩算法在测试环境中的实践与验证
人工智能·测试工具·算法·机器学习·金融·机器人·量子计算
Spring AI学习4 小时前
Spring AI深度解析(9/50):可观测性与监控体系实战
java·人工智能·spring
罗西的思考5 小时前
【Agent】MemOS 源码笔记---(5)---记忆分类
人工智能·深度学习·算法
YJlio5 小时前
Active Directory 工具学习笔记(10.8):AdInsight——保存与导出(证据留存、共享与二次分析)
数据库·笔记·学习
dajun1811234565 小时前
反 AI 生成技术兴起:如何识别与过滤海量的 AI 伪造内容?
人工智能
人邮异步社区6 小时前
PRML为何是机器学习的经典书籍中的经典?
人工智能·机器学习