【論文メモ】Densely Connected Convolutional Networks
論文情報
タイトル
英語: Densely Connected Convolutional Networks
日本語: 密接に接続された畳み込みネットワーク
雑誌名・発行年
Arxiv
2017年
著者
最初の著者: Gao Huang (Cornell University)
最後の著者: Kilian Q. Weinberger (Cornell University)
所属
Cornell University
0.Abstract
本論文では、スキップコネクションやショートカットコネクションがあると、より深く正確に効率的に訓練できることが示されていることを受けて、各層を後続のすべての層に繋げるDense Convolution Network (DenseNet) を提案する。
Dense Convolution Network (DenseNet)
- 勾配消失問題を緩和し、特徴の伝搬を強化する。
- 特徴の再利用を促進するのでパラメータ数も大幅に削減できる。
- CIFAR-10、CIFAR-100、SVHN、およびImageNet)でのほとんどのタスクで従来手法に比べて大幅な改善をもたらし、高いパフォーマンスを達成するための計算量を減らすことに成功した。
1.Introduction
CNNは深くなるにつれより細かな特徴を取得できるが、それと同時に非効率的な情報の伝達や勾配の消失が問題となっている。
- ResNetsとHighway Networksは、層間を恒等接続を介して次の層に信号をバイパスする。
- Stochastic depthは、訓練中にランダムに層を削除することでResNetsを短縮し、より良い情報や勾配の流れを可能にする。
- FractalNetsは、異なる数の畳み込みブロックを持ついくつかの並行した層のシーケンスを繰り返し組み合わせて、大きな名目上の深さを得るが、ネットワーク内で多くの短絡経路を維持する。
これらの問題を解決するため、DenseNetは各層を前のすべての層と後続のすべての層に繋げる接続パターンを提案する。
3.DenseNets
事前情報
-
入力画像 :
x_0 -
非線形変換処理 :
: バッチ正規化、ReLU、Poolingもしくは畳み込み操作を組み合わせた処理。H_{\ell}()
ResNets
- 通常の畳み込みの場合、
層の出力は\ell^{t h} 層の入力に渡される。つまり、(\ell+1)^{t h} の入力を\ell^{th} と表せるので、出力はx_{\ell} と表せる。H_l(x_{\ell -1}) - ResNetの場合Resdiual Connectionが追加されるので、
となる。しかし、前の出力を加算するので、元の信号の特徴が弱くなったり、かえって勾配の減衰をする可能性がある。\mathbf{x}_{\ell}=H_{\ell}\left(\mathbf{x}_{\ell-1}\right)+\mathbf{x}_{\ell-1}
Dense Connectivity
- 情報フローをさらに改善するための接続方法
-
層はそれより前の層の出力全てを受け取るので、\ell^{th} と表せる。\mathbf{x}_{\ell}=H_{\ell}\left(\left[\mathbf{x}_0, \mathbf{x}_1, \ldots, \mathbf{x}_{\ell-1}\right]\right) は\left[\mathbf{x}_0, \mathbf{x}_1, \ldots, \mathbf{x}_{\ell-1}\right] 層の出力をconcatしている。0, \ldots, \ell-1
Composite Function
- DenseNetでは、非線形処理
をバッチ正規化・ReLU・3x3Convに設定H_{\ell}()
Pooling Layer
ある層がそれまでの全ての層を入力として受け取る時、
- 特徴抽出を行うDense Blockとダウンサンプリングを行うトランジションで分割して対応した。
- Dense Block : 密に接続された
の処理を行う層H_{\ell}() - トランジション層 : DenseBlockの間に存在し、ダウンサンプリング処理・バッチ正規化・1x1Conv・2x2AvgPoolingを行う。
- Dense Block : 密に接続された
Growth Rate
各層が出力する特徴マップの数のことをGrowth Rateと呼ぶ。
-
層は入力として\ell^{th} 個の特徴マップを受け取る(k_0+k \times(\ell-1) はDense Blockの最初の層の入力のチャンネル数)。k_0 - 密な接続のおかげで、
のような小さな数でも高い精度を達成することができる。k=12
Bottleneck Layers
Dense Block内の各層は
- この問題点を改善するため、3x3Conv処理をする前に1x1Convでチャンネル数を減らすことができる。これをボトルネック層という。
- つまり、ボトルネック層を加味したDense Block内の各層の処理
はバッチ正規化-ReLU-1x1Conv-3x3Convの順番で処理される。H_{\ell}
Compression
モデルの計算コストをさらに下げるために、トランジション層で圧縮の概念が導入されている。
- Dense Blockが
個の特徴マップを持っている時、トランジション層では特徴マップ数をm に減少させる。\theta m で与えられる。0<\theta<1 が1の場合、マップ数は減少しない。\theta - DenseNet-Cでは
が0.5に設定されている。\theta - ボトルネック層とトランジション層を導入したDenseNetをDenseNet-BCと呼ぶ。
Implemention Details
-
DenseNet構成:実験に使用されたDenseNetは、ImageNetを除くすべてのデータセットで、3つのDense Blockを持ち、それぞれ同じ数の層が含まれています。最初のDense Blockに入る前に、16の出力チャネル(またはDenseNet-BCの場合は成長率の2倍)のコンボリューションが入力画像に適用されます。3×3のコンボリューション層では、フィーチャーマップのサイズを維持するために、入力の各辺に1ピクセルのゼロパディングが施されます。
-
トランジション層:Dense Block間のトランジション層は、1×1のコンボリューションと2×2の平均プーリングから成り立っています。
-
グローバル平均プーリングとソフトマックス:最後のDense Blockの後には、グローバル平均プーリングが行われ、続いてソフトマックス分類器が配置されます。
-
フィーチャーマップのサイズ:3つのDense Blockのフィーチャーマップのサイズは、それぞれ32×32、16×16、8×8です。
-
DenseNetの構成バリエーション:基本的なDenseNetの構成では、{L = 40, k = 12}、{L = 100, k = 12}、{L = 100, k = 24}が使用されました。DenseNet-BCでは、{L = 100, k = 12}、{L = 250, k = 24}、{L = 190, k = 40}の構成が評価されました。
-
ImageNetでのDenseNet-BC:ImageNetの実験では、4つのDense Blockを持ち、224×224の入力画像に対して、サイズ7×7、ストライド2の2kコンボリューションを持つDenseNet-BC構造を使用しました。他のすべての層のフィーチャーマップの数も、設定されたkに基づいています。ImageNetで使用された正確なネットワーク構成は、表1に示されています。
Discussion