ニューラル ネットワーク: マルチクラス分類

先ほど、 バイナリ分類 次のような 2 つの選択肢から 1 つを選択できるモデル

  • 該当するメールが迷惑メールであるか、迷惑メールではない。
  • 対象の腫瘍は悪性または良性である。

このセクションでは マルチクラス分類 複数の可能性から選択できるモデルです。例:

  • この犬はビーグルですか、バセットハウンド、ブラッドハウンドですか?
  • この花はアヤメ属のアヤメ、オランダアイリス、アタマジラミ、 Dwarf Bearded Iris でしょうか。
  • その飛行機は、ボーイング 747、エアバス 320、ボーイング 777、エンブラエル 190 ですか?
  • これはリンゴ、クマ、キャンディ、犬、卵の画像ですか?

実世界のマルチクラス問題の中には、数百万ものものから選択することを伴うものもある 独立したクラスです。たとえば、1 対 1 のマルチクラス分類を あらゆる画像を識別できるモデルです

このセクションでは、マルチクラス分類の 2 つの主なバリアントについて詳しく説明します。

1 対すべて

One-vs.-all: バイナリ分類を使用する方法 複数の可能なラベルにわたる一連の「はい」または「いいえ」の予測を作成します。

N 個の可能な解を持つ分類問題の場合、1 対すべては N 個の独立したバイナリ分類器(1 つのバイナリ分類器)で 分類器を作成します。トレーニング中にモデルは 一連のバイナリ分類器でトレーニングし、それぞれが別の分類器に 分類問題です

たとえば、1 切れの果物の写真の場合、 異なる認識ツールがトレーニングされる場合があり、それぞれ異なる「はい/いいえ」に応答する 質問:

  1. この画像はリンゴですか?
  2. この画像はオレンジ色ですか?
  3. この画像はバナナですか?
  4. この画像はブドウですか?

次の図は、これが実際にどのように機能するかを示しています。

図 9. 4 つの異なる Pod に入力として渡されている洋ナシの画像
      モデルです。最初のモデルは「リンゴ」とまたは
      その予測は「apple 以外」です。2 番目のモデルは、
      'オレンジ'その予測は「notOrange」です。「
      3 番目のモデルは「pear」と検索され、その予測は
      「pear」を含むようにします。4 番目のモデルは「ブドウ」と検索して検索し、
      「not grape」です。 <ph type="x-smartling-placeholder">
