본문 바로가기

AI 논문

[ 꼼꼼하게 논문 읽기 ] Deep Layer Aggregation ( 2019 )

728x90
반응형
반응형

CenterNet의 backbone 중에는 DLA-34가 있죠.

DLA는 backbone의 핵심 아이디어가

설명되었던 논문인데요

한번 봅시다.

Abstract

  visual recognition은 low level에서 high level 까지 rich representations, small 부터 large까지의 scales, fine부터 coarse한 resolutions를 요구하죠. 심지어 CNN에서 feature의 depth를 가지고, 고립된 layer는 충분하지 않죠 : 이런 representations를 compounding 하고 aggregating하는 것은 what and where에 대한 inference를 향상시키죠. Architectural efforts가 network backbones를 위해 많은 dimensions를 exploring 하고 있고, deeper 혹은 wider한 archietures가 designing되는 중이죠. 그러나 network에 걸쳐 layers와 blocks를 가장 잘 aggregate 하는 방법은 더 관심받을 만한 가치가 있죠. skip connections 가 layers를 combine하는 것을 incorporated해왔음에도 불구하고, 이들 connections는 그 자체가 shallow하죠. 그리고 오직 simple하게만 fuse하죠. 저자들은 deeper aggregation을 가진 standard architectures가 layers에 걸쳐 information을 더 잘 fuse한다고 augment합니다. 저자들의 deep layer aggregation sturctures는 iteratively하게 그리고 hierarchically하게 networks가 더 좋은 accuracy와 fewer parameter를 가질 수 있도록 만드는 feature hierarchy를 merge하죠.

Introduction

  Representation learning 과 transfer learning은 computer vsion에 recognition의 engine으로 스며들었죠. compositionality와 differentiability의 simple fundamentals는 deep architectures의 astonishing variety를 야기했죠. 많은 visual task의 backbone으로써 CNNs의 rise는  right task extension과 data를 가지고 다른 용도로 사용이 가능함은 물론,  architecture search가 progress를 sustaining하는데 centeral driver가 되도록 했죠. networks의 size와 scope을 increasing하는 것은 module의 design patterns과 systematically하게 assembled 될 수 있는 connectivity patterns를 devising하도록 이끌었죠. 이것은 deeper하고 wider한 networks를 탄생하게 했죠. 그런데 이들은 closely하게 connected 하는 것은 어떨까요?

  more nonlinearity, greater capacity 그리고 larger receptivefields는 accuracy를 generally하게 imporve하지만, optimization과 computation에 대해 문제의 소지가 있죠. 이 barriers를 극복하기 위해, different blocks나 modules는 이들 quantities를 balance하고  temper하기 위해 incorporated되어 왔죠. 가령 dimensionality reduction이나 residual, gated 그리고 feature 과 gradient propagation을 위한 concatenative connections 를 위한 bottlenecks이 예시가 되겠죠. Networks는 these schemes에 따라 100+ 심지어 1000+ 개의 layers를 가집니다.

  그럼에도 불구하고, futher exploration은 these layers와 modules를 connect하는 방법이 needed합니다. AlexNet을 통한 LeNet부터 ResNet에 이르기까지 layered networks 는 layers와 modules를 in sequence하게 쌓았죠. Layerwise accuracy comparisions, transferability analysis 그리고 representation visualizaion은 deep layers가 more semantic하고 more global 한 features를 extract한다는 것을 보여주죠. 그러나 these signs 가 last layer가 any task를 위한 ultimate representation이라는 것을 prove하진 않죠. 사실, skip connections는 classification과 regression 그리고 more structured tasks에 대해 effective 함은 증명되었죠. aggregation은, depth나 width같은, architecture의 cituical한 dimension 입니다.

  이 논문에서,저자들은 recognition과 localization을 위한 spatial이고 semantic한  information을 더 잘 fuse하는 layers를 aggregate하는 방법에 대해 연구합니다. current approaches의 'shallow' skip connections를 extending함으로써, 저자들의 aggregation architectures는 more depth와 sharing을 incorporate하죠.  저자들은 deep layer aggregation( DLA )를 위한 두 개의 structures를 도입합니다: iterative deep aggregation (IDA) 와 hierarchical deep aggregation (HDA) 이죠. 이 structures는 current 와 future networks를 활용하는 compatibility를 위해 architectural framework를 통해, backbone의 choice와 독립적으로 expressed되죠. IDA는 resolutions와 scales를 fusing하는 데에 초점이 맞춰져 있고, HDA는 all modules와 channels로부터 features를 merging하는 데에 초점이 맞춰져있죠. IDA는 resolution을 refine하고 scale을 stage-by-stage로 aggregate하는 base hierarchy를 따릅니다. HDA는 tree-structured connection의 its own hierarchy를 assembles하죠. tree-structured connections은 representation의 different levels를 aggregate하는 stages를 merge하고 cross하죠. 저자들의 schemes는 improvements를 compund하는 것으로 combined될 수 있습니다.

