试错法是什么?不断尝试、从错误中学习的解决问题方式
试错法(Trial and Error)是一种通过反复地尝试不同的方法,观察每一次的结果,淘汰失败的做法、保留有效的做法,从而逐步找到解决方案的方法。它是人类和动物最基本的学习方式之一,也是人工智能中强化学习的核心思想。
心理学中的试错学习
美国心理学家爱德华·桑代克在 19 世纪末进行了一系列著名的实验,对试错学习进行了系统的研究。他把一只饥饿的猫关在一个特制的笼子里,笼子外面放着食物,笼子里有一个机关,比如一根绳子或一个踏板,只有触动了机关,门才会打开。一开始,猫在笼子里乱抓乱咬、四处乱撞,经过很长时间,才偶然碰到了机关,逃出笼子吃到了食物。桑代克把猫一次次地放回笼子,发现猫逃出来所需要的时间越来越短,无用的动作越来越少,最后一进笼子就能直接去触动机关。
根据这些实验,桑代克提出了“效果律”:一个行为如果带来了令人满意的结果,这个行为在以后就更有可能再次出现;如果带来了不愉快的结果,就更不容易再出现。这一理论对后来的行为主义心理学,以及斯金纳的操作性条件反射研究产生了深远的影响。
试错法的特点
试错法的优点是:不需要事先完全理解问题的原理,只要能够尝试并判断结果的好坏,就可以进行;在问题复杂、缺乏理论指导、或者其他方法都不适用时,它往往是唯一可行的办法;而且有时能发现意想不到的解决方案。它的缺点是:可能需要非常多次的尝试,效率较低;当可能的选择非常多时,盲目地尝试可能永远也找不到答案;在每次尝试的代价很高、或者错误会造成严重后果的场合,比如医疗、航空,就不能随意地试错。因此,在实际中,试错往往与知识和经验结合起来,有方向、有策略地进行尝试。
在人类活动中的例子
科学研究和发明:爱迪生在研制电灯时,尝试了数千种不同的材料作为灯丝,最终找到了可以长时间发光的材料。他有一句广为流传的话:“我没有失败,我只是发现了一万种行不通的方法。”新药研发中,也常常需要对大量的化合物进行筛选和试验。工程和软件开发:程序员调试代码时,常常需要尝试修改不同的地方,观察结果是否改善。产品和商业:互联网公司常用的 A/B 测试,同时向不同的用户展示不同的版本,根据数据选择效果更好的方案,也可以看作一种有组织的试错。
在人工智能中:强化学习
试错的思想是强化学习的核心。在强化学习中,智能体并没有被事先告诉应该怎么做,而是在环境中不断地尝试各种动作,根据环境反馈的奖励或惩罚来调整自己的行为:带来奖励的动作,以后就更多地采取;带来惩罚的动作,以后就少采取。这与桑代克的效果律非常相似。强化学习领域的奠基人理查德·萨顿和安德鲁·巴托就曾指出,试错学习是强化学习的重要思想来源之一。DeepMind 的 AlphaGo 通过与自己进行数百万局对弈,在不断的试错中学会了超越人类棋手的下法;机器人通过反复地尝试学会走路和抓取物体;大语言模型也通过强化学习,在大量的尝试中学会更好地解决数学和编程问题。
强化学习中的一个核心问题是“探索与利用”的平衡:智能体既要利用已经知道的好方法来获得奖励,又要不断地探索新的方法,才可能发现更好的方案。这正是试错法中“尝试新路”和“坚持已知有效的做法”之间的权衡。