
๋ ๋ค๋ฅธ ๊ฐ์ฒด ๊ฐ์ง ์์ ์ด ์์ต๋๋ค. ์ฐ์ ์์๋ ํ์ฉ ๊ฐ๋ฅํ ์ ํ๋๋ฅผ ์ ์งํ๋ฉด์ ์์ ์๋๋ฅผ ๋์ด๋ ๊ฒ์ ๋๋ค. YOLOv3 ์ํคํ ์ฒ๋ฅผ ๊ฐ์ ธ์ ๋ค์ ํ์ต์ํต๋๋ค. ์ ํ๋(mAp75)๋ 0.95 ์ด์์ ๋๋ค. ํ์ง๋ง ์คํ ์๋๋ ์ฌ์ ํ ๋๋ฆฝ๋๋ค. ์ ์ฅ.
์ค๋์ ์์ํ๋ฅผ ์ฐํํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ปท ์๋์์๋ ๋ชจ๋ธ ๊ฐ์ง์น๊ธฐ โ ์ ํ๋๋ฅผ ๋จ์ด๋จ๋ฆฌ์ง ์์ผ๋ฉด์ ์ถ๋ก ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ๋คํธ์ํฌ์ ๋ถํ์ํ ๋ถ๋ถ์ ์๋ผ๋ ๋๋ค. ์๊ฐ์ ์ผ๋ก๋ โ ์ด๋์์, ์ผ๋ง๋, ์ด๋ป๊ฒ ์๋ผ๋ผ ์ ์๋์ง์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ์์ ์ ์๋์ผ๋ก ์ํํ๋ ๋ฐฉ๋ฒ๊ณผ ์๋ํํ ์ ์๋ ๋ถ๋ถ์ ๋ถ์ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก โ ์ผ๋ผ์ค ์ ์ฅ์๋ฅผ ์๊ฐํฉ๋๋ค.
์๊ฐ
์ด์ ์ง์ฅ์ธ Perm Macroscop์์ ์ ๋ ํ ๊ฐ์ง ์ต๊ด์ ๋ค์์ต๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์คํ ์๊ฐ์ ํญ์ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋คํธ์ํฌ ์คํ ์๊ฐ์ ์ ์ ์ฑ ํํฐ๋ฅผ ํตํด ํญ์ ํ์ธํ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ๋ก๋์ ํ๊ฒฝ์์๋ ์ต์ฒจ๋จ ๊ธฐ์ ์ด ์ด ํํฐ๋ฅผ ํต๊ณผํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ Pruning์ ์์ํ๊ฒ ๋์์ต๋๋ค.
๊ฐ์ง์น๊ธฐ๋ ์ค๋๋ ์ฃผ์ ๋ก ๋
ผ์๋์์ต๋๋ค. 2017๋
์ ๊ฐ๋ฐ๋์์ต๋๋ค. ํต์ฌ ์์ด๋์ด๋ ๋ค์ํ ๋
ธ๋๋ฅผ ์ ๊ฑฐํ์ฌ ์ ํ๋๋ฅผ ๋จ์ด๋จ๋ฆฌ์ง ์๊ณ ํ์ต๋ ๋คํธ์ํฌ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๊ฒ์
๋๋ค. ๋ฉ์ง ์์ด๋์ด ๊ฐ์ง๋ง, ์ค์ ๋ก ์ฌ์ฉํ๋ ์ฌ๋ก๋ ๊ฑฐ์ ์์ต๋๋ค. ์๋ง๋ ๊ตฌํ ์ฌ๋ก๊ฐ ๋ถ์กฑํ๊ฑฐ๋, ๋ฌ์์์ด ๊ด๋ จ ๋ฌธ์๊ฐ ์๊ฑฐ๋, ์๋๋ฉด ๋ชจ๋๊ฐ ๋
ธํ์ฐ๋ฅผ ์ ๋ฆฌํ๋ ๋ฐ๋ง ์ง์คํ๊ณ ์นจ๋ฌตํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ง๋ง ์์๋ด๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค
์๋ฌผํ์ ๋ํ ๊ณ ์ฐฐ
์๋ฌผํ์์ ์ป์ ์์ด๋์ด๊ฐ ๋ฅ๋ฌ๋์ ์ ๋ชฉ๋๋ ๊ฑธ ์ ๋ง ์ข์ํฉ๋๋ค. ์งํ๋ก ์ฒ๋ผ ๋ฅ๋ฌ๋๋ ์ ๋ขฐํ ์ ์๊ณ ์. ReLU๊ฐ ?)
๋ชจ๋ธ ๊ฐ์ง์น๊ธฐ ๊ณผ์ ์ ์๋ฌผํ๊ณผ๋ ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋์ด ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋คํธ์ํฌ์ ๋ฐ์์ ๋์ ๊ฐ์์ฑ์ ๋น์ ํ ์ ์์ต๋๋ค. ์ด ์ฑ ์๋ ๋ช ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ์ฌ๋ก๊ฐ ์์ต๋๋ค. :
- ๋์ ์ ๋ฐ๋ง ๊ฐ์ง๊ณ ํ์ด๋ ์ฌ์ฑ์ ๋๊ฐ ์์๋ ์ ๋ฐ์ ๊ธฐ๋ฅ์ ์ํํ๋๋ก ์ค์ค๋ก๋ฅผ ์ฌํ๋ก๊ทธ๋จํ์ต๋๋ค.
- ๊ทธ ๋จ์๋ ์๊ฐ์ ๋ด๋นํ๋ ๋ ๋ถ์๋ฅผ ์ ๋จํ์ต๋๋ค. ์๊ฐ์ด ์ง๋๋ฉด์ ๋์ ๋ค๋ฅธ ๋ถ์๋ค์ด ๊ทธ ๊ธฐ๋ฅ์ ๋์ ํ๊ฒ ๋์์ต๋๋ค. (๋ค์ ๋ฐ๋ณตํ์ง๋ ์๊ฒ ์ต๋๋ค.)
๋ฐ๋ผ์ ๋ชจ๋ธ์์ ์ฝํ ๋ฒ๋ค ์ค ์ผ๋ถ๋ฅผ ์๋ผ๋ผ ์ ์์ต๋๋ค. ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ์๋ ๋จ์ ๋ฒ๋ค๋ก ์๋ฆฐ ๋ฒ๋ค์ ๋์ฒดํ ์ ์์ต๋๋ค.
์ ์ดํ์ต์ ์ข์ํ์๋์, ์๋๋ฉด ์ฒ์๋ถํฐ ๋ฐฐ์ฐ๊ณ ๊ณ์ ๊ฐ์?
์ต์ 1๋ฒ. Yolov3, Retina, Mask-RCNN ๋๋ U-Net์์ ์ ์ด ํ์ต์ ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง COCO์ฒ๋ผ 80๊ฐ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์ธ์ํ ํ์๋ ๊ฑฐ์ ์์ต๋๋ค. ์ ์ค์ต์์๋ ๋ชจ๋ ๊ฒ์ 1~2๊ฐ ํด๋์ค๋ก ์ ํํฉ๋๋ค. 80๊ฐ ํด๋์ค์ ๋ํ ์ํคํ ์ฒ๋ ์ฌ๊ธฐ์ ์ค๋ณต๋๋ค๊ณ ๊ฐ์ ํ ์ ์์ต๋๋ค. ์ํคํ ์ฒ๋ฅผ ์ค์ฌ์ผ ํ๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค. ๊ฒ๋ค๊ฐ, ๊ธฐ์กด์ ์ฌ์ ํ์ต๋ ๊ฐ์ค์น๋ฅผ ์์ง ์๊ณ ์ด ์์ ์ ์ํํ๊ณ ์ถ์ต๋๋ค.
๋ ๋ฒ์งธ ์ต์ . ๋ฐ์ดํฐ์ ์ปดํจํ ๋ฆฌ์์ค๊ฐ ๋ง๊ฑฐ๋, ์๋๋ฉด ์์ฃผ ํน๋ณํ ์ํคํ ์ฒ๊ฐ ํ์ํ ์๋ ์์ต๋๋ค. ๊ทธ๊ฑด ์ค์ํ์ง ์์ต๋๋ค. ํ์ง๋ง ๋คํธ์ํฌ๋ฅผ ์ฒ์๋ถํฐ ํ์ต์ํค๋ ๊ฒ๋๋ค. ์ผ๋ฐ์ ์ธ ์ ์ฐจ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด๊ณ , ์ฑ๋ฅ์ด ์ค๋ณต๋๋ ์ํคํ ์ฒ๋ฅผ ์ ํํ๊ณ , ๊ณผ์ ํฉ์ผ๋ก ์ธํ ๋๋กญ์์์ ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค. ์นผ, ์ ๋ 0.6๊ฐ์ ๋๋กญ์์์ ๋ดค์ต๋๋ค.
๋ ๊ฒฝ์ฐ ๋ชจ๋ ๋คํธ์ํฌ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ๋๊ธฐ ๋ถ์ฌ. ์ด์ ๊ฐ์ง์น๊ธฐ๊ฐ ์ด๋ค ์ข ๋ฅ์ ๊ฐ์ง์น๊ธฐ์ธ์ง ์์๋ณด๊ฒ ์ต๋๋ค.
์ผ๋ฐ ์๊ณ ๋ฆฌ์ฆ
์ฐ๋ฆฌ๋ ์ฃผ๋ฆ์ ์ ๊ฑฐํ๊ธฐ๋ก ํ์ต๋๋ค. ๊ฝค ๊ฐ๋จํด ๋ณด์ ๋๋ค.

