KR102433840B1 - 딥러닝 네트워크의 필터 프루닝 방법 - Google Patents

딥러닝 네트워크의 필터 프루닝 방법 Download PDF

Info

Publication number
KR102433840B1
KR102433840B1 KR1020200189752A KR20200189752A KR102433840B1 KR 102433840 B1 KR102433840 B1 KR 102433840B1 KR 1020200189752 A KR1020200189752 A KR 1020200189752A KR 20200189752 A KR20200189752 A KR 20200189752A KR 102433840 B1 KR102433840 B1 KR 102433840B1
Authority
KR
South Korea
Prior art keywords
weight
pruning
filter
weights
learning
Prior art date
Application number
KR1020200189752A
Other languages
English (en)
Other versions
KR20220096903A (ko
Inventor
김현
김남준
Original Assignee
서울과학기술대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울과학기술대학교 산학협력단 filed Critical 서울과학기술대학교 산학협력단
Priority to KR1020200189752A priority Critical patent/KR102433840B1/ko
Publication of KR20220096903A publication Critical patent/KR20220096903A/ko
Application granted granted Critical
Publication of KR102433840B1 publication Critical patent/KR102433840B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 딥러닝 네트워크의 필터 프루닝 방법에 관한 것으로, 베이스라인 네트워크에 대해 1차 필터 프루닝을 수행하는 단계, 상기 1차 필터 프루닝의 결과로 도출되는 복수의 가중치에 대해 테일러 확장을 이용하여 가중치 중요도를 평가하는 단계 및 상기 복수의 가중치 상호간 거리의 변화에 근거하여, 적응적 경사 학습을 수행하는 단계를 포함하는 것을 특징으로 한다. 본 발명에서 제안하는 프루닝 기법에 따르면, ResNet의 모델 사이즈를 최소한의 성능 저하만으로 최대 60%까지 감소시키는 효과가 도출되며, 어떠한 복잡한 구조를 갖는 네트워크에도 적용가능한 장점이 있고, 네트워크의 크기와 정확도의 트레이드 오프 측면에서 매우 우수한 성능을 발휘하므로, 모바일 디바이스 또는 자율주행차량과 같은 리소스가 제약된 기기에서도 CNN을 보다 용이하게 활용할 수 있도록 한다.

Description

딥러닝 네트워크의 필터 프루닝 방법 {FILTER PRUNING METHOD FOR DEEP LEARNING NETWORKS}
본 발명은 필터 프루닝 방법에 관한 것이다. 특히, 딥러닝 네트워크의 필터 프루닝 방법에 관한 것이다.
딥 러닝은 인공 지능(artificial intelligence, AI) 및 컴퓨터 비전(computer vision) 분야에서 널리 사용되는 기술이다. 컨볼루션 뉴럴 네트워크들(convolution neural networks, CNNs), 심층-신뢰 네트워크들(deep-belief networks, DBNs), 및 오토인코더들(autoencoders)과 같은 다양한 딥-러닝 아키텍쳐들은 시각적인 객체 인식, 자동 대화 인식, 자연 언어 처리, 및 음악/음향 신호 처리와 같은 작업들에 대한 최신의 결과들을 생성하는 것으로 보여왔다. 딥 러닝의 주된 노력은 다양한 네트워크 아키텍쳐들, 러닝 알고리즘들, 및 어플리케이션들에 대한 소프트웨어 구현에 포커싱 되어왔다.
최근, CNN은 객체 분류, 객체 검출 및 세그멘테이션(Segmentation)을 포함한 다양한 컴퓨터 비전(Computer vision) 기술에서 사용되다. 그러나 이러한 CNN의 성능 향상은 일반적으로 더 많은 히든 레이어(hidden layer)를 동반하는 네트워크 구조를 통해 이뤄져서 더 큰 모델 사이즈와 더 많은 연산량 및 메모리 풋프린트(memory footprint)를 야기하기 때문에, 모바일 디바이스나 자율주행차량 등 연산 성능이 제한된 기기 상에서의 CNN 활용이 매우 어려운 문제점이 있다.
이러한 문제점을 해결하기 위하여, 프루닝(Pruning) 기법은 불필요한 가중치 필터를 제거함으로써, 정확도 저하를 수용할 수 있는 수준으로 유지한 채 뉴럴 네트워크의 크기를 줄이는데 사용되는 일반적인 방법이다.
가중치 프루닝 기법(Weight Pruning)은 필터 내의 중요도가 낮은 가중치(weights)를 제거함으로써 매우 높은 압축률을 달성할 수 있는 반면, 비구조화 희소성(unstructured sparsity)을 만들기 때문에 실제 GPU 환경에서 가속을 위해서는 특별한 소프트웨어나 하드웨어가 필요하다.
반면, 필터 프루닝(Filter Pruning) 기법은 컨볼루션 레이어의 필터 자체를 제거하여, 연산량을 줄임과 동시에 특별한 소프트웨어나 하드웨어의 지원 없이도 GPU 환경에서 실제 추론 가속(inference acceleration)이 가능하다.
또한 특정 모델에만 한정적으로 적용되는 것이 아니고 다양한 CNN 모델에 쉽게 적용 가능하다는 높은 확장성과 호환성을 지녀 널리 사용되고 있다.
이런 필터 프루닝 기법의 장점을 바탕으로 많은 연구들이 수행되고 있으며, 그 중에서도 자동 결정 구조(Automatically Determined Architecture)는 글로벌 영역에서의 프루닝이 가능하여 네트워크의 최적의 구조를 찾고, 극단적으로 FLOPs를 줄일 수 있다는 장점이 있다.
하지만 객체 검출(Object Detection)이나 세그멘테이션(Segmentation)에서 사용되는 ResNet과 같은 복잡한 구조의 네트워크들에 프루닝 기법을 적용하는 경우 몇 가지 문제가 발생한다. 예를 들어, 각 레지듀얼 블록(Residual block)의 제1 레이어만을 한계적으로 프루닝할 수밖에 없는 것이 그것이다.
이러한 문제를 해결하기 위해 구심적 확률 그라디언트 하강(Centripetal Stochastic Gradient Descent, C-SGD)라는 새로운 최적화 방법을 제안하였다. C-SGD는 어떠한 휴리스틱 정보(heuristic knowledge)가 없이도, 여분 패턴(redundancy pattern)을 생성하기 때문에 복잡한 구조를 갖는 모델의 제한된 필터 프루닝 문제를 해결할 수 있다.
그러나 C-SGD의 구심 벡터(Centripetal vector)는 컨볼루션 레이터의 가중치(weights) 뿐만 아니라 별도의 파라미터까지 추가되므로, 결국은 성능 하락을 피할 수 없다. 또한 클러스터 내부 필터의 거리 차이를 유지하기 위해 변형된 그라디언트들은 정상적인 그라디언트 하강이 아니기에 최적화되기 어렵다는 문제점도 있다.
선행문헌 1 : 대한민국 공개특허 제10-2018-0007663호 (2018.01.23. 공개)
본 발명의 기술적 과제는 상술한 문제점을 해결하기 위해, C-SGD를 바탕으로 수행되는 객체 분류 과제에서 빈번하게 사용되는 ResNet에 프루닝 기법을 효과적으로 적용할 수 있도록 C-SGD의 업데이트 룰을 재설계하는 것이다.
본 발명의 기술적 과제는 ResNet과 같은 복잡한 구조를 갖는 모델에도 효과적으로 적용 가능한 프루닝 기법을 제공하는 것이다.
본 발명의 기술적 과제는 최소한의 성능 저하로 최대한 많은 네트워크 사이즈를 감소시킬 수 있는 프루닝 기법을 제공하는 것이다.
상기 과제를 해결하기 위해 본 발명은 베이스라인 네트워크에 대해 1차 필터 프루닝을 수행하는 단계, 상기 1차 필터 프루닝의 결과로 도출되는 복수의 가중치에 대해 테일러 확장을 이용하여 가중치 중요도를 평가하는 단계 및 상기 복수의 가중치 상호간 거리의 변화에 근거하여, 적응적 경사 학습을 수행하는 단계를 포함하는 것을 특징으로 한다.
본 발명에서 제안하는 프루닝 기법에 따르면, ResNet의 모델 사이즈를 최소한의 성능 저하만으로 최대 60%까지 감소시키는 효과가 도출된다.
또한, 본 발명에서 제안하는 프루닝 기법은 어떠한 복잡한 구조를 갖는 네트워크에도 적용가능한 장점이 있다.
아울러, 본 발명에서 제안하는 프루닝 기법에 따르면, 네트워크의 크기와 정확도의 트레이드 오프 측면에서 매우 우수한 성능을 발휘하므로, 모바일 디바이스 또는 자율주행차량과 같은 리소스가 제약된 기기에서도 CNN을 보다 용이하게 활용할 수 있도록 한다.
도 1은 본 발명의 일 실시예에 따른 FP-AGL의 프로세스를 나타낸 것이다.
도 2는 기존 프루닝 방법들과, 본 발명에서 제안하는 프루닝 방법의 경사 하강을 비교하여 나타낸 것이다.
본 발명의 목적 및 효과는 다음의 상세한 설명을 통하여 보다 분명해질 것이나 하기의 기재만으로 본 발명의 목적 및 효과가 제한되는 것은 아니다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 이하에서 개시되는 실시 예에 한정되지 않는다. 또한 도면에서 본 발명을 명확하게 개시하기 위해서 본 발명과 관계없는 부분은 생략하였으며, 도면에서 동일하거나 유사한 부호들은 동일하거나 유사한 구성요소들을 나타낸다.
가중치 프루닝 기법(Weight Pruning)은 휴리스틱스(heuristics) 또는 최적화 과정을 통해 필터의 가중치들을 제거하며, 이는 네트워크의 비구조화 희소성(unstructured sparsity)를 만든다.
일 실시예에서는 손실 함수(loss function)의 헤시안 메트릭스(Hessian matrix) 기반으로 가중치들(weights)의 중요도를 판단 후 중요하지 않은 가중치를 제거한다.
다른 실시예에서는 딥 뉴럴 네트워크의 정규화를 위해 프루닝 기법을 적용한 후, 연결을 다시 회복시키는 덴스-스파스-덴스 트레이닝 프레임워크(dense-sparse-dense training framework)를 제안했다.
그러나 이러한 가중치 프루닝 기법(Weight Pruning)과 관련된 실시예들은 비정규적 희소성(irregular sparsity) 때문에 특별한 하드웨어나 소프트웨어가 없는 경우, 추론 가족이 불가능하다는 단점이 있다.
한편, 필터 프루닝 기법(Filter pruning)은 필터 자체를 제거하기 때문에 특별한 하드웨어나 소프트웨어가 없어도, 실제 추론 가속이 가능하다는 장점을 통해 가중치 프루닝 기법(Weight Pruning)의 단점을 보완할 수 있기 때문에 최근에는 필터 프루닝 기법 연구가 활발히 진행되고 있다.
일 연구에서는, 미리 학습된 네트워크로부터 레이어마다의 민감도(sensitivity)를 분석한 후 L1-노름(L1-norm)을 기준으로 불필요한 필터들을 제거한 후 떨어진 성능를 회복하기 위해 재학습을 수행한다.
일 연구에서는, 학습이 수행되는 동안 배치 정규화(batch normalization)의 파라미터인 스케일링 팩터(scaling factor)에 희소성 유도 정규화(sparsity-induced regularization)을 부과함으로써 구조화된 희소성(structured sparsity)를 만든 후, 프루닝 단계에서는 임계치 미만의 필터들은 제거한다.
일 연구에서는, L2-노름(L2-norm)을 기준으로 매 에포크(epoch)마다 제거될 필터를 선택한다.
그러나, 상술한 연구들은 잔차 연결(residual connections)과 같은 제약된 필터 프루닝 기법의 문제를 완벽하게 해결하지 못한다.
따라서, 본 발명에서는 복잡한 구조를 갖는 네트워크를 보다 효율적으로 프루닝하기 위해, C-SGD를 이용한 최적화 방법을 제안한다. 즉, 학습이 수행되는 동안, 프루닝될 필터를 동일한 패턴으로 학습한 후 프루닝한다. 이러한 방법은 어떠한 휴리스틱 정보가 필요 없이, 프루닝될 필터들이 결정되므로 제약된 필터 프루닝 기법의 문제점을 해결할 수 있다.
이하에서 본 발명과 관련된 기존 연구로써 C-SGD의 프루닝 기법을 보다 상세히 설명한다.
C-SGD의 프루닝 기법은 각 클러스터에 속하는 필터들이 싱글 포인트로 점점 모이게 하여 결국에는 동일하게 만드는 것을 목표로 한다. 학습이 끝나고 나면 프루닝 단계에서 클러스타 당 1개의 필터만을 남기고 나머지 필터들은 제거된다.
구체적으로, C-SGD의 프루닝 기법은 아래의 수학식 1과 같이, 두 개의 필터 F0과 F1의 값을 동일하게 만드는 것을 목표로 한다.
Figure 112020144152496-pat00001
상기 수학식 1에서 i는 이터레이션(iteration)이다.
또한, 아래의 수학식 2 및 3은 필터 F0과 F1을 점차적으로 동일하게 만드는 방법과 관련된 것이다.
Figure 112020144152496-pat00002
Figure 112020144152496-pat00003
상기 수학식 2 및 3에서
Figure 112020144152496-pat00004
은 구심 스트렝스(Centripetal Strength)이고,
Figure 112020144152496-pat00005
은 학습률로 정의된다.
상기 수학식 2 및 3에서 두번째 항(term)은 필터 F0과 F1의 평균 경사(Average Gradient)이며, 두 필터 사이의 거리가 증가하지 않도록 제한한다.
하지만 이러한 평균 경사 값은 손실 함수를 최적화할 수 있는 경사 하강을 벗어나기 때문에, 최적화 값에 도달하기 위해 반복 수행을 통해 더 넓은 필터 공간(Filter Space)를 탐색해야 한다.
구심 벡터(Centripetal vector)는 두 필터들 사이의 거리를 점점 좁히며, 결국에는 두 필터가 동일한 값을 갖게 한다. 하지만 L2 정규화(L2-regularization)처럼 움직이기 때문에 두 값의 차이가 클 때 빠르게 수렴하다가 작아지면 매우 느리게 수렴하여 완벽하게 필터들의 값을 같게 만드는 것이 불가능하다.
또한 컨볼루션 레이어의 가중치(weight) 뿐만 아니라 배치 정규화의 스케일링 팩터와 바이어스까지 구심 벡터가 추가되기 때문에 너무 많은 페널티 항(Penalty Term)이 추가되어 손실을 피할 수 없다.
본 발명에서는 기존 C-SGD의 상술한 문제점을 해결하기
도 1에서는 FP-AGL의 프로세스가 설명된다.
도 1(a)는 프루닝이 수행되기 전의 풀 카파시티(full capacity)를 갖는 베이스라인 네트워크(baseline network)이다.
도 1(a)에 도시된 것과 같이, 본 발명에서는 베이스라인 네트워크의 필터들에 C-SGD와 같은 필터 프루닝 기법을 적용한다. C-SGD의 필터 프루닝 기법 방법은 학습이 수행되는 동안 필터들이 동일한 값을 갖도록 하여 잔차 필터를 제거함으로써 네트워크 크기를 감소시킬 수 있다.
도 1(b)는 적응적 경사 학습(Adaptive Gradient Learning, AGL)을 나타낸 것이다. 도 1(b)의 탑 필터 공간(Top Filter Space)은 테일러 기반 방법(Taylor-based method)으로 재설계된 구심 벡터를 사용한 필터 업데이터 방향을 나타낸다.
바텀 필터 공간(Bottom Filter Space)은 오리지널 경사들(original gradients)을 사용하여 필터들을 업데이트한다.
최종적으로 AGL은 도 1(b)에 나타난 복수의 필터 업데이트 방법을 적응적으로 선택하여 필터 업데이트를 수행한다.
도 1(c)는 앞선 도 1(b)의 AGL을 사용하여 학습이 완료된 후, 필터 공간 내의 필터들이 동일한 위치에 있는 것을 나타낸다. 이때 필터들이 동일한 위치에 있다는 것은 필터들의 값이 서로 동일하다는 것을 의미한다.
도 1(c)에서 필터들이 서로 동일한 값을 갖기 때문에, 정밀도 손실 없이 프루닝을 수행하여 도 1(d)와 같이 컴팩트 네트워크를 생성할 수 있다.
상술한 바와 같이 기존 C-SGD 기법에 따르면, 일 클러스터 내에 필터들을 점차적으로 근접하게 하는 구심 벡터는 프루닝될 필터들의 가중치 개수만큼 추가된다. 이와 같은 C-SGD의 특징은 손실 함수를 최적화하기 위한 경사 값들(Gradients)의 크기를 변경시키는 잔차 유도 페널티(redundant-induced penalty)이기 때문에 손실을 증가시키는 단점이다.
따라서, 본 발명에 따른 프루닝 기법은, 프루닝에 의해 특정 파라미터가 제어되었을 때 손실 값의 변화를 근사적으로 평가할 수 있는 일차 테일러 확장(First-order Taylor expansion)을 사용한다. 이러한 first-order Taylor expansion을 이용한 본 발명의 프루닝 기법은 가중치들(weights)의 중요도를 아래의 수학식 4와 같이 평가할 수 있다.
Figure 112020144152496-pat00006
상기 수학식 4에서,
Figure 112020144152496-pat00007
는 경사(Gradient)이고,
Figure 112020144152496-pat00008
는 가중치이다. 이렇게 테일러 기반 방법을 사용하는 것의 장점은 가중치와 경사 값만을 이용하여 간단하게 중요도를 판단할 수 있다는 점이다.
따라서, 본 발명에서는 이러한 first-order Taylor expansion을 사용하여 구심 벡터를 재설계한다.
예를 들어, 두개의 가중치
Figure 112020144152496-pat00009
가 있을 때, 각 가중치가 손실 없이 싱글 포인트로 이동할 수 있는 구심 벡터를 결정한다. 테일러 확장을 사용하여 가중치
Figure 112020144152496-pat00010
Figure 112020144152496-pat00011
로 변경될 때의 손실은 이하의 수학식 5 및 6을 이용하여 산출할 수 있다.
Figure 112020144152496-pat00012
Figure 112020144152496-pat00013
방대한 양의 계산을 피하기 위해 일순위 항(first-order term)만을 이용하며, 고순위 항(higher-order term)은 무시한다. 손실의 변화를 고려하지 않고 모든 가중치들에 대해 구심 벡터를 부과하는 기존의 C-SGD는 손실을 인식하지 못하는 반면, 본 발명에 따른 프루닝 기법에서는 가중치
Figure 112020144152496-pat00014
Figure 112020144152496-pat00015
로 변경될 때의 손실의 변화를 산출함으로써, 경사 값을 이용한 가중치 업데이트 규칙을 재설계하기 위한 기준으로 이용한다.
Figure 112020144152496-pat00016
Figure 112020144152496-pat00017
상기 수학식 7 및 8에서
Figure 112020144152496-pat00018
은 각각 가중치
Figure 112020144152496-pat00019
Figure 112020144152496-pat00020
로 변경되는 때의 손실의 변화이다. 상기 수학식 7 및 8에서 경사 값은 역전파(back-propagation) 동안 계산될 수 있다.
또한,
Figure 112020144152496-pat00021
가 가중치
Figure 112020144152496-pat00022
Figure 112020144152496-pat00023
의 평균값이기 때문에, 아래의 수학식 9 및 10을 이용하여
Figure 112020144152496-pat00024
의 값을 산출할 수 있다.
Figure 112020144152496-pat00025
Figure 112020144152496-pat00026
상술한 수학식들을 고려하면, 상기 수학식 9 및 10에 각각 포함된 경사 값인,
Figure 112020144152496-pat00027
Figure 112020144152496-pat00028
의 크기만을 비교하더라도, 중요도를 평가할 수 있다.
기존의 C-SGD 방법에서는 가중치와 경사 값의 곱을 이용하여 가중치의 중요도를 산출해야 했다. 이와 달리 본 발명에 따른 프루닝 방법에서는, 경사 값의 비교만으로도 중요도를 산출할 수 있으므로, 프루닝에 소요되는 연산의 양을 감소시킬 수 있다.
설명의 편의를 위하여 이하에서는 마스크(mask)를 사용하며, 아래의 수학식 11 및 12에 의해 마스크
Figure 112020144152496-pat00029
와 마스크
Figure 112020144152496-pat00030
이 결정될 수 있다.
Figure 112020144152496-pat00031
Figure 112020144152496-pat00032
상기 수학식 11 및 12에서 마스크
Figure 112020144152496-pat00033
는 구심 벡터에 곱해지는 바이너리 값(binary value)이며, 항상 서로 다른 값을 갖는다.
아울러, 이하의 수학식 13 및 14를 이용하여 C-SGD의 업데이트 규칙을 재설계할 수 있다.
Figure 112020144152496-pat00034
Figure 112020144152496-pat00035
상기 수학식 13 및 14의 두번째 항은, 기존 C-SGD와 같이 서로 다른 두 가중치 사이의 거리를 일정하게 유지하는 평균 경사 값(Averaged gradient)이다.
또한, 상기 수학식 13 및 14의 세번째 항은, 재구성된 구심 벡터이며, 각 경사 값의 크기 비교를 통해, 수학식 11 및 12에서 정의된 마스크 값을 이용하여 산출된다.
상술한 바와 같이, 항상 서로 다른 값을 갖는 바이너리 마스크(binary mask)를 사용하면 프루닝을 위한 구심 벡터의 수가 절반으로 줄기 때문에 손실을 최소화할 수 있다.
도 2는 기존 프루닝 방법들과, 본 발명에서 제안하는 프루닝 방법의 경사 하강을 비교한 것이다.
도 2(a)는 스탠다드 SGD 방법이고, 도 2(b) C-SGD 방법이며, 도 2(c)는 상술한 재설계된 C-SGD 방법을 나타낸다.
도 2(b)를 참조하면, C-SGD는 가중치들의 중요도를 판단하지 않고 두 가중치들 모두에 중간 지점(midpoint)으로 움직이게 하는 구심 벡터를 추가한다.
반면, 본 발명에 따른 프루닝 기법을 나타내는 도 2(c)에서는 w1의 경사값이, w0의 경사 값보다 작기 때문에 w0의 구심 벡터는 제거된다(m0=0, m1=1).
그러므로, C-SGD대비 성능에 부정적인 영향을 주는 구심 벡터를 반으로 줄일 수 있음으로 성능 손실을 피할 수 있다.
한편, 기존의 C-SGD는 위의 수학식 2 및 3에서 설명한 것과 같이, 가중치들 사이의 거리를 일정하게 유지시키는 평균 경사(averaged gradient)와 서로 가깝게 해주는 구심 벡터의 합으로 가중치를 업데이트한다. 그러나 이러한 평균 경사를 이용한 가중치 업데이트 방법은 정상적인 경사 하강을 벗어나기에 모델의 성능을 저하시킬 수 있다.
또한 구심 벡터는 L2-regulization처럼 움직이며, 이는 L2-regulization의 특성상 가중치들 값의 차이를 완벽하게 싱글 포인트로 수렴시키지 못하고 어느정도 까지만 가깝게 할 수 있으며 이것 또한 많은 반복 학습이 필요하다.
싱글 포인트로 완벽하게 수렴하지 못하면, 프루닝이 완료된 후 정확도를 유지하기 위해 튜닝 과정을 수반하여야 하는데, 이러한 튜닝 과정 시 로컬-미니마(local-minima)에 트랩(trap)될 수 있는 문제점이 있다.
따라서, 본 발명에서는 이러한 문제점을 해결할 수 있는 적응적 경사 학습(Adaptive Gradient Learning, AGL) 방법을 제안한다.
앞서 언급한 두가지 문제는 간단하게 가중치 업데이트를 적응적으로 가져가면서 해결이 가능하다. 아래의 수학식 15은 적응적으로 가중치의 업데이트 규칙에 관한 식이다.
Figure 112020144152496-pat00036
위의 수학식 12의 첫번째 조건을 만족하는 경우(
Figure 112020144152496-pat00037
), 오리지널 경사 값(original gradient)으로 가중치들을 업데이트한다.
구체적으로, (i+1) 번째 학습 단계에서의 가중치 w0 과 w1 사이의 거리가 (i) 번째 학습 단계에서의 거리보다 작은 조건에서는, 두 가중치들의 거리를 좁힐 수 있다.
이것은 본 발명에 따른 프루닝 기법의 목표인, 두 가중치들을 동일한 값으로 만들 수 있는 방향이다. 또한 이러한 조건에서의 경사 값을 이용한 가중치 업데이트는 오리지널 경사 값들을 이용하기 때문에, 정상적인 경사 하강 방향으로 손실 함수를 최적화할 수 있다.
한편, (i) 번째 학습 단계에서의 가중치 w0 과 w1 사이의 거리가 (i+1) 번째 학습 단계에서의 거리보다 큰 조건에서는, 두 가중치들 사이의 거리가 멀어진다.
따라서 이 경우에 테일러 기반으로 재설계한 구심 벡터와 평균 경사를 이용하여 가중치들을 업데이트한다. 이로써 가능한 오리지널 경사 값을 유지하기 때문에 기존의 모든 가중치들에 대해서 평균 경사만을 이용하여 업데이트한 것보다 빠르게 최적화를 구현할 수 있으며, 더 빠르고 더 정확한 필터 프루닝 기법을 가능하게 한다.
도 2(c) 및 도 2(d)를 참조하면 상술한 프루닝 기법이 나타난다.
즉, 수학식 15에 나타난 것과 같이, 적응적으로 도 2(c)에 나타난 재설계된 구심 벡터를 이용하거나, 도 2(d)에 나타난 AGL 방법을 사용하여 가중치들을 업데이트한다. 이렇게 함으로써 도 2(b)의 C-SGD보다 빠르게 두 가중치들을 싱글 포인트(M(i+1))로 수렴시킬 수 있다.
이하에서는 본 발명에서 제안하는 프루닝 기법과 관련된 실험 결과에 대해 설명하겠다.
CIFAR-10. CIFAR-10 데이터셋은 10개의 클래스들에 대한 32 x 32 50,000 개의 트레이닝 이미지와, 10,000 개의 테스트 이미지들을 포함한다.
베이스라인 모델은 SGD로 300 에포크(약 240,000 학습 단계)동안 두개의 GPU를 사용하여 64비트의 배치 크기로 학습한다.
초기 학습률(Initial learning rate)은 0.1로 설정되며, 학습률 스케쥴 전략(learning rate scheduling strategy)은 전체 학습 단계의 50%와 75%에서 초기 학습률로부터 10으로 나눠진다. 빠른 수렴과 학습 성능을 향상시키기 위해 네스테로브 모멘텀(nesterov momentum) 0.9 와 가중치 디케이(decay) 10-4 가 사용된다.
프루닝을 위한 초기 학습율은 5 x 10-2 로 결정되고, 구심 스트렝스는 1 x 10-4 로 결정되며, 나머지 파라미터는 베이스라인과 동일하다.
ILSVRC-2012. ImageNet ILSVRC-2012 데이터셋은 1000개의 클래스들에 대해 128만개의 트레이닝 이미지들과 50,000 테스트 이미지들을 포함한다. 모든 베이스라인 모델은 SGD로 80 에포크(약 800,000 학습 단계)동안 4-GPU를 사용하여 128의 배치 크기로 학습한다. 초기 학습률은 0.1로 설정되고, 학습률 스케쥴 전략은 전체 학습 단계의 50%와 75%에서 초기 학습률로부터 10으로 나눠진다. 프루닝을 위한 나머지 파라미터는 CIFAR-10과 동일하다.
우리는 이미지의 객체 분류 과제의 대표적인 네트워크인 ResNet 중 CIFAR-10 데이터셋에서 널리 사용되는 ResNet-56을 비교 network로 사용하여 제안된 방법과 다른 방법의 성능을 비교한다. CIFAR-10에 대한 ResNet-56은 3개 스테이지의 잔차 블록을 가지며, 각 스테이지는 16, 32, 64개의 필터들을 포함한다.
Figure 112020144152496-pat00038
위의 표 1을 참조하면, Ours(11-22-44)는 프루닝 후 각 스테이지의 필터들 수가 11, 22, 44개 남았다는 것을 의미한다. Ours(13-26-52), Ours(10-20-40) 또한 마찬가지이다. 표 1의 결과를 보면, Ours(13-26-52)는 FLOPs와 정확도의 트레이드오프 측면에서 20~30% 수준의 프루닝을 시도한 Variational[12], PF[3], LEGR[19] 연구들보다 우수하다.
본 발명에 따른 프루닝 방법은 33.72%의 FLOPs를 프루닝했을 때 심지어 베이스라인보다 Top-1 정확도가 0.4%만큼 상승한다. 이는 30%의 FLOPs를 제거했음에도 정확도를 0.2% 상승시켜 SOTA 성능을 성취한 LEGR[19] 보다 3.72%만큼 FLOPs를 더 제거했음에도 불구하고 정확도 측면에서도 0.2%만큼 우수한 결과이다.
또한 50% 수준의 프루닝을 달성하기 위해 제시된 Ours(11-22-44)는 52.49%의 FLOPs를 프루닝했을 때에도 베이스라인보다 Top-1 정확도가 0.1%만큼 상승한다. 이는 AMC[22]대비 2.49%만큼 FLOPs를 더 줄였음에도 불구하고 정확도 강하 측면에서 1% 수준의 큰 마진(-0.1% vs 0.9%)을 보이는 결과이다. 또한 레이어마다 프루닝 비율이 미리 정의된 점에서 비슷한 SFP[5], FPGM[6], LFPC[21]과의 비교해서도 Ours(11-22-44)가 비슷한 프루닝된 FLOPs 대비 더 낮은 정확도 drop을 갖는다. 이것은 비슷한 네트워크 크기 하에서 본 발명에 따른 프루닝 기법이 가장 우수하다는 것을 보여준다.
하지만 CIFAR-10에서 60% 수준의 프루닝을 달성하기 위한 환경에서는 본 발명에 따른 프루닝 기법과 C-SGD[10]과의 프루닝된 FLOPs대비 정확도 강하의 비교는(60.92% vs 60.85%, 0.14 vs 0.08) 큰 차이가 없기 때문에 더 어려운 과제인 ILSVRC-2012 데이터셋에서 명확하게 비교한다.
본 발명에서는 ResNet-34, 50, 101[14]을 활용하여 ILSVRC-2012 데이터셋에 대해서 제안된 프루닝 방법과 기존 연구들을 비교하였다.
Figure 112020144152496-pat00039
위의 표 2에서 보이는 것처럼, 다양한 프루닝된 FLOPs 하에서 본 발명에 따른 프루닝 기법은 state-of-the-art 성능을 보여준다. 표 2의 Ours와 Ours*는 각각 반복 프루닝(iterative pruning)과 원샷 프루닝(one-shot pruning) 스킴을 의미하며 프루닝 후 초기 학습률 0.0005로 200,000 번 반복 학습을 수행한다.
ResNet-34에 프루닝을 적용한 Taylor-FO[11], FPGM[6], DMC[17] 중 가장 줄어든 FLOPS가 비슷한 DMC[17]보다 제안한 방법이 0.43%만큼 정확도 강하 측면에서 우수했다. 또한 Taylor-FO[11]보다는 무려 20.89%의 FLOPs를 더 줄였음에도 불구하고 정확도 강하는 0.18%만큼 더 낮다. ResNet-50에 대해서는, 40~50%이 수준의 프루닝된 FLOPs 방법들과 비교하였을 때 우리의 AGL이 모든 경우에 성능이 더 좋은 것을 보여준다. 특히, 기존 연구들 중 성능이 가장 우수하며 본 발명에 따른 프루닝 기법에 영감을 준 C-SGD[10]보다도 FLOPs reduction(52.09% vs 43.18%)이 더 높지만 정확도 강하(0.15% vs 0.4%)이 더 낮다. 이것은 제안된 방법이 C-SGD[10]의 약점을 잘 보완하여 더 좋은 최적화된 필터 프루닝 기법을 제시했다는 것을 보여준다. C-SGD[10]에는 0.79%의 정확도 강하로 55.76%의 FLOPS를 줄인 결과도 제시되었다. 하지만 이 또한 제안 방법이 0.15%의 정확도 강하로 52.09%의 FLOPs를 제거하고 0.98%의 정확도 강하로 무려 62.15%의 FLOPs를 제거한 결과를 고려한다면 FLOPs와 정확도의 트레이드 오프 측면에서 제안한 방법이 더 우수하다고 볼 수 있다.
원샷 프루닝 스킴을 통한 결과인 Ours*에서도 LFPC[21]보다 제안한 방법이 비슷한 FLOPs 제거했음에도 불구하고 0.59%만큼 정확도 강하가 낮은 것을 볼 수 있으며, 이것은 제안하는 AGL이 원샷 프루닝 스킴에서도 효과적이라는 것을 보여준다. ResNet-101에서도 Ours*는 Taylor-FO[11]와 FPGM[6] 보다 각각 FLOPs reduction이 3.71%, 1.25% 더 높음에도 불구하고 정확도가 오히려 0.24%만큼 향상되었다. 결론적으로 표 2의 모든 결과들은 제안된 알고리즘이 큰 스케일의 데이터셋인 ILSVR-2012에서도 효과적인 프루닝 방법이라는 것을 보여주며, 각각 다른 너비를 갖는 ResNet-34, 50, 101과 같은 복잡한 네트워크에서 모두 제너럴하게 좋은 성능을 성취하여 높은 확장성/호환성을 갖는 것을 확인하였다.

Claims (10)

  1. 딥러닝 네트워크의 경량화를 위한 필터 프루닝 방법에 있어서,
    베이스라인 네트워크에 대해 1차 필터 프루닝을 수행하는 단계;
    상기 1차 필터 프루닝의 결과로 도출되는 복수의 가중치에 대해 테일러 확장을 이용하여 가중치 중요도를 평가하는 단계; 및
    상기 복수의 가중치 상호간 거리의 변화에 근거하여, 적응적 경사 학습을 수행하는 단계;
    를 포함하고,
    상기 베이스라인에 적용되는 상기 1차 필터 프루닝은, 일 학습 단계가 종료된 후 클러스터 당 하나의 필터만을 유지시키고, 나머지 필터들은 삭제하는 것을 특징으로 하는 필터 프루닝 방법.
  2. 제1항에 있어서,
    상기 가중치 중요도를 평가하는 단계는,
    상기 복수의 가중치와, 그에 대응되는 경사 값을 이용하는 테일러 확장에 근거하여 구심 벡터(Centripetal vector)를 재설계하는 과정을 포함하는 것을 특징으로 하는 필터 프루닝 방법.
  3. 제2항에 있어서,
    상기 구심 벡터를 재설계하는 과정은,
    제1 가중치(W0)와 제2 가중치(W1)가 미리 설정된 기준치(W*)와 대응될 때, 프루닝에 의한 손실의 변화량 변수(I0, I1)를 계산하는 것을 특징으로 하는 필터 프루닝 방법.
  4. 제3항에 있어서,
    상기 구심 벡터를 재설계하는 과정은,
    제1 가중치와 상기 제2 가중치에 각각 대응되는 경사 값의 비교를 수행함으로써, 상기 손실의 변화량 변수를 계산하는 것을 특징으로 하는 필터 프루닝 방법.
  5. 제4항에 있어서,
    상기 구심 벡터를 재설계하는 과정은,
    상기 제1 가중치를 업데이트함에 있어서 제1 마스크 변수를 이용하고, 상기 제2 가중치를 업데이트함에 있어서 제2 마스크 변수를 이용하며,
    상기 제1 마스크 변수와 상기 제2 마스크 변수를 서로 상이한 값인 것을 특징으로 하는 필터 프루닝 방법.
  6. 제5항에 있어서,
    상기 제1 및 제2 마스크 변수는 0 내지 1 범위에 포함되는 바이너리 값인 것을 특징으로 하는 필터 프루닝 방법.
  7. 제3항에 있어서,
    상기 적응적 경사 학습을 수행하는 단계는,
    상기 제1 가중치와 상기 제2 가중치 사이의 거리가 학습 단계가 반복됨에 따라 감소하는 경우, 미리 설정된 오리지널 경사 값을 이용하여 가중치 업데이트를 수행하는 과정을 포함하는 것을 특징으로 하는 필터 프루닝 방법.
  8. 제7항에 있어서,
    상기 적응적 경사 학습을 수행하는 단계는,
    상기 제1 가중치와 상기 제2 가중치 사이의 거리가 학습 단계가 반복됨에 따라 증가하는 경우, 상기 테일러 확장에 의해 재설계된 구심 벡터와, 평균 경사 값을 이용하여 가중치 업데이트를 수행하는 과정을 포함하는 것을 특징으로 하는 필터 프루닝 방법.
  9. 제1항에 있어서,
    상기 베이스라인에 적용되는 상기 1차 필터 프루닝은, C-SGD(Centripetal Stochastic Gradient Descent) 기법인 것을 특징으로 하는 필터 프루닝 방법.
  10. 삭제
KR1020200189752A 2020-12-31 2020-12-31 딥러닝 네트워크의 필터 프루닝 방법 KR102433840B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200189752A KR102433840B1 (ko) 2020-12-31 2020-12-31 딥러닝 네트워크의 필터 프루닝 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200189752A KR102433840B1 (ko) 2020-12-31 2020-12-31 딥러닝 네트워크의 필터 프루닝 방법

Publications (2)

Publication Number Publication Date
KR20220096903A KR20220096903A (ko) 2022-07-07
KR102433840B1 true KR102433840B1 (ko) 2022-08-18

Family

ID=82398264

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200189752A KR102433840B1 (ko) 2020-12-31 2020-12-31 딥러닝 네트워크의 필터 프루닝 방법

Country Status (1)

Country Link
KR (1) KR102433840B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117314763A (zh) * 2023-08-17 2023-12-29 贵州医科大学附属口腔医院 一种基于机器学习的口腔卫生管理方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180015397A1 (en) 2016-07-13 2018-01-18 Samsung Electronics Co., Ltd. Water purifying filter and refrigerator having the same
KR102225308B1 (ko) * 2017-11-28 2021-03-09 주식회사 날비컴퍼니 컨볼루션 신경망 내 필터 프루닝 장치 및 방법
KR102471514B1 (ko) * 2019-01-25 2022-11-28 주식회사 딥바이오 뉴런-레벨 가소성 제어를 통해 파국적인 망각을 극복하기 위한 방법 및 이를 수행하는 컴퓨팅 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Pavlo Molchanov et al., PRUNING CONVOLUTIONAL NEURAL NETWORKS FOR RESOURCE EFFICIENT INFERENCE, arXiv:1611.06440v2, 1-17pages (2017. 6. 8.)*

Also Published As

Publication number Publication date
KR20220096903A (ko) 2022-07-07

Similar Documents

Publication Publication Date Title
CN109754078B (zh) 用于优化神经网络的方法
CN114037844B (zh) 基于滤波器特征图的全局秩感知神经网络模型压缩方法
US11556778B2 (en) Automated generation of machine learning models
Krusienski et al. Adaptive filtering via particle swarm optimization
JP6950756B2 (ja) ニューラルネットワークのランク最適化装置および最適化方法
CN111079899A (zh) 神经网络模型压缩方法、系统、设备及介质
JP7438517B2 (ja) ニューラルネットワークの圧縮方法、ニューラルネットワーク圧縮装置、コンピュータプログラム、及び圧縮されたニューラルネットワークデータの製造方法
JP7267966B2 (ja) 情報処理装置及び情報処理方法
KR102433840B1 (ko) 딥러닝 네트워크의 필터 프루닝 방법
CN112884149A (zh) 一种基于随机敏感度st-sm的深度神经网络剪枝方法及系统
CN109598329A (zh) 一种基于进化混沌边缘的卷积储备池优化方法
KR102144010B1 (ko) 불균형 데이터를 위한 리프리젠테이션 모델 기반의 데이터 처리 방법 및 장치
CN106447026A (zh) 一种基于布谷鸟和声搜索机制的iir数字滤波器生成方法
CN110910329B (zh) 一种以需求为导向的图像去噪方法
CN107995027B (zh) 改进的量子粒子群优化算法及应用于预测网络流量的方法
CN114830137A (zh) 用于生成预测模型的方法和系统
WO2022117127A2 (zh) 一种基于深度代理模型的工程叉车多目标性能优化方法
Sarkar et al. An incremental pruning strategy for fast training of CNN models
CN111612101B (zh) 非参数Waston混合模型的基因表达数据聚类方法、装置及设备
KR102557273B1 (ko) 성능 보존이 가능한 정보 흐름 기반 신경망 모델 자동 경량화 방법 및 장치
Kruglov Channel-wise pruning of neural networks with tapering resource constraint
JPWO2020054402A1 (ja) ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法
Yang et al. MultiAdapt: A neural network adaptation for pruning filters base on multi-layers group
Thimm et al. Neural network pruning and pruning parameters
Kang et al. Soft action particle deep reinforcement learning for a continuous action space

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant