๐ก ๋ณธ ๋ฌธ์๋ '[DL] Knowledge Distillation ๋ค์ํ ๋ฐฉ๋ฒ๋ค(feat. RepDistiller)'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
Knowledge Distillation์ 2014๋ ์ ์ ์๋ ๋ฐฉ๋ฒ๋ก ์ผ๋ก ๋ฅ๋ฌ๋ ๋ถ์ผ์น๊ณ ๋ ๊ฝค๋ ์ค๋๋ ๋ฐฉ๋ฒ๋ก ์ด์ง๋ง, ํ์ฌ๊น์ง๋ ๋ชจ๋ธ์ ๊ฒฝ๋ํํ๋๋ฐ ๋ง์ด ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ์ด Knowledge Distillation์์ ํ์๋ ๋ฐฉ๋ฒ๋ก ๋ค์ ๋ํด ์ฝ๋๋ ๋ฒจ๋ก ์ ๋ฆฌํ์์ผ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
1. Knowledge Distillation?
Knowledge Distillation ์ด๋?
๋ฅ๋ฌ๋์์ Knowledge Distillation์ ํฐ ๋ชจ๋ธ(Teacher Network)๋ก๋ถํฐ ์ฆ๋ฅํ ์ง์์ ์์ ๋ชจ๋ธ(Student Network)๋ก transferํ๋ ์ผ๋ จ์ ๊ณผ์ ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ Knowledge Distillation?
์ง์ ์ฆ๋ฅ๋ฅผ ์ฒ์์ผ๋ก ์๊ฐํ ๋ ผ๋ฌธ์ธ "Distilling the Knowledge in a Neural Network(Hinton)"์ ๋ชจ๋ธ ๋ฐฐํฌ(model deployment) ์ธก๋ฉด์์ ์ง์ ์ฆ๋ฅ์ ํ์์ฑ์ ์ฐพ๊ณ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ค์์ ๋ ๋ชจ๋ธ์ด ์๋ค๋ฉด ์ด๋ค ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๊ฒ ์ ํฉํ ๊น์?
- ๋ณต์กํ ๋ชจ๋ธ T : ์์ธก ์ ํ๋ 99% + ์์ธก ์์ ์๊ฐ 3์๊ฐ
- ๋จ์ํ ๋ชจ๋ธ S : ์์ธก ์ ํ๋ 90% + ์์ธก ์์ ์๊ฐ 3๋ถ
์ด๋ค ์๋น์ค๋์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์๊ฒ ์ง๋ง, ๋ฐฐํฌ ๊ด์ ์์๋ ๋จ์ํ ๋ชจ๋ธ S๊ฐ ์กฐ๊ธ ๋ ์ ํฉํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด, ๋ณต์กํ ๋ชจ๋ธ T์ ๋จ์ํ ๋ชจ๋ธ S๋ฅผ ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์์ง ์์๊น์? ๋ฐ๋ก ์ฌ๊ธฐ์ ํ์ํ ๊ฐ๋ ์ด ์ง์ ์ฆ๋ฅ(Knowledge Distillation)์ ๋๋ค. ํนํ, ๋ณต์กํ ๋ชจ๋ธ์ด ํ์ตํ generalization ๋ฅ๋ ฅ์ ๋จ์ํ ๋ชจ๋ธ S์ ์ ๋ฌ(transfer)ํด์ฃผ๋ ๊ฒ์ ๋งํฉ๋๋ค.
Knowledge Distillation ๋๋ต์ ์ดํด
Teacher Network(T): cumbersome model
- (pros) excellent performance
- (cons) computationally espansive
- can not be deployed when limited environments
Student Network(S): Small Model
- (pros) fast inference
- (cons) lower performance than T
- suitable for deployment
Knowledge Distillation ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ๋ก (Sotf Label, KD Loss)
๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ํฐ ๋ชจ๋ธ๋ก๋ถํฐ ์์ ๋ชจ๋ธ๋ก ์ง์์ ์ ๋ฌํ ์ ์๋ ๊ฑธ๊น์? ์ด๋ ์ ๊ฒฝ๋ง๊ณผ ์์คํจ์๋ฅผ ์ดํด๋ณด๋ฉด ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค. ์์ ์ธ๊ธํ Knowledge Distillation์ ์ฒ์ ์ ์ํ Hinton์ ๋ ผ๋ฌธ์์ ๋์จ Hinton's KD๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
1) Sotf Label
์ผ๋ฐ์ ์ผ๋ก, ์ด๋ฏธ์ง ํด๋์ค ๋ถ๋ฅ์ ๊ฐ์ task๋ ์ ๊ฒฝ๋ง์ ๋ง์ง๋ง softmax ๋ ์ด์ด๋ฅผ ํตํด ๊ฐ ํด๋์ค์ ํ๋ฅ ๊ฐ์ ๋ฑ์ด๋ด๊ฒ ๋ฉ๋๋ค. softmax ์์์ ํตํด ๋ค์๊ณผ ๊ฐ์ด ๋ฒ์งธ ํด๋์ค์ ๋ํ ํ๋ฅ ๊ฐ()๋ฅผ ๋ง๋ค์ด๋ด๋ ๋ฐฉ์์ ๋๋ค.
์ด๋, Hinton์ ์์ธกํ ํด๋์ค ์ด์ธ์ ๊ฐ์ ์ฃผ์ ๊น๊ฒ ๋ณด์์ต๋๋ค. ๊ฐ๋ฅผ ์ ์ธํ ๊ณ ์์ด๋ ์๋์ฐจ ๊ทธ๋ฆฌ๊ณ ์ ์์ ํ๋ฅ ์ ๋ณด์์ผ๋ฉฐ, ์ด ์ถ๋ ฅ๊ฐ๋ค์ด ๋ชจ๋ธ์ ์ง์์ด ๋ ์ ์๋ค๊ณ ๋งํ๊ณ ์์ต๋๋ค. ํ์ง๋ง, ์ด๋ฌํ ๊ฐ๋ค์ softmax์ ์ํด ๋๋ฌด ์์ ๋ชจ๋ธ์ ๋ฐ์ํ๊ธฐ ์ฝ์ง ์์ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅ๊ฐ์ ๋ถํฌ๋ฅผ ์ข ๋ softํ๊ฒ ๋ง๋ค๋ฉด, ์ด ๊ฐ๋ค์ด ๋ชจ๋ธ์ด ๊ฐ์ง ์ง์์ด๋ผ๊ณ ๋ ๋ณผ ์ ์์ ๋ฏ ํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก Knowledge Distillation์ ์์ด(Hinton’s KD)์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋น ๋ ผ๋ฌธ์์๋ ์ด๋ฌํ soft output์ dark knowledge๋ผ๊ณ ํํํ๊ณ ์์ต๋๋ค.
์ด๋ ๊ฒ softํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ๊ณผ์ ์ ์์์ผ๋ก ํํํ๋ฉด, ์๋์ ๊ฐ์ต๋๋ค. ๊ธฐ์กด softmax ํจ์์ T(temperature) ๊ฐ์ ๋ถ๋ชจ๋ก ๋ฃ์ด์ฃผ์ด ๋ถํฌ๋ฅผ softํ๊ฒ ๋ง๋ค์ด์ฃผ๊ฒ ๋ฉ๋๋ค.
$$ qi = \frac{exp(z_i)}{\sum_j exp(z_j)} \to qi = \frac{exp(z_i / T)}{\sum_j exp(z_j/T)} $$
2) distillation loss
์์์ ์ ์ํ Hinton์ soft target์ ๊ฒฐ๊ตญ ํฐ ๋ชจ๋ธ(T)์ ์ง์์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด ์ง์์ ์ด๋ป๊ฒ ์์ ๋ชจ๋ธ(S)์๊ฒ ๋๊ธธ ์ ์์๊น์? ๋จผ์ , ํฐ ๋ชจ๋ธ(T)์ ํ์ต์ ์ํจ ํ ์์ ๋ชจ๋ธ(S)์ ๋ค์๊ณผ ๊ฐ์ ์์คํจ์๋ฅผ ํตํด ํ์ต์ํต๋๋ค.
$$ L = \sum_{(x, y)\in D} L_{KD}(S(x, \Theta_S, \tau ), T(x, \Theta_T, \tau )) + \lambda L_{CE}(\hat{y}_S, y) $$
- Student model, Teacher model
- ํ๋์ ์ด๋ฏธ์ง์ ๊ทธ ๋ ์ด๋ธ
- ๋ชจ๋ธ์ ํ์ต ํ๋ผ๋ฏธํฐ
- temperature
๋ ์ ํ์ต๋ Teacher model์ soft labels์ Student model์ soft predictions๋ฅผ ๋น๊ตํ์ฌ ์์คํจ์๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ด๋, ์จ๋()๋ ๋์ผํ๊ฒ ์ค์ ํ๊ณ Cross Entropy Loss๋ฅผ ์ฌ์ฉํฉ๋๋ค.
2. Knowledge Distillation Schema
Offline Distillation
์ด๊ธฐ knowledge distillation์ pre-trained teacher model์ teacher knowledge๋ฅผ student model๋ก transfferedํจ.
๋ฐ๋ผ์ 2๊ฐ์ง stage์ training ํ๋ก์ธ์ค๊ฐ ์์.
- 1) distillation ์ ์ large teacher model์ ๋จผ์ ํ๋ จํจ
- 2) ์์ ์ธ๊ธํ๋ฏ teacher model์ logits์ด๋ intermediate features๋ฅผ knowledge๋ก ์ถ์ถํ์ฌ student model์ distillation ํ๋ จ์ ๊ฐ์ด๋๋ก ์ฌ์ฉํจ
Online Distillation
In online distillation, both the teacher model and the student model are updated simultaneously, and the whole knowledge distillation framework is end-to-end trainable.
Self Distaillation
In self-distillation, the same networks are used for the teacher and the student models.
(self-distillation means student learn knowledge by oneself)
3. Knowledge Distillation ๋ค์ํ ๋ฐฉ๋ฒ๋ก (Algorithms)
์ฐธ๊ณ
- [Paper] Distailling the knowledge in a Neural Network: https://arxiv.org/pdf/1503.02531
- [Paper] Knowledge Distillation: A Survey: https://arxiv.org/pdf/2006.05525
- [Blog] ๋ฅ๋ฌ๋ ๋ชจ๋ธ ์ง์์ ์ฆ๋ฅ๊ธฐ๋ฒ, Knowledge Distillation: https://baeseongsu.github.io/posts/knowledge-distillation/
'Study: Artificial Intelligence(AI) > AI: Light Weight(LW)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LW] ๋คํธ์ํฌ ๊ฒฝ๋ํ: Quantization ๋ค์ํ ๋ฐฉ๋ฒ๋ค (0) | 2024.05.15 |
---|---|
[LW] ๋คํธ์ํฌ ๊ฒฝ๋ํ: Pruning ๋ค์ํ ๋ฐฉ๋ฒ๋ค (0) | 2024.05.11 |