15

複数カテゴリの分類を実行するいくつかの方法について、Caffeinated の説明を編集できるのではないかと考えました。

マルチカテゴリ分類とは、複数のモデル出力カテゴリの表現を含む入力データ、および/または単に複数のモデル出力カテゴリに分類可能な入力データを意味します。

たとえば、猫と犬を含む画像は、(理想的には) 猫と犬の両方の予測カテゴリに対して ~1 を出力し、その他すべてに対して ~0 を出力します。

  1. このペーパーこの古くて閉じられた PR、およびこのオープンな PRに基づくと、caffe はラベルを完全に受け入れることができるようです。これは正しいです?

  2. このようなネットワークの構築には、この論文の 13 ページにあるように、複数のニューロン (内積 -> relu -> 内積) とソフトマックス層を使用する必要があります。または、Caffe の ip & softmax は現在、複数のラベル ディメンションをサポートしていますか?

  3. ラベルをネットワークに渡すとき、どちらの例が正しいアプローチを示していますか (両方ではない場合)?:

    例: りんごを食べる猫注: Python 構文ですが、c++ ソースを使用しています。

    列 0 - クラスは入力です。列 1 - クラスが入力されていません

    [[1,0],  # Apple
     [0,1],  # Baseball
     [1,0],  # Cat
     [0,1]]  # Dog
    

    また

    列 0 - クラスは入力にある

    [[1],  # Apple
     [0],  # Baseball
     [1],  # Cat
     [0]]  # Dog
    

何か不明な点があればお知らせください。私が尋ねようとしている質問の絵の例を生成します。

4

2 に答える 2

0

1 つの画像に複数のラベルを付けることができるためです。最も直感的な方法は、この問題を C に依存しない二項分類問題と考えることです。C は異なるクラスの総数です。したがって、 @Shai が言ったことを理解するのは簡単です。

各 C 出力を、この特定のクラスが画像に存在するかどうかのインジケーターにマップする「Sigmoid」レイヤーを追加し、「SoftmaxWithloss」レイヤーの代わりに「SigmoidCrossEntropyLoss」を使用する必要があります。損失は​​、これらの C SigmoidCrossEntropyLoss の合計です。

于 2016-01-25T13:18:06.297 に答える