ํฉ์ฑ๊ณฑ์ ์ ๊ฑฐํ๋ ๊ฒ์ ๋คํธ์ํฌ์ ๋ถ๋ด์ ์ฃผ๋ฉฐ, ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ ์ ๋ ์ค์ฐจ ์ฆ๊ฐ๋ก ์ด์ด์ง๋๋ค. ํํธ์ผ๋ก, ์ด๋ฌํ ์ค์ฐจ ์ฆ๊ฐ๋ ํฉ์ฑ๊ณฑ์ ์ผ๋ง๋ ์ ํํ๊ฒ ์ ๊ฑฐํ๋์ง ๋ณด์ฌ์ฃผ๋ ์งํ์ ๋๋ค(์๋ฅผ ๋ค์ด, ์ค์ฐจ๊ฐ ํฌ๊ฒ ์ฆ๊ฐํ๋ฉด ์๋ชป ์ฒ๋ฆฌํ๊ณ ์์์ ๋ํ๋ ๋๋ค). ํ์ง๋ง ์ฝ๊ฐ์ ์ค์ฐจ ์ฆ๊ฐ๋ ์ถฉ๋ถํ ์ฉ์ธํ ์ ์์ผ๋ฉฐ, ์์ LR์ ์ฌ์ฉํ ํ์์ ์ธ ๊ฐ๋ฒผ์ด ์ฌํ์ต์ ํตํด ์ข ์ข ์ ๊ฑฐ๋ฉ๋๋ค. ์ฌํ์ต ๋จ๊ณ๋ฅผ ์ถ๊ฐํฉ๋๋ค.