Related work

  visual recognition 에 대한 architectures를 review합니다. hierarchical features와 pyramidal scales의 aggregation에 대한 key architecutres를 highlight하고 이들을 depth, scales, 그리고 resolutions에 따라 deep aggregation에 맞춘 저자들의 focus와 connect합니다.

  image classification에 대한 AlexNet의 accuracy은 visual recognition을 위해서 architecture의 중요성을 알려줬죠. Deep learning은 transfer learning과 ojbect detection과 semantic segmentation를 위한 meta-algorithms를 통해  되는데 networks가 backbones으로서 역할을 할 수 있음을 establishing 함으로써 vision에 걸쳐 diffuse 되었죠. improvements는 한 번이 아닌 모든 better architecture를 가지고 broadcast되었고요. 이런 방식으로 GoogLeNet 과 VGG는 visual problems의 variety에 대해 accuracy를 imporve했죠. their patterned components는 architecture에 대한 more systematic approach를 prefigured했죠.

  Systematic design은 depth를 위해 residual networks 나 highway networks 그리고 width를 위한 ResNeXT나 FractalNet과 같은 deeper 하고 wider한 networks를 delivered해왔죠. 이런 architectures는 their own sturctural ideas를 온전히 contribute한 반면에, 그들은 bottlenecks 와 earlier techniques에 영감 받은 shortened paths를 incorporated했죠. Network-in-network는 channel mixing을 feature을 fuse하고, dimensionality를 control하며 deeper하게 하는 technique으로 demonstrated죠. deeply-supervised networks와 GoogLeNet의 auxiliary losses와 companion은 learned alyers와 losses를 close하게 keep하는 것이 도움이 된다는 것을 보여주죠. 대부분의 경우, 이런 architectures는 connectivity에 있어 innovations로부터 derive 되죠: skipping, gating, branching, and aggregating.

  저자들의 aggregation architectures는 feature hierarchies를 fusing하는 leading approaches와 매우 연관이 되어 있죠. fusion의 key axes는 semantic과 spatial입니다. semantic fusion이나 channels와 depths에 따라 aggregating하는 것은 inference of what을 imporve하죠. Spatial fusion이나 resolutions과 scales에 따라 aggregating 하는 것은 inference of where을 improve하죠. Deep layer aggregation은 두 fusion의 forms에 대해 union으로써 볼 수 있죠.

  Densely connected networks( DenseNets )는 semantic fusion을 위한 dominant family of architectures 입니다. stagesdptj all layers를 모두 concatenate하는 skip connections를 통해 losses와 features를 더 잘 propagate하도록 design 되었죠. 저자들의 hierarchical deep aggregation은 short paths 와 re-use의 importance에 대해 same insight를 share합니다. 그리고 stage를 cross하는 tree를 가지고 skip connection을 확장하고 concatenation보다 deeper한 fusion을 extend합니다. Densely connected and deeply aggregated networks는 more accuracy를 achieve 할 뿐만 아니라 better parameter과 memory efficiency 역시 achieve합니다.

  Feature pyramid networks(FPNs) 는 spatial fusion을 위한 dominant family of architectures이죠. resolution을 equalize하고 top-down 과 lateral connection을 통해 pyramid feature hierarchy의 levels에 걸쳐 semantics를 standardize 하도록 designed되었죠. 저자들의 iterative deep aggregation은 마찬가지로 resorlution을 raises 하지만, non-linear로 representation을 deepens하고 fusion을 progressive합니다. FPN connections는 linear하고 earlier levels는 relative semantic weakness를 대응하기 위해 aggregated되지 않습니다. Pyramidal and deeply aggregated networks는 structured output tasks에 대해 what and where을 더 잘 resolve 합니다.

Deep Layer Aggregation

  저자들은 aggregation을 network 전체에 걸쳐 different layers의 combination으로 정의합니다. 이 논문에서, 저자들은 depths, resolutions, and scales의 effective aggregation을 위한 family of architectures에 초점을 맞추죠. 저자들은 compositional, nonlinear, 그리고 multiple aggregation을 통해 layer가 passes하는 earliest aggregated 라면, a group of aggregations deep 이라고 부른다고 합니다. 

  networks가 많은 layers와 connections를 contain할 수 있기 때문에, modular design 은 grouping 하고 repetition함으로써 complexity를 counter하는데 도움이 되죠. Layers는 blocks로 grouped 되죠. 그런 다음, their feature resolution에 의해 stages로 grouped 됩니다. 저자들은 blocks와 stages를 aggregating하는데 관심이 있죠.

  Iterative Deep Aggregation

  Iterative deep aggregation은 backbone architecture의 iterated stacking을 따르죠. 저자들은 network의 stacked blocks를 stage로 feature resolution에 따라 나눕니다. Deeper stage는 more semantic하지만 spatially coarser 하죠. shallower 부터 deeper stages까지의 skip connections은 scales와 resolutions를 merge합니다. 그러나, FCN, U-Net, 그리고 FPN 과 같은 existing work에서의 skips는 linear하고 shallowest한 layers를 the least하게  aggregate하죠. 이는 Figure 2(b)에서 볼 수 있죠.

  저자들은 IDA를 가지고 representation을 progressively하게 aggregate하고 deepen하는 것을 제안합니다. Aggregation은 shallowest, smallest scale 에서 시작합니다. 그리고 나서 iteratively하게 deeper, lager scales로 merges하죠. 이런 방식으로, shallow features는 refined되죠. shallow features가 aggregation의 different stages를 통해 propagated 되기 때문이죠.