</ph> 図 9.4 つの異なる要素に入力として渡されている洋ナシの画像 バイナリ分類器です。1 番目、2 番目、4 番目のモデルは (例: リンゴ、オレンジ、ブドウ) 負のクラスを予測します。3 つ目のモデル( 陽性クラスを予測します。

このアプローチは、クラスの合計数が リソース クラスの数が増えれば増えるほど、 高くなります。

はるかに効率的な 1 対 1 のモデルを作成できる ディープ ニューラル ネットワークでは、各出力ノードはそれぞれ異なる クラスです。次の図は、この方法を示しています。

図 10. 次のアーキテクチャのニューラル ネットワーク: 入力レイヤと
      1 ノード、隠れ層 3 ノード、隠れ層 4 ノード、
      4 つのノードを持つ出力レイヤです。入力ノードには洋ナシの画像が供給されます。
      シグモイド活性化関数が出力レイヤに適用されます。各
      出力ノードはイメージが特定の名前である確率を
      できます。出力ノード 1 は「Is apple?」を表します。値は 0.34 です
      出力ノード 2 は「IsOrange?」で、値は 0.18 です
      出力ノード 3 は「Is pear?」を表します。値は 0.84 です
      出力ノード 4 は「Is grape?」、値は 0.07 です <ph type="x-smartling-placeholder">
</ph> 図 10.BigQuery データセットを使用して、1 対すべての分類タスクを 構築しました。シグモイド活性化関数を出力に適用する 各出力値は、入力シーケンス内の単語の確率を 果物です。このモデルは 84% モデルは洋ナシの確率は 7% で、確率は 7% で グレープです。

1 対 1(ソフトマックス)

お気づきかもしれませんが、図 10 の出力層にある確率値は、 合計が 1.0(100%)にならないようにしてください。(合計で 1.43 になります)。1 対オールで 各バイナリセットの結果の確率が 他のセットとは無関係に生成しますつまり、単語群の中から 1 つを 「リンゴ」「Apple 以外」との比較他の予測モデルの可能性を考慮せずに 果物のオプション: 「オレンジ」、「ナシ」、「ブドウ」

しかし、各果物の確率を予測するには どうなるでしょうかこの例では「apple」と予測するのではなく「not 「apple」と予測し、「apple」と「orange」との比較「pear」との比較検索します このタイプのマルチクラス分類は、1 対 1 の分類と呼ばれます。

同じタイプのニューラル ネットワークを使用して、1 対 1 の分類を実装できます。 ネットワーク アーキテクチャを使用しますが、重要な変更が 1 つあります。 出力レイヤに別の変換を適用する必要があります。

1 対すべてでは、シグモイド活性化関数を各出力に適用しました。 各ノードに 0 ~ 1 の範囲の出力値があり、 合計が 1 になるという保証はありませんでした。

1 対 1 の場合は、代わりに softmax という関数を適用して、 マルチクラス問題の各クラスに小数点の確率を割り当て、 すべての確率の合計が 1.0 になる。この追加の制約により、 トレーニングの収束が速くなります。

次の図は、1 対オールのマルチクラス分類を再実装しています。 1 対 1 のタスクとして扱うことができます。なお、ソフトマックスを実行するために、 出力層(ソフトマックス レイヤ)の直前のレイヤに、 出力レイヤと同じ数のノードを使用します。

図 11. 次のアーキテクチャのニューラル ネットワーク: 入力
      1 つのノードを持つ隠れ層、3 つのノードを持つ隠れ層、4 つのノードを持つ隠れ層
      4 つのノードを持つ出力レイヤです。入力ノードには洋ナシの画像が供給されます。
      出力レイヤにソフトマックス活性化関数が適用されます。各
      出力ノードはイメージが特定の名前である確率を
      できます。出力ノード 1 は「Is apple?」を表します。値は 0.19 です
      出力ノード 2 は「IsOrange?」で、値は 0.12 です
      出力ノード 3 は「Is pear?」を表します。値は 0.63 です
      出力ノード 4 は「Is grape?」、値は 0.06 です <ph type="x-smartling-placeholder">
</ph> 図 11.を使用した 1 対 1 の分類のニューラル ネット実装 レイヤに分割されます。各出力値は、入力シーケンス内の単語の 入力画像は指定された果物であり、他の 3 つの果物のいずれもない (すべての確率の合計は 1.0 になります)。このモデルは 63% の確率で 洋ナシの確率です。

ソフトマックス オプション

ソフトマックスの次のバリアントについて考えてみましょう。

  • 完全なソフトマックスは、前述のソフトマックスです。つまり ソフトマックスは、可能性のあるすべてのクラスの確率を計算します。

  • 候補サンプリング: ソフトマックスで確率を計算する すべての陽性ラベルに対して 検出します。たとえば 入力画像がビーグルでもブラッドハウンドでも、 犬以外のすべてのサンプルの確率を提供します。

クラス数が少ない場合、完全なソフトマックスは低コストで実施できる クラスの数が増えると法外な費用がかかります。 候補のサンプリングは、大規模な クラスの数によって決まります。

1 つのラベルと多数のラベル

Softmax では、各例が 1 つのクラスのみのメンバーであることを前提としています。 ただし、一部の例は同時に複数のクラスのメンバーになることができます。 そのような場合の例:

  • ソフトマックスは使用できません。
  • 複数のロジスティック回帰に依存する必要がある。

たとえば、上の図 11 の 1 対 1 のモデルでは、 この画像は、リンゴ、オレンジ、ナシ、または ブドウです。ただし、入力画像に複数の種類の果物が含まれている場合がある。 (リンゴとオレンジが入ったボウルに)複数のロジスティックを 回帰を使用します。