CNN图像多标签分类

CNN图像多标签分类关键点网络部分在神经网络的最末端将 softmax 激活函数改为 sigmoid 激活函数 将损失函数由分类交叉熵替换为二元交叉熵 正像是一个神经网络没法预测出一个它未曾训练过的类 你的神经网络没法预测出它未曾见过的多类标签组合 这个特性是由于神经网络内部神经元的激活函数 如果你的神经网络同时经过 1 黑色裤子 2 红色衬衫的训练 现在你希望预测 红色裤子 你的数据集中没有 红色

关键点

  1. 网络部分
  • 在神经网络的最末端将softmax激活函数改为sigmoid激活函数。
  • 将损失函数由分类交叉熵替换为二元交叉熵。方法是计算一个样本各个标签的损失(输出层采用sigmoid函数),然后取平均值。把一个多标签问题,转化为了在每个标签上的二分类问题。
  1. 正像是一个神经网络没法预测出一个它未曾训练过的类,你的神经网络没法预测出它未曾见过的多类标签组合。这个特性是由于神经网络内部神经元的激活函数。

如果你的神经网络同时经过:(1)黑色裤子(2)红色衬衫的训练,现在你希望预测“红色裤子”(你的数据集中没有“红色裤子”的图片),用于检测“红色”和“裤子”的神经元将会发生变化,但由于神经网络在之前从没见过这些数据/激活的组合,一旦他们到达了全连接层,你的输出预测就很有可能出错了(例如你可能会见到“红色”或者是“裤子”,但不太可能会同时见到这两个)。

再次重申,你的神经网络不能预测出它之前未曾训练过的数据(而且你也不该期望它能够预测出)。当你在训练你自己的多标签分类Keras神经网络时,请牢记这一点。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217530.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午9:22
下一篇 2026年3月18日 上午9:22


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号