๐Paper Review
[paper reivew] ZFNet : Visualizing and Understanding Convolutional Networks
๊ธฐ์กด์ฐ๊ตฌ(AlexNet)์ ๋ค๋ฅธ ์ IntroductionApproachTraining detailsConvnet visualization4.1 architecture selection4.2 Occlusion Sensitivity
- CNN์์ ์ฌ๋ฌ ์ธต์ ์์ ๊ฒฝ์ฐ ์ด๋ค ์๋ฆฌ๋ก ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋์ง, ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ฅผ ์ด๋ป๊ฒ ์์ ํด์ผํ๋์ง, ๋ง๋ค์ด๋ธ ๊ตฌ์กฐ๊ฐ ์ต์ ์ ๊ตฌ์กฐ์ธ์ง ํ๋จํ๋๊ฒ์ ์ด๋ ค์
โ Alexnet์ ๊ฒฝ์ฐ 2๊ฐ์ GPU๋ก ์ผ์ฃผ์ผ ์ด์ ํ์ต์ ํ๋๋ฐ, ํ์ดํผ ํ๋ผ๋ฏธํฐ ํ๋์ ํ ๋๋ง๋ค ์ผ์ฃผ์ผ์ฉ ๊ธฐ๋ค๋ฆด ์ ์์
โ CNN์ ๋ณด๋ค ์ ์ดํดํ ์ ์๋ ์๋จ์ด ํ์ํ๊ณ , ์ด๋ฅผ
Visualizing ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ ํด๊ฒฐํ๋ คํจย
- CNN์ ๋์์ ์ ์ดํดํ๋ ค๋ฉด ๋ ์ด์ด ์ค๊ฐ์ค๊ฐ์์ feature์ activity๊ฐ ์ด๋ค์ง ์์์ผํจ.
โ ํ์ง๋ง ์ค๊ฐ layer์ ๋์์ ๋ณด๊ธฐ๋ ์ด๋ ค์
โ ๊ทธ๋ฌ๋ฉด ์ค๊ฐ layer์์ ์์ฑ๋๋ ๊ฐ๋ค์ ๋ค์ input image size๋ก mapping ์ํค๋ฉด ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ง ์์๊น?
โ ์ค๊ฐ layer์์ CNN ๊ณผ์ ์ ์ญ์ผ๋ก ๊ณ์ฐํ๋ฉด ์ค๊ฐ ๊ณ์ธต์ ๊ฒฐ๊ณผ๊ฐ์ ๋์ผ๋ก ํ์ธํ ์ ์์ ๊ฒ.
ย
๊ธฐ์กด์ฐ๊ตฌ(AlexNet)์ ๋ค๋ฅธ ์
- 1๊ฐ์ GPU๋ง์ผ๋ก ํ์ต : 2๊ฐ์ GPU๋ฅผ ์ผ๋ถ ์ธต์์๋ inter gpu ์ฐ์ฐ์, ๋๋จธ์ง ์ผ๋ถ์์๋ intra gpu ์ฐ์ฐ์ ์์ผฐ๋ Alexnet๊ณผ๋ ๋ค๋ฅด๊ฒ ํ๊ฐ์ gpu๋ง๋๋ก ํ์ต์ ์ทจํจ
- ์ข ๋ ์์ size์ kernel filter์ stride ์ฌ์ฉ
ย
Introduction
- CNN๊ณผ ๊ฐ์ ๋ชจ๋ธ์ ๋ฑ์ฅ
- ๋ง์ ๋ฐ์ดํฐ
- Powerful GPU
- Dropout ๊ณผ ๊ฐ์ Regularization ๊ธฐ๋ฒ์ ๋ฑ์ฅ
์ผ๋ก ์ธํด Alexnet๊ณผ ๊ฐ์ ๋ชจ๋ธ์ด ์ด๋ฏธ์ง ๋ถ๋ฅ task์์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ฌ์ฑํ์ง๋ง, ์ด๋ป๊ฒ ์ข์ ์ฑ๋ฅ์ ๋ฌ์ฑํ๊ฒ ๋์๋์ง ๋ช
ํํ ์์ง ๋ชปํจ
- ๊ทธ๋์ ๋ณธ ๋ ผ๋ฌธ์์๋ Deconvolutional Network(Deconvnet)์ ์ ์ํจ, ์ด๋ฅผ ํตํด alexnet์ ์ฑ๋ฅ์ ํฅ์์ํจ ๋ชจ๋ธ์ด ZFNet
- ๊ธฐ์กด ๋ฐฉ๋ฒ์์๋ ์ฒซ๋ฒ์งธ ๋ ์ด์ด์ Feature map ์ ๋๋ง ์๊ฐํ ํ๋๋ฐ ๊ทธ์ณค๊ธฐ ๋๋ฌธ์ ์ธต์ด ๊น์ด์ง ์๋ก ์ด๋ป๊ฒ ๋์ํ๋์ง๋ฅผ ๋ช ํํ๊ฒ ๋ณผ ์ ์์์
โ ์ด ๋
ผ๋ฌธ์์ ์ฌ์ฉ๋ Deconvnet์ ํตํด ๊น์ layer์ธต์์ ๋ง๋ค์ด์ง Feature map ๋ํ ์๊ฐํ๊ฐ ๊ฐ๋ฅํจ์ ์ ์ํจ
โ feature map์ ๋ง๋ค์ด๋ด๋ patter์ด ๋ฌด์์ธ์ด ์๋ ค์ฃผ๋ filter๋ฅผ ์๊ฐํํจ
ย
Approach
- ์ผ๋ฐ์ ์ธ fully supervised convnet(AlexNet) ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํจ
- ์ด์ ๋ ์ด์ด์ output์ ๋ฐ์ convolution
- ReLU ํต๊ณผ
- max pooling & Local normalization
- cross entropy ์ฌ์ฉ, SGD optimizer๋ฅผ ์ฌ์ฉํ๊ณ backpropagtion์ผ๋ก parameter update
โ RGB 2์ฐจ์ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์์ ์ด๋ class์ ์ํ๋์ง ํ๋ฅ ๊ฐ์ ๋ณด์ฌ์ฃผ๋ ๋ชจ๋ธ
โ ๋ฐ๋ณต๋๋ 1~3 ๊ณผ์ ์ activities๋ฅผ ๋ค์๊ธ pixel space๋ก ํํํ๊ณ ์ ํ์๊ณ , ์ด๋ฅผ ์ํด deconvolutional network๋ฅผ ์ฌ์ฉํจ.
โ deconvnet์ filtering, pooling ๊ณผ์ ์ ๋์ผํ๊ฒ ์ํ, ํ์ง๋ง ํ์ต์ด ์ด๋ฃจ์ด์ง๋๊ฒ์ ์๋
โ alexnet์ ๊ณผ์ ์ ํ๊ฐํ๊ธฐ ์ํด์, ๊ฐ conv layer๋ฅผ ํต๊ณผํ๋ฉฐ ์๊ธด activation์ ์ ์ธํ ๋๋จธ์ง activation์ 0์ผ๋ก ๋ง๋ค๊ณ , ๋ง๋ค์ด์ง featuremap์ deconvnet์ input์ผ๋ก ๋ง๋ค์ด๋
โ convnet์ ๊ณผ์ ์ ์ญ์์ผ๋ก ๋ฐ๋ณตํ์ฌ unpool, rectify, filter ์์ผ๋ก ์ํํ๋ฉฐ reconstruction ์ค์

- Unpooling
- map pooling ๋ ๊ฐ์ ๊ฑฐ๊พธ๋ก ์ป์ด๋ด๋๊ฒ์ ๋ถ๊ฐ๋ฅ(max ๊ฐ ์ ์ธํ๊ณ ๋ ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ)
- ๊ทธ๋์ 2*2 ์ ๊ฒฝ์ฐ max๊ฐ์ ์์น(1,2)์ ๊ฐ์ด ์ ์ฅํ์ฌ unpooling์ ํ์ฉํจ
โ
Switches๋ผ๋ ํํ์ variable๋ก ์ด๋ฅผ ์ ์ฅโ ๋จ์ ์ผ๋ก๋ max(๊ฐํ์๊ทน)์ ์ ์ธํ ์ฝํ ์๊ทน์ ์ํฅ๋ ฅ์ ์ ์ ์์
ย
- Rectification
- ์์ unpooling๋ ๊ฐ์ ๋ค์ ํ๋ฒ Relu ์์ผ์ค
โ ์ด์ฐจํผ max ๊ฐ์ ๊บผ๋ด์ค๋๋ฐ ์ relu๋ฅผ ์์์ฃผ๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์โฆ
ย
- Filtering
- convnet์ ์ฌ์ฉ๋ filter๋ฅผ transpose ์์ผ ์ฌ์ฉํจ
- ์๋์ convolutional์ด stride๋ฅผ ๊ฐ๊ณ input image๋ฅผ ๊ณ์ฐํ๋ ์์ ๋ณด๊ฒ ๋๋ฉด ์๋์ ๊ฐ์
- deconvolutional์ ์์ ์ด๋ฏธ์ง๋ฅผ ์ญ์์ผ๋ก ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์ sparse matrix c๋ฅผ transpose ์์ผ output๊ณผ ๊ณ์ฐ์ํค๊ณ , ์ญ์ผ๋ก input์ ์ป์ด๋ด๋ ๊ณผ์


