机器学习项目笔记:逻辑回归与Softmax回归原理详解
2025-06-07 19:22:30作者:姚月梅Lane
逻辑回归理论基础
逻辑回归(Logistic Regression)是机器学习中经典的分类算法,虽然名称中带有"回归"二字,但它实际上是一种用于解决二分类问题的线性模型。下面我们将深入探讨其核心原理。
模型函数推导
逻辑回归模型基于Sigmoid函数构建,其数学表达式为:
其中:
- 是线性组合
- 表示特征维度
- 和 是需要学习的参数
Sigmoid函数将线性输出映射到(0,1)区间,可以解释为样本属于类别的概率。
最大似然估计与损失函数
逻辑回归采用最大似然法进行参数估计。对于N个样本的训练集,似然函数为:
取负对数后得到交叉熵损失函数:
这个损失函数具有良好的数学性质:
- 当预测值与真实值差距大时,梯度也大,参数更新快
- 是凸函数,能保证梯度下降找到全局最优解
梯度下降算法推导
通过求导可以得到参数的更新规则:
其中是学习率。这个更新规则形式简洁,计算高效,适合大规模数据。
为什么选择交叉熵而非平方误差
初学者可能会疑惑为何不使用熟悉的平方误差作为损失函数,主要原因有二:
-
梯度特性差异:交叉熵在预测错误时提供更大的梯度,加速学习;而平方误差在预测严重错误时梯度反而很小,导致学习缓慢。
-
凸性保证:交叉熵损失是凸函数,保证能找到全局最优;平方误差会导致非凸的损失面,容易陷入局部最优。
下图直观展示了两种损失函数的差异:
交叉熵损失:陡峭→平缓
平方误差:平缓→更平缓→陡峭
Softmax回归:多分类扩展
当分类问题超过两类时,我们需要使用Softmax回归,它是逻辑回归在多分类问题上的推广。
Softmax函数定义
Softmax函数将K个实数映射为概率分布:
其中是第i类的得分。Softmax确保:
- 所有输出在(0,1)区间
- 所有输出之和为1
交叉熵损失函数
多分类问题中使用类别交叉熵:
其中是真实标签的one-hot编码,是预测概率。
梯度推导
Softmax的梯度计算较为复杂,但推导后可以得到简洁的表达式:
这与二分类逻辑回归的梯度形式高度一致,体现了算法的一致性。
代码实现要点
在实际实现时需要注意:
-
数值稳定性:计算指数时可能溢出,通常实现时会减去最大值:
exp_scores = np.exp(z - np.max(z, axis=1, keepdims=True)) -
正则化:通常加入L2正则项防止过拟合:
reg_loss = 0.5 * reg * np.sum(W * W) -
批量处理:使用矩阵运算加速计算,避免循环。
应用场景对比
- 逻辑回归:二分类问题,如垃圾邮件识别、疾病诊断
- Softmax回归:多类别互斥分类,如手写数字识别、图像分类
理解这两种算法的原理和实现细节,是掌握分类问题的基础,也为学习更复杂的神经网络模型奠定了重要基础。
登录后查看全文
热门项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
535
3.75 K
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
12
1
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
67
20
暂无简介
Dart
773
191
Ascend Extension for PyTorch
Python
343
406
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
886
596
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
23
0
React Native鸿蒙化仓库
JavaScript
303
355
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
336
178