正则化逻辑回归的概率解释:从最大似然到 L2 权重先验
机器学习教程【免费下载链接】python-machine-learning-bookThe Python Machine Learning (1st edition) book code repository and info resource项目地址https://gitcode.com/gh_mirrors/py/python-machine-learning-book点击查看免费下载导读本文回答《Python Machine Learning》(第 1 版) 配套问答库中一个高频问题正则化逻辑回归的概率解释是什么我们从最大似然函数出发逐步推导对数似然、负对数似然成本函数并引入 L2 正则项最后揭示正则化在贝叶斯视角下等价于对权重施加先验分布。文中所有公式均可对照 faq/probablistic-logistic-regression.md 原文档及其配图并结合仓库中 scikit-learn 实战代码 与 从零实现的神经网络 给出实现级证据。读完你将理解为什么最大化似然能变成最小化成本为什么加了正则化就找不到全局最小值以及正则化强度参数如 scikit-learn 的C在底层到底如何影响权重。一、为什么逻辑回归需要概率解释逻辑回归之所以叫回归却常被用作分类器核心原因在于sigmoidlogistic函数输出的不是硬分类标签而是条件概率。给定特征 $\mathbf{x}$ 与权重 $\mathbf{w}$模型输出的正是 $p(y1 \mid \mathbf{x}; \mathbf{w})$。因此训练逻辑回归的过程天然是一个概率估计问题——我们不是在拟合一条分类直线而是在估计一个概率分布。这为下面的最大似然推导提供了前提。关于 sigmoid 函数为什么能输出条件概率、它与 odds几率比的关系可进一步阅读仓库中的姊妹问答 faq/logistic-why-sigmoid.md。二、最大似然函数所有样本概率的乘积假设训练集有 $n$ 个样本每个样本 $i$ 的标签为 $y^{(i)} \in {0, 1}$逻辑回归的似然函数写作$$ L(\mathbf{w}) \prod_{i1}^{n} \left[ \phi(z^{(i)}) \right]^{y^{(i)}} \left[ 1 - \phi(z^{(i)}) \right]^{1 - y^{(i)}} $$其中 $\phi$ 就是条件概率即 sigmoidlogistic函数$$ \phi(z) p(y1 \mid \mathbf{x}; \mathbf{w}) \frac{1}{1 e^{-z}} $$而 $z$ 是所谓的net input净输入一个标量$$ z \mathbf{w}^T \mathbf{x} $$理解这个乘积结构是关键当 $y^{(i)}1$ 时似然中只保留 $\phi(z^{(i)})$ 这一项我们希望它接近 1当 $y^{(i)}0$ 时只保留 $1-\phi(z^{(i)})$我们希望它接近 1。所以最大化 $L(\mathbf{w})$ 就是最大化模型在所有样本上输出正确概率的联合概率这正是一个最大似然估计MLE问题。三、从最大似然到最小化成本取对数直接最大化乘积形式的似然函数在求导时很不方便因此先取对数把乘积变成求和这就是原文档强调的 addition trick——在梯度下降 / 随机梯度下降求偏导时对每一项独立求导再相加数学上轻松很多$$ l(\mathbf{w}) \log L(\mathbf{w}) \sum_{i1}^{n} \left[ y^{(i)} \log \phi(z^{(i)}) \left(1 - y^{(i)}\right) \log \left(1 - \phi(z^{(i)})\right) \right] $$由于我们讨论的是成本cost习惯上要把最大化翻转成最小化于是取负号得到绝大多数教材中熟悉的逻辑回归成本函数$$ J(\mathbf{w}) \sum_{i1}^{n} \left[ -y^{(i)} \log \phi(z^{(i)}) - \left(1 - y^{(i)}\right) \log \left(1 - \phi(z^{(i)})\right) \right] $$这就是负对数似然NLL成本函数。它与成本函数 / 损失函数概念的辨析可参考 faq/cost-vs-loss.md。仓库中的 code/ch12/neuralnet.py 给出了这一公式的逐行实现_cost方法第 193–198 行term1 -y_enc * (np.log(output)) term2 (1.0 - y_enc) * np.log(1.0 - output) cost np.sum(term1 - term2) L1_term self._L1_reg(self.l1, w1, w2) L2_term self._L2_reg(self.l2, w1, w2) cost cost L1_term L2_term其中y_enc是 one-hot 编码的标签矩阵output是前向传播_feedforward输出的 sigmoid 激活值该文件同时实现了 L1、L2 正则项恰好对应本文下一节的讨论。此外同文件中的_sigmoid方法第 102–110 行特意使用scipy.special.expit而非1.0 / (1.0 np.exp(-z))注释说明这是为了避免极小输入值导致的溢出错误——这是实现 sigmoid 时一个非常实用的工程细节。四、无正则化向全局成本最小值无节制地增大权重现在想象我们在一个二维数据集上把成本 $J(\mathbf{w})$ 画成关于两个权重 $w_1$、$w_2$ 的函数见上文第一张等高线图。对于无正则化的成本存在一个全局成本最小值图中椭圆中心的圆点对应某一组特定的 $w_1$、$w_2$ 组合。关键点在于为了到达这个全局最小值模型会把权重增大到有必要那么大的程度——特征越多、样本噪声越大权重就越可能被推向极端值从而产生过拟合。这正是引入正则化的动机。关于过拟合的表现与学习曲线分析可参见 faq/overfitting.md。五、L2 正则化成本惩罚与可行域约束现在给成本函数加上一个正则项例如 L2$$ J(\mathbf{w}) \left[ \sum_{i1}^{n} -y^{(i)} \log \phi(z^{(i)}) - \left(1 - y^{(i)}\right) \log \left(1 - \phi(z^{(i)})\right) \right] \lambda |\mathbf{w}|_2^2 $$其中 $|\mathbf{w}|_2^2 \sum_j w_j^2$ 是权重向量的平方欧几里得范数。它的含义非常直观每把某个权重推大一点成本就会因为 $\lambda |\mathbf{w}|_2^2$ 而额外增加因此我们无法再到达原来的全局最小值——那里虽然数据拟合项最小但权重的惩罚太大我们被迫在拟合数据与保持权重较小之间寻找甜蜜点sweet spot即在上文第二张等高线图中被以原点为中心的圆L2 范数约束所限制的区域内的成本最小点。图中圆球的大小由额外的超参数 $\lambda$ 控制$\lambda$ 越大惩罚越重圆越小最优解越被拉向原点权重整体越小。仓库中 code/ch12/neuralnet.py 的_L2_reg与_L1_reg方法第 163–170 行直接实现了这两个正则项def _L2_reg(self, lambda_, w1, w2): Compute L2-regularization cost return (lambda_/2.0) * (np.sum(w1[:, 1:] ** 2) np.sum(w2[:, 1:] ** 2)) def _L1_reg(self, lambda_, w1, w2): Compute L1-regularization cost return (lambda_/2.0) * (np.abs(w1[:, 1:]).sum() np.abs(w2[:, 1:]).sum())两个细节值得注意其一权重矩阵切片从第 1 列开始[:, 1:]偏置单元bias unit不参与正则化——偏置只平移决策边界不直接导致过拟合因此标准的 L2/L1 实现都将其排除在外其二梯度更新时_get_gradient方法第 238–241 行对非偏置权重分别加上self.l2 * wL2 的导数 $2\lambda w$ 与系数合并与self.l1 * np.sign(w)L1 的次梯度与成本函数中的正则项严格自洽。六、scikit-learn 实战C参数与权重收缩路径仓库的 code/optional-py-scripts/ch03.py 展示了 scikit-learn 中的对应操作。第 193 行先以弱正则化训练了一个逻辑回归lr LogisticRegression(C1000.0, random_state0) lr.fit(X_train_std, y_train)然后在 Tackling overfitting via regularization 一节第 213–230 行对正则化强度做了系统扫描weights, params [], [] for c in np.arange(-5.0, 5.0): lr LogisticRegression(C10**c, random_state0) lr.fit(X_train_std, y_train) weights.append(lr.coef_[1]) params.append(10**c)这段代码遍历 $C 10^c$$c$ 从 -5 到 5记录每个模型在鸢尾花数据集上对 petal length 与 petal width 两个特征的权重系数最后以 $C$ 为横轴对数刻度绘制权重系数随正则化强度变化的路径图。运行结果呈现清晰的规律随着 $C$ 减小正则化增强权重系数不断向 0 收缩反之 $C$ 越大权重越接近无正则化时的取值。这也印证了 scikit-learn 中C的语义——C是正则化强度的倒数C越小lambda惩罚越重。完整的实验代码与图表可在 code/ch03/ch03.ipynb 中复现。七、贝叶斯视角正则化 给权重加先验原文档最后给出了一个极具启发性的总结加入正则项就仿佛给权重施加了一个先验prior。回顾整个流程MLE在给定训练数据 $D$ 的条件下最大化 $P(D \mid \mathbf{w})$即最大化似然MAP最大后验估计最大化 $P(\mathbf{w} \mid D) \propto P(D \mid \mathbf{w}) , P(\mathbf{w})$其中 $P(\mathbf{w})$ 是权重的先验。如果我们给每个权重施加一个均值为 0 的高斯先验那么对数后验里会出现 $\sum_j w_j^2$ 项——这正是 L2 正则项同理拉普拉斯Laplace先验对应 L1 正则项。所以无正则化我们最大化给定训练数据的似然有正则化我们在额外信息偏置先验的约束下最大化似然。换句话说正则化逻辑回归本质上是一个 MAP 估计它不仅信任数据还信任权重不应该太大这一先验信念。这个观点同样适用于仓库中 code/ch12/neuralnet.py 的神经网络实现——其l1、l2两个构造参数见该文件第 24–28 行的文档字符串Lambda value for L1-regularization. No regularization if l10.0与本文公式中的 $\lambda$ 一一对应你可以在 code/ch12/ch12.ipynb 中直接实验不同 $\lambda$ 对训练成本曲线的影响。八、延伸阅读原问答入口faq/probablistic-logistic-regression.md以及 FAQ 总目录第 87 行收录了本文主题sigmoid 函数为何能输出条件概率faq/logistic-why-sigmoid.mdL2 正则化对决策边界的可视化对比faq/regularized-logistic-regression-performance.md梯度下降 / 随机梯度下降 / 闭式解的区别faq/closed-form-vs-gd.md成本函数与损失函数的概念辨析faq/cost-vs-loss.md过拟合及其缓解策略总览faq/overfitting.md。一句话总结正则化逻辑回归的概率解释可以浓缩为一条推导链——sigmoid 输出条件概率 → 构造所有样本的似然乘积 → 取对数并取负得到成本函数 → 加上权重范数惩罚L2→ 在贝叶斯视角下等价于对权重施加高斯先验的 MAP 估计而 $\lambda$或 scikit-learn 中与之成反比的C正是控制这个先验强度的旋钮。赞分享机器学习教程【免费下载链接】python-machine-learning-bookThe Python Machine Learning (1st edition) book code repository and info resource项目地址https://gitcode.com/gh_mirrors/py/python-machine-learning-book点击查看免费下载相关推荐RPG-DiffusionMaster社区贡献指南如何参与项目开发与功能扩展RPG DiffusionMaster社区贡献指南如何参与项目开发与功能扩展 RPG DiffusionMaster是一个基于多模态LLM的文本到图像生成框架LingBot-Map流式3D重建的边界在哪里推理范围与状态重置深度讨论LingBot Map流式3D重建的边界在哪里推理范围与状态重置深度讨论 LingBot Map ECCV 2026 Oral是一个前馈式流式3D重建模型人工智能计算机视觉深度学习基础模型3D建模使用CVXPY实现L1正则化逻辑回归的完整指南使用CVXPY实现L1正则化逻辑回归的完整指南 还在为高维数据下的逻辑回归过拟合问题而烦恼本文将为你提供使用CVXPY实现L1正则化逻辑回归的完整解决方案从科学计算上一篇零基础搞定SpiderFoot报告定制3步打造专业HTML/PDF安全审计文档下一篇gh_mirrors/ohmy/ohmyzsh社区贡献者访谈核心开发者的经验分享创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

