深度学习中的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(1−pp) 的值接近 − ∞ -\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(1−pp)=β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=1∏np(yi∣Xi)
对于二分类问题,如果 y i = 1 y_i = 1 yi=1,那么 p ( y i ∣ X i ) p(y_i|X_i) p(yi∣Xi) 就是模型输出的概率 p;如果 y i = 0 y_i = 0 yi=0,则 p ( y i ∣ X i ) p(y_i|X_i) p(yi∣Xi) 是 1 − p 1 - p 1−p。
因此,似然函数可以写成:
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=1∏npiyi(1−pi)(1−yi)
其中, 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=1∑n[yilogpi+(1−yi)log(1−pi)]
这是因为对数运算可以将乘积转化为求和,使得计算更简单。这个对数似然函数是逻辑回归的目标函数,最大化这个对数似然函数相当于找到最优的参数 ( \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=1∑n[yilogpi+(1−yi)log(1−pi)]
这个负对数似然函数就是逻辑回归的交叉熵损失函数(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(1−pp)在推导过程中起到了重要的作用,它将非线性的概率 ( 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 的分布…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式
pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框 grid的边框是在图里…...

【JavaEE】万字详解HTTP协议
HTTP是什么?-----互联网的“快递小哥” 想象我们正在网上购物:打开淘宝APP,搜索“蓝牙耳机”,点击商品图片,然后下单付款。这一系列操作背后,其实有一个看不见的“快递小哥”在帮我们传递信息,…...

旋量理论:刚体运动的几何描述与机器人应用
旋量理论为描述刚体在三维空间中的运动提供了强大而优雅的数学框架。与传统的欧拉角或方向余弦矩阵相比,旋量理论通过螺旋运动的概念统一了旋转和平移,在机器人学、计算机图形学和多体动力学领域具有显著优势。这种描述不仅几何直观,而且计算…...

Linux 内核内存管理子系统全面解析与体系构建
一、前言: 为什么内存管理是核心知识 内存管理是 Linux 内核最核心也最复杂的子系统之一,其作用包括: 为软件提供独立的虚拟内存空间,实现安全隔离分配/回收物理内存资源,维持系统稳定支持不同类型的内存分配器,最优…...