Convolutional Neural Networks

Royยท2022๋…„ 10์›” 6์ผ
0

DL

๋ชฉ๋ก ๋ณด๊ธฐ
2/2

๐Ÿ’ก์ด ๊ธ€์˜ ๋ชฉ์ 

๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋งˆ์ฃผํ•œ ๋‚ด์šฉ๋“ค์„ ์š”์•ฝ ๋ฐ ์ •๋ฆฌ๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ๊ณต์œ ๋ฅผ ํ•˜๋ฉด์„œ ์˜ค๊ฐœ๋… ํ˜น์€ ๊ฐœ๋…์ •๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. ๋งŽ์ด ํ”ผ๋“œ๋ฐฑํ•ด ์ฃผ์‹œ๊ณ  ๋น„ํŒํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

๐Ÿ’กOverview

CNN(Convolutional Neural Networks)๋Š” Kernel์„ ํ†ตํ•ด ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ์ธ ์ด๋ฏธ์ง€์ฒ˜๋ฆฌ์— ์œ ์šฉํ•œ ๊ธฐ๋ฒ•์œผ๋กœ Detection, Semantic Segmentation ๋“ฑ ๋งŽ์€ ๋ถ„์•ผ๋กœ ํ™•์žฅ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’กKey Concept

Define

๐Ÿ“Œ ์šฐ๋ฆฌ๋Š” ์ปดํ“จํ„ฐ์— ํ”ฝ์…€ ๋‹จ์œ„๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„  ์–ด๋–ป๊ฒŒ ํ•ด์•ผ

1. ๋ฌธ์ œ๋ฅผ ์ •์˜ํ•œ๋‹ค. : Target์ด ์—ฐ์†ํ˜•์ด๋ƒ ์ด์‚ฐํ˜•์ด๋ƒ ์ด๋ฏธ์ง€ ๋ณต์›์ด๋ƒ
2. ์ด๋ฏธ์ง€์˜ ์ฐจ์›์„ ์ •์˜ ํ•œ๋‹ค. : 28x28, channel = 3
3. kernel์„ ์ •์˜ํ•œ๋‹ค. : Kernel_size, padding, stride ๋“ฑ
4. Layer๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. : Dropout, Maxpooling
5. Target์„ ์˜ˆ์ธกํ•œ๋‹ค.

dimension

๐Ÿ“Œ์ฐจ์›์€ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์•„๋ž˜ Arithmetic์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๋‹ˆ ์ฃผ์˜ ๊นŠ๊ฒŒ ๋ด์ฃผ์‹ญ์‡ผ.

๐ŸธChannel wise

ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ์ฃผ๋Š” ์ฐจ์›์œผ๋กœ Input_channel๊ณผ Output_channel์ด ์žˆ๋‹ค. ํ•ด๋‹น ์˜ˆ์ œ์—์„œ๋Š” input_channel์€ 128, output_channel์€ 64๊ฐ€ ๋œ๋‹ค.

๐ŸธSpatial wise

๊ณต๊ฐ„์ƒ์˜ ์ฐจ์›์„ ๋งํ•˜๊ณ  ๋ˆˆ,์ฝ”,์ž…๋“ฑ์˜ ์œ„์น˜ ํ‘œํ˜„์ด๋˜์–ด์žˆ๋Š” ์ •๋ณด๋‹ค. ์˜ˆ์ œ์—์„œ๋Š” W:40๊ณผ H:50์ด ๋œ๋‹ค.

Kernel

์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ๋˜๊ณ  Neural Network๊ฐ€ ์—ฌ๊ธฐ์— ํ•ด๋‹นํ•œ๋‹ค. 3X3๋“ฑ์˜ ํฌ๊ธฐ๋ฅผ ์ •ํ•˜๊ฒŒ ๋˜๋ฉด ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์—ฐ์‚ฐํ•˜๋ฉฐ Output์„ ๊ฒฐ์ •ํ•œ๋‹ค.(Kernel์€ ์ฑ„๋„ ์ˆ˜ ๋งŒํผ ์กด์žฌํ•œ๋‹ค.)

padding

Kernel์ด ํƒ์ƒ‰ํ•˜๊ธฐ์— ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ์ฑ„์›Œ์ฃผ๋Š” ๊ฒƒ์œผ๋กœ kernel_size๋ฅผ ๊ณ ๋ คํ•ด ๋งž์ถฐ์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

stride

Kernel์„ ์ด๋™์‹œํ‚ค๋Š” step์„ ๋งํ•œ๋‹ค. 2๋ฅผ ์ฃผ๊ฒŒ๋˜๋ฉด 2๋‹จ๊ณ„ ์ด๋™์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

๐Ÿ’กArithmetic

parameter

input_channelsโˆ—output_channelsโˆ—kernel_sizeinput\_channels * output\_channels * kernel\_size

Input, Output

1x1 Convolution

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ์ดํ›„ ์„ค๋ช…ํ•  modern cnn์—์„œ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ค„์ด๊ณ  Layer๋Š” ๋” ๊นŠ๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์†Œ๊ฐœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. 1x1์ด ๊ฐ€์ ธ๋‹ค ์ฃผ๋Š” ํšจ๊ณผ๋ฅผ ์ดํ•ด๋งŒ ํ•˜๊ณ  ๋„˜์–ด ๊ฐ€์ฃผ์„ธ์š”!


์—ฌ๊ธฐ 32x32x128์˜ ์ด๋ฏธ์ง€๋ฅผ 28x28x64๋กœ ์ฐจ์›์„ ์ถ•์†Œํ•œ๋‹ค๊ณ  ์˜ˆ๋ฅผ ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค.(W,H,channel)(W,H,channel)

์•ž์„  ๊ณต์‹์— ๋”ฐ๋ผ ์‹์„ ๊ตฌํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด

128โˆ—64โˆ—(5โˆ—5)=204,800128 * 64 * (5* 5) = 204,800

ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์— 1by1 Conv๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด

์ด๋ ‡๊ฒŒ 2๊ฐœ์˜ Layer๊ตฌ์„ฑ์„ ํ†ตํ•ด ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.(1by1์€ Spatial_dimensionSpatial\_ dimension๋ฐ”๊ฟ€ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.)

{128โˆ—64โˆ—(1โˆ—1)}+{64โˆ—64โˆ—(5โˆ—5)}\{128* 64 * (1 * 1)\} + \{64 * 64 * (5* 5)\}
=8,192+102,400=110,592= 8,192+102,400 = 110,592

ํ•˜์ง€๋งŒ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ˆ˜๋Š” ํฌ๊ฒŒ ๋ณ€ํ™”๊ฐ€ 20๋งŒ๊ฒŒ์—์„œ 10๋งŒ๊ฐœ๋กœ ํ™•์—ฐํžˆ ์ค„์—ฌ์ฃผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

profile
๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค. ์ข‹์€ ์ •๋ณด ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 4์›” 20์ผ

์šฐ์˜ค,.,,,,
์ข‹๋‹ค

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