Fully connected Layers
Neural Network์ ๋ง์ง๋ง์ Classification ๋๋ Regression์ ์ํํ๋ค.
๋ง์ด ์ฌ์ฉ๋๋ Regression์ด Detection์ด๋ค. ์ด๋ค ์ค๋ธ์ ํธ๊ฐ ์์ ๋
Bounding Box๋ฅผ ์ฐพ์๋ด๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ด๊ฒ์ด Regression ๋ฌธ์ ๋ก ํ๋ฆฐ๋ค.
CNN in PyTorch
ํ์ด์ฌ์์ ํด๋์ค๋ฅผ ์ ์ํ๋ ๋ฌธ๋ฒ. nn.Modulel์ด๋ผ๋ ํด๋์ค๋ฅผ ์์๋ฐ์์ Net์ ์ ์ํ๊ฒ ๋ค.
def๋ ๋ฉ์๋์ ํด๋นํ๋๋ฐ, __init__ ์ ์ปจ์คํธ๋ญํฐ์ ํด๋นํ๋ค. Neural Network๋ฅผ ์ ์ํ๋ค.
์
๋ ฅ Layer(RGB)๊ฐ ๋ค์ด์์ 6๊ฐ์ Feature๋ฅผ ๋ง๋ค์ด๋ธ๋ค. ๊ทธ ๋ค์ Max-pooling์ ํตํด์ ์ ๋ฐ ํฌ๊ธฐ๋ก ์ค์ธ๋ค.
๋ค์ Convolution์ ํตํด์ 16๊ฐ์ง๋ฆฌ๋ก ๋ง๋ค๊ณ ๋ค์ Max-pooling์ ํ๋ค. ์ด๋ ๊ฒ ๋๋ฉด ํฌ๊ธฐ๋ ์๊ณ ๊ฐ์๋ ์ฌ๋ฌ๊ฐ์ธ Layer๊ฐ ์กด์ฌํ๊ฒ ๋๋๋ฐ ๋ค์์ Fully connected Layer๋ฅผ ๋ฃ์๋ค.
120D -> 84D -> 10D ์ผ๋ก ํต๊ณผ์ํจ๋ค.
Conv2d๋ฅผ ํธ์ถํ ์ ์๋ค.(๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ) MaxPool2d ํด๋์ค๋ฅผ ํธ์ถํด์ ์ฌ์ฉํ ์ ์๋ค. fully connected Layer๋ฅผ Linear๋ผ๊ณ ํ์ดํ ์น์์ ๋ถ๋ฅธ๋ค.
forward ํจ์๋ฅผ ํ๋ ์ ์ํ๋ค. x๋ฅผ conv1์ ๋ฃ์ด์ ๋์์ ์ํค๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ReLU ํจ์์ ์
๋ ฅ์ํจ๋ค. ์ฆ, Weighted Sum์ Activated Function์ ํต๊ณผ์ํจ๋ค.
pooling์ ์ํค๋ฉด ๊ฐ๋ก๊ฐ ์ ๋ฐ, ์ธ๋ก๊ฐ ์ ๋ฐ์ผ๋ก ์ค์ด๋ค๊ฒ ๋๋ค.
x ๋ผ๋ ๋ณ์๋ Convolution์ ํ ๋ฒ ํต๊ณผํ ๋ฐ์ดํฐ๊ฐ ๋๊ณ ์ด๋ฅผ ๋ค์ ํ ๋ฒ ํต๊ณผ์ํจ๋ค.
๋ค์ x.view๋ผ๋ function์ด ์๋๋ฐ ์ด๋ ๋ฐ์ดํฐ์ ๋ชจ์์ ๋ฐ๊ฟ์ฃผ๋ Operator๊ฐ ๋๋ค. 5*5 ๊ฐ 16๊ฐ ์๋ ๋ชจ์์ด ๋๋ค.
3์ฐจ์ Tensor๋ฅผ 1์ฐจ์ Tensor๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
net = Net() ์ Object๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๊ณผ์ ์ด ๋๋ค.
Why CNN Works Well?
High-level์ ์ ์บ์นํ๊ณ 2์ฐจ์ ๊ตฌ์กฐ๋ฅผ ํ์งํ๋๋ฐ ๊ต์ฅํ ํ์ํ๋ค.
์๋ฅผ ๋ค์ด ๋์์์ ์ธ์ํ๋ ๊ฒฝ์ฐ ์๊ฐ ์ถ๊น์ง ํฌํจ๋์ด์ 3์ฐจ์ CNN์ ์ฌ์ฉํ๊ฒ ๋๋ค.
Vanishing gradient๋ฅผ ์ต์ ํด์ฃผ๋ ์ข์ ๊ตฌ์กฐ์ด๊ณ Overfitting์ด ์ ๊ฒ ๋ฐ์ํ๋ค.
Fully Connected๋ Parameter๊ฐ ๋๋ฌด ๋ง๋ค. ๋ฐ๋๋ก CNN์ด ๊ณ์ฐ๋์ด ์์ฒญ ๋ง๋ค.
๊ตฌ์กฐ ์์ฒด๊ฐ Flexibleํ๋ค. ๋์ผํ Layer๊ฐ ์๋๋ผ ์ฌ๋ฌ ์ข
๋ฅ์ Layer๋ฅผ ํฉ์ฑํด์ ๋ง๋ ๊ฒ์ด๋ฏ๋ก ๊ต์ฅํ ์ ์ฐํ๋ค.
๊ทธ๋ฌ๋ฏ๋ก ๊ต์ฅํ ๋ง์ ์์ด๋์ด๋ฅผ ์ปค๋ฒํ ์ ์๋ ๊ฒ์ด CNN์ด๋ค.
๋ณ๋ ฌํ๋ฅผ ํ ์ ์์์ ๋ง์ ์ด๋์ ์ทจํ ์ ์๋ค.