๐งโ๐ซ Lecture 3
์์ผ๋ก ์ด 5์ฅ์ ๊ฑธ์ณ์ ๋ฅ๋ฌ๋ ๋ชจ๋ธ ๊ฒฝ๋ํ ๊ธฐ๋ฒ๋ค์ ๋ํด์ ์๊ฐํ๋ ค๊ณ ํ๋ค. ๊ฒฝ๋ํ ๊ธฐ๋ฒ์ผ๋ก๋ Pruning, Quantization, Neural Network Architecture Search, Knowledge Distillation, ๊ทธ๋ฆฌ๊ณ Tiny Engine์์ ๋๋ฆฌ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์งํํ ์์ ์ธ๋ฐ ๋ณธ ๋ด์ฉ์ MIT์์ Song Han ๊ต์๋์ด Fall 2022์ ํ ๊ฐ์ TinyML and Efficient Deep Learning Computing 6.S965๋ฅผ ๋ฐํ์ผ๋ก ์ฌ์ ๋ฆฌํ ๋ด์ฉ์ด๋ค. ๊ฐ์ ์๋ฃ์ ์์์ ์ด ๋งํฌ๋ฅผ ์ฐธ์กฐํ์!
์ฒซ ๋ฒ์งธ ๋ด์ฉ์ผ๋ก โ๊ฐ์ง์น๊ธฐโ๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง Pruning์ ๋ํด์ ์ด์ผ๊ธฐ, ์์!
1. Introduction to Pruning
Pruning์ด๋ ์๋ฏธ์ฒ๋ผ Neural Network์์ ๋งค๊ฐ๋ณ์(๋ ธ๋)๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ Dropoutํ๊ณ ๋น์ทํ ์๋ฏธ๋ก ๋ณผ ์ ์๋๋ฐ, Dropout์ ๊ฒฝ์ฐ ๋ชจ๋ธ ํ๋ จ ๋์ค ๋๋ค์ ์ผ๋ก ํน์ ๋ ธ๋๋ฅผ ์ ์ธ์ํค๊ณ ํ๋ จ์์ผ ๋ชจ๋ธ์ Robustness๋ฅผ ๋์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ จ์ ํ๊ณ ๋์๋ ๋ชจ๋ธ์ ๋ ธ๋๋ ๊ทธ๋๋ก ์ ์ง๊ฐ ๋๋ค. ๋ฐ๋ฉด Pruning์ ๊ฒฝ์ฐ ํ๋ จ์ ๋ง์น ํ์, ํน์ Threshold ์ดํ์ ๋งค๊ฐ๋ณ์(๋ ธ๋)์ ๊ฒฝ์ฐ ์ Neural Network์์ ์ ์ธ์์ผ ๋ชจ๋ธ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ฉด์ ๋์์ ์ถ๋ก ์๋ ๋ํ ๋์ผ ์ ์๋ค.
\[ \underset{W_p}{argmin}\ L(x;W_p), \text{ subject to } \lvert\lvert W_p\lvert\lvert_0\ < N \]
- L represents the objective function for neural network training
- \(x\) is input, \(W\) is original weights, \(W_p\) is pruned weights
- \(\lvert\lvert W_p\lvert\lvert_0\) calcuates the #nonzeros in \(W_p\) and \(N\) is the target #nonzeros
์ด๋ ์์ ๊ฐ์ ์์ผ๋ก ํํํ ์ ์๋ค. ํน์ W ์ ๊ฒฝ์ฐ 0 ์ผ๋ก ๋ง๋ค์ด ๋ ธ๋๋ฅผ ์์ ๋ ๊ฒฝ์ฐ๋ผ๊ณ ๋ณผ ์ ์๊ฒ ์ต๋๋ค. ๊ทธ๋ ๊ฒ Pruningํ Neural Network๋ ์๋ ๊ทธ๋ฆผ ์ฒ๋ผ ๋๋ค.
Reference. MIT-TinyML-lecture03-Pruning-1
๊ทธ๋ผ ์ Pruning์ ํ๋ ๊ฑธ๊น? ๊ฐ์์์ Pruning์ ์ฌ์ฉํ๋ฉด Latency, Memeory์ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ ์ ์๋ค๊ณ ๊ด๋ จ๋ ์๋๊ฐ์ ์ฐ๊ตฌ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ด ๋ณด์ฌ์ค๋ค.
Song Han ๊ต์๋์ Vision ๋ฅ๋ฌ๋ ๋ชจ๋ธ ๊ฒฝ๋ํ ์ฐ๊ตฌ๋ฅผ ์ฃผ๋กํ์ ์, CNN์ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ชจ๋ธ์ ์์๋ก ๋ณด์ฌ์ฃผ์ ๋ค. ๋ชจ๋ Pruning์ดํ์ ๋ชจ๋ธ ์ฌ์ด์ฆ์ ๊ฒฝ์ฐ ์ต๋ 12๋ฐฐ ์ค์ด ๋ค๋ฉฐ ์ฐ์ฐ์ ๊ฒฝ์ฐ 6.3๋ฐฐ๊น์ง ์ค์ด ๋ ๊ฒ์ ๋ณผ ์ ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ ๋ ๊ฒ โํฌ๊ธฐ๊ฐ ์ค์ด๋ ๋ชจ๋ธ์ด ์ฑ๋ฅ์ ์ ์งํ ์ ์์๊น?โ
๊ทธ๋ํ์์ ๋ชจ๋ธ์ Weight ๋ถํฌ๋๋ฅผ ์ ๊ทธ๋ฆผ์์ ๋ณด๋ฉด, Pruning์ ํ๊ณ ๋ ์ดํ์ Weight ๋ถํฌ๋์ ์ค์ฌ์ ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ค๋๊ฐ ๊ฒ ๋ณด์ธ๋ค. ์ดํ Fine Tuning์ ํ๊ณ ๋ ๋ค์์ ๋ถํฌ๊ฐ ๋์ ์๋๋ฐ, ์ด๋ ์ ๋ ์ ํ๋๋ ๋จ์ด์ง์ง๋ง ์ฑ๋ฅ์ด ์ ์ง๋๋ ๊ฑธ ๊ด์ฐฐํ ์ ์๋ค.
๊ทธ๋ฐ Fine tuning์ ๋ฐ๋ณต์ ์ผ๋ก ํ๊ฒ ๋๋ค๋ฉด(Iterative Pruning and Fine tuning) ๊ทธ๋ํ์์๋ ์ต๋ 90ํ๋ก ์ด์์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋์ด๋ผ ์ ์๋ค๊ณ ํ๋ค.
๋ฌผ๋ก ํน์ ๋ชจ๋ธ์์, ํน์ Task๋ฅผ ๋์์ผ๋ก ํ ๊ฒ์ด๋ผ ์ผ๋ฐํํ ์๋ ์์ง๋ง ๋ฆฌ์์ค๋ฅผ ๊ณ ๋ คํ๋ ์ํฉ์ด๋ผ๋ฉด ์ถฉ๋ถํ ์๋ํด๋ณผ ๋งํ ๊ฐ์น๊ฐ ์์ด ๋ณด์ธ๋ค. ๊ทธ๋ผ ์ด๋ ๊ฒ ์ฑ๋ฅ์ ์ ์งํ๋ฉด์ Pruning์ ํ๊ธฐ ์ํด์ ์ด๋ค ์์๋ฅผ ๊ณ ๋ คํด์ผ ํ ์ง ๋ ์์ธํ ์ด์ผ๊ธฐํด๋ณด์!
์๊ฐํ๋ ๊ณ ๋ ค์์๋ ์๋์ ๊ฐ๋ค. Pruning ํจํด๋ถํฐ ์ฐจ๋ก๋๋ก ์์!
- Pruning Granularity โ Pruning ํจํด
- Pruning Criterion โ ์ผ๋ง๋งํผ์ ํ๋ผ๋ฏธํฐ๋ฅผ Pruning ํ ๊ฑด๊ฐ?
- Pruning Ratio โ ์ ์ฒด ํ๋ผ๋ฏธํฐ์์ Pruning์ ์ผ๋ง๋งํผ์ ๋น์จ๋ก?
- Fine Turning โ Pruning ์ดํ์ ์ด๋ป๊ฒ Fine-Tuning ํ ๊ฑด๊ฐ?
- ADMM โ Pruning ์ดํ, ์ด๋ป๊ฒ Convex๊ฐ ๋๋ค๊ณ ํ ์ ์์ง?
- Lottery Ticket Hypothesis โ Training๋ถํฐ Pruning๊น์ง ๋ชจ๋ธ์ ๋ง๋ค์ด ๋ณด์!
- System Support โ ํ๋์จ์ด๋ ์ํํธ์จ์ด์ ์ผ๋ก Pruning์ ์ง์ํ๋ ๊ฒฝ์ฐ๋?
2. Determine the Pruning Granularity
์ฌ๊ธฐ์ ๊ณ ๋ ค์์๋ โ์ผ๋ง๋งํผ ๋ด๋ฐ์ ๊ทธ๋ฃนํํ์ฌ ๊ณ ๋ คํ ๊ฒ์ธ๊ฐ?โ ์ ๋๋ค. Regularํ ์ ๋ก๋ ๋ถ๋ฅํ๋ฉด์ Irregularํ ๊ฒฝ์ฐ์ Regularํ ๊ฒฝ์ฐ์ ํน์ง์ ์๋์ฒ๋ผ ๋งํฉ๋๋ค.
- Fine-grained/Unstructured
- More flexible pruning index choice
- Hard to accelerate (irregular data expression)
- Can deliver speed up on some custom hardware
- Coarse-grained/Structured
- Less flexible pruning index choice (a subset of the fine-grained case)
- Easy to accelerate
Pruning์ ํ๋ค๊ณ ๋ชจ๋ธ ์ถ๋ ฅ์ด ๋์ค๋ ์๊ฐ์ด ์งง์์ง๋ ๊ฒ์ด ์๋๋ ์ธ๊ธํฉ๋๋ค. Hardware Acceleration์ ๊ฐ๋ฅ๋๊ฐ ์๋๋ฐ, ์ด ํน์ง์ ๋ณด๋ฉด ์ ์ ์๋ฏ, Pruning์ ์์ ๋์ Hardware Acceleration์ด trade-off, ์ฆ ๊ฒฝ๋ํ ์ ๋์ Latency์ฌ์ด์ trade-off ๊ฐ ์์ ๊ฒ์ด ์์ธก๋ฉ๋๋ค. ํ๋์ฉ, ์๋ฃ๋ฅผ ๋ณด๋ฉด์ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
2.1 Pattern-based Pruning
Irregular์์๋ Pattern-based Pruning์ ์ฐ์์ ์ธ ๋ด๋ฐ M๊ฐ ์ค N๊ฐ๋ฅผ Pruning ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก๋ N:M = 2:4 ์ผ๋ก ํ๋ค๊ณ ์๊ฐํ๋ค.
Reference. Accelerating Inference with Sparsity Using the NVIDIA Ampere Architecture and NVIDIA TensorRT
์์๋ฅผ ๋ค์ด ๋ณด๋ฉด, ์์ ๊ฐ์ Matrix์์ ํ์ ๋ณด์๋ฉด 8๊ฐ์ Weight์ค 4๊ฐ๊ฐ Non-zero์ธ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ Zero์ธ ๋ถ๋ถ์ ์์ ๊ณ 2bit index๋ก ํ์ฌ Matrix ์ฐ์ฐ์ ํ๋ฉด Nvidiaโs Ampere GPU์์ ์๋๋ฅผ 2๋ฐฐ๊น์ง ๋์ผ ์ ์๋ค๊ณ ํ๋ค. ์ฌ๊ธฐ์ Sparsity๋ โ์ผ๋ง๋งํผ ๊ฒฝ๋ํ ๋๋์ง?โ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
- N:M sparsity means that in each contiguous M elements, N of them is pruned
- A classic case is 2:4 sparsity (50% sparsity)
- It is supported by Nvidiaโs Ampere GPU Architecture, which delivers up to 2x speed up and usually maintains accuracy.
2.2 Channel-level Pruning
๋ฐ๋๋ก ํจํด์ด ์๋์ ์ผ๋ก regular ํ ์ชฝ์ธ Channel-level Pruning์ ์ถ๋ก ์๊ฐ์ ์ค์ผ ์ ์๋ ๋ฐ๋ฉด์ ๊ฒฝ๋ํ ๋น์จ์ด ์ ๋ค๊ณ ๋งํ๋ค. ์๋ ๊ทธ๋ฆผ์ ๋ณด์๋ฉด Layer๋ง๋ค Sparsity๊ฐ ๋ค๋ฅธ ๊ฑธ ๋ณด์ค ์ ์๋ค.
- Pro: Direct speed up!
- Con: smaller compression ratio
์๋์ ์๋ฃ์์๋ Channel ๋ณ๋ก ํ Pruning์ ๊ฒฝ์ฐ ์ ์ฒด ๋ด๋ จ์ ๊ฐ์ง๊ณ ํ Pruning๋ณด๋ค ์ถ๋ก ์๊ฐ์ ๋ ์ค์ผ ์ ์๋ค๊ณ ๋งํ๋ค.
์๋ฃ๋ฅผ ๋ณด๋ฉด Sparsity์์๋ ํจํดํ ๋ผ ์์ผ๋ฉด ๊ฐ์ํ๊ฐ ์ฉ์ดํด Latency, ์ถ๋ก ์๊ฐ์ ์ค์ผ ์ ์์ง๋ง ๊ทธ ๋งํผ Pruningํ๋ ๋ด๋ฐ์ ์๊ฐ ์ ์ด ๊ฒฝ๋ํ ๋น์จ์ด ์ค ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ํ์ง๋ง ๋น๊ต์ ๋ถ๊ท์นํ ์ชฝ์ ์ํ๋ Pattern-based Pruning์ ๊ฒฝ์ฐ๊ฐ ํ๋์จ์ด์์ ์ง์ํด์ฃผ๋ ๊ฒฝ์ฐ, ๋ชจ๋ธ ํฌ๊ธฐ์ Latency๋ฅผ ๋ ๋ค ์ต์ ์ผ๋ก ์ก์ ์ ์์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
3. Determine the Pruning Criterion
๊ทธ๋ ๋ค๋ฉด ์ด๋ค ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง๋ ๋ด๋ฐ์ ์ฐ๋ฆฌ๋ ์๋ผ๋ด์ผ ํ ๊น์? Synapse์ Neuron์ผ๋ก ๋๋ ์ ์ดํด๋ณด์.
- Which synapses? Which neurons? Which one is less important?
- How to Select Synapses and Select Neurons to Prune
3.1 Select of Synapses
ํฌ๊ฒ ์ธ ๊ฐ์ง๋ก ๋ถ๋ฅํ๋๋ฐ, ๊ฐ ๋ด๋ฐ์ ํฌ๊ธฐ, ๊ฐ ์ฑ๋์ ์ ์ฒด ๋ด๋ฐ์ ๋ํ ํฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ ํ ์ผ๋ฌ ๊ธ์๋ฅผ ์ด์ฉํ์ฌ gradient์ weight๋ฅผ ๋ชจ๋ ๊ณ ๋ คํ ํฌ๊ธฐ๋ฅผ ์๊ฐํ๋ค. Song han ๊ต์๋์ด ๋ฐฉ๋ฒ๋ค์ ์๊ฐํ๊ธฐ์ ์์์ ์ ์์ ๊ธฐ์ ๋ค๋ ์ง๋ 5๋ ๋์ ์ฃผ๋ก Magnitude-based Pruning๋ง์ ์ฌ์ฉํด์๋ค๊ณ ํ๋๋ฐ, 2023๋ ์ด ๋ผ์ On-device AI๊ฐ ๊ฐ๊ด๋ฐ๊ธฐ ์์ํด์ ์ ์ฐจ์ ์ผ๋ก ๊ด์ฌ์ ๋ฐ๊ธฐ ์์ํ ๊ฑด๊ฐ ์ถ๊ธฐ๋ ํ๋ค.
3.1.1 Magnitude-based Pruning
ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ๊ฒฝ์ฐ, โ์ผ๋ง๋งํผ ๋ด๋ฐ ๊ทธ๋ฃน์์ ๊ณ ๋ คํ ๊ฒ์ธ๊ฐ?โ์ โ๊ทธ๋ฃน๋ด์์ ์ด๋ค ์ ๊ทํ๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ๊ฐ?๋ฅผ ๊ณ ๋ คํ๋ค.
Heuristic pruning criterion, Element-wise Pruning
\[ Importance = \lvert W \lvert \]
Heuristic pruning criterion, Row-wise Pruning, L1-norm magnitude
\[ Importance = \sum_{i\in S}\lvert w_i \lvert, \\where\ W^{(S)}\ is\ the\ structural\ set\ S\ of\ parameters\ W \]
Heuristic pruning criterion, Row-wise Pruning, L2-norm magnitude
\[ Importance = \sum_{i\in S}\lvert w_i \lvert, \\where\ W^{(S)}\ is\ the\ structural\ set\ S\ of\ parameters\ W \]
Heuristic pruning criterion, \(L_p\)- norm
\[ \lvert\lvert W^{(S)}\lvert\lvert=\huge( \large \sum_{i\in S} \lvert w_i \lvert^p \huge) \large^{\frac{1}{p}} \]
3.1.2 Scaling-based Pruning
๋ ๋ฒ์งธ๋ก Scaling์ ํ๋ ๊ฒฝ์ฐ ์ฑ๋๋ง๋ค Scaling Factor๋ฅผ ๋ฌ์ Pruning์ ํ๋ค. ๊ทธ๋ผ Scaling Factor๋ฅผ ์ด๋ป๊ฒ ๋ฌ์ผ ํ ๊น? ๊ฐ์์์ ์๊ฐํ๋ ์ด ๋ ผ๋ฌธ์์๋ Scaling factor \(\gamma\) ํ๋ผ๋ฏธํฐ๋ฅผ trainable ํ๋ผ๋ฏธํฐ๋ก ๋๋ฉด์ batch normalization layer์ ์ฌ์ฉํ๋ค.
Scale factor is associated with each filter(i.e. output channel) in convolution layers.
The filters or output channels with small scaling factor magnitude will be pruned
The scaling factors can be reused from batch normalization layer
\[ z_o = \gamma\dfrac{z_i-\mu_{B}}{\sqrt{\sigma_B^2+\epsilon}}+\beta \]
3.1.3 Talyor Expansion Analysis on Pruning Error
์ธ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ํ ์ผ๋ฌ ๊ธ์๋ฅผ ์ด์ฉํ์ฌ Objective function์ ์ต์ํ ํ๋ ์ง์ ์ ์ฐพ๋ ๋ฐฉ๋ฒ์ ๋๋ค. Talyor Series์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์!
- Evaluate pruning error induced by pruning synapses.
- Minimize the objective function L(x; W)
- A Taylor series can approximate the induced error.
\[ \delta L = L(x;W)-L(x;W_p=W-\delta W) \\ = \sum_i g_i\delta w_i + \frac{1}{2} \sum_i h_{ii}\delta w_i^2 + \frac{1}{2}\sum_{i\not=j}h_{ij}\delta w_i \delta w_j + O(\lvert\lvert \delta W \lvert\lvert^3) \] \[ where\ g_i=\dfrac{\delta L}{\delta w_i}, h_{i, j} = \dfrac{\delta^2 L}{\delta w_i \delta w_j} \]
Second-Order-based Pruning
Optimal Brain Damage[LeCun et al., NeurIPS 1989] ๋ ผ๋ฌธ์์๋ ์ด ๋ฐฉ๋ฒ์ ์ด์ฉํ๊ธฐ ์ํด ์ธ ๊ฐ์ง๋ฅผ ๊ฐ์ ํ๋ค.
- Objective function L์ด quadratic ์ด๊ธฐ ๋๋ฌธ์ ๋ง์ง๋ง ํญ์ด ๋ฌด์๋๋ค(์ด๋ Talyor Series์ Error ํญ์ ์๋ฉด ์ดํด๊ฐ ๋ ์ฝ๋ค!)
- ๋ง์ฝ ์ ๊ฒฝ๋ง์ด ์๋ ดํ๊ฒ๋๋ฉด, ์ฒซ ๋ฒ์งธํญ๋ ๋ฌด์๋๋ค.
- ๊ฐ ํ๋ผ๋ฏธํฐ๊ฐ ๋ ๋ฆฝ์ ์ด๋ผ๋ฉด Cross-term๋ ๋ฌด์๋๋ค.
๊ทธ๋ฌ๋ฉด ์์ ์๋์ฒ๋ผ ์ ๋ฆฌํ ์ ์๋๋ฐ, ์ค์ํ ๋ถ๋ถ์ Hessian Matrix H์ ์ฌ์ฉํ๋ Computation์ด ์ด๋ ต๋ค๋ ์ !
\[ \delta L_i = L(x;W)-L(x;W_p\lvert w_i=0)\approx \dfrac{1}{2} h_{ii}w_i^2,\ where\ h_{ii}=\dfrac{\partial^2 L}{\partial w_i \partial w_j} \]
\[ importance_{w_i} = \lvert \delta L_i\lvert = \frac{1}{2}h_{ii}w_i^2 \] \[ *\ h_{ii} \text{ is non-negative} \]
First-Order-based Pruning
- ์ฐธ๊ณ ๋ก ์ด ๋ฐฉ๋ฒ์ 2023๋ ์๋ ์๊ฐํ์ง ์๋๋ค.
- If only first-order expansion is considered under an i.i.d(Independent and identically distributed) assumption,
\[ \delta L_i = L(x;W) - L(x; W_P\lvert w_i=0) \approx g_iw_i,\ where\ g_i=\dfrac{\partial L}{\partial w_i} \] \[ importance_{w_i} = \lvert \delta L_i \lvert = \lvert g_i w_i \lvert \ or \ importance_{w_i} = \lvert \delta L_i \lvert^2 = (g_i w_i)^2 \]
For coarse-grained pruning, we have,
\[ importance_{\ W^{(S)}} = \sum_{i \in S}\lvert \delta L_i \lvert^2 = \sum_{i \in S} (g_i w_i)^2,\ where \ W^{(S)}is\ the\ structural\ set\ of\ parameters \]
3.2 Select of Neurons
์ด๋ค Neuron์ ์์จ ์ง๋ฅผ ๊ณ ๋ ค(Less useful โ Remove) ํ ์ด ๋ฐฉ๋ฒ์ Neuron์ ๊ฒฝ์ฐ๋ ์์ง๋ง ์๋ ๊ทธ๋ฆผ์ฒ๋ผ Channel๋ก ๊ณ ๋ คํ ์๋ ์๋ค. ํ์คํ ์ ์ ์๊ฐํ๋ ๋ฐฉ๋ฒ๋ค๋ณด๋ค โCoarse-grained pruningโ์ธ ๋ฐฉ๋ฒ์ด๋ค.
Percentage-of-Zero-based Pruning
์ฒซ๋ฒ์งธ๋ Channel๋ง๋ค 0์ ๋น์จ์ ๋ด์ ๋น์จ์ด ๋์ Channel ์ ์๋ด๋ ๋ฐฉ๋ฒ์ด๋ค. ReLU activation์ ์ฌ์ฉํ๋ฉด Output์ด 0์ด ๋์ค๋๋ฐ, ์ฌ๊ธฐ์ 0์ ๋น์จ, Average Percentage of Zero activations(APoZ)๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋ณด๊ณ ๊ฐ์ง์น๊ธฐํ Channel์ ์ ๊ฑฐํ๋ค.
- ReLU activation will generate zeros in the output activation
- Similar to magnitude of weights, the Average Percentage of Zero activations(APoZ) can be exploited to measure the importance the neuron has
First-Order-based Pruning
์ฐธ๊ณ ๋ก ์ด ๋ฐฉ๋ฒ์ 2023๋ ์๋ ์๊ฐํ์ง ์๋ ๋ฐฉ๋ฒ์ด๋ค.
Minimize the error on loss function introduced by pruning neurons
Similar to previous Taylor expansion on weights, the induced error of the objective function L(x; W) can be approximated by a Taylor series expanded on activations.
\[ \delta L_i = L(x; W) - L(x\lvert x_i = 0; W) \approx \dfrac{\partial L}{\partial x_i}x_i \]
For a structural set of neurons \(x^{(S)}\) (e.g., a channel plane),
\[ \lvert \delta L_{x^{(S)}} \lvert\ = \Large\lvert \small\sum_{i\in S}\dfrac{\partial L}{\partial x_i}x_i\Large\lvert \]
Regression-based Pruning
์ด ๋ฐฉ๋ฒ์ Quantizedํ ๋ ์ด์ด์ output \(\hat Z\)(construction error of the corresponding layerโs outputs)์ \(Z\)๋ฅผ Training์ ํตํด ์ฐจ์ด๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฐธ๊ณ ๋ก ๋ฌธ์ ๋ฅผ ํธ๋ ์์ธํ ๊ณผ์ ์ 2022๋ ๊ฐ์์๋ง ๋์ ์๋ค.
\[ Z=XW^T=\sum_{c=0}^{c_i-1}X_cW_c^T \]
๋ฌธ์ ๋ฅผ ์์ผ๋ก ์ ์ํด๋ณด๋ฉด ์๋์ ๊ฐ์๋ฐ,
- \(\beta\) is the coefficient vector of length \(c_i\) for channel selection.
- \(\beta_c = 0\) means channel \(c\) is pruned.
- \(N_c\) is the number of none zero channel
์ฐ์ ๋ฌธ์ ๋ฅผ ํธ๋ ๋จ๊ณ๋ ๋ ๋จ๊ณ๋ก ๋๋๋ค. Channel์ Scale \(\beta\)๋ฅผ ์ฐ์ ๊ณ์ฐํ ํ์ \(W\)๋ฅผ Quantizedํ ๋ ์ด์ด์ output \(\hat Z\)(construction error of the corresponding layerโs outputs)์ \(Z\)์ ์ฐจ์ด๊ฐ ์ต์ํ๋๋ ์ง์ ๊น์ง Training์ํจ๋ค.
Solve the problem in two folds:
- Fix W, solve \(\beta\) for channel selection โ NP(Nondeterministic polynomial)-hard
- Fix \(\beta\), solve W to minimize reconstruction error(Weight Reconstruction)
๊ฐ ๋ฌธ์ ๋ฅผ ํธ๋ ๊ณผ์ ์ ์กฐ๊ธ ๋ ์์ธํ ์ดํด๋ด๋ณด์. ๋ณธ ๋ด์ฉ์ 2022๋ ๊ฐ์์ ์์ผ๋ ์ฐธ๊ณ !
NP(Nondeterministic polynomial)-hard๋ ์๋์ ๊ฐ์ด ์์ผ๋ก ์ ๋ฆฌํ ์ ์๋ค.
\[ \underset{\beta}{argmin} \lvert\lvert Z- \sum_{c=0}^{c_i-1} \beta_cX_cW_c^T \lvert\lvert_F^2 = \lvert\lvert \sum_{c=0}^{c_i-1}X_cW_c^T - \sum_{c=0}^{c_i-1} \beta_cX_cW_c^T \lvert\lvert_F^2 \] \[ = \lvert\lvert\sum_{c=0}^{c_i-1} (1-\beta_c)X_cW_c^T \lvert\lvert_F^2, \ s.t.\ \lvert\lvert\beta\lvert\lvert_0 \ \leq N_c \]
๊ฐ์์์ ์๊ฐํ๋ ThiNet์ด๋ผ๋ ๋ ผ๋ฌธ์์๋ greedy solution์ ์ด์ฉํด์ ์ฑ๋ ํ๋ํ๋์ฉ Pruning ํด๋ณด๋ฉฐ objective function์ l2-norm ์ต์๊ฐ์ ๊ตฌํ๋ค.
1: S = []
2: while len(S) < N:
3: min_norm, min_c = +inf, 0
4: for c in range(c_i):
5: tmpS=S+[c]
6: Z = X[:,tmpS] * W[:,tmpS].t()
7: norm = Z.norm(2)
8: if norm < min_norm:
9: min_norm, min_c = norm, c
10: S.append(min_c)
11: c_i.pop(min_c)
์ฌ๊ธฐ์ ๋ํด์ \(\beta\) ๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์์ ์ผ๋ฐํ๋ฅผ ์ํด LASSO ๋ฐฉ์์ ์ฌ์ฉํ๋ค(LASSO์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์). Relax the \(l_0\) to \(l_1\) regularization (LASSO):
\[ \underset{\beta}{argmin}\ \lvert\lvert Z- \sum_{c=0}^{c_i-1}\beta_cX_cW_c^T\lvert\lvert^2_F+\lambda\lvert\lvert \beta \lvert\lvert_1 \]
\(\lambda\) is a penalty coefficient. By increasing \(\lambda\), there will be more zeros in \(\beta\).
Gradually increase \(\lambda\) and solve the LASSO regression for \(\beta\), until \(\lvert\lvert \beta \lvert\lvert_0==N_c\) is met.
Why \(\lvert\lvert \beta \lvert\lvert_0==N_c\)?
์ฌ๊ธฐ์ ๋ํด์๋ ๋ฐ๋ก ์ธ๊ธ๋์ง ์์์ง๋ง, ์๋ฏธ์ scale ์ ์ฒด N๊ฐ ์ค์์ ์ต์ ๊ฐ์ ์ฐพ์์ผํ๋ค๋ฉด ์ ์ฒด๋ฅผ N์ผ๋ก ์ ์งํ๋ฉด์ ์ต์ ๊ฐ์ ์ฐพ๊ธฐ ์ํด์๊ฐ ์๋๊น?
๋ ๋ฒ์งธ๋ ๊ตฌํ \(\beta\)๋ฅผ ๊ณ ์ ํ ์ํ๋ก Weight๋ฅผ Quantized ์ ํ์ ์ฐจ์ด๋ฅผ ์ต์ํ ํ๊ฒ โWeight Reconstructionโ ํ๋ค. ๊ตฌํ๋ ๊ณผ์ ์ least square approach๋ฅผ ์ด์ฉํ unique closed-form solution ์ด๋ฏ๋ก ์๋๋ฅผ ์ฐธ์กฐํ์.
\[ \underset{\beta}{argmin}\ \lvert\lvert Z- \sum_{c=0}^{c_i-1}\beta_cX_cW_c^T\lvert\lvert^2_F \]
\(\beta\) is a coefficient vector from the previous step
This is a classic linear regression problem, which has a unique closed-form solution using the least square approach.
\[ \underset{W}{argmin} \lvert\lvert Z-\hat{Z} \lvert\lvert^2_F = \lvert\lvert Z-UW^T \lvert\lvert_F^2 \]
where
\[ U= \Large[ \small\beta_0X_0\ \beta_1X_1 \ \cdots \beta_cX_c \cdots \beta_{c_i-1}X_{c_i-1} \Large] \]
and thus,
\[ W^T = (U^TU)^{-1}U^T Z \]
Q. How \((U^TU)^{-1}\) exists?
Least Square method, ์์์ ๋ฒกํฐ \(v = (v_0, v_1, \dots, v_n)\) ๊ฐ ์์ ๋ \(v^Tv\) ์ ์ญํ๋ ฌ์ ํญ์ ์์๊น? ๊ฐ์ ์์ โa unique closed-form solutionโ๋ผ๊ณ ํ์ผ๋ฏ๋ก ์ด๋ ์ฆ linearly independen๋ก ๊ณ ๋ คํ ์๊ณ ์ญํ๋ ฌ์ด ์๋ค(\(v^Tv\) is invertible)๋ ์ด์ผ๊ธฐ์ด๋ค.
4. Discussion
Pruning์ Dropout์ด๋ ๋น๊ตํด์ ์ด๋ค ์ฐจ์ด์ ์ด ์๋๊ฐ?
๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ถ๋ช ํ Neuron๊ณผ Synapse๋ฅผ ์๋๋ค๋ ์ธก๋ฉด์์๋ ๋น์ทํ๋ค. ํ์ง๋ง ๋ ๊ฐ์ง ์ธก๋ฉด์์ ์ฐจ์ด์ ์ด ์๋๋ฐ, ํ ๊ฐ์ง๋ ๋ชฉ์ ํ๋ ๋ฐ์ด๊ณ , ๋ ๋ฒ์งธ๋ ์์ ์ด๋ค. Dropout์ ๋ชฉ์ ํ๋ ๋ฐ๊ฐ ํ๋ จ์ค์ overfitting์ ๋ฐฉ์งํ๊ธฐ ์ํจ์ด ์๊ณ Pruning์ ๊ฒฝ์ฐ๋ ํ๋ จ์ ๋ง์น ๋ชจ๋ธ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๊ฒ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ์์ ์ ๊ฒฝ์ฐ Dropout์ ํ๋ จ์ค์ ์ด๋ค์ง๋ ๋ฐ๋ฉด Pruning์ ํ๋ จ์ ๋ง์น๊ณ , ๊ทธ ํฌ๊ธฐ๋ฅผ ์ค์ธ ํ์ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ฉด ๊ทธ์ ๋ง๊ฒ Fine-tuning์ ํ๋ค.
์คํฐ๋์์๋ โ์ dropout์ ํตํด ์ฌ์ด์ฆ๋ฅผ ์ค์ด์ง ์์๋๊ฐ? ๊ทธ๋ฆฌ๊ณ ๊ตฌ์ง ํ๋ จ์ ๋ง์น ๋ค์์ ํ ํ์๊ฐ ์๋?โ ๋ผ๊ณ ์ง๋ฌธ์ด ๋์์๋ค. ๋ฌผ๋ก ํ๋ จ ์ค์ ๋ชจ๋ธ์ ์ฌ์ด์ฆ๋ฅผ ์๊ฒ ๋ง๋ค ์ ์์ผ๋ฉด, ๊ฐ๋ฅํ ๊ทธ๋ ๊ฒ ํ๋ฉด ๋ ๊ฒ์ด๋ค. ํ์ง๋ง, ์ด ๋ํ ๋๊ฐ์ง ์ธก๋ฉด์ ๊ณ ๋ คํ ํ์๊ฐ ์๋ค. ํ๋๋ โ๊ณผ์ฐ ๋ชจ๋ธ์ ์ฌ์ด์ฆ๋ฅผ ํ๋ จ ์ค ํน์ ์ ์ ์ค์ฌ๋๊ฐ๋ฉด์ ์ถฉ๋ถํ ์ฑ๋ฅ์ ๋ผ ์ ์๋๊ฐ?โ์ด๊ณ ๋ค๋ฅธ ํ๋๋ Pruning์ด๋ ๋ชจ๋ธ ๊ฒฝ๋ํ๋ ์ต์ ํ์ ์ด์ ์ ๋ง์ถ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ๋ จ ์ค๊ฐ์ Channel pruning๊ณผ ๊ฐ์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ ์ ์์ ์ง๋ ๋ฏธ์ง์์ด๊ณ , ์ค๋ น Fine-grained Pruning๊ณผ ๊ฐ์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค ํ๋๋ผ๋ ์ด๋ ๋ชจ๋ธ์ ์ฌ์ด์ฆ๋ง ์ค์ด ๋ค ๋ฟ, ๋๋จธ์ง ๋ฉ๋ชจ๋ฆฌ(e.g. RAM)์ด๋ Latency๊ฐ์ ์ฑ๋ฅ์ ์ข๊ฒ ๊ฐ์ ธ๊ฐ ์ ์์์ง๋ ๋ฏธ์ง์๋ผ๊ณ ์๊ฐํ๋ค.
ํ์๋ ์์ ๊ฐ์ ์ต์ ํ๋ฅผ ํตํ ์ฑ๋ฅ ๊ฐ์ ์ ์ด ๊ธ์์์ฒ๋ผ 2022๋ TinyML ๊ฐ์์์ ์ ๊ณตํ๋ ์ค์ต์ ํตํด ๊ฒฝํํ์๋ค. ์์ ์์๋ OS๋ฅผ ๊ฐ์ง ๋๋ฐ์ด์ค๊ฐ ์๋ Bare-metal firmware๋ก ํ๊ฒฝ์ด ์กฐ๊ธ ํน์ํ๊ธฐ๋ ํ๊ณ , ์ค์ ๋ก Torch๋ Tensorflowlite์์ ์ ๊ณตํ๋ ๋ชจ๋ธ ๊ฒฝ๋ํ๋ฅผ ์ง์ ์ ์ผ๋ก ๋ถ์ํด๋ด์ผ ์ค์ง์ ์ธ ์์๋ฅผ ์ ์ ์๊ฒ ์ง๋ง, ํน์ฌ ์ดํดํด ์ฐธ๊ณ ๊ฐ ๋ ๊น ๋ง๋ถ์ฌ ๋๋๋ค.
5. Reference
- MIT-TinyML-lecture03-Pruning-1
- AMC: Automl for Model Compression and Acceleration on Mobile Devices, 2018
- Learning Efficient Convolutional Networks through Network Slimming, 2017
- ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression, 2017
- Channel Pruning for Accelerating Very Deep Neural Networks