web-dev-qa-db-ja.com

ニューラルネットワークは「はい」または「いいえ」以上の回答を提供できますか?

私がこれまで読んだ画像認識のニューラルネットワークの例はすべて、単純な「はい」または「いいえ」の答えを出します。 1つの出口ノードは「はい、これは人間の顔です」に対応し、もう1つは「いいえ、これは人間の顔ではありません」に対応します。

これは説明を簡単にするためだと思いますが、そのようなニューラルネットワークをどのようにプログラムして、より具体的な出力を得ることができるのでしょうか。たとえば、動物を分類していたとしましょう。 「動物」または「動物ではない」と言う代わりに、「犬」、「魚」、「鳥」、「ヘビ」などのような応答が必要です。これを認識しない」。

これは可能だと私は確信しているが、どうやって理解するのが難しい。 1つの出口ノード(つまり、「これは犬です」)をトレーニングし、ニューロンの重みが変更されると、エラーの逆伝播のトレーニングアルゴリズムが原因であると思われます。次に、以前に行った別の出口ノードの理想的な状態訓練された(つまり、「これは鳥です」)は逸脱し始め、逆もまた同様です。したがって、1つのカテゴリを認識するようにネットワークをトレーニングすると、別のカテゴリに対して行われたトレーニングが妨害され、単純な「はい」または「いいえ」の設計に制限されます。

これはそのような認識機能を不可能にしますか?それともアルゴリズムを誤解していますか?私が考えることができる唯一の2つはそれです:

  • 分類したいものごとに1つのニューラルネットワークをトレーニングし、どういうわけかそれらを使用してより大きなスーパーネットワーク(たとえば、「犬」のネットワーク、「鳥」のネットワークなど)を構築することもできます。 「動物」のスーパーネットワークを作成するために追加します);または、

  • 信じられないほど高度な数学を必要とし、考えられるすべての出力に対して理想的なニューロンの重みの状態を何らかの形で生成する、ある種の途方もなく複雑なトレーニング方法論を作成します(つまり、insert math magic here)。

(補足1:多層パーセプトロンを一種のニューラルネットワークとして具体的に検討しています。)

(サイドノート2:最初の箇条書きの「可能な解決策」では、特定のニューラルネットワークをそれぞれ用意し、「はい」の応答を受け取るまでそれらを繰り返し処理するだけでは十分ではありません。これはかなり簡単に実行できることはわかっていますが、これは単純な機能です。機械学習ではなくプログラミング。oneニューラルネットワークに情報を送り、適切な応答を受け取ることができるかどうかを知りたい。)

11
asteri

タイトルだけに答えるには、はい。ニューラルネットはブール値以外の答えを返すことができます。たとえば、ニューラルネットは株式市場の値を予測するために使用されてきました。ニューラルネットは手書きの認識にも使用され、出力は全範囲の文字(アルファベット全体、数字、句読点)のいずれかになります。

あなたの例にもっと焦点を合わせる-動物を認識する-それは可能だと思います。これは主に手書き認識の例を拡張したものです。形状の特徴を認識し、それらを「理想的な」形状と比較して、一致するものを確認します。問題は理論的ではなく技術的です。手書きは、認識ソフトウェアを介して実行されると、通常、一連の直線と曲線にマッピングされます-素晴らしくシンプルです。動物の顔は認識しにくいため、目、鼻、口、頭蓋骨の大まかな輪郭などの特徴を抽出するための画像処理ロジックが必要です。それでも、可能かどうかを尋ねるだけで、方法はわからないので、答えは「はい」です。

あなたの最善の策は、おそらく適応共鳴理論のようなものを検討することです。一般的な原則は、感覚入力(この場合、さまざまな顔の特徴の相対的なサイズ、形状、および間隔に関するメトリック)を、そのクラスのクラスを定義する「プロトタイプ」またはテンプレートと比較することです。感覚入力と記憶されたテンプレートの差が特定のしきい値(「警戒パラメータ」で定義されている)を下回っている場合、観測されているオブジェクトは、テンプレートで表されるグループのメンバーであると見なされます。一致が見つからない場合、システムはそれを以前には見えなかったタイプであると宣言します。この種のネットのいいところは、オブジェクトがたとえば馬であると認識したときに、馬の認識についてさらに学習できるため、たとえば立っている馬と眠っている馬の違いがわかるということです。何か新しいものを見ると、「これは何なのかわからないが、前に見た他のものと同じものだ」と言えるまで、新しいことについて学び始めることができます。

編集:

(完全な開示のために、私はまだプロジェクトのためにこれを自分で研究しているので、私の知識はまだ不完全であり、場合によっては少しずれています。)

