まず第一に、私は質問と状況についてあなたに語ります。 私はchainerで複数ラベルの分類をしたいと私のクラスの不均衡の問題は非常に深刻です。チェイナーで損失重量を設定するには?
この場合、損失関数を計算するために、ベクトルをinorderでスライスする必要があります。たとえば、マルチラベル分類では、グラウンドトゥルースラベルベクトルのほとんどの要素は0であり、そのうちの数は1です。この場合、F .sigmoid_cross_entropyをすべての0/1要素に適用すると収束しないことがありますので、[[xx、xxx、...、xxx]]スライスを使用することにしました(最後のFCレイヤーによるchainer.Variable出力です)損失関数を計算することができます。 この場合、ラベルの不均衡のため希なクラスの低分類性能を引き起こす可能性があるので、逆伝播時に希なgt-label可変高損失ウェイトを設定したいが、メジャーラベルを設定する伝搬。
どうすればよいですか?チェーンラーでのマルチラベル不均衡クラス問題のトレーニングに関するあなたの提案は何ですか?
私はsigmoid_cross_entropyのためのこの機能を見つけることができませんでしたが、 'softmax_cross_entropy'で' class_weight'を見つけることができます。 https://docs.chainer.org/en/stable/reference/generated/chainer.functions.softmax_cross_entropy.html#chainer.functions.softmax_cross_entropy sigmoid_cross_entropyの状況を採用するように実装を参照することもできます。 https://github.com/chainer/chainer/blob/v3.0.0rc1/chainer/functions/loss/softmax_cross_entropy.py#L249-L253 – corochann
softmax_crossentropyはマルチラベル分類には適していません。マルチ-label問題1つのイメージに複数のラベルがある可能性がありますが、softmax_crossentropyを使用すると1つのラベルだけがTrueになる可能性があります。 – machen
softmax_cross_entropyがマルチラベルの問題に適合しない場合、私はそれに対処する別の考え方をします.F.tile(pred)を使用して特定の要素(希少クラスの予測要素)を複数回コピーし、希少クラスの喪失が増強される可能性がありますか? (私はF.tileがこれを行うことができるかどうか分かりません) – machen