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

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

相关推荐
guanshiyishi37 分钟前
ABeam 德硕 | 中国汽车市场(2)——新能源车的崛起与中国汽车市场机遇与挑战
人工智能
极客天成ScaleFlash1 小时前
极客天成NVFile:无缓存直击存储性能天花板,重新定义AI时代并行存储新范式
人工智能·缓存
Uzuki1 小时前
AI可解释性 II | Saliency Maps-based 归因方法(Attribution)论文导读(持续更新)
深度学习·机器学习·可解释性
澳鹏Appen2 小时前
AI安全:构建负责任且可靠的系统
人工智能·安全
蹦蹦跳跳真可爱5893 小时前
Python----机器学习(KNN:使用数学方法实现KNN)
人工智能·python·机器学习
视界宝藏库3 小时前
多元 AI 配音软件,打造独特音频体验
人工智能
xinxiyinhe4 小时前
GitHub上英语学习工具的精选分类汇总
人工智能·deepseek·学习英语精选
zhuyixiangyyds4 小时前
day21和day22学习Pandas库
笔记·学习·pandas
每次的天空4 小时前
Android学习总结之算法篇四(字符串)
android·学习·算法
ZStack开发者社区4 小时前
全球化2.0 | ZStack举办香港Partner Day,推动AIOS智塔+DeepSeek海外实践
人工智能·云计算