Deep Learning/Network

VGGNet16 - Network ๊ตฌ์กฐ ๋ฐ ๊ตฌํ˜„

KimTory 2023. 2. 23. 00:28

๐Ÿ’กNetwork

Learing Rate๋Š” Gradient์˜ ๋ณดํญ์„ ๋งํ•œ๋‹ค.
Deep Learning  Network์ด ํ™•๋ฅ ์  ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•(SGD) ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ›ˆ๋ จ ํ•˜๋Š” ๋ฐ,
์‚ฌ์šฉ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค. Learing Rate๋Š” ์„ฑ๋Šฅ์— ๊ฝค ํฐ ์˜ํ–ฅ์„ ์ฃผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋ฉฐ,
ํ•™์Šต๋˜๋Š” ๋ชจ๋ธ์˜ weight์˜ ์ตœ์ ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ์ฐพ์•„ ๋‚˜๊ฐˆ ์ง€ ๋ณดํญ์„ ์ •ํ•œ๋‹ค. (hyper param)
โ–ถ Hyper Parameter๋Š” user๊ฐ€ ์ง์ ‘ ์…‹ํŒ… ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด๋ฉฐ, knn or lr rate ๋“ฑ..

VGG16 Network

vgg block

 


 

๐Ÿ‘‰ ํŠน์ง•

Network Depth์™€ ์„ฑ๋Šฅ ์˜ํ–ฅ์— ์ง‘์ค‘์„ ์œ„ํ•ด ๋“ฑ์žฅ ํ•˜์˜€์œผ๋ฉฐ,  Kernel Size๊ฐ€ ํฌ๋ฉด Image Size ์ถ•์†Œ๊ฐ€ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ด๋ค„์ ธ์„œ ๋” ๊นŠ์€ ์ธต์„ ๋งŒ๋“ค๊ธฐ ์–ด๋ ค์šฐ๋ฉฐ, Parameter ์ˆ˜์™€ ๋งŽ์€ ์—ฐ์‚ฐ๋Ÿ‰๋„ ํ•„์š”ํ•จ.
์ด๋ฅผ ๋Œ€์‘ ํ•˜๊ธฐ ์œ„ํ•ด Convolution Kernel Size๋ฅผ 3x3์œผ๋กœ ๊ณ ์ •ํ•˜์—ฌ, ์œ„์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ.
AlexNet์˜ 11x11, 5x5์™€ ๊ฐ™์€ ํฐ Receptive Field๋ฅผ ๊ฐ€์ง„ Kernel Size๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š๊ณ ๋„,
3x3 Kernel์„ ์—ฐ์†์ ์œผ๋กœ ์ ์šฉ, Alex Net๋ณด๋‹ค ๋” ๊นŠ์€ Network์„ ๊ตฌ์„ฑํ•˜๋‚˜,
Parameter ๊ฐœ์ˆ˜๋กœ ์—ฐ์‚ฐ ์„ฑ๋Šฅ์„ ๊ฐœ์„ 

 ๐Ÿ‘‰ VGG๋Š” ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต๊ณผ ํ’€๋ง ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ ๋˜๋Š” CNN์ด๋ฉฐ, VGG11 - 13 - 16 - 19์ธต์ด ์กด์žฌ
 


โœ๏ธ Receptive Field

  • ์ž…๋ ฅ(Image or Feature Map)์—์„œ Feature๋ฅผ ๋งŒ๋“œ๋Š” ์˜์—ญ์˜ ๊ธฐ๋ณธ ํฌ๊ธฐ(Size)
  • ํŠน์ • output node๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด, ํ•„์š”ํ•œ input size๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. (output node์˜ ์ง‘ํ•ฉ์€ feature map)
    output node 1๊ฐœ์˜ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด, 3๊ฐœ์˜ input์ด ํ•„์š”ํ•˜๋ฏ€๋กœ receptive field๋Š” 3๊ฐœ๋‹ค.

https://data-science-hi.tistory.com/128

 

๐Ÿš€ ์ ์šฉ ๋ฐฉ์‹

  • ๋‹จ๊ณ„ 1: 5x5, 11x11์™€ ๊ฐ™์€ ๋„“์€ ํฌ๊ธฐ์˜ kernel๋กœ Convolution ์—ฐ์‚ฐ์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, ์—ฌ๋Ÿฌ ๊ฐœ์˜ 3x3 Conv
                ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋›ฐ์–ด๋‚œ Feature ์ถ”์ถœ ํšจ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • ๋‹จ๊ณ„ 2: 3x3 size kernel์„ 2 ~ 3๋ฒˆ ์—ฐ์†ํ•ด์„œ conv ์ ์šฉํ•œ ๋’ค, max pooling ์—ฐ์‚ฐ ํ•˜์—ฌ ์ผ๋ จ์˜ conv feature map
                 block์„ ์ƒ์„ฑํ•จ (์ƒ๋‹จ Network์— ๋Œ€ํ•œ ์„ค๋ช… ๊ทธ๋ฆผ ์ฐธ๊ณ )
  • ๋‹จ๊ณ„ 3: ๊ฐœ๋ณ„ block ๋‚ด์—์„œ๋Š” ๋™์ผํ•œ kernel size์™€ ch ๊ฐฏ์ˆ˜๋ฅผ ์ ์šฉํ•˜์—ฌ ๋™์ผํ•œ ํฌ๊ธฐ์˜ feature map์„ ์ƒ์„ฑ
  • ๋‹จ๊ณ„ 4 : ์ด์ „ block ๋‚ด์— ์žˆ๋Š” feature map ๋Œ€๋น„, ์ƒˆ๋กœ์šด block ๋‚ด์— Feature map size๋Š” 2๋ฐฐ๋กœ ์ค„์–ด ๋“ค์ง€๋งŒ, ์ฑ„๋„ ์ˆ˜๋Š” 2๋ฐฐ๋กœ ๋Š˜์–ด๋‚จ (last block ์ œ์™ธ)

๐Ÿ“ https://github.com/CVKim/VGG_Trainable

 

GitHub - CVKim/VGG_Trainable

Contribute to CVKim/VGG_Trainable development by creating an account on GitHub.

github.com

๐Ÿ“ https://github.com/CVKim/VGG-Layer-Dev

 

GitHub - CVKim/VGG-Layer-Dev

Contribute to CVKim/VGG-Layer-Dev development by creating an account on GitHub.

github.com

๐Ÿ“ https://github.com/CVKim/VGG-CIFAR10-Inference

 

GitHub - CVKim/VGG-CIFAR10-Inference

Contribute to CVKim/VGG-CIFAR10-Inference development by creating an account on GitHub.

github.com