๊ฒฝ๋ํ.. ์ฐ๋ฆฌ ํ ํ๋ก์ ํธ ์ฃผ์ ์ด๋ค. ๋ญ๊ฐ ์ด๋ ค์ ๋ณด์ฌ์, ์ฐ๋ฆฌ ํ์ ๊ฒฝ๋ํ์ ๋ํ ๋
ผ๋ฌธ์ ์ฝ์ด๋ณด๊ธฐ๋ก ํ๋ค.
๋
ผ๋ฌธ์ 2๊ฐ๋ฅผ ์ฝ์ด๋ณด์๋ค.
๋ค์์ ๋ด๊ฐ ์ ์ ํ ๊ฒฝ๋ํ ๋
ผ๋ฌธ 2๊ฐ์ด๋ค.
SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size โhttps://arxiv.org/abs/1602.07360?utm_sourcePruning and Quantization for Deep Neural Network Acceleration: A Survey โhttps://arxiv.org/pdf/2101.09671ํ์ฌ ์ฌ๋ฌ ์ธ๊ณต์ง๋ฅ ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ์ฑ๋ฅ ํฅ์์ ํ์ ์ด๋ค. ์ด์ ๋ฐ๋ฅธ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ ์ ์ฆ๊ฐ์ ์ฐ์ฐ๋ ์ฆ๊ฐ๋ฅผ ๋๋ฐํ๋ฉฐ, ๋ง์ ๋ฌธ์ ๋ฅผ ๋ฐ์์ํจ๋ค.
๊ฒฝ๋ํ ์ฐ๊ตฌ๋ ํฌ๊ฒ ๋ ๊ฐ์ง ๋ฐฉํฅ์ผ๋ก ๋ฐ์ ํด ์๋ค.
โ์ ํ๋๋ฅผ ์ ์งํ๋ฉด์, ๋ชจ๋ธ ์์ฒด๋ฅผ ์ฒ์๋ถํฐ ํจ์ฌ ์๊ฒ ์ค๊ณํ ์๋ ์์๊น?โ
์ฆ, ํ์ต ์ดํ์ ์์ถ์ด ์๋๋ผ, ๊ตฌ์กฐ ์ค๊ณ ๋จ๊ณ์์์ ๊ฒฝ๋ํ๋ฅผ ํ๋ ๊ฒ์ด Squeezenet์ ๋ชฉํ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด SqueezeNet์ ์ด๋ป๊ฒ ๊ตฌ์กฐ ์ค๊ณ ๋จ๊ณ์์ ๊ฒฝ๋ํ๋ฅผ ํ ๊น?
SqueezeNet์ ํ๋ผ๋ฏธํฐ ์๋ฅผ ์ค์ด๊ธฐ ์ํด 3๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
- 3ร3 Convolution ์ต์ํ, 1ร1 Convolution ์ ๊ทน ํ์ฉ
CNN์์ ํ๋ผ๋ฏธํฐ ์๋ ์ปค๋ ํฌ๊ธฐ์ ํฌ๊ฒ ์์กดํ๋ค.
3ร3 Conv โ ํ๋ผ๋ฏธํฐ ๋ง์
1ร1 Conv โ ํ๋ผ๋ฏธํฐ ๋งค์ฐ ์ ์
SqueezeNet์ 1ร1 Convolution์ ์ต๋ํ ํ์ฉํ์ฌ ์ฐ์ฐ๋๊ณผ ํ๋ผ๋ฏธํฐ ์๋ฅผ ์ค์ธ๋ค.
ํ๋ผ๋ฏธํฐ๊ฐ ์ ์ด์ง๋ฉด ์ฑ๋ฅ์ด ๋จ์ด์ง์ง ์์๊น? ๋ผ๋ ์๋ฌธ์ด ์๊ธธ์๋ ์๋๋ฐ, ๋
ผ๋ฌธ์์๋ ์กฐ๊ฑด๋ง ๋ง์ถ๋ฉด ์ ํ๋ ์ ์ง ๊ฐ๋ฅํ๋ค๊ณ ํ๋ค.
- Fire Module ๊ตฌ์กฐ ๋์
SqueezeNet์ ํต์ฌ์ Fire Module์ด๋ผ๋ ์๋ก์ด ๋ธ๋ก์ด๋ค.
Fire Module์ ๋ค์ ๋ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋๋ค.
1. Squeeze ๋จ๊ณ
โ 1ร1 Conv๋ฅผ ์ฌ์ฉํด ์ฑ๋ ์๋ฅผ ์ค์
2. Expand ๋จ๊ณ
โ 1ร1 Conv + 3ร3 Conv๋ฅผ ๋ณ๋ ฌ๋ก ์ฌ์ฉํด ํน์ง์ ํ์ฅ
์ด ๊ตฌ์กฐ๋ฅผ ํตํด 3ร3 Conv ์ฌ์ฉ์ ์ต์ํํ๋ฉด์ ํํ๋ ฅ์ ์ ์งํ ์ ์๋ค.
๊ธ๋ก๋ง ๋ณด๋ฉด ์ดํด๊ฐ ์ ๊ฐ์ ์ธํฐ๋ท์ ์ ํํ ๊ฐ๋ ์ ์ฐพ์๋ณด์๋ค.

