초록 |
최근 보안 및 네트워크 불안정성 등의 이유로 인해 클라우드컴퓨팅(cloud computing) 대신에 에지 장치(edge device), 모바일 장치(mobile device), 임베이드 시스템(embedded system)과 같은 로컬 장치에서 인공지능(AI) 모델을 실행시키고자 하는 요구가 높다. 주된 이유는 보안과 네트워크 불안정성 문제이다. 의료, 법률 및 금융 데이터와 같은 개인정보에 민감한 데이터를 처리하는 데에 있어서, 로컬 장치가 선호된다. 클라우드컴퓨팅은 다양한 보안 위협에 취약하기 때문이다. 보안 문제 외에도 클라우드상에서 딥 러닝 모델을 실행시킬 때에 발생할 수 있는 네트워크의 지연 및 불안정성은 경우에 따라 큰 문제가 될 수 있다. 예를 들어 AI 모델의 수행시간은 자율주행자동차에 있어서 매우 중요하다. 일반적으로 운전자가 도로상에서 사물을 인지하고 브레이크를 작동시키는 데에 소요되는 시간은 약 0.6~0.7초라고 최근에 보고되었다[1]. 이 시간 중에서 물체를 인식하는 데에 걸리는 시간은 약 0.3~0.4초이다. 따라서 자동차에 부착된 카메라를 통해서 인공지능 알고리듬이 도로상에 있는 물체를 인식하는 데에 걸리는 시간은 0.3초보다는 짧아야 한다. 그런데 자동차와 데이터센터 간의 네트워크 지연이나 불안정한 네트워크로 인해서 0.3초 이상의 시간이 소요된다면, 실제 도로(예를 들어 고속도로)에서 자율주행차가 주행하는 경우에 사고를 유발할 수 있다.<br /> CNN(Convolutional Neural Network) 모델의 크기는 일반적으로 수백 MB 이상이고 또한 모델을 실행시키기 위해서는 수십억 개의 연산 작업이 필요하다. 이러한 대형 CNN 모델을 에지 장치와 같은 로컬 장치에서 수행시키는 데에는 몇 가지 문제가 발생할 수 있다. 에지 장치의 메모리용량은 제한적이기 때문에 CNN 모델의 크기가 에지 장치의 메모리용량보다 클 수 있다. 또한 모델을 수행하는 데에는 수십억 개의 연산 작업(FLOPs)과 빈번한 메모리 액세스(memory access)가 필요한데, computing power가 극히 제한적인 에지 장치의 경우, 이러한 엄청난 양의 연산 작업이 큰 부담으로 작용하고 수행하는 데에 많은 시간이 걸릴 수 있다[2].<br /> 한편 가중치 매개변수(weight parameters)의 수가 과도하게 많은 CNN 모델의 경우 정확도가 높을 수 있지만 동시에 가중치 파라미터들의 중복성이 높을 가능성이 크고, 이는 연산 작업이나 메모리에 큰 부담으로 작용할 수 있다. 따라서 모델의 가중치 매개변수의 중복성을 최소화하여, 예측 모델의 정확도를 희생하지 않으면서도 CNN 모델의 가중치 매개변수의 크기를 줄이고, 모델의 수행 속도를 높이고자 하는 것이 신경망 가지치기(Neural Network Pruning)이다[2]. 본 보고서에서는 신경망 가지치기 기술을 어떻게 구현할지에 대해서 좀 더 상세하게 기술하고자 한다.<br /> <br /> <strong>** 원문은 파일 다운받기를 해주세요 :-)</strong> |