본문 바로가기

논문 리뷰/etc.

Loss Aware Post-training Quantization (LAPQ)

[Github]
[arXiv](Current version v2)
 
 

Abstract

낮은 비트폭 양자화에서 2차 최적화를 통해 Layer-wise quantization을 가능하게 함
 
 
 

Loss landscape of quantized DNNs

M비트, quantization step size ∆를 고려한 양자화:

 
 
Step size ∆를 통해 x의 범위를 [-c, c]로 제한함:

ReLU 활성화의 출력일 경우:

 
이 논문에서 ∆는 값으로도 쓰이고 양자하 된 인스턴스에 대한 표시라고 해야 하나 암튼 그런 개념으로도 쓰이고 미분에서 원래의 용도로도 쓰인다. 좀 헷갈림...
 

Separable optimization

손실함수 L은 변수 세트 v(weights, activations, etc.)에 의존하며, 양자화 노이즈를 벡터 ε으로 처리하여 테일러 전개:

 

ε2이 충분히 작을 경우 다음과 같이 독립적인 프로세스의 합으로 나타낼 수 있고

클 경우 서로 다른 레이어 간의 상호작용을 고려하여야 한다.

 

Curvature

손실 함수의 곡률을 측정.
 

각 양자화된 레이어의 손실을 L(∆i)라고 할 때, 모든 레이어에 대한 hessian matrix 계산:

 
Gaussian curvature로 곡률 측정:

공격적인 양자화를 사용할수록 거친 곡률을 가진다.
 
또한 인접한 레이어들 간에 더 높은 곡률을 가지는 것을 보면 더 높은 종속성을 가지는 것을 알 수 있다.

 
거친 곡률을 가진 2비트 양자화는 ∆값에 큰 영향을 많이 받는다. (2비트 뒤에 4비트 있어요)

 
 
 

Loss Aware Post-training Quantization (LAPQ)

레이어 간의 분리 불가능성을 해결하기 위한 3가지 단계

  1. 손실을 최소화하는 ∆p 찾기
  2. 2차 보간으로 근사
  3. 피라미터 최적화

 

Layer-wise optimization

각 레이어에서 최적화를 수행해 최적과 근사한 p(레이어마다 다름)를 얻는다.

 

Quadratic approximation

최적 ∆* 근처의 ∆에 대해 테일러 전개:

 
이미 로컬 최적인 1차 항과 사소한 고차항 제거

 

계산으로 얻은 최적값 ∆p*은 공동 최적화 알고리즘의 시작점이 됨.

 

Joint optimization

낮은 비트폭 양자화에서는 사소한 오차도 성능 저하로 이어진다. 따라서 더욱더 최적화하기 위해 gradient-free joint optimization의 반복 알고리즘 사용.
 

검색 방향 집합 D = {d1, d2, . . . , dN}이 주어지면 새 위치는 탐색 방향의 선형 조합으로 표현되고

첫 탐색 방향은 제거, 업데이트된 위치를 기반으로 새로운 탐색 방향 추가하는 방법을 반복한다.