์ด์ Learning<->Pruning ๋ฃจํ๋ฅผ ์ธ์ ์ข ๋ฃํ ์ง ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ๋คํธ์ํฌ ํฌ๊ธฐ์ ์คํ ์๋๋ฅผ ํน์ ์์ค์ผ๋ก ์ค์ฌ์ผ ํ ๋(์: ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ)์๋ ํน๋ณํ ์ต์ ์ด ์์ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ต์ ์ ์ค์ฐจ๊ฐ ํ์ฉ ๊ฐ๋ฅํ ์์ค๋ณด๋ค ๋์์ง ๋๊น์ง ๋ฃจํ๋ฅผ ๊ณ์ ์งํํ๋ ๊ฒ์ ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.

์ด์ ์๊ณ ๋ฆฌ์ฆ์ด ๋ช ํํด์ก์ต๋๋ค. ์ด์ ์ ๊ฑฐํ ํฉ์ฑ๊ณฑ์ ์ด๋ป๊ฒ ๊ฒฐ์ ํ ์ง ์์๋ด๋ ๊ฒ์ด ๋จ์์ต๋๋ค.
์ญ์ ๊ฐ๋ฅํ ๋ฒ๋ค ๊ฒ์
๋ฒ๋ค ์ค ์ผ๋ถ๋ฅผ ์ญ์ ํด์ผ ํฉ๋๋ค. ์ด๋ค ๋ฒ๋ค์ด๋ ๋ซ๊ณ "์๋" ๊ฒ์ ์ข์ง ์์ ์๊ฐ์ด์ง๋ง, ํจ๊ณผ๋ ์์ ๊ฒ๋๋ค. ํ์ง๋ง ๋จธ๋ฆฌ๊ฐ ์๋ค๋ฉด, "์ฝํ" ๋ฒ๋ค์ ๊ณจ๋ผ ์ญ์ ํด ๋ณผ ์ ์์ต๋๋ค. ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
- . ์์ ๊ฐ์ค์น ๊ฐ์ ๊ฐ๋ ํฉ์ฑ๊ณฑ์ ์ต์ข ๊ฒฐ์ ์ ๊ฑฐ์ ๊ธฐ์ฌํ์ง ์๋๋ค๋ ์๊ฐ
- ํ๊ท ๊ณผ ํ์คํธ์ฐจ๋ฅผ ๊ณ ๋ คํ ๊ฐ์ฅ ์์ L1 ์ธก์ ๊ฐ์ ๋๋ค. ์ฌ๊ธฐ์ ๋ถํฌ์ ํน์ฑ์ ๋ํ ํ๊ฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- . ์ค์ํ์ง ์์ ํฉ์ฑ๊ณฑ์ ๋ ์ ํํ๊ฒ ๊ฐ์งํ ์ ์์ง๋ง, ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๊ณ ๋ฆฌ์์ค๋ ๋ง์ด ํ์ํฉ๋๋ค.
- ๊ธฐํ
๊ฐ ์ต์ ์ ์กด์ฌํ ๊ถ๋ฆฌ๊ฐ ์์ผ๋ฉฐ ๊ณ ์ ํ ๊ตฌํ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ L1 ์ธก์ ๊ฐ์ด ๊ฐ์ฅ ์์ ์ต์ ์ ๊ณ ๋ คํด ๋ณด๊ฒ ์ต๋๋ค.
YOLOv3์ ๋ํ ์๋ ํ๋ก์ธ์ค
์๋ ์ํคํ ์ฒ์๋ ์์ฌ ๋ธ๋ก์ด ํฌํจ๋์ด ์์ต๋๋ค. ํ์ง๋ง ๋ฅ๋ฌ๋ ๋คํธ์ํฌ์์๋ ๋ฉ์ง ๊ธฐ๋ฅ์ด์ง๋ง, ์ฝ๊ฐ์ ๋ฐฉํด ์์๊ฐ ๋ ์ ์์ต๋๋ค. ๊น๋ค๋ก์ด ์ ์ ์ด๋ฌํ ๋ ์ด์ด์์ ๊ต์ฐจ ์ธ๋ฑ์ค ๋น๊ต๋ฅผ ์ ๊ฑฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.

