読者です 読者をやめる 読者になる 読者になる

橙色の日々を。

わたくし橙乃が気になったことをクリップするブログ。

【Deep Learning】SRCNNの論文をツールに通して雑に訳す【超解像のためのCNN】

この論文の中盤戦。

 

むしろここからが本番?

 

SRCNN・訳・超解像のためのCNN編

 

 

こんにちは、橙乃巻です。

 

土日に無理してあんまり進んでません笑

 

「翻訳」内容に関しては一切の責任を問いません。

だって適当だもの まきを。

 

本文は印刷して机に置いて

スタバでMacBook開いてこのブログを

すげぇ、スタバに居る人たちみんなこのブログをy

 

参考程度にどうぞ!

 

本文は以下より。

Image Super-Resolution Using Deep Convolutional Networks.

https://arxiv.org/pdf/1501.00092.pdf

 

<超解像のためのCNN>

構成

  1. 単一の低解像度画像を考えてみましょう。
  2. 最初に私たちが実行する前処理である双三次補間を使用して、最初に目的のサイズにアップスケーリングします3。
  3. Yを補間画像とする。
  4. 我々の目標は、高解像度画像Xと可能な限り類似する画像​​F(Y)をYから復元することである。
  5. Yを " Xと同じサイズではあるが、「低解像度」の画像であるとする。
  6. 写像Fは、概念的には3つの演算からなる。

 1)パッチ抽出と表現:

 この操作は、低解像度画像Yからパッチを抽出(オーバーラップ)し、各パッチを
 高次元ベクトルとして表現する。

 これらのベクトルは、個数がベクトルの次元数に等しい特徴マップのセットを含む。

 2)非線形マッピング

 この演算は、各高次元ベクトルを別の高次元ベクトルに非線形写像する。

 マッピングされた各ベクトルは、概念的には、高解像度パッチを表現した
 ベクトルである。

 これらのベクトルは別の特徴マップのセットを含む。

 3)再構成:

 この操作は、上記の高解像度なパッチ状の表現を集約し、最終的な高解像度画像を
 生成する。

 この画像は、Xに類似していると予想される。

  1. これらの操作はすべて畳み込みニューラルネットワークを形成することを示す。
  2. ネットワークの概要を図2に示す。
  3. 次に、各操作の定義について詳しく説明する。

 

パッチ抽出と表現

  1. 画像修復における一般的な戦略(例えば、[1])は、パッチを密に抽出し、PCA、DCT、Haarなどの事前学習に基づいたセットによってそれらを表現する。
  2. これは、それぞれが基礎となる1組のフィルタによって画像を畳み込むことと同等である。
  3. 我々の定式化では、これらの基盤をネットワークの最適化に適用する。
  4. 正式には、最初の層は式F1として表現される 。
    F1(Y)= max(0、W1 * Y + B1)、(1)
  5. ここで、W1とB1はそれぞれフィルタとバイアスを表し、 '*'はコンボリューション演算を表します。
  6. ここで、W1は、c×f1×f1のn1個のフィルタに対応し、ここでcは入力画像内のチャネルの数であり、f1はフィルタの空間サイズである。
  7. 直観的に、W1は画像上にn1の畳み込みを適用し、各畳み込みはカーネルサイズc×f1×f1を有する。
  8. 出力は、n1個のフィーチャマップで構成される。
  9. B1はn1次元のベクトルで、各要素はフィルタに関連付けられている。
  10. 我々は、フィルタの応答4に整流線形ユニット(ReLU、max(0、x))[33]を適用する。(フィルタの応答…)

 

非線形マッピング

  1. 第1の層は、各パッチのn1次元特徴を抽出する。
  2. 2番目の操作では、これらのn1次元ベクトルのそれぞれをn2次元のベクトルにマッピングする。
  3. これは、1×1の空間的サポートを持つn2個のフィルタを適用することと等価である。
  4. この解釈は、1×1のフィルタに対してのみ有効である。
  5. しかし、3×3または5×5のようなより大きなフィルタに一般化することは容易である。
  6. その場合、非線形マッピングは入力画像のパッチにはない。
  7. 代わりに、フィーチャマップの3×3または5×5の「パッチ」に存在する。
  8. 第2層の動作は以下の式で表現される。
    F2(Y)= max(0、W2 * F1(Y)+ B2)。 (2)
  9. ここでW2は、サイズn1 f2×f2のn2個のフィルタを含み、B2はn2次元である。
  10. 出力されたn2次元ベクトルの各々は、概念的には、再構成に使用される高解像度パッチの表現である。
  11. 非線形性を高めるために、より多くの畳み込みレイヤを追加することは可能です。
  12. しかし、これはモデルの複雑さを増加させる可能性があり(1つの層のn2×f2×f2×n2パラメータ)、したがってより多くの訓練時間を必要とする。
  13. セクション3.3に追加の非線形マッピングレイヤを導入することで、より深い構造を探求する。

 

