当前位置: 首页 > news >正文

「机器学习笔记10」贝叶斯学习——从逆向思维到简化现实的强大武器


一位病人因持续咳嗽前往就诊。医生的大脑会飞速进行一场无形的计算:

  1. 背景知识​:当前是流感高发季,普通感冒很常见。

  2. 当前证据​:病人有咳嗽、发烧症状。

  3. 可能性评估​:如果是流感,出现这些症状的概率很高;如果是肺炎,概率稍低,但也可能;如果是更罕见的疾病,概率则极低。

  4. 综合判断​:医生会结合背景知识和可能性评估,得出最可能的诊断。

这种结合经验(先验)与观察数据(似然)​​ 做出最佳决策的思维,正是贝叶斯推理的核心。本文旨在阐述,如何将这种人类智慧赋予机器。


第一部分:贝叶斯定理——概率论中的“逆向思维”​

我们从一个经典的癌症筛查例子开始。

已知信息​:

  • ​P(癌症)=0.008​​:人群中有0.8%的人患此癌。(先验概率​:在检测前的普遍认知)

  • ​P(阳性∣癌症)=0.98​​:如果确实患癌,检测结果为阳性的概率是98%。(似然度​:检测技术的灵敏度)

  • ​P(阴性∣健康)=0.97​​:如果健康,检测结果为阴性的概率是97%。这意味着,​​P(阳性∣健康)=0.03​。(假阳性率)

问题​:如果一个人的检测结果是阳性,他真正患癌的概率是多少?即求 ​​P(癌症∣阳性)​。(后验概率​:看到新证据后更新的信念)

贝叶斯定理公式​:

P(癌症∣阳性)=P(阳性∣癌症)⋅P(癌症)P(阳性) P(\text{癌症} \mid \text{阳性}) = \frac{P(\text{阳性} \mid \text{癌症}) \cdot P(\text{癌症})}{P(\text{阳性})} P(癌症阳性)=P(阳性)P(阳性癌症)P(癌症)

关键点​:分母 P(阳性)表示检测结果呈阳性的总概率,它需要计算。阳性的结果来自两部分人:真阳性者 和 假阳性者。

  • 真阳性贡献​:P(阳性∣癌症)⋅P(癌症)=0.98×0.008=0.00784

  • 假阳性贡献​:P(阳性∣健康)⋅P(健康)=0.03×(1−0.008)=0.03×0.992=0.02976

  • 所以,P(阳性)=0.00784+0.02976=0.0376​

代入公式计算​:

P(癌症∣阳性)=0.98×0.0080.0376≈0.2074≈20.74% P(\text{癌症} \mid \text{阳性}) = \frac{0.98 \times 0.008}{0.0376} \approx 0.2074 \approx 20.74\% P(癌症阳性)=0.03760.98×0.0080.207420.74%

惊人结论与启示​:

尽管检测技术看似精准,但一次阳性结果后真实患癌的概率只有约21%。原因是患癌的先验概率极低,导致健康人群中的假阳性数量(占比小但基数大)远远超过了真实患者数量。贝叶斯定理的魅力就在于,它能引导我们理性地权衡先验知识与新证据,避免直觉误导。一个贝叶斯诊断系统会建议“进一步复查”而非直接断定患癌,这体现了其智能。


第二部分:从诊断到分类:MAP与ML

现在我们将贝叶斯思想从“评估一个假设”推广到“在多个假设(类别)中做出选择”。

1. 极大后验概率估计(MAP)——最明智的选择

目标​:在给定训练数据 D后,从所有可能的假设空间 H中,选出那个最有可能成立的假设 h。

方法​:选择能使后验概率 P(h∣D)​​ 最大的那个假设。这就是MAP

hMAP=arg⁡max⁡h∈H P(h∣D)=arg⁡max⁡h∈H [P(D∣h)⋅P(h)] h_{MAP} = \underset{h \in H}{\arg\max} \, P(h \mid D) = \underset{h \in H}{\arg\max} \, \left[ P(D \mid h) \cdot P(h) \right] hMAP=hHargmaxP(hD)=hHargmax[P(Dh)P(h)]

  • P(h):假设 h的先验概率。我们认为这个假设本身是否常见?

  • P(D∣h):​似然度。如果 h是正确的,我们观察到当前数据 D的可能性有多大?