Figure2(c)는 IDA의 structure을 보여주죠.

  increasingly 하게 deepr하고 semantic information을 가진 layer의 series x1,...,xn 에 대해 iterative deep aggregation fuction I는 아래와 같이 공식화 되죠.

  Hierarchical Deep Aggregation

  HIerarchical deep aggregation은 feature channels를 preseve하고 combine하는 tree 형태로 blocks와 stages를 merge합니다. HDA 를 가지고 shallower 과 deeper layers는 feature hierarchy에 더 많이 span된 richer combinations를 learn 하기위해 combined 됩니다. IDA가 stages를 effectively하게 combines하는 반면, network의 많은 blocks를 fusing하는 데에 있어서는 충분하지 않죠. sequential 하기 때문이죠. hierarchical aggregation의 deep, branching structure는 Figure 2(d)에 있습니다.

HDA의 general structure을 establish 한다면, 저자들은 depth와 efficiency를 improve할 수 있죠. tree 위로만 intermediate aggregations를 routing하는 것보다, 저자들은 aggregation node의 ouput을 backbone에 next sub-tree에 대한 input으로 다시 넣어주죠. Figure 2(e)에서 볼 수 있는 것 처럼요. 이것은 all previous blocks의 aggregation을 propagates하죠.  이는 features를 더 잘 preserve하고요. efficiency를 위해, 저자들은 same depth의 aggregate nodes를 merge합니다. ( parent와 left child를 합치는 것이죠 ) 이는 Figure 2(f)에서 볼 수 있고요.

  Hierarchical deep aggregation function T_n ( depth n 을 가진 ) 은 아래와 같이 공식화 됩니다.

  Architectural Elements

  Aggregation Nodes

  aggregation node의 main function은 their input을 combine하고 compress하는 겁니다. nodes는 single input으로써 their output에서 same dimension을 maintain하는 important information을 select 하고 project하는 것을 learn 합니다. 저자들의 architectures에서 IDA nodes는 항상 binary입니다. 반면, HDA nodes는 tree의 depth와 의존하는 arguments의 variable number를 가지죠.

  aggregation node가 any block이나 layer를 기반으로 할 수 있음에도 불구하고, simplicity와 efficiency를 위해 저자들은 bath normalization과 nonlinearity가 뒤따라 나오는 single convolution을 선택하죠. 이는 aggregation structures에 대해 overhead를 피하죠. image classification networks에서, all the nodes는 1x1 convolution을 사용합니다. semantic segmentation에서, 저자들은 features를 interpolate하는 iterative deep aggregation의 level을 추가하죠. 이 경우, 3x3 convolution을 사용합니다.

  residual connections는 very deep network을 assembling하는데 있어 매우 중요하기 때문에, 저자들은 residual connections를 aggregation nodes에 추가합니다. 그러나, residual connections가 aggregation을 위해 필요한지는 명확하지는 않죠. HDA를 가지고, any block으로부터 root까지 shortest path는 hierarchy의 최대 깊이이죠. 그래서, diminishing or exploding gradients는 aggregation paths를 따라 appear하지 않을 수 있죠. 저자들의 실험에서, 저자들은 node에서 residual connection은 HDA를 도울 수 있는데, deepest hierarchy가 4 level 이상일 때 도움이 되죠. 그러나, smaller hierarcy를 가진 network에서는 문제가 될 수 있죠. 저자들의 base aggregation은 아래와 같이 나타나죠. 여기서 N은 equation 1, 2에서 나왔던 N 이죠.

sigma는 non-linear activation이고 w_i와 b는 convolution에서 weights이죠. 만약 residual connections가 추가 된다면 식은 아래와 같이 나타납니다.