์ ๊ทธ๋ฆผ์ 1ร1 Convolution์ ์ด์ฉํด ์ ๋ ฅ ์ฑ๋ ์๋ฅผ ๋จผ์ ๊ฐ์์ํ ํ, ํฐ ์ปค๋(5ร5)์ ์ ์ฉํ ์ฐ์ฐ ๊ณผ์ ์ ๋ํ๋ธ ๊ทธ๋ฆผ์ด๋ค. ์ด ๊ทธ๋ฆผ์ ๋ณด๊ฒ ๋๋ฉด, ๋์ผํ ์ถ๋ ฅ ํฌ๊ธฐ๋ฅผ ์ ์งํ๋ฉด์๋ ์ฐ์ฐ๋์ ๋ํญ ์ค์ผ ์ ์์์ ๋ณด์ฌ์ค๋ค.
- ๋ค์ด์ํ๋ง์ ๋คํธ์ํฌ ๋ค์ชฝ์ผ๋ก ์ง์ฐ
์ผ๋ฐ์ ์ธ CNN์ ์ด๋ฐ๋ถํฐ pooling์ด๋ stride๋ฅผ ์ฌ์ฉํด feature map ํฌ๊ธฐ๋ฅผ ์ค์ธ๋ค.
SqueezeNet์ ๋ค์ด์ํ๋ง์ ๋ค๋ก ๋ฏธ๋ค ํฐ feature map์ ์ค๋ ์ ์งํจ์ผ๋ก์จ ์ ํ๋ ์์ค์ ์ค์ธ๋ค.
์ด๋ฏธ ํ์ต๋ ๋ํ ๋ชจ๋ธ์ ๊ผญ ์ฒ์๋ถํฐ ๋ค์ ์ค๊ณํด์ผ ํ๋๊ฐ?๊ฐ ์๋ฌธ์ด๋ค.
์ด๋ฌํ ๋ฌธ์ ์์์์ ๋ฑ์ฅํ ๊ฒ์ด ๋ชจ๋ธ ์์ถ ๊ธฐ๋ฐ ๊ฒฝ๋ํ ๊ธฐ๋ฒ, ์ฆ, Pruning๊ณผ Quantization์ด๋ค.

๋
ผ๋ฌธ์์ ๊ฐ์กฐํ๋ ๋ด์ฉ์ โ๋ชจ๋ ํ๋ผ๋ฏธํฐ๊ฐ ๋์ผํ๊ฒ ์ค์ํ ๊ฒ์ ์๋๋ค.โ์ด๋ค.
์ฆ, Pruning์ ํ์ต๋ ๋ชจ๋ธ์์ ์ค์๋๊ฐ ๋ฎ์ ๊ฐ์ค์น, ์ฑ๋, ํํฐ๋ฅผ ์ ๊ฑฐํ๋ ๊ธฐ๋ฒ์ด๋ค.
๋
ผ๋ฌธ์์๋ Pruning์ ์ฌ๋ฌ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฅํ๋ค.
์ ๊ฑฐ ์์ค๋ณ๋ก
- Weight-level (๊ฐ๋ณ ๊ฐ์ค์น): ๊ฐ๋ณ ๊ฐ์ค์น ๋จ์๋ก ์ ๊ฑฐํ๋ ๋ฐฉ์์ด๋ค. ๊ฐ์ค์น์ ์ ๋๊ฐ์ด ์๊ฑฐ๋ ์ค์๋๊ฐ ๋ฎ๋ค๊ณ ํ๋จ๋๋ ๊ฐ๋ค์ 0์ผ๋ก ๋ง๋ ๋ค.
- Channel/Filter-level: CNN์์ ํ๋์ ์ฑ๋ ๋๋ ํํฐ ์ ์ฒด๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ์์ด๋ค.
- Layer-level: ํน์ ๋ ์ด์ด ์ ์ฒด๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ์์ด๋ค.
์ ์ฉ ์์ ๊ธฐ์ค์ผ๋ก
- Static Pruning (ํ์ต ํ): ๋ชจ๋ธ์ ํ์ตํ ๋ค ์คํ๋ผ์ธ์ผ๋ก ์ค์์๋ ๋ถ๋ถ์ ์ ๊ฑฐํ๋ ๋ฐฉ์
- Dynamic Pruning (์ถ๋ก ์ค): ์คํ ์์ ์์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ฐ์ง์น๊ธฐ๋ฅผ ์ํํ๋ ๋ฐฉ์
Pruning์ ์ฅ์ ์

Quantization์ ๋ชจ๋ธ์ ๊ฐ์ค์น์ ํ์ฑํ ๊ฐ์ 32-bit floating point์์ 8-bit ๋๋ ๊ทธ ์ดํ ์ ์๋ก ํํํ๋ ๊ธฐ๋ฒ์ด๋ค.
๋
ผ๋ฌธ์์ Quantization์ ๋ฐฉ์์ ๋๊ฐ์ง ๋ฐฉ์์ผ๋ก ๋๋๋ค.
Quantization์
Pruning๊ณผ Quantization์ ์๋ก ๊ฒฝ์ํ๋ ๊ธฐ๋ฒ์ด ์๋๋ผ ์๋ก๋ฅผ ๋ณด์ํ๋ ๊ด๊ณ๋ผ๊ณ ํ๋ค.
Pruning๋ก ๊ตฌ์กฐ๋ฅผ ์ค์ด๊ณ , Quantization๋ก๋ ๊ฐ ์ฐ์ฐ์ ๊ฐ๋ณ๊ฒ ๋ง๋ฆ์ผ๋ก์จ ํฐ ๊ฒฝ๋ํ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ค๊ณ ํ๋ค.