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

深度学习中的logit到底是什么?

1. 问题

在做深度学习的过程中,经常会碰到logit。这个和在学校学的概率有出入,因而想弄明白这到底是个什么参数。

2. 使用logit的原因

定义几率(odds)和 logit 函数的主要原因在于使用了线性空间转换,使得非线性的概率关系问题变成线性化

  • 将非线性的概率关系线性化,使得线性回归模型可以处理分类问题;
  • 几率作为概率的一种解释方式,能提供直观的物理意义;
  • Logit 函数的逆函数(sigmoid)确保了预测的概率值在 0 到 1 之间;
  • 利于采用最大化似然估计方法来进行参数估计和模型优化。

3. 详细解释

通过这个定义,逻辑回归能够以一种线性方式处理分类问题,从而实现对概率的合理预测。

定义几率(odds)logit函数的原因,是为了将二分类问题中的概率关系转化为一种线性的表示,使得回归模型能够处理概率预测。这种定义背后有几层考虑:

3.1. 解决非线性问题

在二分类问题中,概率 ( p ) 的值介于 0 到 1 之间,这本质上是非线性的。直接用线性回归模型预测概率会导致一些问题,因为线性模型可能会产生不在 ( [0, 1] ) 范围内的值。而使用对数几率的定义(log odds)可以将概率映射到整个实数范围(从 − ∞ -\infty + ∞ +\infty +),这使得预测更加合理且线性化。
例如:

  • 当事件发生的概率 ( p ) 接近 0 时,logit ln ⁡ ( p 1 − p ) \ln\left(\frac{p}{1 - p}\right) ln(1pp) 的值接近 − ∞ -\infty
  • 当事件发生的概率 ( p ) 接近 1 时,logit 的值接近 + ∞ +\infty +

通过这个映射,logit 函数能够将 ( p ) 的非线性变化线性化,适应回归模型的需求。

3.2. 可解释性

几率(odds)作为概率的一种替代表示,其物理含义非常直观。几率表示事件发生的相对可能性,比如:

  • 如果某事件发生的概率 ( p = 0.75 ),那么几率 ( \frac{p}{1-p} = 3 ),意味着事件发生的可能性是其不发生的 3 倍。
  • 如果 ( p = 0.5 ),几率为 1,表示事件发生与不发生的可能性相等。

通过对几率取对数(logit),我们能够将这类相对关系进一步转换为实数范围,且通过线性变化表达分类问题的复杂性。

3.3. 线性模型的适应性

逻辑回归中用 logit 函数的一个重要原因是:线性模型不能直接拟合非线性概率。假设我们有一个简单的线性模型:

y = β 0 + β 1 x 1 + ⋯ + β n x n y = \beta_0 + \beta_1 x_1 + \dots + \beta_n x_n y=β0+β1x1++βnxn

如果直接将 ( y ) 作为概率 ( p ),可能会出现模型预测出负的概率值,或者超过 1 的概率值,这显然是不合理的。因此,logit 函数通过这种对数变换,使得线性模型能够更合理地预测分类问题中的概率。

具体来说,逻辑回归模型是将预测变量通过线性回归来预测 logit:

ln ⁡ ( p 1 − p ) = β 0 + β 1 x 1 + ⋯ + β n x n \ln\left(\frac{p}{1 - p}\right) = \beta_0 + \beta_1 x_1 + \dots + \beta_n x_n ln(1pp)=β0+β1x1++βnxn

通过这种方式,logit 保证了预测的概率 ( p ) 始终在 0 和 1 之间。

3.4. Logit 的逆变换(Sigmoid 函数)

Logit 函数的逆变换是 sigmoid 函数,也称为 Logistic 函数:

p = 1 1 + e − ( β 0 + β 1 x 1 + ⋯ + β n x n ) p = \frac{1}{1 + e^{-(\beta_0 + \beta_1 x_1 + \dots + \beta_n x_n)}} p=1+e(β0+β1x1++βnxn)1

这使得最终得到的概率始终处于 0 到 1 之间,从而解决了线性回归无法处理的非线性问题。

补充材料: 4. 最大化似然估计

在逻辑回归中,我们通常采用最大化似然估计(Maximum Likelihood Estimation, MLE)来优化模型参数。logit 函数的定义使得用最大似然方法推导损失函数时更为方便,也保证了损失函数是凸函数,从而更容易进行优化求解。

