当前位置: 首页 > news >正文

似然函数对数似然函数负对数似然函数

目录

  • 1. 似然函数的定义
  • 2. 对数似然函数的定义
  • 3. 负对数似然函数的定义
  • 4. 负对数似然函数的优化
  • 5. 具体应用示例
    • 5.1 逻辑回归中的负对数似然函数
    • 5.2 优化逻辑回归的负对数似然函数

1. 似然函数的定义

似然函数L(θ∣X)L(\theta | X)L(θX)是在给定参数θ\thetaθ 下,观测数据XXX出现的概率。它是统计推断中的一个核心概念,用于衡量在特定参数假设下,观测数据的合理性。

假设我们有一组观测数据X={x1,x2,…,xn}X = \{x_1, x_2, \dots, x_n\}X={x1,x2,,xn},并且假设这些数据是独立同分布的(i.i.d.)(i.i.d.)i.i.d.,那么似然函数可以表示为所有观测数据概率的乘积:

L(θ∣X)=∏i=1nP(xi∣θ)L(\theta | X) = \prod_{i=1}^{n} P(x_i | \theta) L(θX)=i=1nP(xiθ)

其中:

  • θ\thetaθ是模型的参数,例如线性回归中的权重和偏置,或者逻辑回归中的权重向量。
  • P(xi∣θ)P(x_i | \theta)P(xiθ)是在参数 θ\thetaθ下,第iii 个数据点 xix_ixi出现的概率。

示例:假设有一个简单的硬币抛掷实验,硬币正面朝上的概率为θ\thetaθ,反面朝上的概率为 1−θ1 - \theta1θ。如果进行了 nnn 次独立的抛掷,观察到正面朝上的次数为 kkk,那么似然函数可以表示为:

L(θ∣k,n)=θk(1−θ)n−kL(\theta | k, n) = \theta^k (1 - \theta)^{n - k} L(θk,n)=θk(1θ)nk



2. 对数似然函数的定义

对数似然函数 ℓ(θ∣X)\ell(\theta | X)(θX)是似然函数的自然对数。它将似然函数的乘积形式转换为求和形式,便于计算和优化。

ℓ(θ∣X)=log⁡L(θ∣X)=log⁡(∏i=1nP(xi∣θ))=∑i=1nlog⁡P(xi∣θ)\ell(\theta | X) = \log L(\theta | X) = \log \left( \prod_{i=1}^{n} P(x_i | \theta) \right) = \sum_{i=1}^{n} \log P(x_i | \theta) (θX)=logL(θX)=log(i=1nP(xiθ))=i=1nlogP(xiθ)

为什么要取对数?

  1. 简化计算:将乘积转换为求和,避免数值下溢或上溢问题。
  2. 数学性质:对数函数是单调递增的,因此最大化对数似然函数等价于最大化似然函数。
  3. 统计意义:对数似然函数在统计推断中具有良好的性质,例如渐近正态性。



3. 负对数似然函数的定义

负对数似然函数 NLL(θ∣X)\text{NLL}(\theta | X)NLL(θX)是对数似然函数的负值。它将最大化似然函数的问题转化为最小化损失函数的问题,便于在机器学习中使用优化算法。

NLL(θ∣X)=−ℓ(θ∣X)=−∑i=1nlog⁡P(xi∣θ)\text{NLL}(\theta | X) = -\ell(\theta | X) = -\sum_{i=1}^{n} \log P(x_i | \theta) NLL(θX)=(θX)=i=1nlogP(xiθ)

为什么要取负值?
在机器学习中,优化问题通常被表述为最小化某个损失函数。取负对数似然函数的目的是将最大化似然函数的问题转化为最小化损失函数的问题。具体来说:

  • 最大化似然函数max⁡θℓ(θ∣X)\max_{\theta} \ell(\theta | X)maxθ(θX)
  • 最小化负对数似然函数min⁡θNLL(θ∣X)\min_{\theta} \text{NLL}(\theta | X)minθNLL(θX)

这两个优化问题是等价的,因为对数函数是单调递增的。


4. 负对数似然函数的优化

