关于开集识别,最近才接触到的知识,实际上就是在测试时把训练过程中没有见到过的样本识别出来,至于这些开放集样本的类别不做考虑,仅仅检测出它是新类即可。乍一看,开集识别和之前了解过的广义零样本学习很类似,广义零样本学习不止检测出新类并且能够进行识别,这借助于外界的附加知识,比如label和属性,零样本学习要用到自然语言处理的知识,最常用的工具包是word2vec。与零样本学习不同的是,这里的开集识别并没有用到附加知识,这在一定程度上减少了因为语义设计不完整而造成的损失,反之去寻找一个边界,新类和旧类能够完全的分离开来。
看的第一篇开集识别是一篇硕士论文,那里面用基于孪生网络的方式进行开集识别,就是用一个参数共享的深度网络对样本对进行特征提取,训练阶段最小化同类(样本对标签为1)的样本对相似性,最大化不同类(样本对标签为0)的样本对相似性,测试时判断测试样本和已知类样本的特征之间相似性的大小来决定是否属于开放集样本。因为后面大概率要做开集识别的工作,所以看了一篇发表在CVPR2020年的文章Generative-discriminative Feature Representations for Open-set Recognition,文章链接https://openaccess.thecvf.com/content_CVPR_2020/html/Perera_Generative-Discriminative_Feature_Representations_for_Open-Set_Recognition_CVPR_2020_paper.html,代码未开源。这篇文章借助于生成模型和自监督近年来在分类和检测上的复杂应用方法,设计了一种算法,旨在挖掘一个更加丰富的深度特征空间,使得网络能够学习到输入数据的更加高级的特征,如语义和结构属性,从而能很好地降低开放集样本属于已知类别的概率值,最终把其判断为开集样本。
![](https://i-blog.csdnimg.cn/blog_migrate/75296ab0d9759140ec42643f42831100.png)
如图1所示,通常情况下,用已知类样本训练出来的模型