第12章:从“多少”到“哪一类”——逻辑回归

发布时间:2026/10/20 8:18:55

第12章:从“多少”到“哪一类”——逻辑回归 上一章我们干了件事用一条直线预测房价。输入面积输出价格。输入是连续的数输出也是连续的数。这类问题叫“回归”——猜一个数字。但AI面临的大多数问题不是“猜多少”而是“是哪一类”。你手机相册里有一张照片AI要判断“这是猫还是狗”——只有两个答案。你的邮箱收到一封新邮件AI要判断“这是垃圾邮件还是正常邮件”——只有两个答案。医生拿到一张CT片AI要判断“是良性还是恶性”——还是只有两个答案。这类问题叫“分类”——猜一个类别。线性回归能直接用来做分类吗勉强能但效果很糟。我们需要给那条直线外面裹一层“壳”让它输出的不是一个任意数字而是一个“属于某个类别的概率”。这层壳就是逻辑回归。为什么直线不能直接做分类我们先试试用线性回归做分类看看哪里会出问题。假设你有一组数据横轴是“肿瘤大小”纵轴是“良性/恶性”。你把良性标成0恶性标成1。然后你画一条直线 y wx b试图拟合这些点。你会发现一个问题这条直线在大多数点上的预测值既不是0也不是1而是0.3、0.7、1.2这样的数。你本来想要的是“是或否”的干净答案得到的却是“0.73”——这到底算良性还是恶性你可以加一个规则预测值大于0.5就算恶性小于0.5就算良性。这在很多情况下勉强能用但有一个更严重的问题——线性回归对极端值太敏感了。假设你的数据里有一个极端案例——一个特别大的肿瘤明显是恶性。这个点会把整条直线往右上拉。结果大部分良性肿瘤的预测值也被拉高了分界线可能从0.5变成了0.3误判率大增。线性回归追求的是“所有点的误差平方最小”它在乎的是数值精确不是分类正确。你给一个样本预测成0.73误差是0.27预测成1.2误差是0.2。对线性回归来说1.2比0.73“更好”——但这个1.2在分类上没有任何意义它代表的只是“恶性”而已。所以我们需要一个更聪明的办法让模型直接输出概率而不是任意数字。Sigmoid把任意数字“压”成概率逻辑回归的核心就是一层“壳”——一个叫Sigmoid的函数。Sigmoid长得像一条S形的曲线它做的事情极其简单不管你输入什么数——正一亿、负一亿、零、3.14——它都给你一个0到1之间的输出。正无穷大的数输出无限接近1。负无穷大的数输出无限接近0。0输入输出0.5。这个性质刚好对上了概率的需要——概率就是0到1之间的数。逻辑回归的做法是先用线性回归算出 w·x b一个任意实数然后把这个数送进Sigmoid函数“压”成一个0到1之间的概率。写成公式就是p σ(w·x b)其中 σ 就是Sigmoid函数。输出 p 的含义是这个样本属于类别“1”的概率有多大如果 p0.92意思是“有92%的把握它是恶性”。如果 p0.13意思是“只有13%的把握它是恶性——也就是87%的把握它是良性”。你看逻辑回归跟线性回归的差别就是在线性部分外面套了一个Sigmoid。它把“任意实数”翻译成了“概率”——而我们人类天然理解概率。决策边界那条看不见的分割线逻辑回归最终输出的是一个概率。但你得做出判断——“到底是哪一类”最简单的规则是概率大于0.5判为1类小于0.5判为0类。0.5就是那条分界线。在输入空间里这条分界线对应的是 w·x b 0 的那个位置——也就是线性回归原本的那条“直线”。只不过现在这条直线不再直接用来预测数值而是用来划分两个类别的领土。如果输入只有两个特征比如肿瘤大小和患者年龄决策边界就是一条直线。如果有三个特征决策边界就是一个平面。如果有几十几百个特征决策边界就是一个超平面——你看不见它但它依然在那里把你的输入空间一刀劈成两半。这个“一刀劈开”的能力就是逻辑回归作为分类器的本质。它跟感知机第3章那个被XOR问题难住的家伙是近亲——都是线性分类器。区别在于感知机直接输出0或1逻辑回归输出的是概率。概率比硬边界更柔和——它不仅告诉你“是哪个”还告诉你有几分把握。交叉熵这次不用均方误差了线性回归用均方误差来衡量“猜得有多错”。逻辑回归不能用这个。为什么因为Sigmoid让整个模型变成了非线性的。如果你用均方误差作为损失函数你会发现误差曲面有很多坑坑洼洼的局部最小值——梯度下降容易陷在里面很难找到真正好的解。逻辑回归用的是另一个损失函数交叉熵。我们在第10章提过交叉熵的直觉。现在让它正式上场。它的公式写出来是这样的Loss -[y·log§ (1-y)·log(1-p)]其中 y 是真实标签0或1p 是模型预测的概率。这个公式看起来很凶但它的意思特别简单如果真实标签是1损失就是 -log§。当 p 接近1时损失接近0当 p 接近0时损失趋向无穷大。如果真实标签是0损失就是 -log(1-p)。当 p 接近0时损失接近0当 p 接近1时损失趋向无穷大。翻译成人话模型越确信地给出正确答案损失就越小。模型越确信地给出错误答案损失就越大——大到没边。交叉熵不关心“你猜的数值跟真实值差了多少”它只关心“你对你猜的结论有多自信而你的自信对不对”。这是分类问题最自然的损失函数。它把第10章的“概率”和第9章的“梯度下降”接在了一起。从逻辑回归到神经网络只差一步你现在已经理解了逻辑回归的全部骨架。它有一个线性部分 w·x b一个非线性部分 σSigmoid以及一个衡量错误的损失函数交叉熵。现在把“一个线性部分”换成“一连串线性部分中间插着非线性激活函数”——你就得到了神经网络。神经网络就是多层逻辑回归的堆叠。每一层都是一个“线性变换非线性激活”的组合只不过中间的层不输出概率只输出“特征”——也就是更高层次的数据表示。只有最后一层才会套上Sigmoid二分类或者Softmax多分类来输出概率。你从第6章一路走到这里所有的零件都已经在桌上了。函数是骨架。向量和矩阵是数据结构。导数是调整指南。概率是输出语言。线性回归和逻辑回归是第一个完整的工作模型。下一章我们要在逻辑回归的基础上再跨一步支持向量机。它走了一条不同的路——不输出概率而是直接画一条最宽的“马路”来分开两类数据。参考文献3Blue1Brown. (2017). “But what is a neural network? | Chapter 1, Deep Learning”. YouTube.推荐理由这期视频的结尾部分有一个“逻辑回归→神经网络”的极简过渡。它用一张手写数字识别的图展示了从单个神经元到多层网络的自然延伸。虽然我们还没有正式讲神经网络但提前看一眼那个过渡会很有帮助。Nielsen, M. (2015).Neural Networks and Deep Learning. 第1章Using neural nets to recognize handwritten digits。在线免费书籍http://neuralnetworksanddeeplearning.com/推荐理由Nielsen在第1章里用一个极简的神经网络识别手写数字然后把“Sigmoid神经元”作为基本单元来介绍。他对Sigmoid函数的解释——为什么用它、它跟感知机有什么不同——清晰得像在跟你聊天。适合在读完本篇后作为延伸阅读。Goodfellow, I., Bengio, Y., Courville, A. (2016).Deep Learning. MIT Press. 第6章Feedforward Deep Networks。推荐理由第6章从逻辑回归出发推导出前馈神经网络的结构。开篇就点明了一个核心关系逻辑回归是一个没有隐藏层的神经网络。如果你想知道“从逻辑回归到神经网络”在数学上是怎么被严格定义的这一章的前几页值得一看。
延伸阅读

