CSPNet
Last updated
Last updated
題名: CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN
実装例:
著者のリンクにはシェルしかない。
https://github.com/WongKinYiu/CrossStagePartialNetworks
DenseNetの更なる高速化。安価なGPUで動作することを念頭に改良。
ベースレイヤを2つに分割し、2つのパスで伝搬する情報を効率化している。
これは他のネットワークに容易に適用可能で、計算量を10~20%削減し、さらに精度を向上させることができた。
DenseNetの場合、同じ勾配が様々なパラメータの更新に重複して使用される。
CSPNetの場合、ベースの入力をすることで、勾配の重複するチャンネルを削減する。
正直、微分の話は理解ができていないが、以下に分割していると理解。
x_0'': ブロック全体をスキップするチャンネル
x_0': ブロック内をDenseNetで通過するチャンネル
分割方法は、単純にチャンネルを半分にするものと考えられる。
CSPNetでは以下の3パターンを定義している。( (a)は従来のDenseNetと同じ)
実験の結果、(d) Fusion Lastは、計算コストを大幅に下げ、top-1精度が0.1%程度しか低下しなかった。
CSPNetは、ResNetやResNeXtにも適用できる。
チャンネル数が半分となるためボトルネック層も不要となる。
EFMという特徴量のfusionを提案しているが、割愛。
解説とPyTorch実装例
https://pystyle.info/pytorch-densenet/
解説、その後の使われ方についても言及有
https://cvml-expertguide.net/terms/dl/cnn-backbone/densenet/
解説
https://ichi.pro/kurosu-sute-ji-bubun-nettowa-ku-cspnet-64805303419044
https://qiita.com/mshinoda88/items/c7e0967923e3ed47fee5#4-cross-stage-partial-networkcspnet
CIOについての論文
https://arxiv.org/pdf/1909.00948.pdf
なんかCSPNetの論文と少し計算方法が違う気がするが...
等差数列の和になっているのは確か
https://www.kwansei.ac.jp/hs/z90010/sugakua/suuretu/tousasum/tousasum.htm