AITech 학습정리-[Day 39] 양자화 / 지식 증류
================================
학습내용
(8강) 양자화
이번 강의는 관심이 없어서 그런지 머리에 하나도 안들어왔다.
그래서 필요성을 약간이나마 느낀것들을 정리하려고 한다. 필요하면 그때 찾아야지..

float 저장 방식으로 생기는 오류들.
https://youtu.be/DDelqfkYCuo |
근데 양자화 시키면 미분 불가능하니까 못하는거 아니냐? 할 수 있어서 적당히 양자화 시키는 것도 있음.


https://www.tensorflow.org/lite/performance/post_training_quantization
https://talkingaboutme.tistory.com/entry/Embedded-DL-Tensorflow-Lite-Quantization
하드웨어마다 되는게 있고 안되는게 있으니까 보고 판단하자.
https://wannabeaprogrammer.tistory.com/42 |

https://www.tensorflow.org/lite/performance/model_optimization#why_models_should_be_optimized
https://stackoverflow.com/questions/60883928/quantization-aware-training-in-tensorflow-version-2-and-batchnorm-folding
https://arxiv.org/pdf/1806.08342.pdf
실습
https://drive.google.com/file/d/1dzvkQLKRLLdAxfmd4imFs1F3CN_urHNo/view?usp=sharing
pytorch에서 모델에 quantize 하는방법.

(9강) 지식 증류

https://ppss.kr/archives/230096
https://www.researchgate.net/figure/Significance-of-decision-compared-to-knowledge-on-project-see-47_fig2_273983243
솔직히 모델설계랑 별 관련 없는것 같긴 한데.. 프로젝트 시작한지 얼마 안됐을 때 많은 결정을 해보자. 그만큼 피드백도 빨리 받고 발전도 빨리 된다는듯.
https://opentutorials.org/module/3653/22995 |
sigmoid의 기원.

기존에 배운 transfer learning이랑 비슷한 teacher student 방식을 쓰는 knowledge transfer. 다른점은 무거운 모델에서 가벼운 모델로 학습을 한다는 것. 이렇게 teacher 모방하는 방식이 student가 혼자 쌩으로 학습하는 것 보다는 나은 성능을 보이더라.

https://intellabs.github.io/distiller/knowledge_distillation.html
https://arxiv.org/pdf/1503.02531.pdf
전에 했던 transfer learning이랑 비슷하다. T가 뭔지는 밑에서 알려주겠다.

https://www.ttic.edu/dl/dark14.pdf
https://arxiv.org/pdf/1503.02531.pdf
옛날엔 정답만 1, 나머진 0으로 놓고 학습했었다. 근데 그렇게 하는게 맞는가? 싶어 softmax로 살펴보면 정답이 아니어도 정답과 비슷한 것 끼린 높은 점수가 나오고 전혀 관련이 없으면 매우 낮은 점수가 나온다. 이런 정답끼리의 유사한 정도도 학습하는게 좋겠다.
https://github.com/kmsravindra/ML-AI-experiments/blob/master/AI/knowledge_distillation/Knowledge%20distillation.ipynb |
그래서 아까 위에서 봤떤 T가 극단적으로 1! 0.9999! 이런게 아니라 정답이어도 적당히 점수를 낮추고 비슷한 답은 상대적으로 올려서 학습하는 정도.

https://en.wikipedia.org/wiki/Knowledge_distillation
https://math.stackexchange.com/questions/1888141/why-is-the-softmax-function-called-that-way
https://arxiv.org/pdf/1503.02531
zi인 distilled model이 student고 cumbersome model인 teacher 가 v. 둘이 유사하게 맞춘다는게 핵심인 것 같다.
https://pythonawesome.com/a-clean-pytorch-implementation-to-run-quick-distillation-experiments/ |
수 많은 distillation 방법들이 있다.
https://arxiv.org/pdf/1904.01866.pdf |
얘는 distill layer를 지금까지 relu 뒤에만 뒀는데 앞에 두는건 어떨까 하는거.
https://arxiv.org/pdf/1710.07535.pdf |
student에게 가르쳐줄 때 데이터가 없거나 거의 없이 훈련시킬 수 있을까? 하는거.
실습
https://drive.google.com/file/d/16DxGDOXs-DGHlqmTWqyV5ZhCQ6dL6qVa/view?usp=sharing
teacher child 모델 어떻게 훈련하는지 코드로 잘 설명해준다.
=================================
과제
돌리는중..
실습때와 같이 knowledge transfer를 어떻게 하는지 잘 보여줌.
=================================
피어세션
수업 복습해봄.
==================================
후기
할 일을 차근차근 하자.