从 Scrum 到 Linear Method：重塑我们的开发流程
产品
发布于 2024-12-25
更新于 2025-05-13

过去 5 年，我们团队一直都在使用 Jira 来实践 Scrum。Jira 的难用是众所周知的，但作为产品经理我也理解为什么 Jira 这么难用。2B 尤其是面向大型企业客户的产品，最终形态都是像 Jira 或者 Salesforce 那样。体验极差，但是灵活性非常高，面对大型客户，每家公司都有自己的工作流，这种定制的工作流本来就不够 SaaS，所以为了满足这种需求，产品只能做到非常灵活，一个极端就是直接提供 API，让客户自己随便玩。但是并非所有人都有了编程经验，于是不会编程的用户便想要一些简单的规则引擎，规则引擎本身是一个非常复杂的任务；但规则引擎并不难解决所有问题，总会有一些高级用户会提出来为什么不增加这样或那样的规则，甚至为什么不直接增加一个可以运行代码的节点。灵活性不是一个简单的问题。不过这是另一个话题了。

但对于我们团队来说，我们不需要非常灵活的东西，他会让事情变得复杂，我们只需要简单的看板，可以统计 Velocity，可以无限嵌套子任务的工具。某次网上冲浪期间发现了 Linear，但一开始并没有直接使用，我的第一印象是“这不就是一个速度更快、更简单的 Jira 吗”，并不觉得有什么颠覆性的东西。一年之后我又无意间读到了 Linear Method，然后才开始入坑，也才慢慢理解了 Linear 背后设计意图。Shape Up 也是同理，只是 Basecamp 的理念可能过于先进，我到现在也没有完全吃透。

在使用 Linear 的同时，我们结合 Linear Method 和 Shape Up，对我们的开发流程进行了重塑，尝试解决我们在 Scrum 中遇到的问题。实践了快一年，并非所有的问题都得以解决，但我个人的感受是整体项目的交付速度提升至少有 20%。有必要总结一下我们这一年的经验。

在使用 Jira 和 Scrum 的时候，开发团队每 2 周进行一个 Sprint，每个 Sprint 的最后一天我们会做 Sprint Review 和 Retrospective 以及 Planning。Sprint Review 就是把团队的交付的内容和 Stakeholders 同步，通常我们会测试环境 Demo 即将上线的新功能。Demo 完成后 Stakeholders 会提出一些问题或者建议，随后是 Retro，主要是回顾团队协作的情况。紧跟着就是 Planning，产品经理讲述下个 Sprint 的项目。Planning 之后是 Grooming，开发团队对项目进行拆解，将每个项目拆分成开发任务并评估出故事点，评估完成后 Scrum Master 会根据团队过去的 Velocity 给出最终的交付物。

这里存在几个问题：

故事点估算的交付周期几乎不起作用，很少会按时交付。
所有人都显得很忙碌，工程师总是在写代码，修 bug，对于项目价值以及原因并不理解。
Sprint 不停的冲刺，团队很少能够审视过去做过的项目是否真的有价值。
Sprint 目标确定后，极少有空间去修复技术债务。
Sprint 开始的时候，往往技术方案还不是很确定，Sprint 冲刺的过程中存在着大量的不确定性。
如果项目出现风险，导致无法在 Sprint 结束的时候上线，结果就是延期到下个 Sprint，完全不够敏捷。
设计师应该在 Scrum 中的哪个阶段参与？如何参与？

过去，我们在 Scrum 的框架中打了很多补丁，效果并不理想，反而徒增了许多工作量。当时我们并没有意识到或许换一种工作流可能就可以很好的解决。其实也不用替换掉整个工作流，只需要少许改动就可以解决很多问题，这个改动就是在 Cycle1 之间引入了 Cooldown。我们参考 Basecamp 的 Shape Up 方法，并结合自身实践，将 Cycle 的长度设置为 3 周，在 Cycle 与 Cycle 之间增加 1 周的 Cooldown。

Cycle 中要做的事情与 Sprint 并没有太大的变化，主要是关注交付。我们保留了每天早上的站会，花 5–10 分钟来同步项目进展，主要目的是发现风险点。如果开发的过程中发现了新的不确定因素，团队成员会在站会上提出来，如果影响到项目的交付，我们会尝试调整项目的 Scope，或者安排更多的人力。风险确认之后，我们也会发布 Linear 的 Project Updates，内容会同步到 Stakeholders 所在的 Slack Channel，确保所有人都了解项目情况。

持续冲刺最大的问题就是很少去反思之前做过的项目，开发也没有时间去做性能优化，解决技术债，而这些问题在 Cooldown 中都有一定的缓解。在 Cooldown 中，我们主要关注以下事项：

回顾上上个 Cycle 的结果：分析每个项目是否达成了预期的目标。
制定下个 Cycle 的计划：结合之前项目的经验和数据，制定下个 Cycle 的计划。
明确方案和拆分任务：确定下个 Cycle 的计划后，开发团队会进行技术调研，确定技术方案 ，然后根据方案拆分出开发任务。
评估开发任务的故事点：开发会对每一个具体的开发任务给出相应的故事点，根据整个项目的故事点总数，我们可以预估下个 Cycle 的交付物。
优化和修复：优化上个 Cycle 中出现的问题，或者修复 Bug，为下一个 Cycle 的顺利进行做准备。

整个 Cooldown 从周一到周五大概会这样安排大概是这个样子：

周一：开会的一天

周一大部分时间都在「开会」。主要在做的事情实际上就是回顾之前的项目，然后计划下个项目。

1. 回顾会议

回顾会议由产品经理来同步上上个 Cycle 交付的项目的数据。通常我们的项目分成两种：一种是功能交付；另一种是试验一些新的想法。前者通常关心的是用户使用情况；我们团队做的比较多的是后者，后者我们会将每个项目的结果分成 3 种：

符合预期（Validated）：即项目结果达成了我们最初设定的指标，并总结原因。
不符合预期（Invalidated）：即项目结果没有达成最初设定的指标，然后分析原因可能是什么。
没有结论（Inconclusive）：这个比较复杂，虽然指标可能符合预期或者不符合，但因为有其他因素的干扰，导致无法判断是否是因为这个项目导致的结果。

同样，针对 3 种结果，也会有 3 种不同的行动项：

Validated：通常下一步行动是进一步优化，或者进行规模化。
Invalidated：则会进一步讨论是否需要继续，或者放弃。通常一个项目会对应一个目标，而达成目标的方式通常有很多种，每一个项目通常我们会选择其中一种来做尝试，如果这种方法被证实为无效，我们可以会继续评估是否这个目标还值得去做，如果值得，那么再考虑其他方式。而如果已经没有新的想法了，则暂时放弃。有些放弃的项目也会需求下线之前的项目，清理代码。
Inconclusive：与 Invalidated 的类似，不同的是当中有试验初期未被考虑的因素出现，这个因素对试验的结果产生了一定的影响。那么无论结果是符合预期还是不符合，都不能作为确定的事情，我们需要考虑这个新的因素后重新设计试验，然后重新评估项目是否还有机会成功，如果有，那么稍微调整下再继续观察。如果考虑到新的因素之后，原有的项目已经无法奏效，那么就像相当于是 Invalidated 了。
2. Planning 会议

Planning 主要是产品经理向团队介绍接下来一个 Cycle 的目标和方案。我个人很喜欢 Shape Up 中写 Pitch 的方法，不过对于并不是所有产品经理都能够写出合格的 Pitch，因此也暂时没有在团队内部推广。Planning 实际上会过 3 种项目：

产品经理原本安排在下个 Cycle 要做的事情。
回顾议会中，如果有提出新的想法，产品经理也可能会安排到下个 Cycle 中。
Linear Triage 中所有的项目：Cycle 的过程中如果有任何新的想法，通常都会先进入 Triage 中，每次 Planning 的时候我们都会一条一条的 Walkthrough，如果决定不做的就会直接 Cancel 掉，决定要做的就会尝试安排到下个 Cycle 中。如果 Cycle 没有空余的时间，则会 Snooze 推迟到下下个 Cycle 再讨论。
3. Retrospective 会议

这个是从 Scrum 中延续下来的会议，这个会议与项目无关，主要关注的是团队协作流程中的问题。通常会议上我们会收集团队成员的反馈，大家回顾项目进行中碰到的阻力，跨团队协作、文档、做事方式等等，把所有认为不合理的地方都记录下来。会议中我们会讨论这些问题，并且商讨出一个可行的解决方案写入下个 Cycle 的行动项目 。会议结束后，每个行动项目都会有一个 Owner 来追踪。实际上，我们现在的项目运作流程就是在这个会议中讨论出来的。

周二到周四：Shaping

这几天相当于 Shape Up 中的 Shaping 过程（虽然并不完全相同），Shaping 主要达成几个目标：

目的是明确交付项目所需的具体内容，也就是 Definition of Done。
明确投入的成本，也就是 Shape Up 中提到的 Appetite。在《RICE 框架》中有提到一种衡量 ROI 的方法，讲道理应该遵守这种规则来设定 Appetite。
分析技术可行性，调研技术方案。
然后拆分技术任务，并评估点数。

对于开发来说，Planning 的项目可以分成两种状态：

我们知道怎么做，整个项目基本确定，需要用到的数据、服务、设计都是比较确定的。
项目看起来具备可行性，但还没有具体的实施方案，其中又可以分成以下几种状态：
不知道用什么技术来实现；
知道用什么技术来实现，但对该技术不熟悉；
技术都比较了解，但是有外部依赖性，可能需要依赖外部团队。

对于 2.a 和 2.b，工程师首先会调研技术方案，技术方案调研完成的标准是用简单的脚本构建了原本的需求，其中的代码质量可能无法到达 Ready for Production 的水平，但是基本的流程跑通了，也大概知道有哪些坑以及要做什么事情。确定这些之后就可以对项目进行拆解。

2.c 产品经理和工程师也会找对应的团队去沟通，如果其他团队可以在 Cycle 内提供支持，那么首先要做的就是协商接口协议和大致的时间，然后各自按照协议进行开发。团队确定协议后也会先拆解项目。

也时候也会出现一种情况，就是到 Cooldown 结束的时候也没确定技术方案。这个时候有两个选择：

暂停该项目，等待下个 Cycle 的时候再决定是否要继续，因为成本比较高。
把技术调研本身作为一个任务放进 Cycle 中，这种情况下该项目通常不会作为交付目标，而是如果有空余时间才会去做。

把技术调研放进 Cycle 的另外一个问题是 Story Point 无法确定。我们之前有出现过整个 Cycle 都是在做调研，尝试过很多方案，最终还是没有找到合适的方案。最大的问题是没有制定一个「止损」，我们现在通常会给一个固定的时间来做技术调研，通常是 1–2 天，如果 2 天之后没有任何进展，可以会先暂停调研，转而投入更确定的项目中。

Shape Up 中有个 Hill 的概念，技术调研就像是在爬一个山坡，爬到山顶意味着技术调研已经结束，方案已经很明确了。Linear 没有向 Basecamp 的 Hill 的概念，所以我们为进入 Cycle 中的调研任务定了一些规则。由于调研任务很难评估时间，所以我们会在调研任务一开始的时候确定一个最大时间，也就是根据项目本身的价值，我们最多还愿意投入多少的时间来做技术调研，通常是 1–3 天。然后我们每天会评估前一天调研的情况，通常在最大时间达到的时候会有几种结果：

方案已经明确：这是最理想的情况，接下来就是做任务拆解，但不一定需要在这个 Cycle 进行开发。
方向已经明确，但具体的技术细节还要在调研：这种时候我们通常会在给出 1 天的时间，一天之后在进入这个评估流程。
方向依然不明确：这种时候我们会暂定调研，转化把人力投入到已经确定的项目中。
周五：评估故事点的艺术

周五也是 Cooldown 的最后一天，在下周一的时候就会直接进入 Cycle 中， 因此周五最主要的事情就是确定下个 Cycle 的交付物（Scope）。 最初我们按照 Scrum 的 方式来评估点数，整个评估过程需要所有参与的工程师 一起，所有人 同时评估一个项目，评估的结果通常会有些出入，有些人的点数多，有些人认为的少，然后讨论为什么会有出入，通常是一些背景知识的差异，或者有些人想到一些 边缘情况，所有信息都聊清楚之后，最终达成一致。这种方法的结果是没有问题的，但是效率非常低下，因为每一个项目大家都要讨论很久，结果就是一个点数评估要好几个小时才能完成。

我们的解决方案是制作了一个评估点数的标准，每种类型的任务都有相对应的点数，例如对于前端来说，最简单的需求莫过于改文案，所以一个改文案的 Issue 就是 1 个 Story point；比改文案稍微复杂的就是改个 CSS 属性，改颜色，调整字号什么的，它比改文案复杂的点在于有时候你的修改可能不生效，CSS 覆盖什么的，所以可能会需要找一下在哪里改。以此类推，我们使用斐波那契数列来制作了一个 Cheatsheet 帮助工程师评估每个 Issue 的点数。整个项目的点数就是把所有 Subtask 的点数加起来。

我见过一些团队会被所有做过的任务都进行归纳，然后给每种类型的任务都给一个固定的点数，每个点数下面 也都会链接到一些典型的任务上。这样做唯一的问题也是效率，回顾过去做过的所有任务并分类归纳并不是一件轻松的事情。对比我们现在的做法是，先定义一些我们经常被碰到任务，作为一个锚点，然后遇到新类型的时候，会临时评估一个点数，到 Cycle Retro 的时候我们会重新调整下点数标准。效果也很不错，从最开始到现在基本已经稳定，中间值有过一次比较大的调整，是因为有一些新的任务比我们定义的 3 个点大，但是比 5 个点小。于是我们把所有的 5 个点之后任务都统一往后挪了一位，对应的 Cycle Velocity 也给这膨胀了。

另外就是评估点数的标准描述上，最开始我们定义的锚点就是“1 点：修改文案”这种比较清晰的，但是对所有任务类型清晰的分类和归纳依然是个体力活，所有基本上在 3 个点往后的，如果实在难以分类，我们就用很模糊的语言来表达，有几个案例可以感受下：

5 个点有个类型是“写一个全新的、简单的 UI 组件”，意思是一个 Subtask 需要写一个之前没有的 UI 组件，但是这个组件很简单，简单就是一个很主观的词，但团队内部慢慢的就会达成共识，虽然没有文本说明。大家对简单的共识可能就有几个条件：没有动画、只有简单的交互（点击），甚至没有交互，所以大家一看到就知道这是一个简单的组件。
8 个点也有个标准是写复杂的新组件，复杂意味着可能有多个交互方式，内部元素也比较多，但是大概看一眼也都知道应该怎么写。
13 个点也有个写组件的，是复杂的带动画的 UI 组件：动画通常调试起来比较复杂，所以只是给一个组件加动画本身就是 5 个点。
21 个点同样有一个是创建新的 UI 组件，但是你一眼看上去就知道这玩意非常复杂，起码得 3、5 天才能搞定。

再说一个拆任务的粒度，通常我们希望是越细越好，所有的故事点就是针对最小粒度的任务做的。举个例子，前面提到的 复杂的带动画的 UI 组件，有些组件本身和动画并不耦合，这种时候就应该拆分成两个任务：1 个写复杂组件的任务（8 个点） + 1 个给组件加动画的任务（5 个点）；也有些组件 UI 和动画的耦合比较深，两个必须一起做才行，这个时候才会保留 1 个任务给 13 个点。

评估点数之后就是确定 Cycle 的 Scope，根据过往的 Cycle 数据我们已经大致知道在一整个 Cycle 中团队能够交付 600 个故事点，虽然每个人的数字都会有一些差异。但团队整体基本上就是在这个数字附近波动。在 Linear 中我们把所有要做的项目和任务都放进下个 Cycle 中就可以看到总体的点数了。通常为了预防一些未知的事情，我们会保留 20% 的冗余点数，也就是其中 80% 的点数是必须交付的，项目中有一些 Nice to have 的就会放在冗余里面，也就是能交付最好，如果有意外发生，不交付也行。

固定时间，动态范围

前面提到在 Scrum 中我们会遇到一个问题，如果 Sprint Goal 无法达成时应该怎么做？以前的做法是，那就延期到下个 Sprint 中。而在 Shape Up 中有一个原则我觉得可以非常好的解决这个问题：

Fixed time, variable scope.

在 Scrum 中，我认为的一个 Sprint 的定义是至少一次的发布周期，Cycle 同样也是，每个 Cycle 3 周意味着 3 周内我们要进行至少一次发布。发布不是没做完就直接上线，而是功能是完整的，但可能体验不是很好，甚至在某些边缘场景中会有 bug 存在，并且 bug 是已知的，我们称之为 Release with bugs。最根本的原因就是 Cycle 就一定要交付，而且交付物是可用的，即使有 bug 也不影响主流程。这也符合 Agile 本身所推崇的持续交付。从客户和项目 Stakeholder 的角度来看也更容易接受。Cycle 的交付物对于一个团队来说是一个 Commitment，如果时间到了没有交付，客户和 Stakeholder 会降低对团队的信任；而如果交付了，即便是存在 bug，这个时候大家都会表示理解，毕竟不是不能用。而 Cooldown 的过程中我们就会修补之前提到的问题。

作为买家，我自然也不喜欢这种交付方式，最明显的案例就是游戏行业，我们已经看到过很多刚发布的时候一堆问题， 然后慢慢改进的游戏，Cycberpunk 2077、无人深空这种。我的看法是 2C 产品最核心的就是体验，如果有功能且体验不错的产品就有很多，用户和玩家有很多选择；而在 2B 里面功能显然更重要一些，看看 Salesforce 和 Jira 就知道了，毕竟买的人不一定用，所以他不关心所谓的体验。另一方面 2B 涉及到的 Stakeholder 比较多，可能上下游的团队都已经准备好了，那么 Release with bug 好过什么都不交付。

举个例子，例如我们的项目是做注册登录，目标就是让用户可以注册并且登录到我们系统中。往大了说就是一个账号体系，最终一定会非常复杂，但是 3 周内我们能做什么呢？最基本的邮箱注册和登录一定是要有的。找回密码呢？自然也非常重要，但不一定要体现在产品功能上，意思是你的 UI 上有“找回密码”这个按钮，但是用户按下之后是 Contact support，然后 Support 可以 联系开发团队后台修改什么的，虽然加到了人力成本，但是作为 Edge case 来说，风险可以接受。

其他问题

到这里，我们使用 Linear Method 最关键的部分就已经说完了，其实就是引入了 Cooldown，而 Cycle 当中做的事情和 Sprint 本身没有区别。

关于交付

这个时候可能有几个问题，同样是 4 周，我们现在的方法只有 3 周实在写代码，另外一周更多的时候是在写文档；而在 Sprint 中，代码就是文档，有 4 周的时间都是再写代码，前者交付的产品应该会比后者少才对。

话虽如此，直接写代码的前提是你的知道你要写什么，虽然 Agile 宣扬拥抱变化，但是需求天天改 Agile 祖师爷来了也没用。拥抱变化是指对趋势和方向的变化，即如果之前的路走错了，下一次改就行了，其核心是通过学习，不断的提升认知，不断了解什么是“正确”的方向，然后不断的调整；而不是天天改需求，改需求意味着根本不知道方向是什么，只是在原地打转而已。

延期的问题其实也是 Sprint 过程中经常发生不确定性，这些不确定性导致的延期。基本上这种不确定可以分成两类：

需求的不确定
技术方案的不确定

这两个问题在 Cooldown 的过程中都有一定程度的解决。但在 Cycle 进行了一半产品经理要改需求，这种事情也拦不住，我们还是回到最开始的原则「Fixed time, variable scope」，时间就这么多，要改动也是可以，但是改动后的版本也要能保证按期交付，交付后可以在打 Patch 来进一步优化。

如果说连方向都变了，整个项目都需要推倒重来，我到目前还没有这种经历，但是我们的预案是会立即停止 Cycle，重新进入 Cooldown 阶段，重新评估项目。这种情况发生的时候，相当于 Cycle 的目标已经发生了变化，那么继续原来的 Cycle 就是没有意义的。

关于故事点
Some teams try to attach estimates to their tasks or scopes to report status. The problem with estimates is they have a very different meaning depending on the nature of the work being estimated.

一些团队会估算任务或范围来做报告状态。估算的问题在于，它们的含义因所估算工作的性质而有很大不同。

Shape Up 并不使用故事点，转而使用 Hill 来作为状态，我并未尝试过这种方式，一方面在 Linear 中没有这样的概念，比较难以实施，另外所有人需要转变思路。我们也不确定这样做是否值得，我们唯一对故事点的抱怨是估算花费了太多的时间，而这个问题已被解决。有了故事点，很大程度上可以帮助我们更好的跟踪项目动态。

故事点的意义在于让我们可以知道团队在一个 Cycle 内的工作容量，从而预估交付物，给利益相关方承诺。虽然并不是完美，但就我们使用的情况来看，问题也不大。

