セマンティックセグメンテーションシリーズ(1)FCN理解

本論文の研究のために、私は主に彼女の3つの質問を見に行きました。

1、なぜネットワークは、完全な畳み込みは任意の画像サイズを入力して達成することができますか?2、なぜ完全にコンボリューションに接続されている必要がありますか?3、どのようにデコンボリューションをサンプリングするには?

論文住所:https://arxiv.org/pdf/1605.06211.pdf

1、なぜネットワークは、完全な畳み込みは任意の画像サイズを入力して達成することができますか?

チャネル畳み込みネットワークのパラメータとコンボリューションカーネルと関連する入力と出力の大きさ、画像のサイズの数は問題ではないからです。

完全畳み込み層と入力層の畳み込みが部分的に接続されているニューロンの接続層、及び共有チャネルの異なるニューロンの重み(ウェイト)(チャネル)の内部との間の唯一の違い。

完全に接続された層は、点の操作により行われる畳み込み層は、それらが同一の関数形式を有する。このように畳み込み層は、対応する完全接続層に変換することができる、完全に接続された層は、対応する畳み込み層に変換することができます。

例えば:

VGGNet [1]第1の入力が完全に接続されている層は、7 * 7 * 512、出力は4096である。このコンボリューションカーネルサイズ7×7、ステップ(のストライド1)とすることができる、無パディング(パディング)チャネル畳み込み層4096の等価表現の出力は、出力は* 1 * 4096 1であり、そして等価層が完全に接続されている。次の層が完全に1x1の畳み込み同等の代替と接続されていてもよいです。

定期的な層に完全に接続された層は、畳み込みである:この空間サイズ入力利点にコンボリューションカーネルのサイズは、入力層のサイズの畳み込みに制限がないことであり、したがって、効率的スライディングウィンドウテスト画像上で行うことができます。予報。

2、なぜ完全にコンボリューションに接続されている必要がありますか?

  1. パラメータが大きすぎる入力画像、すなわち、入力層1000年×1000ノード1000×1000画素である場合。、そして唯一のこの層(+ 1〜1000 * 1000)* = 100 100 000 000パラメータがある100個のノード(この数はあまりないです)最初の隠れ層と仮定し、これはあまりにも多くのです!我々はそれの拡張性が悪いので、パラメータの数は、より多くなり、画像が少しだけ拡大表示されます。
  2. 位置の画素との間の情報が使用されない画像認識のために、コンタクト各画素とその周囲の画素が比較的近く、画素が十分に離れ接触に非常に小さくすることができます。層上のすべてのニューロンに接続されたニューロンとが、それは、画像の全ての画素が同一視されている画素に相当する場合、それは、前述の仮定を満たしていません。私たちが学ぶために、各接続の重い重量を完了したら、最終的に体重の多くがあることがあり、その値は(接続が本当に問題ではない、である)非常に小さいです。体重の多くを学ぼうとすることは重要ではありません、この研究は非常に非効率的になります。
  3. ネットワーク層は、制限する一般的なネットワーク層、より強く、より表現を。勾配完全に接続されているニューラルネットワークは3層以上を転送することは困難であるので、しかし、勾配降下訓練神によって方法完全に接続されたニューラルネットワークは困難です。したがって、我々はまた、その能力を制限し、深い完全に接続されているニューラルネットワークを得ることができません。

以上の3つの畳み込みニューラルネットワークは、問題を解決するために、三つの主要なアイデアがあります。

  1. ごく一部とは、ニューロンのみに接続されている間にローカル接続は、最も可能性が高いと思いますし、いないすべてのニューロンの層の各ニューロンの接続されています。これは、パラメータの数を減らします。
  2. 接続重みの共有セットは、同じ重さを共有するが、今度は、パラメータの数を減らす各々に異なる重みに接続することができません。
  3. プールダウンサンプリングは、さらに、パラメータの数を減少させる、各層のサンプルの数を減少させるために使用することができるだけでなく、モデルのロバスト性を向上させることができます。

3、どのようにデコンボリューションをサンプリングするには?

私はかなり徹底的に理解していない特定のデコンボリューション低レベルの操作。しかし、ネットワークアーキテクチャレベルの観点か知るようになります。

まず与えられたコンボリューションとデコンボリューション式:

K:コンボリューションカーネルは、S:畳み込みステップ、P:pading、X * X:画像サイズ

畳み込み:(X-K + 2 * P)/ S + 1

デコンボリューション:(X-1)* S + K

 

ネットワークのレビュー:

  1. Alnext例に、P5は - > F6代わりP5は - > C6は、私が見るいくつかのコードでは7 * 6 * 6 7何らかの変化への畳み込みカーネルは(あるデータセットに関連する.PSと:個人的な感情)
  2. F6 - C6に> F7 - >サイズの畳み込みとしてC7層1 * 1
  3. 同時C8、図続く。21、前記数(VOC紙がデータセット内で使用され、分類データセットは、20 + 21 =背景画素を有する)、データの異なるセット、及び最終的に生成された特徴をマッピングすることができ数が異なっている必要があります。
  4. 32(数値のダウンサンプリング(プーリング)比、どのように多くの列のサンプリング比)としてサンプリング比に余分C8、デコンボリューション演算で。
  5. ネットワーク層は、拡大画像、元の入力画像の同一のサイズの大きさを作るために、作物を有しています。

または眼図畳み込みの特徴の一つであるいったんFCN-32Sである複数の修飾は、32倍に拡大しました。この効果は良くありませんので、FCN-16S、FCN-8Sがありました

FCN-16S:

私たちも同様にAlnext例。(第二回に拡大した後、16倍に拡大します)

  1. 私たちは今、結果はコンボリューション1 * 1で追加の21スコアマップpool4生成されています
  2. その後、作物を作るために前記操作の後に二回、図C8でサンプリング、
  3. これらは、結果(図の特性は、内部を加えた値に対応する)を添加すること
  4. サンプル16回、32回作物を作るために、元の操作で、図の拡張の特性を得ること

FCN-8S:

私たちも同様にAlnext例。(最初に、最後の8倍ズーム、2回ズームし、二回に拡大。作物の操作が発言権を繰り返さないについて、これは主に書き込みステップです)

  1. 畳み込み1 * 1と21得点マップを生成pool4結果
  2. そして、それことを特徴と二回のサンプリングC8図は、後に図中の特性Xを得るために追加しました。
  3. 図中の特性Yを得るために結果に追加サンプル2 pool3にX回ましょう。
  4. Y-サンプリングされた8回には、図の必要な機能を得るためにしてみましょう。それが最終的な結果を得るために、オリジナルの作物の操作でやってみましょう。

セマンティックセグメンテーションや論文について、関連するコードを参照してください。https://github.com/mrgloom/awesome-semantic-segmentation

公開された10元の記事 ウォン称賛21 ビュー2605

おすすめ

転載: blog.csdn.net/mr_qin_hh/article/details/88237966