๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš“ Self Study/๐ŸŸ  Deep Learning Basic

Deep Learning(Fully-connected Layers, CNN in PyTorch)

by UKHYUN22 2022. 1. 4.
728x90

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์ด๋‹ค.
๋ณ‘๋ ฌํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ์Œ์— ๋งŽ์€ ์ด๋“์„ ์ทจํ•  ์ˆ˜ ์žˆ๋‹ค.