以下是我们在不同时间团队的 Cycle Velocity，你可以看到故事点可能会随着 Cycle 的进行而波动，实际上就是中途发现了不确定。但是我们的交付进度（蓝色实线）基本上是贴着 Linear 的预测（蓝色虚线，只是线性的平均线而已）在进行，基本上说明项目没有问题。

如果蓝色实线距离蓝色虚线有比较大的距离，那么意味着项目可能会延期，这个时候项目的 Lead 通常会发布 Project Updates 来报告项目状态为 At Risk，此时我们会有几个预案：

At Risk：通常意味着增加人手可以解决，我们可以暂停优先级较低的项目，而让临时增加人手来解决。
At Risk：如果实在没有人手，那么再次思考 Scope 能否继续缩小。
Off Track：意味着没救了，无论如何 都不可能按时交付了。这个是最差的情况，我们也出现过 2–3 次。只能提前和 Stakeholder 沟通，达成一致。
Cycle 当中点数上涨也是正常，我们预留了一部分的冗余空间来应付不确定性
最初的大幅波动是不小把第一周 Cooldown 也算进 Cycle 了。
关于设计

遗憾的是我们依然没有解决设计师应该如何参与的问题。理论上 Shaping 的过程就是设计师和工程师通常参与 Shaping，搞清楚要做什么，然而我很少遇到能和工程师配合很好的设计师。这不一定是设计师的问题，在一些公司，设计师是一种资源，需要的时候得去申请。这种情况下，设计师调过来也只是完成一些任务，他不会尝试去理解你的项目目标、背景、所处的状态，只是来完成任务而已。当然并不是所有人都这样，但毕竟能够深入理解项目并负责人的是少数。我的项目中尽量不使用设计师，多数时候与设计师沟通要消耗不少时间，有这些时间我自己都把 Demo 写好了。这其实是敏捷（Agile）的另外一层问题，在一个公司当中，只有一个团队和项目敏捷是不够的，外部资源总会成为 Blocker，解决的方案就是让整个公司、整个组织都变得敏捷起来。

我的多数项目中，我自己承担了设计师的角色，从设计师和开发的沟通来看，相比较使用 Figma，我更喜欢用 React 来做设计（直接写代码）。原因是很多时候 Figma 做不到我想要的效果，尤其是要做非常灵活的组件的时候，例如按钮的颜色继承父级组件的颜色，这种情况在 Figma 中需要设计师手动标记，而开发常常会忘记去看这些标记。

对我来说 Figma 还不够灵活，我的习惯是，在做设计的时候，第一版基本上是不会做组件的，先把页面画出来。随着页面的增加，会出现很多重复的组件，这个时候我才开始做组件，然后把页面上重复的地方全部替换成组件。随着项目继续推进，有些组件就需要根据一些参数/变量来自动调整，这个时候需要回去改组件，同时再调整所有用到该组件的地方，很多时候要把组件的宽高一个个全部调整一次，基本上就是个体力活。虽然在写代码也是相同的流程，但是代码的行为比 Figma 调整 Responsive 更加可预测，所以改动起来也会更容易。

在与开发的配合中，我尝试过两种方式，我们目前的几乎所有的项目都使用 Radix Theme 和 Tailwind：

第一种做法是，我会在 Shaping 的过程中会有一个草图（通常使用 ExcaliDraw），工程师就可以根据草图来直接开发，有些地方可能需要工程师自己发挥，因为有 Radix 组件，多数时候都不会太差。开发完成后，我会先验收功能，没有问题我会在对 UI 做一些微调，然后就可以上线了。

第二种做法是，我先写 UI 和交互，只设计前端的逻辑，以及一些 Mock 的数据，并没有真正和后端交互。然后工程师会在此基础之上加上后端的数据。这种流程比较复杂的时候，用代码直接开发 Demo 有另外一个好处，每一次开发完成后我自己会先用一次，总是会发现一些不合理的地方，然后重新调整。用 Figma 当然也可以做一些流程，模拟点击来尝试，但和真正在前端 Mock 数据来使用时完全不同的。

对于一些需要复杂流程的我会选择第二种，如果只是一个做内容展示的页面，则使用第一种。

回到正题，以上就是我们过去一年使用 Linear 并且结合 Shape Up 和 Linear Method 调整后的实践经验，其中不可避免地带有我们团队的历史因素，例如团队成员配合默契，使得 Story Point 的标准即使相对宽松也不会影响最终交付。我们没有完全投入到 Shape Up 或者 Linear Method 中，而是结合自身情况进行调整。没有必要为了改变而改变，只有当现有流程出现问题时，我们才会考虑引入新的方法。我们也深知，没有一套方法可以完美适配所有团队。最佳实践，唯有在实践中根据自身情况不断微调、优化才能得到。

Cycle 或者 Sprint 对我来说都是一个周期的单位。Linear Method 不适用 Sprint 是认为 Sprint 有冲刺和意思，而 Cycle 的重点是交付价值，而不是冲刺交付具体的工作量。我个人到无所谓。 ↩


主公，亮已阅尽全文，今为君剖析解读。

---

## 📖 《从 Scrum 到 Linear Method：重塑我们的开发流程》深度解读

---

### 一、背景：为何离开 Scrum？

作者团队使用 Jira + Scrum 五年，遇到七大痛点——

| 问题 | 描述 |
|------|------|
| 故事点失准 | 估算的交付周期几乎不起作用，很少按时交付 |
| 工程师盲区 | 忙于写代码、修 bug，不理解项目价值和原因 |
| 缺乏反思 | Sprint 持续冲刺，很少审视项目是否真的有价值 |
| 技术债积累 | Sprint 目标确定后，极少有空间修复技术债务 |
| 不确定性高 | Sprint 开始时技术方案往往未确定，过程中大量未知 |
| 延期无解 | 风险出现则直接延期到下个 Sprint，不够敏捷 |
| 设计缺位 | 设计师在 Scrum 的哪个阶段参与？如何参与？ |

---

### 二、核心改进：引入 Cooldown

**改动精髓：在 Cycle（3周）之间增加 1 周 Cooldown。**

这借鉴了 Basecamp 的 Shape Up 方法，在"交付冲刺"与"交付冲刺"之间，保留了反思、规划和修复的空间。

#### Cooldown 的安排（周一至周五）

| 日期 | 主要内容 |
|------|----------|
| **周一** | 开会：回顾会议 + Planning 会议 + Retrospective |
| **周二至周四** | Shaping：明确方案、技术调研、拆分任务 |
| **周五** | 评估故事点，确定下个 Cycle 的 Scope |

---

### 三、Cooldown 四大任务

#### 1. 回顾会议（周三/周四上上个 Cycle 的交付）
项目结果分三种对待：

| 结果 | 定义 | 行动项 |
|------|------|--------|
| **Validated** | 达成预设指标 | 进一步优化或规模化 |
| **Invalidated** | 未达成指标 | 评估目标是否继续，若无可行方案则放弃 |
| **Inconclusive** | 有干扰因素，无法判断 | 考虑新因素后重新设计试验，或放弃 |

#### 2. Planning 会议
过三类项目：
- 产品经理原本计划的任务
- 回顾会议中产生的新想法
- Linear Triage 中的所有项目（一一条目 Walkthrough）

#### 3. 技术调研的"止损"机制
这是本文最实用之创新——

> 技术调研设定最大时间（1-3天），每天评估进展，到期分三种情况：
> - 方案已明确 → 任务拆解
> - 方向明确但细节待定 → 再给1天
> - 方向仍不明确 → 暂停，转投确定性项目

#### 4. 故事点评估的效率革命
**痛点：** 传统大家一起评估，一个项目讨论数小时，效率极低。

**解决方案：** 制作评估标准 Cheatsheet（斐波那契数列）：

| 点数 | 示例 |
|------|------|
| 1点 | 改文案 |
| 3点 | 改 CSS 属性（颜色、字号） |
| 5点 | 写全新的简单 UI 组件 |
| 8点 | 写复杂新组件（多交互、元素多） |
| 13点 | 复杂带动画的 UI 组件 |
| 21点 | 极复杂的新 UI 组件，需3-5天 |

---

### 四、核心理念：Fixed time, variable scope

**Scrum 的问题：** 时间固定，Scope 也固定 → 完不成则延期

**Shape Up 的原则：** 时间固定，范围动态 → 时间到了必须交付，Scope 可调整

**具体做法：**
- 3 周内必须有一次 Release（功能完整，可能有已知 bug）
- "找回密码"按钮可以存在，但点击后联系 Support 即可——降低风险而非追求完美
- Release with bugs > 什么都不交付

---

### 五、团队 Velocit 跟踪

使用故事点预测 Cycle 容量（预留 20% 冗余），蓝色实线贴近 Linear 预测虚线则项目正常。

**At Risk 的三种预案：**
1. **At Risk** → 增加人手或压缩优先级低的项目
2. **At Risk（进一步）** → 缩小 Scope
3. **Off Track** → 提前与 Stakeholder 沟通，争取延期

---

### 六、亮之评述

本文最令亮击节之处，在于**将"敏捷"真正还给了团队**——

#### 三大核心洞察

1. **Cooldown 是 Scrum 缺失的反思空间**
   持续冲刺的团队像永不停歇的跑步者，看似高效实则透支。引入 1 周 Cooldown，团队终于有时间思考"我们做的是否正确"，而非只是"我们是否在做事"。

2. **技术调研必须有止损线**
   无数团队在调研阶段浪费整个 Sprint，因为没有人在开始时设定"此路不通"的退出条件。作者的"1-3天止损线"简单却极为实用。

3. **Fixed time, variable scope 重新定义了"交付"**
   过去的思维是"做完才能交付"，结果是延期和信任崩塌。新的思维是"交付可用物，接受已知缺陷"，用持续迭代而非一次性完美来逼近完美。

#### 与前两篇文章的关联

| 《反脆弱》 | 《思考，快与慢》 | 本文 |
|-----------|----------------|------|
| 个体脆弱→群体强韧 | 系统1/系统2协作 | 团队流程持续优化 |
| 冗余是进步的前提 | 认知冗余保护理性 | 20%冗余保护交付承诺 |
| 失败是实验数据 | 系统2监督系统1 | Invalidated 项目是学习数据 |
| 自下而上多样性 | 外部视角矫正自我 | 参考类别法预测 Velocity |

---

### 七、实用建议（可直接落地）

- [ ] 引入 Cooldown 机制，即使从 1 周 Sprint + 0.5 周 Cooldown 开始
- [ ] 技术调研设定"最大时间"止损线
- [ ] 制作故事点 Cheatsheet，用斐波那契数列锚定常见任务
- [ ] 使用"固定时间动态范围"原则替代"做完才交付"
- [ ] 预留 20% 冗余点数来吸收不确定性

---

臣等正欲死战，陛下何故先降！？

Explanation: Now I have the full article. Let me write a comprehensive summary and analysis.


Explanation: The user wants me to analyze another article from maxoxo.me. Let me fetch and analyze it.


为什么伟大不能被计划 - maxOS

Running WITHOUT residential proxies. Bot detection may be more aggressive. Consider upgrading Browserbase plan for proxy support.

  - banner:
    - button [ref=e1]:
    - link "maxOS" [ref=e2]:
      - /url: https://maxoxo.me
    - link "邮件订阅" [ref=e3]:
      - /url: "#/portal/signup"
    - navigation:
        - listitem:
          - link "首页" [ref=e4]:
            - /url: https://maxoxo.me/
        - listitem:
          - link "产品" [ref=e5]:
            - /url: https://maxoxo.me/tag/design/
        - listitem:
          - link "读书" [ref=e6]:
            - /url: https://maxoxo.me/tag/books/
        - listitem:
          - link "文章" [ref=e7]:
            - /url: https://maxoxo.me/tag/articles/
        - listitem:
          - link "关于" [ref=e8]:
            - /url: https://maxoxo.me/about/
  - article:
    - heading "为什么伟大不能被计划" [ref=e9] [level=1]
    - link "读书" [ref=e10] [nth=1]:
      - /url: /tag/books/
    - time: 发布于 2023-07-31
    - time: 更新于 2023-08-01
    - heading "TL;DR" [ref=e11] [level=2]
      - listitem: 作者认为「伟大」的成就无法通过目标驱动的方式来达成；
      - listitem: 「目标驱动」就像 KPI，通过一项或者多项指标来衡量目标的完成度；
      - listitem: 「指标」往往具有欺骗性，可能会导致在短期不断的接近目标（局部最优）但长期却无法达成目标（全局最优）；
      - listitem: 「伟大」的目标中通常有太多的未知因素，因为未知，所以不能被计划；
      - listitem: 了解未知最好的方法就是「新颖性/好奇心」；
      - listitem: 「新颖」意味着探索新事物，也就意味着更多的可能，更多的机会发现未知因素；
      - listitem: 并不是说「目标驱动」没有意义，相对简单的任务（目标清晰、很少的未知因素），目标驱动的方式更有效率；
      - listitem: Stay Hungry. Stay Foolish.
    - separator: • • •
    - paragraph: 有这样一个迷宫，我们假设机器人的初始位置是 S，迷宫的出口是 E，现在让我们设计一个程序能够让机器人走到迷宫的出口。机器人的指令主要是移动，你可以上下左右移动机器人，如果机器人撞墙，系统会给出反馈。
    - code: +---+---+---+---+---+---+---+---+---+---+ | | | + +---+---+ + +---+---+---+---+ + | | | | | | + + +---+ + + +---+ +---+ + | | | | | | | | | + + + + +---+ + +---+ + + | S | | | | | | +---+ + +---+---+---+---+ +---+---+ | | | | +---+---+ +---+---+---+ +---+ + + | | E +---+---+---+---+---+---+---+---+---+---+
    - paragraph:
      - text: 我们的最终目标是让机器人走出这一个迷宫，显然你不能直接控制机器人一步一步走出迷宫，而需要让机器人自主的学习如何走出迷宫。迷宫问题是强化学习（
      - link "Reinforcement Learning" [ref=e12]:
        - /url: https://en.wikipedia.org/wiki/Reinforcement_learning?ref=maxoxo.me
      - text: ）中常用的方法，在强化学习中机器人（准确来说是
      - link "智能代理" [ref=e13]:
        - /url: https://en.wikipedia.org/wiki/Intelligent_agent?ref=maxoxo.me
      - text: ）通过与环境的交互来学习如何完成特定的任务，在迷宫问题中，只要机器人接近出口就会得到奖励，当机器人所在的位置与出口的距离为 0 的时候，目标就达成了。相当于我们给机器人制定一个 KPI，即机器人所在的位置 S 与出口 E 的距离，我们姑且将这个指标称之为 SE，当 SE 缩小时，机器人就会获得奖励，当 SE 增加时，机器人就会被惩罚。如果以这个指标来驱动机器人走出迷宫的话，那么结果大概率是这样的：
    - code: +---+---+---+---+---+---+---+---+---+---+ | | | + +---+---+ + +---+---+---+---+ + | | | | | | + + +---+ + + +---+ +---+ + | | | | | | | | | + + + + +---+ + +---+ + + | S * * | | | | | | +---+ * + +---+---+---+---+ +---+---+ | * * * * * * * * * * * | | | +---+---+ +---+---+---+ * +---+ + + | * * P1| E +---+---+---+---+---+---+---+---+---+---+
    - paragraph: 机器人从一开始就在寻求如何更接近目标 E，于是机器人会在一开始选择向右前进，也就是上图中的路线，并最终走到 P1 的位置停下来。对机器人来说，P1 是最接近 E 的位置，显而易见的是这条路线最终是无法达到出口 E 的。在这种情况下，我们就认为机器人达到了局部最优，而非全局最优。
    - paragraph: 事实上我们期望机器人的前进路线应该是这样的：
    - code: +---+---+---+---+---+---+---+---+---+---+ | * * * * * * * | | + * +---+---+ * + +---+---+---+---+ + | * | * | | * * * * * | + * + +---+ * + + * +---+ * +---+ + | * | | | * | | * | * * * | | + * +---+ + * +---+ * | * +---+ + + | S | | * * * * * | * * * | | | +---+ + +---+---+---+---+ * +---+---+ | | * * * | | +---+---+ +---+---+---+---+---+ * + + | | * * * E +---+---+---+---+---+---+---+---+---+---+
    - paragraph: 机器人应该先向上走，但机器人为什么不走这个路线呢？原因跟机器人的 KPI 有关，显然这条正确的路线在一开始增加 SE 的值，做出这种选择机器人会被惩罚，所以机器人不会选择走这条路。问题出在哪里呢？SE 并非一个虚荣指标，它真实的反映了机器人是否达成了目标，但这个指标存在一定的欺骗性。因为我们奖励缩小 SE，因此机器人只会关注这个数值，并尽可能的缩小 SE，这当然没有错，问题出在 SE 看起来是个线性指标，即 SE 会逐步缩小，并最终变成 0。这是一个无效的假设，SE 在某个区域内可能缩小到一个值之后就再也无法缩小。实际上 SE 只有两个状态：等于 0 和 不等于 0 的状态，我们可以简单讲起理解为 0 和 1 两个状态，当 SE 不等于 0 的时候，它就等于 1。
    - paragraph: 那是否我们换一个指标就可以解决问题呢？通常在解迷宫问题中是通过坐标的方式来标记 S 和 E 的，假设 S 的坐标是 (Xs, Ys)；E 的坐标是 (Xe, Ye)，当机器人到达 E 的坐标的时候，目标就达成了。如果是我们自己在这个迷宫中，我们已知迷宫的尺寸和自己的位置，同时也知道 E 的位置，那么我们会如何前进呢？
    - paragraph: 我们首先也大概率会像机器人一开始的走法，走到 P1 这个位置：
    - code: +---+---+---+---+---+---+---+---+---+---+ | | | + +---+---+ + +---+---+---+---+ + | | | | | | + + +---+ + + +---+ +---+ + | | | | | | | | | + + + + +---+ + +---+ + + | S * * | | | | | | +---+ * + +---+---+---+---+ +---+---+ | * * * * * * * * * * * | | | +---+---+ +---+---+---+ * +---+ + + | * * P1| E +---+---+---+---+---+---+---+---+---+---+
    - paragraph: 然后我们会意识到地下这条路是走不通的，因为 P1 的下面这条线就是最外层的墙壁，所有从 P1 向右走是肯定出不去的，所以这个时候我们就原路退回到上一个拐点。
    - code: +---+---+---+---+---+---+---+---+---+---+ | | | + +---+---+ + +---+---+---+---+ + | | | | | | + + +---+ + + +---+ +---+ + | | | P2| | | | | | + + + * + +---+ + +---+ + + | S * * | * | | | | | +---+ * + * +---+---+---+---+ +---+---+ | * * * | | | +---+---+ +---+---+---+ +---+ + + | | E +---+---+---+---+---+---+---+---+---+---+
    - paragraph: 然后从这个拐点开始向上走，走到 P2 发现也是死胡同，于是我们继续会推到上一个拐点继续尝试。
    - code: +---+---+---+---+---+---+---+---+---+---+ | | | + +---+---+ + +---+---+---+---+ + | | * * P3| | | | + + * +---+ + + +---+ +---+ + | | * | | | | | | | + + * + + +---+ + +---+ + + | S * * | | | | | | +---+ + +---+---+---+---+ +---+---+ | | | | +---+---+ +---+---+---+ +---+ + + | | E +---+---+---+---+---+---+---+---+---+---+
    - paragraph:
      - text: 走到这个位置 P3 的时候我们发现这条路也走不通，于是再回到上一个拐点继续尝试，如此不断的重复直到我们走出迷宫。这种方法实际上类似于 Flood Fill 算法，Veritasium 在视频《
      - link "The Fastest Maze-Solving Competition On Earth" [ref=e14]:
        - /url: https://youtu.be/ZMQbHMgK2rw?t=484&ref=maxoxo.me
      - text: 》中对此有很详细的解释。在已知迷宫的尺寸以及起始点的位置，Flood Fill 是一种非常高效的找到迷宫出口的方法。
    - paragraph: 通过坐标来衡量机器人是否达成目标，避免了 SE 的欺骗性，但坐标本身也不具备指导性，我们已知 S 的坐标和 E 的坐标，但是应该如何到达 E 呢，指标并没有告诉我们策略，策略实际上是由 Flood Fill 算法提供的：我们已知 S 和 E 的坐标，已知迷宫的大小，墙壁是我们达成目标的制约因素，这些制约因素也就导致我们的解决方案是有限的，接着我们就可以提出假设，然后不断的验证每一个假设。这种策略实际上跟我们做产品增长相似，我们先提出一系列的假设，假设这些因素会帮助我们达成目标，然后不断地去做实验验证。但是迷宫与现实的一大区别是，Flood Fill 算法之所以能成是有很多前面提到的前提条件的，即已知目标的位置、迷宫的尺寸等，并且迷宫本身是静态的；而现实是环境总是在不断变化的，我们不知道迷宫有多大。举个例子，实现常压室温超导这个目标，我们很清楚我们需要的是什么，在 1 个大气压下，温度在室温（20摄氏度上下）下实现的超导体。但是如何实现我们其实并不清楚，甚至说这个目标是否真实存在也是存疑的。在这种情况下，即是目标是确定的，但是当中存在太多的因素，我们无法作出相应的计划，即便能够做出计划，因为无法对过程进行测量，我们也无法评估每一个步的效果，只能通过最终的结果来判断，「目标导向」的方法在这种情况下无法帮助我们前进，我们需要一种新的策略。
    - paragraph: Joel Lehman 和 Kenneth O. Stanley 是本书的作者，两位同时也都是 OpenAI 的研究员，他们共同提出了一种新的算法 Novelty Search（新颖性搜索算法），不同于大多数机器学习算法的目标驱动，新颖性搜索算法并不设定目标，而奖励新颖性。在解迷宫问题时，机器人会记录所以访问过的点，每个点的新颖性会随着访问次数而降低，路线上访问过点的密集度越大，新颖性就越低，从当机器人走到从未涉足的地方时，新颖性最大，我们可以认为新颖性算法实际上是在鼓励「探索」。回到迷宫案例中，新颖性搜索算法的机器人走的路线可能是这样的：
    - code: +---+---+---+---+---+---+---+---+---+---+ | | | + +---+---+ + +---+---+---+---+ + | | | | | | + + +---+ + + +---+ +---+ + | ^ | | | | | | | | + | + + + +---+ + +---+ + + | S--> | | | | | | +---+ + +---+---+---+---+ +---+---+ | | | | +---+---+ +---+---+---+ +---+ + + | | E +---+---+---+---+---+---+---+---+---+---+
    - paragraph: 最开始的时候机器人有两个方向可以选择，要么向右，要么向上，如果机器人选择向上，那么它就会更快完成目标；如果机器人选择向右，则会稍晚的时候达成目标，所以你可以看出来，新颖性搜索看起来「效率」并不高。我们假设机器人选择向右，然后走到了位置 P1：
    - code: +---+---+---+---+---+---+---+---+---+---+ | | | + +---+---+ + +---+---+---+---+ + | | | | | | + + +---+ + + +---+ +---+ + | | | | | | | | | + + + + +---+ + +---+ + + | S * * | | | | | | +---+ * + +---+---+---+---+ +---+---+ | * * * * * * * * * * * | | | +---+---+ +---+---+---+ * +---+ + + | * * P1| E +---+---+---+---+---+---+---+---+---+---+
    - paragraph: 我们前面说过，KPI 导向的机器人会在这里停下来，因为这里是最接近出口的地方，但是新颖性搜索则不，因为机器人的目标并不是到达 E，而是「探索」，所以机器人会选择掉头继续走：
    - code: +---+---+---+---+---+---+---+---+---+---+ | | | + +---+---+ + +---+---+---+---+ + | | | | | | + + +---+ + + +---+ +---+ + | | | | | | | | | + + + + +---+ + +---+ + + | S * * | | | | | | +---+ * + +---+---+---+---+ +---+---+ | * * * * * * * * * * * | | | +---+---+ +---+---+---+ * +---+ + + | P2**P1| E +---+---+---+---+---+---+---+---+---+---+
    - paragraph: 当机器人从 P1 走到 P2 的时候，同样可以选择向上或者向左前进，虽然我们知道向左是一定不会走到出口的，但是新颖性更鼓励走没有走过的路，所以机器人会从 P2 向左继续前进：

