繁体   English   中英

千层面的卷积神经网络精度(回归与分类)

[英]Convolutional Neural Network accuracy with Lasagne (regression vs classification)

我已经使用Lasagne玩了一段时间,以解决使用卷积神经网络进行二进制分类的问题。 但是,尽管我在训练和验证损失上得到了不错的结果,但我的验证和测试准确性始终是恒定的(网络始终预测同一班级)。

我遇到过这个问题 ,一个人和我的千层面有着同样的问题。 他们的解决方案是在Lasagne顶部使用Nolearn时将regression=True设置regression=True

有谁知道如何在Lasagne中设置相同的变量(因为我不想使用Nolearn)? 除此之外,还有人解释为什么需要这样做吗?

从nolearn看NeuralNet 类的代码 ,看起来参数regression在很多地方都使用过,但是在大多数情况下,它会影响输出值和损失的计算方式。

如果regression=False (默认值),则网络以最大的概率输出类别,并使用分类交叉熵计算损失。 另一方面,在regression=True情况下,网络输出每个类别的概率,并在输出矢量上计算平方误差的损失。

我不是深度学习和CNN方面的专家,但这样做可能起作用的原因是,在regression=True情况下,如果误差梯度较小,则对网络参数进行小的更改可能不会更改预测的类别和相关的损失,并可能导致算法“认为”它已经收敛。 但是,如果改为查看类概率,则较小的参数更改将影响概率以及由此产生的均方误差,并且网络将继续沿该路径运行,这最终可能会更改预测。

这只是一个猜测,如果不查看代码和数据集就很难分辨。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM