基本信息
文献名称:Collective Decision for Open Set Recognition
出版期刊:IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING
发表日期:04 March 2020
作者:Chuanxing Geng and Songcan Chen
摘要
在开集识别(OSR)中,几乎所有现有的方法都是专门为识别单个实例而设计的,即使这些实例是集体地成批出现的。识别者在决策中要么拒绝它们,要么使用经验设定的阈值将它们归类到某个已知的类。因此,决策阈值起着关键作用。然而,其选择往往依赖于已知类的知识,不可避免地会因缺乏未知类的可用信息而带来风险。另一方面,一个更现实的OSR系统不应该仅仅依赖于拒绝决策,而应该更进一步,特别是在发现拒绝实例中隐藏的未知类方面,而现有的OSR方法没有特别注意。提出了一种新的集体/批量决策策略,扩展了已有的OSR算法,并考虑了测试实例之间的相关性,实现了新类的发现.通过对层次狄利克雷过程(HDP)的改进,提出了一种基于集体决策的OSR框架(CD-OSR)。由于HDP的存在,我们的CD-OSR不需要定义判决阈值,可以同时实现开集识别和新类发现。最后,在基准数据集上的实验验证了CDOSR算法的有效性。
传统OSR方法的共同局限
阈值依赖:
分类边界依赖经验设定的阈值,缺乏对未知类分布的适应能力。
孤立决策:
逐个处理测试实例,忽略批次数据中的相关性信息。
无法发现新类:
仅能拒绝未知类,需额外步骤(如人工标注或后处理)才能发现新类。
静态模型:
训练后模型固定,无法动态适应新出现的类别。
COLLECTIVE DECISION FOR OPEN SET RECOGNITION(CD-OSR)
大概介绍
如前所述,当前现有的OSR方法是专门为识别单个实例而设计的,即使这些实例都是成批到达的。因此,决策中的识别器要么拒绝它们,要么使用预先设置的阈值将它们分类到某个已知的类实例中,其中这样的决策阈值起着关键作用。然而,它的选择通常是基于已知类的知识,不可避免地会产生风险,因为没有可用的信息从未知类。另一方面,一个更现实的OSR系统不应该仅仅停留在拒绝决策上,而应该更进一步,特别是在发现拒绝实例中隐藏的未知类方面。遗憾的是,现有的OSR方法没有给予太多关注。
为了克服这些局限性,我们引入了一种新的集体决策策略OSR问题的目的是扩展现有的开集识别新的类发现。具体地说,一个集体决策为基础的OSR框架(CD-OSR)提出了略有修改HDP。由于HDP的特性,我们的CD-OSR不需要定义决策阈值,可以自动为测试中的未知类预留空间,自然导致新的类发现功能。有趣的是,这也使得它能够同时处理OSR和新类发现。此外,对测试实例进行批量处理,使得CD-OSR考虑了现有方法明显忽略的实例之间的相关性。请注意,CD-OSR实际上可以处理批实例和单个实例。
接下来,我们首先简要回顾HDP,它广泛用于通过在组之间共享混合成分来对多组数据进行联合聚类。在HDP中,常用的术语是"组"或"组件"。然而,我们在这里适应HDP与轻微的修改OSR问题。
分层狄利克雷过程(HDP)的原理与公式推导
1.HDP的生成模型
HDP是一种层次化的贝叶斯非参数模型,用于建模多个组(groups)之间的共享结构。其核心思想是通过两个层次的Dirichlet过程(DP)实现组间子类的共享:
x j i x_{ji} xji的含义是观测数据,从参数 θ j i \theta {ji} θji对应的分布 F ( θ j i ) F(\theta{ji}) F(θji)中采样,然后,HDP框架完成如下:
G 0 G_0 G0是全局基分布(Global Base Distribution),由Dirichlet过程(DP)生成,参数为浓度参数 γ \gamma γ和基分布 H H H
G 0 ∣ γ , H ∼ D P ( γ , H ) G_0\mid \gamma ,H\sim \mathrm{DP(}\gamma ,H) G0∣γ,H∼DP(γ,H)
其作用是所有组(如不同类别)共享的全局子类分布。 G 0 G_0 G0是所有组中子类的"母版菜单"。
G j G_j Gj是组内分布,每个组 j j j的分布 G j G_j Gj由另一个Dirichlet过程生成,参数为浓度参数 α 0 \alpha_0 α0和基分布 G 0 G_0 G0
G j ∣ α 0 , G 0 ∼ D P ( α 0 , G 0 ) G_j\mid \alpha _0,G_0\sim \mathrm{DP(}\alpha _0,G_0) Gj∣α0,G0∼DP(α0,G0)
G j G_j Gj决定了组 j j j中子类的分布。 G j G_j Gj可以看做是从 G 0 G_0 G0中"继承"子类,但允许组内子类的个性化调整。
实例生成:
组 j j j中的实例 x j i x_{ji} xji的参数 θ j i \theta_{ji} θji从 G j G_j Gj中采样,数据 x j i x_{ji} xji由分布 F ( θ j i ) F(\theta_{ji}) F(θji)生成
θ j i ∣ G j ∼ G j , x j i ∣ θ j i ∼ F ( θ j i ) \theta {ji}\mid G_j\sim G_j,\quad x{ji}\mid \theta _{ji}\sim F(\theta _{ji}) θji∣Gj∼Gj,xji∣θji∼F(θji)
下图是其图示结构

2. 中国餐馆特许经营Chinese Restaurant Franchise(CRF)
CRF实际上是在中国餐馆流程(CRP)的基础上扩展的,允许多个餐馆共享一套菜肴。
HDP的生成过程可以通过CRF直观解释:
- 餐馆(组) :每个组对应一个餐馆 j j j。
- 桌子(子类) :每个餐馆中的桌子对应组内的子类 t j i t_{ji} tji。
- 菜品(全局子类参数) :所有餐馆共享一个全局菜单,菜品对应全局子类的参数 ϕ k ∼ H \phi k\sim H ϕk∼H
顾客(实例 x j i x{ji} xji)进入餐馆 j j j,选择一个桌子 t j i t_{ji} tji,桌子上提供菜品 ϕ k j t \phi _{kjt} ϕkjt。若桌子是新创建的,则从全局菜单中选择新菜品。
3.条件分布的推导
组内子类分布:
通过积分掉 G j G_j Gj和 G 0 G_0 G0,可以得到实例分配的条件分布:
θ j i ∣ θ j 1 , . . . , θ j , i − 1 , α 0 , G 0 ∼ ∑ t = 1 m j . n j t i − 1 + α 0 δ ψ j t + α 0 i − 1 + α 0 G 0 \theta _{ji}\mid \theta _{j1},...,\theta {j,i-1},\alpha 0,G_0\sim \sum{t=1}^{m_j.}{\frac{n{jt}}{i-1+\alpha _0}\delta _{\psi _{jt}}}+\frac{\alpha _0}{i-1+\alpha _0}G_0 θji∣θj1,...,θj,i−1,α0,G0∼t=1∑mj.i−1+α0njtδψjt+i−1+α0α0G0
其中 n j t n_{jt} njt是组 j j j中桌子 t t t的顾客数, ψ j t \psi _{jt} ψjt是桌子的参数。
公式含义:实例 x j t x_{jt} xjt以概率 n j t i − 1 + α 0 \frac{njt}{i-1+\alpha _0} i−1+α0njt分配到已有桌子,或以概率 α 0 i − 1 + α 0 \frac{\alpha _0}{i-1+\alpha _0} i−1+α0α0创建新桌子。
全局子类分布:
ψ j t ∣ ψ 11 , . . . , ψ j − 1 , γ , H ∼ ∑ k = 1 K m . k m . . + γ δ ϕ k + γ m . . + γ H \psi {jt}\mid \psi {11},...,\psi {j-1},\gamma ,H\sim \sum{k=1}^K{\frac{m{.k}}{m{..}+\gamma}\delta _{\phi k}}+\frac{\gamma}{m{..}+\gamma}H ψjt∣ψ11,...,ψj−1,γ,H∼k=1∑Km..+γm.kδϕk+m..+γγH
其中 m . k m_{.k} m.k是所有组中分配到菜品 ϕ k \phi _k ϕk的桌子数, m . . = ∑ k m . k m..=\sum_k{m.k} m..=∑km.k。 δ ϕ k \delta{\phi _k} δϕk表示 ϕ k \phi _k ϕk处的狄拉克测度。
其表达的含义是,新桌子以概率 m ⋅ k m . . + γ \frac{m\cdot k}{m..+\gamma} m..+γm⋅k选择已有菜品,或以概率 γ m . . . + γ \frac{\gamma}{m...+\gamma} m...+γγ生成新菜品 ϕ K + 1 ∼ H \phi _{K+1}\sim H ϕK+1∼H
Gibbs Sampling
在CD-OSR框架中,公式(10)和(11)是Gibbs采样过程的核心
论文中公式(10)的物理意义
物理意义:
分配到已有桌子:
概率与当前桌子的"人气"(顾客数 n j t n_{jt} njt)和生成该实例的似然成正比。
举例:若桌子 t t t上已有许多相似实例(高 n j t n_{jt} njt和高似然),新实例更可能加入该桌子。
(10)的第2行的公式表达的是,等号右边第一项是新的餐桌,点已有顾客点过的菜的概率之和。第二项是该新的餐桌点一道新的菜的概率。
公式(11)的物理意义

物理意义:
选择已有菜品:
概率与全局中该菜品的"流行度"(被选次数 m . k m_{.k} m.k)和生成数据的似然成正比。
举例:若菜品 k k k已被多个组使用(高 m . k m_{.k} m.k),新桌子更可能选择它。
在实际应用中:
由于上述分层狄利克雷过程(HDP)的性质适合我们的问题,我们在这里调整HDP略有修改,以解决OSR问题。因此,一个集体决策为基础的OSR框架(CD-OSR)的建议作为一个初步的解决方案,对集体决策的开集识别。具体地,CD-OSR如下工作。
中国餐馆特许经营(CRF)模型与HDP符号的对应关系
(1) 餐馆(Restaurant) ↔ 组(Group)
- 每个餐馆对应HDP中的一个组(Group),例如一个已知类(如"猫")或测试集。
- 组 j j j的分布 G j ∼ D P ( α 0 , G 0 ) G_j\sim \mathrm{DP(}\alpha _0,G_0) Gj∼DP(α0,G0)。
(2) 顾客(Customer) ↔ 实例 x j i x_{ji} xji
- 顾客是进入餐馆的个体,对应数据实例 x j i x_{ji} xji(组 j j j中的第 i i i个实例)。
- x j i ∼ F ( θ j i ) x_{ji}\sim F(\theta {ji}) xji∼F(θji),其中 θ j i \theta{ji} θji是子参数。
(3) 桌子(Table) ↔ 子类分配 t j i t_{ji} tji
- 桌子是组内的子类(Component),实例 x j i x_{ji} xji被分配到某个桌子 t j i t_{ji} tji,对应子类归属。
- θ j i = ψ j t j i \theta _{ji}=\psi {jt{ji}} θji=ψjtji(桌子参数)。
(4) 菜品(Dish) ↔ 全局子类参数 ϕ k \phi_k ϕk
- 菜品是全局共享的子类参数 ϕ k \phi_k ϕk ,所有餐馆的桌子从同一份菜单选择菜品。
- ψ j t = ϕ k j t \psi _{jt}=\phi _{kjt} ψjt=ϕkjt(桌子 t t t的菜品参数)。
(5) 菜单(Menu) ↔ 全局基分布 G 0 G_0 G0
- 菜单是所有餐馆共享的全局子类分布 G 0 G_0 G0 ,由基分布 H H H生成。
- G 0 ∼ D P ( γ , H ) G_0\sim \mathrm{DP(}\gamma ,H) G0∼DP(γ,H),菜单中的菜品是 ϕ 1 , ϕ 2 , . . . . \phi_1,\phi_2,.... ϕ1,ϕ2,....。
(6) 厨师长(Chef) ↔ 基分布 H H H
- 厨师长决定菜品的生成规则,对应基分布 H H H ,由基分布 H H H(如高斯-威沙特分布)。
- ϕ k ∼ H \phi _k\sim H ϕk∼H,每个菜品参数从 H H H中采样。