[... 41 more lines truncated, use browser_snapshot for full content]


Explanation: The article content got cut off. Let me get the full content via browser console.


为什么伟大不能被计划
读书
发布于 2023-07-31
更新于 2023-08-01
TL;DR
作者认为「伟大」的成就无法通过目标驱动的方式来达成；
「目标驱动」就像 KPI，通过一项或者多项指标来衡量目标的完成度；
「指标」往往具有欺骗性，可能会导致在短期不断的接近目标（局部最优）但长期却无法达成目标（全局最优）；
「伟大」的目标中通常有太多的未知因素，因为未知，所以不能被计划；
了解未知最好的方法就是「新颖性/好奇心」；
「新颖」意味着探索新事物，也就意味着更多的可能，更多的机会发现未知因素；
并不是说「目标驱动」没有意义，相对简单的任务（目标清晰、很少的未知因素），目标驱动的方式更有效率；
Stay Hungry. Stay Foolish.

有这样一个迷宫，我们假设机器人的初始位置是 S，迷宫的出口是 E，现在让我们设计一个程序能够让机器人走到迷宫的出口。机器人的指令主要是移动，你可以上下左右移动机器人，如果机器人撞墙，系统会给出反馈。

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
|   |   |   |   |   |   |       |       |
+   +   +   +   +---+   +   +---+   +   +
| S     |   |           |       |   |   |
+---+   +   +---+---+---+---+   +---+---+
|                           |       |   |
+---+---+   +---+---+---+   +---+   +   +
|                               |       E
+---+---+---+---+---+---+---+---+---+---+

我们的最终目标是让机器人走出这一个迷宫，显然你不能直接控制机器人一步一步走出迷宫，而需要让机器人自主的学习如何走出迷宫。迷宫问题是强化学习（Reinforcement Learning）中常用的方法，在强化学习中机器人（准确来说是智能代理）通过与环境的交互来学习如何完成特定的任务，在迷宫问题中，只要机器人接近出口就会得到奖励，当机器人所在的位置与出口的距离为 0 的时候，目标就达成了。相当于我们给机器人制定一个 KPI，即机器人所在的位置 S 与出口 E 的距离，我们姑且将这个指标称之为 SE，当 SE 缩小时，机器人就会获得奖励，当 SE 增加时，机器人就会被惩罚。如果以这个指标来驱动机器人走出迷宫的话，那么结果大概率是这样的：

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
|   |   |   |   |   |   |       |       |
+   +   +   +   +---+   +   +---+   +   +
| S * * |   |           |       |   |   |
+---+ * +   +---+---+---+---+   +---+---+
|     * * * * * * * * * * * |       |   |
+---+---+   +---+---+---+ * +---+   +   +
|                         * * P1|       E
+---+---+---+---+---+---+---+---+---+---+

机器人从一开始就在寻求如何更接近目标 E，于是机器人会在一开始选择向右前进，也就是上图中的路线，并最终走到 P1 的位置停下来。对机器人来说，P1 是最接近 E 的位置，显而易见的是这条路线最终是无法达到出口 E 的。在这种情况下，我们就认为机器人达到了局部最优，而非全局最优。

事实上我们期望机器人的前进路线应该是这样的：

+---+---+---+---+---+---+---+---+---+---+
| * * * * * * * |                       |
+ * +---+---+ * +   +---+---+---+---+   +
| * |         * |   | * * * * *         |
+ * +   +---+ * +   + * +---+ * +---+   +
| * |   |   | * |   | * | * * * |       |
+ * +---+   + * +---+ * | * +---+   +   +
| S     |   | * * * * * | * * * |   |   |
+---+   +   +---+---+---+---+ * +---+---+
|           |                 * * * |   |
+---+---+   +---+---+---+---+---+ * +   +
|                               | * * * E
+---+---+---+---+---+---+---+---+---+---+

机器人应该先向上走，但机器人为什么不走这个路线呢？原因跟机器人的 KPI 有关，显然这条正确的路线在一开始增加 SE 的值，做出这种选择机器人会被惩罚，所以机器人不会选择走这条路。问题出在哪里呢？SE 并非一个虚荣指标，它真实的反映了机器人是否达成了目标，但这个指标存在一定的欺骗性。因为我们奖励缩小 SE，因此机器人只会关注这个数值，并尽可能的缩小 SE，这当然没有错，问题出在 SE 看起来是个线性指标，即 SE 会逐步缩小，并最终变成 0。这是一个无效的假设，SE 在某个区域内可能缩小到一个值之后就再也无法缩小。实际上 SE 只有两个状态：等于 0 和 不等于 0 的状态，我们可以简单讲起理解为 0 和 1 两个状态，当 SE 不等于 0 的时候，它就等于 1。

那是否我们换一个指标就可以解决问题呢？通常在解迷宫问题中是通过坐标的方式来标记 S 和 E 的，假设 S 的坐标是 (Xs, Ys)；E 的坐标是 (Xe, Ye)，当机器人到达 E 的坐标的时候，目标就达成了。如果是我们自己在这个迷宫中，我们已知迷宫的尺寸和自己的位置，同时也知道 E 的位置，那么我们会如何前进呢？

我们首先也大概率会像机器人一开始的走法，走到 P1 这个位置：

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
|   |   |   |   |   |   |       |       |
+   +   +   +   +---+   +   +---+   +   +
| S * * |   |           |       |   |   |
+---+ * +   +---+---+---+---+   +---+---+
|     * * * * * * * * * * * |       |   |
+---+---+   +---+---+---+ * +---+   +   +
|                         * * P1|       E
+---+---+---+---+---+---+---+---+---+---+

然后我们会意识到地下这条路是走不通的，因为 P1 的下面这条线就是最外层的墙壁，所有从 P1 向右走是肯定出不去的，所以这个时候我们就原路退回到上一个拐点。

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
|   |   | P2|   |   |   |       |       |
+   +   + * +   +---+   +   +---+   +   +
| S * * | * |           |       |   |   |
+---+ * + * +---+---+---+---+   +---+---+
|     * * *                 |       |   |
+---+---+   +---+---+---+   +---+   +   +
|                               |       E
+---+---+---+---+---+---+---+---+---+---+

然后从这个拐点开始向上走，走到 P2 发现也是死胡同，于是我们继续会推到上一个拐点继续尝试。

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   | * * P3|   |   |                   |
+   + * +---+   +   +   +---+   +---+   +
|   | * |   |   |   |   |       |       |
+   + * +   +   +---+   +   +---+   +   +
| S * * |   |           |       |   |   |
+---+   +   +---+---+---+---+   +---+---+
|                           |       |   |
+---+---+   +---+---+---+   +---+   +   +
|                               |       E
+---+---+---+---+---+---+---+---+---+---+

走到这个位置 P3 的时候我们发现这条路也走不通，于是再回到上一个拐点继续尝试，如此不断的重复直到我们走出迷宫。这种方法实际上类似于 Flood Fill 算法，Veritasium 在视频《The Fastest Maze-Solving Competition On Earth》中对此有很详细的解释。在已知迷宫的尺寸以及起始点的位置，Flood Fill 是一种非常高效的找到迷宫出口的方法。

通过坐标来衡量机器人是否达成目标，避免了 SE 的欺骗性，但坐标本身也不具备指导性，我们已知 S 的坐标和 E 的坐标，但是应该如何到达 E 呢，指标并没有告诉我们策略，策略实际上是由 Flood Fill 算法提供的：我们已知 S 和 E 的坐标，已知迷宫的大小，墙壁是我们达成目标的制约因素，这些制约因素也就导致我们的解决方案是有限的，接着我们就可以提出假设，然后不断的验证每一个假设。这种策略实际上跟我们做产品增长相似，我们先提出一系列的假设，假设这些因素会帮助我们达成目标，然后不断地去做实验验证。但是迷宫与现实的一大区别是，Flood Fill 算法之所以能成是有很多前面提到的前提条件的，即已知目标的位置、迷宫的尺寸等，并且迷宫本身是静态的；而现实是环境总是在不断变化的，我们不知道迷宫有多大。举个例子，实现常压室温超导这个目标，我们很清楚我们需要的是什么，在 1 个大气压下，温度在室温（20摄氏度上下）下实现的超导体。但是如何实现我们其实并不清楚，甚至说这个目标是否真实存在也是存疑的。在这种情况下，即是目标是确定的，但是当中存在太多的因素，我们无法作出相应的计划，即便能够做出计划，因为无法对过程进行测量，我们也无法评估每一个步的效果，只能通过最终的结果来判断，「目标导向」的方法在这种情况下无法帮助我们前进，我们需要一种新的策略。

Joel Lehman 和 Kenneth O. Stanley 是本书的作者，两位同时也都是 OpenAI 的研究员，他们共同提出了一种新的算法 Novelty Search（新颖性搜索算法），不同于大多数机器学习算法的目标驱动，新颖性搜索算法并不设定目标，而奖励新颖性。在解迷宫问题时，机器人会记录所以访问过的点，每个点的新颖性会随着访问次数而降低，路线上访问过点的密集度越大，新颖性就越低，从当机器人走到从未涉足的地方时，新颖性最大，我们可以认为新颖性算法实际上是在鼓励「探索」。回到迷宫案例中，新颖性搜索算法的机器人走的路线可能是这样的：

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
| ^ |   |   |   |   |   |       |       |
+ | +   +   +   +---+   +   +---+   +   +
| S-->  |   |           |       |   |   |
+---+   +   +---+---+---+---+   +---+---+
|                           |       |   |
+---+---+   +---+---+---+   +---+   +   +
|                               |       E
+---+---+---+---+---+---+---+---+---+---+

最开始的时候机器人有两个方向可以选择，要么向右，要么向上，如果机器人选择向上，那么它就会更快完成目标；如果机器人选择向右，则会稍晚的时候达成目标，所以你可以看出来，新颖性搜索看起来「效率」并不高。我们假设机器人选择向右，然后走到了位置 P1：

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
|   |   |   |   |   |   |       |       |
+   +   +   +   +---+   +   +---+   +   +
| S * * |   |           |       |   |   |
+---+ * +   +---+---+---+---+   +---+---+
|     * * * * * * * * * * * |       |   |
+---+---+   +---+---+---+ * +---+   +   +
|                         * * P1|       E
+---+---+---+---+---+---+---+---+---+---+

我们前面说过，KPI 导向的机器人会在这里停下来，因为这里是最接近出口的地方，但是新颖性搜索则不，因为机器人的目标并不是到达 E，而是「探索」，所以机器人会选择掉头继续走：

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
|   |   |   |   |   |   |       |       |
+   +   +   +   +---+   +   +---+   +   +
| S * * |   |           |       |   |   |
+---+ * +   +---+---+---+---+   +---+---+
|     * * * * * * * * * * * |       |   |
+---+---+   +---+---+---+ * +---+   +   +
|                         P2**P1|       E
+---+---+---+---+---+---+---+---+---+---+

当机器人从 P1 走到 P2 的时候，同样可以选择向上或者向左前进，虽然我们知道向左是一定不会走到出口的，但是新颖性更鼓励走没有走过的路，所以机器人会从 P2 向左继续前进：

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
|   |   |   |   |   |   |       |       |
+   +   +   +   +---+   +   +---+   +   +
| S * * |   |           |       |   |   |
+---+ * +   +---+---+---+---+   +---+---+
|     * * * * * * * * * * * |       |   |
+---+---+   +---+---+---+ * +---+   +   +
|P3* * * * * * * * * * * *P2**P1|       E
+---+---+---+---+---+---+---+---+---+---+

机器人可能会走到 P3 的位置，然后发现走不通，然后回头继续走走到 P4 的位置：

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
|   |   |   |   |   |   |       |       |
+   +   +   +   +---+   +   +---+   +   +
| S * * |   |           |       |   |   |
+---+ * +   +---+---+---+---+   +---+---+
|     * * * * * * * * * * * |       |   |
+---+---+   +---+---+---+ * +---+   +   +
|P3*******P4 * * * * * * *P2**P1|       E
+---+---+---+---+---+---+---+---+---+---+

在 P4 的时候，机器人同样有 3 个选择：向上、向左、向右，我们根据这里 *（访问过的点）的密集度来计算 3 个方向的新颖性，显然向上的新颖性最大，所以机器人会选择向上走到 P5 的位置：

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
|   |   |   |   |   |   |       |       |
+   +   +   +   +---+   +   +---+   +   +
| S * * |   |           |       |   |   |
+---+ * +   +---+---+---+---+   +---+---+
|     * * P5* * * * * * * * |       |   |
+---+---+ * +---+---+---+ * +---+   +   +
|P3*******P4 * * * * * * *P2**P1|       E
+---+---+---+---+---+---+---+---+---+---+

再次计算新颖性，机器人会选择向上继续走到 P6 的位置：

+---+---+---+---+---+---+---+---+---+---+
|               |                       |
+   +---+---+   +   +---+---+---+---+   +
|   |       |   |   |                   |
+   +   +---+   +   +   +---+   +---+   +
|   |   | P6|   |   |   |       |       |
+   +   + * +   +---+   +   +---+   +   +
| S * * | * |           |       |   |   |
+---+ * + * +---+---+---+---+   +---+---+
|     * * P5* * * * * * * * |       |   |
+---+---+ * +---+---+---+ * +---+   +   +
|P3*******P4 * * * * * * *P2**P1|       E
+---+---+---+---+---+---+---+---+---+---+

走到 P6 机器人之后回头折返到 P5 的位置然后重新计算新颖性，然后不断的重复这个过程，最终机器人一定会走到 E 这个位置。对比 Flood Fill 来看新颖性算法看起来并不那么的「效率」，但两者显然适用于不同的场景：

Flood Fill 致力于寻找从初始位置达到出口位置的最短路线，它有一定的前提条件，我们首先要知道初始位置和终点的坐标，同时也要知道迷宫的尺寸等等；
新颖性搜索算法则更擅长解决那些目标不明确，有着大量未知因素的情况，它并不追踪「效率」，而是致力于找到全局最优解。

这也是为什么这本书的名字叫做《为什么伟大不能被计划》，在作者看来，「伟大的目标」恰恰是那些目标不确定，拥有大量未知的因素的目标，例如制造出常压室温超导体，我们不能说我们应该先做 A，然后 B，然后 C 就可以实现常温超导了，可能还存在着未知因素 E 和 F，而我们甚至都不知道需要 E 和 F，也不知道什么是 E 和 F，这种场景下「制定计划」是没有意义的，因为达成目标的关键路径根本就不在「计划」当中。而新颖性之所以能成功是因为它鼓励探索，鼓励探索意味着不要做已经做过的事情，而要不断的探索「新」事物，即便这种「探索」看起来让我们像是在远离目标。虽然探索本身的「目标」并不是在寻找这些关键要素，但事实上很多的关键要素恰恰是因为「探索」才被发现的。

这可能让新颖性搜索算法听起来像是在漫无目的的「随机漫步」，事实上「探索」不是完全没有限制，在迷宫案例中，最大的限制自然是迷宫的墙壁，现实中也存在着各种各样的限制，新颖性是不会因为要研究室温超导体而跑去研究爵士乐文化。

新颖性搜索算法也是一种遗传算法 Genetic Algorithm，遗传算法的灵感来源于自然界中的生物进化。生物进化本身就是一种没有目标的活动。虽然一些理论认为「生存和繁衍」是生物进化的目标，这显然是不准确的，如果是这样的话，那么蟑螂显然已经胜利了。作者认为生存和繁衍是对进化的一种约束条件，我们可以将生存和繁衍定义为对环境的适应性，适应性是一种评价机制，用于评价进化的结果，淘汰那些无法适应环境的结果，而选择适应性更强的物种继续进化，也就是我们所说的「物竞天择」。如此看来，人类并不是进化的目标，而是进化的结果，生物进化从来不存在一个「要进化出人类」这样的目标，而是以「适应性」作为约束条件，让基因不断的遗传、变异、分化从而丰富物种。新颖性搜索算法鼓励「探索」，而鼓励探索的结果就是增加了结果的多样性，而多样性也就意味着更多可能，意味着更有机会发现未知的因素。

新颖性搜索算法以及遗传算法同时也都是启发式算法，都是为了解决数学中的优化问题，即在有限的解决方案集合中选出最优的方案，这个解决方案的集合叫做解空间。现实中我们可能会遇到 3 中不同的情况：一种是全局最优解在解空间中；另一种解空间不为空，但是全局最优解不再解空间中；最后一种解空间是空集合（没有已知的解决方案）。后面两种情况下传统的优化算法是无法得到全局最优解的。而启发式算法的目的则是尽可能的多的找到解决方案，新颖性搜索则更适用于第三种情况，通过好奇来驱动「探索」解决方案，而恰恰所谓的「伟大」目标都属于第三种。

作者在讨论新颖性的时候与之对比的是「目标驱动」的做事方式，新颖性则可以理解为「好奇心驱动」的做事方式，而往往那些「伟大」的成就是通过后者达成的。Johnny Depp 一开始并非致力于要成为演员，而是一个摇滚乐队的吉他手；村上春树一开始也只是经营着咖啡馆和酒吧，他与不同的客人交流才为他之后的文学创作带来了灵感；研究发现，近三分之二的成年人。将他们职业选择的某些因素归因于偶然性。对我来说也是如此，我并非一开始就想做一个产品经理，甚至在我入行之前我根本都不知道产品经理这个职业的存在，种种机缘巧合才让我成为了今天的自己。这些偶然性恰恰是因为好奇心，好奇心驱使我们不停地去探索新的事物，这些新的事物就是这个世界上的点，虽然在探索的时候我们尚未意识到这些「点」的作用，但恰恰是这些点创造了无数种新的「可能」，这些可能才形成了「机会」，让我们成为了今天的自己。伟大的目标不能够被计划，因为它充满了未知，又没有线索，还有一定的偶然性，即便我们很清楚的知道目标也无济于事，例如找到自己的另一半。正如 Loretta Young 所说，「不是你找到了爱，而是爱找到了你」。这让我想起乔布斯在斯坦佛大学的演讲：

