machine-learning - 我应该在时期内针对错误分类的样本调整损失权重吗?

标签 machine-learning keras conv-neural-network

我正在使用 FCN(全卷积网络)并尝试进行图像分割。训练时,有些区域会被错误标记,但是进一步的训练并不能帮助它们消失。我相信这是因为网络学习到的一些特征可能不是完全正确的,但是因为有足够多的正确分类的例子,所以它陷入了局部最小值而无法摆脱。

我能想到的一个解决方案是训练一个纪元,然后在训练图像上验证网络,然后调整不匹配部分的权重,以在下一个纪元中对不匹配进行更多惩罚。

直觉上,这对我来说是有道理的 - 但我还没有找到任何关于此的文章。这是已知技术吗?如果有的话怎么称呼?如果不是,我错过了什么(有什么缺点)?

最佳答案

这很大程度上取决于您的网络结构。如果您使用原始 FCN,由于池化操作,对象边界上的分割性能会下降。对于图像分割,原始 FCN 有相当多的变体,尽管它们没有遵循您建议的路线。

这里仅举几个例子。一种方法是在 FCN 输出之上使用条件随机场 (CRF) 来细化分割。您可以搜索相关论文以了解更多信息。从某种意义上说,它与你的想法很接近,但不同的是CRF作为后处理方法与网络分离。

另一个非常有趣的作品是U-net。它采用了残差网络(RES-net)的一些思想,可以将较低级别的高分辨率特征集成到较高级别中,以实现更准确的分割。

这仍然是一个非常活跃的研究领域。所以你可能会用自己的想法带来下一个突破。谁知道!玩得开心!

关于machine-learning - 我应该在时期内针对错误分类的样本调整损失权重吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44347666/

相关文章:

python - 在keras中使用Conv3d将多个图像输入到同一个CNN

tensorflow - TensorFlow中具有稀疏标签的多标签图像分类?

python - 属性错误 : module 'keras.utils.generic_utils' has no attribute 'populate_dict_with_module_objects'

tensorflow - 为什么 Keras API 需要第一层的输入形状,因为它实际上在没有它的情况下也能正常工作?

python - Lambda 上的值错误

machine-learning - 为什么keras中CNN的中间层输出不同?

machine-learning - 具有 UFLDL 的 Tanh 激活功能的稀疏自动编码器

python - 使用 VGG 16 作为特征提取器的类似 U-net 的架构 - 连接层的问题

machine-learning - 如何获取垃圾邮件的概率而不是分类

python - 训练期间验证准确率突然下降