我有一个从imagenet收集的小数据集(每个类有7个类,有1000个训练数据)。我尝试用alexnet模型训练它。但不知何故,准确度不能再提高(最高约68%)。我删除了conv4和conv5层以防止模型过度拟合也减少了每层神经元的数量(conv和fc)。这是我的设置。
我做错了什么,以至于准确度如此之低?
答案 0 :(得分:0)
我想理清几个词:
(1)感知器是神经网络中的单个细胞。
(2)在CNN中,我们通常关注内核(过滤器)作为一个单元;这是感知器的方阵,形成一个伪视觉单元。
(3)关注个体感知器通常有意义的唯一地方是FC层。当你谈到删除一些感知器时,我认为你的意思是内核。
培训模型最重要的部分是确保您的模型适合手头的问题。 AlexNet(和CaffeNet,BVLC实施)适用于完整的ImageNet数据集。 Alex Krizhevsky和他的同事花费了大量的研究工作来调整网络以解决问题。通过简单地随机删除图层和内核,你不将在严重减少的数据集上获得类似的准确性。
我建议你从CONVNET(CIFAR-10网)开始,因为它可以更好地适应这种规模的问题。最重要的是,我强烈建议您不断使用可视化工具,这样您就可以检测各种内核层何时开始学习它们的模式,并查看拓扑中微小变化的影响。
您需要运行一些实验来调整和理解拓扑。在训练期间的选定时间记录内核可视化 - 可能以预期收敛的10%为间隔 - 并在删除一些内核时删除视觉敏锐度,或者删除整个图层,或者您选择的任何其他内容。
例如,我希望如果您使用当前截断的CaffeNet进行此操作,您会发现深度和广度的严重损失极大地改变了它正在学习的特征识别。构件的当前深度不足以识别边缘,然后是形状,然后是全身部位。但是,我可能错了 - 你还有三个剩下的层。这就是为什么我要求您发布您获得的可视化,以与已发布的AlexNet功能进行比较。
编辑:CIFAR VISUALIZATION
与ILSVRC-2012相比,CIFAR在不同类别之间的区别要大得多。因此,培训需要每层更少的细节和更少的层。训练更快,过滤器对人眼来说几乎没有那么有趣。这不是Gabor(非Garbor)过滤器的问题;只是模型不需要学习这么多细节。
例如,对于CONVNET来区分jonquil和jet,我们只需要在白色(花朵)涂抹内涂抹黄色。为了让AlexNet从大花蕙兰告诉jonquil,网络需要了解花瓣数或形状。