-
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 - ํํฐ์ ์ฑ๋ ์๋ ์
๋ ฅ(ํํฐ์ ๋ค์ด์ค๋๊ฒ) ์ ์ฑ๋ ์์ ๊ฐ๋ค.