模块组合的问题
(如果觉得又臭又长,你可以直接跳到后面的 证明 部分(证明组合派不可能做出真正的智能))
很多人认为只要把多个模块组合
在一起,就能实现智能。
弊端
给参工具模块擦屁股
不论你试图'整合'任何外部模块,都会带来弊端,使得你不得不花时间来更新所有参与组合的 '模块',因为环境永远在变,未来不可预知,工具模块总是需要更新:
技术或模块 | 弊端 | 代价上限 |
---|---|---|
深度学习 | 人力标注、巨大的更新耗能使得系统不能即时更新 | 无限 ∞ |
图谱 | 人力标注、且需要进行很多难以达成的“语法”转换 | 无限 ∞ |
NLP | 人力定义、需编写海量的专用算法,比如数字的识别和处理,主谓宾定状补的特殊处理等 | 无限 ∞ |
以上这些技术,用在工具场景下,都是非常“好”的工具,但用在智能场景,则很难覆盖特例
,也很难即时更新
穷途末路
随着环境的变化,各种工具都会逐渐展露出缺陷和弊端,从长远看,其修补的代价也趋近无限大,以至于只有两个选择:
- 你不得不
参与
到各种工具的开发中,试图提升 “外部模块” 的功能完整性。 - 你不得不
等待
别的团队进行模块的更新(比如更新纽扣
问题,下面的简单证明过程会提到)。
但是,由于环境永远在变动,所以工具的缺陷和代价是无限
的,上面两点都不可能最终达成。
避免陷入自我合理化
人往往对那些比较熟悉或熟练的事情产生好感,如果长期处在工具设计圈中,会对各种工具产生一种无须证明的好感,最终合理化这些工具的使用并认为"工具就是智能",偏离了智能的设计初衷。
避免浪费精力
试想一下,有没有哪一种工具
会停止更新? 微信、抖音、计算器、字典、词典、操作系统,这些都需要不停更新。而且这些工具都需要人力参与才能更新。不更新的项目,全都死了。由于环境的动态的,所以工具必须随着环境变迁持续更新。
不管你整合哪一种外部工具,它们都存在这样或那样的问题,虽然做出了很多看似酷炫的工具,但最终都存在各种问题,最终,你都不得不参与到外部工具的修补的队伍中、或等待工具的修补。最后导致很多精力被浪费在修补和等待中。
粗略的证明
从人脑角度
大部分智能设计者都认为自己的参照物是人脑,如下图:
为了方便讨论,我们先把大脑简化成下面这幅模样,如下图:
然后我们先假设组合派
是正确的,把大脑切分成两个模块
(或多个模块),如下图:
接下来,由于两个模块
之间需要通信
,所以我们人为地设定一个接口
,连一条红线代表接口:
然后我们反思一下,我们在工业级,或者 IT 界,有没有遇到过能够 “自动” 生成的 “接口”?
答案是,似乎没有,目前为止,大部分接口都需要人类程序员参与才能建立。
好,我们接着往下走。
现实生活中,单一接口能传达的信息极其有限,不仅格式
受限,带宽
也受限,往往达不成理想的沟通,所以你不得不持续增加接口
,如下图:
如果项目比较简单还好,几条搞定了,但如果是大型应用
或者你期望的智能
项目,接口还必须持续增长,如下图:
请记住一个前提,大部分接口(可能是全部的接口)都是用人力(程序员)来定制和衔接的。负责衔接的团队会越来越庞大。相关的 bug 也会越来越多,下面是腾讯微信大部分版本的更新简介:
强如腾讯,也没办法写出完美的程序,同样需要修修补补。
随着功能的增多,模块间接口继续增加:
到了这种地步,要不反思一下:
- 到底有没有必要从大脑中切分出模块?
- 费这么多人力搞这么多接口,最后变成了有多少人力就有多少智能,为什么不能让系统自己生成接口(链接)?
- 模块论、组合论,一定适用于智能项目吗?
- 为什么不能让系统自动学习而无需人工干预?
我们再回头看人脑的皮层,是不是一个相对完整的整体? 至少没有明确的分界线:
显示生活中,你也找不到任何一个皮层被切分还依然智力正常的人类。
纽扣问题
- 假设你要建造一个系统,一个 “ 侦探 ” 系统
- 你
只做推理部分
,剩余的感知,交给 “深度学习” 这个外部模块,也就是说,你走的是组合路线
。 - 此时
案发现场
遗漏了一个纽扣
,不是被害者的,所以显然是凶手留下的。 - 过了几分钟,找到了几个嫌疑人,于是你的系统打算观察几个嫌疑人的身上有没有遗失纽扣。
- 于是内核系统向外围模块(深度学习)发出了识别的请求。
- 结果外围模块的识别结果是这样一个数组:
['穿着夹克的男人','穿着红裙的女人', ... ]
。 - 这显然不符合内核的需求,主要是因为对应的
深度学习模块不是针对纽扣来训练
。 - 于是你向谷歌发了
一封信
,希望他们在训练的时候,加上图片中是否包含纽扣
,以及纽扣是否缺失
的标注
。 - 过了几天,过了几周,然后又过了几个月,你发现没有回信。
- 于是你决定,不得不
自己训练一个
自己的 “深度学习” 模块,但很快你发现一个问题,要构建足够大的视觉模型,以及频繁更新大模型,需要的代价很大
,如下图:
注意,这不是一次性的费用,而是每当你遇到任意一个 纽扣
问题(未经标注)或类似的问题,你都必须付出 1200 万美元的代价。
问题如果进一步细化,比如特定图案、特定材质的纽扣
,代价就更大了。
你心想,没关系,只要人类社会里出现过的规则或事物,你只要有足够的耐心,有足够多的标注团队、足够多的算力,你就可以达成这个智能系统(于是你又想起了谷歌,但谷歌依然没有回信)。
那么,那些不曾出现过的规则呢?
兔狗实验
看看你的 “侦探” 系统能不能应对这种情况:
侦探系统遇到一个小女孩,她掌握了核心案情,她要求你必须跟她玩一个即时制定规则的游戏
,她才会把案发现场的实情告诉你
这是一种即时游戏、交互式游戏,游戏参与者可以随时协商游戏规则,比如这个游戏:
- 看见兔,说狗。
- 看见狗,说兔。
规则可以随时变化:
- 抽到梅花代表成功。
- 抽到黑陶代表失败。
也可以反过来:
- 抽到梅花代表失败。
- 抽到黑陶代表成功。
此时,由于外围系统(深度学习)并没有这些即时规则
的标注
数据,更不可能训练相反的规则,所以外围系统只能向内核输出 ['我看见了兔,但我不擅长推理规则']
。
此时,小女孩觉得这个太简单了,毕竟外围模块还能识别出兔子,于是她突然改变了规则,随机
在草稿上画了一些图案
:
小女孩指了指左边的图案说,看见这个说兔
, 然后指了指右边的图案,看见这个说狗
。
这些潦草的图案(甚至可以更潦草),远远超出了深度学习的训练范围,所以它只能输出 我什么也看不见
。
此时,侦探系统没办法,只能给你打电话,让你帮忙识别这幅图的左边和右边分别是什么。
发现没有,你的系统需要一个 “保姆” 常年跟着它,系统整合的外部模块越多,需要保姆插手的地方就越多。
你可能会反驳说,需要保姆的系统,也是侦探系统啊。
是的,这个 “侦探”系统必须依附一个人类智能体才能体现出它的智能。
同理,我们可以推出如下结论:
- 一个包含了推理功能的组合派系统,需要绑定一个人类,才能做 “
决策系统
”。 - 一个包含了推理功能的组合派系统,需要绑定一个人类,才能做 “
聊天系统
”。 - 一个包含了推理功能的组合派系统,需要绑定一个人类,才能做 “
咨询系统
”。
注意,以上的关键字是:绑定一个人类
。
这样的系统,只能成为工具或应用,但永远跟真正的智能差那么几步。
如何做才能算统一和完整?
(不定时更新...)