-
[최적화] Model Compression for Deep Neural Networks: A Survey 논문 리뷰최적화 2023. 8. 30. 23:07반응형
@ 굵은 글씨는 중요한 내용, 빨간 글씨는 내가 추가한 내용
https://www.mdpi.com/2073-431X/12/3/60
- 정리:
0. Abstract
딥러닝 모델이 빠르게 발전함에 따라 연산량 및 파라미터 수는 기하급수적으로 늘어나고 있다. 이는 많은 computing power가 필요하다는 것으로 이어지며, 결국 모델 실시간성의 어려움을 유발한다 (computing power의 발전은 비교적 느린 속도로 발전중임). 이를 해결하기 위해 모델 경량화 분야가 중요하게 대두되고 있다. 특히 edge device 환경에서의 모델 활용을 위해 경량화는 필수적이다.
본 논문은 다양한 모델 경량화 방법을 논한다
- reducing device storage space
- speeding up model inference
- reducing model complexity
- reducing training costs
- improving model deployment
또한, 모델 경량화 분야의 SOTA 기법을 논한다
- model pruning
- parameter quantization
- low-rank decomposition
- knowledge distillation
- lightweight model design
1. Introduction
AI가 빠르게 발전함에 따라 많은 연구가 이루어졌고, 특히 vision 분야에서 활발히 연구되었다. 2012년 AlexNet은 기존 모델의 정확도를 11%까지 개선하며 많은 주목을 받았고, 이후 VGG, GoogleNet, ResNet이 차례로 등장했다. 이렇게 모델이 무거워짐에 따라 하드웨어 성능과 모델 요구 성능이 차이가 나게 되었다. 이를 해결하기 위해 현재 모델의 성능을 유지하며 압축하는 모델 경량화의 필요성이 대두되었다.
표1을 통해 모델이 복잡해질수록 classification 성능은 높아졌지만, 더 많은 storage와 computing resource가 사용된것을 확인할 수 있다.
ResNet-50은 3.8billion개가 넘는 부동 소수점 연산이 필요하다. 그러나, 모델 경량화 중 pruning 기법을 적용한 이후에 성능은 그대로 유지되었지만 파라미터는 75%, computational time은 50% 감소하는 것을 확인할 수 있었다. 이를 통해 모델 경량화가 매우 중요하다는 것을 알 수 있다. 모델 경량화를 위해선 algorithm optimization, computational architecture design, signal processing, hardware system design 모두가 통합?되어야 한다.
1.1. Contributions of This Paper
다음과 같은 모델 경량화 방법을 요약한다.
- model pruning : 중복된 layer/channel을 찾고, 성능에 영향을 미치지 않고 제거하는 것
- parameter quantization : 부동 소수점 연산을 low-bitrate 정수 연산으로 변환하는 것
- low-rank decomposition : matrix/tensor를 분해하여 근사하는 것
- knowledge distillation : large net 을 활용하여 small net을 학습하는 것
- lightweight model design : 파라미터와 computation time을 줄이기 위해 특별히 구조화된 conv filter를 설계하는데 사용됨
모델 경량화는 다음과 같은 이점을 갖는다.
-
storage 공간 절약 (특히, edge devices)
-
computational demand 감소 및 모델 추론 속도 향상
-
모델의 복잡성을 감소 및 과적합 방지
-
학습 시간과 컴퓨팅 리소스 소비 감소를 통한 학습 비용 감소
-
모델의 배포 가능성 향상 (모델이 작을수록 edge devices에 배포하기 쉬움)
1.2. Organization of This Paper
2. Model Pruning
초기 pruning은 weight decay(학습된 모델의 복잡도를 줄이기 위해서 학습 중 weight가 너무 큰 값을 가지지 않도록 Loss function에 Weight가 커질경우에 대한 패널티 항목을 집어넣는 것)였다.
-> 이후, 목점 함수는 loss에 적은 영향을 미치는 뉴런을 찾기 위해 사용되었다 (Taylor expansion method).
이러한 방법들은 성능에 큰 영향을 미치지 않고 구성 요소를 제거하는 것에 중점을 두었다.
2.1. Structured Pruning
딥러닝 모델이
2.2. Unstructured Pruning
ㅁㄴㅇㄹ
3. Parameter Quantization
딥러닝 모델이
4. Low-Rank Decomposition
딥러닝 모델이
5. Knowledge Distillation
딥러닝 모델이
6. Lightweight Model Design
딥러닝 모델이
7. Discussion
딥러닝 모델이
8. Conclusions and Future Work
딥러닝 모델이
My Discussion
Why this paper?
asdf
--> asdf
ㅁㄴㅇㄻㄴㅇㄹ
반응형'최적화' 카테고리의 다른 글
[최적화] Model Compression 논문 리스트 (0) 2023.10.17 [최적화] pytorch CSR 구현 (작성중) (0) 2023.10.12 [최적화] 딥러닝 모델 더 작게 만들기(경량화) 내용 정리 (1) 2023.09.05 [최적화] 모델 경량화 Pruning (작성중) (0) 2023.08.29 [최적화] 프로그래밍 언어 CUDA (작성중) (0) 2023.08.24