CD-OSR的实现与公式推导
CD-OSR原理
CD-OSR通过改进的HDP框架,将开放集识别转化为动态聚类问题,具体原理如下:
层次化子类共享
全局基分布 G 0 G_0 G0
所有组(已知类和测试集)共享一个全局子类分布 G 0 G_0 G0,由Dirichlet过程生成:
G 0 ∣ γ , H ∼ D P ( γ , H ) G_0\mid \gamma ,H\sim \mathrm{DP(}\gamma ,H) G0∣γ,H∼DP(γ,H)
其中 H H H是基分布(如高斯-威沙特分布), γ \gamma γ控制全局子类数量。
全局子类数量 G j G_j Gj
每个组 j j j已知类或测试集)的子类分布由 G 0 G_0 G0继承
G j ∣ α 0 , G 0 ∼ D P ( α 0 , G 0 ) G_j\mid \alpha _0,G_0\sim \mathrm{DP(}\alpha _0,G_0) Gj∣α0,G0∼DP(α0,G0)
α 0 \alpha_0 α0控制组内子类的生成频率,值越大,组内子类越多。
动态子类分配
通过Gibbs采样迭代更新以下变量:
1.测试实例的桌子分配 t j i t_{ji} tji:
决定实例属于已有子类还是新子类(公式10)。
2.桌子的菜品分配 k j t k_{jt} kjt
决定子类继承全局参数还是生成新参数(公式11)。
无需阈值的开放集识别
已知类判定 :若测试实例分配到已知类的子类(对应某个 ϕ k \phi _k ϕk),则分类为已知类。
新类发现 :若分配到新子类(从 H H H生成 ϕ K + 1 \phi _{K+1} ϕK+1),则标记为未知类,并扩展全局子类集合。
1.CD-OSR的核心
CD-OSR将HDP适配到开放集识别场景,主要修改如下:
组定义 :每个已知类是一个组,测试集整体作为另一个组。
子类过滤 :剔除占比过低的子类,防止过拟合。
分类规则:测试实例分配到已知类的子类则分类为已知类,否则标记为未知类。
2. 训练阶段
1.数据划分:
训练集分为拟合集 F \mathcal{F} F和验证集 V \mathcal{V} V,用于参数调优。
训练集:
已知类别的实例集合,每个类别单独分组。 X t r = { X 1 , X 2 , . . . , X J } X_{\mathrm{tr}}=\{X_1,X_2,...,X_J\} Xtr={X1,X2,...,XJ},其中 X j X_j Xj表示第 j j j个已知类的实例集。
测试集:
待分类的实例集合,可能包含已知类和未知类。
X t s = { x 1 , x 2 , . . . , x N } X_{\mathrm{ts}}=\{x_1,x_2,...,x_N\} Xts={x1,x2,...,xN}
超参数:
HDP的浓度参数: α 0 \alpha_0 α0(控制组内子类数量), γ \gamma γ(控制全局子类共享程度)。
基分布 H H H的参数(如高斯-威沙特分布的 μ 0 , Σ 0 , β , ν ) \mu _0,\Sigma _0,\beta ,\nu) μ0,Σ0,β,ν)
子类过滤阈值 ϵ \epsilon ϵ(如 ϵ = 0.01 \epsilon=0.01 ϵ=0.01,过滤占比过低的子类)
2.参数初始化:
基分布 H H H设为高斯-威沙特分布:
H = N ( μ ∣ μ 0 , ( β Σ ) − 1 ) ⋅ W ( Σ ∣ Σ 0 , ν ) H=\mathcal{N} (\mu \mid \mu _0,(\beta \Sigma )^{-1})\cdot \mathcal{W} (\Sigma \mid \Sigma _0,\nu ) H=N(μ∣μ0,(βΣ)−1)⋅W(Σ∣Σ0,ν)
3.测试阶段
1.测试集作为新组输入
输入形式:
测试集整体被视为一个新的组(称为"Testing-set组"),与训练集的已知类组(如Class 1-4)共同参与共聚类。
作用:
将测试实例的分布与已知类分布对齐,利用全局子类共享机制实现分类。
2.共聚类(Co-clustering)
过程:
使用Gibbs采样对测试集和已知类组进行联合建模,动态分配实例到子类。具体操作包括:
更新桌子分配(公式10):测试实例可能分配到已知类的子类(已有桌子)或创建新子类(新桌子)。
更新菜品分配(公式11):新子类继承全局参数或生成新参数。
输出:
测试实例的子类归属,以及全局子类参数的更新。
3.分类决策
规则:
若测试实例分配到已知类组的子类,则分类为该已知类。
若分配到测试集组的新子类(从基分布 H H H生成),则标记为未知类
4.新类发现
统计新子类数目:
测试集中新子类的数量反映潜在未知类的存在。例如,若测试集组有5个新子类,可能对应1个未知类(假设每个类有多个子类)。
估计公式:
Δ = ⌈ ∣ S u n k n o w n ∣ ∣ S k n o w n ∣ / ( J − 1 ) ⌉ \left. \Delta =\left. \lceil \frac{|S_{\mathrm{unknown}}|}{|S_{\mathrm{known}}|/(J-1)} \right. \right. \rceil Δ=⌈∣Sknown∣/(J−1)∣Sunknown∣⌉
其中 ∣ S u n k n o w n ∣ |S_{\mathrm{unknown}}| ∣Sunknown∣是测试集的新子类数, ∣ S k n o w n ∣ |S_{\mathrm{known}}| ∣Sknown∣是已知类的子类总数, J − 1 J-1 J−1是已知类数量。
图2直观展示了CD-OSR框架在测试阶段的共聚类过程,具体元素如下:
组(Groups):
已知类组:如Class 1-4,每个类作为独立组,内部包含若干子类(如Class 1有子类A、B)。
测试集组(Testing-set):作为新组参与聚类,其子类可能部分与已知类共享,部分为新生成。
子类(Subclasses):
已知子类(Known subclasses):用实心圆表示,颜色与已知类对应(如Class 1为蓝色)。
新子类(New subclasses):用不同颜色的圆表示,属于测试集组独有的子类。
共享关系:
无连线的新子类:表示测试集中的未知类(如子类D仅属于Testing-set)。
分类结果示例:
测试实例分配到子类A(属于Class 1)→ 分类为已知类。
测试实例分配到子类D(新子类)→ 标记为未知类。
CD-OSR的伪代码