N에 대한 arguments의 order는 중요하고 Equation 2를 따라야 합니다.

 

  Blocks and stages

  Deep layer aggregation은 general architecture family이죠. 이런 관점에서 diiferent backbones에 compatible하죠. 저자들의 architectures는 blocks와 stages의 internal structure에 대한 requirement가 없죠.

  실험에서 예시로 보여주는 networks는 세 가지 종류의 residual blocks를 사용합니다. Basic blocks는 stacked convolutions에 identity skip connection을 결합합니다. bottleneck blocks는 convolutional stack을 1 x 1 convolution을 통해 dimensionality를 reducing함으로써 regularize하죠. Split blocks는 feautures를 channels에 대해 separate path의 수를 grouping함으로써 divsersify하죠. 이 논문에서, 저자들은 output과 intermediat channels 수 간의 ratio를 반으로 줄이는데요. 이는 bottleneck과 split blocks에 대해 적용되죠. 그리고 split blocks의 cardinality는 32입니다. 

Applications

  저자들은 deep layer aggregation을 가진 network를 visual recognition task를 위해 design하는데요. aggregated representation의 contribution을 연구하기 위해, 저자들은 further machinery없는 linear prediction에 초점을 맞춥니다. 저자들의 results는 recognition과 context modeling을 위한 ensemlbes 이나 resolution을 위한 dilation 없이 나온 결과죠. semantic하고 spatial한 information의 aggregation은 classification과 dense prediction과 같은 것들에 대해 중요하죠.

  Classfication Networks

  classification networks은 IDA와 HDA를 가진 ResNet과 ResNeXT를 augment합니다. 이들은 각 block안에서 residual connections을 가진 staged networks이죠. 이들은 blocks를 spatial resolution으로 group합니다. 모든 stage의 끝은 절반의 resolution을 가집니다. 총 six stages가 있고, input reolution을 유지하는 first stage를 가지고 있죠. 반면 last stage는 32x로 downsampled됩니다. final feature maps는 global average pooling에 의해 collapsed된 뒤에 linearly 하게 scored되죠. classification은 score에 걸쳐 softmax로 predicted됩니다.

  저자들은 IDA를 가진 stages에 따라 connect하고 HDA로 stage 안에서 그리고 그에 걸쳐 connect하죠. aggregation의 이런 종류는 aggregation nodes를 sharing 함으로써 쉽게 combined될 수 있죠. 이 경우, 저자들은 각 hierarchy에서 root node만을 Equation1과 2를 combining함으로써 change할 필요가 있죠. 저자들의 stages는 size2와 stride 2를 가진 max pooling에 의해 downsampled됩니다.

  earliedst stages는 their own structure입니다. DRN에서, 저자들은 stage 1-2에 max pooling을 strided convolution으로 대체합니다. stage 1은 basic block에 뒤따라나 나오는 7 x 7 convolution으로 구성되어있습니다. stage 2는 basic block만으로 구성되어 있고요. 모든 stage에 대해, 저자들은 backbone blocks와 stages에 대해 IDA와 HDA를 combined 하여 구성합니다.

  different networks에서 layers와 parameters의 direct comparision을 위해, comparable number of layerf를 build합니다. ResNet-34, ResNet-50 그리고 ResNet-101. representaion을 condensing에 대한 DLA의 efficiency르 더 설명하기위해, fewer parameters를 가진 compact networks를 만들었죠. Table 1은 network의 목록을 보여주고 Figure 3은 DLA architecture를 보여주죠.

  Dense Prediction Networks

  Semantic segmentation, contour detection, 그리고 other image-to-image task는 local과 global information을 fuse하는 aggregation을 exploit하죠. classification DLA에서 fully convolutional DLA로의 conversion은 simple하고 other architectures와 차이가 없죠. 저자들은 interpolation과 task를 위한 necessary ouput에 reach하는 IDA를 가진 further augmenatation을 이용합니다.

  interpolation을 위한 IDA는 depth와 resolution 모두 projection과 upsampling으로 increase하고 이는 Figure4에 나타나 있죠.

projection과 upsampling parameters는 network의 optimization 동안 동시에 learned 되죠. upsampling steps는 bilinear interpolation으로 initialized 됩니다. 그런 뒤에 learned 될 수 있죠. 먼저 stage 3-6 stages의 ouput을 32 channels로 project합니다. 그런 다음 stages를 stage2 와 같은 resolution으로 interpolate합니다. 마지막으로, low와 high level features의 deep fusion을 학습하는 이들 stages를 iteratively하게 aggregate합니다. 저자들의 aggregation은 shallow-to-deep 으로 features를 further refine하는 것이 다른 연구들과는 다르죠. 이 경우에 두 번의 IDA를 사용합니다. 한번은 backbone network에서 stages를 connect하는데, 나머지는 resolution을 recover하는데 사용하죠. 

실험은 생략합니다. 간단히 요약하자면 fewer parameter로 better performance를 뽑았다는 게 결론이죠.

 

오늘은 여기까지 하겠습니다.

다음에 뵈요!

728x90
반응형