검색 상세

효율적인 설계 공간 탐색을 위한 두 가지 세분성을 갖는 다상 신경망

Multi-Phase Neural Network via Two-Level Granularity for Efficient Design Space Exploration

초록/요약

합성곱 신경망 (Convolutional Neural Networks, CNNs)은 다양한 도메인에서 인간 수준의 성능을 뛰어넘는 높은 성능을 보여주고 있으며, 그 성능이 높아짐에 따라 모델의 크기도 날이 갈수록 거대해지고 있다. 이러한, CNN의 다양한 활용은 리소스가 제한된 임베디드 시스템 또는 사물 인터넷 (IoT) 장치를 포함한 다양한 시스템으로도 퍼지고 있다. 하지만, 각 도메인에서 높은 성능을 가진 것으로 알려진 기존 CNN 모델들을 그대로 리소스가 제한된 시스템에 사용하기에는 모델의 사이즈가 문제가 된다. 이를 위해 다양한 경량화 기법을 사용하여 약간의 정확도 손실만을 대가로 CNN의 리소스 요구 사항을 줄이기 위한 연구들이 존재한다. 대표적인 경량화기법인 CNN 프루닝 기법은 주로 불필요한 가중치를 골라내어 리소스 요구 사항을 최소화하는 데 초점을 맞춘다. 그러나 오늘날의 임베디드 시스템은 리소스 제약 뿐만 아니라 실시간 리소스 가용성에도 대응해야 한다. 따라서 주어진 정적 상황만을 고려하는 이전의 기법은 더 이상 효율적이지 않다. 본 논문에서는 단일 CNN 내에서 여러 하위 네트워크를 다중 조건에 따라 선택할 수 있는 새로운 다상 CNN 기법을 제안한다. 제안된 기법에서 CNN은 어떤 가중치 하위 집합을 사용하는지에 따라 다양한 버전으로 작동될 수 있으며, 이 중 주어진 제약 조건과 가장 잘 맞는 버전으로 적절히 변환될 수 있다. 다상 CNN을 구성하기 위해서는 먼저 기존 CNN을 가장 작은 형태로 프루닝하여 가장 작은 가중치 집합(하위 네트워크)을 만들어야 한다. 그 다음 주어진 제약 조건에 따라 이에 적합한 추가적인 가중치 집합을 찾아, 앞서 만든 가장 작은 집합에 추가한다. 여러 버전의 하위 네트워크는 작은 사이즈의 하위 네트워크에서 가중치를 추가하면서 더 큰 사이즈의 하위 네트워크를 구성한다. 결과적으로 각 단계에서 다양한 하위 네트워크 버전들을 구성할 수 있으며, 동시에 최종 형태의 단일 네트워크는 모든 하위 네트워크를 내포한다. 각 하위 네트워크는 정확도와 리소스 사용량에서 다양한 솔루션을 가질 수 있고 이를 통해 파레토 솔루션을 형성할 수 있다. 본 연구에서는 대부분의 임베디드 시스템이 GPU 또는 HW 가속기와 같은 신경망 연산에 적합한 가속기를 갖지 못하다는 점을 감안하여 CPU 기반 CNN 추론 엔진을 대상으로 한다. 제안된 기법은 오픈 소스 추론 엔진인 Darknet with NNPACK을 기반으로 구현되었으며 설계 공간 탐색 능력과 실시간 전환 가능성 측면에서 CNN의 기본적인 형태를 지니고 있는 VGGNet을 통해 그 효과를 검증한다.

more

목차

제 1 장 서론 1
제 1 절 연구 배경 및 문제 분석 1
제 2 절 연구 목적 및 방법 4
제 2 장 관련 연구 8
제 1 절 프루닝을 통한 모델 경량화 8
제 2 절 N-in-1 네트워크 12
제 3 장 다상 네트워크 훈련 방법 및 세분성 활용 15
제 1 절 다상 네트워크 개념 및 훈련 방법 15
1. 반복적 다상 훈련 15
2. 가중치 재훈련 18
제 2 절 아키텍쳐 기반 희소성 20
1. General Matrix Multiply (GEMM) 22
2. 거친 단위의 커널 희소성 25
3. 미세 단위의 SIMD 기반 희소성 27
제 4 장 다상 CNN 구축 29
제 1 절 위상 결정 30
1. 최소 위상 30
2. 최대 위상 31
3. 중간 위상 34
제 2 절 실시간 위상 전환 37
제 5 장 실험 결과 39
제 1 절 실험 환경 39
제 2 절 희소성 단위에 따른 프루닝 성능 비교 41
제 3 절 다상 CNN 구축 시나리오 46
1. 디자인 요구 사항 가정 46
2. 최소 및 최대 위상 결정 47
3. 중간 위상 삽입 48
제 4 절 다상 CNN 성능 분석 51
제 6 장 결론 58
참고문헌 60

more