1.首先对参数进行初始化
python
1. 输入训练集 X_tr 和测试集 X_ts,按实验协议划分(如Section 4.1.1)。
2. 按类别标签将训练集 X_tr 划分为组:X_tr = [X_tr1, X_tr2, ...](每个组对应一个已知类)。
3. 初始化参数:
- 基分布 H 的参数:μ0(训练集均值),Σ0(缩放后的协方差矩阵,公式13),β=1,ν通过网格搜索选择。
- 浓度参数:α0 ~ Gamma(10,1),γ ~ Gamma(100,1)。
- 迭代次数 T = 30,初始子类数 InS = 30。
- 子类过滤阈值 ε = 0.01。
2.然后进行共聚类
python
- 将训练集和测试集合并为输入数据:Data = [X_tr; X_ts]
- 调用HDP软件包(如Teh的代码)进行共聚类:
Results = HDP(Data, α0, γ, H, InS, T)
其中:
- HDP框架对每个组(已知类和测试集)建模。
- 迭代T次Gibbs采样,更新子类分配。
Gibbs采样迭代:
- 对每个实例 x j i x_{ji} xji,按公式(10)更新桌子分配 t j i t_{ji} tji。
- 对每个新桌子 t n e w t^{new} tnew,按公式(11)更新菜品分配。
- 更新全局子类参数 ϕ k \phi _{k} ϕk (如高斯分布的均值和协方差)。
作用:
训练集和测试集共同参与聚类,动态分配子类。
测试集的新子类反映潜在未知类。
3.确定子类(Determining the Subclasses)
python
6. 后处理共聚类结果:
for 每个组 j 的每个子类 s:
计算子类 s 在组 j 中的占比 ρ = (子类s的实例数) / (组j的总实例数)
if ρ < ε:
移除该子类 s
作用:
过滤掉占比过低的子类(如噪声或离群点),提升模型鲁棒性。
例如,若某子类仅占0.5%的实例(ε=0.01),则被剔除。
4.预测
python
7. 对新实例 x_new 进行分类:
a. 将 x_new 加入测试集组,重新运行共聚类(仅更新局部分配)。
b. 根据分配结果:
if x_new 的子类属于某个已知类 j 的子类 s:
标记为类 j
else:
标记为未知类,并记录新子类参数
8. 估计未知类数目 Δ(公式14):
Δ = ceil(|S_unknown| / (|S_known| / (J-1)))
作用:
新实例的分类基于其子类归属,无需人工设定阈值。
新子类的数量通过全局子类比例估计未知类数目。
实验
1.数据预处理与输入
(1) 图像数据转换为特征向量
输入数据:原始图像(如USPS手写数字、COIL20物体图像)。
预处理步骤:
-
尺寸统一:例如将图像缩放到固定尺寸(如32×32像素)。
-
展平为向量:将图像矩阵转换为1D向量(如32×32 → 1024维)。
-
PCA降维:通过主成分分析(PCA)将高维向量降维(如1024维 → 69维)。
-
标准化:对特征向量进行归一化(如Z-score标准化)。
(2) 按类别分组
已知类分组:每个已知类别的训练数据单独作为一个组(Group)。
示例:
类别"猫"的所有训练样本 → 组1。
类别"狗"的所有训练样本 → 组2。
输入格式:每个组的数据以特征向量矩阵形式输入(行=样本数,列=特征维度)。
2.HDP模型的初始化
(1) 全局基分布 G 0 G_0 G0的参数设置

