假设我在 CIFAR-10 上微调了一个 10 分类的 ResNet18 网络,验证集的准确率约为 93%。
然而,当输入 5000 个随机噪声图像(CIFAR-10 的均值和标准差相同的高斯噪声)时,并没有像预期的那样随机采样到 10 类,几乎所有这些图像都被归类为鸟类:
然后我检查最后一个 conv 层之后(FC 层之前)的特征向量,其中一张图像对应于 512 维向量。对于 11 个类别(CIFAR10+noise)中的每一个,我使用该类别下所有 512 维图像向量的平均值来表示该类别。两个类别的表示向量之间的余弦用于衡量两个类别之间的距离。(这样越少是,越接近和是)然后创建一个有 11 个节点的图,每两个节点连接一个边加权. 该图的 MST:
鸟和噪声之间的距离非常小。
如果网络仅对猫和狗进行 2 分类,也会发生这种情况。对于其余的飞机,飞机,青蛙等,超过70%被错误分类为猫,除了马,其中72%被分类为狗。至于随机噪声,100% 被归类为猫。
所以我自然会想到一些问题:
- 如果是训练集中的猫图像比狗的图像更混乱?鸟是10个类别中最杂乱的?
- “杂波”如何在数学上表示?跨越更大的维度空间?使用流形、PCA 或 K-means 计算从质心到边界的距离?在原始图像或特征图上?...
- 也许训练集图像中的鸟总是以嘈杂的背景出现?那么噪音是否对鸟类有积极影响?
- 如何提取网络中的神经元真正学会了对 10 个类别进行分类?
我搜索了一些关于这个的东西,也许它被称为分布外检测?我现在想做的不是提高准确性,而是弄清楚为什么会在可解释的视图中发生这种情况。
您能否就我上面列出的想法或进一步的实验设计给我一些建议?一些与此相关的论文也值得赞赏。
非常感谢!
