๐ถ ์ด๋ก (Abstract)
- ์ฌ์ธต์ ๊ฒฝ๋ง์ "over-parameterized"๋๊ฑฐ๋ "weight_decay. &. dropout"๊ฐ์ ์์ฒญ๋ ์์ noise์ regularize๋ก ํ๋ จ๋ ๋, ์ข ์ข ์ ์๋ํ๊ณคํ๋ค.
๋น๋ก Dropout์ด FC.layer์ธต์์ ๋งค์ฐ ํฌ๊ด์ ์ผ๋ก ์ฌ์ฉ๋๋ regularization๊ธฐ๋ฒ์ด์ง๋ง, conv.layer์์ ์ข ์ข ๋ ํจ๊ณผ์ ์ด๋ค.
์ด๋ฐ Conv.layer์์์ Dropout๊ธฐ๋ฒ์ ์ฑ๊ณต์ ๊ฒฐํ์ conv.layer์ activation unit์ด "dropout์๋ ๋ถ๊ตฌํ๊ณ ๊ณต๊ฐ์ ์๊ด๊ด๊ณ"๊ฐ ์๊ธฐ์ ์ ๋ณด๊ฐ ์ฌ์ ํ conv.layer๋ฅผ ํตํด ํ๋ฅผ ์ ์๋ค๋ ์ ์ด๋ค.
∴ CNN์ ์ ๊ทํ๋ฅผ ์ํด ๊ตฌ์กฐํ๋ ํํ์ dropout๊ธฐ๋ฒ์ด ํ์ํ๋ค!
- ์ด ๊ตฌ์กฐํ๋ ํํ์ dropout๊ธฐ๋ฒ์ ๋ณธ ๋ ผ๋ฌธ์์ ์๊ฐํ๋๋ฐ, ๋ฐ๋ก Dropout์ด๋ค.
Dropout๊ธฐ๋ฒ์ ํน์ง๋งต์ ์ธ์ ์์ญ์ ์๋ units๋ฅผ ํจ๊ป Drop์ํค๋ ๋ฐฉ๋ฒ์ ์ฑํํ๋ค.
์ฐ๋ฆฐ "skip-connection"์ DropBlock์ ์ ์ฉํจ์ผ๋ก์จ ์ ํ๋์ ํฅ์์ ์ด๋ฃฉํ๋ค.
๋ํ, training์ Drop์ ์๋ฅผ ์ ์ฐจ ๋๋ฆฌ๋ฉด์ 2๊ฐ์ง ์ด์ ์ ์ป์๋ค.
i) ๋ ๋์ accuracy
ii) hyperparameter์ ์ ํ์ ํ๊ณ ์ฑ(robust)
- ์๋ง์ ์คํ์์ DropBlock์ CNN์ ๊ท์ ํํ๋ ๋ฐ Dropout๋ณด๋ค ๋ ์ ์๋ํ๋ค.
ImageNet์์ DropBlock์ ์ฌ์ฉํ๋ ResNet-50 ์ํคํ ์ฒ๋ 78.13%์ ์ ํ๋๋ฅผ ๋ฌ์ฑํ์ฌ ๊ธฐ์กด๋ณด๋ค 1.6% ์ด์ ํฅ์๋์๋ค. COCO Detection์์ DropBlock์ RetinaNet์ ํ๊ท ์ ๋ฐ๋๋ฅผ 36.8%์์ 38.4%๋ก ํฅ์์ํจ๋ค.
1. ์๋ก (Introduction)
- ์ฌ์ธต์ ๊ฒฝ๋ง์ "over-parameterized(= parameter์๊ฐ ๋ง์)"๋๊ฑฐ๋ "weight_decay. &. dropout"๊ฐ์ ์์ฒญ๋ ์์ noise์ regularize๋ก ํ๋ จ๋ ๋, ์ข ์ข ์ ์๋ํ๊ณคํ๋ค.
CNN์์ dropout์ ์ฒซ๋ฑ์ฅ์ผ๋ก ๋ง๋ํ ์ฑ๊ณต์๋ ๋ถ๊ตฌํ๊ณ , ์ต๊ทผ ์ฐ๊ตฌ์์ convolutional architectures์์ dropout์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ ๊ทนํ ๋๋ฌผ๋ค. [BN, ResNet,...๋ฑ ๋ ผ๋ฌธ]
๋๋ถ๋ถ์ ๊ฒฝ์ฐ, dropout์ CNN์์ ์ฃผ๋ก "Fully-Connected layer"์์ ๋ฉ์ธ์ผ๋ก ์ฌ์ฉ๋๋ค.
- ์ฐ๋ฆฐ Dropout์ ํต์ฌ๊ฒฐ์ ์ด "drops out feature randomly"๋ผ๊ณ ์ฃผ์ฅํ๋ค.
ํน์ง์ ๋ฌด์์๋ก ์ ๊ฑฐํ๋ ๊ฒ์ด FC.layer์์๋ ์ข์ ์๋ ์์ผ๋, "๊ณต๊ฐ์ ์๊ด๊ด๊ณ"๊ฐ ์กด์ฌํ๋ Conv.layer์์๋ ๋ ํจ๊ณผ์ ์ด๋ค.
dropout์๋ ๋ถ๊ตฌํ๊ณ , ํน์ง๊ฐ์ ์๊ด๊ด๊ณ๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ์ "input์ ๋ณด๊ฐ ๋ค์์ธต์๋ ์ ๋ฌ๋๋ค๋ ๊ฒ"์ด๋ฉฐ ์ด๋ ์ ๊ฒฝ๋ง์ "overfitting"์ ์ผ๊ธฐํ ์ ์๋ค.
์ด๋ฐ ์ง๊ด์ CNN์ ๊ท์ ํ๋ฅผ ์ํด ๋ ๊ตฌ์กฐํ๋ dropout์ด ํ์ํ๋ค๋ ๊ฒ์ ์์ฌํ๋ค.
- ๋ณธ ๋ ผ๋ฌธ์์, (dropout์ ๊ตฌ์กฐํํ์ฌ CNN๊ท์ ํ์ ๋ถ๋ถ์ ์ผ๋ก ํจ๊ณผ๊ฐ ์๋) DropBlock์ ๋ํด ์๊ฐํ๋ค.
DropBlock์์ block๋ด์ ํน์ง, ์ฆ ํน์ง๋งต์ ์ธ์ ์์ญ์ด ํจ๊ป drop๋๋ค.
DropBlock์ ์๊ด์์ญ์ ํน์ง์ ํ๊ธฐ(discard)ํ๋ฏ๋ก ์ ๊ฒฝ๋ง์ data์ ์ ํฉํ ์ฆ๊ฑฐ๋ฅผ ๋ค๋ฅธ ๊ณณ์์ ์ฐพ์์ผํ๋ค. (๊ทธ๋ฆผ 1 ์ฐธ์กฐ).
- ์ฐ๋ฆฌ ์คํ์์, DropBlock์ ๋ค์ํ ๋ชจ๋ธ๊ณผ dataset์์ dropout๋ณด๋ค ํจ์ฌ ๋ซ๋ค.
ResNet-50 ์ DropBlock์ ์ถ๊ฐํ๋ฉด ImageNet์ Image Classification์ ์ ํ๋๊ฐ 76.51%์์ 78.13%๋ก ํฅ์๋๋ค.
COCO detection์์ DropBlock์ RetinaNet์ AP๋ฅผ 36.8%์์ 38.4%๋ก ํฅ์๋๋ค.
2. Related work
- ์๋ก ์์ ๋งํ๋ฏ, Dropout์ DropConnect, maxout, StochasticDepth, DropPath, ScheduledDropPath, shake-shake regularization, ShakeDrop regularization๊ฐ์ ์ ๊ฒฝ๋ง์ ๋ํ ์ฌ๋ฌ ์ ๊ทํ ๋ฐฉ๋ฒ์์ ์๊ฐ์ ๋ฐ์๋ค.
์ด๋ฐ ๋ฐฉ๋ฒ๋ค์ ๊ธฐ๋ณธ ์์น์ training data์ overfitting๋์ง ์๊ธฐ์ํด ์ ๊ฒฝ๋ง์ noise๋ฅผ ์ถ๊ฐํ๋ค.
CNN์ ๊ฒฝ์ฐ, ์ ์ ํ ๋๋ถ๋ถ์ ์ฑ๊ณต์ ๋ฐฉ๋ฒ์ noise๊ฐ ๊ตฌ์กฐํ๋์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด, DropPath์์ ์ ๊ฒฝ๋ง์ ์ ์ฒด ๊ณ์ธต์ ํน์ ๋จ์๋ฟ๋ง ์๋๋ผ ํ๋ จ์์ ์ ์ธ๋๋ค.
์ด๋ฌํ dropping out layer์ ์ ๋ต์ ์ ์ถ๋ ฅ branch๊ฐ ๋ง์ ๊ณ์ธต์ ์ ์ ์ฉ๋ ์ ์์ง๋ง branch๊ฐ ์๋ ๊ณ์ธต์๋ ์ฌ์ฉํ ์ ์๋ค.
cf) "block"์ conv.layer๋ด์ ์ธ์ ํ ํน์ง๋งต์ ์งํฉ์ผ๋ก ์ ์ํ๊ณ
"branch"๋ฅผ ๋์ผํ ๊ณต๊ฐ ํด์๋๋ฅผ ๊ณต์ ํ๋ ์ฐ์๋ block์ ์งํฉ์ผ๋ก ์ ์ํ๋ค.
์ฐ๋ฆฌ์ ๋ฐฉ๋ฒ์ธ DropBlock์ CNN์ ๋ชจ๋ ๊ณณ์ ์ ์ฉํ ์ ์๋ค๋ ์ ์์ ๋ ์ผ๋ฐ์ ์ด๋ค.
์ฐ๋ฆฌ์ ๋ฐฉ๋ฒ์ ์ ์ฒด channel์ด ํน์ง๋งต์์ drop๋๋ SpatialDropout๊ณผ ๋ฐ์ ํ ๊ด๋ จ์ด ์๊ธฐ์ ์ฐ๋ฆฌ์ ์คํ์ DropBlock์ด SpatialDropout๋ณด๋ค ๋ ํจ๊ณผ์ ์ด๋ผ๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
- Architecture์ ํน์ ๋ ์ด๋ฐ noise์ฃผ์ ๊ธฐ์ ์ ๊ฐ๋ฐ์ CNN์๋ง ๊ตญํ๋์ง ์๋๋ค.
์ค์ ๋ก CNN๊ณผ ์ ์ฌํ๊ฒ RNN์ ์์ฒด์ ์ธ noise์ ์ฃผ์ ๋ฐฉ์์ ํ์๋ก ํ๋ค.
ํ์ฌ, Recurrent Connections์ noise๋ฅผ ์ฃผ์ ํ๋ ๋ฐ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ ์ค ๋ ๊ฐ์ง๊ฐ ์๋๋ฐ,
๋ฐ๋ก Variational Dropout๊ณผ ZoneOut์ด๋ค.
- ์ฐ๋ฆฌ์ ๋ฐฉ๋ฒ์ ์ ๋ ฅ ์์ ์ ์ผ๋ถ๊ฐ ์์ ์ฒ๋ฆฌ(zeroed out)๋๋ ๋ฐ์ดํฐ ์ฆ๊ฐ ๋ฐฉ๋ฒ์ธ Cutout์์ ์๊ฐ์ ์ป์๋ค.
DropBlock์ CNN์ ๋ชจ๋ ํน์ง๋งต์์ Cutout์ ์ ์ฉํ์ฌ Cutout์ ์ผ๋ฐํํ๋ค.
์ฐ๋ฆฌ์ ์คํ์์, training ์ค DropBlock์ ๋ํด ๊ณ ์ ๋ zero out๋น์จ์ ๊ฐ๋ ๊ฒ์ ํ๋ จ ์ค zero out๋น์จ์ด ์ฆ๊ฐํ๋ schedule์ ๊ฐ๋ ๊ฒ๋งํผ ๊ฐ๋ ฅํ์ง ์๋ค.
์ฆ, ๊ต์ก ์ค์๋ ์ด๊ธฐ์ DropBlock ๋น์จ์ ์๊ฒ ์ค์ ํ๊ณ , ๊ต์ก ์ค์๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ ๊ฒ์ด ์ข์ผ๋ฉฐ, ์ด scheduling ์ฒด๊ณ๋ ScheduledDropPath์ ๊ด๋ จ์ด ์๋ค.
3. DropBlock
- DropBlock์ dropout๊ณผ ๋น์ทํ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด์ง๋ง, dropout๊ณผ์ ์ฃผ๋ ์ฐจ์ด์ ์
Dropout: dropping out independent random unit
DropBlock: drops contiguous regions from a feature map of a layer
DropBlock์ 2๊ฐ์ง์ ์ฃผ์ parameter๊ฐ ์๋ค.
i) block_size : dropํ block์ ํฌ๊ธฐ
ii) ๐พ :์ผ๋ง๋ ๋ง์ activation units๋ฅผ dropํ ๊ฒ์ธ์ง
์ฐ๋ฆฌ๋ ์๋ก ๋ค๋ฅธ feature channel์ ๊ฑธ์ณ ๊ณต์ ๋ DropBlock mask๋ฅผ ์คํํ๊ฑฐ๋ ๊ฐ feature channel์ DropBlock ๋ง์คํฌ๋ฅผ ์ง๋๊ฒ ํ๋ค. Algorithm 1์ ํ์์ ํด๋นํ๋ฉฐ, ์ด๋ ์ฐ๋ฆฌ์ ์คํ์์ ๋ ์ ์๋ํ๋ ๊ฒฝํฅ์ด ์๋ค.
Dropout๊ณผ ์ ์ฌํ๊ฒ ์ฐ๋ฆฌ๋ ์ถ๋ก ์๊ฐ์ค DropBlock์ ์ ์ฉํ์ง ์๋๋ฐ, ์ด๋ ๊ธฐํ๊ธ์์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ํฐ ํ์์ ๊ฒฝ๋ง์ ์์๋ธ์ ๊ฑธ์ณ ํ๊ท ์์ธก์ ํ๊ฐํ๋ ๊ฒ์ผ๋ก ํด์๋๋ค.
์ด๋ฐ ํ์์ ๊ฒฝ๋ง์ ๊ฐ ์ ๊ฒฝ๋ง์ด ๊ฐ ํน์ง๋งต์ ์ธ์ ํ ๋ถ๋ถ์ ๋ณด์ง ๋ชปํ๋ Dropout์ผ๋ก ์ปค๋ฒ๋๋ ํน๋ณํ ํ์์ ๊ฒฝ๋ง์ ํ์์งํฉ์ ํฌํจํ๋ค.
• Setting the value of block_size
•Setting the value of ๐พ
•Scheduled DropBlock
4. Experiments
๋ค์ Section์์๋ Image Classification, Object Detection ๋ฐ Semantic Segmentation์ ๋ํ DropBlock์ ํจ๊ณผ๋ฅผ ๊ฒฝํ์ ์กฐ์ฌ๋ฅผ ์งํํ๋ค.
Image Classification์ ์ํ ๊ด๋ฒ์ํ ์คํ์ ํตํด ResNet-50์ DropBlock์ ์ ์ฉํ๋ค.
๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ์ํคํ ์ฒ๋ก ์ ์ก๊ฐ๋ฅ์ฌ๋ถ์ ํ์ธ์ ์ํด ์ต์ฒจ๋จ ๋ชจ๋ธ์ธ AmoebaNet์์ DropBlock์ ์ํํ๊ณ ๊ฐ์ ์ฌํญ์ ๋ณด์ฌ์ค๋ค.
Image classification ์ธ์๋, ์ฐ๋ฆฌ๋ DropBlock์ด Object Detection ๋ฐ Semantic Segmentation์ ์ํ RetinaNet์ ํ๋ จํ๋ ๋ฐ ๋์์ด ๋๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
4.1 ImageNet Classification
ILSVRC 2012 classification dataset
- train: 1.2M , valid: 5๋ง , test: 15๋ง, 1000-class label
์ด๋ฏธ์ง์๋ 1,000๊ฐ์ ๋ฒ์ฃผ๊ฐ ๋ ์ด๋ธ๋ก ์ง์ ๋ฉ๋๋ค.
[GoogLeNet, DenseNet]์ฒ๋ผ trainingํ๊ธฐ ์ํด horizontal flip, scale, ์ข ํก๋น์จํ๋๋ฅผ ์ฌ์ฉํ๋ค.
evaluation์์ multiple crop๋์ , single crop์ ์ ์ฉํ๋ค.
์ผ๋ฐ์ ๊ดํ์ ๋ฐ๋ผ ๊ฒ์ฆ ์ธํธ์ ๋ํ ๋ถ๋ฅ ์ ํ๋๋ฅผ ๋ณด๊ณ ํ๋ค.
• Implementation Details
์ฐ๋ฆฌ๋ ํ ์ ์ฒ๋ฆฌ ์ฅ์น(TPU)์ ๋ํ ๋ชจ๋ธ์ ๊ต์กํ๊ณ ๊ณต๊ฐ๋ ResNet-50 ๋ฐ AmebaNet์ ๋ํด tensorflow๋ก ๊ตฌํ์ ์ฌ์ฉํ๋ค. [https://github.com/tensorflow/tpu/tree/master/models/official/resnet // https://github.com/tensorflow/tpu/tree/master/models/experimental/amoeba_net ]
์ฐ๋ฆฌ๋ ๋ชจ๋ ๋ชจ๋ธ์ ๋ํด
- ๊ธฐ๋ณธ image size (ResNet-50์ ๊ฒฝ์ฐ 224 x 224, AmebaNet์ ๊ฒฝ์ฐ 331 x 331)
- batch size (ResNet-50์ ๊ฒฝ์ฐ 1024, AmebaNet์ ๊ฒฝ์ฐ 2048)
- ๋ฐ ํ์ดํผ ํ๋ผ๋ฏธํฐ ์ค์ ์ ์ ์ฉํ๋ค.
์ฐ๋ฆฐ ๋จ์ง ResNet-50 ์ํคํ ์ฒ์ ๋ํ training epoch์ 90๊ฐ์์ 270๊ฐ๋ก ๋๋ ธ์ ๋ฟ์ด๋ค.
ํ์ต๋ฅ ์ 125, 200, 250 epoch๋ง๋ค 0.1๋ฐฐ ๊ฐ์ํ๋ค.
AmebaNet ๋ชจ๋ธ์ 340epoch ๋์ ํ๋ จ๋์์ผ๋ฉฐ ํ์ต๋ฅ ์ค์ผ์ค๋ง์์ํด ์ง์decay์ฒด๊ณ๊ฐ ์ฌ์ฉ๋์๋ค.
๊ธฐ์กด์ ๋ชจ๋ธ์ ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ธด training scheme์ผ๋ก ์ธํด overfitting๋์ด์ ํ๋ จ์ด ์ข ๋ฃ๋๋ฉด validation accuracy๊ฐ ๋ฎ๋ค.
๋ฐ๋ผ์ ๊ณต์ ํ ๋น๊ต๋ฅผ ์ํด ์ ์ฒด training๊ณผ์ ์ ๊ฑธ์ณ ๊ฐ์ฅ ๋์ validation accuracy๋ฅผ ๋ณด๊ณ ํ๋ค
4.1.1 DropBlock in ResNet-50
ResNet-50์ ์ด๋ฏธ์ง ์ธ์์ ์ํด ๋๋ฆฌ ์ฌ์ฉ๋๋ CNN์ํคํ ์ฒ์ด๋ค.
๋ค์ ์คํ์์, ์ฐ๋ฆฌ๋ ResNet-50์ ๋ค๋ฅธ ๊ท์ ํ ๊ธฐ์ ์ ์ ์ฉํ๊ณ ๊ฒฐ๊ณผ๋ฅผ DropBlock๊ณผ ๋น๊ตํ๋ค.
๊ฒฐ๊ณผ๋ ํ 1์ ์์ฝ๋์ด ์๋ค.
• Where to apply DropBlock
ResNet์์ building block์ ๋ช ๊ฐ์ conv.layer์ identity mapping์ ์ํํ๋ ๋ณ๋์ skip-connection์ผ๋ก ๊ตฌ์ฑ๋๋ค.
๋ชจ๋ conv.layer๋ Batch Normalizatoin layer ๋ฐ ReLU activation์ ๋ฐ๋ฅธ๋ค.
building block์ ์ถ๋ ฅ์ convolution building block์ ์ถ๋ ฅ์ convolution branch์ ์ถ๋ ฅ๊ณผ skip connection ์ถ๋ ฅ์ ํฉ์ด๋ค.
ResNet์ ํ์ฑํํจ์์ ๊ณต๊ฐ์ ํด์๋์ ๊ธฐ์ดํ์ฌ ๊ทธ๋ฃน์ ๊ตฌ์ถํ์ฌ ๋ํ๋ผ ์ ์๋๋ฐ, building group์ ์ฌ๋ฌ building block์ผ๋ก ๊ตฌ์ฑ๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๋ฃน 4๋ฅผ ์ฌ์ฉํด ResNet์ ๋ง์ง๋ง group(์ฆ, conv5_x์ ๋ชจ๋ layer)์ ๋ํ๋ธ๋ค.
๋ค์ ์คํ์์๋ ResNet์์ DropBlock์ ์ ์ฉํ ์์น๋ฅผ ์ฐ๊ตฌํ๋ค.
โ conv.layer์ดํ์๋ง DropBlock์ ์ ์ฉํ๊ฑฐ๋
โก conv.layer์ skip-connection ๋ ๋ชจ๋ ๋ท๋ถ๋ถ์ DropBlock์ ์ ์ฉํ๋ ์คํ์ ํ๋ค.
๋ค์ํ ํน์ง ๊ทธ๋ฃน์ ์ ์ฉ๋๋ DropBlock์ ์ฑ๋ฅ์ ์ฐ๊ตฌํ๊ธฐ ์ํด ๊ทธ๋ฃน 4 ๋๋ ๊ทธ๋ฃน 3๊ณผ ๊ทธ๋ฃน 4 ๋ชจ๋์ DropBlock์ ์ ์ฉํ๋ ์คํ์ ํ๋ค.
• DropBlock. vs. dropout
์๋ ResNet ์ํคํ ์ฒ๋ ๋ชจ๋ธ์ Dropout์ ์ ์ฉํ์ง ์๋๋ค. ๋ค๋ง ๋ ผ์์ ์ฉ์ด์ฑ์ ์ํด ๊ธฐ์กด ResNet์ Dropout์ convolution branch์๋ง dropout์ ์ ์ฉํ๋ ๊ฒ์ผ๋ก ์ ์ํ๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก block_size = 7๋ก ๊ทธ๋ฃน 3๊ณผ 4 ๋ชจ๋์ DropBlock์ ์ ์ฉํ๋ค.
์ฐ๋ฆฌ๋ ๋ชจ๋ ์คํ์์ ๊ทธ๋ฃน 3์ ๋ํด parameter ๐พ๋ฅผ 4๋งํผ ๊ฐ์์์ผฐ๋ค.
๊ทธ๋ฆผ 3-(a)์์, ์ฐ๋ฆฌ๋ top-1 accuracy์์ DropBlock์ด 1.3%๋ก Dropout์ ๋ฅ๊ฐํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
reserved keep_prob๋ DropBlock์ keep_prob์ ๋ณ๊ฒฝ์ ๋ ๊ฐ๋ ฅํ๊ฒ ๋ง๋ค๊ณ keep_prob(3-(b))์ ๊ฐ์ฅ ๋ง์ ๊ฐ์ ๋ํ ๊ฐ์ ์ ์ถ๊ฐํ๋ค.
๊ทธ๋ฆผ 3์์ ์ต๊ณ ์ keep_prob๋ฅผ ํตํด ๋ฐ๊ฒฐํ ์ ์ ๋ฐ๋ก block_size๊ฐ 1์์ ์ ์ฒด ํน์ง๋งต์ ํฌํจํ๋ block_size๋ก ๋ฐ๋์๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆผ 4๋ ์ผ๋ฐ์ ์ผ๋ก 1์ block_size๋ฅผ ์ ์ฉํ๋ ๊ฒ๋ณด๋ค ํฐ block_size๋ฅผ ์ ์ฉํ๋ ๊ฒ์ด ๋ ๋ซ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๋ฉฐ ์ต์์ DropBlock ๊ตฌ์ฑ์ block_size = 7์ ๊ทธ๋ฃน 3๊ณผ 4์ ๋ชจ๋ ์ ์ฉํ๋ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๊ตฌ์ฑ์์ DropBlock๊ณผ Dropout์ ์ ์ฌํ ์ถ์ธ๋ฅผ ๊ณต์ ํ๋ฉฐ DropBlock์ ์ต์์ Dropout ๊ฒฐ๊ณผ์ ๋นํด ํฐ ์ด๋์ ๋ณด์ ๋๋ค.
์ด๊ฒ์ DropBlock์ด Dropout์ ๋นํด ๋ ํจ๊ณผ์ ์ธ ๊ท์ ํ ๋๊ตฌ๋ผ๋ ์ฆ๊ฑฐ๋ฅผ ๋ณด์ฌ์ค๋ค.
•DropBlock. vs. SpatialDropout
๊ธฐ์กด์ Dropout๊ณผ ์ ์ฌํ๊ฒ, ์ฐ๋ฆฌ๋ ๊ธฐ์กด์ SpatialDropout๊ธฐ๋ฒ์ด convolution branch์๋ง ์ ์ฉํ๋ ๊ฒ์ผ๋ก ์ ์ํ๋ค.
SpatialDropout๊ธฐ๋ฒ์ Dropout๊ธฐ๋ฒ๋ณด๋ค๋ ๋ซ์ง๋ง DropBlock๋ค๋ ๋จ์ด์ง๋ค.
(์ฆ, DropBlock > SpatialDropout > Dropout)
๊ทธ๋ฆผ 4์์ ๊ทธ๋ฃน 3์ ๊ณ ํด์๋ ํน์ง๋งต์ ์ ์ฉํ ๋, SpatialDropout๊ธฐ๋ฒ์ด ๋๋ฌด ๊ฐํนํ ์ ์์์ ๋ฐ๊ฒฌํ๋ค.
DropBlock์ ๊ทธ๋ฃน 3๊ณผ ๊ทธ๋ฃน 4 ๋ชจ๋์์ ์ผ์ ํ ํฌ๊ธฐ์ Block์ Dropํ์ฌ ์ต์์ ๊ฒฐ๊ณผ๋ฅผ ๋ฌ์ฑํฉ๋๋ค.
• Comparision with DropPath
Scheduled DropPath๊ธฐ๋ฒ์์ "skip-connection"์ ์ ์ธํ ๋ชจ๋ ์ฐ๊ฒฐ์ Scheduled DropPath๋ฅผ ์ ์ฉํ์ต๋๋ค.
์ฐ๋ฆฌ๋ keep_prob ๋งค๊ฐ ๋ณ์์ ๋ํด ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ชจ๋ธ์ ํ๋ จ์์ผฐ์ผ๋ฉฐ, ๋ชจ๋ ๊ทธ๋ฃน์์ DropPath๋ฅผ ์ ์ฉํ๊ณ ๊ทธ๋ฃน 4 ๋๋ ๊ทธ๋ฃน 3๊ณผ ๊ทธ๋ฃน 4์์๋ง ๋ค๋ฅธ ์คํ๊ณผ ์ ์ฌํ ๋ชจ๋ธ์ ํ๋ จ์์ผฐ๋ค.
keep_prob = 0.9์ธ ๊ทธ๋ฃน 4์๋ง ์ ์ฉํ์ ๋ 77.10%๋ก ์ต์์ validation accuracy๋ฅผ ๋ฌ์ฑํ๋ค.
• Comparision with Cutout
๋ํ ๋ฐ์ดํฐ ์ฆ๊ฐ ๋ฐฉ๋ฒ ์ค ํ๋์ธ Cutout๊ธฐ๋ฒ๊ณผ ๋น๊ตํ์ฌ ์ ๋ ฅ ์ด๋ฏธ์ง์์ ๊ณ ์ ํฌ๊ธฐ ๋ธ๋ก์ ๋ฌด์์๋ก ๋จ์ด๋จ๋ ธ๋ค.
Cutout๊ธฐ๋ฒ์ Cutout๋ ผ๋ฌธ์์ ์ ์ํ ๋๋ก CIFAR-10 dataset์ ์ ํ๋ํฅ์์ ๋์ง๋ง, ์ฐ๋ฆฌ ์คํ์์ ImageNet dataset์ ์ ํ๋๋ฅผ ํฅ์์ํค์ง๋ ์๋๋ค.
• Comparision with other regularization techniques
์ฐ๋ฆฌ๋ DropBlock์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ 2๊ฐ์ง regularization๊ธฐ์ (data augmentation, label smoothing)๊ณผ ๋น๊ตํ๋ค.
ํ 1์์ DropBlock์ data augmentation, label smoothing์ ๋นํด ์ฑ๋ฅ์ด ์ฐ์ํ๋ค.
DropBlock๊ณผ label smoothing ๋ฐ 290epoch training์ ๊ฒฐํฉํ๋ฉด ์ฑ๋ฅ์ด ํฅ์๋์ด ๊ท์ ํ ๊ธฐ์ ์ด ๋ ์ค๋ ํ๋ จํ ๋, ๋ณด๊ฐ์ด ๋ ์ ์์์ ๋ณด์ฌ์ค๋ค.
4.1.2 DropBlock in AmoebaNet
- ๋ํ ์งํ์ ๊ตฌ์กฐ์ search๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ๊ฒฌ๋ ์ต์ architecture๋ AmoebaNet-B architecture์์ DropBlock์ ํจ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค. ์ด ๋ชจ๋ธ์ 0.5์ keep probability๋ก dropoutํ์ง๋ง ์ต์ข softmax์ธต์์๋ง dropout๋๋ค.
- ์ฐ๋ฆฐ ๋ชจ๋ Batch Normalization์ธต ํ์ DropBlock์ ์ ์ฉํ๊ณ ๋ํ ๋ง์ง๋ง ์ ์ 50%์ Skip-Connection์๋ ์ ์ฉํ๋ค. ์ด๋ฌํ ์ ์์ ํน์ง๋งต์ ํด์๋๋ 331x331 ํฌ๊ธฐ์ ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ํด 21x21 ๋๋ 11x11์ด๋ค.
๋ง์ง๋ง Section์ ์คํ์ ๊ธฐ๋ฐ์ผ๋ก, ์ฐ๋ฆฌ๋ 0.9์ keep_prob๋ฅผ ์ฌ์ฉํ๊ณ ๋ง์ง๋ง ํน์ง๋งต์ width์ธ block_size = 11์ ์ค์ ํ๋ค.
DropBlock์ AmoebaNet-B์ top-1 accuracy๋ฅผ 82.25%์์ 82.52%๋ก ํฅ์์ํจ๋ค(ํ 2).
4.2 Experimental Analysis
DropBlock์ ๋๋กญ์์์ ๋นํด ImageNet classification ์ ํ๋๋ฅผ ํฅ์์ํค๋ ๊ฐ๋ ฅํ ๊ฒฝํ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค.์ฐ๋ฆฌ๋ conv.layer์ ์ธ์ ์์ญ์ด ๊ฐํ๊ฒ ์๊ด๋์ด ์๊ธฐ ๋๋ฌธ์ Dropout์ด ์ถฉ๋ถํ์ง ์๋ค๊ณ ๊ฐ์ ํ๋ค.
unit์ ์์๋ก ๋จ์ด๋จ๋ ค๋ ์ธ์ unit์ ํตํด ์ ๋ณด๊ฐ ํ๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.์ด Section์์๋ DropBlock์ด semantic์ ๋ณด๋ฅผ ์ญ์ ํ๋ ๋ฐ ๋ ํจ๊ณผ์ ์ด๋ผ๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ๋ถ์์ ์ํํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก, DropBlock์ ์ํด ๊ท์ ํ๋ ๋ชจ๋ธ์ Dropout์ ์ํด ๊ท์ ํ๋ ๋ชจ๋ธ์ ๋นํด ๋ ๊ฐ๋ ฅํ๋ค.
์ฐ๋ฆฌ๋ ์ถ๋ก ์ค, block_size๊ฐ 1๊ณผ 7์ธ DropBlock์ ์ ์ฉํ๊ณ ์ฑ๋ฅ์ ์ฐจ์ด๋ฅผ ๊ด์ฐฐํ์ฌ ๋ฌธ์ ๋ฅผ ์ฐ๊ตฌํ๋ค.
• DropBlock drops more semantic information
๋จผ์ ๊ท์ ํ ์๋ ํ๋ จ๋ ๋ชจ๋ธ์ ๊ฐ์ ธ์์ block_size = 1 ๋ฐ block_size = 7์ ์ฌ์ฉํ์ฌ DropBlock์ผ๋ก ํ ์คํธํ๋ค.
๊ทธ๋ฆผ 5์ ๋ น์ ๊ณก์ ์ ์ถ๋ก ์ค์ keep_prob๊ฐ ๊ฐ์ํจ์ ๋ฐ๋ผ validation accuracy๊ฐ ๋น ๋ฅด๊ฒ ๊ฐ์ํจ์ ๋ณด์ฌ์ค๋ค.์ด๊ฒ์ DropBlock์ด semantic์ ๋ณด๋ฅผ ์ ๊ฑฐํ๊ณ ๋ถ๋ฅ๋ฅผ ๋ ์ด๋ ต๊ฒ ํ๋ค๋ ๊ฒ์ ์์ฌํ๋ค.
์ ํ๋๋ DropBlock์ด dropout๋ณด๋ค semantic์ ๋ณด๋ฅผ ์ ๊ฑฐํ๋ ๋ฐ ๋ ํจ๊ณผ์ ์ด๋ผ๋ ๊ฒ์ ์์ฌํ๋ block_size = 7๊ณผ ๋น๊ตํ์ฌ block_size = 1์ ๋ํด keep_prob๊ฐ ๊ฐ์ํ ์๋ก ๋ ๋น ๋ฅด๊ฒ ๋จ์ด์ง๋ค.
• Model trained with DropBlock is more robust๋ค์์ผ๋ก ์ฐ๋ฆฌ๋ ๋ ๋ง์ ์๋ฏธ ์ ๋ณด๋ฅผ ์ ๊ฑฐํ๋ ํฐ ๋ธ๋ก ํฌ๊ธฐ๋ก ํ๋ จ๋ ๋ชจ๋ธ์ด ๋ ๊ฐ๋ ฅํ ์ ๊ทํ๋ฅผ ์ด๋ํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
์ฐ๋ฆฌ๋ ์ถ๋ก ์ค์ block_size = 7๊ณผ ์ ์ฉ๋ block_size = 1๋ก ํ๋ จ๋ ๋ชจ๋ธ์ ์ทจํจ์ผ๋ก์จ ๊ทธ ์ฌ์ค์ ์ ์ฆํ๊ณ ๊ทธ ๋ฐ๋๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
๊ทธ๋ฆผ 5์์ block_size = 1๊ณผ block_size = 7๋ก ํ๋ จ๋ ๋ชจ๋ธ์ ๋ชจ๋ ์ถ๋ก ์ค์ block_size = 1์ด ์ ์ฉ๋ ์ํ์์ ๊ฒฌ๊ณ ํ๋ค. ๊ทธ๋ฌ๋ block_size = 1๋ก ํ๋ จ๋ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์ถ๋ก ์ค์ block_size = 7์ ์ ์ฉํ ๋ keep_prob๊ฐ ๊ฐ์ํจ์ ๋ฐ๋ผ ๋ ๋น ๋ฅด๊ฒ ๊ฐ์ํ๋ค.
๊ฒฐ๊ณผ๋ block_size = 7์ด ๋ ๊ฐ๋ ฅํ๊ณ block_size = 1์ ์ด์ ์ด ์์ง๋ง ๊ทธ ๋ฐ๋๋ ์๋์ ์์ฌํ๋ค.
• DropBlock learns spatially distributed representations
DropBlock์ผ๋ก ํ๋ จ๋ ๋ชจ๋ธ์ DropBlock์ด ์ธ์ ํ ์์ญ์์ semantic์ ๋ณด๋ฅผ ์ ๊ฑฐํ๋ ๋ฐ ํจ๊ณผ์ ์ด๋ค.
๋ฐ๋ผ์ ๊ณต๊ฐ์ ์ผ๋ก ๋ถ์ฐ๋ ํํ์ ํ์ตํด์ผ ํ๋ค๊ณ ๊ฐ์ ํ๋ค.DropBlock์ ์ํด ๊ท์ ํ๋ ๋ชจ๋ธ์ ํ๋์ ๋ ์์ ์์ญ์๋ง ์ด์ ์ ๋ง์ถ๋ ๋์ ์ฌ๋ฌ ๋ ์์ ์์ญ์ ํ์ตํด์ผ ํ๋ค.
์ฐ๋ฆฌ๋ ImageNet validation set์์ ResNet-50์ conv5_3 ํด๋์ค activation์ ์๊ฐํํ๊ธฐ ์ํด ํด๋์ค ํ์ฑํ ๋งต(CAM)์ ์ฌ์ฉํ๋ค.
๊ทธ๋ฆผ 6์ block_size = 1 ๋ฐ block_size = 7์ธ DropBlock์ผ๋ก ํ๋ จ๋ ๊ธฐ์กด๋ชจ๋ธ๊ณผ ๋ชจ๋ธ์ ํด๋์ค activation์ ๋ณด์ฌ์ค๋ค.์ผ๋ฐ์ ์ผ๋ก DropBlock์ผ๋ก ํ๋ จ๋ ๋ชจ๋ธ์ ์ฌ๋ฌ ์์ญ์์ ๋์ ํด๋์ค activation์ ์ ๋ํ๋ ๊ณต๊ฐ์ ์ผ๋ก ๋ถ์ฐ๋ ํํ์ ํ์ตํ๋ ๋ฐ๋ฉด, ๊ท์ ํ๊ฐ ์๋ ๋ชจ๋ธ์ ํ๋ ๋๋ ๋งค์ฐ์ ์ ์์ ์์ญ์ ์ด์ ์ ๋ง์ถ๋ ๊ฒฝํฅ์ด ์๋ค.
4.3 Object Detection in COCO
DropBlock์ CNN์ ์ํ ์ผ๋ฐ์ ์ธ regularization ๋ชจ๋์ด๋ค.
์ด Section์์๋ DropBlock์ด COCO dataset์ training object detector์๋ ์ ์ฉ๋ ์ ์์์ ๋ณด์ฌ์ค๋ค.
์ฐ๋ฆฌ๋ ์คํ์ RetinaNet์ ์ฌ์ฉํ๋ฉฐ, image์ ๋ํ single label์ ์์ธกํ๋ image classification๊ณผ ๋ฌ๋ฆฌ, RetinaNet์ multi-scale Feature Pyramid network(FPN)์์ convolution์ผ๋ก ์คํ๋์ด ๋ค์ํ ์ค์ผ์ผ๊ณผ ์์น์์ object๋ฅผ localizatoinํ๊ณ ๋ถ๋ฅํ๋ค. [Focal loss for dense object detection]์ ๋ชจ๋ธ ์ํคํ ์ฒ์ anchor ์ ์๋ฅผ ๋ฐ๋ผ FPN๊ณผ classifier/regressor์ branch๋ค์ ๊ตฌ์ถํ๋ค.
• Where to apply DropBlock to RetinaNet model
RetinaNet ๋ชจ๋ธ์ ResNet-FPN์ ๋ฐฑ๋ณธ ๋ชจ๋ธ๋ก ์ฌ์ฉํ๋ค.
๋จ์์ฑ์ ์ํด ResNet-FPN์ ResNet์ DropBlock์ ์ ์ฉํ๊ณ ImageNet classification ํ๋ จ์ ๋ํด ์ฐพ์ ์ต์์ keep_prob๋ฅผ ์ฌ์ฉํ๋ค.
DropBlock์ ์ง์ญ ์ ์(region proposal)์ ํน์ง์ ๊ตฌ์กฐํ๋ ํจํด์ dropํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ์ต๊ทผ ์ฐ๊ตฌ[A-Fast-RCNN]๊ณผ๋ ๋ค๋ฅด๋ค.
• Training object detector from random initialization
๋ฌด์์ ์ด๊ธฐํ์์ object detector๋ฅผ ํ๋ จํ๋ ๊ฒ์ ์ด๋ ค์ด ์์ ์ผ๋ก ๊ฐ์ฃผ๋์ด ์๋ค.
์ต๊ทผ, ๋ช๋ช ๋ ผ๋ฌธ๋ค์ ์๋ก์ด ๋ชจ๋ธ ์ํคํ ์ฒ, ํฐ mini-batch size ๋ฐ ๋ ๋์ normalization layer๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ์๋ํ๋ค.
์ฐ๋ฆฌ์ ์คํ์์, ์ฐ๋ฆฌ๋ ๋ชจ๋ธ์ ๊ท์ ํ ๊ด์ ์์ ๋ฌธ์ ๋ฅผ ์ดํด๋ณธ๋ค.
training image classification model๊ณผ ๋์ผํ hyper parameter์ธ keep_prob = 0.9๋ก DropBlock์ ์๋ํ๊ณ ๋ค๋ฅธ block_size๋ก ์คํํ๋ค.
ํ 3์์ ๋ฌด์์ ์ด๊ธฐํ์์ ํ๋ จ๋ ๋ชจ๋ธ์ด ImageNet์ผ๋ก ์ฌ์ ํ๋ จ๋ ๋ชจ๋ธ์ ๋ฅ๊ฐํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
DropBlock์ ์ถ๊ฐํ๋ฉด 1.6%์ AP๊ฐ ์ถ๊ฐ๋๋๋ฐ, ๊ทธ ๊ฒฐ๊ณผ๋ ๋ชจ๋ธ ๊ท์ ํ๊ฐ Object Detector๋ฅผ ์ฒ์๋ถํฐ ํ๋ จ์ํค๋ ์ค์ํ ์์์ด๋ฉฐ DropBlock์ ๋ฌผ์ฒด ๊ฐ์ง๋ฅผ ์ํ ํจ๊ณผ์ ์ธ ๊ท์ ํ ์ ๊ทผ๋ฒ์์ ์์ฌํ๋ค.
• Implementation details
์ฐ๋ฆฌ๋ ์คํ์ ์ํด RetinaNet3์ ์คํ ์์ค ๊ตฌํ์ ์ฌ์ฉํ๋ค.
๋ชจ๋ธ์ 64๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ํ batch๋์ ์ฒ๋ฆฌํ์ฌ TPU์ ๋ํด ํ๋ จ๋์๋ค.
๊ต์ก ์ค์ multi-scale jittering์ ์ ์ฉํด scale๊ฐ์ image sizewhwjd gn ekdma image๋ฅผ ์ต๋์ฐจ์ 640์ผ๋ก padding/crop์ ์งํ.
ํ ์คํธํ๋ ๋์ ์ต๋ ์ฐจ์๋ 640์ singel-scale image๋ง ์ฌ์ฉ๋์๋ค.
Batch Normalization์ธต์ classifier/regressor branch๋ฅผ ํฌํจํ ๋ชจ๋ conv.layer ์ดํ์ ์ ์ฉ๋์๋ค.
๋ชจ๋ธ์ 150 epoch(280k training step)์ ์ฌ์ฉํด ํ๋ จ๋์๋ค.
์ด๊ธฐ ํ์ต๋ฅ 0.08์ ์ฒ์ 120 epoch์ ์ ์ฉ๋์๊ณ 120 epoch๊ณผ 140epoch์ 0.1์ฉ ๊ฐ์ํ๋ค.
ImageNet ์ด๊ธฐํ๋ฅผ ์ฌ์ฉํ ๋ชจ๋ธ์ 16 ๋ฐ 22 epoch์์ learning decay์ ํจ๊ป 28 epoch์ ๋ํด ํ๋ จ๋์๋ค.
์ด์ ์์ค์๋ α = 0.25์ ๐พ = 1.5๋ฅผ ์ฌ์ฉํ๋ค.
weight_decay = 0.0001. &. 0.9์ momentum = 0.9
์ด ๋ชจ๋ธ์ COCO train 2017์์ ํ๋ จ๋์๊ณ COCO val 2017์์ ํ๊ฐ๋์๋ค.
4.4 Semantic Segmentation in PASCAL VOC
- ์ฐ๋ฆฌ๋ DropBlock์ด semantic segmentation๋ชจ๋ธ๋ ๊ฐ์ ํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
PASCAL VOC 2012 ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์คํ์ ์ฌ์ฉํ๊ณ ์ผ๋ฐ์ ์ธ ๊ดํ์ ๋ฐ๋ผ ์ฆ๊ฐ๋ 10,582๊ฐ์ training์ด๋ฏธ์ง๋ก ํ๋ จํ๊ณ 1,449๊ฐ์ testset ์ด๋ฏธ์ง์ ๋ํ mIOU๋ฅผ ๋ณด๊ณ ํ๋ค.
์ฐ๋ฆฌ๋ semantic segmentation๋ฅผ ์ํด ์คํ ์์ค RetinaNet ๊ตฌํ์ ์ฑํํ๋ค.
๊ตฌํ์ ResNet-FPN backborn ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ multi-scale feature๋ฅผ ์ถ์ถํ๊ณ segmentation์ ์์ธกํ๊ธฐ ์ํด Fully-Convolution Network๋ฅผ ์๋จ์ ๋ถ์ฐฉํ๋ค.
์ฐ๋ฆฌ๋ ํ๋ จ์ ์ํด ์คํ ์์ค ์ฝ๋์ default hyper-parameter๋ฅผ ์ฌ์ฉํ๋ค.
- Object Detection์คํ์ ์ด์ด random initialization์์ ํ๋ จ ๋ชจ๋ธ์ ๋ํ DropBlock์ ํจ๊ณผ๋ฅผ ์ฐ๊ตฌํ๋ค.
์ฐ๋ฆฌ๋ 45๊ฐ์ epoch์ ๋ํด pre-trained ImageNet ๋ชจ๋ธ๋ก ์์ํ ๋ชจ๋ธ๊ณผ 500๊ฐ์ epoch์ ๋ํด ๋ฌด์์ ์ด๊ธฐํ๋ ๋ชจ๋ธ์ ํ๋ จ์์ผฐ๋ค.
ResNet-FPN backborn ๋ชจ๋ธ๊ณผ Fully-Convolution Network์ DropBlock์ ์ ์ฉํ๋ ์คํ์ ์ํํ์ผ๋ฉฐ Fully-Convolution Network์ DropBlock์ ์ ์ฉํ๋ ๊ฒ์ด ๋ ํจ๊ณผ์ ์ด๋ผ๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค.
DropBlock์ ์ ์ฉํ๋ฉด ์ฒ์๋ถํฐ ๊ต์ก ๋ชจ๋ธ์ ๋ํ mIOU๊ฐ ํฌ๊ฒ ํฅ์๋๊ณ ImageNet ์ฌ์ ๊ต์ก ๋ชจ๋ธ๊ณผ ๋ฌด์์๋ก ์ด๊ธฐํ๋ ๋ชจ๋ธ์ ๊ต์ก ๊ฐ ์ฑ๋ฅ ๊ฒฉ์ฐจ๊ฐ ์ค์ด๋ ๋ค.
5. Discussion
- ์ด ๋ ผ๋ฌธ์์, CNN์ training regularize๊ธฐ๋ฒ์ธ DropBlock์ ์๊ฐํ๋ค.
DropBlock์ ๊ณต๊ฐ์ ์ผ๋ก ์ฐ๊ด๋ ์ ๋ณด๋ฅผ dropํ๋ ๊ตฌ์กฐํ๋ dropout๊ธฐ๋ฒ์ด๋ค.
ImageNet, COCO detection์ dropout๊ณผ DropBlock์ ๋น๊ตํจ์ผ๋ก์จ ๋์ฑ ํจ๊ณผ์ ์ธ ๊ท์ ํ๊ธฐ๋ฒ์์ ์ฆ๋ช ํ์๋ค.
DropBlock์ ๊ด๋ฒ์ํ ์คํ ์ค์ ์์ ์ง์์ ์ผ๋ก ๋๋กญ์์์ ๋ฅ๊ฐํ๋ค.
์ฐ๋ฆฌ๋ DropBlock์ผ๋ก ํ๋ จ๋ ๋ชจ๋ธ์ด ๋ ๊ฐ๋ ฅํ๊ณ ๋๋กญ์์์ผ๋ก ํ๋ จ๋ ๋ชจ๋ธ์ ์ด์ ์ ๊ฐ์ง๊ณ ์์์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ๋ถ์์ ์ํํ์์ผ๋ฉฐ, class activation mapping์ ๋ชจ๋ธ์ด DropBlock์ ์ํด ์ ๊ทํ๋ ๋ ๋ง์ ๊ณต๊ฐ์ ์ผ๋ก ๋ถ์ฐ๋ ํํ์ ํ์ตํ ์ ์์์ ์์ฌํ๋ค.
- ์ฐ๋ฆฌ์ ์คํ์ conv.layer์ธ์ "skip-connection"์ DropBlock์ ์ ์ฉํ๋ฉด ์ ํ๋๊ฐ ์ฆ๊ฐํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
๋ํ ํ๋ จ ์ค์ ์ญ์ ๋ unit์ ์๋ฅผ ์ ์ง์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ฉด ์ ํ๋๊ฐ ํฅ์๋๊ณ hyper-parameter์ ํ์ ๋์ฑ ๊ฐ๋ ฅํด์ง๋ค.
๐ง ๋ ผ๋ฌธ ๊ฐ์_์ค์๊ฐ๋ ํต์ฌ ์์ฝ
"DropBlock: A regularization method for convolutional networks"
[ํต์ฌ ๊ฐ๋ ]
- Dropout์ ๋ฅ๋ฌ๋์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ regularization๋ฐฉ๋ฒ์ด์ง๋ง ๊ตฌ์กฐ์ ํน์ฑ์ผ๋ก ์ธํด CNN์์๋ ์ ๋๋ก ์๋ํ์ง ์์ ์ ์๋ค.
- DropBlock์ CNN์ฉ์ผ๋ก ํน๋ณํ ์ค๊ณ๋ ์ ๊ทํ ๋ฐฉ๋ฒ์ด๋ค.
๊ฐ๋ณ ๋จ์ ๋์ ๊ต์ก ์ค์ ๊ธฐ๋ฅ ๋งต์ ์ ์ฒด ์ฐ์ ๋ธ๋ก์ ๋ฌด์์๋ก ์ญ์ ํ์ฌ ์๋ํฉ๋๋ค.- DropBlock ๋ฐฉ๋ฒ์ ๊ฐ๋ณ ํฝ์ ๋์ ์ธ์ ํ ๋ธ๋ก์ ๋๋กญ(contiguous block drop)ํ๋ ๊ณต๊ฐ์ ๋๋กญ์์ ๋ฐฉ๋ฒ์ ์ผ๋ฐํ๋ก ๋ณผ ์ ์๋ค.
- DropBlock์ CIFAR-10, CIFAR-100 ๋ฐ ImageNet์ ํฌํจํ ์ฌ๋ฌ dataset์์ CNN์ ์ผ๋ฐํ ์ฑ๋ฅ์ ํฅ์์์ผฐ๋ค.
- DropBlock์ ๊ธฐ์กด CNN๊ตฌ์กฐ์ ์ฝ๊ฒ ํตํฉ๋ ์ ์์ผ๋ฉฐ "weight_decay" ๋ฐ "data augmentation"๊ฐ์ ๋ค๋ฅธ "regularization"๋ฐฉ๋ฒ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
- ๋ํ ํ์ต ์ค ์ ๊ฒฝ๋ง์์ ์ฐ๊ฒฐ์ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ๋ฌด์์๋ก dropํ๋ ์ ์ฌํ ์ ๊ทํ ๋ฐฉ๋ฒ์ธ "drop-path"์ ๊ฐ๋ ์ ๋์ ํ๋ค.
์ ๋ฐ์ ์ผ๋ก DropBlock ๋ฐฉ๋ฒ์ CNN์ ์ํด ํน๋ณํ ์ค๊ณ๋ ๊ฐ๋ ฅํ๊ณ ํจ๊ณผ์ ์ธ ์ ๊ทํ ๊ธฐ์ ๋ก ์ฌ๋ฌ ๋ฒค์น๋งํฌdataset์์ ๋คํธ์ํฌ์ ์ผ๋ฐํ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ผ๋ฉฐ ๊ธฐ์กด ์ํคํ ์ฒ์ ์ฝ๊ฒ ํตํฉํ ์ ์๋ค.
๐ง ๋ ผ๋ฌธ์ ์ฝ๊ณ Architecture ์์ฑ (with tensorflow)
import tensorflow as tf
def drop_block(x, block_size, keep_prob, is_training):
def dropblock(inputs):
input_shape = tf.shape(inputs)
_, height, width, channels = inputs.get_shape().as_list()
# Calculate the gamma value
gamma = (1.0 - keep_prob) * tf.cast(tf.size(inputs), tf.float32) / (
block_size ** 2 * (height - block_size + 1) * (width - block_size + 1))
# Create a random mask with block_size * block_size blocks
mask = tf.random.uniform((input_shape[0], height - block_size + 1, width - block_size + 1, channels)) < gamma
# Calculate the block mask and apply it to the input
block_mask = tf.reduce_max(tf.cast(mask, inputs.dtype), axis=(1, 2, 3), keepdims=True)
block_mask = tf.pad(block_mask, [[0, 0], [block_size // 2, block_size // 2], [block_size // 2, block_size // 2], [0, 0]])
block_mask = tf.image.extract_patches(block_mask, sizes=[1, block_size, block_size, 1], strides=[1, 1, 1, 1], rates=[1, 1, 1, 1], padding='VALID')
block_mask = 1 - tf.reshape(block_mask, input_shape)
inputs = inputs * block_mask / tf.reduce_mean(block_mask)
return inputs
return tf.keras.layers.Lambda(dropblock, arguments={'is_training': is_training})(x)