ニューラルネットに任意のデータの関連付けを行うように教えるにはどうすればよいですか?
フォームのキーと値のペアがあるとしましょう $(x_1, y_1), \dots, (x_N, y_N)$。次に、ニューラルネットにキーと値を与えます。$(x_i, y_i)$。例えば、$x_i$ になり得る $4$ そして $y_i$ になり得る $3$、ただし、そうである必要はありません。
ニューラルネットに出力するように教える方法はありますか $y_i$ 対応するを受け取るたびに変数 $x_i$?
ちなみに、私たちの脳はこの機能をどのように実行していますか?
回答
一言で言えば:暗記は学習ではありません
だから、最初のがちょうどで、ニューラルネットの古典利用を思い出させ教師あり学習:
- あなたはのセットを持っています $(x_{train}, y_{train}) \in X \times Y$ ペアであり、から一般的なマッピング法則を抽出したい $X$ に $Y$
- ニューラルネット関数を使用します $f_{\theta} : x \rightarrow f_{\theta}(x)$、と $\theta$ ネットの重み(パラメーター)。
- 最適化する $f_{\theta}$ 損失関数で表される予測誤差を最小化することによって。
これはあなたの質問を解決できますか?まあ、そうは思いません。このスキームを使用すると、ニューラルネットはセットから適切なマッピングを学習します$X$ セットに $Y$、ただし、このマッピングは、損失関数ではなく、損失関数に応じて適切です。 $(x_{train}, y_{train})$ ペア。
データのごく一部が誤ってラベル付けされていると想像してみてください。適切にトレーニングされたネットは、関連する特徴を抽出することを学習するため、あなたが行ったように、ラベルを正しく予測します。したがって、ネットはあなたのペアを記憶せず、データから一般法を推測し、この法はそれぞれを尊重しない可能性があります$(x_{train}, y_{train})$。したがって、古典的な教師あり深層学習は記憶すべきではありません$(x_{train}, y_{train})$ ペア。
ただし、パラメータが多すぎるネットを使用して暗記することはできます。過剰適合です。
- この場合、パラメータが多すぎるネットを設定します。それはあなたのネットにあまりにも多くの自由度を与えます、そしてネットはこれらのDoFを使ってそれぞれに正確にフィットします$(x_{train}, y_{train})$ トレーニング中に餌を与えるペア。
- ただし、入力の場合 $x$ トレーニング中に見たことのないこと、 $f_{\theta}(x)$意味がありません。そのため、過剰適合ネットは学習せず、多くのDL実践者は過剰適合を恐れています。
しかし、覚えるだけで、学びたくない限り、過剰適合ネットが解決策になるかもしれません。暗記のための他の解決策はエキスパートシステムかもしれません、私はそれらを説明するのに十分にそれらを知りません、しかしあなたが望むならあなたはそれをチェックするかもしれません。
脳はどうですか?
この質問に答える際の問題は、脳がどのように機能するのか本当にわからないということです。ニューラルネットワークと脳について説明しているこの記事を強くお勧めします。
始めるためのいくつかの考え:
- 脳には信じられないほど大量のパラメータがあり、優れた可塑性があります。その意味で、過剰適合ニューラルネットワークとの類似点を描くことができます。つまり、脳も過剰適合できるため、この手段で記憶することができます。
- 私たちの脳はフィードフォワードネットワークではありません。レイヤーを区切ることはできません。特定の情報が処理されることがわかっているラフゾーンだけです。これにより、ニューラルネットと脳の間の並列化が困難になります。
- 私たちの脳がどのように自分自身を更新するかはまだ不明です。たとえば、バックプロパゲーションはありません。私たちの過剰適合ネットワークも更新プロセスに起因します(たとえば、損失に正則化を追加すると、過適合を回避するのに役立ちます)が、これが脳内でどのように機能するかがわからないため、類似点を描くためのもう1つのハードルです!
- より個人的な考え:脳は学習と記憶の両方を行うことができますが(「ルールを証明する例外」のモットーは私が考えることを示しています)、学習と記憶はニューラルネットの反意語です...