딥러닝 모델은 점점 더 커지고 입력 데이터의 해상도도 높아지고 있다. 예를 들어, 1998년 LeNet-5는 MNIST 28x28 이미지를 처리했지만, 20년 후 ImageNet은 그보다 200배 큰 해상도를 다루고 있으며, 모델 크기와 메모리 사용량도 수십 배 증가하였다. 이러한 추세는 자율 주행, 감시 시스템, 모바일 기기 등 연산 제약이 큰 환경에서 신경망 배포를 어렵게 만든다.
이 문제를 해결하는 주요 방법 중 하나는 양자화(Quantization)이다. 하지만 단순히 모든 레이어를 동일한 정밀도로 양자화하면 심각한 정확도 손실이 발생한다. 따라서 일부 민감한 레이어는 높은 정밀도, 덜 민감한 레이어는 낮은 정밀도를 사용하는 Mixed-Precision Quantization이 필요하다. 그러나 레이어 수가 많아질수록 탐색 공간은 지수적(Exponential)으로 커지며, Fine-tuning 순서 결정도 팩토리얼적(Factorial) 복잡도를 가진다.
HAWQ(Hessian AWare Quantization)는 이 문제를 해결하기 위해 Hessian 기반의 민감도 측정을 도입하여 레이어별 적절한 정밀도를 자동으로 배정하고, Fine-Tuning 순서까지 체계적으로 정하는 방법을 제안한다.
Gradien(1차 미분)는 특정 지점에서 0일 수 있어 민감도를 제대로 측정하지 못한다. 바념ㄴ Hessian(2차 미분)은 loss 곡면의 곡률(curvature)을 반영하므로, 양자화 시 얼마나 민감한지를 더 잘 나타낸다.
실제로 ResNet20(CIFAR-10), Inception-V3(ImageNet)에서 블록별 Hessian 고유값을 구하면, 블록마다 수십 배 차이가 나는 것을 확인할 수 있다.

HAWQ는 두 가지 기준으로 레이어 정밀도와 Fine-Tuning 순서를 정한다.
1. Mixed Precision 결정
Hessian은 2차 미분 해열ㄹ이다. 어떤 방향으로 파라미터를 움직였을 때, loss가 얼마나 빨리 변하는지(=곡률)를 알려준다.
그중에서도 가장 큰 고유값 는 "loss가 가장 가파른 방향"의 곡률을 의미한다.
즉,
여기서 값이 크다는 의미는, 곡률이 크다는 의미이며, 즉 loss landscape가 날카롭다(sharp minima)는 의미이다. 여기에 작은 섭동(ϵ)만 줘도 Loss가 크게 튀어 오르며, 즉 그 블록은 매우 민감한 레이어라는 의미가 된다. 따라서 낮은 비트로 양자화하면 성능이 급격히 무너지게된다.
아래 이미지들은, 각각 ResNet20과 Inception-V3 블록을 Hessian top eigenvector 방향으로 섭동(perturbation)했을 때 loss 변화를 보여주며, 민감도가 크게 다름을 시각적으로 확인할 수 있다.(perturbation은 원래 학습된 파라미터(가중치)에 작은 변화를 주는 것을 의미한다.ϵ)

위 그래프를 보면 y축은 Loss로 섭동을 줬을 때 모델의 성능 손실 정도이며, x축(ϵ)은 가중치를 원래 위치에서 얼마나 움직였는가를 의미한다.
곡선이 가파르다는 것은 작은 ϵ만 줘도 loss가 급격히 증가하며, 해당 블록은 매우 민감하다는 의미이다. 민감한 블록에 양자화 시 비트 수를 낮추면 성능이 크게 깨지게되며, 반드시 고정밀도(bit 수 ↑) 유지가 필요하다는 의미이다.
반대로 곡선이 완만한 경우는 ϵ이 커져도 Loss가 거의 변하지 않으며, 해당 블록은 둔감하다는 의미이다. 양자화를 낮은 비트로 해도 성능이 잘 유지되며, 저정밀도 배정이 가능하다는 의미이다.

양자화된 모델은 단순히 "모든 레이어를 한 번에 다시 학습"하기 보다, 블록 단위로 순차적으로 미세조정(fine-tuning)을 거쳐야 성능 손실을 최소화할 수 있다. 하지만 문제는 "어떤 블록을 먼저, 어떤 블록을 나중에" fine-tuning해야 하는지 결정하는 것이다.
이를 위해 HAWQ는 다음과 같은 척도를 제안한다.
즉, 곡률이 크고(민감), 양자화 오차도 큰 블록은 모델 성능에 큰 영향을 주므로 우선적으로 fine-tuning해야 한다.
Loss Landscape 분석
위에서 본 그림을 다시 보면,