在实际应用中,通常通过最小化负对数似然函数来估计模型参数 θ\thetaθ。具体步骤如下:

  1. 定义模型:选择一个概率模型 P(x∣θ)P(x | \theta)P(xθ),例如高斯分布、伯努利分布等。
  2. 计算负对数似然函数:根据模型和数据,计算负对数似然函数 NLL(θ∣X)\text{NLL}(\theta | X)NLL(θX)
  3. 优化参数:通过梯度下降或其他优化算法,最小化负对数似然函数,找到最优参数 θ^\hat{\theta}θ^

梯度下降法:假设使用梯度下降法来优化参数θ\thetaθ。梯度下降的更新规则为:

θnew=θold−η∇θNLL(θ∣X)\theta_{\text{new}} = \theta_{\text{old}} - \eta \nabla_{\theta} \text{NLL}(\theta | X) θnew=θoldηθNLL(θX)

其中:

  • η\etaη 是学习率,控制每次迭代的步长。
  • ∇θNLL(θ∣X)\nabla_{\theta} \text{NLL}(\theta | X)θNLL(θX) 是负对数似然函数对参数θ\thetaθ 的梯度。



5. 具体应用示例

5.1 逻辑回归中的负对数似然函数

假设有一个二分类问题,使用逻辑回归模型。逻辑回归模型的输出是样本属于类别 1 的概率:

P(y=1∣x,θ)=σ(θTx)P(y = 1 | x, \theta) = \sigma(\theta^T x) P(y=1∣x,θ)=σ(θTx)

其中 σ(z)=11+e−z\sigma(z) = \frac{1}{1 + e^{-z}}σ(z)=1+ez1是 Sigmoid 函数。

对于二分类问题,似然函数可以表示为:

L(θ∣X,y)=∏i=1nP(yi∣xi,θ)L(\theta | X, y) = \prod_{i=1}^{n} P(y_i | x_i, \theta) L(θX,y)=i=1nP(yixi,θ)

其中yi∈{0,1}y_i \in \{0, 1\}yi{0,1}是第 iii个样本的标签。

对数似然函数为:

ℓ(θ∣X,y)=∑i=1nlog⁡P(yi∣xi,θ)=∑i=1n[yilog⁡σ(θTxi)+(1−yi)log⁡(1−σ(θTxi))]\ell(\theta | X, y) = \sum_{i=1}^{n} \log P(y_i | x_i, \theta) = \sum_{i=1}^{n} \left[ y_i \log \sigma(\theta^T x_i) + (1 - y_i) \log (1 - \sigma(\theta^T x_i)) \right] (θX,y)=i=1nlogP(yixi,θ)=i=1n[yilogσ(θTxi)+(1yi)log(1σ(θTxi))]

负对数似然函数为:

NLL(θ∣X,y)=−∑i=1n[yilog⁡σ(θTxi)+(1−yi)log⁡(1−σ(θTxi))]\text{NLL}(\theta | X, y) = -\sum_{i=1}^{n} \left[ y_i \log \sigma(\theta^T x_i) + (1 - y_i) \log (1 - \sigma(\theta^T x_i)) \right] NLL(θX,y)=i=1n[yilogσ(θTxi)+(1yi)log(1σ(θTxi))]

5.2 优化逻辑回归的负对数似然函数

为了优化逻辑回归模型的参数θ\thetaθ,需要计算负对数似然函数的梯度:

∇θNLL(θ∣X,y)=−∑i=1n[yi∂∂θlog⁡σ(θTxi)+(1−yi)∂∂θlog⁡(1−σ(θTxi))]\nabla_{\theta} \text{NLL}(\theta | X, y) = -\sum_{i=1}^{n} \left[ y_i \frac{\partial}{\partial \theta} \log \sigma(\theta^T x_i) + (1 - y_i) \frac{\partial}{\partial \theta} \log (1 - \sigma(\theta^T x_i)) \right] θNLL(θX,y)=i=1n[yiθlogσ(θTxi)+(1yi)θlog(1σ(θTxi))]

通过链式法则,可以得到:

