초록 |
최근 수년간 Convolutional Neural Network(CNN)는 지속적인 발전을 이루었고, 다양한 영상처리 응용에 성공적으로 적용되고 있다. 대표적인 응용 분야로는 이미지 분류, 물체 인식, 이미지 생성, 흑백 이미지의 색상 복원, 노이즈 저감, 초-해상도 기법 등이 있으며, 해당 분야에서 CNN 기술을 접목하여 기존 성능 대비 괄목할 만한 향상을 이루었다. 하지만 CNN을 구동하기 위한 모델 파라미터의 크기는 107~1011개로 방대하게 분포하고 있으며, 파라미터 증가 추세가 계속적으로 증가하고 있다[1]. 따라서 연산 자원이 제약된 임베디드 디바이스 또는 소규모 서버급 컴퓨터에서는 최신의 대규모 CNN을 구동하거나, 목표하는 성능에 도달하기 어렵다.<br /> <br /> 대규모 CNN을 자원이 제약된 임베디드 디바이스에서 구동하기 위해 2014년도부터 최근까지 다양한 시도들이 있었다. 정밀도를 낮추어 비트 표현을 줄이는 양자화 기법, 불필요하거나 중복되는 파라미터를 제거하는 가지치기, 정확도는 높으면서 파라미터 개수는 적은 모델을 생성하는 AutoML 기법 등이 제안되었다[2]. NVIDIA 계열의 타깃 보드로 사용하는 경우 TensorRT 프레임워크를 이용하여 최신 양자화 기법을 적용할 수 있다. TensorRT는 현업에 바로 사용할 수 있을 정도로 사용법이 간단하며 최신 양자화 연구들을 빠르게 통합하고 있어 양자화 기법에 대해서는 완성도가 높은 상태이다. AutoML은 CNN 설계 자체를 인공지능이 수행하게 하는 방식으로, 이 경우 CNN 설계를 위해 필요한 경우의 수가 천문학적으로 증가한다. 이러한 AutoML을 수행하기 위해서는 대규모 연산 자원이 필요한데, 현재는 학계보다는 산업계에서 주도하고 있다[2]. 이러한 상황에서 자원이 제약된 임베디드 디바이스를 위한 CNN 모델을 생성하는 가장 합리적인 선택지는 이미 학습된(pre-trained) 모델을 가지치기하는 것이다.<br /> |