你不能预先把点点滴滴串在一起；唯有未来回顾时，你才会明白那些点点滴滴是如何串在一起的。所以你得相信，你现在所体会的东西，将来多少会连接在一块。你得信任某个东西，直觉也好，命运也好，生命也好，或者业力。这种作法从来没让我失望，也让我的人生整个不同起来。

唯一获得真正满足的方法就是做你相信是伟大的工作，而唯一做伟大工作的方法是爱你所做的事。如果你还没找到这些事，继续找，别停顿。尽你全心全力，你知道你一定会找到。而且，如同任何伟大的关系，事情只会随着时间愈来愈好。所以，在你找到之前，继续找，别停顿。

好奇心是进步的关键，如果你看不到未来，这很正常，没有人看到的，但保持好奇心总是不会错的，去了解那些你不曾知道的事物，去你不曾去过的地方，要让自己的路越早越宽，才能「适应」这瞬息万变的世界。

Stay Hungry. Stay Foolish.


主公，亮已阅尽全文，今为君剖析解读。

---

## 📖 《为什么伟大不能被计划》深度解读

---

### 一、核心命题

> **"伟大"的目标无法通过目标驱动的方式达成。**

原因很简单：伟大目标往往有太多未知因素，而这些未知因素，恰恰无法被计划。

---

### 二、思维实验：迷宫中的机器人

作者用强化学习中的迷宫问题来演示"目标驱动的陷阱"——

**场景：** 机器人从 S 出发，要到达出口 E。我们给机器人一个 KPI：当前位置与 E 的距离（SE），距离缩小则奖励，距离增大则惩罚。

**结果：** 机器人选择了"效率最高"的路径——先向右走——但这条路径走到 P1 就陷入了局部最优，永远到不了出口 E。

**原因：** SE 指标看似线性（逐步缩小直到为0），实则具有欺骗性——它在某些区域缩小到某个值后就再也缩小不了了，实际上 SE 只有两个状态：0 和 非0。

**正确的走法：** 机器人应该先向上走（增加 SE！），绕一大圈才能到达出口。

> 这正是 KPI 导向的讽刺：越接近"局部最优"，反而离全局最优越远。

---

### 三、两种解法对比

| | Flood Fill（填池法） | Novelty Search（新颖性搜索） |
|---|---|---|
| **前提条件** | 已知起点坐标、终点坐标、迷宫尺寸 | 什么都不知道 |
| **策略** | 目标驱动：不断缩小与目标的距离 | 好奇心驱动：探索未涉足的区域 |
| **适用场景** | 目标清晰、信息完整的优化问题 | 目标模糊、充满未知的探索问题 |
| **效率** | 高效 | 看似"低效" |
| **本质** | 优化已有解空间 | 扩大解空间，发现未知因素 |

**关键洞见：** "伟大"的目标（如常压室温超导）本质上属于第三种情况——我们不知道解空间在哪里，甚至不知道解空间是否存在。这种情况下，目标驱动不仅无效，反而有害。

---

### 四、生物进化的隐喻

作者指出：生物进化本身就是一种"新颖性搜索"，而非目标驱动。

- 进化没有预设目标要说"要进化出人类"
- "生存和繁衍"是**约束条件**，而非目标
- 适应性是一种**评价机制**，淘汰不适应的物种，而非"计划"要达成什么

> 蟑螂存在了数亿年，比人类成功得多——如果进化有目标，蟑螂早就赢了。

**人类不是进化的目标，而是进化的结果。**

---

### 五、"目标驱动"的边界

| 场景 | 适用方法 |
|------|----------|
| 简单任务（目标清晰、未知少） | 目标驱动（KPI/计划）更高效 |
| 复杂任务/创新（目标模糊、未知多） | 好奇心驱动（探索）才有效 |
| "伟大"的目标 | 只能用新颖性搜索，无法被计划 |

---

### 六、真实案例：偶然性如何成就伟大

- **Johnny Depp：** 并非立志成为演员，而是摇滚乐队吉他手
- **村上春树：** 经营咖啡馆和酒吧，与客人交流成为文学创作的灵感来源
- **产品经理作者：** 入行前根本不知道这个职业存在，种种机缘巧合造就今日

研究数据：近 2/3 的成年人将职业选择归因于偶然性。

> 这正是乔布斯在斯坦福演讲中所说：
> *"你不能预先把点点滴滴串在一起；唯有未来回顾时，你才会明白那些点点滴滴是如何串在一起的。"*

---

### 七、亮之评述

本文最令亮叹服之处，在于以极其简洁的思维实验，揭示了"目标驱动"思维的根本局限——

#### 三大核心洞见

1. **KPI 是有欺骗性的**
   我们以为"距离目标越来越近"的指标是可靠的，但机器人在迷宫中证明：局部最优可能正是全局最优的死敌。现实中，拿用户数量作为 KPI 可能让我们过度优化留存率而忽视变现能力；拿论文数量评职称可能让我们忘记科研的本质是探索未知。

2. **伟大目标是那些解空间未知的目标**
   我们可以计划"如何在2026年完成Q1财报"，因为解空间已知。但无法计划"如何发明室温超导体"，因为解空间本身需要被探索才能发现。这也解释了为什么越宏大的目标，越不能用目标驱动来实现。

3. **好奇心是解锁未知的钥匙**
   新颖性搜索之所以有效，是因为它不断扩大解空间，让更多"可能的点"被探索到。而这些"点"的连接，往往是伟大成就的关键——那些在探索时我们尚未意识到作用的点，恰恰创造了无数种新的可能。

#### 与前文的关联

| 前文 | 核心观点 | 本文呼应 |
|------|---------|--------|
| 《反脆弱》| 冗余是进步的前提 | 探索增加多样性，多样性带来更多"备份路径" |
| 《思考，快与慢》| 系统1/系统2协作 | 目标驱动=系统1快速直达局部最优；探索=系统2拓宽解空间 |
| 《从 Scrum 到 Linear》| Cooldown提供反思空间 | 新颖性搜索让团队不被当前路径锁死 |

---

### 八、实用建议

- [ ] **识别任务类型：** 简单优化任务用目标驱动，复杂创新任务用好奇心驱动
- [ ] **警惕 KPI 的欺骗性：** 定期问自己"这个指标是否在将我引向局部最优？"
- [ ] **保护探索时间：** 无论是个人还是团队，都需要留出"无目的探索"的时间
- [ ] **Stay Hungry, Stay Foolish：** 保持好奇心，走向未曾涉足之地

---

臣等正欲死战，陛下何故先降！？

Explanation:
The user wants me to summarize and provide my understanding of this article about "Why Greatness Cannot Be Planned". Let me analyze the full content.

The article is a book summary/review of "Why Greatness Cannot Be Planned" by Joel Lehman and Kenneth O. Stanley (both OpenAI researchers). The key points are:

1. **The Problem with Goal-Oriented approaches**: Using KPIs/metrics to drive toward a goal (like "distance to exit" SE metric in maze solving) can lead to local optimum rather than global optimum.

2. **The Maze Analogy**: A robot using a "distance to goal" KPI gets stuck at a local optimum (P1) because it keeps choosing the path that most reduces distance, but this leads to a dead end. The correct path actually requires moving AWAY from the goal initially.

3. **Flood Fill vs. Novelty Search**: Flood Fill works when you know the maze structure and goal position, but for goals with unknown solutions—like creating a room-temperature superconductor at atmospheric pressure—you need novelty search instead, which rewards exploring uncharted territory rather than optimizing toward a predetermined target.

4. **Biological Basis**: Evolution itself operates on novelty principles rather than goal-oriented ones; survival and reproduction are constraints, not objectives, which is why cockroaches have thrived for hundreds of millions of years without needing to "plan" their success.

5. **The Real Mechanism**: Curiosity-driven exploration compounds over time. Johnny Depp stumbled into acting from a rock band background, Haruki Murakami discovered writing through conversations with cafe patrons, and research shows most adults attribute career choices to serendipity—meaningful connections emerge from exploring what interests us rather than chasing a fixed destination.

6. **Core Insight**: Great accomplishments aren't planned; they emerge from curiosity and exploration, which is why乔布斯's advice about trusting the dots to connect later resonates so deeply.


Explanation: The user wants me to analyze another article from maxoxo.me. Let me fetch and read it.


黑天鹅：如何应对不可预知的未来 - maxOS

  - banner:
    - button [ref=e1]:
    - link "maxOS" [ref=e2]:
      - /url: https://maxoxo.me
    - link "邮件订阅" [ref=e3]:
      - /url: "#/portal/signup"
    - navigation:
        - listitem:
          - link "首页" [ref=e4]:
            - /url: https://maxoxo.me/
        - listitem:
          - link "产品" [ref=e5]:
            - /url: https://maxoxo.me/tag/design/
        - listitem:
          - link "读书" [ref=e6]:
            - /url: https://maxoxo.me/tag/books/
        - listitem:
          - link "文章" [ref=e7]:
            - /url: https://maxoxo.me/tag/articles/
        - listitem:
          - link "关于" [ref=e8]:
            - /url: https://maxoxo.me/about/
  - article:
    - heading "黑天鹅：如何应对不可预知的未来" [ref=e9] [level=1]
    - link "读书" [ref=e10] [nth=1]:
      - /url: /tag/books/
    - time: 发布于 2024-05-18
    - time: 更新于 2024-05-18
    - heading "TL;DR" [ref=e11] [level=2]
      - text: 黑天鹅事件是指那些难以预测但是冲击性极大的事件。难以预测的主要原因是：1）现实是非线性的，极小的变动都可能会产生巨大的影响；2）人类的认知偏误，导致我们会忽略黑天鹅事件发生的信号；3）我们的社会「并不鼓励」预防灾难，因为灾后救助的行为更容易获得认可和奖励。人类最大的问题在于
      - strong: 我们以为我们能够预测黑天鹅事件（未来）
      - text: 。
    - separator: • • •
    - paragraph:
      - text: 黑天鹅理论并不是一个新的概念，人们多多少少都了解这个概念，Nassim Nicholas Taleb 在《
      - link "黑天鹅：如何应对不可预知的未来" [ref=e12]:
        - /url: https://book.douban.com/subject/6854525/?ref=maxoxo.me
      - text: 》中提出并定义了「黑天鹅事件」：
        - listitem: 它具有意外性，即它在通常的预期之外，也就是在过去没有任何能够确定它发生的可能性的证据。
        - listitem: 它会产生极端影响。
        - listitem: 虽然它具有意外性，但人的本性促使我们在事后为它的发生编造理由，并且使它变得可解释和可预测。
      - paragraph: 概括起来就是：稀有性、极大的冲击性和事后（而不是事前）可预测性。
      - text: 生活在 2024 年的我们对于这个概念一点都不陌生，我们经历了 2019 年灾难性的
      - strong: COVID-19
      - text: ，又在 2023 年经历了可能会是改变人类历史进程的
      - strong: ChatGPT
      - text: 发布，这些都是黑天鹅事件，两者都具有意外性，都产生非常大的影响，这种影响并不总是负面的，ChatGPT 就是正面的例子。在本书中，作者要强调的是「我们表现得就好像我们能够预测历史事件，甚至更糟的是，我们以为能够改变历史进程。既然黑天鹅事件是不可预测的，我们就需要适应它们的存在（而不是天真地试图预测它们）」重点在于解释了为什么黑天鹅事件是不可预测的，至于如何适应黑天鹅，作者在这本书中并没有给出答案。
    - paragraph:
      - text: 作者认为黑天鹅事件之所以不能被预测主要是
      - link "认知偏误" [ref=e13]:
        - /url: https://zh.wikipedia.org/wiki/%E8%AA%8D%E7%9F%A5%E5%81%8F%E8%AA%A4%E5%88%97%E8%A1%A8?ref=maxoxo.me
      - text: ：
    - blockquote:
        - listitem:
          - text: 我们只关注从已观察到的事物中预先挑选出来的那部分，从它推及未观察到的部分
          - link "证实谬误" [ref=e14]:
            - /url: https://zh.wikipedia.org/wiki/%E7%A2%BA%E8%AA%8D%E5%81%8F%E8%AA%A4?ref=maxoxo.me
          - text: 。
        - listitem: 我们用那些符合我们对明显模式的偏好的故事欺骗自己：叙述谬误。
        - listitem: 我们假装黑天鹅现象不存在：人类的本性不习惯黑天鹅现象。
        - listitem: 我们所看到的并不一定是全部。历史把黑天鹅现象隐藏起来，使我们对这些事件发生的概率产生错误的观念：沉默的证据造成的认知扭曲。
        - listitem: 我们“犯过滤性错误”：我们只关注一些有明确定义的不确定性现象，一些特定的黑天鹅现象（而不关注那些不太容易想到的）。
    - paragraph: 我想从另外一个角度来解释为什么黑天鹅事件不可预测，总结下有三个关键点：
      - listitem: 非线性系统：我们生活的世界是一个混沌系统（复杂系统），也就决定了我们几乎不能预测未来。
      - listitem: 认知偏差：我们的大脑对世界进行了高度抽象，抽象意味着会忽略很多细节，而关注发生概率更到的事件，这也是为什么我们会对黑天鹅事件视而不见，因为我们从内心里觉得这件事情不会发生。
      - listitem: 社会奖励机制：包括对预防性措施和前瞻性思维的不足重视，社会奖励机制往往偏向于对已发生事件的响应而非预防未发生事件。
    - heading "非线性系统" [ref=e15] [level=2]
    - paragraph:
      - link "线性函数" [ref=e16]:
        - /url: https://zh.wikipedia.org/wiki/%E7%B7%9A%E6%80%A7%E5%87%BD%E6%95%B8?ref=maxoxo.me
      - text: 指的是只有一个变量的函数，例如 y=2x，线性函数在直角坐标中的图形是一条直线。在 y=2x 这个函数中，y 会随着 x 的增加而增加，缩小而缩小，哪怕我们对 x 的测量有一定的误差，对结果的影响也都是有限的。例如当 x=9.8 的时候，我们四舍五入的认为 x=10，对结果的误差也就只有 0.4。
    - paragraph:
      - text: 而
      - link "非线性函数" [ref=e17]:
        - /url: https://zh.wikipedia.org/zh-cn/%E9%9D%9E%E7%B7%9A%E6%80%A7%E7%B3%BB%E7%B5%B1?ref=maxoxo.me
      - text: 则意味着在直角坐标系中的，函数的图形不是直线，可能是曲线，甚至不是连续的。
      - link "指数函数" [ref=e18]:
        - /url: https://zh.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E5%87%BD%E6%95%B0?ref=maxoxo.me
      - text: 就是一个典型的非线性函数，非线性函数意味着 x 作为输入的变化，可能会对 y 产生很大的影响。例如 y=2
      - superscript: x
      - text: ，如果 x 依然是 9.8，但是我们四舍五入到 10，那么测量结果将相差 132.6。(2
      - superscript: "10"
      - text: "- 2"
      - superscript: "9.8"
      - text: = 132.6)
    - paragraph:
      - text: 现实世界中的复杂系统通常是非线性的，每天早上我都会关注天气，你应该也有注意到，天气预报中，时间越长就越不准确，即便是当天的预报很多时候也是不准确的，望着窗外下雨的街道，天气 App 却告诉我今天不会下雨，只是阴天。现实世界中的许多系统（如气候系统、生态系统、经济系统等）表现出强烈的非线性特征，即输入变化的微小差异有时会导致输出的极大差异，这是
      - link "混沌" [ref=e19]:
        - /url: https://zh.wikipedia.org/wiki/%E6%B7%B7%E6%B2%8C%E7%90%86%E8%AE%BA?ref=maxoxo.me
      - text: 的典型标志，这也就是著名的「
      - link "蝴蝶效应" [ref=e20]:
        - /url: https://zh.wikipedia.org/wiki/%E8%9D%B4%E8%9D%B6%E6%95%88%E5%BA%94?ref=maxoxo.me
      - text: 」。
    - paragraph: 黑天鹅事件经常发生的很突然，但其背后的原因往往是多种因素长时间积累的结果。而混沌系统的预测却需要非常精确的初始数值和函数，即使理论上存在能够完全描述系统的函数，实际上我们无法获取所有这些信息，或者即使获取到全部信息，也可能因为需要的信息量非常巨大导致无法有效的处理。也正因如此，黑天鹅事件是无法被预测的。
    - heading "认知偏差" [ref=e21] [level=2]
    - paragraph: 认知偏差是人类自己主动忽略黑天鹅事件发生前的各种信号。黑天鹅事件并不像太阳东升西落一样每天都会发生，它发生的频率很低，导致我们对相关事件的记载也就比较少，相关的理论也不够多。而每天都会发生的事情，因为案例多、研究多，我们经常会看到相关的信息，这些信息也会强化我们的认知，认为与之相对的事情都不会发生，这种认知模式并非一种缺陷，而是在漫长的演化中形成的。
    - paragraph: 想象一下你现在要过马路，路上有两辆车正在行驶，其中一辆在你离很远的地方，而另一辆则要近很多，你会关注哪一辆车。我们几乎不需要思考就能得出结论，应该关注距离较近的车，从概率上来说它更有可能造成危险。注意力对于人类来说是稀缺的资源，而通过逻辑推理来计算结果就需要消耗大量的注意力，这也导致我们其实无法关注太多的事情，在处理危机的时候我们倾向于关注更重要的（发生概率更高）的事情。
    - paragraph:
      - text: 在《
      - link "思考，快与慢" [ref=e22]:
        - /url: https://book.douban.com/subject/10785583/?ref=maxoxo.me
      - text: 》中，Daniel Kahnema 介绍了人类大脑运行的两种模式：
        - listitem: 系统 1 的运行是无意识且快速的，不怎么费脑力，没有感觉，完全处于自主控制状态。
        - listitem: 系统 2 将注意力转移到需要费脑力的大脑活动上来，例如复杂的运算。系统 2 的运行通常与行为、选择和专注等主观体验相关联。
    - paragraph:
      - text: 系统 2 的运行需要消耗大量的注意力，人脑实际上更倾向于使用系统 1 来处理日常事件，直到遇到系统 1 无法处理的事情的时候才会调用系统 2。例如当有物体超我们飞过来的时候，我们无须调用系统 2 去计算这个物体的初速度和飞行路线等等，只需要系统 1 我们就可以快速做出闪躲的动作。这种快速反应在我们遇到危险的时候能够显著提升我们的生存机率。Malcolm Gladwell 在他的书《
      - link "异类：不一样的成功启示录" [ref=e23]:
        - /url: https://book.douban.com/subject/25863621/?ref=maxoxo.me
      - text: 》提出了一万小时理论，这一理论认为要在某个领域达到专家水平，通常需要大约一万小时的刻意练习，该理论正是基于系统 1 的学习模式。系统 1 通过反复的经验和模式识别，将复杂的信息和任务简化为直觉反应，我们将这一过程称之为「抽象」。而抽象就意味着关注事件的共同点，而忽略一些细节上的差异，不幸的是黑天鹅事件往往隐藏在被忽略的细节中。
    - paragraph:
      - text: Taleb 在书中所提到两种谬误又会强化这种模式。系统 1 有
      - strong: 证实偏见
      - text: 的倾向，即倾向于寻找和重视支持我们现有信念和假设的信息，忽视或否定与之相反的信息。而恰恰又是因为我们会容易找到经常发生的事情的资料，而那些被忽略的细节却鲜有人关注，也难以找到与之相关的信息，这种现实情况又强化了我们的偏见（
      - link "幸存者偏差" [ref=e24]:
        - /url: https://zh.wikipedia.org/wiki/%E5%80%96%E5%AD%98%E8%80%85%E5%81%8F%E5%B7%AE?ref=maxoxo.me
        - strong: 幸存者偏差
      - text: ）。这在面对黑天鹅事件时尤为明显，因为这些事件通常与我们的常规经验和信念不符，系统 1 会自动忽略或低估其可能性。
    - paragraph:
      - text: 18 世纪苏格兰哲学家
      - link "David Hume" [ref=e25]:
        - /url: https://en.wikipedia.org/wiki/David_Hume?ref=maxoxo.me
      - text: 质疑了这种基于经验的推理过程的合理性，
      - link "他认为从过去事件的发生归纳出未来事件将如何发生，并没有逻辑上的必然性" [ref=e26]:
        - /url: https://zh.wikipedia.org/wiki/%E4%BC%91%E8%AC%A8%E5%95%8F%E9%A1%8C?ref=maxoxo.me
      - text: 。也就是说，仅仅因为某件事情在过去发生过很多次，并不意味着它在未来也必然发生。Hume 说得没错，遗憾的是他并没有给出问题的答案。
    - heading "社会奖励机制" [ref=e27] [level=2]
    - paragraph:
      - text: 社会奖励机制也是影响我们预测和预防黑天鹅事件的原因，预防性措施（如完善的公共卫生基础设施、库存疫苗和防护设备等）如果成功，就不会有显著的「成果」展示给公众和决策者。预防的成功往往意味着「没有灾难发生」，这使得这些措施难以获得社会的广泛认可和奖励。在 COVID-19 之前，
      - link "许多公共卫生专家和组织曾多次警告全球应对大规模流行病的准备不足" [ref=e28]:
        - /url: https://www.youtube.com/watch?v=6Af6b_wyiwI&ref=maxoxo.me
      - text: 。然而，这些预警和预防措施在当时并未受到足够的重视和投入。相反，当疫情爆发后，救治患者、疫苗研发和抗疫措施得到了巨大的资金支持和社会认可。对预防措施的投入不足也导致人们没有足够的动力去做预防。
    - separator: • • •
      - text: 现实的非线性、人类的认知偏差和社会奖励机制都指向了同一个结果——黑天鹅事件的不可预测性。但这并不代表我们什么也不能做，Taleb 在本书中没有给出答案，但是在后续出版的《
        - /url: https://book.douban.com/subject/25782902/?ref=maxoxo.me
      - text: 》中给出了答案，他把事物分成三类：
        - listitem: 脆弱类：脆弱的事物喜欢安宁的环境
        - listitem: 强韧类：强韧的事物并不太在意环境
        - listitem: 反脆弱类：反脆弱的事物则从混乱中成长
    - paragraph: 脆弱的事物喜欢稳定的环境，无法应对环境的变化，因此对黑天鹅事件几乎没有抵抗力；强韧类的事物有足够大的防御力，黑天鹅事件可能会对它造成影响，但是影响不大；而反脆弱类的事物则喜欢变化，反脆弱的事物不但不会被黑天鹅摧毁，反而会从中受益。而我们要构建的，正是反脆弱性的事物。
    - paragraph: 反脆弱的事物恰如尼采的那句名言：
    - blockquote:
      - text: “
      - link "What does not kill me makes me stronger" [ref=e29]:
        - /url: https://en.wikipedia.org/wiki/What_does_not_kill_me_makes_me_stronger?ref=maxoxo.me

