ニューラルネットワークはさまざまな入力サイズをどのように処理できますか?


42

私が知る限り、ニューラルネットワークの入力層には一定数のニューロンがあります。

ニューラルネットワークがNLPのようなコンテキストで使用される場合、さまざまなサイズの文章またはテキストブロックがネットワークに供給されます。さまざまな入力サイズは、ネットワークの入力層の固定サイズとどのように調整されますか?言い換えれば、このようなネットワークは、1単語から複数ページのテキストまでの入力を処理するのに十分な柔軟性を備えているのでしょうか?

入力ニューロンの固定数の仮定が間違っていて、新しい入力ニューロンがネットワークに追加/削除されて入力サイズに一致する場合、これらをどのようにトレーニングできるのかわかりません。

NLPの例を挙げますが、多くの問題には本質的に予測不可能な入力サイズがあります。これに対処するための一般的なアプローチに興味があります。

画像の場合、固定サイズにアップ/ダウンサンプリングできることは明らかですが、テキストの場合、テキストを追加/削除すると元の入力の意味が変わるため、これは不可能なアプローチのようです。


固定サイズにダウンサンプリングすることで、意味を明確にできますか?ダウンサンプリングはどのように行われますか?
チャーリーパーカー

回答:


36

3つの可能性が思い浮かびます。

最も簡単なのはzero-paddingです。基本的に、かなり大きな入力サイズを使用し、具体的な入力が小さすぎる場合はゼロを追加します。もちろん、これはかなり制限されており、入力が数語から全文に及ぶ場合は確かに役に立ちません。

リカレントNN(RNN)は、入力としてさまざまなサイズのテキストがある場合に選択する非常に自然なNNです。単語を単語ベクトル(または埋め込み)として次々に入力すると、RNNの内部状態は単語の完全な文字列の意味をエンコードすることになっています。これは以前の論文の1つです。

別の可能性は、再帰NNを使用することです。これは基本的に前処理の形式であり、1つだけが残されるまでテキストが再帰的に少数の単語ベクトルに削減されます。入力はテキスト全体をエンコードすることになっています。文が再帰的に構造化されているため、入力が文で構成されている場合(サイズが大きく異なる場合がある)、これは言語の観点から非常に理にかなっています。たとえば、名詞句は名詞のように振る舞うため、「男性」の単語ベクトルは「妻を帽子と間違えた男性」の単語ベクトルに類似している必要があります。多くの場合、言語情報を使用してガイドできます文に対する再帰。ウィキペディアの記事をはるかに超えたい場合、これはおそらく良いスタートです。


1
「再帰NN」と呼ばれるものとRNNの違いは何ですか?Rは再帰的です...また、いくつかの引用とポインターが役立ちます。
エリックプラトン

3
Rは繰り返し用です。繰り返しとは、同じNNに繰り返し入力を繰り返し追加することを意味します。再帰とは、ツリー構造に沿ってデータを入力することを意味します。
BlindKungFuMaster

@BlindKungFuMaster 0 MLPのマスクによるパディングは良好で、精度に悪影響を与えませんか?
ダイナタクリット

12

すでに言及した他の人:

  • ゼロパディング
  • RNN
  • 再帰的NN

したがって、別の可能性を追加します。入力のサイズに応じて異なる回数の畳み込みを使用します。このアプローチを裏付ける優れた本を次に示します。

各画像の幅と高さが異なる画像のコレクションを考えます。固定サイズの重み行列を使用してこのような入力をモデル化する方法は不明です。畳み込みは簡単に適用できます。カーネルは入力のサイズに応じて異なる回数だけ適用され、それに応じて畳み込み演算の出力がスケーリングされます。

360ページから取られています。さらに読むと、他のアプローチを見ることができます。


1
このアプローチは、1)すべての入力画像のアスペクト比(AR)が同じである、2)すべての画像を特定のARに再スケーリングする、または3)画像をゼロパッドして強制的に与えられたAR。
マットウェナム

@Salvador Daliは、マスク付きの「0」パディングがMLPに適したソリューションになりますか?
ダイナタクリット

この本の答えの中に引用されているテキストが見つかりません。おそらく元々存在していたのに、後で削除されたのでしょうか?現在、ページ354には、同様に始まる段落がありますが、可変数のレイヤーを使用しません(代わりに可変出力サイズ)。
ヨッヘン

7

NLPには入力の固有の順序があるため、RNNは自然な選択です。

入力間に特定の順序がない可変サイズの入力の場合、次のようなネットワークを設計できます。

  1. 入力グループごとに同じサブネットワークの繰り返しを使用します(つまり、重みを共有します)。この繰り返されるサブネットワークは、入力(のグループ)の表現を学習します。
  2. 入力と同じ対称性を持つ入力の表現に対する操作を使用します。順序不変データの場合、入力ネットワークからの表現の平均化が可能な選択肢です。
  3. 出力ネットワークを使用して、入力の表現の組み合わせに基づいて出力での損失関数を最小化します。

構造は次のようになります。

ネットワーク構造

オブジェクト間の関係を学習するために同様のネットワークが使用されています(arxiv:1702.05068)。

可変サイズの値セットのサンプル分散を学習する方法の簡単な例をここに示します(免責事項:私はリンクされた記事の著者です)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.