Page 96 - 《软件学报》2024年第4期
P. 96
1674 软件学报 2024 年第 35 卷第 4 期
类别的度量指标 Osr(x)为
1 P
Osr () =x max 1 k ∑ g ( (); )A x θ k (8)
P ≤ ≤ K p= 1
其中, 超参数 P 控制测试时增广次数, 函数 A(x)为数据增广函数. 继而, OTA 方法基于 Osr(x)指标从当前时刻
t 的测试样本集合 D t 中筛选得到置信的未见类样本集合 D t OS :
|
D OS = {x x i ∈ D ∧ Osr x i δ } (9)
()≥
t
t
i
其中, δ为筛选置信已见类别样本的阈值. 最终, OTA 方法使用熵最大化损失 r-ent (x)强化已见类别样本与未见
类别样本在特征表示空间内的差异:
K
- r ent ( ) = ∑ f (; ) log (; ) θx θ x k f x k (10)
k = 1
3.3 参数正则化损失
OTA 方法利用自适应熵损失与开集熵损失, 从每个时刻 t 内测试数据 D t 中筛选置信的已见类样本集合
D t Kn 与未见类样本集合 D t OS , 并分别利用公式(6)、公式(10)对模型进行更新. 在实际情况中, 集合 D t Kn 与集合
D t OS 仍存在少量错分样本, 导致模型的更新过程不稳健. 同时, 近期研究 [22,24] 也发现: 仅利用无标注测试数据
持续更新模型, 会引发灾难性遗忘问题, 导致模型性能逐渐退化. 因此, OTA 方法在损失函数中引入参数正则
s
化损失 r (θ,θ )来约束模型不遗忘源模型的知识:
r ( ,θθ s ) ||θ θ−= s | | (11)
2
2
s
其中, θ是模型的参数, θ 是源模型的参数.
3.4 OTA方法总结
OTA 方法在测试阶段更新模型的总体损失是针对已见类样本 D t Kn 的自适应熵损失、针对未见类样本 D OS
t
的开集熵损失和缓解灾难性遗忘的参数正则化损失之和, 即= ent + r-ent + r . OTA 的伪代码如算法 1 所示.
算法 1. 开放测试时适应算法 OTA.
s
输入: t 时刻模型参数θ t , 源模型参数θ , t 时刻测试数据 D t ;
输出: 下一时刻模型参数θ t+1 .
|
1 D t Kn ← {x x i ∈ D ∧ Unc ()≥x i α } //选择置信已见类样本集合
t
i
|
2 D t OS ← {x x i ∈ D ∧ Osr ()≥x i δ } //选择置信未见类样本集合
t
i
3 ←0
4 for x i ∈ D t Kn do
5 ←+ ent (x i ) //计算自适应熵损失
6 end for
7 for x i ∈ D t OS do
8 ←+ r-ent (x i ) //计算开集熵损失
9 end for
s
10 ←+ r (θ,θ ) //计算参数正则化损失
11 θ t+1 ←优化总体损失并返回新参数
12 return θ t+1
4 实验验证
本节将通过多个基准数据集中不同协变量偏移程度下的实验验证所提开放测试时适应算法 OTA 的有效
性, 并回答以下问题.