๐ถ ์ด๋ก (Abstract)
- ILSVRC14์ classification๊ณผ detection์์ ์ต์ ๊ธฐ๋์ ๋ณด์ฌ์ฃผ๋ ์๋ก์ด ์ฌ์ธต์ ๊ฒฝ๋ง๊ตฌ์กฐ, ์ผ๋ช "Inception"์ ์ ์ํ๋ค.
- ์ด ๋ชจ๋ธ์ ๊ฐ์ฅ ํฐ ์ข์ ํน์ง์ ๋ฐ๋ก "๊ณ์ฐ๋ฆฌ์์ค์ ์ด์ฉ๋ฉด์์์ ํฅ์"์ด๋ค.
- ๊ณ์ฐ๋ฆฌ์์ค๋ฅผ ์ผ์ ํ๊ฒ ์ ์งํ๋ฉด์ depth์ width๋ฅผ ํค์ ๋ค๋ ์ ์์ ์ฃผ๋ชฉํ ๋งํ๋ค.
- ์ด๋ฐ ํน์ฑ์ ์ต์ ํ๋ฅผ ์ํด ๊ตฌ์กฐ์ ์ธ ๊ฒฐ์ ์ Hebbian์๋ฆฌ์ multi-scale processing์ ์ง๊ด(intuition)์ ๊ธฐ์ดํ๋ค.
cf. [Hebbian Principle]
- Hebbian ์๋ฆฌ๋ ๋ด๋ฐ ๊ฐ์ ์ฐ๊ฒฐ ๊ฐ๋๊ฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ด๋ป๊ฒ ๋ณํ ์ ์๋์ง๋ฅผ ์ค๋ช ํ๋ ์ ๊ฒฝ ๊ณผํ์ ๊ฐ๋ ์ผ๋ก ์ด ์๋ฆฌ๋ ๋ ๊ฐ์ ๋ด๋ฐ์ด ํจ๊ป ํ์ฑํ๋ ๋ ๊ทธ๋ค ์ฌ์ด์ ์ฐ๊ฒฐ์ด ๊ฐํ๋๋ค๋ ์๊ฐ์ ๊ธฐ๋ฐ์ ๋๋ค. ์ด๊ฒ์ ํ์ต๊ณผ ๊ธฐ์ต์ ๊ธฐ์ด๊ฐ ๋๋ ์ ๊ฒฝ ๊ฒฝ๋ก์ ํ์ฑ์ผ๋ก ์ด์ด์ง ์ ์๋ค.
- ์ด ๋ ผ๋ฌธ์์๋ CNN์ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋๋ "Local Response Normalization"(LRN)์ด๋ผ๋ Hebbian ์๋ฆฌ์ ๋ณ์น์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ๋ค.
1. ์๋ก (Introduction)
• ์ง๋ 3๋ ๊ฐ ์ฌ์ธต์ ๊ฒฝ๋ง์ ์์ฒญ๋ ๋ฐ์ ์ผ๋ก classification๊ณผ detection์์ ๊ทน์ ์ธ ๋ณํ๊ฐ ์์๋ค.
์ด์ ๋ํ ํธ์ฌ(ๅฅฝๆ)๋ ๋จ์ง hardware์ ๋ฐ์ ์ด๋ model์ด ์ปค์ง๊ฑฐ๋ dataset์ ๋ง์์ง์ ๋๋ ์์ง๋ง, ๋ ์ฃผ์ํ ๊ฒ์ ์๋ก์ด ์๊ฐ๊ณผ ์๊ณ ๋ฆฌ์ฆ, ํฅ์๋ ์ ๊ฒฝ๋ง๊ตฌ์กฐ์ ๊ฒฐ๊ณผ๋ผ๋ ๊ฒ์ ์๋ค.
์ฐ๋ฆฌ์ GoogLeNet์ ๋ถ๊ณผ 2๋ ์ ์ AlexNet๋ณด๋ค ์ค์ ์ฌ์ฉํ๋ parameter 12๋ฐฐ ์ ์์๋ ๋ ๋์ ์ ํ๋๋ฅผ ๊ฐ๋๋ค.
Object Detection์ ๊ฐ์ฅ ํฐ ์ด์ ์ ์ฌ์ธต์ ๊ฒฝ๋ง ๋จ๋ ์ด๋ ๋ ํฐ ๋ชจ๋ธ์ ํ์ฉ์ด ์๋ R-CNN algorithm(Girshick et al)๊ณผ ๊ฐ์ ์ฌ์ธต ๊ตฌ์กฐ์ ๊ณ ์ ์ ์ปดํจํฐ๋น์ ์ ์๋์ง์์ ์ป์๋ค.
• ๋ค๋ฅธ ์ฃผ๋ชฉํ ํน์ง์ ๋ชจ๋ฐ์ผ ๋ฐ ์๋ฒ ๋๋์ ์ง์์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ(ํนํ ์ ๋ ฅ ๋ฐ ๋ฉ๋ชจ๋ฆฌ์ฌ์ฉ)์ด ์ค์ํด์ง๋ค๋ ๊ฒ์ด๋ค.
์ฐ๋ฆฌ์ ์๊ณ ๋ฆฌ์ฆ์์ ๋๋๋ฌ์ง๋(noteworthy) ์ ์ ๋ณธ ๋ ผ๋ฌธ์์ ์ ์๋ ์ฌ์ธต์ ๊ฒฝ๋ง ๊ตฌ์กฐ์ ์ค๊ณ(design)๋ก ์ด์ด์ง๋ ๊ณ ๋ ค์ฌํญ์ด ์ ํ๋์ ์ซ์์ ๋ํ ์์ํ ๊ณ ์ ๊ด(sheer fixation)๋ณด๋ค ์์ ์์๋ฅผ ํฌํจํ๋ค๋ ์ ์ด๋ค.
๋๋ถ๋ถ์ ์คํ์์ ๋ชจ๋ธ์ ์ถ๋ก ๋จ๊ณ(inference)์์ 15์ต๋ฐฐ ์ฆ๊ฐํ ๊ณ์ฐ์์ฐ์ ์ ์งํ๊ฒ ์ค๊ณ๋์๊ธฐ์ ์์ํ ํ๋ฌธ์ ํธ๊ธฐ์ฌ์ผ๋ก ๋๋์ง ์๋๋ฐ, ์ฌ์ง์ด๋ ๋๊ท๋ชจ dataset์์๋ ํฉ๋ฆฌ์ ์ธ ๋น์ฉ์ผ๋ก ์ค์ ๋ก ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
• ๋ณธ๋ ผ๋ฌธ์์๋ ์ปดํจํฐ๋น์ ์ ์ํ ํจ์จ์ ์ฌ์ธต์ ๊ฒฝ๋ง๊ตฌ์กฐ์ธ "Inception"์ ์ด์ ์ ๋ง์ถ๋ค.
("we need to go deeper"๋ผ๋ ์ธํฐ๋ท ๋ฐ์์ ํ์)
์ด๋, "deep"์ด๋ผ๋ ๋จ์ด๋ฅผ 2๊ฐ์ง ์๋ฏธ๋ก ์ฌ์ฉํ์๋ค.
- "Inception module"์ ํํ๋ก ์๋ก์ด ์์ค์ ์กฐ์ง์ ๋์ ํ๋ค๋ ์๋ฏธ
- ์ ๊ฒฝ๋ง์ ๊น์ด๋ฅผ ์ฆ๊ฐ์ํจ๋ค๋ ์ง์ ์ ์ธ ์๋ฏธ
2. Related Work
• LeNet-5์์ ์์ํด์ CNN์ ์ ํ์ ์ธ ํ์ค๊ตฌ์กฐ๋ฅผ ๊ฐ๋๋ฐ, stacked conv.layer(๋ณดํต ์ ํ์ ์ผ๋ก ์ ๊ทํ ๋ฐ maxpooling์ด ๋ฐ๋ฅธ๋ค.)๋ ํ๋ ์ด์์ FC.layer๊ฐ ๋ค๋ฐ๋ฅธ๋ค.
์ด ๊ธฐ๋ณธ์ ์ธ ์ค๊ณ๋ฅผ ๋ณํํ๋ ๊ฒ์ image classification ๋ฌธํ์ ๋๋ฆฌ ํผ์ ธ์๋ค.
ImageNet๊ฐ์ ๋๊ท๋ชจ dataset์ layerํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๋ ๋์์ overfitting์ ํด๊ฒฐํ๊ธฐ ์ํด Dropout๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
• Max-Pooling์ด ์ ํํ ๊ณต๊ฐ์ ๋ณด์ ์์คํ๋ค๋ ์ฐ๋ ค์๋ ๋ถ๊ตฌํ๊ณ conv.layer์ localization, object detection ๋ฑ ์ฌ๋ฌ ์ฌ๋ก์ ํ์ฉ๋๋๋ฐ, ์์ฅ๋ฅ์ ์๊ฐํผ์ง์ ์ ๊ฒฝ๊ณผํ๋ชจ๋ธ์์ ์๊ฐ์ ๋ฐ์๋ค. (Hebbian principle)
์ด๋, Inception layer๋ ๋ง์ด ๋ฐ๋ณต๋๋ฉฐ Inception model์ ๋ชจ๋ filter๋ ํ์ต๋๋๋ฐ, GoogLeNet ๋ชจ๋ธ์ ๊ฒฝ์ฐ, 22๊ฐ์ layer์ ์ฌ์ธต๋ชจ๋ธ๋ก ์ด์ด์ง๋ค.
• Network-in-Network๋ ์ ๊ฒฝ๋ง์ ํํ๋ ฅ์ ๋์ด๊ธฐ ์ํด ์ ์๋ ์ ๊ทผ๋ฒ์ผ๋ก conv.layer์ ์ ์ฉํ ๋, ์ด ๋ฐฉ๋ฒ์ ์ผ๋ฐ์ ์ธ rectified linear activation์ด ๋ค๋ฐ๋ฅด๋ ์ถ๊ฐ์ ์ธ 1x1 conv.layer๋ก ๊ฐ์ฃผ๋๋ค.
์ด๋ฅผ ํตํด CNN pipline์ ์ฝ๊ฒ ํตํฉํ ์ ์์๋๋ฐ, ๋ณธ ๋ ผ๋ฌธ์ ๊ตฌ์กฐ์์ ์ด ์ ๊ทผ๋ฐฉ์์ ๋ง์ด ์ฌ์ฉํ๋ค.
๋ค๋ง ์ฐ๋ฆฌ์ ๊ตฌ์กฐ์ค์ ์์๋ 1x1 convolution์ ์ด์ค์ ์ธ ๋ชฉ์ ์ ๊ฐ๋๋ค.
- ๊ฐ์ฅ ์ค์ํ ๋ชฉ์ : ์ ๊ฒฝ๋ง์ ํฌ๊ธฐ๋ฅผ ์ ํํ๋ ๊ณ์ฐ๋ณ๋ชฉํ์(computational bottleneck)์ ์ ๊ฑฐ๋ฅผ ์ํ ์ฐจ์์ถ์๋ชจ๋(dimension reduction module). → ์ฑ๋ฅ์ ์ ํ ์์ด depth, width๋ฅผ ๋๋ฆด ์ ์์
(โต 1x1 convolution์ ๋ ํฐ convolution์ ๋นํด ์๋์ ์ผ๋ก ์ ์ ์์ parameter๋ฅผ ํฌํจํ๊ธฐ ๋๋ฌธ์ ๊ณ์ฐ์ ํจ์จ์ .)
- ๋ถ๊ฐ์ ์ธ ๋ชฉ์ : ์ ๊ฒฝ๋ง์ ํํ๋ ฅ์ ๋์
• Object Detection์ ์ํ ๊ฐ์ฅ ์ต์ ์ ๊ทผ๋ฒ์ Girshick ๋ฑ(et al)์ด ์ ์ํ R-CNN์ด๋ค.
R-CNN์ ์ ๋ฐ์ ์ธ object detection์ 2๊ฐ์ง์ ํ์๋ฌธ์ ๋ก ๋๋๋ค.
- category์ ๊ตฌ์ ๋ฐ์ง์๋ ๋ฐฉ์์ผ๋ก ์ ์ฌ์ ๋ฌผ์ฒด์ ์์ ์ํ ์์ ๋ฐ super-pixe์ ์ผ๊ด์ฑ ๊ฐ์ ์ ์์ค์ ๋จ์๋ฅผ ๋จผ์ ํ์ฉํ๋ค.
- ๊ทธ ํ CNN classification์ ํ์ฉํด ๋ฌผ์ ํด๋น ์์น ๋ฐ category๋ฅผ ์๋ณํ๋ค.
์ด๋ฌํ 2๋จ๊ณ ์ ๊ทผ๋ฐฉ์์ ์ ์์ค์ ๋จ์๋ฅผ ๊ฐ๋ boundaing box segmentation์ ์ ํ์ฑ ๋ฐ ์ต์ฒจ๋จ CNN์ ๋งค์ฐ ๊ฐ๋ ฅํ classifciation ๋ฅ๋ ฅ์ ํ์ฉํ๋ค.
์ด๋, bounding box์ ๋ ๋์ ์ ์ ๋ฐ classification์ ์ํ ์์๋ธ ์ ๊ทผ๋ฒ๊ณผ ๊ฐ์ 2๋จ๊ณ ๋ชจ๋์์ ํฅ์๋ ๊ธฐ๋ฅ์ ์ป์ด๋ด์๋ค.
3. Motivation and High Level Considerations
- ์ฌ์ธต ์ ๊ฒฝ๋ง์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๋ ๊ฒ์ด๋ค.
(์ด๋, ์ ๊ฒฝ๋ง์ ๊น์ด(depth), ํญ(depth์ unit์)์ ์ฆ๊ฐ ๋ํ ๋ชจ๋ ํฌํจ๋๋ค.)
๋ค๋ง ์ด ํด๊ฒฐ๋ฒ์ 2๊ฐ์ง์ ์ฃผ์ ๋จ์ ์ด ์กด์ฌํ๋ค.
โ ๋ ํฐ ํฌ๊ธฐ๋ ๋ณดํต parameter๊ฐ ๋ง์์ ์๋ฏธํ๋ฉฐ, ์ด๋ training set์ด ์ ํ๋ ๊ฒฝ์ฐ, overfitting ๋ฐ์๊ฐ๋ฅ์ฑ์ ๋์ธ๋ค.
ํนํ, ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ๋ ์์ธํ ๊ตฌ๋ถ์ ์ํด ์ธ๊ฐ์ด ํ์ํ ๊ฒฝ์ฐ, ๊ณ ํ์ง์ training set์ ๋ง๋ค๊ธฐ ํ๋ค๊ธฐ์ ์ฃผ์๋ณ๋ชฉํ์(major bottleneck)์ด ๋ ์ ์๋ค.
โก ์ ๊ฒฝ๋ง ํฌ๊ธฐ๊ฐ ๊ท ์ผํ๊ฒ ์ฆ๊ฐํ๋ ๋ ๋ค๋ฅธ ๋จ์ ์ ๊ณ์ฐ ์์์ ์ฌ์ฉ์ด ๊ทน์ ์ผ๋ก ์ฆ๊ฐํ๋ค๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด deep vision network์์ 2๊ฐ์ conv.layer์ ์ฐ๊ฒฐ์ ๊ฒฝ์ฐ, filter ์๊ฐ ๊ท ์ผํ๊ฒ ์ฆ๊ฐํ๋ฉด ๊ณ์ฐ์ด ์ ๊ณฑ์ผ๋ก ์ฆ๊ฐํ๋ค.
๋ง์ฝ, ์ถ๊ฐ๋ ์ฉ๋์ด ๊ฐ์ค์น๊ฐ 0์ ๊ฐ๊น์ธ ๋์ฒ๋ผ ๋นํจ์จ์ ์ผ๋ก ์ฌ์ฉ๋๋ฉด ๋ง์ ๊ณ์ฐ์์์ด ๋ญ๋น๋๋ค.
- ์ด๋ฐ ๋ ๋ฌธ์ ์ ํด๊ฒฐ์ ๋ํ ๊ทผ๋ณธ์ ๋ฐฉ๋ฒ์ ๊ถ๊ทน์ ์ผ๋ก conv.layer ๋ด๋ถ์์ fully-connectedํ ๊ตฌ์กฐ์์ ๋ ์ฐ๊ฒฐ๋ ๊ตฌ์กฐ๋ก ์ด๋ํ๋ ๊ฒ์ด๋ค.
Dataset์ ํ๋ฅ ๋ถํฌ(probability distribution)๊ฐ ํฌ๊ณ ๋งค์ฐ ํฌ๋ฐํ ์ฌ์ธต์ ๊ฒฝ๋ง์ ๊ฒฝ์ฐ, ๋ง์ง๋ง์ธต์ activation๊ณผ ์๊ด๊ด๊ณ๊ฐ ๋์ ์ถ๋ ฅ์ ๊ฐ๋ clustering neurons์ ์๊ดํต๊ณ๋ฅผ ๋ถ์ํด ์ต์ ์ ์ ๊ฒฝ๋ง topology๋ฅผ ์ธต๋ณ๋ก ๊ตฌ์ฑํ ์ ์๋ค๊ณ ํ๋๋ฐ,
๋น๋ก ์๋ฐํ ์ํ์ ์ฆ๋ช ์ด ๋งค์ฐ ๊ฐํ ์กฐ๊ฑด์ ์๊ตฌํ์ง๋ง, ์์ ๊ธ์ ์ ์๋ ค์ง Hebbian principle์ ๊ณต๋ช ํ๋ค๋ ์ฌ์ค์ด๋ค.
์ฆ, ๊ทผ๋ณธ์ ์์ด๋์ด๊ฐ ๋ ์๋ฐํ ์กฐ๊ฑด์์๋ ์ค์ ๋ก ์ ์ ์ฉํ ์ ์๋ค๋ ์ ์ ์์ฌํ๋ค ํ ์ ์๋ค.
- ๋ถ์ ์ ์ธ ๋ฉด์์๋ ์ค๋๋ ์ computing infra.๋ ๋ถ๊ท ์ผํ ํฌ์์๋ฃ๊ตฌ์กฐ์ ๋ํ ์์น์ ๊ณ์ฐ๊ณผ ๊ด๋ จํด ๋งค์ฐ ๋นํจ์จ์ ์ด๋ผ๋ ์ฌ์ค์ด๋ค.
์ฐ์ ์ฐ์ฐ์๊ฐ 100๋ฐฐ(100x) ์ค์ด๋ ๋คํด๋ lookups๊ณผ cache ์์ค์ overhead๊ฐ ๋๋ฌด๋๋ ์ง๋ฐฐ์ ์ด๊ธฐ์ ํฌ์ํ๋ ฌ(sparse matrices)๋ก์ ์ ํ์ ํจ๊ณผ๊ฐ ์์ ๊ฒ์ด๋ค.
๋ํ, ๊ท ์ผํ์ง ์์ ํฌ์๋ชจ๋ธ(sparse model)์ ๋ ์ ๊ตํ ๊ณตํ ๋ฐ ๊ณ์ฐ์ธํ๋ผ๊ฐ ํ์ํ๋ค.
ํ์ฌ ๋๋ถ๋ถ์ vision์งํฅ ๊ธฐ๊ณํ์ต๋ฐฉ์์ convolution์ ์ฌ์ฉํ๋ค๋ ์ฅ์ ๋ง์ผ๋ก ๊ณต๊ฐ์์ญ์ ํฌ์์ฑ(sparsity in the spatial domain)์ ํ์ฉํ๋ค.
ํ์ง๋ง, convolution์ ์ด์ ์ธต์ patch์ ๋ฐ์ง๋ ์ฐ๊ฒฐ๋ชจ์์ผ๋ก ๊ตฌ์ฑ๋๋๋ฐ, ConvNet์ ์ ํต์ ์ผ๋ก ํน์ง๋งต์์ ๋ฌด์์ ๋ฐ ํฌ์์ฐ๊ฒฐ(random and sparse connection tables)์ ์ฌ์ฉํด ๋น๋์นญ์ ์ผ๋ก ํ์ต์ ํฅ์์์ผฐ๋ค.
์ด๋ฐ ์ถ์ธ๋ ๋ณ๋ ฌ์ปดํจํ ์ ๋์ฑ ์ ์ต์ ํํ๊ธฐ ์ํด ์ ์ฒด์ฐ๊ฒฐ๋ก ๋ค์ ๋ณ๊ฒฝ๋์๋๋ฐ, ์ด๋ฅผ ํตํด ๊ตฌ์กฐ์ ๊ท ์ผ์ฑ ๋ฐ ๋ง์ filter์ ๋ ํฐ batch size๋ ํจ์จ์ ์ธ dense computation์ ์ฌ์ฉํ ์ ์๊ฒ ํ์๋ค.
- ์ด๋ ๋ค์์ ์ค๊ฐ๋จ๊ณ์ ๋ํ ํฌ๋ง์ด ์๋์ง์ ๋ํ ์๋ฌธ์ ์ ๊ธฐํ๋ค.
์ด๋ก ์์ ์ ์๋ ๊ฒ์ฒ๋ผ filter์์์กฐ์ฐจ๋ ์ฌ๋ถ์ ํฌ์์ฑ์ ํ์ฉํ์ง๋ง ๊ณ ๋ฐ๋์ ํ๋ ฌ๊ณ์ฐ์ ํ์ฉํด ํ์ฌ ํ๋์จ์ด๋ฅผ ํ์ฉํ๋ ๊ตฌ์กฐ์ด๋ค.
ํฌ์ํ๋ ฌ๊ณ์ฐ์ ๋ํ ๋ฐฉ๋ํ์๋ฃ๋ ํฌ์ํ๋ ฌ์ ๋น๊ต์ ๊ณ ๋ฐ๋์ submatrices๋ก clusteringํ๋ ๊ฒ์ด ํฌ์ํ๋ ฌ๊ณฑ์ ๋ํ ์ต์ฒจ๋จ์ฑ๋ฅ์ ์ ๊ณตํ๋ค๋๊ฒ์ ์์ฌํ๋ค.
- Inception๊ตฌ์กฐ๋ vision์ ๊ฒฝ๋ง์์ ์์ํ๋ ํฌ์๊ตฌ์กฐ(sparse structure)๋ฅผ ๊ทผ์ฌํํ๊ณ ๊ณ ๋ฐ๋๋ก ์ฝ๊ฒ์ฌ์ฉ๊ฐ๋ฅํ ๊ตฌ์ฑ์์์ ์ํด ๊ฐ์ ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฃจ๋ ์ ๊ตํ์ ๊ฒฝ๋ง topology๊ตฌ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์์ถ๋ ฅ์ ํ๊ฐํ๊ธฐ์ํ ์ฒซ ์ ์์ ์ฌ๋ก์ฐ๊ตฌ๋ก ์์๋์๋ค.
๋งค์ฐ ์ด๋ก ์ ์ธ ๋ฐฉ๋ฒ์ด์์์๋ ๋ถ๊ตฌํ๊ณ ์ ํํ topology์ ์ ํ์ ๋ํด 2๋ฒ ๋ฐ๋ณต ํ ์ด๋์ ๋ณผ ์ ์์๋๋ฐ,
learning-rate, hyper-parameter ๋ฐ ๊ฐ์ ๋ training ๋ฐฉ๋ฒ๋ก (methodology)์ ์ถ๊ฐํ์ฌ ๊ฒฐ๊ณผ์ ์ผ๋ก Inception๊ตฌ์กฐ๊ฐ ๊ธฐ๋ณธ ์ ๊ฒฝ๋ง์ผ๋ก์์ localization ๋ฐ object detection์ ๋งฅ๋ฝ์์ ํนํ๋ญ ์ ์ฉํ๋ค๋ ๊ฒ์ ์์๋ค.
ํฅ๋ฏธ๋ก์ด ์ ์ ๋๋ถ๋ถ์ ๊ธฐ์กด๊ตฌ์กฐ์ ์ ํ์ ๋ํ ์ฒ ์ ํ ์๋ฌธ์ ์ ๊ธฐํ์๊ณ test์๋ ๋ถ๊ตฌํ๊ณ ์ ์ด๋ locally optimal์ด๋ผ๋ ์ ์ด๋ค.
- ์ ์๋ ๊ตฌ์กฐ๊ฐ ์ปดํจํฐ๋น์ ์ ์ฑ๊ณต์ ์ฌ๋ก๊ฐ ๋์์ง๋ง, ์ปดํจํฐ๋น์ ์ ๊ตฌ์ถ์ ์ด๋ guiding ์๋ฆฌ์ ๊ธฐ์ฌํ ์ง๋ ์๋ฌธ์ด๋ค.
์๋ฅผ ๋ค์ด, ์๋์ ์ค๋ช ๋ ์์น์ ๊ธฐ์ดํ ์๋ํ ํด์ด vision์ ๊ฒฝ๋ง์ ๋ํด ์ ์ฌํ์ง๋ง ๋ ๋์ topology๋ฅผ ์ฐพ์ ์ ์๋์ง ํ์ธํ๋ ค๋ฉด ํจ์ฌ ๋ ์ฒ ์ ํ ๋ถ์๊ณผ ๊ฒ์ฆ์ด ํ์ํ๋ค.
๊ฐ์ฅ ์ค๋๋ ฅ์๋ ์ฆ๊ฑฐ๋ ์๋ํ๋ ์์คํ ์ด ๋์ผํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๋งค์ฐ ๋ค๋ฅด๊ฒ ๋ณด์ด๋ global ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด ๋ค๋ฅธ ์์ญ์์ ์ ์ฌํ ์ด๋์ ์ป๋ network topology๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ์ธ๋ฐ, ์ ์ด๋ Inception๊ตฌ์กฐ์ ์ด๊ธฐ์ฑ๊ณต์ ์ด ๋ฐฉํฅ์ผ๋ก์ ํฅ๋ฏธ๋ก์ด ์์ ์ ๋ํ ํ๊ณ ํ motivation์ ์ ๊ณตํ๋ค.
4. Architectural Details
[Inception๊ตฌ์กฐ์ ์ฃผ์ ์์ด๋์ด., main idea for inception architecture]
- ๊ธฐ๋ฐ: convolution์ optimal local sparse structure๊ฐ ์ด๋ป๊ฒ ๊ทผ์ฌํ๋๊ณ ์ฝ๊ฒ์ฌ์ฉ๊ฐ๋ฅํ ์กฐ๋ฐํ ๊ตฌ์ฑ์์๋ก ์ปค๋ฒ๋๋์ง๋ฅผ ์ฐพ๊ธฐ ์ํ ๊ฒ.
- translation ๋ถ๋ณ์ฑ(invariance)๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ ๊ฒฝ๋ง์ conv.block์ ๊ตฌ์ถํ๋ค๋ ์๋ฏธ์ด๋ค.
- ๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ํ์ํ ๊ฒ์ ์ต์ ์ ๊ตญ์๊ตฌ์กฐ(optimal local construction)๋ฅผ ์ฐพ๊ณ ๊ณต๊ฐ์ ์ผ๋ก ๋ฐ๋ณตํ๋ ๊ฒ์ด๋ค.
cf) sparse structure: ๊ณ ์์ค์ ์ ํ๋๋ฅผ ์ ์งํ๋ฉด์ ๊ณ์ฐ์ ์ผ๋ก๋ ํจ์จ์ ์ด๊ธฐ ์ํด ์ค๊ณ๋ ์ ๊ฒฝ๋ง๊ตฌ์กฐ
์ด ๋ ผ๋ฌธ์์๋ ๋์ ์ ํ๋๋ฅผ ์ํด ํจ์จ์ ์ธ ํฉ์ฑ๊ณฑ์ฐ์ฐ๊ณผ ํฌ์์ฑ์ ์กฐํฉ์ ์ฌ์ฉํ๋๋ก ์ ๊ฒฝ๋ง์ด ์ค๊ณ๋ ๋ฐฉ์์ ์ค๋ช ํ๋ค.
- Arora et al.์ layer-by-layer ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ค.
(layer-by-layer๊ตฌ์กฐ๋ ํ๋๊ฐ ๋ง์ง๋ง layer์ ํต๊ณ์ ์ํธ๊ด๋ จ์ฑ๊ณผ ๊ทธ๋ค์ ๋์ ์ฐ๊ด์ฑ์ผ๋ก ๊ตฐ์ง(cluster)ํ๋ ๊ฒ์ด๋ค.)
์ด ๊ตฐ์ง๋ค ํํ๋ ๋ค์์ธต์ unit๊ณผ ์ด์ ์ธต์ unit๊ฐ์ ์ฐ๊ฒฐ์ด ๋์ด์๋ค.
- ์ฐ๋ฆฐ ์ด์ ์ธต์ ๊ฐ unit์ด input image์ ์ผ๋ถ์์ญ์ด๊ณ , ์ด๋ฐ unit์ filter bank๋ก ๊ทธ๋ฃนํ๋๋ค ๊ฐ์ ํ๋ค.
์ ๋ ฅ์ธต๊ณผ ๊ฐ๊น์ด ํ์์ธต์ผ ์๋ก ์ํธ์ฐ๊ด๋ unit์ ๊ตญ์์์ญ(local region)์ ์ง์ค ๋ ๊ฒ์ด๋ค.
์ด๋ ์ฆ, ๋ง์ cluster๋ค์ด ๋จ์ผ์์ญ์ ์ง์ค๋๊ณ ๋ค์์ธต์์ 1x1 conv.layer๋ก ์ปค๋ฒ๋ ์ ์์์ ์๋ฏธํ๋ค.
- ํ์ง๋ง, ๋ ํฐ patch์ ๋ํ ํฉ์ฑ๊ณฑ์ผ๋ก ์ปค๋ฒ๋๋ ๋ ์ ์ ์์ ๊ณต๊ฐ์ ์ผ๋ก ๋ถ์ฐ๋ ๊ตฐ์ง(spatially spread out clusters)์ด ์์ ๊ฒ์ด๋ฉฐ, ๋์ฑ ํฐ ์์ญ์ ๋ํ patch์ ๊ฐ์๊ฐ ์์ ์ ์๋ค.
- ์ด๋ฐ patchํ ๋น๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด์, ํ์ฌ Inception๊ตฌ์กฐ๋ filter ํฌ๊ธฐ๋ฅผ 1x1, 3x3, 5x5๋ก ๊ฐ์ํ๊ณ ์๋ค.
๋ค๋ง, ์ด๋ฐ ๊ฒฐ์ ์ ํ์์ฑ์ด๋ผ๊ธฐ ๋ณด๋ค๋ ํธ๋ฆฌ์ฑ์ด๋ผ๋ ์ ์ ๋์ฑ ๊ธฐ๋ฐ์ ๋๊ณ ์๋ค.
์ด๋ Inception๊ตฌ์กฐ๊ฐ ๋ค์์ธต์ ์ ๋ ฅ์ ํ์ฑํ๋ ๋จ์ผ์ถ๋ ฅ๋ฒกํฐ์ ์ฐ๊ฒฐ๋ output filter bank์ ํจ๊ป ๋ชจ๋ ๊ณ์ธต์ ์กฐํฉ๋ฐฉ์์ด๋ผ๋ ๊ฒ์ ์๋ฏธํ๋ค.
๊ฒ๋ค๊ฐ, pooling์ ์ต์ ConvNet์์ ์ฑ๊ณต์ ์ํด์๋ ํ์์ ์ธ๋ฐ, ์ด๋ ๊ฐ ๋จ๊ณ์ ๋์์ ์ธ ๋ณ๋ ฌํ๋ง(parallel pooling)์ ํ๋ ๊ฒ์ด ์ถ๊ฐ์ ์ธ ์ด๋์ ์ฃผ๋ ํจ๊ณผ๋ผ๋ ๊ฒ์ ์ ์ํ๋ค.
- ์ด๋ฐ "Inception Module"์ด ์๋ก ๊ฒน์ณ์์ด๊ธฐ์ ์ถ๋ ฅ์๊ดํต๊ณ(output correlation statistics)๋ ์๋์ฒ๋ผ ๋ค์ํ๋ค.
๋ ๋์ ์ถ์ํํน์ง์ด ๋ ๋์์ธต์ ์ํด ํฌ์ฐฉ๋๋ค.
์ด๋ก ์ธํด ๋ ๋์ ์ถ์ํํน์ง์ ๊ณต๊ฐ์ง์ค๋๋ ๊ฐ์ํ ๊ฒ์ด๋ค.
์ด๋ ์ฐ๋ฆฌ๊ฐ ๋ ๋์์ธต์ผ๋ก ๊ฐ์๋ก 3x3๊ณผ 5x5 convolution ๋น์จ์ด ์ฆ๊ฐํ ๊ฒ์์ ์์ฌํ๋ค.
- "Inception Module"์ ๊ฐ์ฅ ํฐ ๋ฌธ์ (์ ์ด๋ ๋จ์(naive)ํ ํํ์์)๋ ์ ์ ์์ 5x5 convolution๋ค๋ ๋ง์ ์์ filter๊ฐ ์๋ conv.layer์์ ๋งค์ฐ ๋น์ฉ์ด ๋ง์ด๋ ๋ค๋ ์ ์ด๋ค.
์ด ๋ฌธ์ ๋ pooling unit์ ์ถ๊ฐํ๋ฉด ๋์ฑ ๋๋๋ฌ์ง๋๋ฐ, output filter์๋ ์ด์ ๋จ๊ณ์ filter์์ ๊ฐ๋ค.
์ฆ, pooling.layer output. &. conv.layer output ๊ฐ์ ๋ณํฉ(merge)์ ๋จ๊ณ๊ฐ์ output ์๋ฅผ ๋ถ๊ฐํผํ๊ฒ ์ฆ๊ฐ์ํจ๋ค.- ์ด ๊ตฌ์กฐ๋ ์ต์ ์ ํฌ์๊ตฌ์กฐ(optimal sparse structure)๋ฅผ ํฌํจํ๋ค.
๋ค๋ง, ๋งค์ฐ ๋นํจ์จ์ ์ธ ์ํ์ผ๋ก ๋ช๋จ๊ณ๊ฐ ์์ง๋ computational blowup(ํญ๋ฐ)๋ก ์ด์ด์ง ์ ์๋ค.
์ด๋ Inception Module์ ๋ํ 2๋ฒ์งธ ์์ด๋์ด๋ฅผ ์ด๋์ด ์ฃผ์๋ค.
[Inception Module์ ๋ํ 2๋ฒ์งธ ์์ด๋์ด]
- 2๋ฒ์งธ ์์ด๋์ด๋ก ์ด์ด์ง ์ด์ ๋ ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ณ์ฐ์๊ตฌ๋์ด ๋ง์ด ์ฆ๊ฐํ๊ธฐ์ ์ฐจ์์ถ์(dimension reduction) ๋ฐ ์ฐจ์ํฌ์(dimension projection)๋ฅผ ํ๋ช ํ๊ฒ ์ ์ฉํ๋๋ฐ, ์ด๋ embedding์ ์ฑ๊ณต์ ๊ธฐ๋ฐํ๋ค.
์ ์ฐจ์์๋ฒ ๋ฉ์์๋ ์๋์ ์ผ๋ก ํฐ image patch์ ๋ํด ๋ง์ ์ ๋ณด๋ฅผ ํฌํจ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ํ์ง๋ง, ์๋ฒ ๋ฉ์ ์กฐ๋ฐํ๊ณ ์์ถ๋ ํํ๋ก ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค. (์์ถ๋ ์ ๋ณด๋ ๋ชจ๋ธ๋งํ๊ธฐ ์ด๋ ต๋ค.)
์ฐ๋ฆฐ ๋๋ถ๋ถ์ ์ํฉ์์ ํฌ๋ฐํ ํํ๋ ฅ์ ์ ์งํ๊ณ , ์ ํธ๋ฅผ ์ผ๊ด์ ์ผ๋ก ์ง๊ณํด์ผํ ๋ ์์ถํ๊ณ ์ถ๋ค.
์ด๋ง์ธ ์ฆ์จ, 1x1 convolution์ expensiveํ 3x3, 5x5 convolution์ ์ด์ ์์์ reduction์ ๊ณ์ฐํ๋๋ฐ ์ฌ์ฉํ๋ค๋ ๊ฒ์ด๋ค.
๊ฒ๋ค๊ฐ reduction์ ์ฌ์ฉ์ 2๊ฐ์ง ๋ชฉ์ ์ ๊ฐ๋ ReLU์ ์ฌ์ฉ๋ ํฌํจ๋๋ค.
[์ผ๋ฐ์ ์ธ Inception ์ ๊ฒฝ๋ง]
- gridํด์๋๋ฅผ ์ ๋ฐ์ผ๋ก ์ค์ด๊ธฐ ์ํด ์ด๋ฐ๊ธ์ฉ MaxPooling(with stride=2)์ด ์๋ก ์ ์ธต๋ inception module๋ก ๊ตฌ์ฑ๋ ์ ๊ฒฝ๋ง์ด๋ค.
training์ ํจ์จ์ ์ธ memory์ฌ์ฉ์ ์ํ ๊ธฐ์ ์ ์ด์ ๋ก, ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์ํ๋ค.
- higher layer: Inception module ์ฌ์ฉ.
- lower layer: ์ ํ์ ์ธ convolution๋ฐฉ์
์ด๋ ๋๋ฌด ์๊ฒฉํ๊ฒ ํ์๋ค!๋ผ๊ณ ๋ ํ์ง ์์ผ๋ฉฐ, ๋จ์ํ ํ์ฌ๊ตฌํ๋ ์ผ๋ถ ์ธํ๋ผ์ ๋นํจ์จ์ฑ์ ๋ฐ์ํ๋ ๊ฒ์ด๋ค.
[Inception ๊ตฌ์กฐ์ ์ฃผ์์ด์ ]
โ ์ ์ด๋์ง์๋ ๊ณ์ฐ๋ณต์ก์ฑ์ ํญ๋ฐ์์ด, ๊ฐ ๋จ๊ณ์์ unit์๋ฅผ ํฌ๊ฒ ๋๋ฆด ์ ์๋ค๋ ๊ฒ์ด๋ค.
- ์ฐจ์์ถ์์ ubiquitous(์ด๋์์๋)์ ์ฌ์ฉ์ ๋ง์ง๋ง๋จ๊ณ์์ input filter๋ฅผ ๋ค์์ธต์ผ๋ก ์ฐจํ(shielding)ํ ์ ์๊ฒํ๋ค.
- ๋ํ ํฐ patch๋ก convolvingํ๊ธฐ ์ ์ ์ฐจ์์ ์ค์ธ๋ค.
โก ์ด ์ค๊ณ๋ฐฉ์์ ๋๋ค๋ฅธ ์ค์ฉ์ ์ธก๋ฉด์ ์๊ฐ์ ๋ณด๊ฐ ๋ค์ํ๊ท๋ชจ์์ ์งํ ๋ฐ ์งํฉํ์ฌ ๋์์ ๋ค๋ฅธ ๊ท๋ชจ๋ก๋ถํฐ์ ์ถ์์ ํน์ง์ ๋ํ ์ง๊ด์ ํ ๋นํ๋ค๋ ๊ฒ์ด๋ค.
5. GoogLeNet
- Yann LeCuns์ LeNet-5 ์ ๊ฒฝ๋ง์ ๋ํ ๊ฒฝ์๋ฅผ ํํด GoogLeNet์ด๋ผ๋ ์ด๋ฆ์ ์ง์๋๋ฐ, ILSVRC14์ ์ ์ถํ๋๋ฐ ์ฌ์ฉ๋ Inception๊ตฌ์กฐ์ ํน์ ํ์ ์ GoogLeNet์ ์ฌ์ฉํด ์ธ๊ธํ์๋ค.
- ๋ํ, ๋ ๊น๊ณ ๋์ Inception์ ๊ฒฝ๋ง์ ์ฌ์ฉํ์ ๋, ํ์ง์ ๋จ์ด์ ธ๋ ์์๋ธ์ ๊ณ๋ค์ด๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ฝ๊ฐ ๊ฐ์ ๋์๋ค.
์คํ๊ฒฐ๊ณผ, ์ ํํ ๊ตฌ์กฐ์ ํ๋ผ๋ฏธํฐ์ ์ํฅ์ด ์๋์ ์ผ๋ก ์์์ ๋ณด์ฌ์ฃผ์๊ธฐ์ ์ ๊ฒฝ๋ง์ ์ธ๋ถ์ฌํญ์ ์๋ตํ๋ค.
์ฐ๋ฆฐ ์์๋ธ 7๊ฐ๋ชจ๋ธ ์ค 6๊ฐ์ ๋ํด ์ ํํ ๋์ผํ topology(๋ค๋ฅธ ์ํ๋ง๋ฐฉ๋ฒ์ผ๋ก ํ๋ จ๋จ)๊ฐ ์ฌ์ฉ๋์๋ค.๊ฐ์ฅ ์ฑ๊ณต์ ์ธ ํน์ GoogLeNet์ ์์ฐ์ ๋ชฉ์ ์ผ๋ก ์์ ํ1์ ์ค๋ช ๋์ด์๋ค.
[Inception Module์ ๋ด๋ถ๊ตฌ์กฐ]
- ๋ชจ๋ convolution์ ReLU์ activation์ ์ฌ์ฉํ๋ค.
- ์ ๊ฒฝ๋ง์์ ์์ฉํ๋(receptive field)์ ํฌ๊ธฐ๋ ํ๊ท ๊ฐ๋ฒ(mean subtraction)์ผ๋ก 224x224์ RGB channel์ ์ทจํ๋ค.
- "#3x3 reduce" ์ "#5x5 reduce"๋ 3x3 ๋ฐ 5x5 convolution์ด์ ์ ์ฌ์ฉ๋ ์ถ์์ธต(reduction layer)์์์ 1x1 filter์๋ฅผ ๋ํ๋ธ๋ค.
- Pool proj column์ ๋ด์ฅ๋ MaxPooling ์ดํ์ translation layer์์ 1x1 filter์ ์๋ฅผ ๋ณผ ์ ์๋ค.
์ด๋ฐ ๋ชจ๋ reduction/projection layer๋ ReLU๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ด 22๊ฐ์ parameter๊ฐ ์๋ ์ธต์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. (์ ์ฒด๋ ํ๋งํฌํจ 27์ธต)
cf) [Projection layer]
- ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ฐจ์์ ๋ง์ถฐ ๋ค์ํ ํฌ๊ธฐ์ ํํฐ์ ๋ํด ์ฐ์ฐ์ ์ํํ ์ ์๋๋ก ํ๋ ์ญํ ์ ํ๋ ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ฐจ์์ ์กฐ์ ํ๋ ์ผ๋ฐ์ ์ธ convolutional layer์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก pooling layer๋ ๋ฐ์ดํฐ์ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ, Inception module์์๋ pooling layer๊ฐ ์ฌ์ฉ๋ ์ ์์ง๋ง, projection layer์๋ ๋ณ๊ฐ๋ก ๋์์ ์ฌ์ฉ๋ ์ ์๋ค.
์๋ฅผ ๋ค์ด, 5x5 ํํฐ๋ฅผ ์ ์ฉํ ๋ ์ ๋ ฅ ๋ฐ์ดํฐ์ ๊น์ด๊ฐ 192์ด๊ณ , ์ถ๋ ฅ ํน์ง ๋งต์ ๊น์ด๋ฅผ 32๋ก ์ค์ ํ๋ค๋ฉด, 1x1 ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์ ์ํํ๋ projection layer๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ๋ฐ์ดํฐ์ ๊น์ด๋ฅผ 32๋ก ์ค์ผ ์ ์๋ค. ์ด๋ ๊ฒ ์ฐจ์์ ๋ง์ถ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ํฌ๊ธฐ์ ํํฐ์ ๋ํด ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์ ์ํํ๋ฉด์ ๋ค์ํ ์ข ๋ฅ์ ํน์ง ๋งต์ ์ถ์ถํ๋ค.
- ๋ถ๋ฅ๊ธฐ(classifier) ์ด์ Average Pooling์ ์ฌ์ฉ์
[Min Lin, Qiang Chen, and Shuicheng Yan. Network in network. CoRR, abs/1312.4400, 2013.]๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค.
๋ค๋ง, ์ฐ๋ฆฌ์ ๊ตฌํ์ ์ถ๊ฐ์ ์ธ linear layer๋ฅผ ์ฌ์ฉํ๋ค๋ ์ ์์ ๋ค๋ฅด๋ค.
์ด๋ฅผ ํตํด ๋ค๋ฅธ label set์ ๋ํ ์ ๊ฒฝ๋ง์ ์ฝ๊ฒ ์ ์ฉํ๊ณ ๋ฏธ์ธ์กฐ์ ํ ์ ์๋ค.
FC.layer์์ Average Pooling์ผ๋ก ์ด๋ํ๋ฉด, ์์ 1๊ฐ์ ์ ํ๋๊ฐ ์ฝ 0.6% ํฅ์๋๋ค.
Dropout์ ์ฌ์ฉ์ ํ์ง๋ง, FC.layer๋ฅผ ์ ๊ฑฐํจ์๋ ํ์์ ์ธ ๊ฒ์ผ๋ก ๋ํ๋ฌ๋ค.
[์ฐ๋ ค์ฌํญ]
- ์ ๊ฒฝ๋ง์ ์๋์ ์ผ๋ก ๊น์ ๊น์ด ๊ณ ๋ ค์, ๋ชจ๋ ์ธต์ ํจ๊ณผ์ ์ธ ๋ฐฉ์์ผ๋ก gradient๋ฅผ ์ญ์ ํํ๋ ๋ฐฉ์์ด ์ฐ๋ ค๋์๋ค.
- ํ๊ฐ์ง ํฅ๋ฏธ๋ก์ด์ ์ ์ด๋, ์๋์ ์ผ๋ก ์์ ์ ๊ฒฝ๋ง์ ๊ฐ๋ ฅํ ์ฑ๋ฅ์ด ์ ๊ฒฝ๋ง ์ค๊ฐ์ธต์ ์ํด ์์ฑ๋ ํน์ง์ด ๋งค์ฐ ๋๋๋ฌ์ ธ์ผ๋ง(discriminative) ํ๋ค๋ ์ ์ ์์ฌํ๋ค๋ ๊ฒ์ด๋ค.
- ์ด๋ฐ ์ค๊ฐ์ธต์ ์ฐ๊ฒฐ๋ ๋ณด์กฐ๋ถ๋ฅ๊ธฐ(auxiliary classifier)๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ classifier๊ฐ ํ์๋จ๊ณ์์ ๋งค์ฐ ๋๋๋ฌ์ง๋ ํน์ง์ ๋ณด์ฌ์ค๋ค.
์ด๋, ์ญ์ ํ๋๋ gradient ์ ํธ๋ฅผ ์ฆ๊ฐ์์ผ ์ถ๊ฐ์ ์ธ ๊ท์ ํ(regularization)์ ํ ์ ์์ ๊ฒ์ด๋ค.
- ์ด๋ฐ classifier๋ Inception (4a) ๋ฐ Inception (4d) ๋ชจ๋์ ์ถ๋ ฅ์์น์ ๋ฐฐ์น๋ ๋ ์์ ConvNet์ ํํ๋ฅผ ์ทจํ๋ค.
training๊ณผ์ ์์, ๊ทธ๋ค์ Loss๋ discount weight์ธ๋ฐ, ์ด๋ ์ ๊ฒฝ๋ง์ ์ ์ฒด Loss์ ์ถ๊ฐ๋๋ค.
(๋ณด์กฐ๋ถ๋ฅ๊ธฐ(auxiliary classifier)์ Loss๋ 0.3์ weight๋ฅผ ๋ถ์ฌ.)
- ์ถ๋ก (inference)์, auxiliary classifier๋ ์ ๊ฑฐ๋๋๋ฐ, auxiliary classifier๋ฅผ ํฌํจํ ๋ถ๊ฐ์ ์ธ ์ ๊ฒฝ๋ง(extra network on the side)์ ์ ํํ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค.
• 5×5 filter์ stride=3์ ๊ฐ๋ Avg.pooling layer, (4a)์ ๊ฒฝ์ฐ 4×4×512 output, (4d) ๋จ๊ณ์ ๊ฒฝ์ฐ 4×4×528 output.
• ์ฐจ์ ์ถ์ ๋ฐ ReLU๋ฅผ ์ํ 1×1 convolution(128๊ฐ filter์กด์ฌ).
• 1024๊ฐ unit๊ณผ ReLU๋ฅผ ๊ฐ๋ FC.layer.
• Dropout(0.7)์ layer (Drop ratio = 70%)
• softmax Loss๋ฅผ classifier๋ก linear layer(main classifier์ ๋์ผํ 1000๊ฐ ํด๋์ค๋ฅผ ์์ธกํ์ง๋ง ์ถ๋ก ์๊ฐ์ ์ ๊ฑฐ๋จ).
cf) Inference time
์ถ๋ก ์๊ฐ์ ํ์ต๋ ๊ธฐ๊ณ ํ์ต ๋ชจ๋ธ์ด ์ด๋ฏธ ํ์ต๋ ํ ์๋ก์ด ์ ๋ ฅ์ ๋ํด ์์ธก ๋๋ ์ถ๋ก ์ ์ํํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด๋ค.
ํ์ต๋ ๋ชจ๋ธ์ ์๋ก์ด ๋ฐ์ดํฐ์ ์ ์ฉํ๊ณ ์ถ๋ ฅ ์์ธก์ ์์ฑํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ผ๋ก ์ฆ, ๋ชจ๋ธ์ ๋ ์ด์ด๋ฅผ ํตํด ์ ๋ ฅ ๋ฐ์ดํฐ์ ์์ ํ(foward pass)๋ฅผ ์ํํ๊ณ ์์ธก๋ ์ถ๋ ฅ์ ์์ฑํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด๋ค.
๊ฒฐ๊ณผ ๋คํธ์ํฌ์ ๊ฐ๋ต๋๋ ๊ทธ๋ฆผ 3, ์๋์ ๊ฐ๋ค.
6. Training Methodology
- ์ฐ๋ฆฌ์ ์ ๊ฒฝ๋ง์ DistBelief๋ฅผ training์ผ๋ก ์ฌ์ฉํ๋ค.
(DistBelief๋ ๋๊ท๋ชจ ๋ถ์ฐ ๊ธฐ๊ณํ์ต ์์คํ ์ผ๋ก์ ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ํ๋ซํผ์์ ์คํ๋๋ ํด๋ผ์ฐ๋ ์๋น์ค์ด๋ค. DistBelief์ ๋จ์ ์ผ๋ก๋ ๊ตฌ๊ธ ๋ด๋ถ ์ธํ๋ผ์ ๋๋ฌด ๋จ๋จํ ์ฐ๊ฒฐ๋์ด ์๋ค๋ ์ , ๋ด๋ด ๋คํธ์ํฌ๋ง ์ง์ํ๋ค๋ ์ ์ ๋ค ์์๋ค.)
- ์ฐ๋ฆฐ training์์ Asynchronous SGD(with 0.9 momentum)์ ์ฌ์ฉํ์ผ๋ฉฐ, learning rate๋ฅผ 8epoch๋ง๋ค 4%๊ฐ์ํ๋๋ก ์์ ํ๋๋ก ํ์๋ค.
- ์ฐ๋ฆฌ์ image sampling๋ฐฉ๋ฒ์ ๋ํ๋ฅผ ๊ฑฐ์น๋ฉด์ ๋ช๋ฌ๋์ ํฌ๊ฒ ๋ณํํ๋ค.
์ด๋ฏธ ํตํฉ๋๋ชจ๋ธ์ ๋ค๋ฅธ๋ฐฉ๋ฒ์ผ๋ก (decay, learning rate๊ฐ์ hyper-parameter์ ๋ณ๊ฒฝ์ผ๋ก) training์ ์งํํ์๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์ ๊ฒฝ๋ง์ trainingํ๋ ๊ฐ์ฅํจ๊ณผ์ ์ธ ํ๋์ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ๋ด๋ฆฌ๊ธฐ ์ด๋ ต๋ค.
- ๋์ฑ ๋ฐฉ๋ฒ์ ๋ณต์กํ๊ฒ ํ๊ธฐ์ํด, ๊ด๋ จ๊ฒฐ๊ณผ๋ฅผ ์๊ฒํ๊ฑฐ๋ ํฌ๊ฒํ๋ ๋ฑ์ ํ์ต์ ์งํํ์๋ค.
- ๊ทธ๋ฌ๋ ๋ํ ํ ํจ๊ณผ๊ฐ ์ข๋ค๊ณ ํ์ธํ ํ๊ฐ์ง ๊ท์น(prescription)์ ํฌ๊ธฐ๊ฐ image๋ฉด์ ์ 8~100%์ฌ์ด์ ๊ณ ๋ฅด๊ฒ ๋ถํฌํ๊ณ ๊ฐ๋ก/์ธ๋ก๊ฐ 3/4 ~ 4/3 ์ฌ์ด์์ ๋ฌด์์์ ํ๋๋ image์ ๋ค์ํ ํฌ๊ธฐ patch์ sampling์ ํฌํจํ๋ค๋ ๊ฒ์ด๋ค.
- ๋ํ, ๊ด๋์๊ณก(photometric distortion)์ด overfitting ๊ทน๋ณต์ ์ด๋์ ๋ ์ ์ฉํ๋ค๋ ๊ฒ์ ์์๋๋ค.
- ๊ฒ๋ค๊ฐ, ๋ค๋ฅธ hyper-parameter์ ๋ณํ์ ํจ๊ป ํฌ๊ธฐ์กฐ์ ์ ์ํด (bilinear, area, nearest neighbor and cubic, with equal probability ๊ฐ์) ๋ฌด์์๋ณด๊ฐ๋ฐฉ๋ฒ(random interpolation methods)์ ์๋์ ์ผ๋ก ๋ฆ๊ฒ ์ฌ์ฉํ๋ค.
๋ฐ๋ผ์ ์ต์ข ๊ฒฐ๊ณผ๊ฐ ์์ ๋ฐฉ๋ฒ์ ์ฌ์ฉ์ผ๋ก ๊ธ์ ์ ์ํฅ์ ๋ฐ์๋์ง์ ์ฌ๋ถ๋ฅผ ์ ๋์ ์ผ๋ก ํ์ ํ ์ ์๋ค.
Adam versus SGD
cf. ๋๋ถ๋ถ์ ๋
ผ๋ฌธ๋ค์์ Adam ๋์ SGD๋ฅผ ๋ง์ด ์ฌ์ฉํ๋๋ฐ ๊ทธ ์ด์ ๋ ๋ฌด์์ผ๊น? Adam optimizer: ๋ค์ํ ๋ฌธ์ ์์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ด๋ ์ต์ optimization Algorithm์ด์ง๋ง ํญ์ ์ต์ ์ ์ ํ์ ์๋๋ฐ, ์ด์ ๋ ๋ค์๊ณผ ๊ฐ๋ค. 1. Overfitting - Adam optimizer๋ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์๋ ดํ ์ ์์ง๋ง, ์ด๋ ๋ชจ๋ธ์ด ๋ฐ์ดํฐ์ ๊ณผ์ ํฉ๋ ๊ฐ๋ฅ์ฑ์ ๋์ผ ์ ์์ต๋๋ค. - ์ด๋ฐ ์ ์ ์์ ํ์ต๋ฅ ์ ์ฌ์ฉํ ๋ ๋ ๋๋๋ฌ์ง๋๋ค. 2. Data size(ํฌ๊ธฐ) - Adam optimizer๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ์์ ๋ ์ ์๋ํฉ๋๋ค. - ๊ทธ๋ฌ๋ ์์ ๋ฐ์ดํฐ ์ธํธ์์๋ SGD์ ๊ฐ์ ๋ ๊ฐ๋จํ ์๊ณ ๋ฆฌ์ฆ์ด ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ผ ์ ์์ต๋๋ค 3. Convergence speed (์๋ ด์๋) - Adam optimizer๋ ์ด๊ธฐ ํ์ต ์๋๊ฐ ๋น ๋ฅด๋ฏ๋ก ์ด๊ธฐ ํ์ต ์๋๋ฅผ ๋ฎ์ถ๋ ๊ฒ์ด ํ์ํ ์ ์์ต๋๋ค. - ๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ํ๋ฉด ์๋ ด ์๋๊ฐ ๋๋ ค์ง ์ ์์ต๋๋ค ๋ฐ๋ผ์, Adam optimizer๋ณด๋ค SGD๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฐ์ดํฐ ์ธํธ์ ํฌ๊ธฐ, ๊ณผ์ ํฉ ๋ฌธ์ , ์๋ ด ์๋ ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ์์ธ์ด ๊ด๋ จ๋๊ธฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ ๋๋ ํด๋น ๋ฌธ์ ์ ๋ฐ์ดํฐ ์ธํธ์ ๋ํ ์ดํด๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค. |
7. ILSVRC-2014 Classification. Challenge. Setup and Result
- ILSVRC 2014 classification์๋ 1.2๋ฐฑ๋ง์ training dataset. //. ๊ฐ๊ฐ 5๋ง, 10๋ง๊ฐ์ validation, test dataset์ด ์๋ค.
top-1 accuracy rate: predict class์ ground truth๋ฅผ ๋น๊ต
top-5 accuracy rate: ground truth์๋ฃ๋ฅผ ์ฒ์ 5๊ฐ์ predict class์ ๋น๊ต (ground truth์๋ฃ๊ฐ top-5์์ ์์ผ๋ฉด image๊ฐ ์ณ๊ฒ ๋ถ๋ฅ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ)
- ๋ํ์ฐธ๊ฐ์์ training์๋ ์ธ๋ถ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ง ์์๋ค.
- training ๊ธฐ์ ์ ์ด ๋ ผ๋ฌธ์์ ์ ์ (aforemention)ํ ๊ฒ๊ณผ ๊ฐ์ผ๋ฉฐ, testing์์๋ ๊ณ ์ฑ๋ฅ์ ์ป๊ธฐ ์ํด ์๋์ ๊ฐ์ ์ ๊ตํ ๊ธฐ์ ์ ์ฌ์ฉํ๋ค.
โ ๋์ผํ GoogLeNet๋ชจ๋ธ์ 7๊ฐ ๋ฒ์ ์ ๋ ๋ฆฝ์ ์ผ๋ก trainingํ๊ณ ensemble prediction์ ์ํํ๋ค.
- ์ด ๋ชจ๋ธ์ ๋์ผํ ์ด๊ธฐํ ๋ฐ learning rate๋ฐฉ์์ผ๋ก ํ๋ จํ๊ณ , sampling๋ฐฉ๋ฒ๊ณผ input image๋ ๋จ์ง ์์๋ง ๋ฌด์์๋ก ๋ค๋ฅด๋ค.
(์ด๋, ์ด๊ธฐํ๋ ์ฃผ๋ก ๋์ผํ ์ด๊ธฐํ๊ฐ์ค์น๋ฅผ ์ฌ์ฉํ๋๋ฐ, ๊ฐ๊ณผ(oversight)์ ์ด์ ๋๋ฌธ์ด์๋ค.)
โก testing๋ฐฉ์์์, AlexNet๋ณด๋ค ๋ ๊ณต๊ฒฉ์ ์ธ(aggressive) cropping ์ ๊ทผ๋ฒ์ ์ฑํํ๋ค.
- ๊ตฌ์ฒด์ ์ผ๋ก, (256, 288, 320, 352๋ก ์ ๊ฐ๊ฐ์ธ 4๊ฐ์) ๋ ์งง์ ์น์(height or width)์ ์ฌ์ฉ์ผ๋ก imageํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ค.
์ด๋, resize๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ ์ข์ธก, ์ค์ ๋ฐ ์ฐ์ธก ๋ฐฉํ(square)์ ์ทจํ๋ค(์ด์ํ์ ๊ฒฝ์ฐ์๋ ์๋จ, ์ค์ ๋ฐ ํ๋จ ๋ฐฉํ์ ์ทจํ๋ค).
- ๊ฐ ๋ฐฉํ์ ๋ํด resize๋ 224x224 ๋ฐฉํimage ๋ฟ๋ง ์๋๋ผ 4๊ฐ์ ๋ชจ์๋ฆฌ์ ์ค์์ด crop๋ 224x224๋ ์๋๊ทธ๋๋ก์ ๋ฒ์ ์ ๋ฐ์ํ๋ค(mirrored version).
- ๊ฒฐ๊ณผ์ ์ผ๋ก, ์ด๋ image ํ๋ ๋น 4×3×6×2 = 144๊ฐ์ ๊ฒฐ๊ณผ๋ฌผ์ด ์๊ธด๋ค.
- ์ดํ ๋์ค๋ ๋ด์ฉ์์ ์ ์ ์๋ฏ, ์๋น์์ ๊ฒฐ๊ณผ๋ฌผ์ด ์กด์ฌํ๋ฉด ๋ง์ ๊ฒฐ๊ณผ๋ฌผ์ ์ด์ ์ด ๋ฏธ๋ฏธํด์ง๊ธฐ์ ์ค์ ๋ก ์ ์ฉ์์๋ ์ด๋ฌํ ๊ณต๊ฒฉ์ ์ธ crop์ ํ์ํ์ง ์์ ์ ์๋ค๋ ์ ์ ์ฃผ์ํด์ผํ๋ค.
โข softmax ํ๋ฅ (probability)๋ ์ต์ข ์ ์ธ ์์ธก๊ฐ์ ์ป๊ธฐ ์ํด ์ฌ๋ฌ ๊ฒฐ๊ณผ๋ฌผ ๋ฐ ๋ชจ๋ ๊ฐ๋ณ๋ถ๋ฅ๊ธฐ(individual classifiers)์ ๊ฑธ์ณ ํ๊ท ํ๋๋ค.
- ์ฐ๋ฆฌ์ ์คํ์์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ํ MaxPooling๊ณผ classifier์ ๋ํ ํ๊ท ๊ฐ์ validation data์ ๋ํด ์ ๊ทผ๋ฐฉ๋ฒ์ ๋์์ ๋ถ์ํ์ผ๋ ์ด๋ค์ ๋จ์ํ๊ท (simple averaging)๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
[์ต์ข ์ ์ถ์ ์ ๋ฐ์ ์ธ ์ฑ๊ณผ์์ธ ๋ถ์]
- ์ฑ๊ณผ: ๋ํ์์ ์ต์ข ์ ์ถ์ validation, test data์์ 6.67%์ top-5 error๋ก 1์๋ฅผ ์ฐจ์งํ๋ค.
์ด๋ 2012๋ SuperVision๋ฐฉ์์ ๋นํด 56.5% ๋ฎ์ ์์น์ด๋ค.
classifier training์์ ์ธ๋ถ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ๋ ๋์ ์ต๊ณ ์ ๊ทผ๋ฒ์ธ Clarifai์ ๋นํด ์ฝ 40% ๊ฐ์ํ ์์น์ด๋ค.
์์ ํ๋ ์ต๊ณ ์ฑ๋ฅ์ ๊ทผ๋ฒ์ ๋ํ ํต๊ณ์ ์ผ๋ถ๋ฅผ ๋ณด์ฌ์ค๋ค.
- ์ฑ๊ณผ์์ธ ๋ถ์: ์์ ํ์์ image prediction ์ ๋ชจ๋ธ ์์ ์ฌ์ฉ๋๋ Crop์ ์๋ฅผ ๋ณ๊ฒฝํด ์ฌ๋ฌ test์ ํ์ ์ฑ๋ฅ์ ๋ถ์ํ ๊ฒ์ด๋ค.
ํ๋์ ๋ชจ๋ธ๋ง์ ์ฌ์ฉ์ validation data์์ top-1 error rate์ธ ๋ชจ๋ธ์ ์ ํ
๋ชจ๋ ์ซ์๋ test data ํต๊ณ์ overfitting๋์ง ์๋๋ก validation set์ ์ด์ฉํ๋ค.
8. ILSVRC-2014 Detection. Challenge. Setup. and. Result
9. Conclusions
- ๋ณธ ๋ ผ๋ฌธ์ ๊ฒฐ๊ณผ๋ ์ฝ๊ฒ ์ฌ์ฉ๊ฐ๋ฅํ ๊ณ ๋ฐ๋์ building block๋ค์ ์ํด ์์๋๋ ์ต์ ์ ๋น์ฝํ ๊ตฌ์กฐ๋ฅผ ๊ทผ์ฌํํ๋ ๊ฒ์ด ์ปดํจํฐ๋น์ ์ ์ํด ์คํ๊ฐ๋ฅํ ์ ๊ฒฝ๋ง ๊ฐ์ ๋ฐฉ๋ฒ์ด๋ผ๋ ๊ฒ์ ์ ์ ์๋ค.
- ์ด ๋ฐฉ๋ฒ์ ์ฃผ์ ์ด์ ์ ์๊ณ ๋ ๋์ ์ ๊ฒฝ๋ง์ ๋นํด ๊ณ์ฐ์๊ตฌ๋์ด ์ฝ๊ฐ ์ฆ๊ฐํ๊ฒ ๋ ๋์ ์๋นํ ํ์ง์ ํฅ์์ ์ป๋๋ค๋ ๊ฒ์ด๋ค.
๋ํ, context์ ํ์ฉ์ด๋ bounding box regression์ ํ์ง ์์๋ ์ฐ๋ฆฌ์ detection์ ๊ฒฝ์๋ ฅ์ด ์์์ผ๋ฉฐ ์ด ์ฌ์ค์ Inception ๊ตฌ์กฐ์ ๊ฐ์ ์ ๋ํ ์ถ๊ฐ์ ์ฆ๊ฑฐ๋ผ๋ ์ ์ ์ ๊ณตํด์ค๋ค.
- ๋น๋ก ์ ์ฌํ ๊น์ด์ ํญ์ ๊ฐ๋ ๋ expensiveํ ์ ๊ฒฝ๋ง์ ์ํด ์ ์ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ ์๋ ์์ง๋ง ์ฐ๋ฆฌ์ ์ ๊ทผ๋ฐฉ์์ ํฌ์์ ์ธ ๊ตฌ์กฐ๋ก์ ์ด๋์ด๋ผ๋ ์ ์ด ์ผ๋ฐ์ ์ผ๋ก ์คํ๊ฐ๋ฅํ๊ณ ์ ์ฉํ ์๊ฐ์ด๋ผ๋ ํ์คํ ์ฆ๊ฑฐ๋ฅผ ์ ๊ณตํ๋ค.
๐ง ๋ ผ๋ฌธ ๊ฐ์_์ค์๊ฐ๋ ํต์ฌ ์์ฝ
"Going deeper with convolutions"
CNN์ ๊ฐ๋ ๊ณผ ์ด๋ฏธ์ง ๋ถ๋ฅ ์์ ์์์ ํจ์จ์ฑ์ ์๊ฐํ๋ ์ฐ๊ตฌ ๋ ผ๋ฌธ์ผ๋ก ์ด ๋ ผ๋ฌธ์ filter ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ์ฌ๋ฌ ๋ณ๋ ฌ convolution์ ์ฌ์ฉํด CNN์ ํจ์จ์ ์ผ๋ก ํ๋ จํ๋ "Inception Module"์ด๋ผ๋ ๋ชจ๋์ ์ ์ํ๋ค.
[ํต์ฌ ๊ฐ๋ ]
1. Inception Module
- GoogLeNet ์ํคํ ์ฒ๋ ์ปค๋ ํฌ๊ธฐ(1x1, 3x3 ๋ฐ 5x5)๊ฐ ๋ค๋ฅธ ์ฌ๋ฌ ๋ณ๋ ฌ ์ปจ๋ฒ๋ฃจ์ ๊ฒฝ๋ก๋ก ๊ตฌ์ฑ๋ Inception ๋ชจ๋์ ์ฌ์ฉํ๋ค.
์ด๋ฅผ ํตํด ๋คํธ์ํฌ๋ ๋ค์ํ ๊ท๋ชจ์ ๊ธฐ๋ฅ์ ์บก์ฒํ ์ ์๊ณ ๋คํธ์ํฌ ํ๋ จ์ ๊ณ์ฐ ๋น์ฉ์ ์ค์ผ ์ ์๋ค.
- ๋ํ Inception ๋ชจ๋์๋ ์ ๋ ฅ์ ์ฐจ์์ ์ค์ด๊ณ ๊ณ์ฐ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด 1x1 ์ปจ๋ณผ๋ฃจ์ ์ด ํฌํจ๋์ด ์๋ค.
- GoogLeNet ๊ตฌ์กฐ๋ ์ฌ๋ฌ Inception ๋ชจ๋์ ์๊ณ ๋ณด์กฐ ๋ถ๋ฅ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ฒฝ๋ง์ด ์๋ก ๋ค๋ฅธ ์ธต์์ ๊ตฌ๋ณ๋๋ ํน์ง์ ํ์ตํ๋๋ก ํ๋ค.
์ด ๋ ผ๋ฌธ์ GoogLeNet ์ํคํ ์ฒ๊ฐ AlexNet ๋ฐ VGG๋ฅผ ํฌํจํ ๋ค๋ฅธ CNN ์ํคํ ์ฒ๋ณด๋ค ๋ ์ ์ ๋งค๊ฐ๋ณ์์ ๊ณ์ฐ์ผ๋ก ImageNet ๋ฐ์ดํฐ ์ธํธ์์ ์ต์ฒจ๋จ ์ฑ๋ฅ์ ๋ฌ์ฑํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
cf) depth๋ ๊น์ด์ ๊ด๋ จ, width๋ filter์ unit๊ณผ ๊ด๋ จ
2. 1x1 convolution
- GoogLeNet ๊ตฌ์กฐ๋ ๋ํ 1x1 convolution์ ์ฌ์ฉํ์ฌ ํน์ง ๋ณํ ๋ฐ ์ฐจ์ ์ถ์๋ฅผ ์ํํ๋ "๋คํธ์ํฌ ๋ด ๋คํธ์ํฌ"(Network-in-Network) layer์ ๊ฐ๋ ์ ๋์ ํ๋ค.
- Network-in-Network layer๋ Inception module๊ณผ ํจ๊ป ์ฌ์ฉ๋์ด ๋คํธ์ํฌ์ ๊ณ์ฐ ๋น์ฉ์ ๋์ฑ ์ค์ธ๋ค.
cf) 3x3, 5x5์ 1x1๋ณด๋ค expensiveํ๋ค.
3. Normalization
๊ฐ ์ธต์ ๋ํ ์ ๋ ฅ์ ์ ๊ทํํ๊ณ ๋ด๋ถ ๊ณต๋ณ๋ ์ด๋(internal covariance shift)์ ์ค์ด๋ ๋ฐฐ์น ์ ๊ทํ(Batch Normalization)์ ์ฌ์ฉ์ผ๋ก ์ ๊ฒฝ๋ง์ด ๋ ๋น ๋ฅด๊ฒ ์๋ ดํ๊ณ ๊ณผ์ ํฉ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋๊ฒํ๋ค.
์ ๋ฐ์ ์ผ๋ก ์ด ๋ ผ๋ฌธ์ ์ปค๋ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ์ฌ๋ฌ ๋ณ๋ ฌ ํฉ์ฑ๊ณฑ ๊ฒฝ๋ก(multiple parallel convolutional pathways)๋ฅผ ์ฌ์ฉํด ๊น์ CNN์ ํจ์จ์ ์ผ๋ก trainingํ๋ Inception ๋ชจ๋์ ์๊ฐํ๋ค.
์ด ๋ ผ๋ฌธ์ GoogLeNet ๊ตฌ์กฐ๊ฐ ImageNet์์ ์ต์ฒจ๋จ ์ฑ๋ฅ์ ๋ฌ์ฑํ๊ณ ์ฌ์ธต CNN trainig์ ๊ณ์ฐ ๋น์ฉ(computational cost)์ ์ค์ธ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
๐ง ๋ ผ๋ฌธ์ ์ฝ๊ณ Architecture ์์ฑ (with tensorflow)
import tensorflow as tf
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dropout, Dense, Flatten, AveragePooling2D, concatenate
def inception_module(x, filters):
# Filters is a tuple that contains the number of filters for each branch
f1, f2, f3, f4 = filters
# Branch 1
branch1 = Conv2D(f1, (1, 1), padding='same', activation='relu')(x)
# Branch 2
branch2 = Conv2D(f2, (1, 1), padding='same', activation='relu')(x)
branch2 = Conv2D(f2, (3, 3), padding='same', activation='relu')(branch2)
# Branch 3
branch3 = Conv2D(f3, (1, 1), padding='same', activation='relu')(x)
branch3 = Conv2D(f3, (5, 5), padding='same', activation='relu')(branch3)
# Branch 4
branch4 = MaxPooling2D((3, 3), strides=(1, 1), padding='same')(x)
branch4 = Conv2D(f4, (1, 1), padding='same', activation='relu')(branch4)
# Concatenate the outputs of the branches
output = concatenate([branch1, branch2, branch3, branch4], axis=-1)
return output
def GoogLeNet(input_shape, num_classes):
input = tf.keras.layers.Input(shape=input_shape)
# First Convolutional layer
x = Conv2D(64, (7, 7), strides=(2, 2), padding='same', activation='relu')(input)
x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)
# Second Convolutional layer
x = Conv2D(64, (1, 1), padding='same', activation='relu')(x)
x = Conv2D(192, (3, 3), padding='same', activation='relu')(x)
x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)
# Inception 3a
x = inception_module(x, filters=(64, 96, 128, 16))
# Inception 3b
x = inception_module(x, filters=(128, 128, 192, 32))
# Max pooling with stride 2
x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)
# Inception 4a
x = inception_module(x, filters=(192, 96, 208, 16))
# Inception 4b
x = inception_module(x, filters=(160, 112, 224, 24))
# Inception 4c
x = inception_module(x, filters=(128, 128, 256, 24))
# Inception 4d
x = inception_module(x, filters=(112, 144, 288, 32))
# Inception 4e
x = inception_module(x, filters=(256, 160, 320, 32))
# Max pooling with stride
x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)
# Inception 5a
x = inception_module(x, filters=(256, 160, 320, 32))
# Inception 5b
x = inception_module(x, filters=(384, 192, 384, 48))
# global average pooling layer
x = AveragePooling2D((7, 7), padding='same')(x)
x = Flatten()(x)
# Fully Connected layer with linear. and. Dropout
x = Dropout(0.4)(x)
x = Dense(1024, activation='relu')(x)
# softmax
output_layer = Dense(num_classes, activation='softmax')(x)
# define the model with input and output layers
model = tf.keras.Model(inputs=input, outputs=output_layer)
return model
model = GoogLeNet(input_shape=(224,224,3), num_classes=1000)
model.summary()
Model: "model"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_2 (InputLayer) [(None, 224, 224, 3 0 []
)]
conv2d_57 (Conv2D) (None, 112, 112, 64 9472 ['input_2[0][0]']
)
max_pooling2d_13 (MaxPooling2D (None, 56, 56, 64) 0 ['conv2d_57[0][0]']
)
conv2d_58 (Conv2D) (None, 56, 56, 64) 4160 ['max_pooling2d_13[0][0]']
conv2d_59 (Conv2D) (None, 56, 56, 192) 110784 ['conv2d_58[0][0]']
max_pooling2d_14 (MaxPooling2D (None, 28, 28, 192) 0 ['conv2d_59[0][0]']
)
...
conv2d_108 (Conv2D) (None, 7, 7, 384) 295296 ['concatenate_16[0][0]']
conv2d_110 (Conv2D) (None, 7, 7, 192) 331968 ['conv2d_109[0][0]']
conv2d_112 (Conv2D) (None, 7, 7, 384) 3686784 ['conv2d_111[0][0]']
conv2d_113 (Conv2D) (None, 7, 7, 48) 36912 ['max_pooling2d_25[0][0]']
concatenate_17 (Concatenate) (None, 7, 7, 1008) 0 ['conv2d_108[0][0]',
'conv2d_110[0][0]',
'conv2d_112[0][0]',
'conv2d_113[0][0]']
average_pooling2d_1 (AveragePo (None, 1, 1, 1008) 0 ['concatenate_17[0][0]']
oling2D)
flatten_1 (Flatten) (None, 1008) 0 ['average_pooling2d_1[0][0]']
dropout_1 (Dropout) (None, 1008) 0 ['flatten_1[0][0]']
dense_2 (Dense) (None, 1024) 1033216 ['dropout_1[0][0]']
dense_3 (Dense) (None, 1000) 1025000 ['dense_2[0][0]']
==================================================================================================
Total params: 23,040,216
Trainable params: 23,040,216
Non-trainable params: 0
__________________________________________________________________________________________________