回溯癌症例子,我们有两个假设:h1​=患癌和 h2​=健康。

  • 对于 h1​:P(阳性∣癌症)⋅P(癌症)=0.98×0.008=0.0078

  • 对于 h2​:P(阳性∣健康)⋅P(健康)=0.03×0.992=0.0298

因为 0.0298>0.0078,所以 hMAP​=健康。系统会判定该阳性结果更可能是一次假阳性。

2. 极大似然估计(ML)——退而求其次的实用选择

核心思想​:如果我们对各个假设“谁更可能成立”​完全没有先验概念​(即我们认为所有假设 h的 P(h)都相等),那么MAP决策中的 P(h)就变成了一个常数项。在求最大值(argmax)时,常数项不影响比较结果。因此,决策规则简化为:只需选择那个能使似然度 P(D∣h)​​ 最大的假设。这就是ML

hML=arg⁡max⁡h∈H P(D∣h) h_{ML} = \underset{h \in H}{\arg\max} \, P(D \mid h) hML=hHargmaxP(Dh)

ML是MAP在“假设先验概率均匀分布”下的一个特例。​

一个更直观的例子:警察破案

假设一个小镇发生了一起盗窃案,有两个嫌疑人:A(外来的惯偷)和B(本地的老好人)。

  • MAP视角​:警察会考虑先验概率。A是惯偷,先验概率高;B是老好人,先验概率低。即使目前找到的证据(数据D)对两人都适用,警察也会更倾向于怀疑A。这就是MAP,它结合了“案底”和“现场证据”。

  • ML视角​:如果一个完全不了解两人背景的法官来断案,他会忽略先验概率(认为P(A)=P(B))。他只关注“现场证据”​。他会问:假设是A作案,现有证据出现的可能性有多大?假设是B作案,证据出现的可能性又多大?哪个可能性大,就判哪个。这就是ML。

数学上的经典案例:抛硬币

问题:一枚硬币抛了10次,有6次正面朝上。请问这枚硬币正面朝上的概率 p是多少?

我们用ML来估计。

  • 数据D​:10次抛掷,6次正面。

  • 假设h​:硬币正面朝上的概率 p可以是0到1之间的任何值。每个 p都是一个候选假设。

  • 似然度 P(D∣h)​​:对于某个具体的 p,出现“10次中6次正面”这一结果的概率由二项分布给出:

P(D∣p)=(106)p6(1−p)4 P(D \mid p) = \binom{10}{6} p^6 (1-p)^4 P(Dp)=(610)p6(1p)4
其中 (106)\binom{10}{6}(610) 是组合数,对于固定的数据是常数。

  • 极大似然估计​:我们要找到一个 p,使得上面的 P(D∣p)P(D \mid p)P(Dp)最大。

    • 为了计算方便,我们通常对似然函数取对数(因为对数函数是单调的,求最大值点不变),然后通过求导数找到极值点。

    • log⁡P(D∣p)=log⁡(106)+6log⁡p+4log⁡(1−p)\log P(D \mid p) = \log \binom{10}{6} + 6 \log p + 4 \log (1-p)logP(Dp)=log(610)+6logp+4log(1p)

    • 对 p求导并令导数为零:ddp[log⁡P(D∣p)]=6p−41−p=0\frac{d}{dp} [\log P(D \mid p)] = \frac{6}{p} - \frac{4}{1-p} = 0dpd[logP(Dp)]=p61p4=0

    • 解得:6(1−p)=4p6(1-p) = 4p6(1p)=4p => 6=10p6 = 10p6=10p => p=0.6p = 0.6p=0.6

结论​:使得“10次抛掷出现6次正面”这一结果最可能出现的硬币概率是 p=0.6。因此,p的极大似然估计值就是 ​0.6

