CNN (convolutional neural network)
- convolutioanl layer
 - pooling layer
 - fully connected layer
 
๋๋ฌด ์ ์ ๋ฆฌ๋ ๊ธ ...
CNN, Convolutional Neural Network ์์ฝ
Convolutional Neural Network, CNN์ ์ ๋ฆฌํฉ๋๋ค.
taewan.kim
์ฃผ์ ์ฉ์ด
- convolution
 - channel
 - filter = kernel
 - stride
 - padding
 - feature map = activation map
 - pooling layer
 
convolutional layer
- FC ๋ง๊ณ , CONV LAYER ์ฌ์ฉํ๋ ์ด์ 
- parameter sharing
- ์ด๋ฏธ์ง์ ํน์  ๋ถ๋ถ์์ ์ ์๋ฏธํ filter๊ฐ ์ด๋ฏธ์ง์ ๋ค๋ฅธ ๋ถ๋ถ์์๋ ์ฌ์ฉ๋ ์ ์๋ค.
 - ์ด๋ฏธ์ง์ ๊ณต๊ฐ์ ๋ณด๋ฅผ ์ ์งํ ์ ์๋ค.
 
 - sparsity of connections
- ๊ฐ๊ฐ์ output value๋ ์ ์ ์์ input์๋ง ์์กดํ๊ธฐ ๋๋ฌธ์ parameter์ ์๋ฅผ ์ค์ผ ์ ์๋ค.
 
 
 - parameter sharing
 - filter
- ์ด์ ๋ filter๋ฅผ ์ง์  ๋์์ธํ  ํ์๊ฐ ์๋ค. CNN์์ filter๋ learnable parameter์ด๋ค.
- ์ด์ ์๋ vertical edge detector, horizontal edge detector ๋ฑ์ ์ง์  ๋ง๋ค๊ธฐ๋ ํ์์ผ๋,
์ด์ ๋ ๊ทธ๋ด ํ์๊ฐ ์๋ค. 
 - ์ด์ ์๋ vertical edge detector, horizontal edge detector ๋ฑ์ ์ง์  ๋ง๋ค๊ธฐ๋ ํ์์ผ๋,
 - filter์ ํฌ๊ธฐ๋ 3*3*channel, 5*5*channel์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
 
 - ์ด์ ๋ filter๋ฅผ ์ง์  ๋์์ธํ  ํ์๊ฐ ์๋ค. CNN์์ filter๋ learnable parameter์ด๋ค.
 - padding
- ์ด๋ฏธ์ง์ ๊ฐ์ฅ ์๋ฆฌ์ ํน์  ๊ฐ์ผ๋ก ์ฑ์ ๋ฃ๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ฃผ๋ก 0์ผ๋ก ์ฑ์๋ฃ๋๋ค.
 - padding์ ์ฌ์ฉํ๋ ๋ชฉ์ 
- layer๋ฅผ ํต๊ณผํ๋ฉฐ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ์ค์ด๋๋ ๊ฒ์ ๋ง๊ธฐ ์ํ์ฌ
 - ๊ฐ์ฅ์๋ฆฌ์ ์๋ ์ ๋ณด๋ฅผ ์ฐ์ฐ์ ๋ ๋ฐ์ํ๊ธฐ ์ํ์ฌ
 
 - padding์ ์ข
๋ฅ
- valid padding : no padding
 - same padding : input size์ output size๊ฐ ๋์ผํ๋๋ก padding
 
 
 - stride
- ์ด๋ ํ ๊ฐ๊ฒฉ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ํํ  ๊ฒ์ธ์ง
- stride = 1 : ํํฐ๋ฅผ ํ ์นธ์ฉ ์์ง์ด๋ฉด์ convolution ์ฐ์ฐ ์ํ
 - stride = 2 : ํํฐ๋ฅผ ๋ ์นธ์ฉ ์์ง์ด๋ฉด์ convolution ์ฐ์ฐ ์ํ
 
 
 - ์ด๋ ํ ๊ฐ๊ฒฉ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ํํ  ๊ฒ์ธ์ง
 - ์ฐจ์
- l layer์์ convolutional layer๋ฅผ ์ ์ฉํ๋ค๊ณ  ํ์.
- F^[l] : filter size
 - P^[l] : padding size
 - S^[l] : stride size
 - C^[l] : number of filters
 - input : H^[l-1]*W^[l-1]*C^[l-1]
 - output : H^[l]*W^[l]*C^[l]
 - filter: F^[l]*F^[l]*C^[l-1]์ด C^[l]๊ฐ
 
 
 - l layer์์ convolutional layer๋ฅผ ์ ์ฉํ๋ค๊ณ  ํ์.
 
- $$ H^{[l]} = \lfloor\frac{H^{[l-1]}+2P^{[l]}-F^{[l]}}{S^{[l]}}+1\rfloor $$
 - $$ W^{[l]} = \lfloor\frac{W^{[l-1]}+2P^{[l]}-F^{[l]}}{S^{[l]}}+1\rfloor $$
 - $$ num-of-parameter = (F^{[l]}*F^{[l]}*C^{[l-1]}+1)*C^{[l]} $$
 
pooling layer
- ํ์ต๋๋ ํ๋ผ๋ฏธํฐ ์กด์ฌํ์ง ์๋๋ค (parameter = 0)
 - input, output channel์ด ๋ณํ์ง ์๋๋ค.
 - pooling 
- max pooling
 - average pooling
 
 - ์ฐจ์
- F : filter size
 - S : stride
 - IH : input height, IW : input width, IC : input channel
 - OH : output height, OW : output width, OC : output channel
 - OH = floor( (IH-F)/S+1 )
 - OW = floor( (IW-F)/S+1 )
 - IC = OC
 
 
fully connected layer
- input์ flattenํ ๋ค, FC ์ ์ฉ
 - ๋ง์ง๋ง FC layer์ unit์ ์๋ class์ ์์ ์ผ์นํด์ผ ํ๋ค.
 
'๐ > Coursera_DL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| WEEK6 : Inception (googLeNet) (0) | 2020.12.23 | 
|---|---|
| WEEK6 : ResNet (0) | 2020.12.23 | 
| WEEK5 : end to end DL (0) | 2020.12.21 | 
| WEEK5 : Multi-Task Learning (0) | 2020.12.20 | 
| WEEK5 : Transfer Learning (0) | 2020.12.20 |