PHPStan 错误标识 `magicConstant.outOfNamespace`:在命名空间外使用 `__NAMESPACE__` 的检测与修复

PHPStan 错误标识 `magicConstant.outOfNamespace`:在命名空间外使用 `__NAMESPACE__` 的检测与修复

开发工具代码质量静态分析 【免费下载链接】phpstan PHP Static Analysis Tool - discover bugs in your code without running it! 项目地址: https://gitcode.com/gh_mirrors/ph/phpstan 点击查看 免费下载 导读 magicConstant.outOfNamespace 是 PHPStan 错误标…

2026/9/25 9:34:13 阅读更多 →
排放标准用错直接大修!环境工程毕设 AI 四大隐形坑,很多学生答辩才发现[特殊字符]

排放标准用错直接大修!环境工程毕设 AI 四大隐形坑,很多学生答辩才发现[特殊字符]

026 环境工程本科、专科毕业论文盲审标准持续升级。环工毕设核心离不开**水质废气监测数据、污染物处理工艺、国家排放标准、模拟模型运算结果**,不管是水污染治理、大气污染控制、固废处置还是环境影响评价方向,数据、标准、工艺三者必须完全对应&#…

2026/9/25 9:54:04 阅读更多 →
从指标名称大全到指标体系:分类、命名规范与元信息管理