ML的哲学​:ML认为,我们观察到的数据就是最可能发生的数据。因此,我们应该选择那个能让已观察到的数据“看起来最不意外”的模型参数。它在机器学习中应用极其广泛,特别是在我们缺乏先验知识,或者认为数据量足够大可以抵消先验影响时。


第三部分:朴素贝叶斯分类器——化繁为简的实战利器

当分类对象变得复杂(如一封邮件有成千上万个词),计算 P(词1,词2,…,词n∣垃圾邮件)这样的联合概率会非常困难。

解决方案:“朴素”的简化假设。​

核心假设:条件独立性。假设在给定邮件类别(如“垃圾邮件”)的条件下,每个词的出现与否是相互独立的。

这个假设在现实中通常不成立(比如“发票”和“报销”经常连带出现),但它能将复杂的联合概率计算分解为多个简单概率的乘积,从而让问题变得可解。

  • 分解前​:P(a1,a2,…,an∣vj)P(a_1, a_2, \ldots, a_n \mid v_j)P(a1,a2,,anvj)(几乎无法直接估计)

  • 分解后​:P(a1∣vj)⋅P(a2∣vj)⋅…⋅P(an∣vj)=∏i=1nP(ai∣vj)P(a_1 \mid v_j) \cdot P(a_2 \mid v_j) \cdot \ldots \cdot P(a_n \mid v_j) = \prod_{i=1}^{n} P(a_i \mid v_j)P(a1vj)P(a2vj)P(anvj)=i=1nP(aivj)

于是,MAP分类器就演变成了著名的朴素贝叶斯分类器​:

vNB=arg⁡max⁡vj∈V [P(vj)∏i=1nP(ai∣vj)] v_{NB} = \underset{v_j \in V}{\arg\max} \, \left[ P(v_j) \prod_{i=1}^{n} P(a_i \mid v_j) \right] vNB=vjVargmax[P(vj)i=1nP(aivj)]

为了数值计算的稳定性(避免多个小概率相乘导致浮点数下溢),我们通常取对数,将连乘变为连加:

vNB=arg⁡max⁡vj∈V [log⁡P(vj)+∑i=1nlog⁡P(ai∣vj)] v_{NB} = \underset{v_j \in V}{\arg\max} \, \left[ \log P(v_j) + \sum_{i=1}^{n} \log P(a_i \mid v_j) \right] vNB=vjVargmax[logP(vj)+i=1nlogP(aivj)]

重要结论​:如果“属性条件独立”的强假设在数据上成立,那么朴素贝叶斯分类器得到的结果 vNBv_{NB}vNB 就完全等价于理论上的最优分类器 vMAPv_{MAP}vMAP​。尽管该假设常被违背,但朴素贝叶斯在文本分类等领域表现惊人,因为它更看重的是特征与类别之间的关联强度,而非特征之间的内在关系。


第四部分:最小描述长度原则(MDL)——奥卡姆剃刀的数学表达

奥卡姆剃刀​:“如非必要,勿增实体”。即,在能解释通的情况下,简单的理论比复杂的更好。

MDL原则​:最好的模型(假设 h),是那个能使 ​描述模型本身所需的信息量​ 加上 ​用这个模型描述数据所需的信息量​ 之和最小的模型。

min⁡[L(h)+L(D∣h)] \min \left[ L(h) + L(D \mid h) \right] min[L(h)+L(Dh)]

  • L(h)L(h)L(h):描述模型 h需要多少比特?复杂的模型(如1000层的神经网络)需要更长的描述。

  • L(D∣h)L(D \mid h)L(Dh):用模型 h去编码数据 D,如果 h不完美,就需要额外编码误差。简单的模型可能误差大,需要更长的编码来描述误差。

MDL与MAP的深刻联系​:

信息论告诉我们,一个事件概率越高,其最优编码长度越短(L(x)=−log⁡2P(x)L(x) = -\log_2 P(x)L(x)=log2P(x))。因此:

  • P(h)越高(模型越简单/常见),L(h)=−log⁡2P(h)L(h) = -\log_2 P(h)L(h)=log2P(h)

  • P(D∣h)越高(模型拟合越好),L(D∣h)=−log⁡2P(D∣h)L(D \mid h) = -\log_2 P(D \mid h)L(Dh)=log2P(Dh)

