Page 323 - 《软件学报》2026年第4期
P. 323
1764 软件学报 2026 年第 37 卷第 4 期
2.3.2 仅检索方法
在获得开始和结束预测类别后, 仅检索方法在训练集中检索 ˜ a mid , 训练集可以表示为以下形式:
{ } K
k
a k ,a ,a k (8)
start mid end
k=1
其中, K 表示长度为 T 的样本数量. 我们固定相同的 ˜ a start 和 ˜ a end , 在训练集检索可能的中间动作, 并计算动作出现
的概率 e p RO , RO 表示仅检索方法. 我们将检索算法表示为 R, 如算法 1 所示.
mid
算法 1. 检索算法 R.
{ } K
输入: ˜ a start , ˜a end , A ˜e , π = a k start ,a ,a k end k=1 ; ▷ 输入: 预测的开始和结束动作, 子动作空间, 训练集
k
mid
输出: ˜ p mid . ▷ 输出: 中间动作的概率分布
1. count ← [0] K ▷ 初始化计数数组为 0, 大小为 K
2. match ← 0 ▷ 初始化匹配标志变量为 0
3. for k = 1 to K do ▷ 遍历训练集样本
4. if ˜ a start = a k and ˜ a end = a then
k
start end
k
k
5. count[a ] ← count[a ]+1
mid mid
6. match ← 1 ▷ 标记为已找到完全匹配的序列
7. end if
8. end for
9. if match = 0 then ▷ 如果没有找到完全匹配的开始和结束动作
10. for k = 1 to K do ▷ 遍历所有样本, 查找部分匹配
k
11. if ˜ a start = a k or ˜a end = a then
start end
k
k
12. count[a ] ← count[a ]+1
mid mid
13. end if
14. end for
15. end if
16. ˜ p mid ← Softmax(count) ▷ 将计数数组通过 Softmax 转换为概率分布
17. return ˜ p mid ▷ 返回中间动作的概率分布
˜ a end 可能在训练集中无法匹
整个算法过程看似非常简单, 但存在两个问题: (1) 在检索过程中, 成对的 ˜ a start 和
配. 也就是说, 我们可能无法在训练集中找到相同的 (˜a start , ˜a end ) 对. 出现此问题有两种情况, 一种是由于 ˜ a start 或 ˜ a end
的错误, 导致该对无法匹配. 另一种情况是, 即使 ˜ a start 和 ˜ a end 都正确, 由于训练集和测试集之间的差异, 仍然无法匹
配, 即测试集中的一些样本在训练集中并未出现. 为了解决这个问题, 如算法 1 所示, 我们将检索问题从匹配开始
和结束动作简化为仅匹配开始动作或仅匹配结束动作. (2) 根据 e p RO , 选择概率最高的一个作为 ˜ a mid , 但可能会有多
mid
个结果具有相同的概率. 在仅检索的方法中, 我们使用最直接的随机选择方法来确定结果, 也就是考虑到这种情况
的出现, 后面结合了视觉信息来预测中间动作类别. 我们首先尝试仅预测方法, 然后尝试将两种方法结合.
2.3.3 仅预测方法
我们使用仅预测方法代替检索来直接获得动作概率 e p PO , PO 表示仅预测方法. 动作预测器的输入是开始和结
mid
束特征, 如图 4(b) 所示, 它也是一个简单的多层感知器, 同样使用交叉熵损失进行监督, 这里我们不展示具体的计
算公式. 我们将在第 3.5 节中展示实验结果.
2.3.4 混合规划方法
最后, 我们选择结合检索和预测的方法. 如图 4(b) 所示, 我们通过对两种概率 e p RO 和 e p PO 进行加权求和来结合
mid mid