๋ฐ๋ผ์ ๊ฒ์ฌ๋ฅผ ์์ ๋กญ๊ฒ ์ ๊ฑฐํ ์ ์๋ ๋ ์ด์ด๋ฅผ ์ ํํด ๋ณด๊ฒ ์ต๋๋ค.

์ด์ ์์ ์ฃผ๊ธฐ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
- ์ธ๋ก๋ฉ ํ์ฑํ
- ์ผ๋ง๋ ์๋ผ์ผ ํ ์ง ์์๋ด ์๋ค
- ์ฐ๋ฆฌ๋ ์๋ผ๋๋ค
- ์ฐ๋ฆฌ๋ LR=10e-1๋ก 4๊ฐ์ ์ํฌํฌ๋ฅผ ํ์ตํฉ๋๋ค.
- ํ ์คํธ
ํด๋ ์ธ๋ก๋ฉ์ ํน์ ๋จ๊ณ์์ ์ผ๋ง๋ ๋ง์ ํด๋๋ฅผ ์ ๊ฑฐํ ์ ์๋์ง ์ถ์ ํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ์ธ๋ก๋ฉ์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.

๊ฑฐ์ ๋ชจ๋ ํฉ์ฑ๊ณฑ์ 5%๊ฐ ๋งค์ฐ ๋ฎ์ L1-norm์ ๊ฐ๋ ๊ฒ์ ํ์ธํ์ผ๋ฉฐ, ์ด๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ๊ฐ ๋จ๊ณ๋ง๋ค ์ด๋ฌํ ์ธ๋ก๋ฉ์ ๋ฐ๋ณตํ๊ณ ์ด๋ค ๊ณ์ธต์ ์ผ๋ง๋ ๋ง์ด ์ ๊ฑฐํ ์ ์๋์ง ํ๊ฐํ์ต๋๋ค.
์ ์ฒด ๊ณผ์ ์ 4๋จ๊ณ๋ก ์งํ๋ฉ๋๋ค(์ฌ๊ธฐ์ ๋ชจ๋ ๊ณณ์ ์ซ์๋ RTX 2060 Super์ ๋ํ ๊ฒ์ ๋๋ค).
| ๋จ๊ณ | MAP75 | ๋งค๊ฐ๋ณ์ ์, ๋ฐฑ๋ง | ๋คํธ์ํฌ ํฌ๊ธฐ, MB | ์๋ณธ์์ % | ์คํ ์๊ฐ(ms) | ํ ๋ก ์กฐ๊ฑด |
|---|---|---|---|---|---|---|
| 0 | 0.9656 | 60 | 241 | 100 | 180 | - |
| 1 | 0.9622 | 55 | 218 | 91 | 175 | ์ ์ฒด์ 5% |
| 2 | 0.9625 | 50 | 197 | 83 | 168 | ์ ์ฒด์ 5% |
| 3 | 0.9633 | 39 | 155 | 64 | 155 | 15๊ฐ ์ด์์ ํฉ์ฑ๊ณฑ์ด ์๋ ๋ ์ด์ด์ ๊ฒฝ์ฐ 400% |
| 4 | 0.9555 | 31 | 124 | 51 | 146 | 10๊ฐ ์ด์์ ํฉ์ฑ๊ณฑ์ด ์๋ ๋ ์ด์ด์ ๊ฒฝ์ฐ 100% |
2๋จ๊ณ์์๋ ๊ธ์ ์ ์ธ ํจ๊ณผ ํ๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ๋ฐฐ์น ํฌ๊ธฐ 4๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ํฉํด์ ธ ์ถ๊ฐ ํ์ต ํ๋ก์ธ์ค๊ฐ ์๋นํ ๊ฐ์ํ๋์์ต๋๋ค.
4๋จ๊ณ์์๋ ์ฅ๊ธฐ๊ฐ์ ์ถ๊ฐ ํ๋ จ์๋ ๋ถ๊ตฌํ๊ณ mAp75๊ฐ ์ด์ ๊ฐ์ผ๋ก ์ฌ๋ผ๊ฐ์ง ์์๊ธฐ ๋๋ฌธ์ ํ๋ก์ธ์ค๊ฐ ์ค๋จ๋์์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ ์ฐ๋ฆฌ๋ ์ถ๋ก ์๋๋ฅผ ๋์ด๋ ๋ฐ ์ฑ๊ณตํ์ต๋๋ค. 15%, ํฌ๊ธฐ๋ฅผ ์ค์ด์ธ์ 35% ์ ํ๋๋ฅผ ์์ง ๋ง์ธ์.
๋ ๊ฐ๋จํ ์ํคํ ์ฒ๋ฅผ ์ํ ์๋ํ
๋ ๊ฐ๋จํ ๋คํธ์ํฌ ์ํคํ ์ฒ(์กฐ๊ฑด๋ถ ์ถ๊ฐ, ์ฐ๊ฒฐ ๋ฐ ์์ฌ ๋ธ๋ก ์์)์ ๊ฒฝ์ฐ ๋ชจ๋ ํฉ์ฑ๊ณฑ ๊ณ์ธต์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ง์คํ๊ณ ํฉ์ฑ๊ณฑ์ ์๋ผ๋ด๋ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋๋ ์ด ์ต์
์ ๊ตฌํํ์ต๋๋ค .
๊ฐ๋จํฉ๋๋ค. ์์ค ํจ์, ์ต์ ํ ํ๋ก๊ทธ๋จ, ๋ฐฐ์น ์์ฑ๊ธฐ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
import pruning
from keras.optimizers import Adam
from keras.utils import Sequence
train_batch_generator = BatchGenerator...
score_batch_generator = BatchGenerator...
opt = Adam(lr=1e-4)
pruner = pruning.Pruner("config.json", "categorical_crossentropy", opt)
pruner.prune(train_batch, valid_batch)ํ์ํ ๊ฒฝ์ฐ ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
{
"input_model_path": "model.h5",
"output_model_path": "model_pruned.h5",
"finetuning_epochs": 10, # the number of epochs for train between pruning steps
"stop_loss": 0.1, # loss for stopping process
"pruning_percent_step": 0.05, # part of convs for delete on every pruning step
"pruning_standart_deviation_part": 0.2 # shift for limit pruning part
}๋ํ, ํ์ค ํธ์ฐจ์ ๊ธฐ๋ฐํ ์ ํ์ด ๊ตฌํ๋ฉ๋๋ค. ๋ชฉํ๋ ์ด๋ฏธ "์ถฉ๋ถํ" L1 ์ธก์ ๊ฐ์ ๊ฐ๋ ํฉ์ฑ๊ณฑ์ ์ ์ธํ๊ณ ์ ๊ฑฐ๋ ๋ถ๋ถ๋ง ์ ํํ๋ ๊ฒ์ ๋๋ค.