ย
- ์ฃผ์ํ ์ , Deconv ๊ณผ์ ์ ํ์ต์ด ์๋๋ผ ๋จ์ ๊ณ์ฐ์ผ๋ก strongํ activation๋ง ๋ณต์ํด๋ด๋ ๊ณผ์ ์ผ ๋ฟ์
โ ํ๋์ conv layer์ ๊ฑฐ์น๊ณ ์์ฑ๋ featur map์ด kerner์์ ์ด๋ค๋ถ๋ถ์ด ์๊ทน๋์๋์ง๋ฅผ ๋๋ต์ ์ผ๋ก ํ์ธํ ๋ฟ์, 100% ๋ณต์๋๋๊ฒ์ ์ ๋๋ก X
ย
Training details
- ๋๋ถ๋ถ์ ๊ณผ์ ์ alexnet์ ๋ฐ๋ผํ์ง๋ง, layer 3,4,5 ์์ 2 gpu๋ฅผ ์ด์ฉํ ์ฐ์ฐ ๋ถ๋ถ์ ๋ฌ๋ผ์ง(ZFnet์ 1 gpu๋ก ๊ณ์ฐํ๊ธฐ ๋๋ฌธ)
ย
- ImageNet 2012 training set์ผ๋ก ํ์ต๋จ
โ 130๋ง๊ฐ์ ์ด๋ฏธ์ง, 1000๊ฐ์ classes
ย
- 256 size๋ก resize, ๋น์จ์ด ๋ค๋ฅธ ์ฌ์ง์ 256 * 256 ์ด ๋๋๋ก center crop
โ ์ดํ 224*224 size๊ฐ ๋๋๋ก center + corner crop & horizontal flip
ย
- 128 ๊ฐ์ minibatch ๋ฅผ ์ด์ฉํ SGD optimizer ์ฌ์ฉ
ย
- ํ์ต๋ฅ ์ 0.01, momentum 0.9, 0.5 dropout ratio, 0.5 FCN ์ฌ์ฉ
โ ์ด๊น๊ฐ์ 0.01, bias 0
ย
- GTX 580 GPU 1๊ฐ๋ฅผ ๊ฐ์ง๊ณ 12์ผ๊ฐ ํ์ต, 70 epoches ์์ ์ค์ง
ย
Convnet visualization