4.1. 最大似然估计(MLE)的基本思想

最大似然估计的核心思想是:我们希望找到一组模型参数,使得观测数据在当前模型下的出现概率最大化。换句话说,我们希望估计出一组参数,能够最可能地解释数据。

对于逻辑回归,假设输入特征为 ( X ),输出为 ( y ),我们希望找到一组参数 β 0 , β 1 , . . . , β n \beta_0, \beta_1, ..., \beta_n β0,β1,...,βn 来预测 ( y ) 的概率 p(y|X) 。逻辑回归模型预测的是事件发生的概率 ( p ) 和不发生的概率 ( 1 - p ):

p ( y = 1 ∣ X ) = 1 1 + e − ( β 0 + β 1 x 1 + . . . + β n x n ) p(y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1 x_1 + ... + \beta_n x_n)}} p(y=1∣X)=1+e(β0+β1x1+...+βnxn)1

这是通过逻辑回归模型的 sigmoid 函数(Logistic 函数)来得到的概率值。

4.2. 似然函数(Likelihood Function)

假设我们有一组训练数据 ( X 1 , y 1 ) , ( X 2 , y 2 ) , . . . , ( X n , y n ) (X_1, y_1), (X_2, y_2), ..., (X_n, y_n) (X1,y1),(X2,y2),...,(Xn,yn),每个样本 ( i ) 的输入是 X i X_i Xi,输出标签 y i y_i yi。我们可以构造似然函数,即模型参数使得整个数据集 ( X ) 产生的可能性:

L ( β ∣ X ) = ∏ i = 1 n p ( y i ∣ X i ) L(\beta|X) = \prod_{i=1}^{n} p(y_i|X_i) L(βX)=i=1np(yiXi)

对于二分类问题,如果 y i = 1 y_i = 1 yi=1,那么 p ( y i ∣ X i ) p(y_i|X_i) p(yiXi) 就是模型输出的概率 p;如果 y i = 0 y_i = 0 yi=0,则 p ( y i ∣ X i ) p(y_i|X_i) p(yiXi) 1 − p 1 - p 1p

因此,似然函数可以写成:

L ( β ∣ X ) = ∏ i = 1 n p i y i ( 1 − p i ) ( 1 − y i ) L(\beta|X) = \prod_{i=1}^{n} p_i^{y_i} (1 - p_i)^{(1 - y_i)} L(βX)=i=1npiyi(1pi)(1yi)

其中, p i = 1 1 + e − ( β 0 + β 1 x 1 + . . . + β n x n ) p_i = \frac{1}{1 + e^{-(\beta_0 + \beta_1 x_1 + ... + \beta_n x_n)}} pi=1+e(β0+β1x1+...+βnxn)1 是样本 i 的预测概率。

5.3. 取对数似然函数(Log-Likelihood)

为了方便计算,我们通常取似然函数的对数,称为对数似然函数(log-likelihood function)

log ⁡ L ( β ∣ X ) = ∑ i = 1 n [ y i log ⁡ p i + ( 1 − y i ) log ⁡ ( 1 − p i ) ] \log L(\beta|X) = \sum_{i=1}^{n} [y_i \log p_i + (1 - y_i) \log (1 - p_i)] logL(βX)=i=1n[yilogpi+(1yi)log(1pi)]

这是因为对数运算可以将乘积转化为求和,使得计算更简单。这个对数似然函数是逻辑回归的目标函数,最大化这个对数似然函数相当于找到最优的参数 ( \beta ),使得模型最可能地解释数据。

5.4. 损失函数的推导

最大化对数似然函数等价于最小化负对数似然函数,因此我们可以定义损失函数为:

Loss ( β ) = − log ⁡ L ( β ∣ X ) = − ∑ i = 1 n [ y i log ⁡ p i + ( 1 − y i ) log ⁡ ( 1 − p i ) ] \text{Loss}(\beta) = - \log L(\beta|X) = - \sum_{i=1}^{n} [y_i \log p_i + (1 - y_i) \log (1 - p_i)] Loss(β)=logL(βX)=i=1n[yilogpi+(1yi)log(1pi)]

