๐ ๊ฐ์ ์ ๋ฆฌ
* Coursera ๊ฐ์ ์ค Andrew Ng ๊ต์๋์ Convolutional Neural Network ๊ฐ์๋ฅผ ๊ณต๋ถํ๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
* ์ด๋ฏธ์ง ์ถ์ฒ : Deeplearning.AI
1. Case Studies
Why look at case studies?
I learned about
์ง๋ ์๊ฐ์ conv layer, pooling layer, fc layer ์ ๋ํด ๋ฐฐ์ ๋๋ฐ, ์ด๋ป๊ฒ ์ด๊ฒ๋ค์ ์์์ผ ํจ๊ณผ์ ์ธ ๋คํธ์ํฌ ์ํคํ ์ณ๋ฅผ ๋ง๋ค ์ ์์๊น? ํ task์์ ์ ์๋ํ๋ ๋คํธ์ํฌ๋ ๋๋ถ๋ถ ๋ค๋ฅธ task์๋ ์ ์๋ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ ๋ฐํ๋ ์ฑ๋ฅ์ด ์ข์ ๋คํธ์ํฌ๋ค ๋ํ ๋ฆฌ์์น, ์ฝ๋ ๋ฑ์ ์ฝ์ผ๋ฉด ์ข๋ค.
Classic networks(LeNet-5, AlexNet, VGG), ResNet, Inception ์ ํตํด ์ด๋ป๊ฒ ํด์ผ effective convolutional network๋ฅผ ๋ง๋ค์ง์ ๋ํ ๋ ๋์ intuition์ ์ป์ ์ ์๋ค.
Classic Networks
โ LeNet-5
- ๋คํธ์ํฌ๊ฐ ๊น์ด์ง์๋ก(=์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ์๋ก) ์ฑ๋์๋ ๋์ด๋๋ ๋ฐ๋ฉด์ ๋์ด(n_h)์ ํญ(n_w)์ด ์ค์ด๋๋ ๊ฒฝํฅ์ ๊ฐ์ง๋ค.
- ํ layer์ conv layer, pooling alyer, ํ๋ ์ด์์ conv layer, pooling layer, fc layer, fc layer, output์ด๋ผ๋ ํจํด์ ๊ฐ๋๋ค.
- ์๋ ์ด๋ฏธ์ง์์ ๋นจ๊ฐ์์ผ๋ก ํ๊ธฐ๋ ๋ถ๋ถ์ ๋ ผ๋ฌธ์์ ์ ์๋์๋ ๋ถ๋ถ์ด์ง๋ง ํ์ฌ์๋ ์ฌ์ฉ๋์ง ์๋ ๋ถ๋ถ์ด๋ค. ๋น์์๋ ReLU๊ฐ ์๋ sigmoid์ tanh ํ์ฑํจ์๋ฅผ ์ฌ์ฉํ๊ณ , pooling layer ํ์ nonlinearity ํจ์(ํ์ฑํจ์)๋ฅผ ์ ์ฉํ์ง ์์๋ค. ๊ณผ๊ฑฐ์ computing ์ฑ๋ฅ์ด ์ง๊ธ๋งํผ ์ข์ง ์์๊ธฐ ๋๋ฌธ์ ํ๋์จ์ด์ ์ธ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํ ๋ค์ํ ๋ฐฉ์์ด ์ฌ์ฉ๋์๋๋ฐ ์ง๊ธ์ ์ฌ์ฉ๋์ง ์์ผ๋ ์ด ๋ถ๋ถ์ ๋ํด์๋ ์์ธํ๊ฒ ๋ชฐ๋ผ๋ ๋๋ค.
โ AlexNet
- ๋ ผ๋ฌธ์ ๋ณด๋ฉด 224×224×3 ์ input size๋ฅผ ๊ฐ๋๋ค๊ณ ํ์ง๋ง ์ค์ ๋ก ๋ค์ด๋ง๋ ํฌ๊ธฐ๋ 227×227×3 ์ด๋ค.
- LeNet๊ณผ ์ ์ฌํ์ง๋ง much bigger. LeNet์ ์ฝ 6๋ง๊ฐ(60k)์ ํ๋ผ๋ฏธํฐ, AlexNet์ 6์ฒ๋ง๊ฐ(60m)์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง๋ค.
- ReLU activation fuction ์ฌ์ฉ
- 2๊ฐ์ GPU ์ฌ์ฉ
๐ฅ์์ฃผ ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ์ ๋ฆฌ - ์ฑ๋(Channel) vs ์ปค๋(Kernel) vs ํํฐ(Filter)
์ฐ์ ์ฑ๋์ RGB, Grayscale ๋ฑ์์ Red channel, Blue Channel, Green Channel ๋ฑ์์ ์ฌ์ฉ๋๋ ๋จ์ด์ด๊ณ , ์ฑ๋์ ๊ฐ์๊ฐ input์ ์ฑ๋ ๊ฐ์์ ๊ฐ์์ผ ํ๋ค.
์ปค๋๊ณผ ํํฐ๋ ๊ฐ์ ์๋ฏธ๋ก ์ฌ์ฉ๋๋ค. ์ด ์ฌ์ฉ๋๋ ํํฐ์ ๊ฐ์๊ฐ output ์ฑ๋์ ๊ฐ์๊ฐ ๋๋ค.
indoml ์ ์ ์ ๋ฆฌ๋์ด ์์ผ๋ ์ด๋ฏธ์ง์ ํจ๊ป ๋ณด์!!
โ VGG-16
- ๋ง์ ํ๋ผ๋ฏธํฐ ๊ฐ์ง๊ณ ์๋ ๋์ ์ ํจ์ฌ ๋จ์ํ ๊ตฌ์กฐ. ํญ์ ๋์ผํ stride, padding, size์ Conv layer, Pooling layer ์ฌ์ฉ
- [CONV 64]×2์ ์๋ฏธ๋ conv layer๋ฅผ 2๊ฐ ์ ์ฉํ๋ค๋ ๊ฒ.
- ์ฝ 1์ต 3์ฒ 8๋ฐฑ๋ง๊ฐ์ ํ๋ผ๋ฏธํฐ
ResNet
๋งค์ฐ ๊น์ ๋คํธ์ํฌ๋ vanishing gradient์ exploding gradient ๋ฌธ์ ๋ก ํ์ต์ด ์ด๋ ต๋ค.
์์ ๊ณผ์ ์ ์ ์ฒด์ ์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ์ด 2๊ฐ์ layer๋ง๋ค residual block์ด ์๊ธฐ๋ ๊ฒ์ ๋ณผ ์ ์๊ณ ์ด๊ฒ์ด plainํ๊ฒ layer๋ฅผ ์์์ ๋๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ํ์ต์ด ์งํ๋จ์ ๋ณผ ์ ์๋ค.
Networks in Networks and 1×1 Convolutions
Networks in Networks == 1×1 Convolutions
์ฑ๋์ด ํ ๊ฐ์ผ ๋๋ ๋ณ๋ก ํจ๊ณผ์ ์ด์ด ๋ณด์ด์ง ์์ง๋ง ์ฌ๋ฌ๊ฐ์ ์ฑ๋์ ๊ฐ์ง๊ณ ์์ ๋๋ output ์ฑ๋์ ๊ฐ์๋ฅผ filter์ ๊ฐ์๋ก ์ค์ฌ์ฃผ์ด์ ๊ณ์ฐํด์ผํ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ค์ฌ์ฃผ๋ ํจ๊ณผ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
์์๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. 28×28×192์ input ํฌ๊ธฐ๋ฅผ 32๊ฐ์ 1×1 CONV ์ ์ฉํ์ฌ 28×28×32๋ก ์์ถํ์๋ค.
Inception Network Motivation
motivation : ๋ญ ์ํ๋์ง ๋ชฐ๋ผ์ ๋ค ์ค๋นํ์ด
1×1 filter, 3×3 filter, pooling layer, 5×5 filter ๋ฑ ๋ฌด์์ ์ฌ์ฉํ ์ง ๊ณ ๋ฏผํ์ง๋ง๊ณ output size์ ํฌ๊ธฐ๋ง ๊ณ ๋ คํด์ ๋ชจ๋ ํ์ตํ๋ค.
๋ฌธ์ ๋ ๊ณ์ฐ๋น์ฉ์ธ๋ฐ, ์์ ์์์์ 5×5 Conv layer์ ์ด์ ์ ๋ง์ถ์ด์ ๋ณด์
filter size๊ฐ 5×5×192 ์์ ๊ณ์ฐํ ์ ์๊ณ ์ ์ฒด ๊ณ์ฐํด์ผํ๋ ๊ฐ์๋ filter์ ํ๋ผ๋ฏธํฐ์ output ํ๋ผ๋ฏธํฐ์ ๊ฐ์๋ฅผ ๊ณฑํ ๊ฐ์ด๋ค. ๋ฐ๋ผ์ 5×5×192 * 28×28×32 = ์ฝ 1์ต 2์ฒ๋ง ๊ฐ์ ์ฐ์ฐ์ด ํ์ํ๋ค
1×1 convolution์ ํตํด ์ด๋ฅผ 1000๋ถ์ 1๋ก ์ค์ผ ์ ์๋ค.
Inception Network
GoogLeNet์ผ๋ก ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
MobileNet
์ ฏ์จ๋๋ ธ์์ YOLO๋ ๋๋ฌด ๋๋ ค์ ์ฌ์ฉํ์ง ๋ชปํ๊ณ MobileNet์ ์ ๋นํ FPS๊ฐ ๋์์ ์ฌ์ฉํ๋ ๊ฒฝํ์ด ์์๋๋ฐ, ์ด๋ป๊ฒ ํ๋ฉด ๋ฎ์ ์ฑ๋ฅ์ ์ปดํจํ ํ์์์๋ ๋ฌธ์ ์์ด ๋์๊ฐ๋์ง ๊ถ๊ธํ๋๋ฐ ์ด๋ฒ ๊ฐ์๋ฅผ ํตํด ๊ถ๊ธ์ฆ์ด ํด๊ฒฐ๋์๋ค.
๋ฐ๋ก Depth-wise separable convolutions ๋ผ๋ ๋ฐฉ์์ด๋ค. ๋น๊ต๋ฅผ ์ํด normalํ computational cost๋ฅผ ๊ตฌํด๋ณด์.
input size๊ฐ 6×6×3 ์ด๊ณ 5๊ฐ์ 3×3×3 filter๋ก conv ์ฐ์ฐ์ ํ๋ค๊ณ ํ๋ฉด, Computational cost๋ filter์ ํ๋ผ๋ฏธํฐ ๊ฐ์์ output์ ํ๋ผ๋ฏธํฐ ๊ฐ์์ ๊ณฑ์ด๋ฏ๋ก 3×3×3 * 4×4×5 = 2160์ด๋ค.
์ด๋ฅผ depthwise๋ฅผ ์ ์ฉํ๋ฉด Depthwise Convolution๊ณผ Pointwise Convolution ๋ถ๋ถ์ผ๋ก ๋๋์ด์ ๊ณ์ฐํ ์ ์๋ค.
Depthwise convolution์ ๋ค์๊ณผ ๊ฐ์ด ์ด filter์ ๊ฐ์๋ ์๊ฐํ์ง ์๊ณ filter์ ์ฑ๋๊ณผ input์ ์ฑ๋์ ๊ฐ์ ๊ณ์ฐ์ ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด Computational cost์์ filter์ output์ ์ฑ๋ ์์ ๋ํ ๊ณฑ์ด ๋น ์ง๊ฒ ๋๋ค. ๋ฐ๋ผ์ ํ ์ฑ๋์ ํด๋นํ๋ filter์ ํ๋ผ๋ฏธํฐ์ output ํ๋ผ๋ฏธํฐ๋ฅผ ๊ณฑํ๊ณ ์ฑ๋์ ์๋ฅผ ๊ณฑํด์ฃผ๋ฉด ๋๋ค. 3×3 * 4×4 * 3 = 432 ๊ฐ๊ฐ ๋์จ๋ค.
์ด์ pointwise convolution์ ํตํด nomal ๋ฐฉ์๊ณผ output์ shape์ ๋ง์ถฐ์ค๋ค. Computational cost๋ฅผ ๊ณ์ฐํด๋ณด๋ฉด filter์ ํ๋ผ๋ฏธํฐ * output ํ๋ผ๋ฏธํฐ์ด๋ฏ๋ก, 1×1×3 * 4×4×5 = 240 ์ด๋ค.
์์ ๋ดค๋ ์ผ๋ฐ์ ์ธ ๊ณ์ฐ ๋ฐฉ์์์๋ 2160๊ฐ์ ์ฐ์ฐ์ด ํ์ํ๋๋ฐ, depthwise separable ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด 432 + 240 = 672์ ์ฐ์ฐ์ด ํ์ํ ๊ฒ์ ์ ์ ์๋ค. ์ด๋ 2160์ 0.3์ ํด๋นํ๋ ์ซ์์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ทธ ์์น๋ 1/(output ์ฑ๋์ ๊ฐ์) + 1/(filter size์ ์ ๊ณฑ) ๋ก ์์ํ ์ ์๋ค.
MobileNet Architecture
MobileNet v1๊ณผ v2์ ์ฐจ์ด์
- v1์ depthwise separable convolution์ด 13๋ฒ ๋ฐ๋ณต, v2๋ 17๋ฒ ๋ฐ๋ณต
- v2๋ v1์์ residual connection(=skip connection) ์ ์ฉ
- Expansion layer ์ถ๊ฐ
MobileNet v2 ์ bottleneck ๋ถ๋ถ์ ์์ธํ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
EfficientNet
๋คํธ์ํฌ์์ ์กฐ์ ํ ์ ์๋ ์์๋ก๋ Resolution, Depth, Width ๋ฑ์ด ์๋๋ฐ ์ด๋ค ํฌ๊ธฐ๋ก ์ด๋ป๊ฒ ์กฐํฉํด์ผ ์ข์ ์ ํ์ผ๊น?
EfficientNet์ ํตํด ๋๋ฐ์ด์ค์ ์ ํฉํ R, D, W์ ์กฐํฉ์ ์ฐพ์ ์ ์๋ค.
Tips for doing well on winning competitions
Ensemble๊ณผ Multi-crop at test time ๋ฐฉ๋ฒ์ด ์์ง๋ง ์ค์ product์ ์ ์ฉํ๊ธฐ๋ ๋ฉ๋ชจ๋ฆฌ, ์๊ฐ์ ์ธ ๋ฌธ์ ๊ฐ ์๊ณ ๋ํ์ฉ์ผ๋ก ์ฌ์ฉ
๋๊ธ