部分的に「不明な」データによる分類


11

入力として数値のベクトルを取り、出力としてクラスラベルを与える分類子を学びたいとしましょう。私のトレーニングデータは、多数の入出力ペアで構成されています。

ただし、新しいデータをテストする場合、このデータは通常、部分的にしか完成していません。たとえば、入力ベクトルの長さが100の場合、30個の要素にのみ値が与えられ、残りは「不明」です。

この例として、画像の一部が隠れていることがわかっている画像認識を考えてみます。または、データの一部が破損していることがわかっている一般的な意味で分類を検討してください。すべての場合において、データベクトルのどの要素が未知の部分であるかを正確に把握しています。

この種類のデータで機能する分類子をどのようにして学習できるのでしょうか。「未知の」要素を乱数に設定することもできますが、既知の要素よりも未知の要素の方が多いことが多いので、これは良い解決策のようには聞こえません。または、トレーニングデータの要素をランダムに「不明」に変更し、完全なデータではなくこれらでトレーニングすることもできますが、これには既知の要素と未知の要素のすべての組み合わせの徹底的なサンプリングが必要になる場合があります。

特に、ニューラルネットワークについて考えていますが、他の分類器を利用できます。

何か案は?ありがとう!



半教師あり学習は、トレーニングデータが完全にラベル付けされていない場合の方が多いと思います。私の場合、すべてのトレーニングデータにラベルが付けられていますが、テストデータの個々の部分は「不明」です。
Karnivaurus

ラダーネットワークによる半教師あり学習
itdxer

回答:


2

ニューラルネットワークで機能させるには、妥当な方法があると思います。

unknownの値を0にします。ここで、トレーニングで入力を選択し、その値の一部を確率で0にランダムに配置します。ここで、pはテスト時に欠落した入力の予想される割合です。異なる反復での同じ入力は、異なる位置で0になることに注意してください。p

私はそれが以前に行われたのを見たことはありませんが、これは非表示ニューロンではなく入力ニューロンでドロップアウト(ニューラルネットワークでよく知られている正則化方法)を実行するのと非常に似ています。私は一般的にそれを行うのは良い考えではないと思いますが、(あなたの場合のように)強いられた場合、少なくともそれは理論的には動作することが知られているものに十分近いです。


1

どの分類子でも機能するいくつかの選択肢があると思います。

  • トレーニングセットの平均値や中央値、入力の観測された部分から予測された値などの単一の値で欠損値を埋め込むか、乱数または定数を使用します。
  • 未知数にいくつかの異なる値を使用し、結果を集計します(例:平均値)

それとは別に、ツリーベースの分類子(ランダムフォレストなど)を使用することができ、ツリーが欠落している機能の分割を評価する必要がある場合は、両方の子ノードにデータを渡すことができます。

3番目のオプションは、完全結合分布をモデル化する生成分類器を使用することです。ここで、は入力で、は分類ラベルです。それによって、あなたが理想的なの未知の部分の上に過小しまう、すなわちあなたがしようとするだろう任意の未知の部分のための値およびその帰属の確率で加重平均の結果を。これは、線形判別分析モデルなどの一部の分類子では分析的に閉じた形式で、または制限付きボルツマンマシンまたはその深いバリアント(フィードフォワードニューラルネットワークに関連する)などでは、未知のものを概算することで実行できます。p(x,y)xyxx


うまくいくとは思いません。コンピュータビジョンの典型的な例を使用すると、画像の各ピクセルがオブジェクトの異なる部分に関連付けられます。たとえば、画像1のピクセル(50,50)は猫の目ですが、画像2では猫が少し動いているため、(50、50)は背景のピクセルにすぎません。NAの場所、すなわち。ランダムな閉塞、観察によって異なります、あなたの帰属は機能しません。
horaceT 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.