学习范式
持续学习(continual learning)
/ kun-TIN-yoo-ul LER-ning /
人一辈子都在学新东西,却不会把旧的抹掉:学会了开货车,你不会就此忘了怎么开轿车。机器在这件事上却出奇地糟糕。持续学习——也叫终身学习——就是要造出这样的模型:能随时间不断学会新任务,同时守住它早已掌握的东西。
拦路虎有个戏剧化的名字:灾难性遗忘。神经网络把一切都存在同一套共享的权重里。拿一个新任务去训它,权重就会挪动去贴合新数据——这恰恰覆盖掉了当初编码旧任务的那些设定,旧任务于是可能几乎彻底崩塌。所以持续学习多半是在「吸收新知」的同时去「捍卫旧识」:回放少量存下来的旧例子、保护对过往任务最要紧的那些权重,或者为新任务另辟一块单独的容量。它的理想,是从一连串不断变化的任务流里学习,最终对所有任务都拿得起来。
这之所以重要,是因为现实世界不会静止——新的商品类别、新的俚语、新的欺诈手法层出不穷,而每来一样就把一个庞大模型从零重训一遍,要么浪费要么根本做不到。诚实地交代一下现状:持续学习是一个活跃而尚未攻克的研究领域。每种方法都得有所取舍——存旧数据的内存、算力、或者能塞进多少新东西的上限——还没有哪一种,能比得上人类一生中那种轻松而优雅地一点点累积技能的方式。
一个已学会识别十种动物的模型,之后又被拿去训练另外十种——却没有再回看原先那十种。默认情况下,它如今能稳稳认出新的十种,对原来的十种却错得一塌糊涂:这就是灾难性遗忘。在新一轮训练里掺进一小批旧例子的回放缓冲,就能让原先的本事大体保住。
学了新的,可能抹掉旧的——这就是灾难性遗忘。
核心的敌人是灾难性遗忘:在新任务上训练,会覆盖掉承载旧知识的那套共享权重。还没有哪种方法能彻底解决它——每种都得在内存、算力或「能塞进多少新知识」之间权衡。
又称
另见