Search

KR-20260061666-A - Structured pruning method and system for deep learning networks based on hardware characteristics

KR20260061666AKR 20260061666 AKR20260061666 AKR 20260061666AKR-20260061666-A

Abstract

하드웨어 특성 기반 딥러닝 네트워크의 구조적 가지치기 방법 및 시스템이 제공된다. 본 발명의 실시예에 따른 네트워크 가지치기 방법은, 가지치기할 딥러닝 네트워크의 각 레이어별로 필터들을 조합하여 다수의 필터 조합 후보군들을 생성하고, 각 레이어별로 각 필터 조합 후보군들의 중요도와 처리 시간을 기초로 각 레이어별로 최적 필터 조합 후보군을 탐색하며, 탐색된 최적 필터 조합 후보군으로 각 레이어가 구성된 딥러닝 네트워크를 획득한다. 이에 의해, 네트워크 가지치기로 인한 정확도 손실을 최소화하여 대상 네트워크의 정확도를 보존할 수 있고 대상 하드웨어별 처리 속도를 극대화할 수 있게 된다.

Inventors

  • 곽종훈
  • 장성준
  • 박종희

Assignees

  • 한국전자기술연구원

Dates

Publication Date
20260506
Application Date
20241028

Claims (12)

  1. 가지치기할 딥러닝 네트워크를 입력받는 단계; 입력된 딥러닝 네트워크의 각 레이어별로 각 필터의 중요도를 산출하는 단계; 각 레이어별로 필터들을 조합하여 다수의 필터 조합 후보군들을 생성하는 단계; 각 레이어별로 각 필터 조합 후보군들의 중요도와 처리 시간을 기초로, 각 레이어별로 최적 필터 조합 후보군을 탐색하는 단계; 탐색된 최적 필터 조합 후보군으로 각 레이어가 구성된 딥러닝 네트워크를 획득하는 단계;를 포함하는 것을 특징으로 하는 네트워크 가지치기 방법.
  2. 청구항 1에 있어서, 산출 단계는, 필터를 제거하였을 때 딥러닝 네트워크의 손실 변화량을 기초로, 각 필터의 중요도를 산출하는 것을 특징으로 하는 네트워크 가지치기 방법.
  3. 청구항 1에 있어서, 생성 단계는, 가지치기 단위의 정수 배로 필터들을 감소시켜 가면서, 필터들을 조합하여 다수의 필터 구조 후보군들을 생성하는 것을 특징으로 하는 네트워크 가지치기 방법.
  4. 청구항 1에 있어서, 필터 조합 후보군의 중요도는, 필터 조합 후보군을 구성하는 필터들에 대해 산출 단계에서 산출한 중요도들의 합인 것을 특징으로 하는 네트워크 가지치기 방법.
  5. 청구항 4에 있어서, 필터 조합 후보군의 처리 시간은, 해당 필터 조합 후보군이 선택된 경우 하드웨어에서 딥러닝 네트워크 동작시 해당 레이어에서 입력 데이터를 처리하는데 소요될 것으로 예상되는 시간인 것을 특징으로 하는 네트워크 가지치기 방법.
  6. 청구항 5에 있어서, 탐색 단계는, 사전 시뮬레이션을 통해 측정된 가지치기 되지 않은 필터 개수에 따른 해당 레이어에서의 입력 데이터 처리 시간들이 수록된 LUT(Look-up-Table)에서 필터 조합 후보군의 처리 시간을 참조하는 것을 특징으로 하는 네트워크 가지치기 방법.
  7. 청구항 5에 있어서, 탐색 단계는, 각 레이어별로 처리 시간이 목표 처리 시간을 만족하는 필터 조합 후보군들 중 중요도가 최대인 최적 필터 조합 후보군을 탐색하는 것을 특징으로 하는 네트워크 가지치기 방법.
  8. 청구항 7에 있어서, 탐색 단계는, 목표 처리 시간을 단계적으로 감소시키면서, 최적 필터 조합 후보군을 탐색하는 것을 특징으로 하는 네트워크 가지치기 방법.
  9. 청구항 1에 있어서, 획득된 딥러닝 네트워크를 파인-튜닝하는 단계;를 더 포함하는 것을 특징으로 하는 네트워크 가지치기 방법.
  10. 가지치기할 딥러닝 네트워크를 입력받고, 입력된 딥러닝 네트워크의 각 레이어별로 각 필터의 중요도를 산출하며, 각 레이어별로 필터들을 조합하여 다수의 필터 조합 후보군들을 생성하고, 각 레이어별로 각 필터 조합 후보군들의 중요도와 처리 시간을 기초로 각 레이어별로 최적 필터 조합 후보군을 탐색하며, 탐색된 최적 필터 조합 후보군으로 각 레이어가 구성된 딥러닝 네트워크를 획득하는 프로세서; 및 프로세서에 필요한 저장 공간을 제공하는 저장부;를 포함하는 것을 특징으로 하는 네트워크 가지치기 시스템.
  11. 가지치기할 딥러닝 네트워크의 각 레이어별로 필터들을 조합하여 다수의 필터 조합 후보군들을 생성하는 단계; 각 레이어별로 각 필터 조합 후보군들의 중요도와 처리 시간을 기초로, 각 레이어별로 최적 필터 조합 후보군을 탐색하는 단계; 탐색된 최적 필터 조합 후보군으로 각 레이어가 구성된 딥러닝 네트워크를 획득하는 단계;를 포함하는 것을 특징으로 하는 네트워크 가지치기 방법.
  12. 가지치기할 딥러닝 네트워크의 각 레이어별로 필터들을 조합하여 다수의 필터 조합 후보군들을 생성하고, 각 레이어별로 각 필터 조합 후보군들의 중요도와 처리 시간을 기초로 각 레이어별로 최적 필터 조합 후보군을 탐색하며, 탐색된 최적 필터 조합 후보군으로 각 레이어가 구성된 딥러닝 네트워크를 획득하는 프로세서; 및 프로세서에 필요한 저장 공간을 제공하는 저장부;를 포함하는 것을 특징으로 하는 네트워크 가지치기 시스템.

Description

하드웨어 특성 기반 딥러닝 네트워크의 구조적 가지치기 방법 및 시스템{Structured pruning method and system for deep learning networks based on hardware characteristics} 본 발명은 인공지능 경량화에 관한 것으로, 더욱 상세하게는 딥러닝 네트워크를 사용하여 인식을 수행하는 지능형 인지 시스템에서 하드웨어에 네트워크를 탑재하는데 필수적인 가지치기(Pruning) 방법에 관한 것이다. 다양한 산업 분야에서 딥러닝 기술이 활용되고, 네트워크의 크기가 거대해짐에 따라 하드웨어 환경에서 네트워크 탑재의 어려움을 해결하기 위해 효과적으로 네트워크를 압축하는 경량화 기술에 대한 관심이 높아지고 있다. 경량화 기술 중 가지치기(Pruning) 기법은 대표적인 네트워크 압축 기법으로서 딥러닝 네트워크의 가중치 파라미터의 크기를 줄임으로써 네트워크의 크기를 줄이는 기법이다. 구체적으로, 네트워크 가지치기 기법은 사전 학습된 딥러닝 네트워크의 가중치 데이터 중 중요하지 않은 데이터 값을 0으로 할당하여 네트워크의 크기를 줄이는 비구조적인(Unstructured) 가지치기 방법과 가중치 커널 데이터의 중요도가 낮은 필터를 제거하는 구조적(Structured) 가지치기 방법으로 나눌 수 있다. 이 중 실제 하드웨어 환경에서 딥러닝 네트워크의 처리 시간을 줄이기 위해서는 가중치 데이터의 필터 개수를 줄일 수 있는 구조적 가지치기 방법이 효과적인 것으로 알려져 있다. 그렇지만, 종래의 구조적 가지치기 방법은 네트워크의 각 레이어별로 가중치 데이터의 필터 개수 감소량에 따른 하드웨어 환경에서의 실제 처리 시간을 반영하지 못해, 하드웨어별로 동일한 네트워크 모델이라도 처리 시간 감소 효과가 다르게 나타나며, 가지치기를 통해 대상 하드웨어에서 최적의 처리 시간으로 동작할 수 있는 네트워크 구조를 탐색하는 데 한계가 있다. 도 1은 본 발명의 일 실시예에 따른 기반 딥러닝 네트워크의 구조적 가지치기 방법, 도 2와 도 3은 본 발명의 실시예에 따른 구조적 가지치기 방법의 검증을 위한 실험 결과, 도 4는 본 발명의 다른 실시예에 따른 네트워크 가지치기 시스템의 구성도이다. 이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. 본 발명의 실시예에서는 하드웨어 특성 기반 딥러닝 네트워크의 구조적 가지치기 방법 및 시스템을 제시한다. 딥러닝 네트워크가 실제 하드웨어 환경에서 동작시 측정되는 처리 시간과 레이어별 각 필터들의 중요도를 기초로 각 레이어별 최적의 필터 조합들을 탐색하여, 대상 하드웨어 환경에서 최적의 처리 시간과 정확도를 모두 보장할 수 있는 딥러닝 네트워크의 구조적 가지치기 기술이다. 도 1은 본 발명의 일 실시예에 따른 기반 딥러닝 네트워크의 구조적 가지치기 방법의 흐름을 나타낸 도면이다. 도시된 바와 같이, 먼저 구조적 가지치기로 경량화할 딥러닝 네트워크로써, 사전 학습된 가중치 데이터로 이루어진 딥러닝 네트워크를 입력 받아(S110), 딥러닝 네트워크의 각 레이어별로 각 필터의 중요도를 산출한다(S120). 필터의 중요도는 해당 필터의 제거 여부에 따른 네트워크의 손실(loss)을 측정하여, 대상 딥러닝 네트워크에서 해당 필터를 제거하였을 때 딥러닝 네트워크의 손실 변화량을 기초로 산출된다. 구체적으로 딥러닝 네트워크의 손실 변화량이 작을수록 해당 필터의 중요도가 낮은 것으로, 딥러닝 네트워크의 손실 변화량이 클수록 해당 필터의 중요도가 큰 것으로 산출한다. 손실 측정은 L1-norm, L2-norm 값의 지표를 이용할 수 있다. 다음 각 레이어별로 필터들을 조합하여 다수의 필터 조합 후보군들을 생성한다(S130). S130단계에서는 각 레이어 마다 가지치기 단위의 정수 배로 필터들을 감소시켜 가면서, 필터들을 모든 경우의 수로 조합하여 필터 조합 후보군들을 생성하게 된다. 예를 들어, 해당 레이어에서 필터 개수가 32개이고 가지치기 단위가 8개인 경우, 필터 조합 후보군들은, 1) 32개로 조합된 필터 조합 후보군(1개), 2) 24개로 조합 가능한 필터 조합 후보군들(32C24개), 3) 16개로 조합 가능한 필터 조합 후보군들(32C16개), 4) 8개로 조합 가능한 필터 조합 후보군들(32C8개)이다. 이후 S130단계에서 생성된 각 필터 조합 후보군들의 중요도와 처리 시간을 기초로, 각 레이어별로 최적 필터 조합 후보군을 탐색한다(S140). 필터 조합 후보군의 중요도(I)는 해당 필터 조합 후보군을 구성하는 필터들의 중요도들의 합이다. 이는 S120단계에서의 중요도 산출 결과를 기초로 계산할 수 있다. 처리 시간(T)은 해당 필터 조합 후보군이 선택된 경우 실제 하드웨어 환경에서 딥러닝 네트워크 동작시에 해당 레이어에서 입력 데이터를 처리하는데 소요될 것으로 예상되는 시간을 말한다. 처리 시간(T)은 실제로 측정하는 것이 아닌, 사전에 시뮬레이션을 통해 측정된 값들을 수록한 처리 시간 LUT(Look-up-Table)을 참조한다. 처리 시간 LUT에는, 각 레이어별로, 가지치기 되지 않은 필터 개수(가지치기 단위의 정수 배)에 따른 해당 레이어에서의 입력 데이터 처리 시간을 시뮬레이션한 결과가 수록된다. 만약 필터 개수가 32개이고 가지치기 단위가 8개인 레이어의 경우, 해당 레이어에 대해서는 필터가 8개인 경우 처리 시간, 필터가 16개인 경우 처리 시간, 필터가 24개인 경우 처리 시간, 필터가 32개인 경우 처리 시간이 수록된다. 처리 시간들은 딥러닝 네트워크를 구동할 하드웨어 환경에서 해당 레이어의 필터 개수를 가지치기 단위의 정수 배 만큼씩 감소시키며 반복적으로 측정하여 획득한다. S140단계에서의 각 레이어 별 최적 필터 조합 후보군 탐색은, 해당 레이어에서 처리 시간이 목표 처리 시간을 만족하는 필터 조합 후보군들 중 중요도(I)가 최대인 필터 조합 후보군을 찾는 과정이다. 이는 다음과 같이 선형 조합식으로 표현된 목적 함수를 만족하는 최적 필터 조합 후보군을 구하는 것이다. 여기서 xi,j는 i번째 레이어의 j번째 필터 조합 후보군, N은 딥러닝 네트워크의 총 레이어수, Mi는 i번째 레이어의 필터 조합 후보군 개수, Ii,j는 xi,j의 중요도, ti,j는 xi,j로 이루어진 레이어의 처리 시간을 처리 시간 LUT에서 참조한 값이며, C는 딥러닝 워크의 목표 처리 시간이다. 최적 필터 조합인 목적 함수의 최적 해는 ILP(Integer Linear Programming) 알고리즘을 이용하여 구할 수 있다. 구체적으로 목표 처리 시간(C)을 만족하며 딥러닝 네트워크의 정확도 손실을 최소화 시키는 네트워크를 탐색하기 위하여 미리 설정한 단계(s) 별 목표 처리 시간(cs)을 설정하고 이를 만족하는 네트워크를 순차적으로 탐색하여, 최종 목표 처리 시간(C)을 만족하는 가지치기 네트워크를 선택한다. 단계별 목표 처리 시간(cs)은 가지치기 대상 딥러닝 네트워크의 처리 시간 T를 s단계 만큼 점진적으로 감소시킨(예: c1=0.9T, c2=0.8T, c3=0.7T...) 값으로 설정하고 각 단계별 목표 처리 시간(cs)을 만족하는 최적 네트워크 구조를 선택하여 다음 단계의 필터 조합 후보군 탐색시 이전 단계에서 선택된 딥러닝 네트워크 구조를 기준으로 탐색을 진행한다. 설정한 단계(s) 및 단계별 처리 시간 감소량은 딥러닝 네트워크의 사양에 따라 다르게 설정할 수 있으며, 필터 조합 탐색시 중요도(I)는 각 단계별 입력 네트워크가 일정 학습 epoch을 거치며 학습된 가중치 데이터의 값을 이용하여 산출한다. 위와 같은 단계별 탐색 과정을 반복적으로 수행하여 설정한 목표 처리 시간(C, 예를 들어, cs=0.5T)에 도달하면 목표 처리 시간(C)을 만족하면서 각 레이어의 중요도를 최대화시키는 최적 필터 조합 후보군으로 이루어진 딥러닝 네트워크를 최적의 가지치기 네트워크로 선택하고, 탐색 과정을 종료한다. 이에 의해 각 레이어가 탐색된 최적 필터 조합 후보군으로 구성된 딥러닝 네트워크가 획득된다(S150). 다음 S150단계에서 획득된 최적의 가지치기가 완료된 딥러닝 네트워크를 파인-튜닝한다(S160). 이는 가지치기 된 딥러닝 네트워크에 대해 일정 epoch 수의 학습 과정을 통해 정확도를 추가로 확보하여 대상 딥러닝 네트워크의 정확도를 보존하기 위한 과정이다. 본 발명의 실시예에 따른 구조적 가지치기 방법을 통해 생성된 가지치기 네트워크는 정확도 측면에서 종래의 가지치기 방법 대비 높은 정확도 성능을 확보하는 동시에 대상 하드웨어에서 최적화된 처리 시간으로 동작할 수 있게 된다. 도 2와 도 3에는 본 발명의 실시예에 따른 구조적 가지치기 방법의 검증을 위한 실험 결과를 나타낸 도면들이다. 대표적으로 많이 사용되는 MobileNetV2 네트워크를 가지치기 대상 네트워크로 ImageNet 데이터셋에 대한 가지치기 학습 과정 수행 전/후 정확도 및 하드웨어에(GPU)서 측정한 처리 시간을 나타내었는데, 도 2에 나타난 바와 같이 기존 가지치기 방법 대비 본 발명의 실시예에 EKfms 하드웨어 특성을 반영한 구조적 가지치기 방법이 네트워크의 동작 처리 시간을 더 크게 감소시키는 동시에 더욱 높은 정확도를 확보한 결과를 확인할 수 있다. 또한 도 3에 제시한 네트워크 레이어별 처리 시간을 측정한 그래프를 분석해 보면, 가지치기전 대상 네트워크의 전체 처리 시간에서 레이어별로 측정된 처리 시간 비율(빨간색 직선)이 높은 앞쪽 레이어에서 제안 방법(노란색 막대)이 기존 방법(파란색 막대) 대비 더 낮은 처리 시간을 확보함으로써 더욱 효과적으로 처리 시간을 감소시키는 네트워크 구조를 탐색하였다는 결과를 확인할 수 있다. 도 4는 본 발명의 다른 실시예에 따른 네트워크 가지치기 시스템의 구성을 도시한 도면이다. 본 발명의 실시예에 따른 네트워크 가지치기 시스템은 도시된 바와 같이 통신부(210), 출력부(220), 프로세서(230), 입력부(240) 및 저장부(250)를 포함하여 구성되는 컴퓨팅 시스템으로 구현할 수 있다. 통신부(210)는 외부 네트워크 또는 외부 기기와 연결을 위한 통신 인터페이스이고, 출력부(220)는 프로세서(230)에 의한 연산 수행 결과가 표시되는 출력 수단이며, 입력부(240)는 사용자