因此,MAP估计与MDL原则在数学上是等价的:

hMAP=arg⁡max⁡h∈H P(D∣h)P(h)=arg⁡min⁡h∈H [−log⁡2P(D∣h)−log⁡2P(h)]=arg⁡min⁡h∈H [L(D∣h)+L(h)]=hMDL \begin{aligned} h_{MAP} &= \underset{h \in H}{\arg\max} \, P(D \mid h) P(h) \\ &= \underset{h \in H}{\arg\min} \, \left[ -\log_2 P(D \mid h) - \log_2 P(h) \right] \\ &= \underset{h \in H}{\arg\min} \, \left[ L(D \mid h) + L(h) \right] \\ &= h_{MDL} \end{aligned} hMAP=hHargmaxP(Dh)P(h)=hHargmin[log2P(Dh)log2P(h)]=hHargmin[L(Dh)+L(h)]=hMDL

意义​:贝叶斯学习框架内在地包含了对简单模型的偏好。它不是在盲目追求对训练数据的完美拟合,而是在追求简洁性与准确性之间的最佳权衡,这防止了过拟合,是机器学习模型泛化能力的理论基石。

总结

贝叶斯学习为机器提供了一套系统的、类似人类思维的推理框架:

  1. 尊重经验​:通过先验概率融入背景知识。

  2. 注重证据​:通过似然函数评估观察到的数据。

  3. 做出决策​:通过MAPML原则选择最佳假设。

  4. 简化现实​:通过朴素贝叶斯等假设,将复杂问题可行化。

  5. 追求简洁​:通过MDL原则,自动规避不必要的复杂,提升泛化能力。

从疾病诊断到垃圾邮件过滤,贝叶斯方法让机器学会了如何像智者一样思考:不偏执于经验,不盲从于数据,而是在不确定性的世界中,进行理性的权衡与决策。

http://www.dtcms.com/a/470360.html

相关文章:

  • 01-Python简介与环境搭建-教程
  • 高端设计网站都有哪些微信公众号推广赚钱
  • 数字化转型:概念性名词浅谈(第七十二讲)
  • 济南网站建设泉诺上海手机网站哪家最好
  • 鸿蒙Next文件上传下载:全场景高效数据传输方案
  • STM32G474单片机开发入门(九)低功耗模式实战
  • 怎么样给一个网站做横向导航栏搜索引擎优化的概念是什么
  • 网站开发近期市场做一个网站的预算
  • mac使用国内源安装brew并且配置使用国内源安装软件
  • 基因组组装:3. juicer 比对 HiC 数据至参考基因组
  • 工信部网站原来是wordpress发送自定义邮件
  • 怎么再贴吧给自己的网站做宣传网站建设的维护工作有哪些
  • Thinkphp通过supervisor 执行 queue 队列不间断报错Unable to write output 解决
  • Wireshark常用过滤规则
  • 24小时自助建站网站运营与管理的内容包括
  • 巴塘网站建设建设投资基金管理有限公司网站
  • 配置Python环境之Conda
  • 山东网站建设开发建设部网上办事大厅
  • 十四,数据结构-堆
  • 网站建设v5star房屋装修效果图大全
  • Dlib机器学习算法C++实现示例
  • 在rk3576搞出来了虚拟摄像头,能打抖音伴侣
  • 计算机组成原理 刘宏伟 第一章 计算机系统概论
  • 基于模型的系统工程(MBSE)实践指南:破解研发不确定性的利器
  • 宠物用品技术支持 东莞网站建设顺企网企业查询
  • 网站建设 总结手机 wordpress
  • 【汽车篇】AI深度学习在汽车零部件外观检测——车身底涂胶条应用方案
  • 佛山网站开发公司有哪些jsp网站开发实现增删改查
  • 【第十七周】机器学习笔记06
  • 两个人做类似的梦 网站多个wordpress管理