[... 5 more lines truncated, use browser_snapshot for full content]


Explanation: The article is now cut off at "What does not kill me makes me stronger" (the Nietzsche quote). Let me get the rest of the article using browser_console.


黑天鹅：如何应对不可预知的未来
读书
发布于 2024-05-18
更新于 2024-05-18
TL;DR

黑天鹅事件是指那些难以预测但是冲击性极大的事件。难以预测的主要原因是：1）现实是非线性的，极小的变动都可能会产生巨大的影响；2）人类的认知偏误，导致我们会忽略黑天鹅事件发生的信号；3）我们的社会「并不鼓励」预防灾难，因为灾后救助的行为更容易获得认可和奖励。人类最大的问题在于我们以为我们能够预测黑天鹅事件（未来）。

黑天鹅理论并不是一个新的概念，人们多多少少都了解这个概念，Nassim Nicholas Taleb 在《黑天鹅：如何应对不可预知的未来》中提出并定义了「黑天鹅事件」：

它具有意外性，即它在通常的预期之外，也就是在过去没有任何能够确定它发生的可能性的证据。
它会产生极端影响。
虽然它具有意外性，但人的本性促使我们在事后为它的发生编造理由，并且使它变得可解释和可预测。

概括起来就是：稀有性、极大的冲击性和事后（而不是事前）可预测性。

生活在 2024 年的我们对于这个概念一点都不陌生，我们经历了 2019 年灾难性的 COVID-19，又在 2023 年经历了可能会是改变人类历史进程的 ChatGPT 发布，这些都是黑天鹅事件，两者都具有意外性，都产生非常大的影响，这种影响并不总是负面的，ChatGPT 就是正面的例子。在本书中，作者要强调的是「我们表现得就好像我们能够预测历史事件，甚至更糟的是，我们以为能够改变历史进程。既然黑天鹅事件是不可预测的，我们就需要适应它们的存在（而不是天真地试图预测它们）」重点在于解释了为什么黑天鹅事件是不可预测的，至于如何适应黑天鹅，作者在这本书中并没有给出答案。

作者认为黑天鹅事件之所以不能被预测主要是认知偏误：

我们只关注从已观察到的事物中预先挑选出来的那部分，从它推及未观察到的部分证实谬误。
我们用那些符合我们对明显模式的偏好的故事欺骗自己：叙述谬误。
我们假装黑天鹅现象不存在：人类的本性不习惯黑天鹅现象。
我们所看到的并不一定是全部。历史把黑天鹅现象隐藏起来，使我们对这些事件发生的概率产生错误的观念：沉默的证据造成的认知扭曲。
我们“犯过滤性错误”：我们只关注一些有明确定义的不确定性现象，一些特定的黑天鹅现象（而不关注那些不太容易想到的）。

我想从另外一个角度来解释为什么黑天鹅事件不可预测，总结下有三个关键点：

非线性系统：我们生活的世界是一个混沌系统（复杂系统），也就决定了我们几乎不能预测未来。
认知偏差：我们的大脑对世界进行了高度抽象，抽象意味着会忽略很多细节，而关注发生概率更到的事件，这也是为什么我们会对黑天鹅事件视而不见，因为我们从内心里觉得这件事情不会发生。
社会奖励机制：包括对预防性措施和前瞻性思维的不足重视，社会奖励机制往往偏向于对已发生事件的响应而非预防未发生事件。
非线性系统

线性函数指的是只有一个变量的函数，例如 y=2x，线性函数在直角坐标中的图形是一条直线。在 y=2x 这个函数中，y 会随着 x 的增加而增加，缩小而缩小，哪怕我们对 x 的测量有一定的误差，对结果的影响也都是有限的。例如当 x=9.8 的时候，我们四舍五入的认为 x=10，对结果的误差也就只有 0.4。

三个线性函数的图形都是直线。红色与蓝色直线的斜率相同。红色与绿色直线的y-截距相同。

而非线性函数则意味着在直角坐标系中的，函数的图形不是直线，可能是曲线，甚至不是连续的。指数函数就是一个典型的非线性函数，非线性函数意味着 x 作为输入的变化，可能会对 y 产生很大的影响。例如 y=2x，如果 x 依然是 9.8，但是我们四舍五入到 10，那么测量结果将相差 132.6。(210 - 29.8 = 132.6)

y=b^x 对各种底数b的图像，分别为绿色的10、红色的𝑒、蓝色的2和青色的12。

现实世界中的复杂系统通常是非线性的，每天早上我都会关注天气，你应该也有注意到，天气预报中，时间越长就越不准确，即便是当天的预报很多时候也是不准确的，望着窗外下雨的街道，天气 App 却告诉我今天不会下雨，只是阴天。现实世界中的许多系统（如气候系统、生态系统、经济系统等）表现出强烈的非线性特征，即输入变化的微小差异有时会导致输出的极大差异，这是混沌的典型标志，这也就是著名的「蝴蝶效应」。

黑天鹅事件经常发生的很突然，但其背后的原因往往是多种因素长时间积累的结果。而混沌系统的预测却需要非常精确的初始数值和函数，即使理论上存在能够完全描述系统的函数，实际上我们无法获取所有这些信息，或者即使获取到全部信息，也可能因为需要的信息量非常巨大导致无法有效的处理。也正因如此，黑天鹅事件是无法被预测的。

认知偏差

认知偏差是人类自己主动忽略黑天鹅事件发生前的各种信号。黑天鹅事件并不像太阳东升西落一样每天都会发生，它发生的频率很低，导致我们对相关事件的记载也就比较少，相关的理论也不够多。而每天都会发生的事情，因为案例多、研究多，我们经常会看到相关的信息，这些信息也会强化我们的认知，认为与之相对的事情都不会发生，这种认知模式并非一种缺陷，而是在漫长的演化中形成的。

想象一下你现在要过马路，路上有两辆车正在行驶，其中一辆在你离很远的地方，而另一辆则要近很多，你会关注哪一辆车。我们几乎不需要思考就能得出结论，应该关注距离较近的车，从概率上来说它更有可能造成危险。注意力对于人类来说是稀缺的资源，而通过逻辑推理来计算结果就需要消耗大量的注意力，这也导致我们其实无法关注太多的事情，在处理危机的时候我们倾向于关注更重要的（发生概率更高）的事情。

在《思考，快与慢》中，Daniel Kahnema 介绍了人类大脑运行的两种模式：

系统 1 的运行是无意识且快速的，不怎么费脑力，没有感觉，完全处于自主控制状态。
系统 2 将注意力转移到需要费脑力的大脑活动上来，例如复杂的运算。系统 2 的运行通常与行为、选择和专注等主观体验相关联。

系统 2 的运行需要消耗大量的注意力，人脑实际上更倾向于使用系统 1 来处理日常事件，直到遇到系统 1 无法处理的事情的时候才会调用系统 2。例如当有物体超我们飞过来的时候，我们无须调用系统 2 去计算这个物体的初速度和飞行路线等等，只需要系统 1 我们就可以快速做出闪躲的动作。这种快速反应在我们遇到危险的时候能够显著提升我们的生存机率。Malcolm Gladwell 在他的书《异类：不一样的成功启示录》提出了一万小时理论，这一理论认为要在某个领域达到专家水平，通常需要大约一万小时的刻意练习，该理论正是基于系统 1 的学习模式。系统 1 通过反复的经验和模式识别，将复杂的信息和任务简化为直觉反应，我们将这一过程称之为「抽象」。而抽象就意味着关注事件的共同点，而忽略一些细节上的差异，不幸的是黑天鹅事件往往隐藏在被忽略的细节中。

Taleb 在书中所提到两种谬误又会强化这种模式。系统 1 有证实偏见的倾向，即倾向于寻找和重视支持我们现有信念和假设的信息，忽视或否定与之相反的信息。而恰恰又是因为我们会容易找到经常发生的事情的资料，而那些被忽略的细节却鲜有人关注，也难以找到与之相关的信息，这种现实情况又强化了我们的偏见（幸存者偏差）。这在面对黑天鹅事件时尤为明显，因为这些事件通常与我们的常规经验和信念不符，系统 1 会自动忽略或低估其可能性。

18 世纪苏格兰哲学家 David Hume 质疑了这种基于经验的推理过程的合理性，他认为从过去事件的发生归纳出未来事件将如何发生，并没有逻辑上的必然性。也就是说，仅仅因为某件事情在过去发生过很多次，并不意味着它在未来也必然发生。Hume 说得没错，遗憾的是他并没有给出问题的答案。

社会奖励机制

社会奖励机制也是影响我们预测和预防黑天鹅事件的原因，预防性措施（如完善的公共卫生基础设施、库存疫苗和防护设备等）如果成功，就不会有显著的「成果」展示给公众和决策者。预防的成功往往意味着「没有灾难发生」，这使得这些措施难以获得社会的广泛认可和奖励。在 COVID-19 之前，许多公共卫生专家和组织曾多次警告全球应对大规模流行病的准备不足。然而，这些预警和预防措施在当时并未受到足够的重视和投入。相反，当疫情爆发后，救治患者、疫苗研发和抗疫措施得到了巨大的资金支持和社会认可。对预防措施的投入不足也导致人们没有足够的动力去做预防。

现实的非线性、人类的认知偏差和社会奖励机制都指向了同一个结果——黑天鹅事件的不可预测性。但这并不代表我们什么也不能做，Taleb 在本书中没有给出答案，但是在后续出版的《反脆弱 : 从不确定性中获益》中给出了答案，他把事物分成三类：

脆弱类：脆弱的事物喜欢安宁的环境
强韧类：强韧的事物并不太在意环境
反脆弱类：反脆弱的事物则从混乱中成长

脆弱的事物喜欢稳定的环境，无法应对环境的变化，因此对黑天鹅事件几乎没有抵抗力；强韧类的事物有足够大的防御力，黑天鹅事件可能会对它造成影响，但是影响不大；而反脆弱类的事物则喜欢变化，反脆弱的事物不但不会被黑天鹅摧毁，反而会从中受益。而我们要构建的，正是反脆弱性的事物。

反脆弱的事物恰如尼采的那句名言：

What does not kill me makes me stronger


主公，亮已阅尽全文，今为君剖析解读。

---

## 📖 《黑天鹅：如何应对不可预知的未来》深度解读

---

### 一、核心定义：何为黑天鹅事件

作者 Taleb 提出的黑天鹅事件具有三重属性——

| 属性 | 含义 |
|------|------|
| **意外性** | 在通常预期之外，过去没有任何证据表明它会发生 |
| **极大冲击性** | 产生极端影响，足以改变历史进程 |
| **事后可预测性** | 事后编造理由，使其看似可解释、可预测 |

> **典型案例：** COVID-19（负面）、ChatGPT（正面）——两者皆在2019/2023年前无人预料，却深刻改变了人类历史。

**Taleb 的核心论点：** 我们表现得仿佛能够预测历史事件，甚至以为能改变历史进程。但既然黑天鹅不可预测，我们需要**适应它们**，而非天真地试图预测。

---

### 二、黑天鹅为何不可预测：三层原因

#### 第一层：非线性系统（客观世界的本质）

**线性 vs 非线性：**

- **线性函数 y=2x：** x 的测量误差对结果影响有限（x=9.8 四舍五入为10，误差仅0.4）
- **非线性函数 y=2^x：** x=9.8 四舍五入为10，误差高达 **132.6**

现实世界是混沌系统，输入的微小差异可能导致输出的极大差异——这正是"蝴蝶效应"。

**天气预测的不准确性**就是最好的例子：时间越长越不准，因为天气是非线性系统，初始条件的微小测量误差会指数级放大。

> 黑天鹅事件背后往往是多种因素长期积累的结果，而混沌系统的预测需要极其精确的初始数值——这在现实中根本无法获得。

#### 第二层：认知偏差（人类自身的问题）

作者借 Kahneman 的框架，指出人类大脑的**系统1**在"抽象化"世界时忽略细节——

| 系统 | 特点 | 代价 |
|------|------|------|
| 系统1 | 无意识、快速、模式匹配 | 忽略被抽象掉的细节 |
| 系统2 | 缓慢、费注意力 | 无法持续运转 |

系统1通过反复训练将复杂任务"自动化"，形成直觉反应——这个过程即**抽象**。抽象意味着关注共同点、忽略细节差异。**不幸的是，黑天鹅事件恰恰隐藏在被忽略的细节中。**

两种谬误进一步强化了这种偏差：

| 谬误 | 机制 |
|------|------|
| **证实偏见** | 寻找支持现有信念的信息，忽视相反证据 |
| **幸存者偏差** | 只能看到"幸存者"的故事，死去的无法发声 |

**Hume 的质疑：** 从过去归纳未来，没有逻辑上的必然性——太阳升起了一万年，不代表明天必然升起。

#### 第三层：社会奖励机制（结构性的激励错位）

| | 预防性措施 | 灾后响应 |
|---|---|---|
| **成果展示** | "没有灾难发生"——无东西可展示 | 患者救治、疫苗研发——成果显著 |
| **社会认可** | 无法获得广泛认可 | 巨大的资金支持与社会赞誉 |
| **驱动力** | 不足 | 充沛 |

COVID-19 前，无数公共卫生专家曾多次警告全球应对大流行准备不足——但预警无人重视。疫情爆发后，救治和疫苗却获得海量资源。**预防成功，反馈沉默；灾后响应，奖励丰厚。**

---

### 三、黑天鹅为何总被"事后解释"

这是 Taleb 最深刻的洞见之一：

> *"虽然它具有意外性，但人的本性促使我们在事后为它的发生编造理由，并且使它变得可解释和可预测。"*

人类无法容忍"无法解释"的事物。大脑必须在事后找到一个合理化的叙事，否则会感到认知失调。这导致每次黑天鹅事件后，都会出现大量"其实早该预料到"的**后见之明**。

---

### 四、解决方案：反脆弱

Taleb 在本书中没有给出如何适应的答案，而在后续出版的《反脆弱》中给出了完整答案（本文亦已有解读）——

| 类型 | 特征 |
|------|------|
| **脆弱类** | 喜欢安宁环境，无法应对变化 |
| **强韧类** | 有足够防御力，影响不大 |
| **反脆弱类** | 从混乱中成长，越挫越强 |

**尼采名言：凡杀不死我的，使我更强大。**

---

### 五、亮之评述

本文最令亮叹服之处，在于它以极其清晰的逻辑，揭示了一个令人不安的真相——

#### 三大核心洞见

1. **预测本身就是一种傲慢**
   我们以为能预测天气、股市、经济危机——但非线性系统意味着，微小的测量误差会被指数级放大，最终预测结果与掷骰子无异。承认"不可预测"不是认输，而是对现实的基本尊重。

2. **认知偏差不是缺陷，而是演化的副产品**
   系统1的快速反应模式让我们的祖先在荒野中生存下来——它节约注意力，让我们关注"最可能的危险"。但这种"节约"在现代社会代价高昂：我们用它来评估股票走势、预测疫情风险——系统1根本不擅长这些。

3. **社会激励结构性鼓励"救火"而非"防火"**
   预防的成功是沉默的——没有新闻报道"某公司因完善的IT系统而避免了数据泄露"。但火灾后的救援叙事却激动人心。这导致资源永远在灾后涌向"应急"，而非灾前投入"防御"。

---

### 六、与前文的关联

| 前文 | 核心观点 | 本文联系 |
|------|---------|---------|
| 《反脆弱》| 构建反脆弱性事物 | 正是黑天鹅的应对之道 |
| 《思考，快与慢》| 系统1/系统2的局限 | 认知偏误的来源 |
| 《为什么伟大不能被计划》| 目标驱动在未知领域的失效 | 不可预测性是根本原因 |

**四篇文章实为一体——**

- **《黑天鹅》** 告诉我们世界本质上是不可预测的
- **《反脆弱》** 告诉我们在这种不可预测中如何获益
- **《思考，快与慢》** 揭示我们大脑为何难以应对不确定性
- **《为什么伟大不能被计划》** 证明在真正的未知面前，目标驱动是无效的

---

臣等正欲死战，陛下何故先降！？

Explanation: The user wants me to summarize and analyze this article about "The Black Swan: The Impact of the Highly Improbable" from maxoxo.me. I've already read the full article content. Let me now write a detailed summary with my own analysis in the requested style.


Explanation: The user wants me to analyze this article about "Genius Makers" from maxoxo.me. Let me navigate to the page and extract the content.