这个负对数似然函数就是逻辑回归的交叉熵损失函数(cross-entropy loss)。它衡量的是模型预测的概率分布与真实分布之间的差异。

5.5. logit 函数的作用

logit 函数 logit ( p ) = ln ⁡ ( p 1 − p ) \text{logit}(p) = \ln\left(\frac{p}{1-p}\right) logit(p)=ln(1pp)在推导过程中起到了重要的作用,它将非线性的概率 ( p ) 转换成了可以用线性模型表示的 log odds。具体地:

  • 我们通过线性回归模型来预测 logit 值 β 0 + β 1 x 1 + . . . + β n x n \beta_0 + \beta_1 x_1 + ... + \beta_n x_n β0+β1x1+...+βnxn,而这个 logit 值再通过 sigmoid 函数转化为概率。
  • 这种转化让我们能够在线性空间内处理分类问题,同时最大化似然估计来优化模型参数。

5.6. 优化过程

通过最小化负对数似然函数(或等价地最大化对数似然函数),我们可以通过梯度下降等优化算法来找到最优的模型参数。

5.7 小结

logit 函数的定义(即对几率取对数)是为了将二分类问题中的非线性概率变换为线性形式,使得逻辑回归可以利用线性回归模型预测事件发生的概率。这个线性化的过程使得我们可以使用最大似然估计法推导出损失函数,即交叉熵损失。通过最小化这个损失函数,我们能够优化逻辑回归模型的参数,从而更好地拟合数据。

相关文章:

深度学习中的logit到底是什么?

1. 问题 在做深度学习的过程中,经常会碰到logit。这个和在学校学的概率有出入,因而想弄明白这到底是个什么参数。 2. 使用logit的原因 定义几率(odds)和 logit 函数的主要原因在于使用了线性空间转换,使得非线性的概…...

idea使用记录

文章目录 1、idea调出maven窗口2、跳转到指定行 1、idea调出maven窗口 首先尝试菜单栏View→Tool Windows→Maven,如果没有maven那很有可能是idea没有识别到这是一个maven项目,此时可以尝试在项目的pom文件上右击,选择“add as maven projec…...

Python - HTTP servers

python的http.server模块用于HTTP服务器的功能,这个模块是python标准库的一部分,不需要pip install。 使用前需要import: import http.server 然后就可以编辑代码,使用此模块提供的接口,实现http server相关功能。 除…...

内网Debian\Ubuntu服务器安装dep包,基于apt-rdepends下载相关依赖

文章目录 背景一、下载依赖二、拷贝到内网三、 使用dpkg安装可能会遇到的问题 背景 由于生产服务器是Debian\Ubuntu系统且在内网环境(不联网),需要使用拷贝deb格式的包使用dpkg的方式进行安装。所以,需要现在联网的环境中将所需的…...

大模型——如何实现超长多轮对话

在自然语言处理的领域中,多轮对话系统是构建智能化交互应用的关键。无论是聊天机器人、虚拟助手,还是客户服务系统,能够保持连贯的对话并记住上下文信息是用户体验的核心。然而,大规模语言模型(如GPT等)的对…...

大数据面试-笔试SQL

一个表table: c_id u_id score;用SQL计算每个班级top5学生的平均分(腾讯) select class_id,avg(score) as score_avg from (select *,row_number() over(partition by class_id order by score desc) as score_rank from table ) t1 where t…...

希尔排序和直接插入排序

因为排序这些比较复杂点我就分几期给大家来讲~~~ 直接插入排序 直接插入排序是一种简单的排序算法,主要用于对少量数据进行排序。其基本思想是将待排序的元素逐个插入到已经排好序的部分中,从而形成一个有序序列。 具体步骤如下: 初始化&…...

IDEA 配置 Git 详解

本文将介绍在IntelliJ IDEA 中如何配置Git 没有安装配置 Git 的可以参考我的这篇文章:安装配置 Git 一、操作环境及准备 1.win 10 2.已安装且配置了Git 3.有Gitee账户 4.安装了IntelliJ IDEA 2023.2.1 5.全程联网 二、配置步骤 2.1 配置git 1.采用全局设置&…...

Docker 部署 Redis 监控系统实战:Redis Exporter 与 Prometheus 完整配置指南