これは、1つの出力ノードのバックプロパゲーション設定の重みとどのように結びつき、以前にトレーニングされた別のノードの重みを台無しにするのですか?

これまで読んだこととは異なり、ARTパラダイムは少し異なります。それは2つのセクションに分かれています-1つは入力を学習するセクション、もう1つは出力を学習するセクションです。これは、一致しない入力セットに遭遇すると、コミットされていないニューロンがアクティブ化され、入力と一致するように調整されるため、そのニューロンは次回一致をトリガーします。この層のニューロンは、認識専用です。この層が一致を見つけると、入力は下の層に渡されます。これは、応答を計算する層です。あなたの状況では、この層はおそらく非常に単純です。私が見ているシステムは運転を学んでいます。これは実際には2つのタイプの学習です。 1つはさまざまな状況で運転することを学び、もう1つは状況を認識することを学びます。たとえば、滑りやすい道路を運転する方法を学ぶ必要がありますが、運転している道路がいつ滑りやすいかを感じることも学ぶ必要があります。

以前に学習した動作を台無しにせずに新しい入力を学習するこのアイデアは、安定性/可塑性のジレンマとして知られています。ネットはstable学習した振る舞いを保つのに十分である必要がありますが、-plasticは状況が変化したときに新しいことを教えられるのに十分です。これはまさにARTネットが解決しようとしているものです。

15
anaximander

@anaximanderの答えはかなり良いです、あなたの質問のこの部分についてコメントしたいと思いました:

1つの出口ノード(つまり、「これは犬です」)をトレーニングし、ニューロンの重みが変更されると、エラーの逆伝播のトレーニングアルゴリズムが原因であると思われます。次に、以前に行った別の出口ノードの理想的な状態訓練された(つまり、「これは鳥です」)は逸脱し始め、逆もまた同様です。したがって、1つのカテゴリを認識するようにネットワークをトレーニングすると、別のカテゴリに対して行われたトレーニングが妨害され、単純な「はい」または「いいえ」の設計に制限されます。

まあ、私はあなたの仮定はここでは間違っていると思います。私が正しく理解していれば、分類しようとしているカテゴリごとに1つの出力を持つNNがあります。理想的には、「犬」と「鳥」の分類が同時に発生しないように、それらをほぼ独立して動作させたいと考えています。したがって、実際には、トレーニング中に「犬」の結果でNNをトレーニングしているときに、バックプロパゲーションによって「鳥」やその他の出力ニューロンが偽陽性を生成しないようにしようとします。したがって、理論的には、コメントとは逆にうまく機能します。 「鳥」の否定的な結果の強化は正しいです。

ただし、問題はこのアプローチのスケーラビリティです。ネットワークにカテゴリを追加すると、トレーニングは少なくとも線形(ただし、はるかに悪い)な方法でより複雑になります。このため、多くの人々は、個々のNNがカテゴリーごとにトレーニングされるアプローチを使用しています。これにより、物事が十分にシンプルになり、比較的スケーラブルになります。これらがどのように組み合わされるかのメタレベルはあなた次第です。すべてのNNをループして、どれが正の出力を生成するかを確認したり、動物の種類を絞り込んだ中レベルのヒューリスティックNNを作成したり、個々のNNをニューロンとして結合した巨大なNNを作成したりすることもできます。 。本質的に、私が言おうとしていることは、問題の構造について事前の知識があるということです-個々の分類はおそらく互いに区別されています。巨大なNNはそれだけでそれを計算することができます(ただし、今日のテクノロジーではうまく機能しない可能性があります)、または手動でNNを構築してこれを反映し、より良い結果をもたらすことができます。

編集:タイトルの質問に答えるために、もちろんNNはイエス/ノー以上の答えを提供できます。 「標準」モデルでは、各出力ニューロンは通常、はい/いいえを発します(この動作は、必要に応じて変更できますが)、1ビットの情報を表します。しかし、コンピューターと同じように、ビットを組み合わせて、さまざまな離散値を提供できます。これらの値は、任意の方法で解釈できます。非バイナリ出力のかなり視覚的な例は Self-Organising Map で、通常は2D出力です。

3
Daniel B

短くてそれほど厳密ではない答え:はい、すべてのNNはyesno以外の情報も提供できます。しきい値によるものです。重みがあるしきい値より高い場合、回答は分類クラスの1つであり、それより低い場合、回答は2番目の分類クラスです。基本的に:

    0..threshold 
    threshold..1

Neuronの出力は[0..1](または[-1,1]によって異なります)の範囲内にあり、出力がしきい値よりも低いか高いかはわかりませんが、出力(出力簡単に0..1の間隔に変換でき、これは%を意味します)

1
xhudik