更多相关文章

2026/10/19 6:09:33

直播预约|鸿蒙 PC AI 编译框架实战:高效搞定开源库迁移适配

随着鸿蒙 PC 生态快速发展,各类 C/C、Python、JS 开源库适配迁移成本高、编译报错难定位等问题凸显。 7 月 13 日 19:00-20:00,华为 HDE 卢庆杰带来鸿蒙 PC AI 智能化开源编译框架技术直播。本次分享详解可覆盖三类开源库的自动化迁移流水线,…

2026/10/17 17:41:29

基于许可分析的授权规划:实现资源最优配置

2025年,全球企业软件开支突破1.5万亿美元,其中超过40%的企业因软件许可管理不善导致成本浪费。这不是危言耸听。行业调研数据显示,超过60%的企业在运行软件时存在许可未被充分利用的问题。55%的大型企业软件许可处于未使用状态——每两份许可…

2026/10/20 9:37:17

格雷厄姆特价股票理论在新兴市场的实战改造与筛选指南

1. 特价股票理论到底在说什么1.1 原始公式中那个“特价”到底怎么定义“格雷厄姆特价股票理论”听起来很学术,其实格雷厄姆本人给出的框架非常朴素:找到股价远低于公司可变现净资产的股票。最经典的量化标准是净流动资产(Net Current Asset V…

2026/10/20 9:37:17

基于Spring AI的智能考试系统设计实践:从架构到踩坑全记录

这段时间刚好在做一个智能考试系统的课程设计收尾。项目立项时定的主题是“基于SpringAI的智能考试系统”,从一开始的框架选型讨论,到后面真正把智能组卷、AI批改、学情分析这些模块跑通,前前后后花了大约六周。这篇文章不写什么宏伟蓝图&…

2026/10/20 9:37:17

Flask+Vue前后端分离:网上书店商城系统完整开发实战

网上书店的图书销售商城,几乎是每个学Python Web开发的人都会遇到的一个练手项目。前后端分离的组合很常见:Vue负责页面交互,Flask提供接口,PyCharm作为日常开发环境,数据库这边按项目规模在SQLite和MySQL之间选。它覆…

2026/10/20 9:37:17

Playwright-MCP:用自然语言让AI驱动浏览器自动化测试

说实话,这两年自动化测试圈子里最让我上头的组合,就是Playwright加MCP。Playwright-MCP这个名字第一次出现的时候,我还以为又是什么包装出来的概念玩具,结果自己花了一个下午把环境跑通之后,直接改变了我的日常工作方式…

2026/10/20 9:32:15

拆解Agent框架插件化设计:事件驱动与热插拔实战

1. 为什么我要把一个开源 Agent 框架整个拆开日常维护过几个 Agent 项目之后,我有个很深的感受:“会用 Agent”和“能驾驭 Agent”,中间隔着一整条系统的鸿沟。很多朋友跟我一样,习惯了把提示词写长一点、把工具函数丢进去、然后把…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

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

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

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

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

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

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