イメージの100属性を予測するニューラルネット(CNN)を構築しています。トレーニングデータは、未知の場合は、その属性が存在し、0
ないのであれば存在している属性は値1
を持っている、と-1
CNNとクロスエントロピーロスによる属性予測(不在属性の場合は負の値)
img/img001.jpg -1, 1, -1 , 1, 0 .......-1 , 1
image_name image_attributes
follows-ようです。私はTensorflowを使用して、私の損失を定義しています -
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=y))
私の質問私はこの損失を最小化する場合、時にはそれがいくつかの属性が存在しない場合の-1
表現に起因する負の値を持っており、私の最適化アルゴリズムが既に最小限に抑えることができますです負の損失。相違じゃない?
この損失を最小限に抑えるのが正しいのですか、または唯一の損失を持つためにmod関数を使用する必要がありますか?
soft maxを0と1の間の確率に変換し、クロスエントロピーを使用して、選択されたクラスに1つでもない場合はペナルティを課します。あなたの結果をx、y、zとして表示する必要があります。確信度を選択してペナルティを科す可能性が高いです – Feras
あなたのクラスにワンホットエンコーディングを使用する必要があります。これは、このサンプルがどのクラスに属するかに応じて、ラベルを0および1の(サンプル、3)形式にエンコードすることを意味します。 –
@ThomasPinetzこれらは属性、つまり非排他的なクラスです。では、どのように1つのホットエンコーディングが機能しますか? '0'で表される未知の属性はどうでしょうか – Rusty