再構築

  1. 伝統的な方法では、予測されるオーバーラッピングする高解像度パッチは、最終平均画像を生成するために平均化されることが多い。
  2. 平均化は​​、一連のフィーチャマップ(各位置は、高解像度パッチの「平坦化された」ベクトル形式)上の事前定義されたフィルタと考えることができる。
  3. これによって動機づけられ、最終的な高解像度画像を生成するための畳み込みレイヤーを定義する。
    F(Y)= W3×F2(Y)+ B3。 (3)
  4. ここで、W3は、サイズn2×f3×f3のc個のフィルタに対応し、B3はc次元のベクトルである。
  5. 高解像度パッチの表現が画像領域にある場合(すなわち、各表現を単純に変形してパッチを形成することができる)、フィルタは平均化フィルタのように動作することが期待される。
  6. 高解像度パッチの表現がいくつかの他の領域(例えば、いくつかの基底に関する係数)にある場合、W3は最初に係数を画像領域に投影してから平均化するように動作することが期待される。
  7. いずれの場合も、W3は線形フィルタの集合である。
  8. 興味深いことに、上記の3つの操作は異なる直感によって動機づけられるが、それらはすべて畳み込みレイヤーと同じ形式になります。
  9. 我々は3つの操作をまとめ、畳み込みニューラルネットワークを形成する(図2)。
  10. このモデルでは、すべてのフィルタリング重みとバイアスを最適化する必要がある。
  11. 全体構造の簡潔さにもかかわらず、我々のSRCNNモデルは、超解像の大きな進展に起因する広範な経験を引き出すことによって注意深く開発されている[49]、[50]。
  12. 次のセクションで、この関係性を詳しく説明する。 

 

スパースコーディングに基づく手法との関係

  1. 我々は、スパースコーディングに基づくSR法[49]、[50]は畳み込みニューラルネットワークと見ることができることを示す。
  2. 図3にイラストを示す。
  3. スパースコーディングに基づく方法では、f1×f1の低解像度パッチが入力画像から抽出されると考える。
  4. 次に、Feature Sign [29]のようなスパースコーディングによる手法は、(低解像度の)辞書にパッチを投影する。
  5. 辞書サイズがn1の場合、これは入力画像にn1の線形フィルタ(f1×f1)を適用することと等価である(平均減算も線形演算であり、吸収することができる)。
  6. これは、図3の左側に示されている。
  7. スパースコーディングによる手法は、n1係数を反復的に処理する。
  8. この手法の出力はn2個の係数であり、スパースコーディングの場合は通常n2 = n1となる。
  9. これらのn2係数は、高解像度パッチの表現である。
  10. この意味で、スパースコーディングに基づく手法は、空間的サポートが1×1である非線形マッピング演算子の特殊なケースとして動作する。
  11. 図3の中央部分を参照してほしい
  12. しかし、スパースコーディングに基づく手法はフィードフォワードではない、すなわち反復アルゴリズムである。
  13. 逆に、非線形演算子は完全にフィードフォワードであり、効率的に計算することができる。
  14. f2 = 1に設定すると、非線形演算子ピクセル単位で完全に連結されたレイヤーとみなすことができる。
  15. SRCNNの「スパースコーディングに基づく手法」は、最初の2つのレイヤーを指すが、2つ目のレイヤーまたは活性化関数(ReLU)だけではない。
  16. したがって、SRCNNにおける非線形動作もまた、学習プロセスを通じて十分に最適化される。
  17. 上記のn2係数(スパース符号化後)は、別の(高解像度の)辞書に投影され、高解像度のパッチを生成する。
  18. 次に、重なり合う高解像度パッチが平均化される。
  19. 上述したように、これはn2個の特徴マップ上の線形畳み込みと等価である。
  20. 再構成に使用される高解像度パッチがサイズf3×f3である場合、線形フィルタは、サイズf3×f3の同等の空間的支持を有する。
  21. 図3の右側を参照してほしい。
  22. 上記の議論は、スパース符号化SR法(非線形マッピングが異なる)が一種の畳み込みニューラルネットワークと見ることができることを示している。
  23. しかし、スパースコーディングに基づくSR法の最適化では、すべての操作が考慮されているわけではない。
  24. 逆に、我々の畳み込みニューラルネットワークでは、低解像度辞書、高解像度辞書、非線形マッピング、平均減算および平均化が全て最適化されるフィルタに含まれる。
  25. そこで、我々の方法は、すべての操作からなるエンドツーエンドのマッピングを最適化する。
  26. 上記の類推は、ハイパーパラメータの設計にも役立つ。
  27. 例えば、最後のレイヤのフィルタサイズを最初のレイヤのフィルタサイズよりも小さく設定することができる。
  28. したがって、高解像度パッチの中央部分により依存する(f3 = 1ならば、平均化されていない中央画素)。
  29. また、n2 <n1を設定することもできる。これは、より疎である期待されるためである。
  30. 典型的で基本的な設定は、f1 = 9、f2 = 1、f3 = 5、n1 = 64、n2 = 32とする。
  31. 全体として、高解像度ピクセルの推定は、(9 + 5 - 1)^2 = 169ピクセルの情報を利用する。
  32. 明らかに、再構成のために利用される情報は、例えば、(5 + 5-1)2 = 81ピクセル5 [15]、[50]を使用する既存の外部の例に基づくアプローチで使用される情報よりも比較的大きい。
  33. これがSRCNNが優れた性能を発揮する理由の1つである。

 

