7.6 强化与奖励

04-12Ctrl+D 收藏本站

关灯 直达底部

要想达到学习的目的,每次玩游戏的时候都必须产生多得多的信息。这可以通过把问题拆分成若干部分来实现。成功的单元就是目标。如果目标实现,它的子目标就得到了强化;如果没实现,就受到抑制。

——艾伦·纽厄尔

有一件事可以确定:做以前我们做过的事总是会比较容易一些。我们的思维中发生了什么才会这样呢?有这样一种设想:在解决问题的过程中,特定的智能体一定是唤醒了某些特定的其他智能体。如果智能体A的工作是唤醒智能体B,那么让A唤醒B更容易或者让A唤醒其他智能体更困难,在这里就是一种“奖励”。我有一段时间特别痴迷这个理念,所以设计了一台称为Snarc机器,它就是根据这个原则进行学习的。它由40个智能体组成,每个智能体都通过一个“奖励系统”和若干个其他智能体相连,数量随机。这个奖励系统会在每次完成任务时激活,它可以让每个智能体以后更有可能去唤醒它们的接收对象。

我们向这台机器呈现的问题类似这样:学习在迷宫中找到一条路径,同时还要躲避充满敌意的追捕者。它很快就学会了解决简单的问题,但从来没有学会解决困难的问题,比如建塔或者下棋。很明显,要解决复杂的问题,任何一台尺寸有限的机器都必须能在不同的环境中用不同的方式来重新利用它的智能体,比如“看见”必须同时参与到两个任务中去。但是Snarc试图学习在一个复杂的迷宫中找到路径的时候,一个典型的智能体可能会在某一时刻建议朝一个不错的方向移动,然后又在另一时刻建议朝一个较差的方向走。之后,当我们因为它做了我们喜欢的事而奖励它时,两种决策的可能性都增加了,而且那些好的方向和差的方向都倾向于抵消对方!

在设计通过“强化”两个智能体之间的联结而进行学习的机器时,上述问题就制造了一个两难困境。在解决难题的过程中,人们通常都会先尝试一些错的方向,然后才能找到正确的道路,实际上这也正是我们将其称为“难”题的原因。为了避免学习那些错误的步骤,我们可以设计一台机器,只强化快要成功之前的最后几步。但这种机器只能学会解决那些只需要几步就能解决的问题。或者我们也可以把奖励设计成在更宽泛的时间范围内起作用,但这样的话,不仅会同时奖励好的和不好的决策,而且会抹杀之前学会的其他事。通过不加区分地强化智能体之间的联结,我们是无法学会解决难题的。对于需要许多步骤的问题或者需要同样的智能组完成不同工作的问题,为什么在所有动物中,只有那些有强大头脑的人类近亲才能学会解决呢?我们要在智能组完成目标时所采用的策略中寻找答案。

你可能会提出海狸要通过许多步骤才能建堤坝,一群白蚁在建造复杂的巢穴城堡时也是如此。但是这些奇妙的动物并不是靠个体学习到这些成就的,它们只是遵循一些经历了几百万年已经刻入它们基因的程序。你无法训练一只海狸去建造白蚁的巢穴,或者教授白蚁建堤坝的方法。