(8강) 양자화

💡
양자화에 대해 알아본다.

Fixed point, floating point

숫자를 표현하는 방식에 있어서 Fixed-point 방법과 Floating-point 방식이 있다. 둘의 표현력은 동일하지만, 각각 다른 장단점을 갖는다.

Fixed-point와 Floating-point 방식의 차이

Continuous Value를 Discrete하게 표현하면, 완벽히 동일하지는 않지만 많은 부분에서 큰 이점을 갖는다.

Quantization이란?

양자화란, 값들을 덩어리로 묶는 과정이다. 정밀도가 떨어지지만, 모델의 사이즈가 줄어들고, Speed가 향상되는 큰 이점을 갖는다.

Quantization의 예시

선형적으로 정보를 변환하는 과정인 Affine에 Quantization을 수행할 수 있다.

Affine Quantization의 예시

위와 같이 Step을 나누어 Quantization하면, 역전파가 되지 않기 때문에, 이를 해결하고자 하는 시도로 Differentiable Quantization이 등장했다.

미분 가능한 Quantization의 예시

여러 Quantization들

Quantization도 다양한 방법이 존재한다.

Quantization의 다양한 예시

이 중에서 가장 대표적인 방법론의 구분은 DQ, PTQ, QAT이다.

각 구동방식의 도식화
각 방법의 Table화

Dynamic Quantization은 다음과 같다.

DQ의 예시

Post-training Quantization은 다음과 같다.

PTQ의 예시

Quantization-aware Training은 다음과 같다.

QAT의 예시

토이 코드

Layer-wise histogram


(9강) 지식 증류

💡
지식 증류에 대해 알아본다.

Knowledge

DL에서 지식이라 함은, Model이 Data를 통해 얻은 Parameter의 상태를 의미한다. Model이 Data로부터 어떤 지식을 얻을 때에는 다양한 Function이 포함되게 된다. 각 Function의 의미를 이해하면 도움이 될 것이다.

Logit, Sigmoid, Softmax의 연관성

Knowledge distillation

지식 증류는 많은 Data를 학습한 커다란 모델의 지식을 작은 모델에게 전달하는 과정이다. 전달이라는 의미의 Transfer Learning과 헷갈릴 수 있는데, Transfer Learning은 지식의 도메인을 옮기고자 하는 것을 목적으로 하는 것이다.

Knowledge Distillation은 Compression을 목적으로 한다.

Teacher-Student networks & Hinton loss

Teacher Model의 지식을 Student Model에 증류하기 위해서 두 가지의 Loss Function을 사용한다. 이 Loss Function에는 Hinton Loss의 개념을 차용하는데, 이는 Softmax의 값을 Smoothing하여 사용하는 것이다. 이를 통해서, 정답이 아닌 Label이더라도 Label간의 상관관계를 이해할 수 있는 모델이 된다.

Student Model은 Distillation Loss와 Student Loss를 통해 학습한다.

Zero-mean assumption

Knowledge Distillation은 반드시 Compression이라고 할 수 없다. Teacher Model과 Student Model의 결과가 Zero-mean Assumption을 충족하는지에 따라 식이 달라지고, 크기에 따라 이를 Compression으로 이해할 수 있는가에 대해 차이가 생긴다.

여러 distillation들

Knowledge Distillation에도 다양한 방법이 있다.

ReLU 앞과 뒤에서 Feature를 뽑는 것에 대한 논문
Data-free에 대한 논문

토이 코드

Teacher & student

'네이버 부스트캠프 AI Tech' 카테고리의 다른 글

[P1] Day 41  (0) 2021.03.31
[U] Day 40 - Lightweight V  (0) 2021.03.28
[U] Day 38 - Lightwieght III  (0) 2021.03.28
[U] Day 37 - Lightweight II  (0) 2021.03.28
[U] Day 36 - Lightweight I  (0) 2021.03.28

+ Recent posts