필터 프루닝(filter pruning)은 경량화(lightweighting)를 위한 컨볼루션 신경망(CNN)에서 가장 대표적인 기법이다. 일반적으로 필터 프루닝은 프루닝(pruning) 단계와 파인튜닝(fine-tuning) 단계로 구성되며, 두 단계 모두 상당한 계산 비용을 여전히 요구한다. 따라서 CNN의 활용도를 높이기 위해서는 필터 프루닝 자체를 경량화할 필요가 있다. 이를 위해 우리는 대비적 지식 전달(contrastive knowledge transfer, CKT)을 기반으로 한 파인튜닝 구조와, 거친-단계에서-정밀 단계로 이어지는 신경 아키텍처 탐색(neural architecture search, NAS) 알고리즘을 제안한다. 먼저, 부분네트워크(subnetwork) 후보군은 필터 중요도 점수(filter importance scoring, FIS) 기법으로 거칠게 탐색하고, 이어서 NAS 기반 프루닝에 기초한 정밀 탐색으로 최적의 부분네트워크를 얻는다. 제안하는 프루닝 알고리즘은 슈퍼넷(supernet)을 필요로 하지 않으며 계산적으로 효율적인 탐색 과정을 채택하므로, 기존 NAS 기반 탐색 알고리즘보다 더 낮은 비용으로 더 높은 성능을 갖는 프루닝 네트워크를 생성할 수 있다. 다음으로, 메모리 뱅크(memory bank)를 구성하여, 위에서 언급한 부분네트워크 탐색 단계의 부산물인 중간 부분네트워크(interim subnetworks)의 정보를 저장한다. 마지막으로 파인튜닝 단계에서는 CKT 알고리즘을 통해 메모리 뱅크의 정보를 전달한다. 제안하는 파인튜닝 알고리즘 덕분에, 프루닝 네트워크는 메모리 뱅크로부터 명확한 지침을 받을 수 있으므로 높은 성능과 빠른 수렴 속도를 달성한다. 다양한 데이터셋과 모델에서의 실험은, 제안 방법이 최신 기술(SOTA) 모델에 비해 성능 저하가 합리적인 수준에서 유지되는 가운데 유의한 속도 효율을 보임을 입증한다. 예를 들어, 제안 방법은 Imagenet-2012에서 학습된 ResNet-50을 정확도 손실 없이 최대 40.01%까지 프루닝하였다. 또한 계산 비용이 210 GPU 시간에 불과하므로, 제안 방법은 SOTA 기법보다 계산적으로 더 효율적이다. 소스 코드는 https://github.com/sseung0703/FFP 에서 공개되어 있다.
*본 초록은 AI를 통해 원문을 번역한 내용입니다. 정확한 내용은 하기 원문에서 확인해주세요.