想象一位中餐馆的年轻学徒阿明。他花了三个月练就一手麻婆豆腐,闭着眼都能撒准花椒。后来老板决定加开西餐档口,阿明又去学牛排和焗烤。三周之后,他能把惠灵顿牛排做到教科书水准,可当老主顾再点麻婆豆腐时,他竟忘了豆瓣酱该放几勺——学一样、忘一样。这就是终身学习要解决的核心困境。 机器人和阿明一样面临“菜单不断更新”的处境:工厂里的机器人今天学习组装新款手机,明天学习包装新型产品;家里的扫地机器人今天学会识别新家具,明天要学会避开新宠物。如果每学一个新技能,就把旧技能“覆盖”掉,机器人就永远无法真正融入真实世界。 好在工程师们从阿明的师傅那里偷师了三大法宝:写菜谱(保护重要参数)、扩灶台(扩展网络结构)、常回灶(重放旧任务样本)。这篇文章将带你认识终身学习机器人的原理、算法与工程实践,看看一碗麻婆豆腐如何守住,惠灵顿牛排又是如何端上桌的。
掌握终身学习技术,AI 工程师能让模型在真实环境中持续进化而不“翻车”,这是机器人落地与智能体长期稳定服役的核心竞争力。
可视化演示
展示机器人终身学习的知识累积曲线、灾难性遗忘与回放缓解机制、多任务技能树扩展,揭示持续学习的核心挑战与解决方案。
本节配有交互动效(进入视口后自动加载,约 3KB)。
知识累积曲线 连续学习:机器人按序学习多个任务,知识量持续增长 知识保留:旧任务知识通过正则化方法部分保留 性能波动:新任务学习初期旧知识受到干扰 K(t) = Σ ΔK_i × (1 - λ(i,t)) 终身学习通过知识累积与保留实现持续性能提升
概念与挑战
阿明是街角中餐馆的学徒。第一天师傅只让他做麻婆豆腐,三个月后他已经能闭着眼撒花椒。可当餐厅要增加回锅肉、宫保鸡丁时,问题来了——每天只有八个灶眼、一口炒锅,新菜练得越勤,麻婆豆腐的手感就越生疏。一位真正的“总厨”,不仅要会做新菜,更要让菜单上的每一道菜都保持水准。终身学习的全部故事,就藏在这个朴素的道理里。
机器人同样面临“菜单不断更新”的处境。终身学习(Lifelong Learning)指智能体在其整个运行周期内,持续从依次到达的任务流中获取新技能,同时保留并利用已学会的旧技能。与传统的“一次性训练—部署”不同,终身学习没有明确的训练终点,任务一个接一个到来,模型必须边学边用、边用边学。
这个问题的骨架由三个核心设定构成:第一,任务按时间顺序陆续到达,模型永远不知道下一个任务长什么样;第二,旧任务的数据通常不会重新提供,没有“翻旧账”的机会;第三,所有任务共享同一份网络参数,改动参数去适应新任务,就可能伤及旧任务。形式化地看,终身学习的终极目标,是让模型在所有任务上的总损失最小:
对阿明来说,总损失就是“食客满意度”:每道菜都有人打分,总厨不能只顾把新菜做到满分。终身学习机器人的全部难题,就藏在这个“既要……又要……”的总分里。
- 求和符号从第 1 个任务一直加到第 T 个任务,表示把机器人整个生命周期内的所有任务都算进去,一道菜都不能漏。
- 期望对某一任务的数据分布求平均,也就是把该任务所有样本的损失取平均,衡量模型在这个任务上“平均做得多差”。
- 损失函数ℓ 比较模型预测 f_θ(x) 与真实答案 y 的差距,差距越大说明这道题做得越差。
灾难性遗忘
阿明为了把惠灵顿牛排做到教科书水准,连续三周没碰川菜。某天老主顾点麻婆豆腐,他手一抖,豆瓣酱放多了一倍。师傅叹气:“学新菜,把老手艺丢了。”这就是厨师版的灾难性遗忘——学得越投入,忘得越彻底。
灾难性遗忘(Catastrophic Forgetting)指神经网络按顺序学习新任务时,权重更新以拟合新数据,却在不知不觉中破坏了之前学到的决策边界,导致旧任务性能急剧下降。网络参数是同一份“共享记忆”,没有人类大脑那样的分区隔离。训练新任务时,权重沿新任务损失的负梯度方向大步前进;可旧任务的信息早已不在场,这个“前进”很可能就是旧任务的“深渊”。研究者用遗忘率来量化这一现象:
这种困境的根源被称为稳定性—可塑性困境:网络既要稳定地保持旧参数,又要可塑地吸收新知识,而两者天然冲突。阿明也总结出了教训:不能为了新菜完全停掉旧菜的练习手感,必须有系统的方法守护旧手艺——这正是后面三节要讲的三大法宝。
\displaystyle \theta \leftarrow \theta - \eta \nabla_{\theta}\mathcal{L}_t(\theta), \qquadF = \frac{1}{T-1}\sum_{t=1}^{T-1}\big(a_{t,t} - a_{t,T}\big)- 梯度更新η 是学习率,∇L_t 是当前损失对参数的梯度,参数往损失下降最快的方向移动一步。
- 新旧准确率a_{t,t} 是刚学完任务 t 时的准确率,a_{t,T} 是学完全部任务后任务 t 的准确率,两者之差就是“掉了多少”。
- 遗忘率 F对所有旧任务计算准确率下降量再取平均,F 越大,说明遗忘越严重。
正则化保护
师傅给阿明支了第一招:写菜谱。麻婆豆腐的每个关键步骤——豆瓣酱要剁细、花椒后放、豆腐要焯水——都用红笔圈出“命门”。学新菜时,凡是旧菜谱上圈了红圈的步骤,绝不许改动;其他佐料可以自由发挥。这就是正则化保护的思路:不是不给新知识让路,而是给最重要的老知识划出保护区。
正则化类方法不给模型增加额外记忆,而是给损失函数加一条“规矩”:新任务照常学,但重要参数不许跑远。其中最经典的是弹性权重固化(Elastic Weight Consolidation, EWC)。它用 Fisher 信息 F_i 衡量每个参数对旧任务的重要性——F_i 越大,相当于红圈画得越重,这个参数越不能动。
同家族的方法还有智能突触(Synaptic Intelligence, SI),它沿训练轨迹累计“突触重要性”,比 EWC 更精细;知识蒸馏则让旧模型当“评委”,用它的软输出当“味道样本”,提醒新模型别丢掉旧任务的输出分布。有了菜谱护身,阿明学牛排时,麻婆豆腐的“命门”全被守住,豆瓣酱再也不会放多。
- 当前损失第一项 ℒ_t(θ) 是新任务原本的损失,保证“新菜要学好”。
- 强度系数λ 控制保护力度,λ 越大旧参数越不敢动,相当于师傅抽查菜谱的频率。
- 重要性权重F_i 是 Fisher 信息,相当于红圈,F_i 越大说明第 i 个参数对旧任务越关键。
- 偏离惩罚(θ_i − θ*_i)² 惩罚当前参数偏离旧任务收敛时的最优值 θ*_i,偏离越远罚得越重。
网络动态扩展
光靠菜谱还不够。川菜的重油猛火和西餐的低温慢烤,共用一口锅实在难受。师傅拍板:扩建厨房!新增一个西餐灶台、一台焗炉,旧灶台原封不动。新菜用新灶,旧灶的手艺自然不受影响。这就是网络动态扩展的朴素原理。
动态扩展类方法的策略是“加灶台”:当新任务到来,为它分配全新的参数模块,而旧任务的模块保持冻结。这样新旧知识在结构上天然隔离,从根上避免遗忘。最具代表性的是渐进式神经网络(Progressive Networks):每学一个任务就新建一列网络,并通过横向连接借用旧列提取到的特征。
更省资源的变体是混合专家(Mixture of Experts, MoE):共享一个“路由器”,把不同输入分发给不同的专家模块。路由器输出的是一个 softmax 门控,相当于店门口的服务员根据客人需求,把订单分给不同的厨师:
阿明的厨房越扩越大,每道菜都有专属灶台,互不干扰。但代价也很现实:厨房面积有限,网络不能无限扩张——模块复用、结构剪枝成了必须考虑的工程问题,这正是后面“评估与优化”一节的内容。
- 线性打分w_k^T x 是输入 x 与第 k 个专家的匹配得分,得分越高越匹配。
- 指数化e 的指数把得分变成正数,并放大得分之间的差距,让“合适”和“不合适”拉开距离。
- 归一化除以所有专家的指数和,让所有概率之和等于 1,变成一个合法的概率分布。
经验重放
师傅还立了条规矩:每晚打烊后,阿明必须把当天没做过的三道老菜各做一遍,师傅亲自尝。这叫“回灶”。“手艺这东西,天天练才不掉。”阿明渐渐明白,重复本身就是最好的记忆。
经验重放(Experience Replay)用同样的逻辑:在训练新任务的同时,把旧任务的样本混进来“回锅”。模型一边学新菜,一边复习旧菜,梯度更新便不会只顾新任务而踩踏旧知识。旧样本存放在一个固定容量的记忆缓冲池(Memory Buffer)中,好比阿明的“试吃笔记”。
加上重放项后,总损失变成新任务损失与重放损失之和:
缓冲池的维护也讲究策略:蓄水池采样(Reservoir Sampling)保证每个旧样本被保留的概率均等,防止新样本挤占全部空间;优先级重放(Prioritized Replay)则让“容易忘”的困难样本多出现几次,复习更有针对性。阿明发现,回灶演练虽然每天多花一小时,但老主顾不再抱怨麻婆豆腐变味——数据虽旧,温故知新。
- 新任务项第一项照常学习当前任务的数据分布 D_t,确保新知识顺利进入。
- 重放项第二项从记忆缓冲池 M 中采样旧样本计算损失,把旧任务的“手感”拉回来。
- 混合系数α 控制旧样本的分量,太小挡不住遗忘,太大新任务学得慢。
评估与优化
餐厅生意好了,师傅请来一位严格的品控官。每周五,品控官把菜单上所有菜都点一遍,从色香味打分。阿明起初不服:“新菜不是做得挺好吗?”品控官说:“只有新菜好,不算好厨师;菜单整体分高,才算。”
终身学习模型同样需要这样一位“品控官”——一套覆盖全部任务的评估协议。最常用的指标是最终平均准确率 A_T 和后向迁移 BWT:
有了评估指标,调优才有了准星。核心旋钮有三个:正则化强度 λ(保护区画多大)、缓冲池容量(能存多少旧样本)、学习率与新旧数据交错比例(怎么安排复习节奏)。它们共同决定“稳定性—可塑性”天平的位置,也决定内存与算力开销——餐厅不可能为了测评无限扩招品控官,机器人的存储与能耗同样有限。品控报告让阿明学会理性取舍:多一口灶、多一筐料、多一页谱,都要看整体评分划不划算。
\displaystyle A_T = \frac{1}{T}\sum_{t=1}^{T}a_{T,t}, \qquadBWT = \frac{1}{T-1}\sum_{t=1}^{T-1}\big(a_{t,T} - a_{t,t}\big)- 平均准确率学完所有 T 个任务后,逐个回测每个任务,取平均,反映“菜单整体水平”。
- 当前表现a_{T,t} 是第 t 个任务在全部任务学完后的准确率。
- 后向迁移对旧任务 t,用“学完所有任务后的准确率”减去“刚学完时的准确率”,差值为正说明新任务反而帮助了旧任务,为负则是遗忘。
应用与展望
阿明的餐厅终于开了分店,菜单从川菜扩展到西餐、日料。客人一波接一波,要求千奇百怪,但无论菜单怎么变,“麻婆豆腐必须保持老味道”始终是写在店规第一条的。终身学习机器人,正在从实验室走向真实世界的“分店”。
在工业制造中,3C 产线的机器人需要频繁换型——今天组装手机、明天装配耳机。传统做法是停机重训,产线一停就是真金白银。采用“EWC 保护 + 经验重放”的终身学习方案,机器人换型后仍保留旧机型的质检技能,停机时间从数小时压缩到分钟级。在家庭服务中,扫地机器人到达新家后要学习新户型、新家具、新宠物,但“避开儿童房”“不打扰主人午睡”这类旧习惯必须保留——这离不开终身学习的在线适应能力。
真实环境的数据流存在分布漂移,旧任务评测数据往往不可得,安全与实时性又是硬约束。未来的方向是“基础模型 + 终身学习”:大模型提供通用先验,轻量模块做增量适配;开放世界学习(Open-World Learning)让机器人主动识别“这是一个新任务”,而不是被动挨打。最终极的目标,是让模型在无穷无尽的任务流中持续演化:
阿明的故事还在继续——他正为总店培养新一代厨师,把自己的菜谱、灶台和回灶习惯写成标准流程。这正是终身学习机器人未来的模样:会积累、会适应、会传承,真正成为人类生活中可靠的“全能学徒”。
- 无穷求和从 1 到 ∞,表示任务永远学不完,模型必须持续演化而非一次定型。
- 分布变化每个阶段的 (x,y) 来自不同的数据分布 D_t,模型在每个阶段都要保持低损失,即“新旧通吃”。
- 资源约束|\theta| ≤ C 表示模型规模不能无限膨胀,必须在内存与算力的预算之内解决问题。
AI 应用场景
场景一:3C 产线换型机器人
阶段:在线持续学习 / 模型增量部署
解决的问题:传统产线每更换一次产品型号,就要停机几天重新收集数据、重新训练模型,成本极高。终身学习机器人通过学习任务的序列化增量更新,在线消化少量新样本,用 EWC 罚项保护旧机型的质检参数,用经验重放维持旧技能不掉线。
具体案例:某手机代工厂的螺丝锁付机器人每周切换 3-4 种机型。部署基于 EWC 加缓冲池回放的方案后,换型时间从 8 小时压缩到 20 分钟,且旧机型的良率识别能力稳定保持在 99.7%。
场景二:家庭服务机器人个性化适应
阶段:个性化在线学习 / 具身智能
解决的问题:每家每户的房间布局、家具摆设、宠物行为都不一样,出厂模型无法覆盖所有家庭;但用户绝不希望机器人学会新功能后,把“避让婴儿床”这类安全规则忘掉。终身学习让机器人一边探索新环境,一边通过情景记忆库回放旧习惯。
具体案例:某扫地机器人进入新用户家中,前三天学习识别新增的猫窝、地毯和落地灯;同时每晚回放 200 条“旧家”的障碍避让样本,始终保持对电源线等高危物体的避让水平。
场景三:康复外骨骼步态适配
阶段:医疗数据流持续学习
解决的问题:不同患者的步态差异巨大,外骨骼需要为每位患者定制辅助策略。若每来一位新患者就微调一次模型,前一位患者的康复策略会被覆盖。采用渐进式网络为每位患者新增一个轻量专家模块,老患者的策略库完好保存,随时可以切换复现。
具体案例:某康复中心的外骨骼系统积累了 40 位患者的步态策略,按需加载对应专家模块,模型总参数可控,单次适配时间从 2 小时缩短到 15 分钟。
Python 演示
import numpy as np np.random.seed(42)LR = 0.03EPOCHS = 2000 class MLP: """极简两层神经网络(1-20-1), 用于演示连续学习""" def __init__(self, n_in=1, n_hid=20, n_out=1): self.w1 = np.random.randn(n_in, n_hid) * 0.3 self.b1 = np.zeros(n_hid) self.w2 = np.random.randn(n_hid, n_out) * 0.3 self.b2 = np.zeros(n_out) def forward(self, x): self.a1 = np.tanh(x @ self.w1 + self.b1) return self.a1 @ self.w2 + self.b2 def predict(self, x): a1 = np.tanh(x @ self.w1 + self.b1) return a1 @ self.w2 + self.b2 def train(self, x, y, fisher=None, old_params=None, lam=0.0): """fisher 与 old_params 同时给出时, 启用 EWC 二次惩罚""" for _ in range(EPOCHS): y_hat = self.forward(x) err = y_hat - y d1 = err @ self.w2.T * (1 - self.a1 ** 2) gw1 = x.T @ d1 / len(x) gw2 = self.a1.T @ err / len(x) gb1 = d1.mean(axis=0) gb2 = err.mean(axis=0) if fisher is not None: grads = [gw1, gw2, gb1, gb2] weights = [self.w1, self.w2, self.b1, self.b2] for g, f, p, w in zip(grads, fisher, old_params, weights): g += lam * f / (f.mean() + 1e-8) * (w - p) self.w1 -= LR * gw1 self.w2 -= LR * gw2 self.b1 -= LR * gb1 self.b2 -= LR * gb2 def mse(y_hat, y): return float(np.mean((y_hat - y) ** 2)) def sample_task(fn, n=200): x = np.random.uniform(-5, 5, (n, 1)) y = fn(x) return x, y def calc_grads(model, x, y): y_hat = model.forward(x) err = y_hat - y d1 = err @ model.w2.T * (1 - model.a1 ** 2) return [x.T @ d1 / len(x), model.a1.T @ err / len(x), d1.mean(axis=0), err.mean(axis=0)] def estimate_fisher(model, x, y): """用平方梯度近似 Fisher 信息: 梯度越大的参数对旧任务越重要""" return [g ** 2 for g in calc_grads(model, x, y)] def snap_params(model): return [model.w1.copy(), model.w2.copy(), model.b1.copy(), model.b2.copy()] def main(): # 任务1: y = sin(x); 任务2: y = cos(x) x1, y1 = sample_task(lambda x: np.sin(x)) x2, y2 = sample_task(lambda x: np.cos(x)) # 普通机器人: 连续学两个任务, 不做任何防护 naive = MLP() naive.train(x1, y1) old_err = mse(naive.predict(x1), y1) naive.train(x2, y2) print('普通机器人 任务1误差: %.4f -> %.4f (遗忘明显)' % (old_err, mse(naive.predict(x1), y1))) print('普通机器人 任务2误差: %.4f' % mse(naive.predict(x2), y2)) # 终身学习机器人: 学任务2时用 EWC 保护任务1 的重要参数 robot = MLP() robot.train(x1, y1) fisher = estimate_fisher(robot, x1, y1) old = snap_params(robot) keep_err = mse(robot.predict(x1), y1) robot.train(x2, y2, fisher, old, lam=0.8) print('终身学习机器人 任务1误差: %.4f -> %.4f (保持稳定)' % (keep_err, mse(robot.predict(x1), y1))) print('终身学习机器人 任务2误差: %.4f' % mse(robot.predict(x2), y2)) if __name__ == '__main__': main()
self.a1 = np.tanh(x @ self.w1 + self.b1)隐层激活函数,让网络能拟合非线性函数,是“厨师的手感”gw1 = x.T @ d1 / len(x)对第一层权重的梯度,反向传播的核心,告诉参数“往哪改”g += lam * f / (f.mean() + 1e-8) * (w - p)EWC 保护项:重要参数偏离旧值就受罚,相当于菜谱上的红圈return [g ** 2 for g in calc_grads(model, x, y)]用平方梯度近似 Fisher 信息,生成“旧任务重要性地图”naive.train(x2, y2)无防护地学新任务,旧任务被覆盖,遗忘发生robot.train(x2, y2, fisher, old, lam=0.8)带着重要性地图学新任务,旧手艺被守住
常见误区
误区很多人以为只要持续把新任务喂给模型训练,旧知识自然会保留下来,终身学习不过是“多训练几轮”而已。
正解神经网络的权重是共享资源,新任务的梯度会覆盖旧任务的参数。不设防地连续训练,旧任务性能必然滑坡,这就是灾难性遗忘。终身学习的核心恰恰是与遗忘作斗争,需要显式的保护机制,如正则化、经验重放、网络扩展,缺一不可。
为何常见:人类学习新技能一般不会大规模遗忘旧技能,我们用人体直觉去类比神经网络,忽略了网络并没有人类那样的独立记忆分区。
误区觉得把 λ 调得很大,旧参数一点不动,就不会遗忘了。
正解λ 过大会让所有参数都被“焊死”,新任务完全学不进去,模型变成“只会旧技能的老顽固”。λ 是稳定性—可塑性天平上的一颗砝码,需要交叉验证来寻找平衡点,让新旧任务都能接受。
为何常见:新手看到“保护旧知识”就以为保护得越多越好,忽略了终身学习的最终目标是新旧兼顾,而不是偏袒任何一方。
误区认为重放缓冲池应该无限大,把看见过的数据全存进去,越多越保险。
正解现实机器人的存储和算力都有限,而且旧任务数据分布可能与当前环境严重偏离,海量回放会拖慢新任务收敛。工程上常用固定容量缓冲区加蓄水池采样或优先级采样,只保留有代表性的样本。
为何常见:“数据越多效果越好”的直觉在一次性训练中成立,但终身学习是流式、受限的在线场景,资源约束才是常态。
误区觉得反正网络可以无限长大,每个任务加一层网络,参数量翻倍也没关系。
正解网络规模膨胀会带来推理延迟、能耗和部署成本的剧增,设备端的机器人根本承受不起。现代方案通过模块复用、共享特征提取器、结构剪枝和稀疏激活来控制规模增长,把“扩灶台”变成“精装修”。
为何常见:从“结构扩展能避免遗忘”的正确结论,推出了“无限扩展”的错误推论,忽略了真实系统的资源红线和收益递减规律。
面试题
Q1. 什么是灾难性遗忘?
- A.机器人硬件零件意外丢失损坏
- B.学新任务后旧任务能力骤降← 正确答案
- C.神经网络训练速度变得很慢
- D.训练数据集文件损坏无法读取
答案:B。灾难性遗忘指网络学习新任务时,权重更新破坏了旧任务学到的决策边界,导致旧任务性能急剧下降,如同阿明学了牛排忘了麻婆豆腐。A、D 属于物理或数据层面的故障,C 只是效率问题,都不涉及旧知识被覆盖。
Q2. 终身学习机器人的核心目标是什么?
- A.只掌握最新学会的那一个任务
- B.在连续任务中保持全体高性能← 正确答案
- C.将网络层数降到最少的程度
- D.大幅提升单任务的推理速度
答案:B。终身学习的总目标是在任务流上让所有任务的总损失最小,等价于“菜单上每道菜都保持水准”。A 只关心新任务,C 和 D 关注的是结构压缩与推理效率,都不是终身学习要解决的核心矛盾。
Q3. EWC 中 Fisher 信息的作用是什么?
- A.衡量各参数对旧任务的重要程度← 正确答案
- B.用来替代学习率的新超参数值
- C.决定神经网络神经元数量的值
- D.对输入数据进行归一化的因子值
答案:A。EWC 用 Fisher 信息 F_i 标注每个参数对旧任务的重要性,相当于菜谱上画的红圈;重要性越高的参数,偏离旧值的惩罚越重。B、C、D 分别混淆了学习率、网络结构与数据归一化,与参数重要性无关。
Q4. 稳定性—可塑性困境指的是什么?
- A.训练阶段与推理阶段的来回切换
- B.保护旧知识同时吸收新知的冲突← 正确答案
- C.硬件稳定性与算法可塑性的矛盾
- D.训练集与测试集规模上的平衡点
答案:B。网络既要稳定保持旧任务参数,又要可塑地吸收新任务知识,二者共享同一份权重,天然冲突。A 是训练/推理流程,C 是软硬件问题,D 是数据集划分问题,都不是终身学习特有的矛盾。
Q5. 渐进式神经网络解决遗忘的主要策略是?
- A.在新任务上重放所有旧任务样本
- B.用正则化约束全部网络参数值
- C.新任务新建列且冻结旧列参数← 正确答案
- D.直接删除掉所有旧任务的样本
答案:C。渐进式网络为每个新任务新建一列子网络,旧列参数冻结不动,新旧知识在结构上隔离,属于“扩灶台”策略。A 是经验重放,B 是正则化保护,D 反而会加速遗忘。
Q6. 经验重放缓冲区的存储对象是什么?
- A.训练时用过的模型权重参数集合
- B.旧任务的输入输出样本对集合← 正确答案
- C.每次迭代的损失函数曲线数值
- D.各任务训练所用的超参数配置
答案:B。重放缓冲区保存旧任务的输入-输出样本对,训练新任务时把旧样本混进来一起计算损失,相当于“回灶演练”。权重、损失曲线和超参数都不是用来回放的样本数据。
Q7. 遗忘率 F 的计算结果说明什么?
- A.衡量全部新旧任务损失函数的总和
- B.衡量学新任务后旧任务能力下降量← 正确答案
- C.计算扩展后网络的总参数量大小
- D.评估模型每次推理的延迟时间
答案:B。F 通过对比“刚学完任务 t 时”与“学完全部任务后”的准确率差,量化旧任务的下降幅度,是所有旧任务下降量的平均值。A 是总损失的思路,C 是参数量统计,D 是性能延迟,均与遗忘程度无关。
Q8. 常见的终身学习技术包括哪些?
- A.使用弹性权重固化的正则化保护← 正确答案
- B.建立经验回放缓冲池混合训练← 正确答案
- C.按需增加网络结构的动态扩展← 正确答案
- D.随机删除旧任务的全部训练数据
答案:ABC。三大经典方向正是正则化保护(EWC)、经验重放、网络动态扩展,对应“写菜谱、回灶、扩灶台”。D 删掉旧数据会加剧遗忘,与终身学习的目标背道而驰。
Q9. 关于知识蒸馏用于终身学习,正确的说法是?
- A.以旧模型输出软标签辅助新训练← 正确答案
- B.保留旧任务的输出分布相关信息← 正确答案
- C.属于无需任何数据的纯结构方法
- D.能够完全替代经验重放的技术
答案:AB。知识蒸馏用旧模型的软输出作为“味道样本”,把旧任务的输出分布信息传递给新模型,属于正则化保护的延伸。C 错在它仍需要旧模型的输出数据,D 错在它不能完全替代样本级回放,二者侧重点不同。
Q10. 终身学习机器人落地工业应用面临的挑战有哪些?
- A.真实环境数据流存在分布漂移← 正确答案
- B.旧任务评估数据可能难以获取← 正确答案
- C.工业场景对安全实时性要求高← 正确答案
- D.部署后完全无需人工监控干预
答案:ABC。真实产线数据分布随时间漂移,旧任务评测数据往往不再可得,安全与实时性更是硬约束,这些都让“学了不忘”更难实现。D 过于理想化,任何工业部署都需要人工监控与安全兜底。