当前位置: 首页 > 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 的分布…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

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

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

如何为服务器生成TLS证书

TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中&#xff0…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...

什么是VR全景技术

VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...