위키득계정 ↗
기술

신경망 양자화

신경망 양자화기술
영문명
Neural network quantization
대상
가중치와 활성값 등
대표 표현
실수 r≈s(q−z)
주요 변수
비트 수, 스케일, 영점, 표현 범위
신경망 양자화는 가중치나 활성값을 제한된 수의 값으로 표현해 저장과 연산 비용을 줄이는 방법이다. 정수 표현과 대응하는 스케일을 함께 사용하며, 어느 연산을 어떤 정밀도로 실행하는지에 따라 실제 효과가 달라진다.

정수와 실수 사이의 대응

아핀 양자화에서 q는 정수, s는 양수 스케일, z는 실수 0에 대응하는 정수 영점이다. 실수를 정수 격자에 맞추어 반올림하고 허용 범위로 제한한 뒤 대응 관계로 해석한다. 스케일과 영점을 버린 채 정수 배열만 비교하면 원래 값의 의미를 놓칠 수 있다.

간격과 포화의 예제

s=0.1, z=10이고 q 범위를 0부터 20까지로 두자. 실수 0.26은 q=13으로 반올림되어 0.3으로 복원되므로 오차는 0.04다. 실수 2는 계산상 q=30이지만 범위를 제한하면 q=20, 복원값은 1이 된다. 이 경우 오차 1은 단순한 반올림보다 표현 범위의 포화에서 발생한다.

추론 표현과 학습 과정

정수 추론에서는 낮은 비트 수의 입력 곱을 더 넓은 누산기에 더하는 구성이 가능하다. 가중치가 8비트라고 모든 중간 계산도 8비트인 것은 아니다. 학습 중에는 반올림과 범위 제한을 모사하면서 실수 가중치를 갱신해 양자화 오차에 적응시키는 방법도 쓴다. 학습을 모사했다고 학습 전체가 정수 연산이라는 뜻은 아니다.

압축률과 실행 시간

32비트 값 하나를 8비트로 저장하면 값 자체의 비트 수는 4분의 1이 된다. 그러나 모형 전체에는 스케일과 추가 정보, 다른 정밀도의 값도 들어갈 수 있다. 실제 속도는 정수 커널 지원과 변환 비용, 메모리 접근에 좌우된다. 정확도와 메모리, 실제 장치에서의 지연을 함께 측정해야 한다.

관련 문서

양자화 (신호 처리) / 신경망 / 지식 증류 / 정수 / 부동소수점 / 이진 신경망