avgpool
Average Pooling Layer ๋?
Feature Map์ ํ๊ท ๊ฐ์ ๊ณ์ฐํด ์ ํ์ํค๋ Layer ์ ๋๋ค.
make_avgpool_layer
ํจ์ ์ด๋ฆ: make_avgpool_layer
์ ๋ ฅ:
batch: ๋ฐฐ์น ํฌ๊ธฐ
w: ๋๋น
h: ๋์ด
c: ์ฑ๋ ์
๋์:
Average pooling ๋ ์ด์ด๋ฅผ ์์ฑํฉ๋๋ค.
์ค๋ช :
์ด ํจ์๋ Average pooling ๋ ์ด์ด๋ฅผ ์์ฑํฉ๋๋ค.
์ ๋ ฅ์ผ๋ก๋ ๋ฐฐ์น ํฌ๊ธฐ(batch), ๋๋น(w), ๋์ด(h), ์ฑ๋ ์(c)๋ฅผ ๋ฐ์ต๋๋ค.
ํจ์๋ ๋จผ์ ์์ฑ๋ ๋ ์ด์ด๋ฅผ ์ด๊ธฐํํ๊ณ , ํ๋์ ๊ฐ ๊ฐ์ ํ ๋นํฉ๋๋ค. ๊ทธ ๋ค์, ์ถ๋ ฅ ํฌ๊ธฐ์ ์ ๋ ฅ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ ์ผ๋ก ํ ๋นํฉ๋๋ค. ์ด ํจ์์์๋ l.output๊ณผ l.delta๋ฅผ ๋ฉ๋ชจ๋ฆฌ ํ ๋นํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ๋ ์ด์ด์ forward์ backward ํจ์๋ฅผ ๊ฐ๊ฐ forward_avgpool_layer์ backward_avgpool_layer ํจ์๋ก ์ค์ ํ๊ณ , ๋ ์ด์ด๋ฅผ ๋ฐํํฉ๋๋ค.
Average pooling ๋ ์ด์ด๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ ํด์ง ์์ญ์ผ๋ก ๋๋์ด ๊ฐ ์์ญ์ ํ๊ท ๊ฐ์ ๊ณ์ฐํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ๋ ฅ ๋ฐ์ดํฐ์ ๊ณต๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ์งํ๋ฉด์, ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ Convolutional Neural Network์์ ํน์ง ๋งต์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋๋ฐ์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
forward_avgpool_layer
ํจ์ ์ด๋ฆ: forward_avgpool_layer
์ ๋ ฅ:
l: avgpool_layer ๊ตฌ์กฐ์ฒด
net: network ๊ตฌ์กฐ์ฒด
๋์:
Average pooling ๋ ์ด์ด์ forward ์ฐ์ฐ์ ์ํํฉ๋๋ค.
์ค๋ช :
์ด ํจ์๋ Average pooling ๋ ์ด์ด์ forward ์ฐ์ฐ์ ์ํํฉ๋๋ค. ์ ๋ ฅ์ผ๋ก๋ avgpool_layer ๊ตฌ์กฐ์ฒด์ network ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฐ์ต๋๋ค.
ํจ์๋ ๋จผ์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ํํ๋ฉด์, ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํํฐ ํฌ๊ธฐ(h, w)๋ก ๋๋์ด ํ๊ท ๊ฐ์ ๊ณ์ฐํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ถ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. ์ดํ ํ๊ท ๊ฐ์ ์ถ๋ ฅ ๋ฐ์ดํฐ์ ์ ์ฅํฉ๋๋ค.
Average pooling ๋ ์ด์ด๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ ํด์ง ์์ญ์ผ๋ก ๋๋์ด ๊ฐ ์์ญ์ ํ๊ท ๊ฐ์ ๊ณ์ฐํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ๋ ฅ ๋ฐ์ดํฐ์ ๊ณต๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ์งํ๋ฉด์, ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ Convolutional Neural Network์์ ํน์ง ๋งต์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋๋ฐ์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
backward_avgpool_layer
ํจ์ ์ด๋ฆ: backward_avgpool_layer
์ ๋ ฅ:
l: avgpool ๋ ์ด์ด ๊ตฌ์กฐ์ฒด
net: ๋คํธ์ํฌ ๊ตฌ์กฐ์ฒด
๋์:
์ด ํจ์๋ avgpool ๋ ์ด์ด์ ์ญ์ ํ(backpropagation)๋ฅผ ์ํํ๋ค.
์ ๋ ฅ๊ฐ์ผ๋ก avgpool ๋ ์ด์ด ๊ตฌ์กฐ์ฒด l๊ณผ ๋คํธ์ํฌ ๊ตฌ์กฐ์ฒด net์ ๋ฐ์๋ค์ธ๋ค.
๊ฐ ๋ฐฐ์น(b)์ ํํฐ(k)์ ๋ํด, ๋ธํ๊ฐ(delta)์ ํ๊ท ์ ๊ณ์ฐํ๊ณ , ์ด๋ฅผ ๊ฐ๊ฐ์ ์ ๋ ฅ๊ฐ์ ๋ํด์ฃผ์ด ์ญ์ ํ๋ฅผ ์ํํ๋ค.
์ด๋ฅผ ํตํด avgpool ๋ ์ด์ด์ ์ ๋ ฅ๊ฐ์ ๋ํ ๋ฏธ๋ถ๊ฐ(gradient)์ ๊ณ์ฐํ ์ ์๋ค.
์ค๋ช :
์ด ํจ์๋ avgpool ๋ ์ด์ด์ ์ญ์ ํ๋ฅผ ๊ตฌํํ ๊ฒ์ด๋ค.
avgpool ๋ ์ด์ด๋ ์ ๋ ฅ๊ฐ์ ์์ ์ฌ๊ฐ ์์ญ์ผ๋ก ๋๋์ด ํ๊ท ๊ฐ์ ๊ตฌํ ํ ์ถ๋ ฅ๊ฐ์ผ๋ก ๋ด๋ณด๋ด๋ ๋ ์ด์ด์ด๋ค. ๋ฐ๋ผ์ ์ด ํจ์์์๋ ๊ฐ๊ฐ์ ์ ๋ ฅ๊ฐ์ ๋ํ ๋ฏธ๋ถ๊ฐ์ ๊ตฌํ๋ ๊ฒ์ด ํต์ฌ์ด๋ค.
๋ธํ๊ฐ(delta)๋ ์ถ๋ ฅ๊ฐ๊ณผ ๋์ผํ ์ฐจ์์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด ๊ฐ์ ์ด์ ๋ ์ด์ด์ ๋ฏธ๋ถ๊ฐ์ ๋ฐ์๋ค์ด๋ ์ญํ ์ ํ๋ค.
์ญ์ ํ ๊ณผ์ ์์๋, ์ด์ ๋ ์ด์ด์ ๋ฏธ๋ถ๊ฐ๊ณผ ํ์ฌ ๋ ์ด์ด์ ์ถ๋ ฅ๊ฐ์ ์ด์ฉํ์ฌ ํ์ฌ ๋ ์ด์ด์ ์ ๋ ฅ๊ฐ์ ๋ํ ๋ฏธ๋ถ๊ฐ์ ๊ณ์ฐํ๋ค.
avgpool ๋ ์ด์ด์ ๊ฒฝ์ฐ ์ ๋ ฅ๊ฐ์ ํ๊ท ํํ๋ ๊ณผ์ ์ด ํ์ํ๋ฏ๋ก, ๋ธํ๊ฐ์ ํ๊ท ์ ๊ตฌํ์ฌ ๊ฐ๊ฐ์ ์ ๋ ฅ๊ฐ์ ๋ํด์ฃผ์ด์ผ ํ๋ค.
์ด๋ฅผ ์ํด ์ถ๋ ฅ๊ฐ์ ์ธ๋ฑ์ค(out_index)์ ์ ๋ ฅ๊ฐ์ ์ธ๋ฑ์ค(in_index)๋ฅผ ๊ณ์ฐํ์ฌ ๊ฐ์ ์ ๋ฐ์ดํธํ๋ค.
resize_avgpool_layer
ํจ์ ์ด๋ฆ: resize_avgpool_layer
์ ๋ ฅ:
l: avgpool_layer ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ
w: ๋๋น
h: ๋์ด
๋์:
Average pooling ๋ ์ด์ด์ ์ ๋ ฅ ๋ฐ์ดํฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ค.
์ค๋ช :
์ด ํจ์๋ Average pooling ๋ ์ด์ด์ ์ ๋ ฅ ๋ฐ์ดํฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋๋ฐ ์ฌ๋ค.
์ ๋ ฅ์ผ๋ก๋ avgpool_layer ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ์ ์๋ก์ด ์ ๋ ฅ ์ด๋ฏธ์ง์ ํญ(w)๊ณผ ๋์ด(h)๋ฅผ ๋ฐ๋๋ค.
์ด ํจ์๋ Average pooling ๋ ์ด์ด์ w, h, inputs ๋ณ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฐ์ผ๋ก ๊ฐฑ์ ํ๋ค.
์ด๋, c๋ ๊ทธ๋๋ก ์ ์ง๋๋ค.
Average pooling ๋ ์ด์ด๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํํฐ ํฌ๊ธฐ(h, w)๋ก ๋๋์ด ํ๊ท ๊ฐ์ ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์, ์ ๋ ฅ ์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ ๋ฐ๋๋ฉด ์ ๋ ฅ ๋ฐ์ดํฐ ํฌ๊ธฐ(inputs)๋ ๋ฐ๋์ด์ผ ํ๋ค.
๋
Last updated
Was this helpful?