์ด๋ฐ ์์ผ๋ก ์ฐ๋ฆฌ๋ ์ฝํ ํฉ์ฑ๊ณฑ๋ง ์ค๋ฅธ์ชฝ๊ณผ ๋น์ทํ ๋ถํฌ์์ ์ ๊ฑฐ๋๋๋ก ํ์ฉํ๊ณ ์ผ์ชฝ๊ณผ ๋น์ทํ ๋ถํฌ์์ ์ ๊ฑฐ๋๋ ๊ฒ์๋ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค.

๋ถํฌ๊ฐ ์ ๊ทํ๋๋ฉด ๊ณ์ pruning_standard_deviation_part๋ฅผ ๋ค์ ์ค์์ ์ ํํ ์ ์์ต๋๋ค.

2์๊ทธ๋ง๋ก ๊ฐ์ ํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๋๋ ์ด ํน์ฑ์ ๋ฌด์ํ๊ณ ๊ฐ์ 1.0 ๋ฏธ๋ง์ผ๋ก ๋ ์๋ ์์ต๋๋ค.
์ถ๋ ฅ์ ์ ์ฒด ํ ์คํธ์ ๋ํ ๋คํธ์ํฌ ํฌ๊ธฐ, ์์ค, ๊ทธ๋ฆฌ๊ณ ๋คํธ์ํฌ ์คํ ์๊ฐ์ 1.0์ผ๋ก ์ ๊ทํํ ๊ทธ๋ํ์ ๋๋ค. ์๋ฅผ ๋ค์ด, 2๋ง ๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์์ ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง์ ๊ฒฝ์ฐ, ๋คํธ์ํฌ ํฌ๊ธฐ๋ ํ์ง ์ ํ ์์ด ๊ฑฐ์ ๋ ๋ฐฐ๋ก ์ค์์ต๋๋ค.

