[Review] Successive Log Quantization for Cost-Efficient Neural Networks Using Stochastic Computing, DAC, 2019
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를 최소화 하려는 방법을 뜻합니다
위 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 과정을 반복합니다
위와 같이 가변 길이로 quantization을 진행할 경우
얼마만큼의 길이로 해당 값을 quantize하는지
를 알려줘야하기 때문에
SLQ를 통해 quantize한 값의 길이를 알려주는 방식을 다음과 같이 두 가지 제안합니다
Encoding
-
Tagging
Tagging 방식은 각 quantize word 앞에 1bit을 추가함으로써, 추가적인 word가 더 붙게 되는지 를 알려주는 방식을 뜻합니다
간단히 1bit 추가만으로 표현할 수 있다는 장점이 있지만, 모든 word마다 1bit의 오버헤드가 추가로 필요로 하다는 단점이 존재합니다 -
Special Code
Special Code 방식은 quantized word가 한 개 이상 필요할 때, 특정 값(-M)을 삽입하는 방식을 뜻합니다
댓글남기기