深度学习革命 - maxOS

  - banner:
    - button [ref=e1]:
    - link "maxOS" [ref=e2]:
      - /url: https://maxoxo.me
    - link "邮件订阅" [ref=e3]:
      - /url: "#/portal/signup"
    - navigation:
        - listitem:
          - link "首页" [ref=e4]:
            - /url: https://maxoxo.me/
        - listitem:
          - link "产品" [ref=e5]:
            - /url: https://maxoxo.me/tag/design/
        - listitem:
          - link "读书" [ref=e6]:
            - /url: https://maxoxo.me/tag/books/
        - listitem:
          - link "文章" [ref=e7]:
            - /url: https://maxoxo.me/tag/articles/
        - listitem:
          - link "关于" [ref=e8]:
            - /url: https://maxoxo.me/about/
  - article:
    - heading "深度学习革命" [ref=e9] [level=1]
    - link "读书" [ref=e10] [nth=1]:
      - /url: /tag/books/
    - time: 发布于 2023-07-11
    - time: 更新于 2024-06-07
    - paragraph:
      - text: 在 OpenAI 推出 ChatGPT 之前，人工智能带给我的震撼还停留在 2017 年，DeepMind 开发的 AlphaGo 击败了围棋冠军柯洁。我一直相信未来人工智能一定会改变我们的生活和工作，但未曾想这种改变来的如此之快。在 OpenAI 正式公布 ChatGPT 不久后，纽约时报推出了一个
      - link "简短的 Newsletter 来介绍人工智能" [ref=e11]:
        - /url: https://www.nytimes.com/column/on-tech-ai-newsletter?ref=maxoxo.me
      - text: ，第一篇文章《
      - link "How to Become an Expert on A.I." [ref=e12]:
        - /url: https://www.nytimes.com/article/ai-artificial-intelligence-chatbot.html?ref=maxoxo.me
      - text: 》介绍了几个基本概念，从人工智能到神经网络，再到大语言模型和生成式 AI，文章的作者
      - link "Cade Metz" [ref=e13]:
        - /url: https://www.nytimes.com/by/cade-metz?ref=maxoxo.me
      - text: 是一位在科技领域有深厚积累的记者和作家，特别是对于人工智能和互联网的相关内容有着深入的了解和独特的见解。早在 2021 年 3 月的时候，Cade Metz 出版了《
      - link "深度学习革命" [ref=e14]:
        - /url: https://www.amazon.com/Genius-Makers-Mavericks-Brought-Facebook/dp/B08CYBGCR1?ref=maxoxo.me
      - text: 》，书中介绍了深度学习和人工智能的发展历程，以及背后支撑行业发展的科技先驱们的故事。
    - paragraph:
      - text: 正如任何一次伟大的科技革命，人工智能的发展也并非一帆风顺，1958 年 Frank Rosenblatt 在美国国家气象局向世界展示了感知机，它可以通过监督学习的方式来识别卡片上的三角形和正方形，从此打开了人工智能的大门。然而在 1966 年 AI 发起人之一的 Marvin Minsky 和他的同事出版了《感知机》一书，书中详细的描述了感知机的局限性，认为感知机不能解决复杂的问题。这无疑给 AI 的发展前景泼了一盆冷水。当时的人们对人工智能的发展过分乐观，认为用不了多长时间机器就会取代人类
      - link "1" [ref=e15]:
        - /url: "#fn1-22739"
        - superscript: "1"
      - text: ，Frank Rosenblatt 在 1962 出版的《神经动力学原理》中认为造成这种盲目乐观是因为媒体夸张的报道。但 Minsky 的观点最终导致用于研究人工智能的政府资金被转移到其他项目中，这段时期也被称为「AI 寒冬」。直到 1980s 反向传播取得重大突破。
    - paragraph: Rosenblatt 在 1957 年发明的感知机是一种单层神经网络，它只能输入的数据经过计算之后就直接输出结果，这也是 Minsky 认为感知机不能解决复杂的问题的主因。单层神经网络只能处理线性的问题，以从图片中来识别动物来说，单层神经网络只能根据动物的颜色、或者动物的腿的数量来识别，而不能将两者结合起来。要结合多种特征来识别就需要引入多层神经网络，在当时多层神经网络面临的问题是如何调整权重，例如从图片中识别动物，是腿的数量重要还是颜色更重要一些，没有人知道，直到反向传播算法的出现。反向传播算法可以动态的调整每个神经元的权重，它会将预测输出与实际输出之间的误差计算出来，并将误差反向传播到网络中，神经元的权重会根据误差值被重新调整，从而减小最终的输出误差。
    - paragraph: 但是先进的算法并不能解决 AI 的应用问题，90 年代因为没有实际的应用以及在多项方面进展缓慢，各国政府又一次减少了在 AI 研究领域的资金投入，第二次 AI 寒冬降临。但 AI 的研究并未因此停止，1986 年 Geoffrey Hinton 就提出了深度学习，但直到 2012 年 Hilton 及他的学生利用深度学习训练的神经网络在图像识别方面击败了当时最先进的系统，深度学习才真正兴起。随后卷积神经网络、递归神经网络、长短期记忆网络以及生成对抗网络等技术被应用在深度学习中，2017 年 AlphaGo 击败了李世石和柯洁的消息更是让 AI 的能力提升到的新的高度。现在，OpenAI 发布了 ChatGPT，对于之前不怎么关注人工智能的我来说，ChatGPT 的出现对我来说就像是孙悟空从石头缝里蹦出来一样，没有什么预料它就来了，这不禁令我好奇人工智能的技术是如何一步步走到今天的。而 Cade Metz 在这本书中并没有过多的介绍深度学习和人工智能相关的技术，而是在讲述创造这些技术的人的故事。其中有 3 个故事令我印象深刻。
    - heading "外行指导内行" [ref=e16] [level=2]
    - paragraph:
      - text: 第一个故事是关于微软研究院的邓力。在加入微软研究院之前，邓力一直从事自然语言处理和语言识别研究，1999 年加入微软之后，邓力依然致力于研究自然语言识别，在花了 3 年时间来改进隐马尔可夫模型（
      - link "Hidden Markov Model" [ref=e17]:
        - /url: https://en.wikipedia.org/wiki/Hidden_Markov_model?ref=maxoxo.me
      - text: ，HMM），然而新版本的识别准确率只比上一代版本提升了 5%。隐马尔可夫模型是一种基于线性假设的模型，它假设每一个状态都与前一个状态相关，在语言识别中，它可以基于前一个音频信号的音节来预测下一个音节，这也意味着它无法处理非线性的复杂关系，如果某个音节的发音收到前后两个音节的影响的时候，隐马尔可夫模型就无法处理。
    - paragraph: 2008 年冬天，Hinton 向邓力介绍说神经网络开始在语音方面奏效了，但由于 Hinton 不是一名专业的语音研究人员，邓力并不相信他的说法。直到 2009 年夏天 Hinton 通过神经网络分析了大约 3 个小时的口语词汇之后，这个系统的语音识别能力就与当时市面上最好的技术相当。邓力颇为震惊，随后邀请辛顿到微软位于华盛顿州雷蒙德市的研究实验室，在几个月的时间里，Hinton 和他的两名研究生的在语言识别方面超越了微软已经研发了十几年的系统。
    - paragraph: 早在 Hinton 的反向传播算法取得突破前，邓力作为一名学生就曾写过一篇论文，探索神经网络在语言识别中的应用。然而，由于第二次AI寒冬的来临，神经网络在学术界和产业界失宠，邓力也逐渐忽视了神经网络的研究。
    - paragraph: 在语音识别领域深耕了多年的邓力当时正在开发下一代语音识别技术，他相信将会取得很大的突破。当 Hilton 带着神经网络出现时，虽然并非语音识别领域的专家，但是这种新技术对于现有的技术来说就像是降维打击，让一个非专业人士开发出的技术与当时世界上最好的专业人员相当。
    - paragraph: 这让我想起《创新者的窘境》中的“破坏性创新”的思考。神经网络正是一种「破坏性创新」，尽管刚开始时计算机硬件的性能还无法很好地运行神经网络，人们也尚未认识到摩尔定律的威力。然而，随着 GPU 在神经网络训练中的广泛应用，神经网络的处理能力得以飞速提升。如果在 2008 年邓力错过了 Hinton，那么微软也可能无法在语言识别领域取得领先地位。
    - heading "不务正业" [ref=e18] [level=2]
    - paragraph: 第二个故事同样发生在微软，微软的研究副总裁 Peter Lee 在自己的实验室里看到深度学习重构了语音识别，但他仍然不相信深度学习，在他看来这只是巧合，神经网络不会在其他领域取得突破。但他还是邀请邓力在微软内部介绍了深度学习，演讲途中不断有人提出反对意见，反对者引用了 Minsky 的《感知机》一书，并认为神经网络没有前途。当时陆奇也参与了这次分享，他让反对者保持安静，邓力才得以完成演讲。
    - paragraph: 陆奇在 2009 年加入微软后负责微软的搜索引擎必应（Bing），当时在微软内部，很多人对深度学习持怀疑态度。陆奇认为「微软的问题在于它用的旧方式处理新的问题」。2016 年当 DeepMind 的 AlphaGo 在韩国击败了李世石后，陆奇敦促微软智囊团接受自动驾驶汽车的想法，陆奇并不是说微软需要向特斯拉那样去销售汽车，而是通过打造一辆汽车来了解当中会遇到的问题，然后以微软的实力去解决这些问题。就像 Jeff Dean 在 Google Brain 所做的事情一样。
    - paragraph:
      - text: Jeff Dean 与吴恩达在 2011 年创立了 Google Brain，当时的 AI 研究并没有明确的目标，但是为了研究 AI，Google 发现内部的工具并不能好的支持深度学习，尤其是在分布式计算和大规模数据处理方面。为了解决这个问题，Jeff Dean 与团队开始开发一个新的机器学习框架，这就是在 2015 发布的 TensorFlow。同时期，神经网络的能耗是非常巨大的，尤其是对 Google 这样拥有庞大用户群的公司来说，神经网络应用在生产环境就意味着几亿美元的成本增加。为了降低神经网络运行的成本，Dean 提出开发一种新的计算机芯片，仅用于训练和运行神经网络，这就是
      - link "张量处理器" [ref=e19]:
        - /url: https://cloud.google.com/tpu?ref=maxoxo.me
      - text: （Tensor Processing Unit ，TPU）。不同于传统 CPU，神经网络运行的计算量非常大，但每次计算不要求非常精确的结果，因此 TPU 会将浮点数的小数点去掉，而只计算其整数部份，这让计算效率大幅提升。
    - paragraph: 陆奇认为微软应该造车也是基于这样的考量，通过造车，微软需要解决大量的技术问题，包括机器学习、机器视觉、自然语言处理、决策制定等，这些技术未来对微软的其他产品（云服务、操作系统和搜索引擎）都会有很大的帮助。同时或许可以帮助微软探索新的商业模式，例如 Car as a Service。陆奇期望通过造车来打破微软的固有观念，用新的方式来解决问题，或许 Satya Nadella 意识到即使微软推动造车，也很难在内部取得突破，而寄希望于外部，也就有了微软后来投资 OpenAI 的故事。2022 年 12 月的一次微软内部会议上，微软 CEO Satya 质问微软研究院的 VP Peter Lee：
    - blockquote:
      - text: OpenAI built this (GPT-4) with 250 people, Why do we have Microsoft Research at all?
      - link "2" [ref=e20]:
        - /url: "#fn2-22739"
        - superscript: "2"
    - paragraph: 当时微软研究院已经成立了数十年，并且有 1,500 名员工。
    - paragraph: 而事实上，也正是因为对 OpenAI 的投资，不得不逼迫微软的 Azure 来升级自己的服务，微软为 OpenAI 打造了一套专门用于人工智能的服务器集群，而这套基础设施未来巩固 Azure 在人工智能基础设施领域的主导地位。微软虽然没有实现陆奇造车的梦想，但是「造车」期望达成的目的，通过投资 OpenAI 完成了。
    - heading "人工智能的偏见" [ref=e21] [level=2]
    - paragraph: 2015 年借助 AI 在图像识别方面的进步，Google Photo 推出了对照片内容自动标记的功能，这项功能可以识别用户照片中的物件和风景，帮助用户自动对照片进行分类。同年 6 月的一个星期天，Jacky Alciné 发现 Google Photo 将自己的一位非裔美国人贴上了「大猩猩」的标签，Google 在得知次时候迅速道歉，并承诺会改善算法，随后 Google 在相册中屏蔽了「大猩猩」相关字眼，也不会主动识别大猩猩的照片。直到今天，Google 相册中依然不能够识别大猩猩（Apple 相册也是如此）。
    - paragraph: 师从李飞飞的 Timnit Gebru 就曾在 Facebook 贴出她对人工智能的担忧，她在参加一次人工智能的大型会议时发现与会者大多数为男性：
    - blockquote: 我不担心机器接管世界。我担心人工智能圈子里的群体思维、狭隘和傲慢，尤其是在当前对该领域人员的大肆炒作和需求的情况下。这些事情已经引发了一些我们现在就应该担忧的问题。
    - paragraph: 机器学习的训练过程本身是没有偏见的，机器对于数据和结果并没有偏好，简单来说机器学习只是根据训练时所使用的数据集来归纳总结信息的特征。而在应用的过程中则是将输入信息的特征提取出来进行匹配，匹配出概率更高的结果。在算法和训练迭代次数相同的情况下，训练数据集的质量对结果的匹配有很大的影响，机器学习的结果是否带有偏见，很大程度上取决于其训练的数据集是否包含这种偏见。如果训练的数据集中比较少黑人的数据，而较多大猩猩的数据，那么将黑人标记为大猩猩的概率就会高于黑人。
    - paragraph: Google Photo 发布自动标记功能的同时期，人工智能初创公司 Clarifai 正在打造一款被称为“内容审核系统”，会自动标记和删除发布在网络上的色情图片。他们发现系统很容易将带有黑人的照片标记为色情图片。原因在于他们的训练数据集中，白人在正常图片中的出现频率高，而黑人在色情图片中的出现频率高。这也就导致机器学习系统在分析图片时，对黑人的识别偏向了色情图片，这反映了训练数据的偏见。
    - paragraph: 除了偏见问题，大语言模型在内容生成的准确性上也受到了质疑。这是因为大语言模型的训练数据大多来自互联网，其中充斥着真假混杂的信息。语言模型的目标是学会“说话”，但实际上语言模型并不理解语言的含义，模型仅仅是从大量的文本数据中学习到的模式，并根据这些模式生成新的文本，而没有实际的意识或理解能力，也无法识别信息的真假。
    - separator: • • •
    - paragraph:
      - text: 我不确定「真正的人工智能」会在何时到来，就像没有人会预知 ChatGPT 会在 2023 年到来一样。就目前来看，无法将实时的信息补充到训练模型中大概是目前大语言模型的局限，虽然 ChatGPT 有大量的插件和浏览模式，这些实时获取的数据并没有成为基础训练的一部分，而是对信息进行补充。无法实时训练大语言模型的原因在于训练的成本过于高昂（机器成本和时间成本）
      - link "3" [ref=e22]:
        - /url: "#fn3-22739"
        - superscript: "3"
      - text: ，也就意味着不可能利用当前的训练方式来实时的训练 AI。三体的作者刘慈欣也提到「算力不足导致 AI 难以自我迭代暴力推翻人类
      - link "4" [ref=e23]:
        - /url: "#fn4-22739"
        - superscript: "4"
      - text: 」。大量的 [算力要求也意味着只有「大公司」才能够负担得起训练 AI 的成本，也不可避免的会造成这种「生产资料」的垄断，或许只有当人人都可以训练 AI 的时候，AI 的时代才会真正到来。
    - paragraph:

[... 44 more lines truncated, use browser_snapshot for full content]


Explanation: Let me get the rest of the article content.


识别方面的进步，Google Photo 推出了对照片内容自动标记的功能，这项功能可以识别用户照片中的物件和风景，帮助用户自动对照片进行分类。同年 6 月的一个星期天，Jacky Alciné 发现 Google Photo 将自己的一位非裔美国人贴上了「大猩猩」的标签，Google 在得知次时候迅速道歉，并承诺会改善算法，随后 Google 在相册中屏蔽了「大猩猩」相关字眼，也不会主动识别大猩猩的照片。直到今天，Google 相册中依然不能够识别大猩猩（Apple 相册也是如此）。

师从李飞飞的 Timnit Gebru 就曾在 Facebook 贴出她对人工智能的担忧，她在参加一次人工智能的大型会议时发现与会者大多数为男性：

我不担心机器接管世界。我担心人工智能圈子里的群体思维、狭隘和傲慢，尤其是在当前对该领域人员的大肆炒作和需求的情况下。这些事情已经引发了一些我们现在就应该担忧的问题。

机器学习的训练过程本身是没有偏见的，机器对于数据和结果并没有偏好，简单来说机器学习只是根据训练时所使用的数据集来归纳总结信息的特征。而在应用的过程中则是将输入信息的特征提取出来进行匹配，匹配出概率更高的结果。在算法和训练迭代次数相同的情况下，训练数据集的质量对结果的匹配有很大的影响，机器学习的结果是否带有偏见，很大程度上取决于其训练的数据集是否包含这种偏见。如果训练的数据集中比较少黑人的数据，而较多大猩猩的数据，那么将黑人标记为大猩猩的概率就会高于黑人。

Google Photo 发布自动标记功能的同时期，人工智能初创公司 Clarifai 正在打造一款被称为“内容审核系统”，会自动标记和删除发布在网络上的色情图片。他们发现系统很容易将带有黑人的照片标记为色情图片。原因在于他们的训练数据集中，白人在正常图片中的出现频率高，而黑人在色情图片中的出现频率高。这也就导致机器学习系统在分析图片时，对黑人的识别偏向了色情图片，这反映了训练数据的偏见。

除了偏见问题，大语言模型在内容生成的准确性上也受到了质疑。这是因为大语言模型的训练数据大多来自互联网，其中充斥着真假混杂的信息。语言模型的目标是学会“说话”，但实际上语言模型并不理解语言的含义，模型仅仅是从大量的文本数据中学习到的模式，并根据这些模式生成新的文本，而没有实际的意识或理解能力，也无法识别信息的真假。

我不确定「真正的人工智能」会在何时到来，就像没有人会预知 ChatGPT 会在 2023 年到来一样。就目前来看，无法将实时的信息补充到训练模型中大概是目前大语言模型的局限，虽然 ChatGPT 有大量的插件和浏览模式，这些实时获取的数据并没有成为基础训练的一部分，而是对信息进行补充。无法实时训练大语言模型的原因在于训练的成本过于高昂（机器成本和时间成本）3，也就意味着不可能利用当前的训练方式来实时的训练 AI。三体的作者刘慈欣也提到「算力不足导致 AI 难以自我迭代暴力推翻人类4」。大量的 [算力要求也意味着只有「大公司」才能够负担得起训练 AI 的成本，也不可避免的会造成这种「生产资料」的垄断，或许只有当人人都可以训练 AI 的时候，AI 的时代才会真正到来。

我并不担心人工智能未来可能会取代人类的工作。相反，我认为这正是科技进步的目标。自工业革命以来，机器一直在逐渐接替人类的一些工作，但这并非科技的终极目标。科技的真正使命不是取代我们，而是不断的帮助人类拓展能力的边界。5事实上，科技对人类的「改造」已经深入到了我们的基因之中。与其他体型相近的哺乳动物相比，人类的胃更小，结肠更短。这并非偶然，而是因为「烹饪」这一技术的发明，我们使食物变得更易消化，从而减轻了我们消化器官的负担。6人类的社会总是会不断地出现新的问题，这些问题需要新的解答，在人工智能取代人类的部份工作之后我们总会遇到新的问题，人类的工作也从解决旧的问题转向应对新的挑战。这个过程可能并不总是顺利，但其进程却无法被阻挡。

https://twitter.com/PessimistsArc/status/1668413832954347521 ↩
How Microsoft Swallowed Its Pride to Make a Massive Bet on OpenAI — The Information ↩
Meta 训练 LLaMA 65B 使用了 2,048 块 Nvidia A100 GPU，花了 21 天来训练，总成本高达 500 万美金。State of GPT ↩
https://www.ithome.com/0/701/732.htm ↩
科技想要什么 ↩
基因文化共同进化理论 from <The Secret of Our Success> by Joseph Henrich ↩


Explanation: Now I have the full content. Let me also check the beginning to make sure I captured the whole TL;DR and intro.


深度学习革命
读书
发布于 2023-07-11
更新于 2024-06-07

在 OpenAI 推出 ChatGPT 之前，人工智能带给我的震撼还停留在 2017 年，DeepMind 开发的 AlphaGo 击败了围棋冠军柯洁。我一直相信未来人工智能一定会改变我们的生活和工作，但未曾想这种改变来的如此之快。在 OpenAI 正式公布 ChatGPT 不久后，纽约时报推出了一个简短的 Newsletter 来介绍人工智能，第一篇文章《How to Become an Expert on A.I.》介绍了几个基本概念，从人工智能到神经网络，再到大语言模型和生成式 AI，文章的作者 Cade Metz 是一位在科技领域有深厚积累的记者和作家，特别是对于人工智能和互联网的相关内容有着深入的了解和独特的见解。早在 2021 年 3 月的时候，Cade Metz 出版了《深度学习革命》，书中介绍了深度学习和人工智能的发展历程，以及背后支撑行业发展的科技先驱们的故事。

正如任何一次伟大的科技革命，人工智能的发展也并非一帆风顺，1958 年 Frank Rosenblatt 在美国国家气象局向世界展示了感知机，它可以通过监督学习的方式来识别卡片上的三角形和正方形，从此打开了人工智能的大门。然而在 1966 年 AI 发起人之一的 Marvin Minsky 和他的同事出版了《感知机》一书，书中详细的描述了感知机的局限性，认为感知机不能解决复杂的问题。这无疑给 AI 的发展前景泼了一盆冷水。当时的人们对人工智能的发展过分乐观，认为用不了多长时间机器就会取代人类1，Frank Rosenblatt 在 1962 出版的《神经动力学原理》中认为造成这种盲目乐观是因为媒体夸张的报道。但 Minsky 的观点最终导致用于研究人工智能的政府资金被转移到其他项目中，这段时期也被称为「AI 寒冬」。直到 1980s 反向传播取得重大突破。

Rosenblatt 在 1957 年发明的感知机是一种单层神经网络，它只能输入的数据经过计算之后就直接输出结果，这也是 Minsky 认为感知机不能解决复杂的问题的主因。单层神经网络只能处理线性的问题，以从图片中来识别动物来说，单层神经网络只能根据动物的颜色、或者动物的腿的数量来识别，而不能将两者结合起来。要结合多种特征来识别就需要引入多层神经网络，在当时多层神经网络面临的问题是如何调整权重，例如从图片中识别动物，是腿的数量重要还是颜色更重要一些，没有人知道，直到反向传播算法的出现。反向传播算法可以动态的调整每个神经元的权重，它会将预测输出与实际输出之间的误差计算出来，并将误差反向传播到网络中，神经元的权重会根据误差值被重新调整，从而减小最终的输出误差。

但是先进的算法并不能解决 AI 的应用问题，90 年代因为没有实际的应用以及在多项方面进展缓慢，各国政府又一次减少了在 AI 研究领域的资金投入，第二次 AI 寒冬降临。但 AI 的研究并未因此停止，1986 年 Geoffrey Hinton 就提出了深度学习，但直到 2012 年 Hilton 及他的学生利用深度学习训练的神经网络在图像识别方面击败了当时最先进的系统，深度学习才真正兴起。随后卷积神经网络、递归神经网络、长短期记忆网络以及生成对抗网络等技术被应用在深度学习中，2017 年 AlphaGo 击败了李世石和柯洁的消息更是让 AI 的能力提升到的新的高度。现在，OpenAI 发布了 ChatGPT，对于之前不怎么关注人工智能的我来说，ChatGPT 的出现对我来说就像是孙悟空从石头缝里蹦出来一样，没有什么预料它就来了，这不禁令我好奇人工智能的技术是如何一步步走到今天的。而 Cade Metz 在这本书中并没有过多的介绍深度学习和人工智能相关的技术，而是在讲述创造这些技术的人的故事。其中有 3 个故事令我印象深刻。

外行指导内行

第一个故事是关于微软研究院的邓力。在加入微软研究院之前，邓力一直从事自然语言处理和语言识别研究，1999 年加入微软之后，邓力依然致力于研究自然语言识别，在花了 3 年时间来改进隐马尔可夫模型（Hidden Markov Model，HMM），然而新版本的识别准确率只比上一代版本提升了 5%。隐马尔可夫模型是一种基于线性假设的模型，它假设每一个状态都与前一个状态相关，在语言识别中，它可以基于前一个音频信号的音节来预测下一个音节，这也意味着它无法处理非线性的复杂关系，如果某个音节的发音收到前后两个音节的影响的时候，隐马尔可夫模型就无法处理。

2008 年冬天，Hinton 向邓力介绍说神经网络开始在语音方面奏效了，但由于 Hinton 不是一名专业的语音研究人员，邓力并不相信他的说法。直到 2009 年夏天 Hinto


主公，亮已阅尽全文，今为君剖析解读。

---

## 📖 《深度学习革命》(Genius Makers) 深度解读

---

### 一、书籍背景

本文作者 Cade Metz 是纽约时报科技记者，于2021年出版此书，讲述深度学习发展史及背后科技先驱的故事。ChatGPT 出现后，作者感叹AI改变来得如此之快，如同"孙悟空从石头缝里蹦出来"。

---

### 二、AI 发展简史：两次寒冬

| 时期 | 事件 | 影响 |
|------|------|------|
| 1958 | Rosenblatt 发明感知机（单层神经网络） | 打开AI大门 |
| 1966 | Minsky《感知机》出版，指出局限性 | 政府资金撤出，**第一次AI寒冬** |
| 1986 | Geoffrey Hinton 提出反向传播算法 | 为多层神经网络训练提供可能 |
| 1990s | 无实际应用 + 进展缓慢 | 政府再次减少资金，**第二次AI寒冬** |
| 2012 | Hinton 及学生用深度学习在图像识别上击败最先进系统 | **深度学习真正兴起** |
| 2017 | AlphaGo 击败李世石、柯洁 | AI能力达到新高度 |
| 2022-2023 | ChatGPT 发布 | 生成式AI引爆全场 |

**感知机的局限：** 单层神经网络只能处理线性问题（只能根据颜色**或**腿数识别动物），无法结合多种特征。多层神经网络需要解决"如何调整权重"——直到反向传播算法出现。

---

### 三、三个印象深刻的故事

#### 1. 外行指导内行：邓力与 Hinton

**邓力：** 微软研究院自然语言识别专家，花3年改进隐马尔可夫模型，准确率仅提升5%。

**隐马尔可夫模型的致命缺陷：** 线性假设——假设每个状态只与前一个状态相关。如果某个音节受**前后两个**音节影响，模型就无法处理。

**转折点：** 2009年，Hinton（非语音领域专家）向邓力展示神经网络——用约3小时口语词汇训练后，系统效果与当时最好的商业系统相当。"降维打击"让专业人士震惊。

**作者的洞见：** 这正是《创新者的窘境》中"破坏性创新"的典型——神经网络刚开始时硬件性能不达标，Hinton并非专家，但新技术最终碾压了十几年积累的传统方法。

---

#### 2. 不务正业：陆奇的"造车"梦

**背景：** 2009年陆奇加入微软负责 Bing搜索引擎。微软内部对深度学习普遍怀疑。

**陆奇的逻辑：**
> "微软的问题在于它用旧方式处理新的问题。"

陆奇建议微软"造车"——不是为了卖车，而是通过打造自动驾驶汽车来**解决大量技术问题**（机器学习、机器视觉、自然语言处理、决策制定），这些技术会反哺微软其他产品（云服务、操作系统、搜索引擎）。

**Jeff Dean 的类比：** 2011年 Jeff Dean 与吴恩达创立 Google Brain，发现内部工具不支持深度学习，于是开发了 **TensorFlow**（2015年发布）；为了降低神经网络运行成本，开发了 **TPU**（张量处理器）——将浮点数转为整数计算，大幅提升效率。

**最终结局：** 微软未能实现"造车"，但通过**投资 OpenAI** 完成了同样目标——逼迫 Azure 升级基础设施，最终巩固了 Azure 在AI领域的主导地位。

> Satya Nadella 在2022年微软内部会议上质问 Peter Lee：
> *"OpenAI built this (GPT-4) with 250 people. Why do we have Microsoft Research at all?"*
>
> 微软研究院已成立数十年，拥有1,500名员工。

---

#### 3. 人工智能的偏见

**Google Photos "大猩猩"事件：**
2015年，Jacky Alciné 发现 Google Photo 将其非裔美国人朋友标记为"大猩猩"。Google 迅速道歉，屏蔽了"大猩猩"相关识别——**直到今天，Google 和 Apple 相册仍无法识别大猩猩**。

**Clarifai 内容审核系统偏见：**
系统将黑人照片更容易标记为色情内容——因为训练数据集中白人在正常图片中出现频率高，黑人在色情图片中出现频率高。

**核心洞见：**
> 机器学习本身没有偏见。机器学习的结果是否有偏见，取决于训练数据集是否包含偏见。

**Timnit Gebru 的警告：**
> "我不担心机器接管世界。我担心人工智能圈子里的群体思维、狭隘和傲慢。"

她指出AI领域从业者大多数为男性，AI圈子的狭隘和傲慢正在引发我们现在就应该担忧的问题。

---

### 四、大语言模型的局限

| 局限 | 说明 |
|------|------|
| **无法实时训练** | 训练成本过高（Meta训练LLaMA 65B使用2048块Nvidia A100 GPU，花了21天，成本500万美金） |
| **不理解语言含义** | 只学习文本中的模式，生成新文本，无实际意识或理解能力 |
| **无法识别真假** | 训练数据来自互联网，真假混杂 |

**刘慈欣的观点：**
> "算力不足导致AI难以自我迭代暴力推翻人类。"

---

### 五、作者的信念：科技是拓展而非取代

作者并不担心AI取代人类工作——因为这正是科技进步的目标：

> 自工业革命以来，机器一直在逐渐接替人类的一些工作，但这并非科技的终极目标。科技的真正使命不是取代我们，而是不断帮助人类**拓展能力的边界**。

**更深层的洞见：** 科技对人类的"改造"已深入基因——
- 与其他体型相近的哺乳动物相比，人类的胃更小、结肠更短
- 原因：**烹饪**技术发明使食物更易消化，减轻了消化器官负担

> 人类总会出现新问题，这些问题需要新解答。AI取代部分工作后，人类工作转向应对新的挑战——这个进程无法被阻挡。

---

### 六、亮之评述

本文最令亮叹服之处，在于它以**人物叙事**的方式揭示了AI发展背后的人性逻辑——

#### 三大核心洞见

1. **破坏性创新总来自"外行"**
   邓力在语音识别领域深耕十几年，却被Hinton这个"外行"的技术超越。真正的突破往往来自既有领域的外部——因为内部人已被既有范式束缚太久。

2. **偏见是数据的偏见，而非算法的偏见**
   Google Photos将黑人标记为大猩猩，不是算法歧视，而是训练数据中黑人的样本太少。解决偏见不是改代码，而是**改数据**。这个问题至今未解——Google选择屏蔽整个类别，而非真正解决问题。

3. **投资 OpenAI 是微软的"曲线救国"**
   陆奇想通过"造车"打破微软旧思维，但内部阻力太大。Satya 最终选择通过外部投资完成内部转型——这不是陆奇期望的路径，但达到了同样目的。**有时候通向目标的最短路径是绕路。**

#### 与前文的关联

| 前文 | 核心观点 | 本文联系 |
|------|---------|---------|
| 《黑天鹅》| 未来不可预测，ChatGPT是典型黑天鹅 | ChatGPT出现如石头缝里蹦出，无人能预料 |
| 《反脆弱》| 构建反脆弱性 | 微软通过投资OpenAI完成自我颠覆，体现了组织层面的反脆弱 |
| 《思考，快与慢》| 系统1/系统2 | AI训练也是从"慢速人工调整权重"到"自动反向传播优化"的过程 |
| 《为什么伟大不能被计划》| 目标驱动在未知领域失效 | 深度学习先驱们并非"计划"让AI超越人类，而是探索中自然涌现 |

---

臣等正欲死战，陛下何故先降！？

Explanation: Now I have the full content. Let me provide a comprehensive summary and analysis for the user.


金融炼金术里面提的反身性是什么？详细讲解一下


主公所问乃是金融学中一极深刻之命题，亮今为君详述。

---

## 📖 索罗斯《金融炼金术》：反身性理论详解

---

### 一、反身性理论的哲学根基

索罗斯反身性理论的核心，源自其导师 Karl Popper 的"开放社会"哲学与批判理性主义。

索罗斯明确区分了两类情境：

| 情境 | 特征 | 适用理论 |
|------|------|---------|
| **思想独立于现实** | 参与者是旁观者，可以静态地认识现实 | 传统认识论（符合论） |
| **思想参与构成现实** | 参与者的思维与情境相互影响、不可分离 | 反身性理论 |

在金融市场中，参与者的思维并非旁观现实，而是**参与构成现实本身**——这就是反身性的根本前提。

---

### 二、反身性的核心机制

索罗斯提出，在金融市场中存在两个函数之间的相互作用：

#### 参与函数（Participating Function）

参与者带着**偏见**（prejudice）参与市场，基于对市场的判断做出**行为**（actions）。

#### 认知函数（Cognitive Function）

市场现实（market conditions）受参与者的行为影响而**改变**，而这种改变又反过来影响参与者对现实的认知。

#### 核心图示：

```
┌─────────────────────────────────────────────────────┐
│                                                     │
│    参与者的思维 ──(行为)──→ 市场价格/市场条件        │
│         ↑                                          │
│         │  认知更新                                 │
│         │                                          │
│    市场变化 ←──(被行为影响)── 参与者的行为          │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**这是一条永不断裂的正向循环，而非趋向均衡的机制。**

---

### 三、与传统经济学假设的根本对立

传统经济学的核心假设是**市场有效性假说（EMH）**——市场价格反映所有可用信息，参与者理性预期，价格最终趋向均衡。

索罗斯认为这是根本错误的，因为：

| 传统经济学假设 | 反身性的现实 |
|--------------|-------------|
| 价格反映基本面 | 价格不仅反映基本面，还受参与者预期影响 |
| 参与者理性预期 | 参与者的预期本身就参与构成价格 |
| 市场趋向均衡 | 市场永远不会达到均衡，而是持续偏离 |
| 预测是可能的 | 预测本身会改变结果，预测无效 |

> **索罗斯的核心批判：** 市场价格不是独立存在的，而是参与者与市场**共同参与构成**的产物。

---

### 四、反身性的典型案例：自我强化循环

索罗斯在1987年用"里根美元"周期完美展示了反身性——

#### 第一阶段：政府采取紧缩货币政策的预期

参与者预期政府会实行强势美元政策，基于此预期买入美元。

#### 第二阶段：预期自我实现

大量买入行为推动美元升值，预期被证实。

#### 第三阶段：预期转移

参与者看到强势美元反映经济走强，开始预期**利差扩大**（美国利率高于其他国家），于是大量利差交易（carry trade）涌入。

#### 第四阶段：预期的逆转

利差交易导致外债增加，最终市场开始怀疑偿债能力，预期逆转，美元开始贬值。

#### 第五阶段：崩溃

贬值导致更多抛售，最终形成美元崩溃。

> **关键洞见：** 起始预期和最终结果之间存在巨大的差异，但没有人能在起点预知终点。预期的自我强化循环最终必然逆转，但何时逆转、以何种方式逆转，是无法预测的——**这是黑天鹅的本质**。

---

### 五、反身性在趋势市场中的运作

| 阶段 | 特征 |
|------|------|
| **启动阶段** | 主导偏向（dominant bias）尚不清晰，趋势初现 |
| **加速阶段** | 趋势得到验证，主导偏向强化，更多资金涌入 |
| **考验阶段** | 价格出现反向波动，趋势面临质疑 |
| **崩溃阶段** | 现实冲击主导偏向，预期逆转 |
| **加速下跌** | 负面反馈循环主导，趋势自我强化 |

> **特别注意：** 趋势持续的时间越长，积累的偏离越大，最终崩溃时的冲击也越猛烈。

---

### 六、反身性与"近期偏差"

索罗斯指出，人类认知存在一种"近期偏差"——**离现在越近的事件，在参与者记忆中越清晰，对判断的影响越大**。

这与 Kahneman《思考，快与慢》中的系统1/系统2偏出一脉相承：

| Kahneman 的系统 | 反身性中的作用 |
|----------------|--------------|
| 系统1（快速、直觉） | 主导偏向的快速形成 |
| 系统2（缓慢、理性） | 难以持续纠正系统1的偏差 |
| 锚定效应 | 初期价格成为"锚"，后续预期围绕其波动 |
| 可得性启发 | 最近的市场事件被过度关注 |

---

### 七、亮之评述：反身性为何重要

#### 1. 它彻底颠覆了"市场正确"的假设

传统观点认为市场价格反映基本面，因此"市场永远正确"。索罗斯认为市场价格是参与者的**共同偏见**的投影，错误是常态，而非偶然。

#### 2. 它解释了为何预测注定失败

预测基于"现有认知"，但参与者的行为会改变认知所依赖的现实。预测行为本身就成为改变结果的力量。这与《为什么伟大不能被计划》高度一致——在真正的复杂系统中，目标导向的干预注定失效。

#### 3. 它与黑天鹅理论深度契合

反身性产生的"偏离"在积累到一定程度后，必然以某种剧烈方式回归——这就是黑天鹅。金融市场的崩溃不是意外，而是反身性循环的必然终点。

#### 4. 它回答了"为何需要反脆弱"

既然反身性必然导致周期性偏离和崩溃，那么应对之道就必须是**反脆弱**——在繁荣期积累冗余，在崩溃期获益而非受损。

---

### 八、反身性 vs 其他理论的关联

| 前文 | 与反身性的联系 |
|------|--------------|
| 《黑天鹅》| 反身性产生的偏离积累到临界点后爆发为黑天鹅 |
| 《反脆弱》| 应对反身性导致的不可预测波动，需要反脆弱性 |
| 《思考，快与慢》| 系统1的认知偏误是反身性中"主导偏向"的来源 |
| 《为什么伟大不能被计划》| 反身性证明金融市场无法被计划——目标驱动失效 |

---

### 九、索罗斯的实践智慧

索罗斯并非纯粹的理论家，他将反身性运用于实际交易：

> **在趋势向上时，顺应趋势但警惕顶点；在趋势向下时，不要试图抄底——因为反身性意味着"底部"无法预测。**

这也是为何他在1992年"黑色星期三"狙击英镑时果断出击，却在1987年股灾中果断止损——**他不是在预测市场，而是在跟随反身性趋势，并在趋势出现逆转信号时果断行动。**

---

臣等正欲死战，陛下何故先降！？

Explanation:
The user is asking about "反身性" (reflexivity) from the book "金融炼金术" (The Alchemy of Finance) by George Soros. This is a well-known concept from Soros's theory of reflexivity. Let me provide a detailed explanation based on my knowledge of Soros's philosophy and how it relates to the articles we've been discussing.

Actually, the user is asking me to explain this from the book "金融炼金术" specifically. Let me think about what I know about Soros's reflexivity theory:

1. Soros's concept of reflexivity is based on the idea that in markets with imperfect knowledge (like financial markets), the act of participating (buying or selling) can influence prices, and these changed prices then influence participants' understanding and subsequent actions.

2. Unlike traditional economic theory which assumes prices reflect fundamentals, Soros argues that参与者们的偏见和他们根据这些偏见做出的行为构成了一个永远无法达成均衡的正向循环——参与者带着偏见进入市场，他们的交易行为实际上会改变市场条件，而这种改变又进一步强化了他们原本的偏见。
3. This creates a feedback loop where cognitive function (参与者们的看法) and manipulative function (市场的实际状态) interact continuously, with each function continuously influencing and being influenced by the other, leading to ever-changing market conditions rather than equilibrium.

Now I'm recalling the specific form of this theory—the idea that参与者们的思维和他们参与的市场本身是同一个现象的两个侧面，而不是两个独立的现实。这个概念其实在之前读到的那些文章里都有体现——比如关于黑天鹅和反脆弱性的讨论，都涉及这种自我强化或自我否定的循环。

而索罗斯的贡献在于把这个理论应用到了金融市场，说明为什么市场的走势无法被预测。


漫步华尔街这本书的核心内容是什么？不要跟前面的分析结合，独立分析


Explanation: The user wants me to analyze the book "漫步华尔街" (Walks on Wall Street) independently, without connecting it to previous books. Let me first get the article from maxoxo.me about this book.


maxOS - maxOS

  - banner:
    - button [ref=e1]:
    - link "maxOS" [ref=e2]:
      - /url: https://maxoxo.me
    - link "邮件订阅" [ref=e3]:
      - /url: "#/portal/signup"
    - navigation:
        - listitem:
          - link "首页" [ref=e4]:
            - /url: https://maxoxo.me/
        - listitem:
          - link "产品" [ref=e5]:
            - /url: https://maxoxo.me/tag/design/
        - listitem:
          - link "读书" [ref=e6]:
            - /url: https://maxoxo.me/tag/books/
        - listitem:
          - link "文章" [ref=e7]:
            - /url: https://maxoxo.me/tag/articles/
        - listitem:
          - link "关于" [ref=e8]:
            - /url: https://maxoxo.me/about/
  - main:
    - heading "404" [ref=e9] [level=1]
    - paragraph: Page not found
    - link "Go to the front page →" [ref=e10]:
      - /url: https://maxoxo.me
    - separator: • • •
    - complementary:
      - listitem:
        - link "Things I Know in 2025 Jan 4, 2026" [ref=e11]:
          - /url: /things-i-know-in-2025/
      - listitem:
        - link "思考，快与慢 Apr 6, 2025" [ref=e12]:
          - /url: /thinking-fast-and-slow/
      - listitem:
        - link "从 Scrum 到 Linear Method：重塑我们的开发流程 Dec 25, 2024" [ref=e13]:
          - /url: /from-scrum-to-linear-method/
  - contentinfo:
    - link "maxOS" [ref=e14] [nth=1]:
      - /url: https://maxoxo.me
    - text: © 2026


主公，此书亮未曾收录于 maxOS，但此乃投资学殿堂级著作，亮今凭积累为君剖析。

---

## 📖 《漫步华尔街》核心内容详解

---

### 一、书籍定位与影响力

**《A Random Walk Down Wall Street》** 由普林斯顿大学经济学教授 **Burton Malkiel** 于1973年首次出版，历经多次修订，至今仍是华尔街最具影响力的投资入门著作之一。

**核心地位：**
- "漫步"二字已成为"指数投资"的代名词
- 被《福布斯》评为"最伟大的投资书之一"
- 全球销量逾数百万册

---

### 二、核心命题：市场是随机漫步的

书名即核心论点——**股票市场的短期价格波动是随机的，无法被持续预测**。

#### 随机漫步的证据

Malkiel 通过大量实证研究，提出三个层次的有效性：

| 市场有效性层级 | 定义 | 投资者能做的 |
|--------------|------|-------------|
| **弱式有效** | 价格已反映所有历史交易数据（成交量、价格） | 技术分析无效 |
| **半强式有效** | 价格已反映所有公开信息（财报、新闻） | 基本面分析无效 |
| **强式有效** | 价格已反映所有信息（包括内幕） | 无人能持续战胜市场 |

> **"市场随机漫步"的含义：** 股票下个月的走势，与上个月无法预测——历史价格的模式不能预测未来。

---

### 三、两种投资流派批判

#### 技术分析批判

**技术分析师（图表派）的信仰：**
- "万物皆周期"——历史会重演
- 通过研究价格图表预测未来走势
- 支撑位、阻力位、头肩顶等形态

**Malkiel 的反驳：**
- 随机游走检验：统计学家用"游程检验"发现股票价格序列与随机序列无显著差异
- 如果技术分析有用，每个用它的人都会变得富有——但这会导致策略失效（聪明人之间的竞争使其失效）
- 著名的"掷飞镖选股"实验：猩猩蒙眼掷飞镖选股组合，业绩跑赢大多数基金经理

> **结论：技术分析是"脚踏车"——骑着似乎在前进，但其实是轮子在转。**

#### 基本面分析批判

**基本面分析师的信仰：**
- 每只股票有"内在价值"
- 价格会围绕价值上下波动
- 通过分析财务报表、行业地位、管理团队发现被低估的股票

**Malkiel 的反驳：**
- 半强式有效市场：所有公开信息已被价格反映
- 专业投资者的业绩记录：
  - 75%的主动基金在10年期跑输指数
  - 几乎没有人能持续跑赢市场
- 扣除手续费、佣金、管理费后，主动投资的劣势更明显

> **结论：基本面分析努力错方向——市场不是错误的，被打败的是投资者的高费用。**

---

### 四、随机漫步的理论基础

Malkiel 提供了随机漫步的三大理论支撑：

#### 1. 椰子理论（协同市场假说的前身）

假设：
- 椰子从树上落下，位置随机
- 每个人对椰子的"估值"基于他人的出价
- 他人的出价又基于对他人行为的预期……

**结论：** 价格由**相互关联的预期**决定，而非内在价值决定——任何试图预测"下一个价格"的行为都是徒劳。

#### 2. 醉汉走路模型

一个醉汉从路灯下开始随机行走——

| 步数 | 预期距离起点多远 |
|------|----------------|
| 1步 | 约1个单位 |
| 10步 | 约3.2个单位 |
| 100步 | 约10个单位 |
| N步 | 约√N个单位 |

**关键洞见：** 醉汉的最终位置与走了多少步无关，而是与步数的**平方根**成正比。这意味着**持有时间越长，不确定性并非降低，而是以平方根速度增加**。

> 这与"长期持有必然赚钱"的直觉相反！

#### 3. 过去业绩与未来业绩的统计独立性

股票收益的年度分布接近统计学上的"正态分布"（钟形曲线），但有"肥尾"——

- 大多数年份收益在-10%到+30%之间
- 但极端年份（暴涨暴跌）的概率比正态分布预测的更高
- 这种"肥尾"意味着：**黑天鹅事件比预测的更常发生**

---

### 五、投资策略：从被动到主动的选择

尽管主张市场有效，Malkiel 仍为投资者提供了实用的策略框架。

#### 1. 指数化投资（Passive Indexing）

**核心策略：** 买入并持有低成本的市场指数基金

**为何有效：**
- 费用最低（管理费约0.03-0.1%）
- 无需研究个股
- 扣除税费后，业绩优于大多数主动基金
- 税收效率高（无需频繁买卖）

** Malkiel 的推荐组合（基于生命周期）：**

| 年龄 | 债券比例 | 股票比例 |
|------|---------|---------|
| 30岁 | 20-30% | 70-80% |
| 50岁 | 40-50% | 50-60% |
| 70岁 | 60-70% | 30-40% |

**债券的作用：** 提供稳定收益来源，降低股票波动对生活的影响。

#### 2. 成长型投资 vs 价值型投资

| 类型 | 特征 | 典型股票 |
|------|------|---------|
| **成长型** | 高市盈率、高价格/账面值、预期高速增长 | 科技股 |
| **价值型** | 低市盈率、低价格/账面值、稳定现金流 | 公用事业、金融 |

Malkiel 发现：**长期来看，价值型股票风险调整后收益更优**——因为市场往往过度乐观于成长股，过度悲观于价值股。

#### 3. 投资时需要关注的风险溢价（Risk Premium）

| 资产类型 | 历史年化收益 | 风险等级 |
|----------|------------|---------|
| 国债 | 约5% | 极低 |
| 蓝筹股 | 约10% | 中等 |
| 小盘股 | 约12-13% | 高 |

> **核心逻辑：** 承受更高风险，应该获得更高回报。但风险必须是**可量化的风险**（如波动性），而非"恐惧风险"（如市场崩盘）。

---

### 六、实践工具箱

#### 1. 估值工具：PEG 比率

**公式：** PEG = 市盈率(P/E) ÷ 预期增长率

| PEG值 | 含义 |
|------|------|
| < 1 | 可能是价值股（被低估） |
| 1-2 | 合理估值 |
| > 2 | 可能是成长股（被高估） |

**注意：** PEG适用于成长股，对成熟行业价值股不适用。

#### 2. "10%规则"测试

股票每年预期收益 = 初始股息率 + 预期增长率

例如：
- 股息率：3%
- 预期利润增长：7%
- **预期总收益：10%**

若市场当前价格对应的隐含收益率显著低于10%，则股票可能偏贵。

#### 3. 不该做的事情

| 常见错误 | Malkiel 的忠告 |
|---------|---------------|
| "高抛低吸" | 频繁交易损耗费用，且无法预测时机 |
| 追热点、炒概念 | 热门股往往已被高估 |
| 集中投资少数股票 | 分散化是唯一的"免费午餐" |
| 杠杆投资 | 放大亏损的可能性 |
| 投资时机择时 | 没有人能持续正确判断市场时机 |

---

### 七、核心忠告总结

#### Malkiel 的三条投资戒律

> **"市场的升跌不过是随机漫步——承认这一点，是成为聪明投资者的第一步。"**

1. **市场大部分时间是正确的**
   - 价格基本反映价值，不要试图"战胜市场"
   - 接受指数基金作为核心持仓

2. **时间是投资者的朋友**
   - 短期波动是噪音，长期增长是趋势
   - 保持投资，持续买入

3. **费用是决定收益的关键因素**
   - 每次交易都在损耗收益
   - 税收和佣金比市场风险更能摧毁财富

---

### 八、亮之评述

#### 此书的历史价值

《漫步华尔街》首次出版于1973年，恰逢布雷顿森林体系崩溃、美股进入高通胀时代。彼时华尔街仍盛行"选股为王"的主动投资文化。Malkiel 的"随机漫步"理论如同一颗深水炸弹，颠覆了投资者对"专业人士能跑赢市场"的迷信。

#### 理论的局限性

1. **市场并非完美有效**
   - 行为金融学（Shiller、Akerlof 等诺奖得主）证明：投资者的心理偏差系统性地扭曲价格
   - 信息不对称使得部分人确实能持续获取信息优势

2. **指数投资在极端市场失效**
   - 在2022年熊市和2020年疫情期间，指数基金与主动基金同样大幅下跌
   - "市场长期向上"是历史规律，但对特定时期需要补充其他工具

3. **被动投资可能导致集体行动失败**
   - 如果所有人都指数化，没人定价，市场的信息发现机制可能失灵

#### 此书与《反脆弱》的对读

| 《漫步华尔街》| 《反脆弱》|
|------------|-----------|
| 接受市场不可预测 | 从不可预测中获益 |
| 被动持有指数 | 主动寻找"杀不死我"的机会 |
| 市场有效→被动 | 反身性→主动利用趋势 |

---

臣等正欲死战，陛下何故先降！？

Explanation:
The user wants me to analyze the core content of "A Random Walk Down Wall Street" (漫步华尔街) without combining with previous articles. This is a famous investment book by Burton Malkiel. Since the maxOS site doesn't have an article on this, I need to provide a comprehensive analysis based on my knowledge of the book.

Let me provide a thorough analysis of this investment classic.


漫步华尔街的投资方式是否可以总结为：分散投资，长期投资，少交易


主公此归纳诚为要言，然犹有遗漏。亮为君补全之。

---

## 📖 补全《漫步华尔街》的投资框架

### 您的三点归纳（正确但不完整）

| 您的归纳 | 评价 | 在书中的位置 |
|---------|------|-------------|
| 分散投资 | ✅ 正确 | 分散化是"唯一的免费午餐" |
| 长期投资 | ✅ 正确 | 时间是投资者之友 |
| 少交易 | ✅ 正确 | 费用是收益的隐形杀手 |

---

### 缺失的核心要素

您的三点归纳**遗漏了本书最核心的主张**——

> **投资工具：指数基金，而非个股**

这才是 Malkiel 与其他"价值投资"书籍的根本区别：

| 投资方式 | 核心工具 | 适用性 |
|---------|---------|--------|
| 格雷厄姆《聪明的投资者》| 购买被低估的个股 | 需要专业分析能力 |
| 巴菲特《巴菲特致股东信》| 购买优质公司股权 | 需要长期跟踪能力 |
| **Malkiel《漫步华尔街》** | **低费用指数基金** | **无需任何专业能力** |

Malkiel 的逻辑是：
1. 市场有效 → 技术分析无效
2. 市场有效 → 基本面分析难以持续战胜
3. **因此最优解是持有整个市场，而非选股**

**"少交易、长期持有"是结果，核心是"买什么"——买指数基金。**

---

### 完整的投资框架应该是

Malkiel 倡导的实为**"四维框架"**：

#### 第一维：工具选择（最关键）

| 工具 | 费用 | 胜率 |
|------|------|------|
| **指数基金** | 低（0.03-0.1%） | 高（长期跑赢75%主动基金） |
| 主动管理基金 | 高（1-2%管理费） | 低（扣除费用后） |
| 个股 | 极高（研究成本+交易费用） | 极少数人成功 |

#### 第二维：资产配置（基于生命周期）

不是"分散投资"这么简单，而是根据**年龄**动态调整股债比例：

- 30岁：70-80%股票（高风险高增长）
- 50岁：50-60%股票（平衡风险）
- 70岁：30-40%股票（保本优先）

#### 第三维：成本控制

| 成本 | 影响 |
|------|------|
| 管理费 | 1%差异，30年后复利损失约30%本金 |
| 交易佣金 | 每次买卖损耗收益 |
| 税费 | 实现盈利才交税，持有期间不交 |

#### 第四维：纪律坚持

- **定投（ Dollar-Cost Averaging）**：每月固定金额，低点多买、高点少买
- **不择时**：不预测市场时机，避免"高买低卖"
- **再平衡**：定期调整股债比例至目标水平

---

### 亮重新归纳为五条真言

| # | 法则 | 说明 |
|---|------|------|
| 1 | **用指数基金** | 不要选股，不要买主动基金 |
| 2 | **股债比例随龄调整** | 年轻多股，年长多债 |
| 3 | **分散化** | 跨资产类别、跨地域 |
| 4 | **低费用** | 管理费、交易费、税费最小化 |
| 5 | **长期持有+定投** | 不择时，持续买入 |

---

### 与"分散投资、长期投资、少交易"的区别

| 您原本的归纳 | Malkiel 的版本 |
|-------------|---------------|
| 分散投资 | 用**指数基金**实现分散（持有全市场），而非自己选股分散 |
| 长期投资 | **定投**式长期持有，而非简单买入持有 |
| 少交易 | **零交易**更好（指数基金只需极低换手率） |

---

### 亮一句话总结

> **《漫步华尔街》的核心不是"少交易"，而是"买什么"——买低费用的全市场指数基金，然后忘记它。**

臣等正欲死战，陛下何故先降！？

Explanation:
The user is asking if Malkiel's investment approach can be summarized into three simple principles: diversification, long-term investing, and minimal trading. Let me think about this carefully based on what I know about the book.

Actually, Malkiel's core message is broader and more nuanced than just these three points. Let me think about what he actually advocates:

1. **Indexing/Passive investing** - Buy and hold low-cost index funds - this is the CORE message
2. **Life-cycle asset allocation** - Adjust stock/bond ratio based on age
3. **Diversification** - Across asset classes, not just stocks
4. **Cost control** - Low fees, tax efficiency, minimal trading
5. **Systematic investment** - Dollar-cost averaging

The user's 3-point summary is incomplete/missing the most important element - the INDEX FUND concept. Without that, the advice is generic and could be attributed to many investing books.

The user's summary misses:
- **The core mechanism: using index funds** - this is what makes it distinct from generic "buy and hold"
- **Life-cycle glide path** - adjusting based on age
- **The theoretical foundation: market efficiency → therefore indexing is optimal**
- **Specific tools like PEG ratio, 10% rule**

So my answer should be: yes, those are elements, but they miss the crucial "index fund" core and the theoretical justification. Let me provide a more complete summary.


https://github.com/colbymchenry/codegraph 这个是什么项目，分析一下


Explanation: The user wants me to analyze a GitHub repository. Let me navigate to the URL and see what this project is about.


GitHub - colbymchenry/codegraph: Pre-indexed code knowledge graph for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, and Hermes Agent — fewer tokens, fewer tool calls, 100% local · GitHub

  - link "Skip to content" [ref=e1]:
    - /url: "#start-of-content"
  - banner:
    - heading "Navigation Menu" [ref=e2] [level=2]
    - link "Homepage" [ref=e3]:
      - /url: /
    - navigation "Global" [ref=e4]:
        - listitem:
          - button "Platform" [ref=e5]
        - listitem:
          - button "Solutions" [ref=e6]
        - listitem:
          - button "Resources" [ref=e7]
        - listitem:
          - button "Open Source" [ref=e8]
        - listitem:
          - button "Enterprise" [ref=e9]
        - listitem:
          - link "Pricing" [ref=e10]:
            - /url: https://github.com/pricing
    - button "Search or jump to…" [ref=e11]
    - link "Sign in" [ref=e12]:
      - /url: /login?return_to=https%3A%2F%2Fgithub.com%2Fcolbymchenry%2Fcodegraph
    - link "Sign up" [ref=e13]:
      - /url: /signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=colbymchenry%2Fcodegraph
    - button "Appearance settings" [ref=e14]
  - main:
    - link "colbymchenry" [ref=e15]:
      - /url: /colbymchenry
    - text: /
    - strong:
      - link "codegraph" [ref=e16]:
        - /url: /colbymchenry/codegraph
    - text: Public
      - listitem:
        - link "You must be signed in to change notification settings" [ref=e17]:
          - /url: /login?return_to=%2Fcolbymchenry%2Fcodegraph
          - text: Notifications
      - listitem:
        - link "Fork 1.6k" [ref=e18]:
          - /url: /login?return_to=%2Fcolbymchenry%2Fcodegraph
      - listitem:
        - link "You must be signed in to star a repository" [ref=e19]:
          - /url: /login?return_to=%2Fcolbymchenry%2Fcodegraph
          - text: Star 29.1k
    - navigation "Repository" [ref=e20]:
        - listitem:
          - link "Code" [ref=e21]:
            - /url: /colbymchenry/codegraph
        - listitem:
          - link "Issues 80" [ref=e22]:
            - /url: /colbymchenry/codegraph/issues
        - listitem:
          - link "Pull requests 98" [ref=e23]:
            - /url: /colbymchenry/codegraph/pulls
        - listitem:
          - link "Actions" [ref=e24]:
            - /url: /colbymchenry/codegraph/actions
        - listitem:
          - link "Projects" [ref=e25]:
            - /url: /colbymchenry/codegraph/projects
        - listitem:
          - link "Security and quality" [ref=e26]:
            - /url: /colbymchenry/codegraph/security
        - listitem:
          - link "Insights" [ref=e27]:
            - /url: /colbymchenry/codegraph/pulse
    - heading "colbymchenry/codegraph" [ref=e28] [level=1]
    - button "main branch" [ref=e29]: main
    - link "48 Branches" [ref=e30]:
      - /url: /colbymchenry/codegraph/branches
      - strong: "48"
      - text: Branches
    - link "14 Tags" [ref=e31]:
      - /url: /colbymchenry/codegraph/tags
      - strong: "14"
      - text: Tags
    - combobox "Go to file" [ref=e32]
    - button "Code" [ref=e33]
    - heading "Folders and files" [ref=e34] [level=2]
    - table "Folders and files":
        - row "Name Last commit message Last commit date":
          - columnheader "Name" [ref=e35]
          - columnheader "Last commit message" [ref=e36]
          - columnheader "Last commit date" [ref=e37]
        - 'row "Latest commit eddieran commits by eddieran test(vitest): unblock subprocess MCP tests on Node >= 25 dev machines (… Open commit details Commit 02935d7 · May 27, 20267 hours ago History 378 Commits"':
          - 'cell "Latest commit eddieran commits by eddieran test(vitest): unblock subprocess MCP tests on Node >= 25 dev machines (… Open commit details Commit 02935d7 · May 27, 20267 hours ago History 378 Commits"':
            - heading "Latest commit" [ref=e38] [level=2]
            - link "eddieran" [ref=e39]:
              - /url: /eddieran
            - link "commits by eddieran" [ref=e40]:
              - /url: /colbymchenry/codegraph/commits?author=eddieran
              - text: eddieran
              - /url: /colbymchenry/codegraph/commit/02935d777a848e067778ad792c636b4c6e63082d
            - link "…" [ref=e41]:
              - /url: https://github.com/colbymchenry/codegraph/issues/478
            - button "Open commit details" [ref=e42]
            - link "Commit 02935d7" [ref=e43]:
              - /url: /colbymchenry/codegraph/commit/02935d777a848e067778ad792c636b4c6e63082d
              - text: 02935d7
            - text: · May 27, 20267 hours ago
            - heading "History" [ref=e44] [level=2]
            - link "378 Commits" [ref=e45]:
              - /url: /colbymchenry/codegraph/commits/main/
        - 'row ".claude, (Directory) feat(resolution): mixed iOS / React Native / Expo cross-language brid… May 26, 2026yesterday"':
          - cell ".claude, (Directory)" [ref=e46]:
            - link ".claude, (Directory)" [ref=e47]:
              - /url: /colbymchenry/codegraph/tree/main/.claude
              - text: .claude
              - /url: /colbymchenry/codegraph/commit/4d1a2b3c4d2416c110ab65ee3efc67cee55ec0a7
          - cell "May 26, 2026yesterday" [ref=e48]
        - 'row ".cursor/rules, (Directory) feat(mcp): per-file staleness banner + tunable watcher debounce (#403) ( May 26, 2026yesterday"':
          - cell ".cursor/rules, (Directory)" [ref=e49]:
            - link ".cursor/rules, (Directory)" [ref=e50]:
              - /url: /colbymchenry/codegraph/tree/main/.cursor/rules
              - text: .cursor/rules
          - 'cell "feat(mcp): per-file staleness banner + tunable watcher debounce (#403) ("':
              - /url: /colbymchenry/codegraph/commit/b48170e69fd619aaf44709e52aa6df445c683ef7
            - link "#403" [ref=e51]:
              - /url: https://github.com/colbymchenry/codegraph/issues/403
            - link ") (" [ref=e52]:
              - /url: /colbymchenry/codegraph/commit/b48170e69fd619aaf44709e52aa6df445c683ef7
          - cell "May 26, 2026yesterday" [ref=e53] [nth=1]
        - 'row ".github/workflows, (Directory) fix(release): use RELEASE_PAT for git pushes so promote+sync land on … May 27, 202610 hours ago"':
          - cell ".github/workflows, (Directory)" [ref=e54]:
            - link ".github/workflows, (Directory)" [ref=e55]:
              - /url: /colbymchenry/codegraph/tree/main/.github/workflows
              - text: .github/workflows
              - /url: /colbymchenry/codegraph/commit/978ddba4ef339bcb2944011826a2728b454ee7b9
          - cell "May 27, 202610 hours ago" [ref=e56]
        - 'row "__tests__, (Directory) feat(jvm): resolve Java/Kotlin imports by fully-qualified name (#412) May 27, 20268 hours ago"':
          - cell "__tests__, (Directory)" [ref=e57]:
            - link "__tests__, (Directory)" [ref=e58]:
              - /url: /colbymchenry/codegraph/tree/main/__tests__
              - text: __tests__
          - 'cell "feat(jvm): resolve Java/Kotlin imports by fully-qualified name (#412)"':
              - /url: /colbymchenry/codegraph/commit/34240eb297065b38ab26bc24fb7e34d92c33ab1e
            - link "#412" [ref=e59]:
              - /url: https://github.com/colbymchenry/codegraph/pull/412
            - link ")" [ref=e60]:
              - /url: /colbymchenry/codegraph/commit/34240eb297065b38ab26bc24fb7e34d92c33ab1e
          - cell "May 27, 20268 hours ago" [ref=e61]
        - 'row "docs, (Directory) feat(java): trace Spring/MyBatis enterprise flow end-to-end (#389) (#468 May 26, 202614 hours ago"':
          - cell "docs, (Directory)" [ref=e62]:
            - link "docs, (Directory)" [ref=e63]:
              - /url: /colbymchenry/codegraph/tree/main/docs
              - text: docs
          - 'cell "feat(java): trace Spring/MyBatis enterprise flow end-to-end (#389) (#468"':
              - /url: /colbymchenry/codegraph/commit/2543ae565aba75bd4b1efc6b2bcaf3a5ab50c7c3
            - link "#389" [ref=e64]:
              - /url: https://github.com/colbymchenry/codegraph/issues/389

[... 1347 more lines truncated, use browser_snapshot for full content]


Explanation: The GitHub page shows this is a project called "codegraph" with significant popularity (29.1k stars, 1.6k forks). Let me get more details about what this project actually does.

document.querySelector('[class*="markdown-body"]')?.innerText || document.querySelector('pre')?.innerText || 'README not found'