极大似然估计与机器学习
复习概统的时候突然发现好像极大似然估计MLE与机器学习的数据驱动非常相似,都是采样样本然后估计模型参数。貌似,后知后觉的才意识到极大似然估计就是机器学习有效的数学保证
下面以拟合线性分布的最小二乘与分类问题为例推到以下如何从似然函数推导出MSE损失与交叉熵损失
一、线性回归的最小二乘法
1. 概率模型设定
假设数据由线性模型生成,且观测噪声服从 正态分布:
y = w T x + ϵ , ϵ ∼ N ( 0 , σ 2 ) y = \mathbf{w}^T \mathbf{x} + \epsilon, \quad \epsilon \sim \mathcal{N}(0, \sigma^2) y=wTx+ϵ,ϵ∼N(0,σ2)
则给定输入 x \mathbf{x} x 时, y y y 的条件概率密度为:
p ( y ∣ x ; w ) = 1 2 π σ 2 exp ( − ( y − w T x ) 2 2 σ 2 ) p(y | \mathbf{x}; \mathbf{w}) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left( -\frac{(y - \mathbf{w}^T \mathbf{x})^2}{2\sigma^2} \right) p(y∣x;w)=2πσ21exp(−2σ2(y−wTx)2)
均值即为 ( y − w T x ) 2 (y - \mathbf{w}^T \mathbf{x})^2 (y−wTx)2
2. 似然函数与对数似然
对于独立同分布的 N N N 个样本 { ( x i , y i ) } i = 1 N \{(\mathbf{x}_i, y_i)\}_{i=1}^N {(xi,yi)}i=1N,似然函数为:
L ( w ) = ∏ i = 1 N p ( y i ∣ x i ; w ) L(\mathbf{w}) = \prod_{i=1}^N p(y_i | \mathbf{x}_i; \mathbf{w}) L(w)=i=1∏Np(yi∣xi;w)
取对数得 对数似然函数:
ln L ( w ) = − N 2 ln ( 2 π σ 2 ) − 1 2 σ 2 ∑ i = 1 N ( y i − w T x i ) 2 \ln L(\mathbf{w}) = -\frac{N}{2} \ln(2\pi\sigma^2) - \frac{1}{2\sigma^2} \sum_{i=1}^N (y_i - \mathbf{w}^T \mathbf{x}_i)^2 lnL(w)=−2Nln(2πσ2)−2σ21i=1∑N(yi−wTxi)2
3. 极大似然估计等价于最小二乘法
• 最大化对数似然等价于最小化 负对数似然。
• 忽略与 w \mathbf{w} w 无关的常数项,优化目标简化为:
min w ∑ i = 1 N ( y i − w T x i ) 2 \min_{\mathbf{w}} \sum_{i=1}^N (y_i - \mathbf{w}^T \mathbf{x}_i)^2 wmini=1∑N(yi−wTxi)2
结论:最小二乘法的损失函数是高斯噪声假设下的极大似然估计结果。
二、分类问题的交叉熵损失
1. 概率模型设定(以二分类为例)
假设标签 y ∈ { 0 , 1 } y \in \{0,1\} y∈{0,1}服从 伯努利分布,其概率由逻辑函数(sigmoid)给出:
p ( y ∣ x ; w ) = y ^ y ( 1 − y ^ ) 1 − y , y ^ = σ ( w T x ) = 1 1 + e − w T x p(y | \mathbf{x}; \mathbf{w}) = \hat{y}^y (1 - \hat{y})^{1-y}, \quad \hat{y} = \sigma(\mathbf{w}^T \mathbf{x}) = \frac{1}{1 + e^{-\mathbf{w}^T \mathbf{x}}} p(y∣x;w)=y^y(1−y^)1−y,y^=σ(wTx)=1+e−wTx1
其中 y ^ \hat{y} y^ 是模型预测的 y = 1 y=1 y=1 的概率。
2. 似然函数与对数似然
对于 N N N个独立样本,似然函数为:
L ( w ) = ∏ i = 1 N y ^ i y i ( 1 − y ^ i ) 1 − y i L(\mathbf{w}) = \prod_{i=1}^N \hat{y}_i^{y_i} (1 - \hat{y}_i)^{1-y_i} L(w)=i=1∏Ny^iyi(1−y^i)1−yi
取对数得 对数似然函数:
ln L ( w ) = ∑ i = 1 N [ y i ln y ^ i + ( 1 − y i ) ln ( 1 − y ^ i ) ] \ln L(\mathbf{w}) = \sum_{i=1}^N \left[ y_i \ln \hat{y}_i + (1-y_i) \ln (1 - \hat{y}_i) \right] lnL(w)=i=1∑N[yilny^i+(1−yi)ln(1−y^i)]
3. 极大似然估计等价于最小化交叉熵
• 最大化对数似然等价于最小化 负对数似然:
min w − ∑ i = 1 N [ y i ln y ^ i + ( 1 − y i ) ln ( 1 − y ^ i ) ] \min_{\mathbf{w}} -\sum_{i=1}^N \left[ y_i \ln \hat{y}_i + (1-y_i) \ln (1 - \hat{y}_i) \right] wmin−i=1∑N[yilny^i+(1−yi)ln(1−y^i)]
• 这正是 二元交叉熵损失(Binary Cross-Entropy Loss)。
结论:交叉熵损失是伯努利分布假设下的极大似然估计结果。
三、通用框架与扩展
1. 核心思想
• 概率建模:根据问题类型选择合适的概率分布:
• 回归问题 → 高斯分布(连续输出)。
• 分类问题 → 伯努利/多项分布(离散输出)。
• 损失函数 = 负对数似然:
L ( w ) = − ln L ( w ) \mathcal{L}(\mathbf{w}) = -\ln L(\mathbf{w}) L(w)=−lnL(w)
2. 其他常见例子
问题类型 | 分布假设 | 损失函数 |
---|---|---|
多分类(K类) | 多项分布(Softmax) | 交叉熵损失 |
泊松回归 | 泊松分布 | 负对数泊松似然 |
鲁棒回归 | 拉普拉斯分布 | 绝对误差(L1损失) |
3. 代码实现示例
(1) 最小二乘法(PyTorch)
import torch# 定义模型和损失
model = torch.nn.Linear(in_features=2, out_features=1)
criterion = torch.nn.MSELoss() # 等价于高斯MLE# 前向计算
y_pred = model(X)
loss = criterion(y_pred, y)
(2) 交叉熵损失(逻辑回归)
import torch# 定义模型和损失
model = torch.nn.Linear(in_features=2, out_features=1)
criterion = torch.nn.BCEWithLogitsLoss() # 等价于伯努利MLE# 前向计算
logits = model(X)
loss = criterion(logits, y)
四、总结
• 最小二乘法和交叉熵损失的本质:
它们都是通过假设数据的生成分布(高斯/伯努利),然后对参数进行极大似然估计导出的。
• 机器学习与概率论的桥梁:
损失函数的设计可以统一理解为对数据分布假设的统计推断,这使得概率论成为理解算法背后原理的有力工具。
理解这一框架后,你可以轻松推广到其他分布假设(如泊松回归、鲁棒回归等),并设计新的损失函数来匹配具体问题。
相关文章:
极大似然估计与机器学习
复习概统的时候突然发现好像极大似然估计MLE与机器学习的数据驱动非常相似,都是采样样本然后估计模型参数。貌似,后知后觉的才意识到极大似然估计就是机器学习有效的数学保证 下面以拟合线性分布的最小二乘与分类问题为例推到以下如何从似然函数推导出M…...
基于 Guns v5.1 框架的分页教程
基于 Guns v5.1 框架的分页教程 第一步:Controller 层处理前端请求 在 Controller 中,需要接收 Bootstrap Table 传来的分页参数(limit, offset, sort, order)。Guns 提供了封装好的 PageFactory 类来简化 Page 对象的创建。 R…...
从零搭建SpringBoot Web 单体项目【基础篇】2、SpringBoot 整合数据库
系列文章 从零搭建SpringBoot Web单体项目【基础篇】1、IDEA搭建SpringBoot项目 从零搭建 SpringBoot Web 单体项目【基础篇】2、SpringBoot 整合数据库 目录 一、项目基础环境说明 二、数据库整合流程 1. 添加 MyBatis-Plus 相关依赖(pom.xml) 2…...
Supplemental Table 5FAM49B H-SCORE与其他临床特征的关系
以下是针对 Supplemental Table 5 中不同变量类型所需检验方法的 SPSS纯界面操作步骤(严格匹配原文统计方法): Supplemental Table 5 SPSS操作步骤 目标:分析FAM49B H-SCORE与其他临床特征的关系,按变量类型选择检验方法。 变量与检验方法对应表 变量变量类型检验方法SP…...
信息系统项目管理师考前练习4
项目范围基准变更 当客户提出新增功能需求时,项目经理首先应该: A. 立即更新范围说明书 B. 提交变更请求并评估影响 C. 要求团队加班实现 D. 拒绝变更以保持进度 答案:B 解析:所有范围变更必须走正式变更流程(第5版强调变更控制),评估影响是第一步。 混合项目管理模式…...
C语言判断素数(附带源码和解析)
素数,也称为质数,是一个大于 1 的自然数,除了 1 和它本身外,不能被其他自然数整除。换句话说,素数只有两个因子:1 和它自身。例如,2、3、5、7、11 和 13 都是素数。 素数在数学和计算机科学中扮…...
汽车电子电气架构诊断功能开发全流程解析
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
Xilinx XCAU10P-2FFVB676I 赛灵思 Artix UltraScale+ FPGA
XCAU10P-2FFVB676I 是 AMD Xilinx 推出的 Artix UltraScale™ FPGA 器件,内部集成了约 96,250 逻辑单元,满足中等规模高性能应用的需求。该芯片采用 16 nm FinFET 制程工艺,核心电压典型值约 0.85 V,能够在较低功耗下提供高达 775…...
DS18B20 温度传感器实验探索与实践分享
DS18B20 温度传感器实验探索与实践分享 在嵌入式系统开发领域,温度监测是常见的应用场景。本次实验聚焦于 DS18B20 温度传感器,旨在掌握其工作原理、单总线通信方式,以及实现温度采集与数码管显示,同时开启温度报警功能。接下来&…...
RT_Thread——内存管理
文章目录 一、为什么要自己实现内存管理二、RT-Thread 的内存管理方法2.1 小内存管理算法2.2 slab 管理算法2.3 memheap 管理算法 三、Heap 相关的函数3.1 rt_system_heap_init3.2 rt_malloc/rt_realloc/rt_calloc2.3 rt_free2.4 rt_malloc_sethook/rt_free_sethook 一、为什么…...
Temporary failure in name resolution
这个错误 ping: baidu.com: Temporary failure in name resolution 通常表示 DNS 解析的问题,也就是说你的系统无法通过域名服务器解析 baidu.com 的 IP 地址。 解决方案: 检查 DNS 配置( 有效 ): 确保系统的 DNS 配置是正确的。你可以检查 …...
【动手学深度学习】1.4~1.8 深度学习的发展及其特征
目录 1.4. 起源1.5. 深度学习的发展1.6. 深度学习的成功案例1.7. 特点1.8. 小结 1.4. 起源 深度学习的起源可追溯至多个领域的长期发展: 统计学基础:早期统计学方法(如伯努利分布、高斯分布、最小均方算法)和估计思想(…...
深度学习之序列建模的核心技术:LSTM架构深度解析与优化策略
LSTM深度解析 一、引言 在深度学习领域,循环神经网络(RNN)在处理序列数据方面具有独特的优势,例如语音识别、自然语言处理等任务。然而,传统的 RNN 在处理长序列数据时面临着严重的梯度消失问题,这使得网…...
Gartner研究报告《Generative AI 赋能Digital Commerce的三种路径》学习心得
一、研究背景 随着生成式 AI(GenAI)技术的迅速发展,其在数字商务领域的应用受到了广泛关注。这篇研究报告深入探讨了 GenAI 在数字商务中的角色以及它如何与现有的数字商务技术相结合来发挥优势,为应用领导者提供了关于如何利用 GenAI 优化技术投资策略的见解。 二、GenA…...
解锁 YOLOv8 新潜能:EfficientViT 主干网络的优化实践与实验数据解读
文章目录 一、YOLO 系列主干网络的发展历程二、EfficientViT:YOLOv8 主干网络的新宠(一)EfficientViT 的核心优势(二)EfficientViT 在 YOLOv8 中的集成与实现 三、实验对比:EfficientViT vs. MobileNet 系列…...
【前端基础】12、CSS的overflow(visible、hidden、scroll、auto)【注:只有最基础的说明。】
一、overflow的作用 用于控制内容溢出时的行为。 二、overflow的使用 visible:超出的部分正常显示(默认设定) hidden:超出的部分隐藏显示(直接裁剪掉) scroll:超出的部分滚动显示 滚动条…...
创建一个element plus项目
当然可以!下面是一个 Vue 3 Element Plus 的最简单完整示例,它包括: 使用 <el-button> 按钮组件点击按钮后用 ElMessage 弹出提示 ✅ 1. 安装并初始化项目(如果还没创建项目) 你可以用官方推荐的方式快速创建…...
openCV1.1 Mat对象
imread(“D:\souse\duoxile.jpg”, IMREAD_COLOR); 功能: 从指定路径读取图像文件并解码为OpenCV的Mat对象 第一个参数: 文件路径 类型: const string&描述: 要读取的图像文件的绝对或相对路径示例: “D:\souse\duoxile.jpg” 或 “./images/test.png”第二个参数: 读取模…...
C++:array容器
array容器是序列容器,它的特点是:静态,固定数目。可以看作更安全的数组。 它还有一些成员函数,如begin():返回指向容器中第一个元素的随机访问迭代器。 #include<iostream>//数组容器 #…...
26、AI 预测性维护 (燃气轮机轴承) - /安全与维护组件/ai-predictive-maintenance-turbine
76个工业组件库示例汇总 AI 预测性维护模拟组件 (燃气轮机轴承) 概述 这是一个交互式的 Web 组件,旨在模拟基于 AI 的预测性维护 (Predictive Maintenance, PdM) 概念,应用于工业燃气轮机的关键部件(例如轴承)。它通过模拟传感器数据、动态预测剩余使用寿命 (RUL),并根…...
特种兵参会
出发(5.15) 有了去年去5月去深圳参加OpenTenBase工委会成立的经验,今年这个时候去广州就一定要在下午16点前起飞。恰好到了候机口有蔚来的牛屋,进去躺了一会。飞机顺利到达广州。晚上小聚 总监约了祁总,我们相识多年&…...
手搓四人麻将程序
一、麻将牌的表示 在麻将游戏中,总共有一百四十四张牌,这些牌被分为多个类别,每个类别又包含了不同的牌型。具体来说,麻将牌主要包括序数牌、字牌和花牌三大类。序数牌中,包含有万子、条子和筒子,每种花色…...
一命通关单调栈
前言 我们只是卑微的后端开发。按理说,我们是不需要学这些比较进阶的算法的,可是,这个世界就是不讲道理。最开始,想法是给leetcode中等题全通关,我又不打ACM我去天天钻研hard干嘛,于是碰见单调栈树状数组的…...
NV009NV010美光闪存颗粒NV011NV012
NV009NV010美光闪存颗粒NV011NV012 美光NV009-NV012闪存颗粒技术解析与行业应用全景 一、核心技术架构与制程突破 美光NV009至NV012系列闪存颗粒基于第九代3D TLC架构,通过垂直堆叠技术突破传统2D平面存储的物理限制。该架构将存储单元分层排列,如同将…...
线程、线程池、异步
目录 什么是线程 什么是线程池 什么是异步 异步与线程关系 JS中的异步 什么是线程 线程 Thread 是计算机执行的最小单位,是 进程 内的一个实体,可以被操作系统独立调用和执行 线程可以理解为进程内的“程序执行流”,一个进程可以包含多…...
docker面试题(4)
Docker与Vagrant有何不同 两者的定位完全不同 Vagrant类似于Boot2Docker(一款运行Docker的最小内核),是一套虚拟机的管理环境,Vagrant可 以在多种系统上和虚拟机软件中运行,可以在Windows、Mac等非Linux平台上为Docker…...
双检锁(Double-Checked Locking)单例模式
在项目中使用双检锁(Double-Checked Locking)单例模式来管理 JSON 格式化处理对象(如 ObjectMapper 在 Jackson 库中,或 JsonParser 在 Gson 库中)是一种常见的做法。这种模式确保了对象只被创建一次,同时在…...
建立java项目
java端: 在idea里面新建一个java,maven项目(springboot): 注意:JDK与java都得是一样的 添加基本的依赖项: 也可以在pom.xml中点击这个,从而跳转到添加依赖 建立三层架构: 在相应的java类中添加代码: <1.UserController package com.example.demo.controller;import com…...
Go语言内存共享与扩容机制 -《Go语言实战指南》
切片作为 Go 中的高频数据结构,其内存共享机制和自动扩容策略直接影响程序性能与行为,深入理解这两者,是高效使用切片的关键。 一、切片的内存结构回顾 切片是对底层数组的一个抽象,其本质是一个结构体: type slice …...
如果教材这样讲--单片机IO口Additional Functions和 Alternate Functions的区别
不管是硬件工程师还是嵌入式软件工程师,都应该能够熟练的看懂数据手册,尤其是英文。在设计单片机外围电路时,工程师需要了解单片机的GPIO口的各项功能来满足自己的设计需求,单片机小白们在查看单片机数据手册时,看到Ad…...
《Effective Java(第三版)》笔记
思维导图 1-4章 5-8章 9-12 章 资料 源码:https://github.com/jbloch/effective-java-3e-source-code...
实践大模型提示工程(Prompt Engineering)
任务目标 本文将结合实战营中的具体案例,分享在提示词设计、模型调用及复杂任务拆解中的实践心得,希望能为读者打开一扇通往 AI 开发实战的窗口。 书生浦语官方链接 实践一——写一段话介绍书生浦语实战营 在提示工程中,第一点给出清晰的…...
东莞一锂离子电池公司IPO终止,客户与供应商重叠,社保缴纳情况引疑
作者:小熊 来源:IPO魔女 5月17日,深交所发布公告称,东莞市朗泰通科技股份有限公司(简称朗泰通科技)已主动撤回其IPO申请。该公司本次IPO原拟募集资金7.0208亿元,保荐机构为国金证券股份有限公…...
互联网大厂Java求职面试:Spring Cloud微服务架构与AI集成挑战
互联网大厂Java求职面试:Spring Cloud微服务架构与AI集成挑战 引言 在当前快速发展的互联网行业中,Java开发者在面对复杂的分布式系统设计时,需要掌握从微服务架构到AI模型集成的多种技能。本文通过一场模拟面试,深入探讨了基于…...
解决C#泛型类参数无法带参数实例化的问题
概要 本文提供了一个基于C#表达式目录树的方法来解决泛型参数不能调用带参数的构造方法来实例化的问题。 C#泛型的限制 我们看如下的代码,User类需要一个泛型类,泛型类是要以CreditCard为基类。 class User<T> where T :CreditCard, new() {pr…...
微型化GNSS射频前端芯片AT2659S:L1频段多系统支持,SOT23-6封装
AT2659S是一款采用SiGe技术的低噪声放大器(LNA),相比传统CMOS工艺,它在功耗和噪声性能上进行了显著优化。该芯片支持L1频段的多模卫星导航系统,包括北斗二代、GPS、伽利略和Glonass,适用于高灵敏度的GNSS接…...
【图像大模型】深度解析RIFE: 基于中间流估计的实时视频插帧算法
基于深度学习的视频插帧算法RIFE技术解析与实战指南 一、项目背景与技术原理1.1 视频插帧技术概述1.2 RIFE核心创新1.3 算法原理详解1.3.1 网络架构1.3.2 损失函数设计1.3.3 时间自适应训练 二、项目部署与执行指南2.1 环境配置2.2 模型推理2.2.1 快速测试2.2.2 视频处理 2.3 模…...
Docker安装Fluentd采集中间件
Fluentd 简介 :Fluentd 是一个高性能、可扩展的数据收集与聚合工具,能够统一数据收集和消费,实现各种数据源到各种数据接收器的高效传输,广泛应用于日志收集等领域。 功能特点 : 统一日志收集 :支持从各种…...
【攻防实战】MacOS系统上线Cobalt Strike
如果巅峰留不住,那就重走来时路 前言 目前在一些攻防项目中遇到的互联网大厂,很多员工使用的都是MacOS主机。研究过程中发现网上这方面分享比较少,这里记录分享一下。 插件安装 配置cna基础文件,注意路径名不能包含中文或特殊…...
基于Resnet-34的树叶分类(李沐深度学习基础竞赛)
目录 一,数据集介绍 1.1 数据集下载 1.2 数据集介绍 二,Resnet-34介绍 三,模型训练 四,模型预测 五,测试结果 5.1 测试集结果 5.2 预测结果 5.3 总结 一,数据集介绍 1.1 数据集下载 本数据集下载…...
PCB设计实践(二十三)什么是阻抗匹配,需要做啥
PCB设计中的阻抗匹配是高速数字电路、射频通信、信号完整性等领域的核心技术,其重要性贯穿从基础理论到复杂系统设计的全流程。本文将从工程实践角度深入探讨阻抗匹配的本质原理、应用场景、设计方法、常见误区及解决方案,全面解析这一影响现代电子设备性…...
网络世界的“变色龙“:动态IP如何重构你的数据旅程?
在深秋的下午调试代码时,我偶然发现服务器日志中出现异常登录记录——IP地址显示为某个境外数据中心。更有趣的是,当我切换到公司VPN后,这个"可疑IP"竟自动消失在了防火墙监控列表中。这个瞬间让我意识到:现代网络架构中…...
Chrome浏览器捕获hover元素样式
–前言– 某些元素,只有hover上去才会看到触发效果,但是鼠标移开就找不到element元素,导致无法调试样式。下属两种方案可参考: 文章目录 一、方式1:通过class伪类触发二、方式2:通过断点调试2.1控制台切换到…...
嵌入式自学第二十五天(5.21)
(1)二进制文件读写操作: 例: #include<stdio.h> int main() { FILE *fp fopen("a.out","r"); FILE *fp1 fopen("app","w"); if(NULL fp || NULL fp1) { …...
golang库源码学习——Pond,小而精的工作池库
pond 是一个轻量级的 Goroutine 池库,用于高效管理并发任务。它提供了灵活的配置选项和多种策略,适合处理高并发场景。 GitHub - alitto/pond at v1 一、特点: 1.轻量级 pond 的代码库非常精简,它的V1版本仅有四个业务文件&#…...
Microbiome医口经典思路:退烧药物代谢过程如何进行多组学分析?
乙酰氨基酚(APAP),俗称扑热息痛,是应用最广泛的镇痛和解热药物之一。以往的研究主要集中在分离APAP降解菌株,了解其降解代谢途径。但微生物群与对乙酰氨基酚之间的相互作用、对乙酰氨基酚降解基因的分布特征以及对乙酰…...
微信小程序AI大模型流式输出实践与总结
背景 让Cursor生成小程序中大模型调用内容回复的流式输出时一直有问题,参考整理此文章。 参考原文:https://blog.csdn.net/weixin_47684422/article/details/145859543 一、什么是流式传输? 流式传输(Streaming)指的…...
操作系统理解(xv6)
xv6操作系统项目复习笔记 宗旨:只记大框架,不记细节,没有那么多的时间 一、xv6的页表是如何搭建的? xv6这个项目中,虚拟地址用了39位(27位12位(物理内存page偏移地址))…...
2024CCPC辽宁省赛 个人补题 ABCEGJL
Dashboard - 2024 CCPC Liaoning Provincial Contest - Codeforces 过题难度 B A J C L E G 铜奖 4 953 银奖 6 991 金奖 8 1664 B: 模拟题 // Code Start Here string s;cin >> s;reverse(all(s));cout << s << endl;A:很…...
Sentinel原理与SpringBoot整合实战
前言 随着微服务架构的广泛应用,服务和服务之间的稳定性变得越来越重要。在高并发场景下,如何保障服务的稳定性和可用性成为了一个关键问题。阿里巴巴开源的Sentinel作为一个面向分布式服务架构的流量控制组件,提供了从流量控制、熔断降级、…...