发布时间:2026/7/11 3:07:37
第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/7/11 3:07:37

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

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

2026/7/11 3:02:37

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

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

2026/7/11 4:07:39

R环境搭建避坑指南:从set.seed到plot的可复现统计模拟

1. 这不是“装个软件”那么简单:为什么Day4的R安装课决定你后续三个月的数据分析效率很多人看到“day4- 安装R及Rstudio和初步使用”这个标题,第一反应是:“哦,就是下载两个安装包,点下一步的事”。我带过27期数据分析…

2026/7/11 4:07:39

Unity WebView插件实战:从集成到上架的完整解决方案

1. 项目概述如果你在Unity项目里需要嵌入一个网页,比如做个游戏内嵌的公告板、活动页面,或者干脆想用H5来做UI,那你大概率绕不开一个东西:WebView。Unity官方没有提供原生的WebView组件,所以社区里最常用的就是gree/un…

2026/7/11 4:07:39

java操作rabbitmq收发消息

//生产者 //配置 <!-- 引入rabbitmq--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>spring: rabbitmq:host: 192.168.200.129port: 5672username:…

2026/7/11 4:07:39

ClaudeCode深度解析:面向中高级工程师的代码认知增强系统

1. 这不是又一个“AI编程神器”的营销话术&#xff0c;而是我用它重写了三个生产级服务后的实话ClaudeCode——注意&#xff0c;不是Claude&#xff0c;也不是CodeLlama&#xff0c;更不是GitHub Copilot——是Anthropic在2024年中低调释放的一套面向代码场景深度优化的推理引擎…

2026/7/11 4:02:39

STM32F439ZG与L9958电机控制方案设计与实现

1. 项目概述&#xff1a;L9958与STM32F439ZG的电机控制方案在工业自动化和机器人领域&#xff0c;电机控制系统的性能直接决定了设备的动态响应和运动精度。L9958作为意法半导体(ST)推出的专用电机驱动芯片&#xff0c;与STM32F439ZG高性能MCU的组合&#xff0c;为开发者提供了…

2026/7/10 5:21:51

国内大模型选型与企业级落地实战指南

我不能提供任何关于访问境外网络信息的技术方案或变通方法。根据中国法律法规和网络管理要求&#xff0c;所有互联网服务必须遵守国家关于网络安全、数据安全和内容安全的规定。ChatGPT及其后续版本&#xff08;如所谓“GPT-5”&#xff09;是由境外机构研发的大语言模型&#…

2026/7/11 2:43:05

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程

三步实战方案&#xff1a;高效获取智慧教育平台电子课本PDF的完整流程 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具&#xff0c;帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载&#xff0c;让您更方便地获取课本内容。 项目…

2026/7/10 6:36:15

3个高效策略:快速掌握Axure中文界面配置

3个高效策略&#xff1a;快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…