Docker 部署 Redis 监控系统实战:Redis Exporter 与 Prometheus 完整配置指南 文章目录 Docker 部署 Redis 监控系统实战:Redis Exporter 与 Prometheus 完整配置指南一 缓存简述二 redis exporter 部署三 环境变量配置四 修改文件权限五 验证 exporter …...

高级算法设计与分析-MaxFlow网络流基础知识

MaxFlow网络流 1 网络流基础概念 source:源点 sink:终点 Flow:流量 capacity:容量 Residual:残量 Residual Network:残量网络 Augmenting path:增广路径,表示从源点 s 到终点 t 不包含环的路径 Bottleneck capacity:瓶颈容量 2 最大流 2.1 基础概念 2.2 增广路算法 …...

Java项目实战II基于Java+Spring Boot+MySQL的桂林旅游景点导游平台(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 桂林,以其独特的喀斯特地貌、秀美的自然风光闻名遐迩,每年吸引着无数国内外游…...

C语言-输入输出

实验一:编写一个输出两行自定义字符的 C 程序 一、实验目的 熟悉 C 语言的基本结构和语法。掌握 printf() 函数的使用方法。了解在 Code::Blocks 中编写、编译和运行程序的过程。 二、实验内容 编写一个 C 程序,要求输出两行字符,内容自定…...

如何在GitHub上传自己的项目?(一文看懂,每一步的操作和解决常见错误的方法)

目录 步骤一:准备 Git 环境 1. 安装 Git 2. 配置 Git 步骤二:在 GitHub 创建一个新的仓库 1. 登录到你的 GitHub 账号。 2. 点击右上角的 号,然后选择 New repository。 3. 填写以下信息: 步骤三:将本地项目上…...

数据结构_day1

目录 大纲 1.数据结构基础知识 1.1 什么是数据结构 1.2 数据 1.3 逻辑结构 1.4 存储结构 1.4.1 顺序存储 1.4.2 链式存储 1.4.3 索引存储结构 1.4.4 散列存储 1.5 操作 2.算法基础知识 2.1 什么是算法 2.2 算法的设计 2.3 算法的特性 2.4 评价算法的好坏 大纲 数据结构、算法(理…...

c# using 声明进行资源管理

在 C# 8 中,using 声明引入了一种新的语法,称为 using 声明,它使得开发人员在处理资源时的代码更加简洁和清晰。主要的变化包括 使用声明 和 使用上下文(using declaration) 的引入。 使用语句的简化 在 C# 8 中&…...

Kafka之基本概念

1、Kafka是什么? Kafka是由Scala语言开发的一个多分区、多副本,基于Zookeeper集群协调的系统。 那这个所谓的系统又是什么系统呢? 回答这个问题要从发展的角度来看:起初Kafka的定位是分布式消息系统。但是目前它的定位是一个分布…...

倪师学习笔记-天纪-斗数简介

一、学习过程 学习->验证->思考 二、算命方法 算命方法特点铁板神数适合核对六亲子平法准确度一般紫微斗数天文地理融合最好,批六亲不准,配合相可以提升准确率 三、果 天地人三者一起影响果,天时地利人和促成成功1/31/31/31算命部…...

Python酷库之旅-第三方库Pandas(143)

目录 一、用法精讲 646、pandas.Timestamp.is_quarter_start属性 646-1、语法 646-2、参数 646-3、功能 646-4、返回值 646-5、说明 646-6、用法 646-6-1、数据准备 646-6-2、代码示例 646-6-3、结果输出 647、pandas.Timestamp.is_year_end属性 647-1、语法 647…...

细说QT各种线程锁的特点和用法

文章目录 QMutex特点用法QReadWriteLock特点用法QSemaphore特点用法QWaitCondition特点用法在Qt框架中,提供了多种线程同步机制,包括互斥锁(Mutex)、读写锁(Read-Write Lock)、信号量(Semaphore)和条件变量(Wait Conditions)。这些机制用于处理多线程编程中的数据一致性和线程…...

Caffeine+Redis两级缓存架构

CaffeineRedis两级缓存架构 在高性能的服务项目中,我们一般会将一些热点数据存储到 Redis这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的压力。 但是在一些场景下单纯使用 Redis 的分布…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理&#xff1a…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...