擅长:python、mysql、java
<p>对于多标签分类,我认为使用<code>sigmoid</code>作为激活,使用<code>binary_crossentropy</code>作为丢失是正确的。</p>
<p>如果输出是稀疏多标签(即少数正标签,多数为负标签),则Keras<code>accuracy</code>度量将被正确预测的负标签溢出。如果我没记错的话,凯拉斯不会选择概率最高的标签。相反,对于二进制分类,阈值是50%。所以预测是<code>[0, 0, 0, 0, 0, 1]</code>。如果实际的标签是<code>[0, 0, 0, 0, 0, 0]</code>,那么准确度是<code>5/6</code>。你可以通过建立一个模型来检验这个假设,这个模型总是预测负面标签,并观察其准确性。</p>
<p>如果确实是这样,您可以尝试不同的度量,例如<a href="https://www.tensorflow.org/api_docs/python/tf/keras/metrics/top_k_categorical_accuracy" rel="noreferrer">top_k_categorical_accuracy</a>。</p>
<p>我能想到的另一个遥远的可能性是你的训练数据。这些标签是不是“泄露”给了x?只是一个疯狂的猜测。</p>