∂∂θlog⁡σ(θTxi)=σ′(θTxi)σ(θTxi)xi\frac{\partial}{\partial \theta} \log \sigma(\theta^T x_i) = \frac{\sigma'(\theta^T x_i)}{\sigma(\theta^T x_i)} x_i θlogσ(θTxi)=σ(θTxi)σ(θTxi)xi

∂∂θlog⁡(1−σ(θTxi))=−σ′(θTxi)1−σ(θTxi)xi\frac{\partial}{\partial \theta} \log (1 - \sigma(\theta^T x_i)) = \frac{-\sigma'(\theta^T x_i)}{1 - \sigma(\theta^T x_i)} x_i θlog(1σ(θTxi))=1σ(θTxi)σ(θTxi)xi

其中 σ′(z)=σ(z)(1−σ(z))\sigma'(z) = \sigma(z)(1 - \sigma(z))σ(z)=σ(z)(1σ(z))是 Sigmoid 函数的导数。

因此,负对数似然函数的梯度可以简化为:

∇θNLL(θ∣X,y)=−∑i=1n[yiσ(θTxi)(1−σ(θTxi))σ(θTxi)xi−(1−yi)σ(θTxi)(1−σ(θTxi))1−σ(θTxi)xi]\nabla_{\theta} \text{NLL}(\theta | X, y) = -\sum_{i=1}^{n} \left[ y_i \frac{\sigma(\theta^T x_i)(1 - \sigma(\theta^T x_i))}{\sigma(\theta^T x_i)} x_i - (1 - y_i) \frac{\sigma(\theta^T x_i)(1 - \sigma(\theta^T x_i))}{1 - \sigma(\theta^T x_i)} x_i \right] θNLL(θX,y)=i=1n[yiσ(θTxi)σ(θTxi)(1σ(θTxi))xi(1yi)1σ(θTxi)σ(θTxi)(1σ(θTxi))xi]

进一步简化为:

∇θNLL(θ∣X,y)=−∑i=1n[yi(1−σ(θTxi))−(1−yi)σ(θTxi)]xi\nabla_{\theta} \text{NLL}(\theta | X, y) = -\sum_{i=1}^{n} \left[ y_i (1 - \sigma(\theta^T x_i)) - (1 - y_i) \sigma(\theta^T x_i) \right] x_i θNLL(θX,y)=i=1n[yi(1σ(θTxi))(1yi)σ(θTxi)]xi

最终得到:

∇θNLL(θ∣X,y)=−∑i=1n[yi−σ(θTxi)]xi\nabla_{\theta} \text{NLL}(\theta | X, y) = -\sum_{i=1}^{n} \left[ y_i - \sigma(\theta^T x_i) \right] x_i θNLL(θX,y)=i=1n[yiσ(θTxi)]xi

这个公式是逻辑回归模型中负对数似然函数的梯度,它在模型训练中用于参数的优化。



http://www.dtcms.com/a/350909.html

相关文章:

  • 项目1:异步邮件发送系统实战
  • 自由学习记录(88)
  • 设计一个完整可用的 Spring Boot Starter
  • 深入浅出 ArrayList:从基础用法到底层原理的全面解析(下)
  • 2025职场进阶:低门槛技能实用手册
  • 编写Linux下usb设备驱动方法:probe函数中要进行的工作
  • css新特性
  • openharmony之DRM开发:数字知识产权保护揭秘
  • 智能体框架CAMEL-第三章
  • 学习嵌入式的第二十五天——哈希表和内核链表
  • 基于SpringBoot的物资管理系统【2026最新】
  • Linux网络服务(六)——iptables Forward实现内网服务暴露与访问外网
  • 直播美颜SDK技术解析:人脸美型功能的算法原理与实现方案
  • linux环境下 - 如何干净地卸载掉nvidia驱动
  • 工业通信协议综合调研报告
  • 深入浅出 ArrayList:从基础用法到底层原理的全面解析(上)
  • vue-Router中通过路由地址path中的数据转换为props传参,不建议添加多个可选参数
  • More Effective C++ 条款07:不要重载、和,操作符
  • linux的conda配置与应用阶段的简单指令备注
  • Typora + PicList + Gitee 图床完整配置教程
  • 《P1656 炸铁路》
  • C++ 编译链接杂谈——前向声明
  • JavaScript 类中静态变量与私有变量的区别及用法
  • eniac:世界上第一台通用电子计算机的传奇
  • 开发避坑指南(36):Java字符串Base64编码实战指南
  • 深度学习-----《PyTorch深度学习核心应用解析:从环境搭建到模型优化的完整实践指南》
  • 初步了解多线程
  • 交换机是如何同时完成帧统计与 BER/FEC 分析的
  • 【应急响应工具教程】SPECTR3:通过便携式 iSCSI 实现远程证据的只读获取与分析
  • [pilot智驾系统] 模型守护进程(modeld)