딥 컨볼루션 신경망의 구조적 프루닝
초록
본 논문은 채널, 커널, 그리고 커널 내부 스트라이드 형태의 구조적 희소성을 도입해 CNN을 효율적으로 압축한다. 입자 필터링을 이용해 연결 중요도를 평가하고, 중요도가 낮은 연결을 제거한 뒤 재학습 및 고정소수점 최적화를 수행한다. 결과적으로 메모리 사용량과 연산량을 크게 감소시켜 임베디드 및 하드웨어 구현에 유리한 모델을 얻는다.
상세 분석
이 연구는 기존 비구조적 프루닝이 초래하는 불규칙한 연결 패턴을 해소하고, 실제 하드웨어 가속에 적합한 구조적 희소성을 설계한다는 점에서 의미가 크다. 먼저 채널 단위 프루닝은 전체 필터를 완전히 제거함으로써 입력·출력 특성맵 차원을 축소한다. 이는 메모리 대역폭과 연산량을 비례적으로 감소시키며, 병렬 처리 유닛이 동일한 연산을 반복 수행하도록 설계된 GPU·DSP 환경에서 효율성을 극대화한다. 두 번째인 커널 단위 프루닝은 각 필터 내의 2‑D 커널을 독립적으로 선택·제거한다. 여기서는 특정 커널이 담당하는 공간적 receptive field가 중복되거나 기여도가 낮은 경우를 식별해 제거함으로써, 필터당 연산량을 균등하게 감소시킨다. 가장 혁신적인 부분은 ‘intra‑kernel strided sparsity’이다. 커널 내부에서 일정한 스트라이드(예: 2×2)로 패턴을 남기고 나머지를 0으로 만들면, 행렬 변환 시 커널 행렬과 특성맵 행렬 모두가 압축된다. 특히, 행렬 곱셈을 구현하는 GEMM 단계에서 메모리 접근 패턴이 규칙적이므로, 캐시 효율과 메모리 대역폭 활용도가 크게 향상된다. 중요도 평가에는 입자 필터링(particle filtering) 기법을 차용한다. 각 입자는 특정 프루닝 패턴을 나타내며, 해당 패턴을 적용한 네트워크의 오분류율을 가중치로 사용한다. 이 방식은 전통적인 가중치 절대값 기반 기준보다 더 직접적으로 모델 성능에 미치는 영향을 측정한다는 장점이 있다. 프루닝 후에는 손실을 보상하기 위해 전체 네트워크를 재학습한다. 마지막 단계에서는 고정소수점 양자화를 적용해 워드 길이를 감소시키고, 전체 저장 용량을 최소화한다. 실험 결과, ImageNet 및 CIFAR‑10 등 벤치마크에서 4배 이상 연산량 감소와 8배 이상 메모리 절감 효과를 보이며, 정확도 저하를 1% 이하로 억제했다. 이러한 결과는 임베디드 시스템, 모바일 디바이스, 그리고 ASIC/FPGA 기반 가속기에 직접 적용 가능함을 시사한다.
댓글 및 학술 토론
Loading comments...
의견 남기기