1

私はニューラルネットワークについて読んでいて、要点を理解できません-重みが特定の入出力ペアに合うように更新された場合、どのように機能するのでしょうか?つまり、重みは別のセットでは完全に異なる可能性があります。特定のケースに合わせて調整されますが、別のケースの出力比較に基づいて再調整する必要があります。「魔法」が見えないだけです。入力のある簡単な例をいただければ幸いです。

4

1 に答える 1

0

理解しやすい1つの例は、単純なカーブフィッティングです(このウィキペディアページのアニメーションを見てください)。これは、ニューラルネットワークでも実行できるタスクです。「魔法」とは、ネットワークがトレーニングデータ(入出力ペア)に関して近似された関数をモデル化することです。トレーニング中に見られなかった新しいケースは、トレーニングデータポイント間のポイントとして視覚化できます。

ここで、1つの入力値と1つの出力値だけでなく、両方が多変量である、より一般的なケースを想像してみてください。たとえば、10個の出力ニューロンを持つMNIST手書き数字データセットの28x28=784ピクセルを取り上げます。各出力ニューロンは、特定の例が各桁0..9に属する確率をモデル化します。トレーニング中に、ネットワークは機能を学習します。これは、入力データ内の相関関係を検出することを意味します。これにより、抽象化できます(これは、一種の「圧縮」として想像することもできます)。したがって、最初の隠れ層の各ニューロンは、1つの特定の機能をモデル化します。これらの機能は、最初の隠れニューロンの1つの重みをグレースケール画像と見なし、Python用のmatplotlibなどの任意の画像ライブラリを使用してペイントすることで視覚化できます。上にリンクされているmnistデータベースでニューラルネットワークをトレーニングし、これらの機能を確認してみてください。これにより、これがどのように機能するかが明確になります。

ニューラルネットワークのより深い隠れ層は、前の層のアクティブ化を取得し、より高いレベルの機能を学習します。これは、前のレイヤーの機能を組み合わせて、入力のさらに抽象的な表現を取得していることを意味します。これは、「指定された入力画像にゼロが表示されている」という抽象的な情報をモデル化する10個の出力ニューロンが生成されるまで、後続の各レイヤーで続行されます。

明らかに、多くのケースをカバーする十分なトレーニングデータがあれば、多くの機能が得られます。これらの機能は、指定された入力がトレーニング中に使用したケースと異なる場合でも機能します(たとえば、わずかに歪んだ新しいゼロ)。

当然、ネットワークの一般化パフォーマンスは、トレーニングデータがカバーするさまざまな一般的なケースの数によって異なります。ただし、一般化のパフォーマンスに影響を与えるニューラルネットワークのアーキテクチャに関する他の要因もあります。いくつかのキーワードに言及するには、L1とL2の正則化、重みの減衰、畳み込みニューラルネットワーク、ドロップアウトなどを確認する必要があります。これらはすべて、一般化のパフォーマンスをさらに向上させるための手法です。

于 2013-03-26T14:24:16.510 に答える