ย
- layer 1,2 ๋ ์ฃผ๋ก Edge์ color ๋ฑ ๋จ์ํ ์ ๋ณด layer 3๋ ๋ณด๋ค ๋ณต์กํ texture layer 4๋ class๋ณ๋ก ๊ตฌ์ฒด์ ์ธ ํน์ง์ ํด๋นํ๋ feature๋ฅผ(์ฌ๋ฌผ์ด๋ ๊ฐ์ฒด์ ์ผ๋ถ๋ถ) layer 5๋ ์ ์ฒด์ ์ผ๋ก pose variation ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค(์์น๋ ์์ธ ๋ณํ ๋ฑ์ด ํฌํจ๋ ์ฌ์ง)
- ํ์ต ๊ฒฐ๊ณผ edge์ ๊ฐ์ low-level feature๋ ํ์ต์ด ์์๋๊ณ ์ผ๋ง๋์ง ์์ ์๊ฐ์ ์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์์ง๋ง, layer 4๋ 5์ ๊ฐ์ high-level feature๋ ๊ฑฐ์ 4~50 epoch์ด ์ง๋ ๋ค์์์ผ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์์
โ ๋ชจ๋ธ์ด ๋ชจ๋ layer๊ฐ ์ ๋๋ก๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ค๋ฉด ์ถฉ๋ถํ ํ์ต์ด ์ด๋ค์ ธ์ผํจ์ ์ ์ ์์
ย

- ๊ฒฐ๊ณผ์์ CNN์ ํน์ง์ค ํ๋์ธ invariance ํ ํน์ฑ์ ํ์ธํ ์ ์์
โ ์ฌ์ง์ vertical translation, scale ํ๋, rotation์ ๊ฐํจ
โ 1์ด์ ์
๋ ฅ ์ด๋ฏธ์ง, 2์ด์ ๋ณํ ์ ๋, 3์ด์ 7๋ฒ์งธ ๋ ์ด์ด์ ๋ฐ์, 4์ด์ output์ true label ํ๋ฅ
โ ์๋์ ์ผ๋ก rotation ๋ณํ์ ๋ํด ํฌ๊ฒ ์ํฅ์ ๋ฐ๋๋ค๋๊ฒ์ ์ ์ ์์
ย
4.1 architecture selection
- alexnet์ 1, 2๋ฒ layer๋ฅผ ์๊ฐํํ์ ๋ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํจ
โ 1๋ฒ layer๋ extremly high & low ํ frequency information์ ๊ฐ์ง๊ณ ์์ด mid frequency๋ฅผ ์ ๊ฐ์ง ๋ชปํจ(dead feature ๋ฐ์)
โ ์ด์ด์ 2๋ฒ ๋ ์ด์ด๋ ๋๋ฌด ํฐ stride๋ฅผ ์ง๋
์
aliasingํ artifacts๊ฐ ์๊นโ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด kernel_size๋ฅผ 11์์ 7๋ก ์ค์ด๊ณ , stride๋ฅผ 4์์ 2๋ก ์ค์
โ ์ด๋ฅผ ํตํด ์ค์ ๋ก classification ์ฑ๋ฅ์ด ์์นํ๊ธฐ๋ ํจ

ย
4.2 Occlusion Sensitivity

- ๋ชจ๋ธ์ classification ๊ณผ์ ์ ๋ณด๋ฉด์ ๋๋ ์๊ฐ์ ๋ชจ๋ธ์ด ์ค์ ๋ก ์ด๋ฏธ์ง ์ ๋ฌผ์ฒด์ ์์น๋ฅผ ํ์ ํ๋ ๊ฒ์ธ์ง, ์ฃผ๋ณ์ ์ด๋ฏธ์ง๋ฅผ ๋ณด๊ณ context ์ ๋ณด๋ฅผ ํตํด ํ์ ํ๋๊ฐ? ํ๋ ๊ฒ
โ ๊ทธ๋์ ๊ฐ์ฒด์ ์ผ๋ถ๋ถ๋ง์ ๊ฐ๋ ค๋ณด๊ณ ์ ๋ต์ ๋ง์ถฐ๋ณด๊ฒ ํ์ ๋, ์ ๋ต ํ๋ฅ ์ด ๊ฐ์ํ๋๊ฒ์ ํ์ธ
โ ๋ชจ๋ธ์ ๋ฌผ์ฒด์ ์์น์ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์ํ๊ณ ์๋ค๋ ๊ฒ์ด ๋ง๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ฆผ
โ ๊ทธ๋ฆฌ๊ณ ZFNet์ ํํฐ๋ฅผ ์๊ฐํํ๊ณ Alexnet์ ๊ตฌ์กฐ๋ฅผ ์ผ๋ถ ์์ ํ๊ฒ์ด ์๋ฏธ์๋ค๋๊ฒ์ ํ์ธํจ
ย