公式(13)如下所示
(13)右侧的第二项表示已知类别的公共合并协方差矩阵
(2) 组内分布 G j G_j Gj的初始化
初始子类数:每个组初始化为30个子类(InS=30)。
参数采样:
每个子类的参数 ϕ k \phi_k ϕk从基分布 H H H中采样。
例如,组1(猫)的初始子类参数可能为 ϕ 1 , ϕ 2 , . . . . . ϕ 30 \phi_1,\phi_2,.....\phi_{30} ϕ1,ϕ2,.....ϕ30。
3. Gibbs采样迭代过程
(1) 子类分配更新(公式10)


(2) 全局子类参数更新(公式11)

目标:更新每个子类的参数 ϕ k \phi_k ϕk
步骤:
- 统计分配结果:计算每个子类 k k k的的所有样本集合 S k = { x j i ∣ k j t = k } \boldsymbol{S}{\boldsymbol{k}}=\{\boldsymbol{x}{\boldsymbol{ji}}\mid \boldsymbol{k}_{\boldsymbol{jt}}=\boldsymbol{k}\} Sk={xji∣kjt=k}
- 更新参数:根据 S k S_k Sk的值和协方差,结合基分布 H H H的的先验,计算后验分布。
向量传递逻辑:
所有分配到子类 k k k的样本向量 x i j x_{ij} xij被汇总,用于更新该子类的均值和协方差。
这一步骤通过贝叶斯更新,将局部数据信息与全局先验结合。
4.后处理:子类过滤
剔除低占比子类:
训练结束后,对每个组的子类进行筛选,剔除占比(样本数比例)低于阈值 ε = 0.01 \varepsilon=0.01 ε=0.01的子类。
示例:若组1(猫)的某个子类仅包含0.5%的样本(如1张图片),则被剔除。
结论
本文的主要贡献是提出了一种集体/分批决策的开集识别策略,旨在将现有的开集识别扩展到新的类发现中,同时考虑测试实例之间的相关性。为了实现这一目标,我们将HDP稍作修改以解决OSR问题,从而为OSR中的集体决策提供了初步解决方案。需要强调的是,我们的CD-OSR并不过分依赖于训练数据,并且能够随着数据的变化而实现自适应变化。更准确地说,CD-OSR可以为测试中出现的未知类提供显式建模。这自然会导致新的类发现功能,即使它只是在子类级别。此外,与现有方法从判别模型的角度处理OSR问题不同,CD-OSR实际上是从生成模型的角度来解决这一问题的,这是由于使用了HDP。最后,在一组标准数据集上的实验结果表明了该学习框架的有效性.
此外,应该注意的是,建模未知类只在我们的CD-OSR的测试阶段进行,而在训练阶段没有利用未知类的可用知识。这在某种程度上似乎带有懒惰的味道。因此,克服这一局限性将是未来一个很有前途的研究方向。此外,由于CDOSR目前没有充分利用来自已知类别标签的判别信息,因此更有效地嵌入此类信息也值得进一步探索。此外,用可扩展的确定性推理技术取代Gibbs采样器也是未来工作的一个很有前途的方向。总之,CDOSR只是目前对开集识别向集体决策发展的一个概念性证明。因此,更有效的OSR集体决策方法值得在未来的工作中进一步探索。
后续思考
相比于传统的HDP,本文章改进并非对HDP/CRF的数学框架进行颠覆,而是针对开放集识别的需求,调整模型的应用逻辑和训练策略:
1.问题驱动:将HDP从无监督聚类任务转向开放集分类任务。
2.结构适配:通过组间隔离、子类过滤、动态扩展等策略,使模型能区分已知类与未知类。
3.目标融合:联合实现分类(已知类)与发现(未知类),而非单纯聚类。
这种改进类似于"用已有的乐高积木搭建一座新房子"------积木本身不变,但组合方式和目标用途完全不同。其相比于其他OSR文章的一个主要特点是不需要设置阈值,判决是未知类还是已知类。