算法学到什么
如果与学习型算法的互动是沟通,我们正在处理一种人工沟通的形式。笔者在这里所说的“人工”不只是指由某人进行的沟通,因为从这个意义上说,所有沟通都是人工的。当涉及一个实体(算法)时,该沟通就是人工的,该算法是由不参与沟通的人构建和编程来充当沟通伙伴的,这是与人工伙伴的沟通。
更认真地考虑人工沟通可以帮助我们探索算法学习的神秘能力。最近使用大数据的算法可以学习识别以前从未遇到过的图像,就未知话题进行对话,分析医疗数据并制定诊断,以及预测用户的行为、推理和意愿。基于这些能力,我们可以(或很快能够)自动驾驶汽车,将在线电话从一种语言实时翻译成另一种语言,并使用数字助理在任何特定时刻传递我们需要的信息。但是学习型算法学到了什么?又是谁教会了它们?
自学习算法显然可以自学习。无论是有监督的、半监督的还是无监督的,学习型算法都会自主决定如何学习和学习什么。它们能够使用数据来学习它们尚未经专门编程的功能。它们的程序员只设计一组程序,应该允许机器以开发自己的方式来完成任务,甚至(在无监督学习的情况下)来确定自己的任务、在数据中查找结构,例如分组或集群。程序员不知道机器在学习什么,而是教它自主学习。
这不是一件容易的事,特别是如果它是一个明确的目标。卡内基梅隆大学训练有素的机器人研究员迈克尔·华纳声称,在许多情况下,你这样做是“因为你并不真正了解系统应该做什么。”程序员给出指示,学习者会按照自己的方式使用,然后看结果是否令人满意。例如,当一个学习型算法被期望去学习玩游戏时,程序员不会教它动作,甚至游戏规则,机器经过多次尝试后,程序员会告诉它游戏的结果是赢还是输。学习型算法使用这些“强化”,以自己的方式计算一个评估函数,该函数指示应采取哪些行动——无需做出预测、制定游戏策略、“思考”,也无需想象对手的观点。没有人知道什么机器学习了,或者它是如何学习的,但这些机器却有惊人的表现,例如击败了国际象棋或围棋冠军。正如谷歌为下围棋而构建的计算系统阿尔法狗的程序员所言:“我们的目标是击败最优秀的人类棋手,而不只是模仿他们。”
阿尔法狗学会了成为一名出色的围棋选手,并击败了世界上最好的棋手。为此,它没有学会像人类玩家那样(或更好地)玩游戏。事实上,该算法并没有学习围棋——它学会了参与围棋,利用其他参与者的动作来开发和改进自己的动作。阿尔法狗最初是使用来自服务器的数据进行训练的,该服务器允许人们在互联网上相互对战。玩家都是业余爱好者,他们的技能相当粗糙,但程序通过与自己进行数百万场比赛极大地提升了这些技能。阿尔法狗和其他以游戏为导向的算法通过自我对弈来学习,通过反复试验的过程来完善它们的技能。系统“不仅从人类的动作中学习,而且从自身的多个版本生成的动作中学习。”
这些程序证实了“算法学习的不是思考而是参与沟通”这一假设,即(人为地)发展一种自主视角,使它们能够做出适当的反应,并在与其他参与者的互动中生成信息。阿尔法狗怎么想或不怎么想与它的表现无关。它是有能力的、反应性的和创造性的——也可能是令人惊讶的。它是一个完美的游戏伙伴,甚至正是因为它不像人类玩家那样思考。通过训练,算法不会变得更智能化,它们只是表现得更好。程序员自己并不理解算法的“推理”。当程序员指出算法“错误”时,他们只是发出错误信号,而不指出错误是什么。算法使用这些强化信号来指导自己的行为,这种行为变得越来越精细和有效——而且越来越难以理解。