私が読んだ画像認識用のニューラルネットワークの例はすべて、単純な「はい」または「いいえ」の答えを生成します。1つの出口ノードは「はい、これは人間の顔です」に対応し、もう1つの出口ノードは「いいえ、これは人間の顔ではありません」に対応します。
これは説明を簡単にするための可能性が高いことを理解していますが、より具体的な出力を提供するために、このようなニューラルネットワークをどのようにプログラムできるか疑問に思っています。たとえば、動物を分類していたとしましょう。「動物」または「動物ではない」と言う代わりに、「犬」、「魚」、「鳥」、「蛇」などの応答が必要です。これを認識しないでください」。
これは可能であるに違いないと思いますが、その方法を理解するのに苦労しています。エラーの逆伝播のトレーニングアルゴリズムが原因であるように思われます。1つの出口ノード(つまり、「これは犬です」)をトレーニングし、ニューロンの重みが変更されると、以前に別の出口ノードの理想的な状態訓練された(つまり、「これは鳥です」)が逸脱し始め、逆もまた同様です。したがって、あるカテゴリを認識するようにネットワークをトレーニングすると、別のカテゴリに対して行われたトレーニングが妨害され、単純な「はい」または「いいえ」の設計に制限されます。
これにより、そのようなレコグナイザーは不可能になりますか?または、アルゴリズムを誤解していますか?私が考えることができるのは、次の2つだけです。
分類したいものごとに1つのニューラルネットワークをトレーニングし、それらを使用して、より大きなスーパーネットワーク(たとえば、「犬」のネットワーク、「鳥」のネットワークなど)を構築します。 「動物」のスーパーネットワークを作成するために一緒に追加)。または、
信じられないほど高度な数学を必要とし、すべての可能な出力(つまり
insert math magic here
)に対して理想的なニューロン重量状態を何らかの形で生成する、ある種の途方もなく複雑なトレーニング方法論を作成します。
(サイドノート1:多層パーセプトロンを一種のニューラルネットワークとして具体的に見ています。)
(サイドノート2:最初の箇条書きの「可能性のある解決策」では、特定の各ニューラルネットワークを持ち、「はい」の応答を受け取るまでそれらを繰り返し処理するだけでは十分ではありません。機械学習ではなくプログラミング。情報を供給して適切な応答を受け取るために1つのニューラルネットワークを使用できるかどうかを知りたい)。