誰かが私に説明できますか?複数の出力(例:8)を作成する場合、MLBP-ニューラルネットワークでMNISTのようなデータを分類する方法、つまり1つの出力のみを使用する場合、簡単にデータを分類できますが、複数を使用する場合1つは、どの出力を選択する必要がありますか?
誰かが私に説明できますか?複数の出力(例:8)を作成する場合、MLBP-ニューラルネットワークでMNISTのようなデータを分類する方法、つまり1つの出力のみを使用する場合、簡単にデータを分類できますが、複数を使用する場合1つは、どの出力を選択する必要がありますか?
回答:
Kクラスで何かを分類する必要があるとします。ここで、K> 2です。この場合、私が最も頻繁に使用する設定は、1つのホットエンコーディングです。K個の出力列があり、トレーニングセットですべての値を0に設定します。ただし、カテゴリインデックスを持つものを除き、値は1になる可能性があります。したがって、各トレーニングデータセットインスタンスについて、すべての出力に値があります。 0または1の場合、すべての出力の合計はインスタンスごとに1になります。
これは確率のように見え、確率としてモデル化されたいくつかの出力を接続するためによく使用される手法を思い出させます。これはソフトマックス関数と呼ばれ、ウィキペディアの詳細です。これにより、出力値に制約を課すことができ(基本的にはロジスティック関数の一般化です)、出力値が確率としてモデル化されます。
最後に、softmaxの有無にかかわらず、出力を判別関数として使用して適切なカテゴリを選択できます。
別の最後の考えは、接続された方法で変数をエンコードしないようにすることです。たとえば、カテゴリインデックスのバイナリ表現を持つことができます。これは、任意のいくつかの出力間の人工的な接続を学習者に誘発します。1つのホットエンコーディングには、ラベルのインデックス付け方法に中立であるという利点があります。
この場合に使用されるアルゴリズムは、one-vs-all分類器またはマルチクラス分類器と呼ばれます。
あなたの場合、あなたは1つのクラス、例えば1を取り、それをポジティブとしてマークし、残りの7つのクラスを1つのネガティブクラスに組み合わせる必要があります。ニューラルネットワークは、このケースがクラス番号1と他のクラスの確率である確率を出力します。
あとがきですが、たとえば2番などの正の別のクラスを割り当て、他のすべてのクラスを1つの大きな負のクラスとして割り当て、ネットワークから予測確率を再度取得する必要があります。
8つのクラスすべてに対してこの手順を繰り返した後、ニューラルネットワークから出力されたすべてのクラスから最大の確率があったクラスに各ケースを割り当てます。