์คํ ์๋๋ ์ ์์ ์ธ ๋ณ๋์ ๋ณด์ด๋ฉฐ ๊ฑฐ์ ๋ณํ์ง ์์์ต๋๋ค. ์ด์ ๋ํ ์ค๋ช ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํฉ์ฑ๊ณฑ์ ์๋ ํธ๋ฆฌํ 32, 64, 128์์ ๋น๋์ค ์นด๋์ ๊ฐ์ฅ ํธ๋ฆฌํ์ง ์์ 27, 51 ๋ฑ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ ๊ฐ ํ๋ ธ์ ์๋ ์์ง๋ง, ์๋ง๋ ํจ๊ณผ๊ฐ ์์ ๊ฒ์ ๋๋ค.
- ์ํคํ ์ฒ๋ ๋์ง๋ ์์ง๋ง ์ผ๊ด์ฑ์ ์ ์งํฉ๋๋ค. ๋๋น๋ฅผ ์ค์์ผ๋ก์จ ๊น์ด์๋ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ถํ๋ฅผ ์ค์ด๋ฉด์๋ ์๋๋ ๋ณํ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ฐ์ ์ ์คํ ์ค CUDA ๋ถํ๊ฐ 20~30% ๊ฐ์ํ๋ ํํ๋ก ๋ํ๋ฌ์ง๋ง, ์คํ ์๊ฐ์ด ๊ฐ์ํ๋ ํํ๋ก ๋ํ๋์ง๋ ์์์ต๋๋ค.
๊ฒฐ๊ณผ
์๊ฐํด ๋ด ์๋ค. ์ฐ๋ฆฌ๋ ๋ ๊ฐ์ง ๊ฐ์ง์น๊ธฐ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํ์ต๋๋ค. ํ๋๋ YOLOv2(์๋ ์์ ํ์)์ด๊ณ , ๋ค๋ฅธ ํ๋๋ ๋ ๋จ์ํ ์ํคํ ์ฒ๋ฅผ ๊ฐ์ง ๋คํธ์ํฌ์ ๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ ํ๋ ์ ํ ์์ด ๋คํธ์ํฌ ํฌ๊ธฐ์ ๊ฐ์์ ์ค์ผ ์ ์๋ค๋ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. ๊ฒฐ๊ณผ:
- ํฌ๊ธฐ ์ค์ด๊ธฐ
- ๊ฐ์ ์ฃผํ
- CUDA ๋ถํ ๊ฐ์
- ๊ทธ ๊ฒฐ๊ณผ, ์นํ๊ฒฝ์ฑ(์ปดํจํ ์์์ ๋ฏธ๋ ์ฌ์ฉ์ ์ต์ ํํฉ๋๋ค. ์ด๋๊ฐ์์ ๊ธฐ๋ปํฉ๋๋ค. )
์ถฉ์
- ๊ฐ์ง์น๊ธฐ ๋จ๊ณ ํ์ ์์ํ๋ฅผ ์กฐ์ ํ ์๋ ์์ต๋๋ค(์: TensorRT ์ฌ์ฉ)
- Tensorflow๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. . ์๋ํฉ๋๋ค.
- ์ ๋ ๊ฐ๋ฐํ๊ณ ์ถ๊ณ ๊ธฐ๊บผ์ด ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ถ์ฒ : habr.com
