Eri*_*lli 1 classification object-detection deep-learning tensorflow
嗨,我用两类猫和狗建立了CNN,我对此进行了训练,现在可以对猫和狗的图像进行分类了。但是,如果我想为新的未分类对象引入类呢?例如,如果我用鲜花图像为我的网络喂食,则网络会给我错误的分类。我想使用第三类为新的未分类对象构建网络。但是我该如何建立这个第三堂课。我必须使用哪些图像来获得不同于狗或猫的新对象的类?实际上,在我的网络末端,我使用Softmax,而我的代码是使用tensorflow开发的。有人可以给我一些建议吗?谢谢
您需要向网络添加第三个“其他”类。有几种方法可以解决此问题。通常,如果您有一个要检测的课程,则应该有该课程的示例,因此您可以将没有猫或狗的图像添加到标有新课程的训练数据中。但是,这有点棘手,因为按照定义,新类是宇宙中除了狗和猫以外的所有东西,因此您不可能指望有足够的数据来训练它。但是,实际上,如果您有足够的示例,则网络可能会知道,只要前两个没有触发,就会触发第三类。
我过去使用的另一个选项是对“默认”类进行建模,该类与常规类稍有不同。因此,您不必明确地了解什么是“不是猫或狗”的图像,而是可以明确地说这仅仅是不激活猫或狗神经元的任何东西。我通过将最后一层从softmax替换为S型来做到这一点(因此,损失将是S型交叉熵而不是softmax交叉熵,并且输出不再是分类概率分布,但是说实话,它并不能带来太多收益差异),然后将“默认”类别表示为1减去每个其他类别的最大激活值。因此,如果没有一个类别的激活系数大于或等于0.5(即该类别的估计概率为50%),则“默认” 班级将是得分最高的班级。您可以探索其他类似的方案。
| 归档时间: |
|
| 查看次数: |
1093 次 |
| 最近记录: |