从指标名称大全到指标体系:分类、命名规范与元信息管理

1. 为什么“指标名称大全”是个伪命题,但人人都需要它刚入行做数据分析那会儿,我干过一件特别蠢的事:花了一整个下午,从各种博客、文档、竞品后台里扒下来三百多个指标名称,整理成一个Excel,命名为“指标体…

2026/9/25 2:28:33 阅读更多 →

最新新闻

Claude Code命令速查大全:TaoToken统一Key接入CLI斜杠命令与快捷键配置

Claude Code命令速查大全:TaoToken统一Key接入CLI斜杠命令与快捷键配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 13:16:43 阅读更多 →
为什么AI算力集群这么烧钱?Flex:ai解决大模型与小模型混部场景的GPU浪费难题

为什么AI算力集群这么烧钱?Flex:ai解决大模型与小模型混部场景的GPU浪费难题

为什么AI算力集群这么烧钱?Flex:ai解决大模型与小模型混部场景的GPU浪费难题 【免费下载链接】flexai Flex:ai是一个面向AI容器场景的开源项目,其核心能力包含两大部分,分别是XPU虚拟化和多级智能调度。其中XPU虚拟化分为本地XPU虚拟化和跨节…

2026/9/25 13:16:43 阅读更多 →
@voltagent/mcp-server 全解析:用 Model Context Protocol 暴露 VoltAgent Agent、工作流与工具

@voltagent/mcp-server 全解析:用 Model Context Protocol 暴露 VoltAgent Agent、工作流与工具

人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆 【免费下载链接】voltagent AI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework 项目地址: https://gitcode.com/gh_mirrors/vo/voltagent 点击查看 免费下载 导…

2026/9/25 13:16:43 阅读更多 →
养殖龙虾(OpenClaw)必配的虾粮与工具:TaoToken 统一 Key 接入 Gateway 配置清单

养殖龙虾(OpenClaw)必配的虾粮与工具:TaoToken 统一 Key 接入 Gateway 配置清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 13:16:43 阅读更多 →
Tekton Pipeline Cluster Resolver 实战指南:解析集群内 Task、Pipeline 与 StepAction 并理解其缓存与安全边界

Tekton Pipeline Cluster Resolver 实战指南:解析集群内 Task、Pipeline 与 StepAction 并理解其缓存与安全边界

云原生CI/CDDevOps后端 【免费下载链接】pipeline A cloud-native Pipeline resource. 项目地址: https://gitcode.com/gh_mirrors/pipelin/pipeline 点击查看 免费下载 本文聚焦 Tekton Pipeline(pipelin/pipeline 仓库)的 Cluster Resolve…

2026/9/25 13:16:42 阅读更多 →
PaddleSeg PanopticSeg 全景分割工具箱快速上手:预训练模型推理、训练与评估实战指南

PaddleSeg PanopticSeg 全景分割工具箱快速上手:预训练模型推理、训练与评估实战指南

人工智能计算机视觉预训练 【免费下载链接】PaddleSeg Easy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting,…

2026/9/25 13:15:42 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →