畳み込みニューラルネットワークに関するいくつかの説明


6

完全に接続されたレイヤーのたたみ込みレイヤーへの変換について読むときは、http://cs231n.github.io/convolutional-networks/#convertに投稿されています

次の2つのコメントについて混乱しているだけです。

この変換により、元のConvNetを大きな画像内の多くの空間位置にわたって単一の順方向パスで非常に効率的に「スライド」できることがわかります。

標準のConvNetは、任意のサイズの画像で機能する必要があります。たたみ込みフィルターは画像グリッドを横切ってスライドできるので、元のConvNetをより大きな画像の任意の空間位置でスライドする必要があるのはなぜですか?

そして

32ピクセルのストライドで384x384画像の224x224クロップ全体で元のConvNet(FCレイヤー付き)を個別に評価すると、変換されたConvNetを1回転送するのと同じ結果が得られます。

ここで「32ピクセルのストライド」とはどういう意味ですか?それはフィルターサイズを指していますか?384 * 384画像の224 * 224作物について話すとき、それは224 * 224の受容野を使用することを意味しますか?

元のコンテキストでは、これら2つのコメントを赤でマークしました。

ここに画像の説明を入力してください


3
ConvNetを読む必要があります。ストライドはジャンプサイズを意味します。「ストライドが1の場合、フィルターを1ピクセルずつ移動します。ストライドが2(または通常は3以上ですが、これは実際にはまれです)の場合、フィルターをスライドさせると、フィルターは一度に2ピクセルずつジャンプします。これにより、空間的に出力ボリュームが小さくなります。」出典:cs231n.github.io/convolutional-networks
horaceT

回答:


6

完全に接続されたレイヤーは、固定サイズの入力のみを処理できます。これは、入力と出力を「完全に接続」するために一定量のパラメーターが必要になるためです。畳み込み層は入力全体で同じフィルターを「スライド」するだけなので、基本的には任意の空間サイズの入力を処理できます。

完全に接続されたレイヤーが最後にあるネットワークの例では、224 * 224画像はクラススコアの1000dベクトルを出力します。大きな画像にネットワークを適用すると、最初に完全に接続されたレイヤーの入力とパラメーターの間に不整合があるため、ネットワークは失敗します。

一方、完全なたたみ込みネットワークを使用する場合、大きな画像に適用すると、クラススコアの1000個の「ヒートマップ」が得られます。

次の図(FCNセグメンテーションペーパーから)に示すように、上位のネットワークはクラスごとに1つのスコアを示し、変換(畳み込み)後、大きな画像のクラスごとにヒートマップを取得できます。
ここに画像の説明を入力してください

同じページの「空間配置」セクションの「ストライド」について:

ストライドが1の場合、フィルターを一度に1ピクセルずつ移動します。ストライドが2(または実際にはまれですが、通常3以上)の場合、フィルターをスライドさせると、一度に2ピクセルずつジャンプします。これにより、空間的に小さな出力ボリュームが生成されます。


1
@ user3269完全接続層の入力が7 * 7 * 512の場合、入力と出力を「完全に接続」するには7 * 7 * 512 * 4096パラメータが必要です。入力の空間サイズが増加する場合は、さらに多くのパラメーターが必要になります。畳み込み層の場合は、入力のすべての部分に同じフィルターを適用するだけです。
dontloo

2
@ user3269ネットワークは、224 * 224画像のクラスごとに1つの値を出力します。384* 384画像をフィードすると、各クラスの12 * 12ヒートマップが出力されます。ヒートマップの各ピクセルは、取得した値と同等です特定の場所にある224 * 224パッチにネットワークを適用する。ネットワークが入力の空間サイズを32倍に縮小するため(224 * 224-> 7 * 7)、最上層の1ピクセルのスライドは、入力画像の32ピクセルのスライドになります。
dontloo

1
fc cnnを使用していくつかの大きな入力サイズを「スライド」させても、「ヒートマップ」を取得できるでしょうか。もしそうなら、完全なコンバージョンネットワークのポイントは何ですか?
フランケッヒ2018

1
@flankechenこんにちは、私が正しく理解していれば、cnn全体をスライドさせてヒートマップを取得することは、ネットワークに送信される異なるウィンドウ間に大きなオーバーラップがあり、これらのオーバーラップする領域に同じフィルターのセットを繰り返し適用することになるため、効率が低下します。そのような冗長性を保存し、ネットワーク全体を一度イメージ全体に適用することをお勧めします。これは、完全なたたみ込みネットワークによって実行できます。
dontloo 2018

1
完全なconvネットワークの@flankechenは、画像全体をネットワークに送信し、コンボリューションフィルターをスライドさせます。これは、ネットワーク全体をスライドさせるよりも効率的ですが、それ以外は、完全に接続されたネットワークも機能すると思います。
dontloo 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.