【机器学习】机器学习的基本分类-监督学习-逻辑回归-对数似然损失函数(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) 会引发计算错误,需引入数值稳定策略。

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

相关推荐
nju_spy几秒前
周志华《机器学习导论》第8章 集成学习 Ensemble Learning
人工智能·随机森林·机器学习·集成学习·boosting·bagging·南京大学
星座52821 分钟前
基于现代R语言【Tidyverse、Tidymodel】的机器学习方法与案例分析
机器学习·r语言·tidyverse·tidymodel
静心问道23 分钟前
TrOCR: 基于Transformer的光学字符识别方法,使用预训练模型
人工智能·深度学习·transformer·多模态
说私域25 分钟前
基于开源AI大模型、AI智能名片与S2B2C商城小程序源码的用户价值引导与核心用户沉淀策略研究
人工智能·开源
亲持红叶27 分钟前
GLU 变种:ReGLU 、 GEGLU 、 SwiGLU
人工智能·深度学习·神经网络·激活函数
说私域27 分钟前
线上协同办公时代:以开源AI大模型等工具培养网感,拥抱职业变革
人工智能·开源
群联云防护小杜29 分钟前
深度隐匿源IP:高防+群联AI云防护防绕过实战
运维·服务器·前端·网络·人工智能·网络协议·tcp/ip
摘星编程34 分钟前
构建智能客服Agent:从需求分析到生产部署
人工智能·需求分析·智能客服·agent开发·生产部署
不爱学习的YY酱37 分钟前
信息检索革命:Perplexica+cpolar打造你的专属智能搜索中枢
人工智能
whaosoft-1432 小时前
51c自动驾驶~合集7
人工智能