일부 블록()은 극도로 민감하고, 일부 블록()은 매우 평탄하다.
즉, 블록마다 loss landscape의 곡률()이 크게 다르며, 따라서 곡률이 크고 오차도 큰 블록부터 fine-tuning해야 모델 안정성이 확보된다.
Fine-tuning 순서 결정
HAWQ는 값을 기준으로 블록들을 정렬하여 fine-tuning 순서를 결정한다.
이 방식으로 모델을 순차적으로 보정하면, 전체 네트워크가 더 빨리 안정화된다.
그렇다면 왜 위와 같은 순서로 보정을 해야할까?
논문의 실험적 근거는 다음과 같다.

논문에서는 Hessian 기반 순서와 역순(random/reverse)를 비교하는 실험을 진행했다.
HAWQ 순서( 큰 순서)로 진행했을 때는, Inception-V3 기준, 25 epoch 내 수렴했으며, 최종 정확도도 더 높게 나타났다.(74.5%)
역순의 경우, 같은 블록에서 50epoch 넘게 fine-tuning해야 하고도 sup-optimal, 최종 정확도 또한 낮았다.
이론적으론, 논문에 명시되어 있진 않지만, 생각을 해보면,
곡률이 큰 경우 Loss landscape가 날카로워서 작은 변화도 성능에 큰 영향을 줄 것이다. 따라서 이 블록을 무시하고 곡률이 낮은 블록을 먼저 fine-tuning하면, 나중에 중요한 블록에서 다시 크게 흔들리게되어 앞선 조정이 무의미해 질 것 같다.
즉, 가 큰 블록은 loss에 미치는 영향력이 크므로 먼저 안정화하지 않으면 이후 단계가 무의미해질 수 있기 때문에, 가 큰 블록부터 fine-tuning하는 것이 아닐까 싶다.

ResNet20을 CIFAR-10 데이터셋에서 실험한 결과, HAWQ는 2-bit 가중치와 4-bit activation만 사용했음에도 불구하고 92.22% 정확도를 달성하였다. 이는 기존의 대표적인 기법들인 LQ-Net, PACT, Dorefa 등과 비교했을 때, 동일하거나 더 나은 정확도를 유지하면서도 더 높은 압축률을 제공한다. 특히 activation 압축률에서 8배까지 개선을 달성했다.
Inception-V3

단순히 모델 전체를 일괄적으로 양자화(direct quantization)하면 -7.69%의 정확도 손실이 발생하였다. 그러나 HAWQ를 적용하면 손실이 -1.93% 수준으로 크게 줄어든다.
ResNet50

ResNet50 실험에서는 AutoML 기반의 HAQ 방법과 비교가 이루어졌다. HAWQ는 7.96MB 크기의 모델에서 75.48% 정확도를 달성하였는데, 이는 HAQ의 9.22MB 모델에서 얻은 75.30%보다 성능과 효율성 모두 우수하다.
SqueezeNext

경량 네트워크인 SqueezeNet에서도 HAWQ를 적용하였다. HAWQ는 모델 크기를 1MB까지 축소하면서도 68%의 Top-1 정확도를 유지하였다. 동일 실험에서 Direct quantzation은 -3.98%의 정확도 손실을 보였으나, HAWQ는 손실을 -1.36% 수준으로 억제하였다.
HAWQ는 레이어별 민감도를 Hessian 정보로 정량화하였고, 탐색 공간을 지수적 복잡도에서 결정론적(determinisitic) 방식으로 축소하였다.
또한, ResNet, Inception-V3, SqueezeNext 등 다양한 모델에서 기존 SOTA 대비 더 높은 정확도와 더 작은 모델 크기를 달성하였다.
하지만 한계도 분명히 존재한다.
Hessian은 계산 비용이 존재하며, 블록별 top eigenvalue를 계산하기 위해 약 20회의 backpropagation이 필요하다.
또한 본 논문은 이미지 분류(Image Classification)에 한정된 실험만 다루었고, Object Detection, Segmentation 같은 복잡한 비전 테스크에는 검증되지 않았다.
Mixed-Precision 모델을 실제 하드웨어에 배포하는 것은 어려운 점 또한 한계점이였다.