ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2D convolution (Conv2d) ๊ณผ์ •์˜ ์ดํ•ด
    AI\ML\DL/Deep learning theory 2023. 5. 28. 14:33
    ๋ฐ˜์‘ํ˜•

    *  *  *

    RGB 3๊ฐœ ์ฑ„๋„์„ ๊ฐ€์ง„ ์ž…๋ ฅ ์ปฌ๋Ÿฌ ์‚ฌ์ง„์ด ์žˆ์„ ๋•Œ,

    ์ž…๋ ฅ์˜ ํฌ๊ธฐ๋ฅผ 3x7x7 ์ด๋ผ๊ณ  ํ•˜์ž. (3์€ ์ฑ„๋„ ๊ฐœ์ˆ˜)

    ์ด๋•Œ ํ•„ํ„ฐ (์ปค๋„) ์˜ ํฌ๊ธฐ๊ฐ€ 3x5x5 ์ด๋ฉด ํ•„ํ„ฐ ์ข…๋ฅ˜ 2๊ฐ€์ง€๋ฅผ ํ†ต๊ณผํ–ˆ์„ ๋•Œ output feature map ์ด ๋‚˜์˜ค๋Š” ๊ณผ์ •์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค.

    ์ž…๋ ฅ ์ด๋ฏธ์ง€ ์Šค์บ”

    ์ปค๋„์„ ํ†ตํ•ด ์ž…๋ ฅ ์ด๋ฏธ์ง€๋ฅผ ์ญ‰ ์Šค์บ”ํ•˜๋ฉด์„œ ํŒจํ„ด์„ ๋‚˜ํƒ€๋‚ด๋Š” feature map ์„ ์ถœ๋ ฅํ•œ๋‹ค. 

    (์ปค๋„ ์†์˜ ๊ฐ’์€ weight์™€ bias ์ด๊ณ  ํ•™์Šต ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค.)

     

    ์ด๋•Œ ์ปค๋„์˜ (์ฑ„๋„)๊ฐœ์ˆ˜๋Š” ํ•ญ์ƒ ์Šค์บ”ํ•˜๋Š” ์ž…๋ ฅ ์ด๋ฏธ์ง€์˜ ์ฑ„๋„ ๊ฐœ์ˆ˜๋ฅผ ๋˜‘๊ฐ™์ด ๋”ฐ๋ผ๊ฐ€์•ผ ํ•˜๋ฏ€๋กœ ๊ณ ์ •์ด๋‹ค. 

    ์ถœ๋ ฅ๋˜๋Š” feature map์˜ spatialํ•œ ํฌ๊ธฐ๋Š” ์ปค๋„์ด ์ด๋™ํ•˜๋Š” ์นธ์ˆ˜์ธ stride ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ, ์ปค๋„ ์‚ฌ์ด์ฆˆ์™€ stride ์— ์˜์กดํ•œ๋‹ค.

    ๋งŒ์•ฝ stride๊ฐ€ (1,1) ์ด๊ณ  padding=0์ด๋ผ๋ฉด

    feature map์˜ spatialํ•œ ํฌ๊ธฐ๋Š” 3x3์ด๋‹ค.

    ์œ„์˜ gif์ฒ˜๋Ÿผ ํ•„ํ„ฐ์˜ ์ข…๋ฅ˜๊ฐ€ 2๊ฐ€์ง€๋ผ๋ฉด feature map์˜ shape์€ 2x3x3์ด ๋œ๋‹ค. 

     

    • ํ•„ํ„ฐ์˜ ์ฑ„๋„ ์ˆ˜๋Š” ์ž…๋ ฅ(ํ•„ํ„ฐ์— ๋“ค์–ด์˜ค๋Š”๊ฒƒ) ์˜ ์ฑ„๋„ ์ˆ˜์™€ ๊ฐ™๋‹ค. 
    • Output์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ์€ feature map์˜ ๊ฐœ์ˆ˜๋งŒํผ ํ•„ํ„ฐ๋ฅผ ํ†ต๊ณผ์‹œํ‚จ๋‹ค.
      ์ฆ‰, feature map์˜ ์ฑ„๋„ ์ˆ˜๋Š” kernel์˜ ์ข…๋ฅ˜์˜ ์ˆ˜๋‹ค. 

    <torch.nn.Conv2d ๋กœ ํ™•์ธ>

     

    ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ 2์ฐจ์› ์ž…๋ ฅ์— ์‚ฌ์šฉ๋˜๋Š” 2d convolution (Conv2d) ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด

    CNN ๋ ˆ์ด์–ด๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๋žœ๋ค ๋ฐ์ดํ„ฐ๋ฅผ ํ†ต๊ณผ์‹œ์ผœ ์ถœ๋ ฅ๊ณผ ๊ฐ€์ค‘์น˜์˜ shape์„ ํ™•์ธํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. 

     

    2D convolution์€ ์ˆ˜ํ‰๊ณผ ์ˆ˜์ง ๋ฐฉํ–ฅ์œผ๋กœ stride ํฌ๊ธฐ ๋งŒํผ์”ฉ ์ด๋™ํ•˜๋ฉด์„œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์Šฌ๋ผ์ด๋”ฉํ•œ๋‹ค.

    • torch.nn.Conv2d(in_channels=3, out_channels=5, kernel_size=3, stride=1, padding=1)

    ๋ ˆ์ด์–ด์˜ ์ž…๋ ฅ ์ฑ„๋„ ์ˆ˜๋Š” 3์ด๊ณ , ์ถœ๋ ฅ ์ฑ„๋„ ์ˆ˜๋Š” 5์ด๋‹ค. ์ฆ‰, ์ด ๋ ˆ์ด์–ด๋ฅผ ํ†ต๊ณผํ•˜๋ฉด 5๊ฐœ์˜ feature map์ด depth๋กœ (๋’ค๋กœ ๋’ค๋กœ) ํ˜•์„ฑ๋œ๋‹ค๋Š” ๋œป์ด๋‹ค. 

    ์ปค๋„(ํ•„ํ„ฐ)์˜ ํฌ๊ธฐ๋Š” 3์œผ๋กœ, ์ด๋Š” 3x3 ํ”ฝ์…€์„ ์˜๋ฏธํ•œ๋‹ค. 

    ์ด ๋ ˆ์ด์–ด์— ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋กœ 4x4 ํ”ฝ์…€์„ ํŒจ๋”ฉ=1 ๋งŒํผ ๋„ฃ์–ด์„œ ์ง‘์–ด๋„ฃ์œผ๋ฉด (์ด 32๊ฐœ์ค‘) ๋ฐ์ดํ„ฐ 1๊ฐœ๋‹น output feature map์„ ํ˜•์„ฑํ•˜๋Š” ๊ณผ์ •์„ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

     

    ์ง€์ •ํ•œ Kernel ์˜ output channel ์ˆ˜๋งŒํผ output๋˜๋Š” feature map์˜ depth๊ฐ€ ํ•˜๋‚˜์”ฉ ๋’ค๋กœ ์Œ“์ด๋Š” ๊ฒƒ์ด๋‹ค.
    ํ•„ํ„ฐ์˜ ์ข…๋ฅ˜๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก feature map ์˜ depth(๊นŠ์ด, ์ฑ„๋„)๊ฐ€ ํ•˜๋‚˜์”ฉ ๋” ๊นŠ๊ฒŒ ์Œ“์ธ๋‹ค. 

     

    ์œ„ ๊ทธ๋ฆผ์—์„œ๋Š” input data ํ•œ '๊ฐœ' ์— ๋Œ€ํ•œ feature map ํ˜•์„ฑ๊ณผ์ •์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๊ณ , ์‹ค์ œ๋กœ ์ฝ”๋“œ์—์„œ๋Š” 32๊ฐœ์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ์‹คํ–‰ํ–ˆ์œผ๋‹ˆ ์‹ค์ œ๋กœ๋Š” ์œ„ ๊ทธ๋ฆผ์ด 32๊ฐœ๋งŒํผ ์•„๋ž˜๋กœ ๋” ์žˆ๋‹ค๊ณ  ๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. 

    ๋”ฐ๋ผ์„œ output์˜ shape ์€ [torch.size(32,5,4,4)] ๊ฐ€ ๋œ๋‹ค.


    <Weight์˜ ํฌ๊ธฐ>

    weight๋Š” ์ปค๋„์˜ ๊ฐ ํ”ฝ์…€ ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ (๊ฐœ,์ฑ„,ํ–‰,์—ด)๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. 

    0๋ฒˆ์งธ ์š”์†Œ 5๋Š” output channel์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๊ณ  1๋ฒˆ์งธ ์š”์†Œ 3์€ ๋“ค์–ด์˜ค๋Š” input์˜ channel์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. 

    ์˜ˆ๋ฅผ ๋“ค์–ด RGB์ด๋ฏธ์ง€์— ํ•„ํ„ฐ๋ฅผ ํ†ต๊ณผ์‹œํ‚ค๋ ค๋ฉด in_channel ์ˆ˜๋Š” ๋‹น์—ฐํžˆ 3์ด์–ด์•ผ ํ•œ๋‹ค. 

    'AI\ML\DL > Deep learning theory' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    Receptive field  (0) 2023.09.15
    Insights for CNN  (0) 2023.09.13
    Batch Normalization  (0) 2023.05.11
    ์ด์ง„๋ถ„๋ฅ˜์—์„œ Maximum Likelihood Estimation (MLE)  (1) 2023.05.10
Designed by Tistory.