向 AI 学习解决问题
2 年前的一次内部分享,整理发出。
源自纪录片《AlphaGo》中的一个小片段。
1
—
我们先花一分钟看看这个视频片段。
视频介绍了一段 AI 程序学习打砖块游戏的历程——从最初的笨拙,到 300 局游戏后的驾轻就熟,再到 500 局游戏后的骨灰级玩家。
非常厉害,对不对?
惊叹之余,我好奇的是,AI 是如何掌握并精通打砖块游戏?作为人类,我们是否可以借鉴其学习方法?
这是个很有意思的话题。
计算机的运算模式,本身就非常值得学习。因为我们当中最聪明的一批人设计了计算机,我们研究计算机的运算模式,实际上就是学习这些聪明人所提炼的思维模式。譬如内存和硬盘、类和对象、数据结构和算法、多线程,这些概念对思维都非常具有启发性。
而 AI,或者说“机器学习”,无疑是最能够具有启发性的。因为这是计算机头一回能够自行获得新知识,而非向人类习得已有的知识(以视频中的例子,AI 程序甚至习得了连程序设计者都不知道的高端玩法)。
这正是我们在社会大学经常面临的情境——在陌生环境解决新问题,没有权威教科书,也没有老师手把手教,只能依靠实践和探索。
我相信,我们可以向 AI 学习到一种通过实践获得新知识、并解决问题的通用方法论。
2
—
对此,我拆解出的要素是:目标 x 训练量 x 反馈机制 x 随机性。
下面逐一述之。
目标
AI 有非常清晰的目标:在游戏中拿到高分。
这是 AI 奋斗的方向,也是 AI 确认自己是否拿到合格成果的标尺。目标帮助明确方向、界定成果。
对于目标,需要特别分辨明晰的是结果目标和过程目标——拿到高分是结果目标,玩 500 局是过程目标。感受一下这两个目标的力度,显然,只有结果目标能够指引 AI 成为游戏专家。甚至不妨极端一点,结果目标才叫目标。
我们学到了第一点:要有清晰的结果目标。
训练量
AI 经历了 500 局的训练。正是通过这一局局的训练,AI 逐渐掌握到打砖块游戏的各种玩法,进而成为王者。无训练,不提高。
但并非所有训练都具有意义——比如,当高级玩法都已被解锁了,再进行 100 局的基础训练,那就真的只是娱乐局了。只有持续进行高质量的训练,力图通过每一次训练都获取新的知识,才能迅速了解陌生领域、进而解决问题。
人类赶不上 AI 的训练速度(毕竟,AI 计算迅速且不知疲倦),但在训练质量上其实是能够具有优势的——我们能够有意识地设计高质量训练。
我们学到的第二点是:要有足够多的高质量训练。
反馈机制
每一次训练,AI 都能得到及时反馈。
打掉一个砖块,弱正反馈;
打掉很多砖块,强正反馈;
没接到球,游戏结束,负反馈;
etc...
基于这些反馈,有效动作得到加强,无效动作被削弱。每一次训练,都能够离目标更近一些。
正是反馈机制连接起目标和训练量。反馈机制以目标为尺,以训练量为输入,以知识为输出。
反馈机制也有优劣之分,它的核心指标是输出值/输入值,即基于同样训练量所能输出的有效知识量。
以打砖块 AI 为例,我们可以设计两种不同的反馈机制:
一号反馈机制:每局游戏后,给予反馈;
二号反馈机制:每次击球后,给予反馈。
你觉得哪种反馈机制会更好?
再举一个现实例子,我们为什么对“养备胎”深恶痛绝?不正是因为这一行为破坏了反馈机制嘛。
随机性
AI 在 500 局后,探索出一种全(chuan)新的玩法——将球直接打到砖墙后方。这是程序设计者都不知道的玩法,却能够迅速打掉大量砖块,非常有效。
这便是创新。创新源自随机性,即现有知识体系之外的要素。
当然,这恰好是创新的一个正面例子。创新是个中性词。可以猜想,AI 一定也进行了许多其他创新尝试,却未必每一个创新都能带来好的成果。
这没关系,对创新足够宽容,但对创新的结果足够残酷。用 10% 的成本,寻求可能的 10x 回报。
想一想达尔文的进化论:物竞天择,适者生存。
3
—
最后提供一个检查清单,如果你正陷在瓶颈,不妨试试用此清单逐一确认。
是否有清晰的结果目标?
是否进行了足够多的训练?
训练质量高吗?
有基于目标的反馈机制吗?
每次训练得到的反馈足够快吗?反馈结论足够清晰吗?
思维被禁锢了吗?
发送“alphago”给本公众号,可获取纪录片《AlphaGo》在线播放地址。
推荐阅读