首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卷积神经网络进行偏斜预测

卷积神经网络进行偏斜预测
EN

Stack Overflow用户
提问于 2016-05-09 07:17:45
回答 2查看 705关注 0票数 1

我正在训练一个卷积神经网络,将一幅图像分类为五类之一(1-5级)。

我几乎没有一班的训练图像,所以我做了一些数据增强,采取随机作物和翻转图像,以创造更多的数据。我至少有3000张2- 5级的训练图像。现在,我的训练集包含了每个班的3000张图像,我用随机梯度下降来训练它。

我的测试集包括:

代码语言:javascript
复制
Class 1 - 8 images
Class 2 - 83 images
Class 3 - 227 images
Class 4 - 401 images
Class 5 - 123 images

我的广播网正确地预测:

代码语言:javascript
复制
Class 1 - 0 images
Class 2 - 0 images
Class 3 - 0 images
Class 4 - 399 images
Class 5 - 0 images

我不期望有一个非常精确的网络,因为我的训练集的局限性和15000张图像可能也是不够的-但我不会期望它是如此偏斜,因为2-5类有相同数量的不同的训练图像。如果我把我的网络训练成更大比例的4级图像,那么这不会让我感到惊讶。我希望网络至少能够正确地预测其他一些类。

有什么想法吗?

编辑:

图像类型:建筑物

网络体系结构:

代码语言:javascript
复制
Input image - 256 x 256 x 3
Convolutional layer - 15 x 15 filters, 16 filters
Max 2x2 pooling layer
Convolutional layer - 11 x 11 filters, 32 filters
Max 2x2 pooling layer
Convolutional layer - 7 x 7 filters, 64 filters
Max 2x2 pooling layer
Fully connected layer - 1024 outputs
Softmax classifier layer - 5 outputs

成本函数:交叉熵

EN

回答 2

Stack Overflow用户

发布于 2016-05-09 21:31:01

这是可以发生的(虽然不是很常见)。我想你训练的时间还不够长。CNN试图一次正确地得到一个类别,这通常是一个样本数最大的一个,如果你没有标准化损失。这是因为它从一开始就正确地预测这个类中得到了最大的好处。随着时间的推移,它变得越来越好,它不再得到这种好处,然后也试图正确地预测其他类。

您可以根据类频率来加权您的softmax损失,或者重新采样您的数据集以避免这个问题。我也看到你的CNN不够深,滤镜尺寸不适合你的分辨率,训练样本的数量也太少。我建议你微调一些预先训练好的神经网络,如VGG、GoogLeNet、ResNet或AlexNet。

对于caffe,您可以遵循下面的示例,style.html

票数 0
EN

Stack Overflow用户

发布于 2016-10-04 00:51:21

我想我已经很晚才给出答案,但我愿意分享我的经验/知识。:)

在实践中,建议最大限度地使用3x3和5x5等小滤波器,因为它们提供了较小的参数,与15x15等相比,这些参数减少了训练时间,准确性没有差别。对此进行了研究(见2013-2015年ImageNet竞赛获奖者)。

一方面,您的模型偏袒一个类的一个可能原因是它们不平衡。您所能做的就是惩罚该模型,使其更偏向于具有较小实例的类。在Keras中,有一个class_weight参数,允许您缩放损失函数。

1- 序贯Keras

2- 如何为Keras中的不平衡类设置类权重?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37109804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档