๐ ๋ณธ ๋ด์ฉ์ Michigan University์ 'Deep Learning for Computer Vision' ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ฐ์ธ์ ์ผ๋ก ํ๊ธฐํ ๋ด์ฉ์
๋๋ค. ๋ด์ฉ์ ์ค๋ฅ๋ ํผ๋๋ฐฑ์ด ์์ผ๋ฉด ๋ง์ํด์ฃผ์๋ฉด ๊ฐ์ฌํ ๋ฐ์ํ๊ฒ ์ต๋๋ค.
(Stanford์ cs231n๊ณผ ๋ด์ฉ์ด ๊ฑฐ์ ์ ์ฌํ๋ ์ฐธ๊ณ ํ์๋ฉด ๋์ ๋์ค ๊ฒ ๊ฐ์ต๋๋ค)๐
1. ImageNet classification Challenge
1) ๊ฐ๋
- ์์ฒญ ํฐ ๊ท๋ชจ dataset
- ์ด๋ฏธ์ง ๋ถ๋ฅ์ ๋ํ ํฐ bench mark
- CNN์ค๊ณ์์ ๋ง์ ์์ฌ์ ๋จ๊น
- 2010, 2011๋
โ Neural Network base X 2012๋
โ CNN์ด ์ฒจ์ผ๋ก ๊ฑฐ๋ํ ์ฃผ๋ฅ๊ฐ ๋๋ ํด (AlexNet์ด ์๋ํจ)
2. AlexNet
๐ ๊ณ์ฐ๊ตฌ์กฐ ์์ฌ์ : ์ด๊ธฐ ๋ฉ๋ชจ๋ฆฌๅค,ํ๋ผ๋ฏธํฐ์(fc layer)์์, ๊ณ์ฐ๋น์ฉ(conv์์ ๅค)
1) ์ค๊ณ
![](https://velog.velcdn.com/images/ha_yoonji99/post/cb28590d-99a3-43ba-9048-48e343693d9d/image.png)
- 227 * 227 inputs
- 5 conv layers
- Max pooling
- 3 fully-connected layers
- relu ๋น์ ํ ํจ์
2) ๋จ์
- Local response normalization์ฌ์ฉ (ํ์ฌ๋ ์ฌ์ฉX, batch norm์ ์ ๊ตฌ์)
- 2๊ฐ์ GTX 580 GPU์ ํ์ต๋จ
- ๊ฐ๊ฐ 3GB ๋ฐ์ ์๋จ (ํ์ฌ๋ 12-18GB)
- GPU ๋ฉ๋ชจ๋ฆฌ์ ๋ง์ถ๊ธฐ ์ํด 2๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ฌผ๋ฆฌ์ GTX์นด๋๋ก ๋ถ์ฐ๋จ
(GPU ์ฌ๋ฌ๊ฐ๋ก ๋ถํ ์ ํ๋์์๋ ๊ฐ๋ ์ฌ์ฉํ์ง๋ง ์ฃผ๋ก ์ฌ์ฉX)
3) citations(์ธ์ฉํ์)
- ๋ชจ๋ ๊ณผํ๋ถ์ผ์์ ์ ค ์ธ์ฉ ๅค
![](https://velog.velcdn.com/images/ha_yoonji99/post/3ec68082-cdac-4752-b467-9b0d57d0473b/image.png)
4) ๊ณ์ฐ ๊ตฌ์กฐ
a. Conv Layer
![](https://velog.velcdn.com/images/ha_yoonji99/post/cbacb99f-5a38-4ed1-a3a3-7866b3258ee7/image.png)
- C=3
: RGB
- input size; H/W=227
: input size
- filters=64
: output size์ channel๊ณผ ๊ฐ์์ผ ๋จ
- output size; H/W=56
: ((W-K+2P)/S)+1
โ ((227-11+4)/4)+1 = 56
- memory(KB)=784
: (number of output elements) * (bytes per element) / 1024
โ (64(5656))*4/1024 = 784
- params(k) = 23 (ํ์ต๊ฐ๋ฅ ํ๋ผ๋ฏธํฐ ์)
: number of weights
=(weight shape)+(bias shape)
= (CoutCink*k) + Cout
= (64311*11) + 64 = 23,296
- flop(M) = 73 (์ด ์ฐ์ฐ์ = ๋ถ๋ ์์์ ์ฐ์ฐ์)
: Number of floating point operations(multipy+add)
= (number of output elements)*(1๊ฐ์ output elem๋น ์ฐ์ฐ ์)
= (CoutHโWโ) (Cink*k)
= (645656) (311*11)
= 72,855,552
b. pooling layer
![](https://velog.velcdn.com/images/ha_yoonji99/post/d077ce25-72be-4032-a034-cb8c09bc1132/image.png)
- Cin = Cout = 64
- output size; H/W = 27
: ((W-K+2P)/S)+1
= 27.5 (Alexnet์ ํญ์ ๋๋ ๋จ์ด์ง์งx)
= floor(27.5)=27 ๊ฑ ๋ด๋ฆผํจ
- memory(KB) = 182
: (number of output elements) * (bytes per element) / 1024
= 182.25
- params(k) = 0
: pooling layer์๋ learnable parameter ์์
- flop(M) = 0
: Number of floating point operations(multipy+add)
= (number of output positions)*(1๊ฐ์ output position๋น ์ฐ์ฐ ์)
= (CoutHโWโ) (kk)
= 0.4 MFlop
c. flatten
![](https://velog.velcdn.com/images/ha_yoonji99/post/f9182f69-a548-4959-a7b5-b5dac3d03e1f/image.png)
- flatten output size = 9216 (๋ชจ๋ ๊ณต๊ฐ๊ตฌ์กฐ ํ๊ดด, ๋ฒกํฐ๋ก ํ๋ฉดํ)
: Cin H W
=25666 = 9216
d. FC
![](https://velog.velcdn.com/images/ha_yoonji99/post/99cd6899-22ba-453d-b09d-0ca2e08a2a6d/image.png)
- FC params
: Cin * Cout + Cout
= 9216 * 4096 + 4096
= 37,725,832
- FC flops
: Cin * Cout
= 9216 * 4096
= 37,748,736
5) ์ ๊ณ์ฐ์์ ์ ์ ์๋ ํน์ง
- ์ํ์ฐฉ์ค์
- ์ง๊ธ์ ์ฌ์ฉ ์ ์
![](https://velog.velcdn.com/images/ha_yoonji99/post/e0712909-6c27-4cb7-a849-34ea0465f9d7/image.png)
a. Memory ์ฌ์ฉ๋
- ์ด๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ๅค
- ์ด์ ) ์ด๊ธฐ conv layer์ output์ด ์๋์ ์ผ๋ก ๋์ ๊ณต๊ฐ ํด์๋์ ๋ง์ ์์ filter๊ฐ์ ธ์
b. parameter ์
- ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ค์ fc layer์ ์กด์ฌ
- ์ด์ ) 66256์ tensor ๊ฐ์ง๊ณ ์๊ณ , 4096์ ์จ๊ฒจ์ง ์ฐจ์์ผ๋ก ์์ ํ ์ฐ๊ฒฐ๋์ด ์์ด์
- Alexnet์ ๋ชจ๋ learnable parameter๊ฐ fully connected layer์์ ๋์ด
c. ๊ณ์ฐ ๋น์ฉ
- conv layer์์ ์ฐ์ฐ๋ ๅค
- ์ด์ ) ๊ณ์ฐ ๋น์ฉ์ fc์์๋ ๋ณ๋ก ์ํผ.(๊ฑ ๊ณฑํ๊ธฐ๋ง ํด์)
๋ฐ๋ฉด conv layer์๋ filter์๊ฐ ๋ง๊ณ , ๋์ ๊ณต๊ฐ ํด์๋๋ฉด ๊ณ์ฐ๋น์ฉ โ
3. ZFNet: Bigger AlexNet
๐ ๊ณ์ฐ๊ตฌ์กฐ ์์ฌ์ : ๋ ํฐ ๋คํธ์ํฌ๊ฐ ๋ ์ฑ๋ฅ good
![](https://velog.velcdn.com/images/ha_yoonji99/post/4f296d1c-4c10-46e7-afe3-d733e9302eb5/image.png)
1) ํน์ง
2) AlexNet๊ณผ ๋ฐ๋ ์
![](https://velog.velcdn.com/images/ha_yoonji99/post/509520c6-3063-401f-9001-34946bf33891/image.png)
- conv1
- (11x11 stride 4) โ (7x7 stride 2)๋ก ๋ฐ๋
- ๊ธฐ์กด 4๋งํผ down sample โ 2๋งํผ down sample๋ก ๋ฐ๋
- ๋์ ๊ณต๊ฐ ํด์๋ & ๋ ๋ง์ receptive field & ๋ ๋ง์ ์ปดํจํ
๋น์ฉ
- conv3,4,5
- (384,384,256 filters) โ (512,1024,512)๋ก ๋ฐ๋
- filter ํฌ๊ฒ = ๋คํธ์ํฌ ๋ ํฌ๊ฒ
=โ ๊ฒฐ๋ก ) ๋ ํฐ ๋คํธ์ํฌ๊ฐ ๋ ์ฑ๋ฅ์ด ์ข๋ค
4. VGG: Deeper Networks, Regular Design
๐ ๊ณ์ฐ๊ตฌ์กฐ ์์ฌ์ : ๊ตณ์ด ํฐ ํํฐ ํ์X, conv layer๊ฐ์ ๋ ์ค์, ์ฑ๋ ์ ๋ง์์ ธ๋ ๊ณ์ฐ๋น์ฉ ๋์ผ - Stage ์ฌ์ฉ
1) AlexNet, ZFNet ๊ณตํต ๋ฌธ์ ์
- ad hoc way (๋คํธ์ํฌ ํ์ฅ, ์ถ์ ์ด๋ ค์)
- hand design ๋ง์ถคํ convolution architecture
โ VGG๋ ๋คํธ์ํฌ์ ๋์ผํ ์กฐ๊ฑด์ผ๋ก ์ ์ฒด ์ ์ฉ (๋จ์ํํจ)
2) VGG ์ค๊ณ ๊ท์น (์ ํํ ๊ตฌ์ฑ์ ๋ํด ์๊ฐX)
![](https://velog.velcdn.com/images/ha_yoonji99/post/d3e8958e-b57d-4b59-86fd-b3ca1ce23cf6/image.png)
- ๊ธฐ๋ณธ ์ธํ
- All conv are 3x3 stride 1 pad 1
- All max pool are 2x2 stride 2
- After pool, double channels
- stage
-
Alexnet์ 5๊ฐ์ conv layer์์๊ณ , VGG๋ ๋ ๊น๊ฒ ํ๊ฒ
-
1๊ฐ์ stage = conv, pooling layer๋ฑ ํฌํจ
-
VGG: 5๊ฐ์ stage
![](https://velog.velcdn.com/images/ha_yoonji99/post/13b216a2-3999-4333-b730-d96048bb9d08/image.png)
3) ํน์ ์ค๊ณ ๊ท์น ์ฑํ ์ด์
a. conv layer
![](https://velog.velcdn.com/images/ha_yoonji99/post/37617323-27b1-4b90-b3c0-6b41cf8d011a/image.png)
=โ ๊ตณ์ด ํฐ ํํฐ ํ์X โ hyperparameter๋ก kernel size ์ ๊ฒฝ ํ์X โ conv layer์๋ง ์ ๊ฒฝ
b. pooling layer
![](https://velog.velcdn.com/images/ha_yoonji99/post/fa1a175c-9e31-47a7-b32d-3fc5f7810d8b/image.png)
-
ํด์
- pool ํ ๋๋ง๋ค ์ฑ๋ ์ 2๋ฐฐ๋ก
-
์ฆ๋ช
- stage 1
![](https://velog.velcdn.com/images/ha_yoonji99/post/78d487c9-cd41-447a-a50b-a80ce322dd94/image.png)
- stage 2
![](https://velog.velcdn.com/images/ha_yoonji99/post/8722aa38-b762-4ab6-9c55-bf76a1fd6c4f/image.png)
- ๊ฒฐ๋ก =โ ์ฑ๋ ์ ๋ง์์ ธ๋, ๋ฉ๋ชจ๋ฆฌ 2๋ฐฐ ๊ฐ์, ๊ณ์ฐ ๋น์ฉ ๋์ผ
4) AlexNet vs VGG-16
![](https://velog.velcdn.com/images/ha_yoonji99/post/b5238811-8d85-4e50-9cd6-9befc6715ba1/image.png)
โ ๊ฒฐ๋ก ) ๋คํธ์ํฌ โ โ ์ฑ๋ฅ โ
5) ์ง๋ฌธ
Q. VGG๋ multiple GPU์ฌ์ฉ?
A. multiple GPU์์์ง๋ง, ๋ฐ์ดํฐ ๋ณ๋ ฌ์ฒ๋ฆฌ๋ก ๋ฐฐ์น๋ถํ & ๋ฐฐ์น๋ณ๋ก ๋ค๋ฅธ GPU์์ ๊ณ์ฐ
โ ๋ชจ๋ธ ๋ถํ X, ๋ฏธ๋๋ฐฐ์น ๋ถํ O
5. GoogLeNet: Focus on Efficiency
๐ Stem, Inception Module, Global Average pooling, Auxiliary Classifier
- ๊ธฐ์กด) network์ปค์ง๋ฉด : ์ฑ๋ฅ ๋ ์ข์
1) ๊ฐ๋
- ํจ์จ์ฑ์ ์ด์ โ ์ ์ฒด์ ์ธ ๋ณต์ก์ฑ ์ต์ํ
2) Stem network
-
๊ฐ๋
- input image๋ฅผ ์์ฒญ๋๊ฒ down samplingํจ (๊ฒฝ๋์ stem ์ด์ฉ)
- ๋ช๊ฐ์ layer๋ง์ผ๋ก ๋งค์ฐ ๋น ๋ฅด๊ฒ down sampling๊ฐ๋ฅ
- ๊ฐ๋น์ผ convolution ์ํํ์X
-
๊ตฌ์กฐ
![](https://velog.velcdn.com/images/ha_yoonji99/post/ade91350-93e1-4e62-8a96-c9c4e01e67b5/image.png)
-
VGG์์ ๋น๊ต
![](https://velog.velcdn.com/images/ha_yoonji99/post/7b8ece0a-d28f-414c-ab73-d728be2f6a21/image.png)
- VGG๊ฐ GoogleNet๋ณด๋ค 18๋ฐฐ ๋ ๋น์
3) Inception Module
-
๊ฐ๋
- ์ ์ฒด ๋คํธ์ํฌ์์ ๋ฐ๋ณต๋๋ ๋ก์ปฌ ๊ตฌ์กฐ
- ๊ธฐ์กด์ conv-conv-pool์ ๊ตฌ์กฐ์ฒ๋ผ, GoogleNet์ ์์ inception module designํด์ ์ ์ฒด ๋คํธ์ํฌ์์ ๋ฐ๋ณต
-
๊ตฌ์กฐ
![](https://velog.velcdn.com/images/ha_yoonji99/post/0db3ddfb-fa35-413d-a778-440b9dafdc40/image.png)
-
3x3 max pooling stride 1
![](https://velog.velcdn.com/images/ha_yoonji99/post/1c87c91e-b41d-455b-8726-2267d4cc8e26/image.png)
- ๊ธฐ๋ฅ
- ๊ธฐ๋ฅ1
- ๊ธฐ์กด์ kernel size๋ฅผ ๋์ ํ์ฌ 3x3 stack์ผ๋ก ๋์ฒดํ ์ ์๋จ๊ฒ
- hyper parameter๋ก kernel size์ ๊ฑฐ (ํญ์ ๋ชจ๋ kernel size ์ํํ ๊ฒ์ด๋ฏ๋ก)
- ๊ธฐ๋ฅ2
- ๋ ๋น์ผ conv (3x3โฆ) ์ฌ์ฉ์ ์ 1x1 conv์ฌ์ฉํ์ฌ, ์ฑ๋ ์ ์ค์ (bottleneckํ์ ํ์ฉ)
4) Global Average Pooling
- ๊ฐ๋
- ํ๋ผ๋ฏธํฐ๋ฅผ ์ค์ฌ์ผํ๋ฏ๋ก
- ํํํํ์ฌ ๊ณต๊ฐ์ ๋ ํ๊ดดํ๊ธฐ๋ณด๋ค, ์ ์ฒด์ ๋ํ average pooling์ผ๋ก ๊ณต๊ฐ ์ฐจ์ ์ถ์ํ ๋ค FC Layer ํ๋ฒ ์ฌ์ฉ
- ๊ตฌ์กฐ
![](https://velog.velcdn.com/images/ha_yoonji99/post/88d92bd5-17c4-4b55-bf5b-16f39c010ccb/image.png)
- VGG์ ๋น๊ต
![](https://velog.velcdn.com/images/ha_yoonji99/post/de5e8f60-7ef3-456f-b378-d0c16878acb0/image.png)
5) Auxiliary Classifiers (๋ณด์กฐ ๋ถ๋ฅ๊ธฐ)
- ๊ฐ๋
- Batch norm ๋ฐ์์ ์ ์๊น
- 10๊ฐ ์ด์ layer๊ฐ ์์๋ trainํ๊ธฐ ์ด๋ ค์ ์
- 10๊ฐ ์ด์ layer train ์ํด์ ugly hacks์ ์์กดํด์ผ ํ์
- Network ๊น์ด๊ฐ ๊น์๋, ์ค๊ฐ layer์ ํ์ต ๋๊ธฐ ์ํด ์ค๊ณ
- ์ต์ข
์ ์ผ๋ก ๋งจ ๋, ์ค๊ฐ ์ด 2๊ฐ ๊ฐ๊ฐ์์ ์ ์ ๋ฐ์
- gradient ๊ณ์ฐํด์ backpropํ์ฌ gradient ์ ํ (๋น์ ์ฌ์ธต ๋คํธ์ํฌ ์๋ ด์ํค๊ธฐ ์ํ trick)
- ์ถ๊ฐ์ ์ธ ๋ณด์กฐ ๋ถ๋ฅ๊ธฐ ์ถ๋ ฅ (gradient)๋ฅผ ์ ๊ณ์ธต์ ๋ฃ๊ณ , ์ค๊ฐ ๊ณ์ธต์๋ ์ด๊ฒ ๋์๋๋ฉฐ, ์ด๊ฒ๋ค์ ์ผ๋ถ์ ๊ธฐ๋ฐํด์ ๋ถ๋ฅํ ์ ์์ด์ผ ๋จ
6. Residual Networks
๐ batch norm ๋ฐ๊ฒฌ์ดํ/์ง๋ฆ๊ธธ/VGG(Stage) + GoogLeNet(Stem, Inception Module, Global Average pooling) ์ฌ์ฉ
1) ๋ชจ๋ธ ์์ฑ ๋ฐฐ๊ฒฝ
- ๋ฌธ์ ์
- Batch Norm๋ฐ๊ฒฌ ํ, ๊ธฐ์กด์๋ bigger layer์ด ๋ ์ฑ๋ฅ ์ข์๋๋ฐ ์ด์ ๊น์ ๋ชจ๋ธ์ด ์ฑ๋ฅ ๋ ์์ข์์ง !
= layer๊ฐ ๊น์ด์ง์๋ก ํจ์จ์ ์ธ ์ต์ ํ ๋ถ๊ฐ๋ฅ !
- ๋ฌธ์ ์ ๋ํ ์ด์ ์์
- ๊น์ ๋ชจ๋ธ์ด overfitting ๋ ๊ฑฐ๋ค.
- ๊ธฐ๋ณธ ๊ฐ์
- deeper model์ shallower model์ ๋ชจ๋ฐฉํ ์ ์๋ค
ex. 56 layer๊ฐ 20 layer๋ฅผ ๋ชจ๋ฐฉํ๋ค(20 layer์ ๋ชจ๋ layer๋ฅผ 56 layer์ copyํ๋ค๊ณ ์๊ฐ)
โ ๋ฐ๋ผ์ deeper model์ ์ต์ํ shallow model๋ณด๋ค ๋ ์ฑ๋ฅ์ด ์ข๋ค
โ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ด ๊ธฐ๋ณธ ๊ฐ์ ์์ ๋ฒ์ด๋จ
- ํด๊ฒฐ์ฑ
- layer๊ฐ ๊น์ ๊ฒฝ์ฐ, identity function์ ๋ ์ฝ๊ฒ ํ์ตํ ์ ์๋๋ก network ๋ณ๊ฒฝํด์ผ๋จ
- ๊ทธ๋ ๊ฒ ํด์ ๋์ค๊ฒ ๋๊ฒ Residual Network
๊ฒฐ๋ก ) layer๊ฐ ๊น์ด์ง์๋ก ํจ์จ์ ์ธ ์ต์ ํ ๋ถ๊ฐ๋ฅ โ layer๊ฐ ๊น์๋ identity function์ ๋ ์ฝ๊ฒ ํ์ตํ๋๋ก
2) Shortcut
-
๊ฐ๋
![](https://velog.velcdn.com/images/ha_yoonji99/post/94257cb3-3ace-48af-899b-5281bc40b6e7/image.png)
-
์ฅ์
- identity function์ ๋งค์ฐ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์์
- ์ง๋ฆ๊ธธ ์ฌ์ด์ block๋ค์ ๊ฐ์ค์น=0์ผ๋ก block identity ๊ณ์ฐ ๊ฐ๋ฅ
= deep network๊ฐ emulate(๋ชจ๋ฐฉ)ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ฆ
- gradient ์ ํ๋ฅผ ๊ฐ์ ํ๋๋ฐ ๋์
- ex. ์ญ์ ํ์ +์ผ๋, ๊ธฐ์ธ๊ธฐ๋ฅผ ์
๋ ฅ์ ๋ชจ๋ ๋ณต์ฌ. ์ด residual block์ ํตํด ์ญ์ ํ์ ์ง๋ฆ๊ธธ๋ก ๋ณต์ฌํด์ค ์ ์์
3) ๋ชจ๋ธ ๊ตฌ์กฐ
-
๊ฐ๋
-
VGG(๋จ์ํ ์ค๊ณ ์์น)์ GoogleNet(์ํ์ ๊ณ์ฐ)์ ๊ฐ์ฅ ์ข์ ๋ถ๋ถ์์ ์๊ฐ ๋ฐ์
-
๋ง์ residual block์ stack์
a. VGG์์ ๋ฐ์จ ๊ฒ
![](https://velog.velcdn.com/images/ha_yoonji99/post/c8f5f32b-73c9-4011-a4b4-c40fe624b1f0/image.png)
- ๊ฐ residual block์ 2๊ฐ์ 3x3 conv ์์
- Stage ๊ตฌ์กฐ
- ๊ฐ stage์ ์ฒซ๋ฒ์งธ block์ stride 2 conv๋ก ํด์๋ ๋ฐ์ผ๋ก ์ค์
- ์ฑ๋ 2๋ฐฐ๋ก ๋๋ฆผ
b. GoogleNet์์ ๋ฐ์จ ๊ฒ
-
Stem ๊ตฌ์กฐ
![](https://velog.velcdn.com/images/ha_yoonji99/post/ef33eb8a-3ec5-4fed-a362-826f16fcf116/image.png)
- ์ฒ์ input์ down samplingํจ
-
Global Average Pooling
![](https://velog.velcdn.com/images/ha_yoonji99/post/fa2d3a0b-77aa-4469-8fde-ed71cfe3ee42/image.png)
- ๊ทธ๋๋ก fully connected layer๋ก ์๋๊น
- ํ๋ผ๋ฏธํฐ ์ค์ด๊ธฐ ์ํจ
c. ์ฌ์ฉ์๊ฐ ์ ํด์ผํ ๊ฒ
- ์ด๊ธฐ ๋คํธ์ํฌ ๋๋น ex. C=64
- stage๋น block ์ ex. 3 residual blocks per stage
4) ๋ชจ๋ธ ์์
a. ResNet-18
![](https://velog.velcdn.com/images/ha_yoonji99/post/6c833dbf-26dc-4149-8a47-416366b8380c/image.png)
b. ResNet-34
![](https://velog.velcdn.com/images/ha_yoonji99/post/82f74a5c-9560-42d9-b22f-7d897d25a892/image.png)
-
ํด์
- ๋งค์ฐ ๋ฎ์ error ๋ฌ์ฑ
-
VGG-16๊ณผ ๋น๊ต
![](https://velog.velcdn.com/images/ha_yoonji99/post/d967cd30-93da-4a63-ac87-519369165bb3/image.png)
- ๋๋ค resnet์ด ๋ ์ข์
- GFLOP: ResNet์ ์์ downsamplingํ๊ณ ์์ํด์ ์ฐจ์ด ๋ง์ด ๋จ
5) Bottleneck Block (GoogleNet์ Inception Module)
-
๊ฐ๋
- ๋ ๊น์ด์ง์ ๋ฐ๋ผ Block design์์
-
Basic Block
![](https://velog.velcdn.com/images/ha_yoonji99/post/9ff15cbf-1a0a-41ff-9e8e-c445a2d4b504/image.png)
- ๊ฐ conv layer์์๋ง ๊ณ์ฐ ๋จ
-
Bottleneck Block
![](https://velog.velcdn.com/images/ha_yoonji99/post/79943396-a108-47be-82ff-13422d030747/image.png)
-
4๋ฐฐ ๋ง์ channel์ ์
๋ ฅ ์๋ฝ
โ ๊ฒฐ๋ก ) ๊ณ์ฐ ๋น์ฉ ์ฆ๊ฐ์ํค์ง ์์ผ๋ฉด์, ๋ ๊น์ ๋คํธ์ํฌ ๊ตฌ์ถ ๊ฐ๋ฅ
6) ์ต์ข
์ ์ฒด ๋ชจ๋ธ ๊ตฌ์กฐ
![](https://velog.velcdn.com/images/ha_yoonji99/post/7cca7018-7edd-40ef-a7ef-20a5a493ecc8/image.png)
- ๊ฐ๋
- ๊น๊ฒ ์์์๋ก, ๋ error ์ค์ด๋ฆ !!
- ๊ฒฐ๊ณผ
-
๋ค ์ด๊ฒผ์
![](https://velog.velcdn.com/images/ha_yoonji99/post/3cc3a8a4-073f-4db4-a406-b651751d881f/image.png)
7. Improving Residual Networks: Block Design
๐ Conv ์ ์ Batch norm๊ณผ Relu๋ฃ๊ธฐ
- ๊ฐ๋
- Conv ์ ์ Batch norm๊ณผ Relu๋ฅผ ๋ฃ์ด์ ์ฑ๋ฅ ๊ฐ์ ๊ฐ๋ฅ
![](https://velog.velcdn.com/images/ha_yoonji99/post/24477793-5697-4488-9cc6-a8a1c35a33c3/image.png)
8. Compare Complexity
![](https://velog.velcdn.com/images/ha_yoonji99/post/3ff6424a-6abc-4845-8ad8-99469dfcb733/image.png)
- ํด์
- size of dot: ํ์ต ํ๋ผ๋ฏธํฐ ์
- G-Ops(Operations): ํด๋น ์ํคํ
์ฒ์ ์ฌ์ ๊ฒฝ๋ก ๊ณ์ฐํ๋๋ฐ ๊ฑธ๋ฆฌ๋ FLOP์
- Inception-v4: Resnet + Inception
- VGG: ๊ฐ์ฅ ๋์ ๋ฉ๋ชจ๋ฆฌ, ๊ฐ์ฅ ๋ง์ ์ฐ์ฐ๋ (๋งค์ฐ ๋นํจ์จ)
- GoogLeNet: ๋งค์ฐ ํจ์จ์ ์ฐ์ฐ๋, ๊ทธ์น๋ง ์ฑ๋ฅ์ ๊ทธ๋ฅ..
- AlexNet: ๋งค์ฐ ์ ์ ์ฐ์ฐ๋, ๊ทธ์น๋ง ์์ฒญ ๋ง์ ํ๋ผ๋ฏธํฐ ์
- ResNet: ์ฌํ ๋์์ธ, ๋ ๋์ ํจ์จ์ฑ, ๋์ accuracy (๋ ๊น๊ฒ ์ค๊ณํจ์ ๋ฐ๋ผ)
9. Model Ensembles
- 2016 ์ฐ์น์: ์ข์ ๋ชจ๋ธ๋ค๋ผ๋ฆฌ ์์๋ธํจ
![](https://velog.velcdn.com/images/ha_yoonji99/post/63b1507e-317d-4001-99b3-2c19406403ce/image.png)
![](https://velog.velcdn.com/images/ha_yoonji99/post/3a92ee9f-ab57-451c-911c-aa91fe8175e3/image.png)
10. ResNeXt
๐ ResNet ๊ฐ์ ๋ฒ์ - Group ์ถ๊ฐ
- ๊ฐ๋
- ๊ณ์ฐ ๊ฒฐ๊ณผ
- Total FLOPs: (8Cc+9c^2)HWG
- ์ด๊ฑธ๋ก ํจํด ๋์ถ ๊ฐ๋ฅ
-
C=64,G=4,c=24 ; C=64,G=32,c=4 ์ผ๋ ์์ ๊ฐ์ ๊ฒฐ๊ณผ ๋์ถ ๊ฐ๋ฅ
โ ๊ฒฐ๋ก ) Group ์ผ๋ก ๋ณ๋ ฌ์ ์ผ๋ก ํ ๋ ๋ ์ข์ ์ฑ๋ฅ ๋ณด์
1) Grouped Convolution
2) ResNeXt์ Group ์ถ๊ฐ
- ๊ตฌ์กฐ
![](https://velog.velcdn.com/images/ha_yoonji99/post/a3e9918e-f9d1-43db-9b85-3972cde691d6/image.png)
3) Group๋ณ ์ฑ๋ฅ ๊ฒฐ๊ณผ
![](https://velog.velcdn.com/images/ha_yoonji99/post/92c0591c-747a-4eec-830e-e74a3ab4f1bb/image.png)
- ํด์
- Group์ ์ถ๊ฐํจ์ ๋ฐ๋ผ ์ฑ๋ฅ ๋ ์ข์์ง!
11. SENet
(Squeeze and Excite)
![](https://velog.velcdn.com/images/ha_yoonji99/post/fb882772-3ee1-486e-bc01-5c2fa1226338/image.png)
- ๊ฐ๋
- Residual block ์ฌ์ด์ Global pooling, FC, Sigmoid ๋ฃ์ด์ Global context ๋ง๋ฆ
![](https://velog.velcdn.com/images/ha_yoonji99/post/accc4eaf-1048-4616-913f-c23d3f4ad9ee/image.png)