訓練

  1. エンド・ツー・エンド写像関数Fを学習するには、ネットワークパラメータΘ= {W1、W2、W3、B1、B2、B3}の推定が必要である。
  2. これは、再構築された画像F(Y;Θ)と対応する高解像度画像Xとの間の損失を最小化することによって達成される。
  3. 高解像度画像{Xi}とそれに対応する低解像度画像{Yi}の集合が与えられたとき、我々は損失関数として平均二乗誤差(MSE)を使用する:
    L(Θ)= 1 n Xn i = 1 || F(Yi;Θ)-Xi || 2、(4)
  4. ここで、nはトレーニングサンプルの数を示す。
  5. 損失関数としてMSEを使用する場合には、高いPSNRが好まれる。
  6. PSNRは、画像復元品質を定量的に評価するために広く使用されている指標であり、知覚品質に少なくとも部分的に関連している。
  7. 損失関数のみが導き出せるのであれば、畳み込みニューラルネットワークが他の種類の損失関数の使用を妨げないことに気づくことには価値がある。
  8. 知覚的に意欲的な測定基準がトレーニング中に与えられると、ネットワークがその測定基準に適応する柔軟性がある。
  9. 逆に、このような柔軟性は、伝統的な「手作りの」方法では一般的に達成することが困難である。
  10. 提案されたモデルは高いPSNRを好むように訓練されているにもかかわらず、SSIM、MSSIM(セクション4.4.1を参照)などの代替評価メトリックを使用してモデルが評価されるとき、満足のいくパフォーマンスが観察される。
  11. 損失は​​、標準的な逆伝播を伴う確率的勾配降下[28]を用いて最小化される。
  12. 特に、重み行列は、以下のように表現される。
    Δi+ 1 = 0.9・Δi-η・∂L∂W'i、W'i + 1 = W'i +Δi+ 1···(5)
  13. ここで、∈{1、2、3}とiは層と反復のインデックスであり、ηは学習率であり、(∂L∂W`i)は微分である。
  14. 各レイヤのフィルタ重みは、ゼロ平均と標準偏差0.001(およびバイアスの場合は0)のガウス分布からランダムに描画することによって初期化される。
  15. 学習率は、最初の2つのレイヤーで10-4、最後のレイヤーで10-5である。
  16. 我々は、ネットワークが収束するためには、最後の層でのより小さい学習率が重要であることを経験的に見出している(デノイズケース[22]と同様)。
  17. トレーニング段階では、トレーニング画像からランダムに切り取られたfsub×fsub×c-ピクセルのサブ画像として、高解像度画像{Xi}が用意される。
  18. 「サブ画像」とは、これらのサンプルが「パッチ」ではなく小さな「画像」として扱われ、「パッチ」は重複しており、後処理としてある程度の平均化を必要とするが、「サブ画像」は必要ないという意味である。
  19. 低解像度サンプル{Yi}を合成するために、ガウスカーネルによってサブ画像をぼかし、アップサンプリング係数でサブサンプリングし、バイキュービック補間を介して同じ係数でアップスケールする。(横文字の嵐…!それぞれについては何となく調べてなんとなく理解してくだしあ)
  20. トレーニング中の境界効果を避けるために、すべての畳み込みレイヤにはパディングはなく、ネットワークはより小さい出力((fsub-f1-f2-f3 + 3)2×c)を生成する。
    (境界効果ってエッジがもやもやするあれのことだろうか?小さい出力が出る件については前にもあったけど、パッチの中心部分に依存して出力されるから境界部分の損失はないんやで^^)
  21. MSE損失関数は、Xiの中心ピクセルとネットワーク出力との間の差によってのみ評価される。
  22. トレーニングでは固定の画像サイズを使用するが、畳み込みニューラルネットワークは、テスト中に任意のサイズの画像に適用することができる。
  23. 我々は、モデルをcuda-convnetパッケージ[26]を用いて実装する。28.    また、Caffeパッケージ[24]を試してみたところ、同様の性能が見られた。

 

眠すぎて謎の投稿だらけになってて笑う。

 

しかも見てる人いるみたいで震えます。

これがワールドワイドウェブ(適当)

 

つーかながあああああい!!

途中で切ればよかったよちくせう!

 

次回、「実験」編。途中で切るかも。