質問

私の質問を読んでくれてありがとう!

KerasとTFを使用してテキストを分類するためにCNNを使用しています。私のデータは「ニュースを読んだ」または「私は機械学習ニュースを読む」文字列であり、私のラベルはタグです:データサイエンス、レポーター、子供...

私の問題は、各テキストに複数のラベルが付いていることです。これらの複数の出力のそれぞれをキャプチャできるように、ターゲットをどのように構築する必要がありますか?

Description, Tag "I read the news", Child "I read the news", Reporter "I read machine learning news", Data Science "I read machine learning news", Reporter

役に立ちましたか?

解決

CNN(一般的に)は、最後のレイヤーでSoftMaxをアクティベーション関数として使用します。これにより、すべての可能なラベルにわたって確率分布が得られます。ある種の損失関数を使用して、CNNを最適化して、新しいサンプルの「正しい」ラベルを生成します。

このような場合に使用される損失関数は、2つの分布がどれだけ近いかを測定するクロスエントロピー損失またはKLダイバージェンスです。マルチクラス分類(各入力の例が1つのラベルしか持たないケースとは異なります)の場合、目的の分布は(0、0、....、1、...、0)です。ここで、実際のラベルの位置に1が表示されます。 。損失関数は、この分布から「遠い」分布を罰します。

あなたの場合、あなたはあなたの出力を(0、0、1、0、... 1、..、)としてエンコードすることができますので、あなたはあなたの入力に関連付けられたラベルの位置に置く場所で、あなたはあなたの入力に関連付けられ、kl-divergenceを使用します損失関数とCNNを最適化して、損失を最小限に抑えます。

ライセンス: CC-BY-SA帰属
所属していません datascience.stackexchange
scroll top