交互式强化学习:从人类社交反馈中加速智能体训练
1. 项目概述当智能体学会“察言观色”在传统的强化学习框架里一个智能体Agent就像被扔进迷宫的新手只能通过一遍遍试错从环境给予的稀疏奖励或惩罚信号中艰难地摸索出最优路径。这个过程被称为“探索-利用”其核心问题是样本效率极低——智能体往往需要数百万甚至上亿次的交互才能学会一个简单的任务这在现实世界的机器人控制、个性化服务等场景中几乎是不可行的。你不可能让一个家庭服务机器人撞坏一万次家具才学会避开障碍也无法让一个教育陪伴AI通过无数次错误回答来学习如何与孩子有效沟通。于是交互式强化学习Interactive Reinforcement Learning, IRL这条路径被开辟出来。它的核心思想非常直观既然人类导师拥有丰富的先验知识和直观判断何不让他们直接介入训练过程给智能体提供实时指导这就像教孩子学走路你不仅会在孩子摔倒后告诉他“这样不对”环境惩罚更会在他要摔倒时扶一把或者在他走得好时给予微笑和鼓励人类反馈。IRL旨在构建一个桥梁让人类能以自然、低认知负荷的方式将这种“鼓励”或“纠正”传递给智能体从而极大加速学习进程。我最初接触这个概念是在机器人项目里当时我们试图训练一个机械臂完成抓取不同形状物体的任务。纯粹依靠环境奖励成功抓取1掉落或失败-1的训练收敛慢得令人绝望。后来我们引入了一个简单的键盘接口让研究员可以在每次抓取尝试后按下“好”或“坏”的按键。效果立竿见影智能体很快学会了区分稳定抓取和不稳定抓取的姿态。这让我深刻体会到人类反馈所蕴含的“意图”和“评估”信息其信息密度远高于简单的环境成功/失败信号。本文探讨的正是IRL中一个极具前景且充满挑战的子领域从人类社交反馈中学习。我们不再满足于让人类通过生硬的键盘、鼠标来提供反馈而是希望智能体能像理解同类一样读懂我们的面部表情、语音语调、手势姿态甚至综合这些多模态信号来理解我们的意图和评价。这不仅仅是技术上的优化更是迈向真正自然、无缝人机协作的关键一步。接下来我将拆解其中的核心思路、技术实现、实操要点以及我们趟过的那些“坑”。2. 核心思路拆解反馈的本质与传递路径要理解如何利用社交反馈首先得厘清人类反馈在强化学习框架中扮演的角色以及它如何被智能体“消化吸收”。2.1 反馈的三种“身份”奖励、策略与建议在交互式强化学习中人类反馈并非只有一种形式。根据其被算法解释和利用的方式主要可以分为三类这直接决定了后续训练算法的设计。第一类作为替代或补充的奖励信号Reward Signal。这是最直接的理解方式。人类通过表情微笑/皱眉、语音称赞/责备、手势大拇指/摆手或硬件按键传递的“好/坏”评价被量化为一个标量数值如1/-1直接输入到智能体的奖励函数中。例如在TAMER框架中智能体直接学习一个预测人类奖励的函数H(s, a)。其优势是易于与传统RL算法如Q-learning、策略梯度结合。但挑战在于人类的奖励信号往往是近视的myopic只针对当前或最近的动作且存在时间延迟——人看到结果、做出评价、再给出反馈这中间可能有几百毫秒的滞后智能体必须能准确地将反馈“归因”到正确的历史动作上。第二类作为策略的梯度Policy Gradient。这类方法不将反馈视为奖励而是将其视为对当前策略好坏的直接评价。例如COACH算法将人类反馈如“好”/“坏”解释为优势函数Advantage Function的近似。优势函数衡量的是在某个状态下采取某个动作比遵循当前策略的平均表现好多少。人类的即时反馈“对就这么做”可以被视为对这个优势的估计从而直接用于更新策略参数。这种方式更贴近人类的教学直觉——我们更常评价“这个动作对不对”而非给出一个精确的分数。第三类作为高层建议或指令Advice/Instruction。这类反馈超越了简单的褒贬包含了具体的行动指导通常以自然语言或示范动作的形式出现。例如人类说“把蓝色的积木放在红色盒子上面”。这需要智能体具备额外的理解模块将语言或示范解析为结构化、可执行的约束或目标进而转化为内在奖励或直接修改策略。这涉及到自然语言处理、模仿学习与强化学习的交叉复杂度更高但信息量也最大。在实际项目中选择哪种解释方式取决于任务特性、反馈通道的带宽以及智能体的认知架构。对于快速、简单的评价任务如游戏中的即时评价奖励信号方式简单有效。对于需要复杂纠偏或技能传授的任务如机器人操作策略梯度或建议的方式可能更合适。2.2 反馈传递的通道从硬件到多模态融合反馈如何从人传递到机器这决定了交互的自然程度和易用性。1. 硬件传递Hardware-Delivered最传统和精确的方式。通过键盘特定按键、鼠标点击、手柄按钮、甚至专门的评分滑块来提供反馈。优点是指令明确、噪声低、易于算法处理。我们在早期实验中大量使用空格键好和‘X’键坏。但缺点非常明显认知负荷高训练者需要分心操作界面打断了观察和思考的连续性。不自然与人类之间自然的社交互动方式相去甚远难以普及到非专业用户。延迟归因问题训练者按下按键的时刻与智能体执行被评价动作的时刻往往不同步需要设计精巧的信用分配Credit Assignment机制如Knox和Stone在TAMER中使用的概率密度函数来建模反馈延迟。2. 自然交互传递Natural Interaction这是IRL社交化的核心。目标是让智能体通过感知人类的自然社交信号来获取反馈。面部表情反馈通过摄像头捕捉人脸使用情感识别模型如基于FER2013数据集训练的CNN将表情分类为积极、消极或中性。例如微笑对应1奖励皱眉对应-1。我们的实验发现即使使用现成的开源表情识别库如deepface或fer在受控光照下也能达到80%以上的准确率足以作为辅助训练信号。关键在于要训练一个映射模型将表情的“强度”或“置信度”转化为奖励的数值而不是简单的二值化。语音反馈通过麦克风采集语音进行语音情感识别SER或关键词识别。一句兴奋的“太棒了”可以转化为高额正奖励一声叹息或“不对”则转化为负奖励。更进阶的是理解自然语言指令这需要结合自动语音识别ASR和自然语言理解NLU。我们曾尝试使用SpeechRecognition库结合GPT的API来解析简单指令将其转化为目标状态或动作约束虽然增加了延迟但在教学类任务中效果显著。手势反馈通过深度摄像头如Kinect或普通摄像头结合姿态估计模型如MediaPipe识别特定手势。竖起大拇指、鼓掌代表肯定摆手、摇头代表否定。手势的时空连续性使其能传递更丰富的指导信息例如用手势指方向。3. 多模态融合Multimodal Fusion这是未来的方向。单一模态的反馈易受干扰如光线影响表情识别噪音影响语音识别且信息不完整。多模态融合能利用信息的互补性提升反馈识别的鲁棒性和丰富度。例如当一个人笑着说“干得不错”时语音的语调信息和面部的笑容信息相互印证可以给出一个高置信度的正反馈。如果语音识别因噪音不确定但面部表情清晰系统仍能做出可靠判断。融合可以在数据层早期融合、特征层中期融合或决策层晚期融合进行。在我们的一个原型系统中我们采用了决策层加权融合最终奖励 w1 * 表情奖励 w2 * 语音奖励 w3 * 手势奖励权重可以根据各模态的实时置信度动态调整。实操心得反馈通道的选择在项目初期不要贪图“自然”而直接上马多模态。建议从硬件通道如两个按键开始快速验证你的核心学习算法是否有效。因为硬件反馈干净、即时能帮你排除感知模块的噪声聚焦于解决信用分配、反馈整合等核心算法问题。等学习循环跑通后再逐步引入并迭代单个自然模态如先加面部表情最后考虑多模态融合。否则你可能会陷入“到底是算法不行还是表情识别不准”的调试泥潭。3. 算法实现深度解析模型、方法与融合策略理解了反馈的“身份”和“通道”我们来看智能体内部如何消化这些信息。算法层面主要围绕模型基础和对反馈的利用方式展开。3.1 基于模型 vs. 无模型两条技术路径基于模型的方法Model-Based的核心思想是先利用人类反馈学习一个“人类奖励模型”然后用这个模型来规划或优化策略。TAMER框架是典型代表。学习奖励函数智能体收集状态-动作对(s, a)和对应的人类反馈h训练一个函数H(s, a)来预测人类在给定状态下对某个动作的喜好程度。这通常用一个回归模型如线性模型、神经网络来实现。信用分配由于反馈延迟需要设计机制将反馈信号合理地分配给过去一段时间内的多个状态-动作对。TAMER使用一个衰减的概率密度函数如指数衰减来分配信用。行动选择在状态s下智能体选择能最大化预测奖励H(s, a)的动作或者结合一定的探索策略如ε-greedy。基于模型的方法样本效率高因为一旦学好了奖励模型智能体就可以在没有人类持续反馈的情况下利用这个模型进行大量“思考”规划。但其性能严重依赖于奖励模型的学习精度且通常局限于离散动作空间。后续的Deep TAMER用深度神经网络来拟合高维状态下的奖励函数VI-TAMER则引入了价值迭代进行非近视规划都是重要的改进。无模型的方法Model-Free则更直接将人类反馈无缝嵌入到经典RL的更新公式中。这又分为两类奖励类方法直接把人类反馈h_t当作环境奖励r_t来用或者与环境奖励相加R_total r_env λ * h_human然后套用标准的无模型RL算法如DQN或A2C。这种方法简单粗暴但要求人类反馈在数值尺度上与环境奖励兼容且同样面临延迟归因问题。策略类方法以COACH和Policy Shaping为代表。COACH将人类反馈标量δ如1表示“更好”-1表示“更差”视为优势函数A(s, a)的有偏估计。其策略梯度更新公式为∇J(θ) ≈ δ * ∇_θ log π_θ(a|s)。这意味着如果人类说“好”就增加当前动作的概率说“坏”就减少。这种方法非常直观符合人类“鼓励正确行为”的教学模式且对反馈的数值尺度不敏感。在我们的机械臂抓取项目中我们对比了Deep TAMER基于模型和COACH无模型策略类。发现对于动作空间小、反馈相对一致的任务两者最终性能接近。但COACH在训练初期收敛更快因为反馈能直接作用于策略更新而Deep TAMER在训练后期当人类疲劳导致反馈质量下降时更稳定因为它依赖已学习的内在奖励模型。3.2 混合学习融合环境奖励与人类反馈纯粹依赖人类反馈存在风险训练者的偏好可能不完美、不一致甚至是有害的。而纯粹的环境奖励又可能太稀疏。因此最稳健的方案是让智能体同时从环境奖励和人类反馈中学习。1. 串联学习Sequential Learning先只用人类反馈进行预训练让智能体快速获得一个不错的初始策略然后再放开环境奖励进行微调或继续学习。这好比教练先手把手教基础动作再让学员去实战中磨练。TAMERRL框架就支持这种模式。关键在于切换时机的选择切换太早基础不牢切换太晚可能被人类的偏见带偏。2. 并联学习Parallel Learning让智能体同时维护两套学习系统。例如DQN-TAMER框架一个Deep Q-Network学习环境奖励Q_env一个Deep TAMER网络学习人类奖励H_human。最终的动作选择价值是两者的加权和Q_total α * Q_env (1-α) * H_human。权重α可以动态调整例如在训练初期人类反馈权重高引导探索随着智能体能力提升逐渐增加环境奖励的权重让其最终收敛到任务本身的最优解。我们在一个简单的迷宫导航任务中实现了并联学习。智能体需要找到宝藏稀疏正奖励同时避免陷阱稀疏负奖励。人类训练者通过表情微笑/皱眉提供即时反馈。我们设置α随时间衰减α max(0.1, 1.0 - episode/总回合数*0.9)。结果发现这种混合方式比单纯用环境奖励探索效率极低或单纯用人类反馈人类有时会指错路的学习速度和最终成功率都要高。避坑指南反馈冲突与信用分配当人类反馈与环境奖励冲突时比如人类觉得某个动作好但环境给了惩罚智能体会困惑。我们的解决方法是引入一个不确定性估计。对于人类反馈我们不仅记录其值还记录其频率和一致性。如果某个状态-动作对收到的人类反馈方差很大不同训练者或同一训练者前后评价不一致则降低该反馈的权重。同时对于延迟归因我们实现了一个可学习的信用分配网络它输入一段时间内的状态-动作序列和最终反馈的时间输出每个历史动作应分配的反馈权重这个网络与主网络一起训练效果比固定的衰减函数更好。4. 多模态社交反馈的实战集成理论很美但把面部、语音、手势反馈真正集成到一个能运行的系统中挑战重重。下面分享我们搭建一个多模态交互式强化学习demo的实战步骤和核心代码逻辑。4.1 系统架构与模块分解整个系统可以分为感知、融合、决策、执行四个模块运行在ROS或类似的机器人中间件上是最佳实践。[人类训练者] | (多模态社交信号) v [感知模块] - 面部识别线程 - 表情分类 奖励值 - 语音处理线程 - 语音识别 情感/指令解析 - 奖励值/指令 - 手势识别线程 - 姿态估计 手势分类 - 奖励值/导向 | v [融合中心] - 时间对齐缓存队列 - 置信度加权融合决策层融合 - 输出综合奖励值 可选指令 | v [智能体核心] - 交互式RL算法如COACH或混合DQN-TAMER - 策略网络/价值网络 - 动作输出 | v [执行器/环境] - 机器人动作或游戏动作 - 产生新状态和环境奖励 | v [状态更新] - 回到感知模块形成闭环4.2 核心模块实现要点1. 面部表情反馈采集与处理# 示例使用 fer 库进行实时表情识别并映射为奖励 import cv2 from fer import FER detector FER() cap cv2.VideoCapture(0) reward_buffer [] # 用于平滑避免单帧误判 while True: ret, frame cap.read() if not ret: break # 检测情绪 emotions detector.detect_emotions(frame) if emotions: # 取最大置信度的情绪 dominant_emotion max(emotions[0][emotions], keyemotions[0][emotions].get) conf emotions[0][emotions][dominant_emotion] # 映射为奖励值 (简化映射) reward_map {happy: 1.0, surprise: 0.5, neutral: 0.0, sad: -0.5, angry: -1.0, fear: -0.7, disgust: -0.9} instant_reward reward_map.get(dominant_emotion, 0.0) * conf # 加入缓冲区并平滑例如取最近5帧的中值 reward_buffer.append(instant_reward) if len(reward_buffer) 5: reward_buffer.pop(0) smoothed_reward np.median(reward_buffer) # 将 smoothed_reward 发送到融合中心 send_to_fusion_center(modalityface, rewardsmoothed_reward, confidenceconf)关键点必须做时序平滑。原始的表情识别是逐帧的会有抖动和瞬时误判。通过滑动窗口中值滤波可以得到更稳定的情绪状态。同时输出的置信度conf要传递给融合中心作为该模态可靠性的权重依据。2. 语音反馈处理语音处理分为两个子任务情感识别和指令识别。对于实时交互轻量级模型是关键。# 示例使用 speech_recognition 和 transformers 进行简单指令识别 import speech_recognition as sr from transformers import pipeline # 初始化语音识别和情感分析管道需提前下载模型 recognizer sr.Recognizer() sentiment_analyzer pipeline(sentiment-analysis) # 或使用专门的情感识别模型 # 指令关键词映射 instruction_keywords {left: turn_left, right: turn_right, good: positive, bad: negative} with sr.Microphone() as source: recognizer.adjust_for_ambient_noise(source) try: audio recognizer.listen(source, timeout2, phrase_time_limit3) text recognizer.recognize_google(audio, languageen-US) # 情感分析简单版分析整句情感 sentiment_result sentiment_analyzer(text)[0] # 情感标签映射为奖励 sentiment_reward 1.0 if sentiment_result[label] POSITIVE else -1.0 if sentiment_result[label] NEGATIVE else 0.0 sentiment_conf sentiment_result[score] # 指令识别关键词匹配 instruction None for kw, cmd in instruction_keywords.items(): if kw in text.lower(): instruction cmd break # 发送到融合中心 send_to_fusion_center(modalityspeech, rewardsentiment_reward, confidencesentiment_conf, instructioninstruction) except sr.UnknownValueError: # 识别失败发送低置信度中性信号 send_to_fusion_center(modalityspeech, reward0.0, confidence0.1) except sr.RequestError: # 网络错误等 handle_error()关键点语音识别有延迟和错误率。我们采用短时语音片段2-3秒进行识别平衡实时性和准确性。同时将情感分析和关键词识别并行处理情感提供奖励值关键词提供具体指令两者可以互补。3. 多模态融合中心这是系统的“大脑”负责整合不同步、不同置信度的多路信号。class MultimodalFusionCenter: def __init__(self, window_size10): self.buffer {face: [], speech: [], gesture: []} self.window window_size # 定义各模态的基础权重可动态调整 self.base_weights {face: 0.4, speech: 0.4, gesture: 0.2} def receive_signal(self, modality, reward, confidence, timestamp, instructionNone): # 缓存信号附带时间戳 self.buffer[modality].append({ reward: reward, conf: confidence, time: timestamp, instruction: instruction }) # 保持缓冲区大小 if len(self.buffer[modality]) self.window: self.buffer[modality].pop(0) def get_fused_feedback(self, current_time, time_tolerance1.0): 获取当前融合后的反馈。采用时间窗口对齐和置信度加权。 fused_reward 0.0 total_weight 0.0 aggregated_instruction None for modality in self.buffer: if not self.buffer[modality]: continue # 1. 时间对齐取时间窗口内最近的信号 recent_signals [s for s in self.buffer[modality] if current_time - s[time] time_tolerance] if not recent_signals: continue # 取最新的一条 latest_signal recent_signals[-1] # 2. 计算该模态的权重基础权重 * 当前置信度 weight self.base_weights[modality] * latest_signal[conf] # 3. 加权融合奖励 fused_reward weight * latest_signal[reward] total_weight weight # 4. 指令聚合如果有高置信度的指令则优先采用 if latest_signal[instruction] and latest_signal[conf] 0.7: aggregated_instruction latest_signal[instruction] if total_weight 0: fused_reward / total_weight # 归一化 else: fused_reward 0.0 # 无有效信号 return { reward: fused_reward, instruction: aggregated_instruction, total_confidence: total_weight / sum(self.base_weights.values()) if sum(self.base_weights.values()) 0 else 0.0 }关键点融合策略是核心。我们采用了时间对齐和置信度加权。不同模态的信号到达时间不同需要在一个合理的时间窗口内进行对齐。每个信号的权重由其模态的基础重要性和当前识别置信度共同决定。指令信息则采用“高置信度优先”的策略。4.3 智能体算法集成示例以COACH为例将融合后的反馈集成到COACH算法中相对直接。# 简化的 COACH 风格策略更新 import torch import torch.nn.functional as F class PolicyNetwork(torch.nn.Module): # ... 定义策略网络 ... policy_net PolicyNetwork() optimizer torch.optim.Adam(policy_net.parameters(), lr0.001) def update_policy_with_human_feedback(state, action, human_feedback_delta): state: 当前状态 action: 智能体采取的动作 human_feedback_delta: 从融合中心得到的人类反馈标量1好 -1坏 0中性或无反馈 if human_feedback_delta 0: return # 无有效反馈不更新 # 计算当前策略下采取该动作的对数概率 action_probs policy_net(state) log_prob torch.log(action_probs[action]) # COACH 更新规则policy gradient with human feedback as advantage estimate # 损失函数-delta * log_prob 使得好的动作概率增坏的动作概率减少 loss -human_feedback_delta * log_prob optimizer.zero_grad() loss.backward() optimizer.step() # 在主训练循环中 while training: state env.reset() done False while not done: action select_action_according_to_policy(state) # 根据策略选择动作 next_state, env_reward, done, _ env.step(action) # 获取多模态融合的人类反馈异步进行 fused_feedback fusion_center.get_fused_feedback(current_timetime.time()) human_delta fused_feedback[reward] # 这里将连续奖励简化为离散趋势例如 0.3 视为 1 -0.3 视为 -1 # 使用人类反馈更新策略 if abs(human_delta) 0.3: # 设置一个阈值避免噪声 discrete_delta 1 if human_delta 0 else -1 update_policy_with_human_feedback(state, action, discrete_delta) # 同时也可以使用环境奖励进行更新混合学习 # ... (标准RL更新步骤) ... state next_state关键点在实际实现中需要处理好异步反馈。感知和融合模块运行在独立的线程或进程中通过共享内存或消息队列如Redis或ROS Topic与智能体的训练循环通信。智能体在每个时间步检查是否有新的人类反馈到达并进行相应的策略更新。5. 挑战、陷阱与优化策略实录在实际部署和实验过程中我们遇到了许多预料之中和预料之外的问题。以下是部分典型问题及其解决方案的实录。5.1 人类训练者的不一致性与疲劳问题描述这是社交反馈最根本的挑战。不同训练者对同一行为的评价可能不同主观性同一训练者在不同时间、不同疲劳程度下的评价标准可能波动不一致性长时间提供反馈会导致训练者疲劳反馈质量下降甚至出现随机反馈。我们的应对策略标准化训练协议在实验开始前给训练者明确的评价标准例如“成功到达目标且路径平滑”给正反馈“碰撞或明显绕远”给负反馈。虽然无法完全统一主观性但可以缩小方差。主动查询与被动感知结合不要指望训练者持续不断地提供反馈。我们设计了一种“不确定性驱动”的主动查询机制。当智能体对其决策非常不确定时例如策略网络输出的动作概率熵很高它会通过一个简单的视觉或听觉信号如闪烁灯光或发出“嗯”的声音主动“询问”训练者。这大大降低了训练者的认知负荷并保证了反馈多集中在关键决策点。反馈质量评估与过滤我们为每个训练者建立了一个简单的反馈一致性模型。如果某个训练者近期给出的反馈与智能体基于已学模型预测的反馈差异持续很大或者其反馈序列呈现出高度随机性系统会暂时降低该训练者反馈的权重并可能提示训练者休息。多训练者集成在可行的情况下汇集多个训练者的反馈。采用类似集成学习的方法例如对某个状态-动作对的最终反馈取多数投票或平均值。这有助于平滑个体偏差。5.2 多模态信号冲突与融合困境问题描述面部识别说“开心”1但语音情感识别说“沮丧”-1手势识别未检测到明确信号。此时融合中心该如何决策我们的解决方案动态置信度调整每个模态的置信度不是固定的。我们实时监测各模态的信号质量。例如如果摄像头检测到人脸被部分遮挡则面部识别置信度自动降低如果环境噪音突然增大语音识别置信度降低。基础权重base_weights会乘上一个实时质量因子q_modality0到1之间。冲突解决规则高置信度否决低置信度如果语音置信度 0.8 且结果为负而面部置信度 0.6则优先采纳语音结果。时间一致性检验检查冲突模态的历史信号。如果面部在过去几秒内持续为“开心”而语音只是瞬间“沮丧”则可能是一次语音识别错误倾向于信任面部。引入上下文结合任务上下文。例如在机器人即将碰撞时一个“惊恐”的表情负反馈的权重应该远高于一句含糊的语音。设置“无法确定”状态当加权后的总置信度total_confidence低于某个阈值如0.3时融合中心输出“无有效反馈”智能体本轮不根据人类反馈更新。这比强行融合一个不可靠的信号要安全。5.3 信用分配与反馈延迟问题描述人类反馈的延迟导致智能体无法将反馈正确关联到引发该反馈的动作上。例如机器人执行动作A然后动作B然后人类才皱眉。这个皱眉是针对A还是B我们的优化实践固定衰减模型基础版如TAMER最初使用的假设反馈延迟服从一个指数衰减分布将反馈值分配给过去一段时间内的所有动作。这种方法简单但假设过于理想。可学习的信用分配网络进阶版我们尝试了一个小型的神经网络输入是过去N个时间步的状态-动作序列[(s_{t-N}, a_{t-N}), ..., (s_t, a_t)]以及反馈到达的时间差输出一个长度为N的权重向量表示反馈值应该如何分配给这N个历史动作。这个网络与主策略网络一起通过梯度下降训练。训练信号来自于当智能体最终获得一个高环境奖励时可以反推之前哪些人类反馈是“正确”的从而调整信用分配网络。这种方法更灵活能适应不同训练者的反应速度。显式标记工程优化在提供反馈的界面上增加一个“标记”功能。训练者在观察到想评价的事件时可以按下一个按钮这个按钮会同时记录下当前的环境状态快照。随后训练者再从容地通过自然方式如语音给出详细评价。系统将评价与标记的状态进行绑定从而完美解决延迟问题。这虽然增加了一点操作但在复杂任务中非常有效。5.4 样本效率与泛化能力问题描述即使引入了人类反馈在状态空间巨大的任务中如从像素学习玩Atari游戏智能体仍然需要相当多的交互。并且在一个任务上学到的“人类偏好模型”能否迁移到类似任务我们的探索方向预训练与微调使用大规模人类行为数据如游戏录像附带评论情感预训练一个通用的“人类反应预测模型”。当面对新任务和新用户时只需少量实时反馈进行微调。这类似于大语言模型的思路。分层强化学习将任务分解。人类反馈首先用于训练高层控制器制定子目标而底层技能如移动、抓取则使用传统的RL或模仿学习预先训练好。这样人类只需要在更高层、更抽象的层面进行指导大大降低了反馈频率和难度。元学习让智能体学会“如何学习 from human feedback”。在多个不同任务上训练后智能体能够快速适应一个新用户的反馈风格或者在新任务上更快地理解用户的意图。从硬件按键到读懂微笑和叹息交互式强化学习正让人机协作变得越来越自然。这条路远未走完多模态融合的鲁棒性、对模糊和冲突反馈的理解、以及如何让智能体主动引导人类进行更有效的教学都是充满魅力的开放问题。在我个人看来这项技术的终极价值不在于创造一个完全听话的机器而在于构建一种双向的、渐进式的理解与适应。智能体在学习我们的偏好而我们也在学习如何更好地表达自己的意图。这个过程本身就是一场有趣的人机共舞。