-
Inception Net (2014.09)AI\ML\DL/๋ ผ๋ฌธ ๋ฆฌ๋ทฐ 2023. 9. 17. 00:07๋ฐ์ํ
* * *
Inception Net ์ Google์์ ๋ฐํํ ๋คํธ์ํฌ๋ก VGG Net๊ณผ ๊ฐ์ ํด์ ๋์จ ๋ชจ๋ธ๋ก,
ILSVRC 2014 ๋ํ์์ 1์๋ฅผ ์ฐจ์งํ ๋ชจ๋ธ์ด๋ค. GoogLeNet์ด๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
Inception Net์ Lin et al. ์ Network in Network ์ด๋ผ๋ ๋ ผ๋ฌธ๊ณผ "we need to go deeper" ์ด๋ผ๋ ์ ๋ช ํ ์ธํฐ๋ท ๋ฐ์ผ๋ก๋ถํฐ ์๊ฐ์ ๋ฐ์ ์ด๋ฆ์ ์ง์๋ค๊ณ ํ๋ค. ์ค์ ๋ก ๋ ผ๋ฌธ์์ ์๋์ internet meme์ ์ฒซ ๋ฒ์งธ๋ก ์ธ์ฉํ๋ค.
์ํ Inception ์ ํ ์ฅ๋ฉด, https://knowyourmeme.com/memes/we-need-to-go-deeper
Inception Module
Inception Module์ Inception Net ๋ด๋ถ์์ ์ด 9๋ฒ์ด๋ ๋ฐ๋ณตํ๋ ๋ชจ๋์ด๋ค.
VGGNet ๋ฅผ ์๊ฐํด๋ณด๋ฉด 3x3 conv๋ฅผ ๋ ๋ฒ ํด์ 5x5 conv ์ ๊ฐ์ receptive field๋ฅผ ์ป์์๋ค.
Inception Net์์๋ 1x1, 3x3, 5x5์ ์ฌ๋ฌ๊ฐ์ง ์ฌ์ด์ฆ๋ฅผ ๊ฐ์ง conv layer๋ฅผ ๋ค ํต๊ณผ์์ผ ๋ณด๊ณ ๊ทธ๋ ๊ฒ ์ป์ feature map ๋ค์ concat ํ๋ ์์ด๋์ด(Filter concatenation) ๋ฅผ ์ฌ์ฉํ๋ค. ์๋ ๊ทธ๋ฆผ์ Inception module์ naive version์ผ๋ก filter concatenation ์ ํ๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
์ด๋ feature map ๋ค์ depth (์ฑ๋) ๋ก ์์ผ๋ ค๋ฉด spatial (ํx์ด) size ๊ฐ ๊ฐ์์ผ๋ง ํ๋ค. ์ฆ, ์ฌ์ด์ฆ๋ฅผ ์ ๋ง์ถ๋๊ฒ ์ค์ํ๋ค.
๋ ผ๋ฌธ์์๋ inception module์ stride ๋ฅผ ๋ชจ๋ 1๋ก ๊ณ ์ ํ๊ณ padding์ ์ ์ ํ ์กฐ์ ํด์ ์ฌ์ด์ฆ๋ฅผ ๋ง์ถฐ์คฌ๋ค.
์๋ฅผ ๋ค์ด 3x3 conv ์์ stride=1 ์ผ๋ output feature map์ spatial size๋ฅผ ์ ์ง์์ผ ์ฃผ๋ ค๋ฉด padding=1 ์ด์ด์ผ ํ๋ค.
<1x1 conv๋ฅผ ํ์ฉํ ์ฐจ์ ์ถ์>
Inception Net์ 1x1 convolution ์ ์ฌ์ฉํด์ ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ ์๋ฅผ ๊ฐ์์ํจ๋ค.
์์ปจ๋ฐ feature map์ depth๋ฅผ 192์์ 128๋ก ์ถ์์ํค๋ ค๊ณ ํ ๋,
๋ฐ๋ก 3x3 ์ปค๋์ ํต๊ณผํด์ weight shape์ [128, 192, 3, 3] ๋ก ๋ง๋ ๋ค๋ฉด, 192x128x3x3 (221,184) ๊ฐ์ ํ๋ผ๋ฏธํฐ๊ฐ ํ์ํ๋ฐ3x3 ์ด์ ์ 1x1 ํฌ๊ธฐ์ ํํฐ๋ฅผ ๊ฑฐ์ณ์ ํต๊ณผํ๋ค๋ฉด (192 -> 96 -> 128)
weight shape: [96, 192, 1, 1] + [128, 96, 3, 3] = 129,024๊ฐ์ ํ๋ผ๋ฏธํฐ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ๊ทธ ์๋ฅผ ์ค์ผ ์ ์๋ค๋ ๊ฒ์ด๋ค.
1x1 ์ ๋์ค์ ํ๋ ๊ฒ๋ ์๋ํด ๋ณด์๋๋ฐ ํ๋ผ๋ฏธํฐ ์๊ฐ ๋ ์ค์ด๋ค๊ธฐ ๋๋ฌธ์ ์ฐจ์ ๊ฐ์์ฉ 1x1 conv๋ ํํฐ ์ด์ ์ ํต๊ณผ์ํค๊ธฐ๋ก ํ๋ค.
[96, 192, 1, 1] + [128, 96, 3, 3] < [96, 102, 3, 3] + [128, 96, 1, 1]
(= 129,024 < 178,176)
๋ฐ๋ฉด pooling๊ณผ 1x1 conv๋ ์์๋ฅผ ๋ฐ๊ฟ๋ ํ๋ผ๋ฏธํฐ ์์ ๋ณํ๊ฐ ์์ด์ max pooling์ ๋จผ์ ํด์ค๋ค.
์ ์ฒด ๊ตฌ์กฐ
์ ์ฒด ๊ตฌ์กฐ๋ ์์ ๊ฐ์๋ฐ ๊ธ์จ๊ฐ ๋๋ฌด ์์์ ์๋ณด์ด๋๊น ์ผ์ชฝ๋ถํฐ ํ๋ํด์ ์์๋๋ก ๋ณด๊ฒ ๋ค.
input
Notation
- 3x3+1 ์ด๋ฉด ์ฌ์ด์ฆ 3x3 ์ปค๋์ stride=1 ์ด๋ผ๋ ๋ป์ด๋ค.- S: ๋ ์ด์ด ํต๊ณผํ ํ ํ๋ ฌ ํฌ๊ธฐ๊ฐ Same์ด ๋๋๋ก padding์ ์ ์ ํ ๋ง์ถฐ์ค๋ค๋ ๋ป
- V: Valid ํ ์ ๋ค๊น์ง๋ง ์ค์บ => padding=0 ์ผ๋ก ํ๊ฒ ๋ค๋ ๋ป
LocalRespNorm (Local Response Normalization)
LRN์ normalization ๊ธฐ๋ฒ์ผ๋ก ํฝ์ ๊ฐ์ด ๋๋ฌด ํฐ ํฝ์ ์ ์ํฅ์ ์ํํด์ฃผ๋ ์ญํ ์ ํ๋ค.
$$b^{i}_{x,y}=\frac{a^{i}_{x,y}}{(k+\alpha \sum_{j=max(0,i-n/2)}^{min(N-1, i+2/N)}(a^{i}_{x,y})^{2})^{\beta }}$$
depth๋ก ์์ธ ์ธ์ ํ feature map ๋ค์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ํ๋ด ๋ณด์.
i ๋ฒ์งธ feature map์ ๊ธฐ์ค์ผ๋ก ์์ชฝ์ ๋๊ฐ์ฉ ์๋ค. ์ด๋ ๊ณ ๋ คํ ์ด์ ํํฐ์ ์๋ $n$๊ฐ๋ก ์ ํด์ค๋ค.
๊ธฐ์กด ํฝ์ ์ $a^{i}_{x,y}$ ์ด๊ณ , ์ด ํฝ์ ๊ฐ์ ์ธ์ ํ feature map ๋ค์์
๊ฐ์ ๊ณต๊ฐ์ ์์น์ ํด๋นํ๋ ๊ฐ ํฝ์ ๋ค์ ์กฐํฉ ($={(k+\alpha \sum_{j=max(0,i-n/2)}^{min(N-1, i+2/N)}(a^{i}_{x,y})^{2})^{\beta }}$) ์ผ๋ก ๋๋ ์ค์ผ๋ก์จ ๋๋ฌด ํฐ ํฝ์ ๋๋ฌธ์ ๋ค๋ฅธ ์์ ํฝ์ ๋ค์ด ๋ฌด์๋์ง ์๋๋ก normalize๋ฅผ ํด์ค๋ค.
ํ์ง๋ง ์์๋ ์ด ๊ธฐ๋ฒ์ด ์ ์์ฐ์ด๊ณ Batch normalization์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
Inception Module (โ , โก, โข, โค, โฅ, โง, โจ)
์์ ๋ณธ (b) Inception module with dimension reductions ๊ทธ๋ฆผ๊ณผ ๋์ผํ ๋ ์ด์ด๊ฐ ๋ฐ๋ณต๋๋ ๊ตฌ๊ฐ์ด๋ค.
๋ชจ๋ conv layer์ stride๋ 1์ด๊ณ padding์๋ฅผ ์กฐ์ ํด์ฃผ์ด spatial size๋ฅผ ๋ง์ถฐ์ค๋ค.
์ด๋ ํ๋ผ๋ฏธํฐ ์๋ฅผ ์ค์ด๊ธฐ ์ํด 1x1 convolution ๊ฐ ๋ค์ด์๋ค.
์์์ ์ค๋ช ํ์ผ๋ ์์ธํ ์ค๋ช ์ ์๋ตํ๊ฒ ๋ค.
Auxiliary classifiers (โฃ, โฆ)
Inception Net์๋ main classifier ๋ง๊ณ ๋ 2๊ฐ์ ๋ณด์กฐ classifier๊ฐ ๋ ์๋๋ฐ, ์ด๋ vanishing gradient๋ฅผ ๋ง๊ธฐ ์ํด ์กด์ฌํ๋ค.
auxiliary classifier 1, 2 ์์๋ softmax ๊ฐ์ ์ถ๋ ฅํด์ ์ต์ข Loss๋ฅผ ๊ตฌํ ๋ ๋ํด์ค๋ค.
์ ์ฒด loss ํจ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํด์ weighted (๋ ผ๋ฌธ์์ 0.3๋ก ์ค์ ) loss ๋ฅผ ๊ณ์ฐํด์ค๋ค.
Loss = out_loss + 0.3*(aux1_loss + aux2_loss)
ํ์ง๋ง auxiliary classifier๋ ํ๋ จ ๊ณผ์ ์์๋ง ์กด์ฌํ๊ณ test ๋ ๋ผ๋ฒ๋ฆฐ๋ค.
Main classifier
Main classifier ๊น์ง ์ด 3๊ฐ์ง์ softmax (softmax 0, softmax 1, softmax 2) ๊ฐ ๋์ค๊ฒ ๋๋ค.
์ ์ฒด ๊ตฌ์กฐ๋ฅผ ํ๋ก ๋ํ๋ธ ๊ฒ
๋ ธ๋์์ผ๋ก ์์น ํ ๋ถ๋ถ์ด 9๊ฐ์ Inception Module ์ด๋ค.
๊ทธ๋ฆผ (b) ์ ๊ฐ์ด 1x1 conv, 3x3 conv, 5x5 conv, pool project ์์ ์ป์ feature map์ concatenation ํ๋ค.
inception (3a) ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด output size 28x28x256 ์์ ์ฑ๋ ์๋ฅผ ๋ํ๋ด๋ 256์ ๊ฐ๊ฐ 1x1 conv, 3x3 conv, 5x5 conv, pool project์ ํด๋นํ๋ 64, 128, 32, 32 ๋ฅผ ํฉํ ๊ฒ์ด๋ค.
๋ค๋ฅธ inception module์๋ ๋์ผํ๊ฒ ์ ์ฉ๋๋ค.์ฑ๋ฅ ๋น๊ต ํ
์๋ ํ๋ 7๊ฐ์ ๋ชจ๋ธ (์์ ์ ์๋ ๋ชจ๋ธ๊ณผ ๋์ผํ ์ฌ์ด์ฆ 6๊ฐ + ์ข๋ ํฐ ๋ชจ๋ธ 1๊ฐ) ์ ์์๋ธํ๊ณ ์ด๋ฏธ์ง ํ๋๋ฅผ 144๊ฐ ์ด๋ฏธ์ง๋ก ๋ณํ์ ๊ฑฐ์น ๋ค์ ํต๊ณผ์์ผ 7*144=1008 ๊ฐ์ ์ถ๋ ฅ์ ํ๊ท ๋ด์ ์ต์ข ๋ถ๋ฅ๋ฅผ ์ํํ ์ฑ๋ฅ์ด๋ค.
์ด๋ 6๊ฐ์ ๋ชจ๋ธ์ ๊ตฌ์กฐ๋ถํฐ ์ด๊ธฐ weight๊น์ง ๋ชจ๋ ๋์ผํ๊ณ ๋จ์ง data ๋ณด๋ ์์๋ง ๋ค๋ฅด๊ฒ ํ๋ค๊ณ ํ๋ค.
๋ํ 144๊ฐ์ ์ด๋ฏธ์ง๋ ์ฌ๋ฌ๊ฐ์ง resize, crop ๋ฐฉ๋ฒ์ ํตํด ์ด๋ฏธ์ง์ ๋ณํ(transform)์ ๊ฑฐ์น ๊ฒ์ด๋ค. ์ผ์ข ์ TTA (Test time augmentation)์ ํ ๊ฒ์ด๋ค.
Transform ๊ธฐ๋ฒ- 4๊ฐ์ง๋ก resize (ํ ๋๋ ์ด, ๋ ์ค ์งง์ ์ชฝ์ด 256, 288, 320, 352๊ฐ ๋๋๋ก) (4๊ฐ์ง case)
- ๊ฐ๋ก๊ฐ ๊ธด ์ด๋ฏธ์ง๋ฉด ์ผ์ชฝ, ์ค, ์ค๋ฅธ์ชฝ / ์ธ๋ก๊ฐ ๊ธด ์ด๋ฏธ์ง๋ฉด ์, ์ค๊ฐ, ์๋๋ก crop (3๊ฐ์ง case)
- ์ด๋ฏธ์ง ์ข์ฐ ๋ฐ์ (2๊ฐ case)
- 224x2224 ๋ก ์ผ์ชฝ ์, ์ค๋ฅธ์ชฝ ์, ์ผ์ชฝ ์๋, ์ค๋ฅธ์ชฝ ์๋, ์ค์ฌ ์ด๋ ๊ฒ ๋ค์ฏ ๊ฐ์ง๋ก ์๋ฆ & ์๋ฅด์ง ์๊ณ 224x224 ๋ก resize ํ ๊ฒ๊น์ง ํฌํจ ์ด 5+1=6๊ฐ์ case
- ๊ทธ๋์ 4*3*2*6 = 144๊ฐ!
์์ฝ
- ์ฌ๋ฌ ์ฌ์ด์ฆ์ ํํฐ๋ฅผ ์ฌ์ฉํด์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ Concat ํด์ ์ฌ์ฉ
- 1x1 conv๋ก dimension reduction → ํ๋ผ๋ฏธํฐ ์๋ฅผ ์ค์
- Auxiliary classifier๋ก vanishing gradient๋ฅผ ์ํ
- VGGNet ๋ณด๋ค 10๋ฐฐ ์ด์ ์ ์ ํ๋ผ๋ฏธํฐ ์๋ก 1๋ฑ ๋ฌ์ฑ
- GoogLeNet ์ด๋ผ๊ณ ๋ ๋ถ๋ฆผ
'AI\ML\DL > ๋ ผ๋ฌธ ๋ฆฌ๋ทฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Transformer: Attention is all you need (0) 2023.10.23 Evaluation for Weakly Supervised Object Localization: Protocol, Metrics, and Datasets (0) 2023.10.03 VGG Net (2014.09) (0) 2023.09.16 SSD: Single-Shot Multibox Detector (0) 2023.08.24