2

我正在使用深度学习 caffe 框架进行图像分类。
我有带脸的硬币。其中一些是左向的,有些是正确的。

为了对它们进行分类,我使用了常见的方法——从已经捕获大量图像模式的预训练 ImageNet 网络中获取权重和结构,并主要训练最后一层以适合我的训练集。

但是我发现网络在这个集合上不起作用:我拿了一些硬币,例如 leftdirected ,为其生成水平翻转的图像并将其标记为右侧。

右侧脸

对于这个集合的卷积网络,准确率约为 50%,它完全是随机结果。

我还尝试在 2 个图像(“h”字母的 2 个翻转版本)上训练网络。但结果相同 - 50% 。(如果我选择不同的字母并在 augemeneted 数据集上训练网络 - 我很快就会收到 100% 的准确度)。但是翻转的不变性打破了我的分类。

在此处输入图像描述 在此处输入图像描述

我的问题是:是否存在一些方法可以让我利用预训练的 imagenet 的优势,但以某种方式打破了这种不变性。网络上的哪一层使不变性成为可能。

我正在使用“caffe”基于此示例方法生成网络:

https://github.com/BVLC/caffe/blob/master/examples/02-fine-tuning.ipynb

4

1 回答 1

3

在图像网络上训练的 Caffe 基本/基线模型大多使用非常简单的图像增强:水平翻转图像。也就是说,imagenet 类在水平翻转时确实是相同的。因此,您尝试微调的权重是在应该忽略水平翻转的设置中训练的,我想您看到的是一个很好地捕捉到这一点的网络——它不再对这种特定的转换敏感。
判断这种不变性发生在网络的哪一层并非易事,因此很难说应该微调哪些层来克服这种行为。我想这种不变性对于网络来说是非常基础的,如果它需要重新训练整个网络,我不会感到惊讶。

于 2016-07-23T18:51:20.950 回答