思维模型格栅

生物与演化 · 2/10

适应与局部最优Adaptation and Local Optima

每一步都在变好,也会困在小山顶;能走多远,取决于中间的路能否走通。

新食物一直在培养液里,十二支细菌却只有一支演化出了吃它的本领。2008年,美国密歇根州立大学的理查德·伦斯基团队报告:长期培养的一支大肠杆菌,在约三万代后获得了在有氧条件下利用柠檬酸的能力。团队取出冷冻保存的祖先菌,重新开展演化实验,发现此前积累的遗传改变影响了这项能力能否出现。同样的食物摆在面前,不同支系走过的路,却让它们拥有了不同的下一步。

为什么成立

每一步都要变好,会挡住更好的组合

两个改变合在一起有利,拆开却都吃亏,就能挡住逐步改进。设两处基因各有两种状态:原组合的适应度为10,只改第一处降到9,只改第二处降到8,两处都改却升到15。如果每次只改一处,而且只保留改善,种群就会停在10。更好的组合存在,但通向它的第一步会被淘汰。

局部最优由高度和步长共同决定

适应度景观把遗传组合画成位置,把特定环境下留下后代的相对能力画成高度。一次变异能到达的组合,就是邻近位置。当前位置若满足:

白话说:所有能一步到达的位置,都没有这里好。这就是局部最优。它只胜过附近的选择,更远处还可以有更高的山顶。基因会互相影响:同一个变异,在一种组合里有利,在另一种组合里有害。这种相互作用能让景观出现多个峰。

当下的优势不会替未来的收益铺路

当小幅有利变异主导适应时,演化沿着眼前能提高繁殖成功的方向推进。一个改变即使能为后续突破铺路,只要当下吃亏,就难以扩散。它没有预见高峰、主动忍受低谷的能力。把这个模型用到组织或个人身上,要找出三个具体东西:什么成绩决定方案去留,一次允许改多少,以及中间退步的方案能存活多久。

出处

适应度景观来自演化遗传学,休厄尔·赖特于1932年提出这一图景。2006年,丹尼尔·温赖希等人研究了与一种抗生素抗性酶有关的五个点突变。其中四个位于编码区,一个位于调控区。120种改变顺序中,只有18种能让抗性步步提高。这展示了中间步骤如何限制通向同一结果的路线。

换个领域看

商业

换掉赚钱方式

只奖励旧业务效率的预算,会挡住另一套赚钱方式。2007年,Netflix在经营DVD邮寄租赁的同时推出在线播放。优化仓储和邮寄能改善旧业务,在线播放却要投入版权和播放技术。若项目必须立即降低每张光盘的配送成本,新服务就过不了立项这一关。

技术

换个起点搜索

换个起点,能让搜索走向另一座山顶。工程师优化配送路线,每次只交换两个送货点的位置,并保留更短的路线。当所有两点交换都无法缩短路程时,这套规则就会停下。重新打乱送货顺序再优化,或一次重排一整段,能搜到原先小步交换到不了的方案。

个人生活

改动作先变慢

只保留当天能提速的动作,会挡住需要重新熟悉的技术。一个靠抬头换气游自由泳的人,继续加快划臂已难提速;改成侧头换气,最初却会打乱节奏。教练让他先分段练习,再测整段用时,就是让新动作得到练熟的机会,而不因第一次变慢就被放弃。

遇事时问自己

  1. 什么成绩决定方案能否留下,它衡量的是我真正想改善的结果吗?
  2. 我说的“已经最好”,覆盖了哪些改动范围和尝试过的起点?
  3. 有没有两个改动必须一起做,拆开做反而都会变差?
  4. 哪些新路线会因中间成绩下降而被提前淘汰,我能怎样给它们留出试验空间?
  5. 试验最多能承受多大损失,什么结果会让我继续,什么结果会让我退出?

边界与误用

局部最优适合解释改动范围受限、评价标准相对稳定的停滞。对凸目标在凸可行域内求最小值时,局部最优就是全局最优;环境改变时,原来的高度和山顶也会改变。生物演化还能借助遗传漂变、重组等途径跨过低谷,困住多久取决于种群和遗传条件。最常见的误用,是把任何停滞都叫作局部最优,再把短期亏损当作突破的证据。新路线应有可检验的改善依据;愿意承受退步,不会自动让前方出现高峰。

练一练

一家软件公司的客服主管每次只准改一项流程,试行一周;平均处理时间增加,就撤回。取消工单转派,会让新人处理难题更慢;增加专长培训,会占用当周接单时间。小组试验发现,两项一起实行并完成培训后,处理时间缩短了15%,解决率也提高了。

如果继续沿用原来的改进规则,最可能出现什么结果?

一名投资经理只研究一组固定的预期收益和协方差数据。她要在不做空、权重合计为100%、预期收益不低于指定值的条件下,最小化组合方差。这里的方差函数是凸函数,可行集合也是凸集;算法已确认,当前权重附近的任何可行调整都不能降低方差。

哪种判断最站得住?

阿岚学外语两年,阅读进步变慢。她停掉分级阅读,改为每天看两小时无字幕剧集。六周后,她在同一难度材料上的理解率下降了,也没有发现自己听懂得更多。她说:“换路线必然先退步,成绩下降说明我正在走向更高水平。”

对这次换法,哪种判断最站得住?