一、文章涉及论文源码

《Towards Open Set Deep Networks》:https://github.com/abhijitbendale/OSDN

《Meta-Recognition: The Theory and Practice of Recognition Score Analysis》:https://github.com/Vastlab/libMR

说明:关于OpenMax算法的具体实现,有兴趣的可以备注来意q:3270348868

二、基本概念

1. 激活向量 AV:即训练(测试)样本通过神经网络的倒数第二层(全连接层)得到各类样本的激活向量 AV.

2. 均值激活向量 MAV:即各类训练样本的 AV 的均值,如 N 分类,就得到 N 个 MAV.

3. Weibull分布: 由于正态分布与真实的极值分部情况不符合(极值的部分就是正态分布的两端),故引出极值理论,常用的极值分部有:Weibull分布、Gumbel分布、以及Frechet分布. 注:OpenMax使用的是Weibull分部,关于OpenMax中的极值分部符合Weibull分部的证明详见

4. 距离集 D(i) :各类训练样本的 AV 到本类的 MAV 的欧式距离的集合.

三、 OpenMax的感性理解

1. 闭集N分类网络通过网络模型输出得到N维激活向量,将激活向量输入到SoftMax层,经过SoftMax层,会得到一个N维的得分向量,也就是我们所看到的各类测试样本的分类得分,Socre.

2. 而OpenMax在SoftMax之前加入了一系列处理,为了方便描述,以第 i 类为例,即:计算出第 i 类所有训练样本的 MAV,并让第 i 类中所有分类正确的 AV 依次与 MAV 计算欧式距离,得到第 i 类的距离集,而这个距离集,将用于Weibull分布拟合,通过拟合得到第 i 类的累积分布函数 CDF.

3. 现在,就到了测试样本的阶段:输入一个测试样本,得到其激活向量 AV,计算该激活向量到各类 MAV 的距离,于是得到 N 个距离,将这 N 个距离分别带入各类拟合好的 CDF 函数中,得到 N 个概率,这N个概率分别代表此测试样本 AV 到 MAV 的距离出现在各类距离集中的概率,通俗理解就是将距离带入 CDF 函数,就得到此测试样本是各类的N个概率

4. 矫正得分:利用这N个概率,对应矫正此测试样本的的得分向量Score,矫正方法:CDFi(AV到MAV的距离) = 此样本属于 i 类的概率,反正 1 - CDFi(AV到MAV的距离)  = 此样本不属于 i 类的概率, 将此概率作为修正权值. 其中 CDFi 为第 i 类的累积分布函数. 将这 N 个修正权值对应乘到此测试样本AV经过SoftMax后得到的得分向量上

5. 经过对测试样本的得分矫正,无非是对得分向量中的 N 个得分值进行一定的消减,将每类预测概率上消减的值加在一起就是 此类为未知类的概率,此时就可以得到一个 N+1 维的得分向量

6. 到此,OpenMax算法整体流程结束!

二、OpenMax算法流程

1. OpenMax算法流程图:可以很清楚的看到OpenMax是如何进行样本预处理以及对测试样本矫正的过程

a. OpenMax算法预处理过程
 

b. OpenMax应用于测试样本

2. OpenMax算法伪代码

a. OpenMax算法预处理阶段

b. OpenMax应用于测试集

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