๐ ๊ต๋ด '์ธ๊ณต์ง๋ฅ' ์์ ์ ํตํด ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค.
1๏ธโฃ CNN
โ Architecture
๐ Convolution Neural Network
- ์ด๋ฏธ์ง ์ธ์, ์ด๋ฏธ์ง ๋ถ๋ฅ์์ ์ข์ ์ฑ๋ฅ์ ๋ณด์ด๋ ๋ชจ๋ธ์ด๋ค.
- CNN ์ ์ ๊ฒฐํฉ ๊ตฌ์กฐ๊ฐ ์๋๋ค ๐ ์๋ ์ค ์ฐ๊ฒฐ ๊ฐ์๊ฐ ์ ๋ค ๐ weight ๊ฐ์๊ฐ ์ ๋ค ๐จ ์ฐ์ฐ๋์ด ์ ๋ค
- FC layer ๋ณด๋ค ๋ ํจ๊ณผ์ ์ผ๋ก feature extraction ์ ์งํํ๊ณ ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ๋ํด ์ข์ ์ฑ๋ฅ์ ๋ณด์ธ๋ค.
โก ImageNet competition
๐ ImageNet
- ๋ฐ์ดํฐ์ ๋ช ์นญ์ผ๋ก 14000๋ง๊ฐ์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ์ด๋ค.
- 1000๊ฐ์ ์ฌ๋ฌผ ์ข ๋ฅ์ ๋ํ ์ด๋ฏธ์ง๊ฐ ๋ด๊ฒจ์ ธ ์๋ค.
- ์ด๋ฏธ์ง ์์ ์กด์ฌํ๋ ๊ฐ ์ฌ๋ฌผ์ ์ด๋ฆ์ ์ผ๋ง๋ ์ ๋ง์ถ๋๊ฐ์ ๊ดํ ํ์ ๋ํ ILSVRC ์์ CNN ์ด ํ๊ธฐ์ ์ธ ์ฑ๋ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์๋ค.
โข AlexNet
๐ 2012๋ ์ ๋ฑ์ฅํ CNN ๋ชจ๋ธ
- 5๊ฐ์ Conv layer ์ 3๊ฐ์ FC layer ๋ก ์ด๋ฃจ์ด์ง Network
- 3D Conv layer + Max Pooling ๐ Featrure extraction : low level feature ๋ถํฐ high level feature ๊น์ง ์ถ์ถ
- Dense layer ๐ Classification : ์ถ์ถ๋ high level feature ๊ฐ ๊ณต๊ฐ์์์ ์ด๋ ํ ์ ์ผ๋ก ํํ๋๊ณ FC layer ๋ ์ด๋ฅผ ๋ถ๋ฅํ๋ ์ ์ ๊ทธ๋ฆฌ๊ฒ ๋๋ค.
โข 2D Conv ์ฐ์ฐ, Zero Pad, Stride
๐ 2D Conv ์ฉ์ด ์ ๋ฆฌ
โญ input image = input activation = input feature map
โญ Filter = Kernel = Weight
โญ output image = output activation = output feature map
๐ Convolution ์ฐ์ฐ
โญ Stride : sliding window ๊ฐ ์ด๋ํ๋ ํฌ๊ธฐ
- input ์ด๋ฏธ์ง ์ ์ฒด๋ฅผ sweep ํ ๋๊น์ง convolution ์ ์ํํ๋ค.
๐ Zero Pad
- 3x3 filter ๋ก ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ์งํํ์์ง๋ง 5x5 input ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ 3x3 ์ผ๋ก ์ค์ด๋ค์๋ค.
- ๋ณธ๋ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ๋ง๊ฒ 5x5 ๋ก ์ถ๋ ฅํ๊ธฐ ์ํด zero padding ์ ์ํํ๋ค.
โฃ Convolution ํด์
๐ Convolution == Feature extraction
- ๋ฅ๋ฌ๋์์๋ ์ต์ ์ convolution kernel ์ ๊ธฐ๊ณ๊ฐ ์ง์ ํ์ตํ์ฌ ์ฐพ๋๋ค.
- filter (weight) ๊ฐ์ด ํฐ ๋ถ๋ถ์ ๋์๋๋ ๋ถ๋ถ์ ํฝ์ ๊ฐ์ด ํฌ๋ค.
โค 3D Conv
โญ input channel = input depth
- ์ปฌ๋ฌ ์ด๋ฏธ์ง๋ ๋ณดํต RGB ๋ผ๋ 3๊ฐ์ channel ์ ๊ฐ์ง๊ณ ์๋ค.
- input ์ด๋ฏธ์ง๊ฐ 3๊ฐ์ ์ฑ๋๋ก ๋ถํด๋๊ณ , filter ๋ 3D๋ก ํํ๋์ด ๊ฐ depth ๋ณ๋ก ํฉ์ฑ๊ณฑ์ ์งํํ์ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํฉํ๋ ๋ฐฉ์์ผ๋ก ์ฐ์ฐ์ ์ํํ๋ค.
- 3D input ๊ณผ 3D filter ์ ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ 2D output ์ด๋ฏธ์ง๋ฅผ ๋์ถํ๋ค.
- 3D input ๊ณผ 4D filter (ํํฐ์ ๊ฐ์๊ฐ 2๊ฐ ์ด์) ์ ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ 3D output ์ด๋ฏธ์ง๋ฅผ ๋์ถํ๋ค. ์ด๋ 3D output feature map ์๋ depth ๊ฐ ์์ฑ๋๋ค.
โญ Output channel = output depth
โฅ Summary
๐จ input featrue map (3D) = W1 x H1 x C
- C ๋ channel ๊ฐ์
๐จ Conv layer ๋ 4๊ฐ์ hyperparameter ๊ฐ ํ์ํ๋ค.
- ํํฐ์ ๊ฐ์ K : 3D filter ๊ฐ k ๊ฐ ์๋ค = output channel ์ด k๊ฐ ์กด์ฌํ๋ค.
- ํํฐ ํฌ๊ธฐ F : ๋ณดํต์ 3x3, 5x5 ์ด๋ฐ์์ผ๋ก width ์ height ๊ฐ ๊ฐ์ ํํฐ๋ฅผ ์ฌ์ฉํ๋ค.
- Stride S : sliding window ์ ํฌ๊ธฐ
- Zero padding P : p๊ฐ ๋งํผ boarder ๋ถ๋ถ์ zero value pixel ์ ๊ฐ์ธ์ค๋ค.
๐จ output feature map (3D) = W2 x H2 x K
- W2 = (W1 - F + 2*P)/S + 1
- H2 = (H1 - F + 2*P)/S + 1
๐จ ํ๋ผ๋ฏธํฐ ๊ฐ์
- F*F*C*K ๊ฐ์ weights
- K ๊ฐ์ biases (ํํฐ๋ง๋ค ํ๋์ฉ ์กด์ฌ)
โฆ Conv layer in terms of Neurons
๐ ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์ ๋ด๋ฐ ํํ๋ก ๊ทธ๋ ค๋ณด๊ธฐ
- โญ ๋ค๋ฅธ connection ์ ๋ํด ๊ฐ์ weight ๋ฅผ ๊ณต์ ํ๋ค = weight ๋ฅผ reuse (share) ํ๋ค
- ๋ง์ฝ FC layer ์๋ค๋ฉด input 9๊ฐ์ ๋ํด ๋ชจ๋ connection ์ด ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค. ๊ทธ๋ฌ๋ Conv layer ์์๋ output ํ๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ 4๊ฐ์ input feature ์ 4๊ฐ์ weight connection ๋ง ์กด์ฌํ๋ค.
- โญ FC layer ์ ๋ค๋ฅด๊ฒ Conv layer ์์๋ ์ผ๋ถ Connection ๋ง ์กด์ฌํ๋ค = Connection ์ ๊ฐ์๊ฐ ์ ๋ค
- โญ ํ๋์ ์ปค๋์ด ๊ณ์ฐ๋๋ input ์์ญ์ Receptive field ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๐ป ๋์ผํ output ์ฐ์ฐ์ ๋ํด ํ์ํ weight ๊ฐ์
FC layer | 9x4 |
Conv layer | 4 |
→ ๋ฉ๋ชจ๋ฆฌ & ๊ณ์ฐ ์ธก๋ฉด์์ ํจ์จ์ฑ์ด Conv layer ๊ฐ ํจ์ฌ ๋๋ค.
๐ป Receptive field ์ฉ์ด๊ฐ ๋ฑ์ฅํ ๋ฐฐ๊ฒฝ
- Retinal ganglion cell ๋ง๋ง์ธํฌ์ receptive field : ๋น์ ์ธ์ํ ๋ ์ ์ฒด๊ฐ ์๋ ๊ทธ ์ผ๋ถ๋ฅผ ํน์ ์ธํฌ์์ ๋ชจ์ ์ธ์ํ๋ค.
- ํฉ์ฑ๊ณฑ์์ receptive field ๋จ์๋ก ์ฐ์ฐ์ ์ํํ๊ณ layer ๊ฐ ์ฌ๋ฌ๊ฐ ์กด์ฌํ์ฌ ๊ณ ์ฐจ์์ ์ผ๋ก feature ๋ฅผ ๋ฝ์๋๊ฐ๋ ๊ณผ์ ์ด ์ค์ ๋ง๋ง์ธํฌ์ ์๋ฌผํ์ ํ์๊ณผ ๋ฎ์์๋ค.
โง Pooling = subsampling
๐ Nonlinear down-sampling
- pooling ์ ํตํด ์ด๋ฏธ์ง ์ฐจ์์ด ๋ฎ์์ง๊ธฐ ๋๋ฌธ์ down sampling ์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
- Pooling ์ฐ์ฐ์ ์ํํ๋ฉด Feature map size ๊ฐ ๊ฐ์ํ์ฌ ์ฐ์ฐ๋๊ณผ ์ฉ๋์ด ์ค์ด๋ ๋ค.
- Pooling ์ฐ์ฐ์ ์ํํ๋ฉด translation invariance ๊ฐ ๊ฐํด์ง๋ค. ์ฆ, ๋ ธ์ด์ฆ์ ๊ฐํด์ง๋ค๋ ์๋ฏธ์ธ๋ฐ, ์ด๋ ์ด๋ฏธ์ง์์ ์ฌ๋ฌผ์ด ์์ง์ผ ๋ ์ด๋ฅผ ์ ์ธ์ํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ์๋ฅผ๋ค์ด ์ฌ๊ณผ ์ด๋ฏธ์ง์ ์์น๊ฐ ์ผ์ชฝ์ผ๋ก ์์ง์ฌ๋ ์ด๋ฅผ ์ฌ๊ณผ๋ผ๊ณ ์ ์ธ์ํ๋ฉด translation invariance ์ ๊ฐํ๋ค๊ณ ํํํ๋ค.
2๏ธโฃ AlexNet
โญ Output image ํฌ๊ธฐ ๊ตฌํ๋ ๊ณต์
โฝ I : input image size (W1xH1) ์์ W1 ํฌ๊ธฐ
โฝ K : FxF kernel size ์์ F ํฌ๊ธฐ
โฝ P : padding size
โฝ S : stride
โญ max pooling ํ output ํฌ๊ธฐ ๊ตฌํ๋ ๋ฐฉ์
โฝ I : input image size (W1xH1) ์์ W1 ํฌ๊ธฐ
โฝ Ps : Pooling size
โฝ S : stride
โ ์ฒซ๋ฒ์งธ Conv
โพ input : 227x227x3 (์๋ 224x224 input ์ธ๋ฐ ์ฐ์ฐ ๊ณผ์ ์ 3 pixel ์ ์ถ๊ฐ)
โพ filter : 11x11x3 , 96๊ฐ
โพ stride = 4
โป (227 - 11)/4 + 1 = 55
โพ output : 55 x 55 x 96 ๐ ReLU ํจ์๋ก ํ์ฑํ
โพ 3x3 max pooling , with stride=2
โป (55 - 3)/2 + 1 = 27
โพ maxpooling ์ ๊ฑฐ์น ์ต์ข output : 27 x 27 x96
โพ local response normalization for ์๋ ด์๋ ๋์ด๊ธฐ : ์ฐจ์ ๋ณํ๋ ์ผ์ด๋์ง ์์
โญ normalization : convolution์ด๋ pooling์ ํน์ ํฝ์ ์ ๊ฐ์ด ๋งค์ฐ ๋์์ ์ฃผ๋ณ์ ์ํฅ์ ์ฃผ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ ๋ค๋ฅธ ๋งต์ ๊ฐ์ ์์น์ ์๋ pixel๋ผ๋ฆฌ ์ ๊ทํ(normalization)๋ฅผ ํด์ค๋ค.
โก ๋๋ฒ์งธ Conv
โพ input : ์ด์ ๋จ๊ณ์ Conv output 27 x 27 x96
โพ filter : 5x5x96 , 256๊ฐ
โพ stride = 1, padding = 2
โป (27 - 5 + 2*2)/1 + 1 = 27
โพ output : 27x27x256 ๐ ReLU ํจ์๋ก ํ์ฑํ
โพ 3x3 max pooling , with stride=2
โป (27 - 3)/2 + 1 = 13
โพ maxpooling ์ ๊ฑฐ์น ์ต์ข output : 13 x 13 x 256
โพ local response normalization for ์๋ ด์๋ ๋์ด๊ธฐ : ์ฐจ์ ๋ณํ๋ ์ผ์ด๋์ง ์์
โข ์ธ๋ฒ์งธ Conv
โพ input : ์ด์ ๋จ๊ณ์ Conv output 13 x 13 x 256
โพ filter : 3x3x256 , 384๊ฐ
โพ stride = 1
โพ pooling = same : ์ถ๋ ฅ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ์ ๋ ฅ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ๊ฐ๊ฒํ๋ ์ต์ : P = (F-1)/2 = (3-1)/2 = 1
โป (13 - 3 + 2*1)/1 + 1 = 13
โพ output : 13x13x384 ๐ ReLU ํจ์๋ก ํ์ฑํ
โฃ ๋ค๋ฒ์งธ Conv
โพ input : ์ด์ ๋จ๊ณ์ Conv output 13x13x384
โพ filter : 3x3x384 , 384๊ฐ
โพ stride = 1
โพ pooling = same : P = (F-1)/2 = (3-1)/2 = 1
โป (13 - 3 + 2*1)/1 + 1 = 13
โพ output : 13x13x384 ๐ ReLU ํจ์๋ก ํ์ฑํ
โค ๋ค์ฏ๋ฒ์งธ Conv
โพ input : ์ด์ ๋จ๊ณ์ Conv output 13x13x384
โพ filter : 3x3x384 , 256๊ฐ
โพ stride = 1
โพ pooling = same : P = (F-1)/2 = (3-1)/2 = 1
โป (13 - 3 + 2*1)/1 + 1 = 13
โพ output : 13 x 13 x256 ๐ ReLU ํจ์๋ก ํ์ฑํ
โพ max pooling 3x3 with stride =2
โป (13 - 3)/2 + 1 = 6
โพ maxpooling ์ ๊ฑฐ์น ์ต์ข output : 6 x 6 x 256
โฅ FC layer 3๊ฐ
1. First FC
- Flatten : 6x6x256 = 9,216 ์ฐจ์์ ๋ฒกํฐ๋ก ๋ง๋ฆ
- Flatten ํ ๊ฒ์ 4096๊ฐ์ ๋ด๋ฐ๊ณผ fully connected ํ ReLU ๋ก ํ์ฑํ
2. Second FC
- ์ด์ ๋จ๊ณ์ 4096๊ฐ์ ๋ด๋ฐ๊ณผ 4096๊ฐ์ ๋ด๋ฐ์ FC ํ ReLU ๋ก ํ์ฑํ
3. Third FC
- ์ด์ ๋จ๊ณ์ 4096๊ฐ์ ๋ด๋ฐ๊ณผ 1000๊ฐ์ ๋ด๋ฐ์ FC ํ ํ 1000๊ฐ์ ๋ด๋ฐ ์ถ๋ ฅ๊ฐ์ softmax ๋ฅผ ์ทจํ์ฌ 1000๊ฐ์ ํด๋์ค ๊ฐ๊ฐ์ ์ํ ํ๋ฅ ๊ฐ์ ๋์ถ
๐ป ์ฐธ๊ณ : same padding
- ์ ๋ ฅํฌ๊ธฐ์ ์ถ๋ ฅํฌ๊ธฐ๋ฅผ ๋์ผํ๊ฒ ์ ์งํ๋๋ก ํ๋ ํจ๋ฉ๊ธฐ๋ฒ
- ์ ๋ ฅ ๋ฐ์ดํฐ (Wi,Hi) ์ (F,F) ํฌ๊ธฐ์ ํํฐ๊ฐ ์์ ๋, ์ธ์ ํจ๋ฉ์ ํญ P ๋ (F-1)/2 ๊ฐ ๋๋ค.
- ์ธ์ํจ๋ฉ์ ์ ์ฉํ ์ ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ (Wi+2*P, Hi+2*P) ๊ฐ ๋๋ค.
3๏ธโฃ CNN ์ ํ์ฉ
๐พ ํ๋์จ์ด์ ๋ฐ๋ผ ๋ฅ๋ฌ๋์ ์ฐ์ฐ์๋/์ฑ๋ฅ์ด ๊ฒฐ์ ๋๋ค.
1. ์ํ๊ณ : ๋ฐ๋ํ ์ด๋ฏธ์ง๋ฅผ ์ธํ์ผ๋ก ๋ฃ์ด ๋ค์ ์๋ฅผ ์์ธกํ๊ฑฐ๋ ๋ฐ๋์ ํ์ธ๊ฐ ์ด๋์ ๋์ธ์ง๋ฅผ ํ๋ณ
2. ํ ์ฌ๋ผ ์์จ์ฃผํ ์๋์ฐจ : ์ ๋ฐฉ์ฃผ์ ์นด๋ฉ๋ผ์ CNN ๋ชจ๋ธ์ ํ์ฉํ ์ฅ๋ฉด์ธ์ ๊ธฐ์
3. ์ ํ ์ผ๊ตด์ธ์ ์ ๊ธํด์ ๊ธฐ๋ฅ
4. ์ผ์ฑ ๊ฐค๋ญ์ S21 ์นด๋ฉ๋ผ : CNN ๋ชจ๋ธ์ ํ์ฉํ ์์ํฌ์ปค์ฑ ํจ๊ณผ
'1๏ธโฃ AIโขDS > ๐ Deep learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ธ๊ณต์ง๋ฅ] ๋ค์ํ CNN ๋ชจ๋ธ (0) | 2022.04.26 |
---|---|
[์ธ๊ณต์ง๋ฅ] Training CNN (0) | 2022.04.26 |
[์ธ๊ณต์ง๋ฅ] DNN (0) | 2022.04.23 |
[์ธ๊ณต์ง๋ฅ] MLP (0) | 2022.04.21 |
[์ธ๊ณต์ง๋ฅ] Basic Neural Network (0) | 2022.04.21 |
๋๊ธ