1 분 소요

Successive Log Quantization for Cost-Efficient Neural Networks Using Stochastic Computing

해당 논문에서는
Log quantization 회로를 재사용을 이용한 quantization error를 최소화하는 방법에 대해 다루고 있습니다

Succesive Log Quantization


Successive Log Quantization (SLQ)는 log quantization에 의해 발생하는 quantization error를
quantize word의 series를 통해 error를 최소화 하려는 방법을 뜻합니다

image

위 table에서 0.4375라는 값에 대해 log quantization을 적용할 경우
가장 가까운 quantization point인 0.5로 quantize를 진행해 0.0625만큼의 quantization error가 발생하게 됩니다

하지만 저자들이 제안한 SLQ를 적용할 경우
0.5 + (-0.0625) (00001 + 11100(보수)) 또는 0.25 + 0.125 + 0.0625 (00010 00011 00100) 와 같이 표현이 가능해
quantization error를 최소화 시킬 수 있습니다
(이진수 값은 $2^{-i}$의 i에 해당)

결과적으로 SLQ의 각 quantization step을 다음과 같이 표현할 수 있으며
잔차(residue) 값인 $(x-\tilde{x} _i)$가 threshold $\theta$값 보다 클 경우
그리고 설정해준 max length L보다 작을 경우
계속해서 quantize 과정을 반복합니다

\[\begin{align} \tilde{x} _0 &\equiv 0 \newline q_i&=LogQuant(x-\tilde{x} _{i-1}),\quad i\geq 1 \end{align}\]

위와 같이 가변 길이로 quantization을 진행할 경우
얼마만큼의 길이로 해당 값을 quantize하는지를 알려줘야하기 때문에
SLQ를 통해 quantize한 값의 길이를 알려주는 방식을 다음과 같이 두 가지 제안합니다

Encoding


image
  1. Tagging

    Tagging 방식은 각 quantize word 앞에 1bit을 추가함으로써, 추가적인 word가 더 붙게 되는지 를 알려주는 방식을 뜻합니다
    간단히 1bit 추가만으로 표현할 수 있다는 장점이 있지만, 모든 word마다 1bit의 오버헤드가 추가로 필요로 하다는 단점이 존재합니다

  2. Special Code

    Special Code 방식은 quantized word가 한 개 이상 필요할 때, 특정 값(-M)을 삽입하는 방식을 뜻합니다

댓글남기기