KR102153192B1 - 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축 - Google Patents

시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축 Download PDF

Info

Publication number
KR102153192B1
KR102153192B1 KR1020180156750A KR20180156750A KR102153192B1 KR 102153192 B1 KR102153192 B1 KR 102153192B1 KR 1020180156750 A KR1020180156750 A KR 1020180156750A KR 20180156750 A KR20180156750 A KR 20180156750A KR 102153192 B1 KR102153192 B1 KR 102153192B1
Authority
KR
South Korea
Prior art keywords
weights
neural network
network
basic
electronic device
Prior art date
Application number
KR1020180156750A
Other languages
English (en)
Other versions
KR20200049422A (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 PCT/KR2018/015831 priority Critical patent/WO2020091139A1/ko
Priority to US17/290,107 priority patent/US20210397962A1/en
Publication of KR20200049422A publication Critical patent/KR20200049422A/ko
Application granted granted Critical
Publication of KR102153192B1 publication Critical patent/KR102153192B1/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/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • 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
    • 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
    • G06N3/045Combinations of networks
    • 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/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Feedback Control In General (AREA)

Abstract

다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축은, 반복적 프루닝을 통해, 기본 네트워크의 가중치들을 트레이닝하고, 트레이닝된 가중치들에 기반하여, 기본 네트워크를 압축하도록 구성될 수 있다.

Description

시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축{Effective Network Compression using Simulation-guided Iterative Pruning}
다양한 실시예들은 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축에 관한 것이다.
심층 뉴럴 네트워크(deep neural network)의 발전은 인공 지능의 최근 인기에 크게 기여했다. 다양한 분야에서 최첨단 성능을 보여주는 대부분의 알고리즘들은 심층 뉴럴 네트워크를 기반으로 하고 있다. 그러나, 복잡하고 대규모인 네트워크 구조로 인하여, 하이엔드 컴퓨팅을 사용하지 않고 심층 뉴럴 네트워크를 사용하는 것은 어렵다. 컴퓨팅 파워를 공급하기 위해, 심층 뉴럴 네트워크를 기반으로 하는 대부분의 기존 제품들이 하이엔드 서버에서 처리되므로, 대기 시간 문제, 네트워크 비용 및 개인 정보 문제와 같은 세 가지의 중요한 한계들이 있다. 따라서, 서버가 아닌 독립적인 클라이언트들에서 심층 뉴럴 네트워크를 사용하도록 할 필요가 있다. 이를 달성하기 위해, 네트워크 압축 기술이 매우 중요하다.
네트워크 압축에 대한 연구는 다양한 접근법들을 통해 집중적으로 수행되어 왔다. 또한, 네트워크 압축 방법 중 반복적 프루닝(iterative pruning)은 최첨단의 방법을 포함하여 이전의 여러 연구들에서 효과가 있는 것으로 입증된 가장 유명한 방법 중 하나이다.
따라서, 다양한 실시예들에서, 축소된 네트워크의 시뮬레이션을 기반으로, 보다 효율적이고 정교한 가중치 프루닝 방법이 제안된다.
다양한 실시예들에 따른 전자 장치의 효과적인 네트워크 압축 방법은, 반복적 프루닝을 통해, 기본 네트워크의 가중치들을 트레이닝하는 동작, 및 상기 트레이닝된 가중치들에 기반하여, 상기 기본 네트워크를 압축하는 동작을 포함할 수 있다. 상기 기본 네트워크를 압축하는 동작은, 상기 트레이닝된 가중치들의 각각의 상기 반복적 프루닝에 따른 그라디언트 방향을 확인하는 동작, 및 상기 그라디언트 방향에 기반하여, 상기 기본 네트워크의 가중치들 중 적어도 하나를 제거하는 동작을 포함할 수 있다. 상기 기본 네트워크의 가중치들을 트레이닝하는 동작은, 상기 기본 네트워크를 제 1 뉴럴 네트워크로 결정하는 동작, 상기 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 각각 계산하는 동작, 상기 제 1 뉴럴 네트워크의 가중치들을 임계 값과 비교하여, 상기 임계 값 아래의 적어도 하나의 가중치를 제로로 설정함으로써, 상기 제 1 뉴럴 네트워크로부터 프루닝되는 제 2 뉴럴 네트워크를 생성하는 동작, 및 상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 각각 계산하는 동작을 포함할 수 있다. 상기 그라디언트 방향은, 상기 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트들의 각각으로부터 상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들의 각각으로의 방향을 포함할 수 있다. 상기 기본 네트워크의 가중치들 중 적어도 하나를 제거하는 동작은, 상기 기본 네트워크의 가중치들 중 적어도 하나의 상기 그라디언트 방향이 일관되지 않으면, 상기 기본 네트워크의 가중치들 중 적어도 하나를 제거할 수 있다.
다양한 실시예들에 따른 효과적인 네트워크 압축을 위한 전자 장치는, 기본 네트워크의 가중치들을 저장하고 있는 메모리, 및 반복적 프루닝을 통해, 상기 기본 네트워크의 가중치들을 트레이닝하고, 상기 트레이닝된 가중치들에 기반하여, 상기 기본 네트워크를 압축하도록 구성된 프로세서를 포함할 수 있다. 다양한 실시예들에 따르면, 상기 프로세서는, 상기 트레이닝된 가중치들의 각각의 상기 반복적 프루닝에 따른 그라디언트 방향을 확인하고, 상기 그라디언트 방향에 기반하여, 상기 기본 네트워크의 가중치들 중 적어도 하나를 제거할 수 있다. 상기 프로세서는, 상기 기본 네트워크를 제 1 뉴럴 네트워크로 결정하고, 상기 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 각각 계산하고, 상기 제 1 뉴럴 네트워크의 가중치들을 임계 값과 비교하여, 상기 임계 값 아래의 적어도 하나의 가중치를 제로로 설정함으로써, 상기 제 1 뉴럴 네트워크로부터 프루닝되는 제 2 뉴럴 네트워크를 생성하고, 상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 각각 계산하도록 구성될 수 있다. 상기 그라디언트 방향은, 상기 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트들의 각각으로부터 상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들의 각각으로의 방향을 포함할 수 있다. 상기 프로세서는, 상기 기본 네트워크의 가중치들 중 적어도 하나의 상기 그라디언트 방향이 일관되지 않으면, 상기 기본 네트워크의 가중치들 중 적어도 하나를 제거하도록 구성될 수 있다.
다양한 실시예들에 따르면, 심층 뉴럴 네트워크를 압축하는 새로운 방법이 제안된다. 일시적으로 축소된 네트워크의 시뮬레이션을 통해, 반복적 프루닝이 보다 효과적으로 수행될 수 있다. 동시에, 축소된 네트워크에 보다 적합한 구조로 최적의 가중치가 협력적으로 학습될 수 있다. 따라서, 한정된 자원을 사용하는 임베디드 시스템에 고성능 심층 학습 모델을 장착하는 것이 가능하다.
도 1은 다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝을 수행하는 전자 장치의 블록도이다.
도 2는 다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝을 수행하는 전자 장치의 동작 알고리즘을 설명하기 위한 도면이다.
도 3은 다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝을 개념적으로 설명하기 위한 도면이다.
도 4는 다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝을 수행하는 방법의 순서도이다.
도 5는 다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝의 성능을 설명하기 위한 도면이다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 설명된다. 다양한 실시예들을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 기능을 고려하여 정의된 용어들로서, 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.
다양한 실시예들에 따르면, 효과적인 네트워크 압축을 위한 시뮬레이션-가이드된 반복적 프루닝이 제안된다.
도 1은 다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝을 수행하는 전자 장치의 블록도이다. 도 2는 다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝을 수행하는 전자 장치의 동작 알고리즘을 설명하기 위한 도면이다. 도 3은 다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝을 개념적으로 설명하기 위한 도면이다.
도 1을 참조하면, 다양한 실시예들에 따른 전자 장치(100)는 구성 요소들로서, 메모리(110)와 프로세서(120)를 포함할 수 있다. 어떤 실시예에서, 전자 장치(100)는 적어도 하나의 다른 구성 요소를 더 포함할 수 있다. 다양한 실시예들에 따르면, 전자 장치(100)는 심층 뉴럴 네트워크(deep neural network)를 사용하도록 구현되며, 시뮬레이션-가이드된 반복적 프루닝 프로세스를 수행할 수 있다.
메모리(110)는 전자 장치(100)의 구성 요소에 의해 사용되는 다양한 데이터를 저장할 수 있다. 예를 들면, 데이터는 소프트웨어(예: 프로그램) 및 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(110)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다.
프로세서(120)는 다양한 데이터 처리 및 연산을 수행할 수 있다. 이를 위해, 프로세서(120)는 프로세서(120)에 연결된 전자 장치(100)의 적어도 하나의 다른 구성 요소를 제어할 수 있다. 또한, 프로세서(120)는 소프트웨어를 구동하여 다양한 데이터 처리 및 연산을 수행하고, 결과 데이터를 메모리(110)에 저장할 수 있다.
다양한 실시예들에 따르면, 전자 장치(100)는, 도 2에 도시된 바와 같이 시뮬레이션-가이드된 반복적 프루닝을 수행할 수 있다. 다양한 실시예들에 따르면, 전자 장치(100)는 일시적으로 축소된 네트워크(temporarily reduced network)를 시뮬레이션에 활용할 수 있다. 시뮬레이션의 첫 번째 단계로서, 전자 장치(100)는 기본 네트워크(original network)에서 가중치(weight)들을 계산하여, 메모리(110)에 별도로 저장할 수 있다. 이 후 전자 장치(100)는 특정 임계 값 이하의 적어도 하나의 가중치를 일시적으로 제로(0)로 설정함으로써, 일시적으로 축소된 네트워크를 생성할 수 있다. 여기서, 미리 결정된 백분위수의 임계 값이 사용되어, 반복적 시뮬레이션 프로세스 동안 일관성이 유지될 수 있다. 전자 장치(100)는 일시적으로 제로로 설정된 가중치들을 포함하여 일시적으로 축소된 네트워크의 각 가중치에 대한 그라디언트(gradient)들을 일련의 학습 데이터를 사용하여 계산할 수 있다. 전자 장치(100)는 그라디언트들을 일시적으로 축소된 네트워크가 아니라, 저장된 기본 네트워크에 적용할 수 있다. 이러한 시뮬레이션 프로세스는 첫 번째 단계로부터 시작하여 기본 네트워크를 변경하고, 네트워크가 충분히 시뮬레이션될 때까지 반복될 수 있다.
이러한 시뮬레이션 프로세스를 통해, 가중치들이 계산되고, 임계 값 아래의 가중치들은 반복적 프루닝을 통해 제거될 수 있다. 이 후 프루닝된 가중치들은 영구적으로 고정되고, 재트레이닝 프로세스 없이 전체 프로세스가 높은 임계 값을 가지고 반복될 수 있다.
다양한 실시예들에 따르면, 전자 장치(100)는, 도 3에 도시된 바와 같이 가중치들의 그라디언트에 기반하여, 시뮬레이션-가이드된 반복적 프루닝을 수행할 수 있다. x 축(310)은 가중치들의 값에 대응되고, 제 1 점선(320)은 프루닝의 임계 값을 나타낼 수 있다. 제 2 점선(330)은 제로에 가깝게 위치되는, 엄밀히 말하여 무의미한, 가중치의 이상 값을 나타내고, 제 3 점선(340)은 충분히 중요한 다른 가중치의 이상 값을 나타낼 수 있다. 네트워크의 러닝 프로세스(learning process)가 확률적으로 선택된 데이터를 사용하기 때문에, 중요한 가중치의 이상 값 또한 절대 이상 값 근처에서 확률적으로 분포될 수 있다. 이러한 경우, 중요한 가중치의 절대 이상 값이 임계 값 보다 크더라도, 가중치의 값이 컷오프 범위 내로 떨어질 수 있다. 이와 같이 떨어진 가중치의 프루닝은 불필요한 정보의 손실을 초래할 수 있다. 따라서, 중요하지 않은 가중치들과 중요하지만 떨어진 가중치들을 구별하는 것이 중요할 수 있다. 여기서, 시뮬레이션 중에 가중치를 제로로 설정하면, 절대 이상 값이 제로에 가까워지기 때문에 중요하지 않은 가중치의 그라디언트는 랜덤한 방향을 가질 수 있다. 이에 반해, 중요한 가중치의 그라디언트는 일관된 방향을 가질 수 있다. 따라서, 이러한 스크리닝 프로세스는 기본 네트워크가 아닌 프루닝된 네트워크의 시뮬레이션을 기반으로 하며, 보다 정교한 프루닝을 가능하게 할 수 있다.
다양한 실시예들에 따른 효과적인 네트워크 압축을 위한 전자 장치(100)는, 기본 네트워크의 가중치들을 저장하고 있는 메모리(110), 및 반복적 프루닝을 통해, 기본 네트워크의 가중치들을 트레이닝하고, 트레이닝된 가중치들에 기반하여, 기본 네트워크를 압축하도록 구성된 프로세서(120)를 포함할 수 있다.
다양한 실시예들에 따르면, 상기 프로세서(120)는, 트레이닝된 가중치들의 각각의 반복적 프루닝에 따른 그라디언트 방향을 확인하고, 그라디언트 방향에 기반하여, 기본 네트워크의 가중치들 중 적어도 하나를 제거할 수 있다. 상기 프로세서(120)는, 기본 네트워크를 제 1 뉴럴 네트워크로 결정하고, 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트(g)들을 각각 계산하고, 제 1 뉴럴 네트워크의 가중치들을 임계 값(r)과 비교하여, 임계 값 아래의 적어도 하나의 가중치를 제로로 설정함으로써, 제 1 뉴럴 네트워크로부터 프루닝되는 제 2 뉴럴 네트워크를 생성하고, 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트(g)들을 각각 계산할수 있다. 그라디언트 방향은, 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트(g)들의 각각으로부터 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트(g)들의 각각으로의 방향을 포함할 수 있다. 상기 프로세서(120)는, 기본 네트워크의 가중치들 중 적어도 하나의 그라디언트 방향이 일관되지 않으면, 기본 네트워크의 가중치들 중 적어도 하나를 제거할 수 있다.
삭제
삭제
다양한 실시예들에 따르면, 상기 프로세서(120)는, 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 제 1 뉴럴 네트워크의 가중치들에 각각 적용하여, 제 3 뉴럴 네트워크를 획득하고, 제 3 뉴럴 네트워크를 제 1 뉴럴 네트워크로 결정할 수 있다.
삭제
삭제
도 4는 다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝을 수행하는 방법의 순서도이다.
도 4를 참조하면, 전자 장치(100)는 411 동작에서 제로 위치 매트릭스(zero position matrix; Z)를 초기화할 수 있다. 전자 장치(100)는 기본 네트워크의 가중치들을 제로 위치 매트릭스(Z)에 저장할 수 있다. 전자 장치(100)는 기본 네트워크에서 가중치들을 계산하여, 메모리(110)에 저장할 수 있다. 전자 장치(100)는 413 동작에서 사전-트레이닝된 뉴럴 네트워크 모델(pre-trained neural network model; M)을 결정할 수 있다. 예를 들면, 전자 장치(100)는 프루닝 단계(pruning step; a)에 기반하여, 사전-트레이닝된 뉴럴 네트워크 모델(M)을 결정할 수 있다. 전자 장치(100)는 415 동작에서 프루닝 단계(a)를 설정할 수 있다. 예를 들면, 기본 네트워크에 대한 첫 번째 프루닝을 수행하는 경우, 전자 장치(100)는 프루닝 단계(a)를 1로 설정할 수 있으며, 사전-트레이닝된 뉴럴 네트워크 모델(M)은 기본 네트워크일 수 있다.
전자 장치(100)는, 417 동작에서 프루닝 단계(a)가 정해진 프루닝 단계들(pruning steps; n)에 도달했는 지의 여부를 판단할 수 있다. 즉 전자 장치(100)는, 현재의 프루닝 단계(a)가 프루닝 단계들(n)의 정해진 횟수 미만인 지의 여부를 판단할 수 있다. 417 동작에서 프루닝 단계(a)가 정해진 프루닝 단계들(n)에 도달하지 않은 것으로 판단되면, 전자 장치(100)는 419 동작에서 일시적으로 축소된 네트워크(T)를 생성할 수 있다. 전자 장치(100)는 임계 값(pruning ratio; r)에 기반하여, 사전-트레이닝된 뉴럴 네트워크 모델(M)에 프루닝을 수행함으로써, 일시적으로 축소된 네트워크(T)를 생성할 수 있다. 전자 장치(100)는 미리 결정된 백분위수를 임계 값(r)으로 사용할 수 있다. 이를 통해, 사전-트레이닝된 뉴럴 네트워크 모델(M)의 가중치들 중 임계 값 이하의 적어도 하나의 가중치가 제로로 설정됨으로써, 일시적으로 축소된 네트워크(T)가 생성될 수 있다. 전자 장치(100)는 421 동작에서 일시적으로 축소된 네트워크(T)를 사용하여, 사전-트레이닝된 뉴럴 네트워크 모델(M)의 가중치들에 대한 그라디언트(g)를 계산할 수 있다.
전자 장치(100)는 423 동작에서 가중치들을 제로 위치 매트릭스(Z)와 비교할 수 있다. 전자 장치(100)는, 가중치들이 제로 위치 매트릭스(Z)에 대응되는 지의 여부를 판단할 수 있다. 423 동작에서 가중치들이 제로 위치 매트릭스(Z)에 대응되지 않는 것으로 판단되면, 전자 장치(100)는 425 동작에서 그라디언트(g)를 사용하여, 사전-트레이닝된 뉴럴 네트워크 모델(M)의 가중치들을 업데이트할 수 있다. 즉 전자 장치(100)는 그라디언트(g)를, 일시적으로 축소된 네트워크(T)가 아니라, 사전-트레이닝된 뉴럴 네트워크 모델(M)에 적용할 수 있다. 이 후 전자 장치(100)는 427 동작에서 임계 값(r)에 기반하여, 제로 위치 매트릭스(Z)로 가중치들을 저장할 수 있다. 423 동작에서 가중치들이 제로 위치 매트릭스(Z)에 대응되는 것으로 판단되면, 전자 장치(100)는 427 동작에서 임계 값(r)에 기반하여, 제로 위치 매트릭스(Z)로 가중치들을 저장할 수 있다. 이를 통해, 전자 장치(100)는 기본 네트워크를 변경할 수 있다. 전자 장치(100)는 429 동작에서 프루닝 단계(a)를 변경할 수 있다. 예를 들면, 전자 장치(100)는 현재의 프루닝 단계(a)를 1 만큼 증가시킬 수 있다.
전자 장치(100)는, 431 동작에서 프루닝 단계(a)가 프루닝 단계들(n)에 도달했는 지의 여부를 판단할 수 있다. 즉 전자 장치(100)는, 현재의 프루닝 단계(a)가 프루닝 단계들(n)의 정해진 횟수와 일치하는 지의 여부를 판단할 수 있다. 예를 들면, 전자 장치(100)는 429 동작에서 프루닝 단계(a)를 변경한 다음, 431 동작을 수행할 수 있다. 또는 417 동작에서 현재의 프루닝 단계(a)가 프루닝 단계들(n)의 정해진 횟수 미만이 아닌 것으로 판단되면, 전자 장치(100)는 431 동작으로 진행할 수 있다. 또는 431 동작에서 현재의 프루닝 단계(a)가 프루닝 단계들(n)의 정해진 횟수와 일치하지 않는 것으로 판단되면, 전자 장치(100)는 417 동작으로 진행할 수 있다. 이를 통해, 전자 장치(100)는 프루닝 단계들(n) 만큼 반복적 프루닝을 수행할 수 있다. 이에 따라, 낮은 중요도의 가중치들이 제거될 수 있다. 431 동작에서 프루닝 단계(a)가 프루닝 단계들(n)에 도달한 것으로 판단되면, 전자 장치(100)는 433 동작에서 사전-트레이닝된 뉴럴 네트워크 모델(M)로부터 축소된 네트워크(reduced network; R)가 획득될 수 있다.
다양한 실시예들에 따른 전자 장치의 효과적인 네트워크 압축 방법은, 반복적 프루닝을 통해, 기본 네트워크의 가중치들을 트레이닝하는 동작, 및 트레이닝된 가중치들에 기반하여, 기본 네트워크를 압축하는 동작을 포함할 수 있다. 기본 네트워크를 압축하는 동작은, 트레이닝된 가중치들의 각각의 상기 반복적 프루닝에 따른 그라디언트 방향을 확인하는 동작, 및 그라디언트 방향에 기반하여, 기본 네트워크의 가중치들 중 적어도 하나를 제거하는 동작을 포함할 수 있다. 기본 네트워크의 가중치들을 트레이닝하는 동작은, 기본 네트워크를 제 1 뉴럴 네트워크로 결정하는 동작, 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트(g)들을 각각 계산하는 동작, 제 1 뉴럴 네트워크의 가중치들을 임계 값(r)과 비교하여, 임계 값(r) 아래의 적어도 하나의 가중치를 제로로 설정함으로써, 제 1 뉴럴 네트워크로부터 프루닝되는 제 2 뉴럴 네트워크를 생성하는 동작, 및 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트(g)들을 각각 계산하는 동작을 포함할 수 있다. 그라디언트 방향은, 상기 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트(g)들의 각각으로부터 상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트(g)들의 각각으로의 방향을 포함할 수 있다. 기본 네트워크의 가중치들 중 적어도 하나를 제거하는 동작은, 기본 네트워크의 가중치들 중 적어도 하나의 그라디언트 방향이 일관되지 않으면, 기본 네트워크의 가중치들 중 적어도 하나를 제거할 수 있다.
삭제
삭제
다양한 실시예들에 따르면, 기본 네트워크의 가중치들을 트레이닝하는 동작은, 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 제 1 뉴럴 네트워크의 가중치들에 각각 적용하여, 제 3 뉴럴 네트워크를 획득하는 동작, 및 제 3 뉴럴 네트워크를 제 1 뉴럴 네트워크로 결정하는 동작 - 이 후, 제 1 뉴럴 네트워크로부터 프루닝되는 제 2 뉴럴 네트워크를 생성하는 동작으로 진행함 -을 더 포함할 수 있다.
삭제
삭제
도 5는 다양한 실시예들에 따른 시뮬레이션-가이드된 반복적 프루닝의 성능을 설명하기 위한 도면이다. 도 5는 다양한 실시예들에 따른 알고리즘과 기존의 알고리즘에 각각 대응하는 실험 결과로서, 프루닝 프로세스에서 제거되지 않은 프루닝된 가중치에 대한 비율의 함수로서 분류 정확도(classification accuracy)를 나타내고 있다. 도 5의 (b)는, 도 5의 (a)에서 다양한 실시예들에 따른 알고리즘과 기존의 알고리즘의 성능 차가 비교적 큰 일부 영역을 확대하여 도시하고 있다.
도 5를 참조하면, 프루닝된 가중치들의 개수가 1 % 까지 감소되더라도, 다양한 실시예들에 따른 알고리즘과 기존의 알고리즘 사이에 현저한 성능 차는 나타나지 않는다. 다만, 프루닝된 가중치들의 개수가 1 % 미만으로 감소됨에 따라, 기존의 알고리즘의 성능은 급격하게 저하되는 반면, 다양한 실시예들에 따른 알고리즘의 성능은 상대적으로 높게 나타난다. 이는, 다양한 실시예들에 따른 알고리즘이 기존의 알고리즘 보다 효과적으로 네트워크 압축을 수행함을 의미한다. 예를 들면, 다양한 실시예들에 따른 알고리즘을 사용하는 경우, 분류 정확도를 90 %로 유지하면서 네트워크가 원래 크기의 0.114 %로 압축되는 데 반해, 기존의 알고리즘을 사용하는 경우, 0.138 %로 압축될 수 있을 뿐이다.
다양한 실시예들에 따르면, 심층 뉴럴 네트워크를 압축하는 새로운 방법이 제안된다. 일시적으로 축소된 네트워크의 시뮬레이션을 통해, 반복적 프루닝이 보다 효과적으로 수행될 수 있다. 동시에, 축소된 네트워크에 보다 적합한 구조로 최적의 가중치가 협력적으로 학습될 수 있다. 이는, 도 5에 도시된 실험 결과와 같이, 기존의 알고리즘을 능가하는 성능을 나타낼 수 있다. 따라서, 한정된 자원을 사용하는 임베디드 시스템에 고성능 심층 학습 모델을 장착하는 것이 가능하다.
본 문서의 다양한 실시예들에 관해 설명되었으나, 본 문서의 다양한 실시예들의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로, 본 문서의 다양한 실시예들의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며 후술하는 특허청구의 범위 뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (7)

  1. 전자 장치의 효과적인 네트워크 압축 방법에 있어서,
    반복적 프루닝을 통해, 기본 네트워크의 가중치들을 트레이닝하는 동작; 및
    상기 트레이닝된 가중치들에 기반하여, 상기 기본 네트워크를 압축하는 동작을 포함하고,
    상기 기본 네트워크를 압축하는 동작은,
    상기 트레이닝된 가중치들의 각각의 상기 반복적 프루닝에 따른 그라디언트 방향을 확인하는 동작; 및
    상기 그라디언트 방향에 기반하여, 상기 기본 네트워크의 가중치들 중 적어도 하나를 제거하는 동작을 포함하고,
    상기 기본 네트워크의 가중치들을 트레이닝하는 동작은,
    상기 기본 네트워크를 제 1 뉴럴 네트워크로 결정하는 동작;
    상기 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 각각 계산하는 동작;
    상기 제 1 뉴럴 네트워크의 가중치들을 임계 값과 비교하여, 상기 임계 값 아래의 적어도 하나의 가중치를 제로로 설정함으로써, 상기 제 1 뉴럴 네트워크로부터 프루닝되는 제 2 뉴럴 네트워크를 생성하는 동작; 및
    상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 각각 계산하는 동작을 포함하고,
    상기 그라디언트 방향은,
    상기 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트들의 각각으로부터 상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들의 각각으로의 방향을 포함하고,
    상기 기본 네트워크의 가중치들 중 적어도 하나를 제거하는 동작은,
    상기 기본 네트워크의 가중치들 중 적어도 하나의 상기 그라디언트 방향이 일관되지 않으면, 상기 기본 네트워크의 가중치들 중 적어도 하나를 제거하는 방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서, 상기 기본 네트워크의 가중치들을 트레이닝하는 동작은,
    상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 상기 제 1 뉴럴 네트워크의 가중치들에 각각 적용하여, 제 3 뉴럴 네트워크를 획득하는 동작; 및
    상기 제 3 뉴럴 네트워크를 상기 제 1 뉴럴 네트워크로 결정하는 동작 - 이 후, 상기 제 1 뉴럴 네트워크로부터 프루닝되는 제 2 뉴럴 네트워크를 생성하는 동작으로 진행함 -을 더 포함하는 방법.
  5. 삭제
  6. 효과적인 네트워크 압축을 위한 전자 장치에 있어서,
    기본 네트워크의 가중치들을 저장하고 있는 메모리; 및
    반복적 프루닝을 통해, 상기 기본 네트워크의 가중치들을 트레이닝하고,상기 트레이닝된 가중치들에 기반하여, 상기 기본 네트워크를 압축하도록 구성된 프로세서를 포함하고,
    상기 프로세서는,
    상기 트레이닝된 가중치들의 각각의 상기 반복적 프루닝에 따른 그라디언트 방향을 확인하고,
    상기 그라디언트 방향에 기반하여, 상기 기본 네트워크의 가중치들 중 적어도 하나를 제거하고,
    상기 프로세서는,
    상기 기본 네트워크를 제 1 뉴럴 네트워크로 결정하고,
    상기 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 각각 계산하고,
    상기 제 1 뉴럴 네트워크의 가중치들을 임계 값과 비교하여, 상기 임계 값 아래의 적어도 하나의 가중치를 제로로 설정함으로써, 상기 제 1 뉴럴 네트워크로부터 프루닝되는 제 2 뉴럴 네트워크를 생성하고,
    상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 각각 계산하도록 구성되고,
    상기 그라디언트 방향은,
    상기 제 1 뉴럴 네트워크의 가중치들에 대한 그라디언트들의 각각으로부터 상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들의 각각으로의 방향을 포함하고,
    상기 프로세서는,
    상기 기본 네트워크의 가중치들 중 적어도 하나의 상기 그라디언트 방향이 일관되지 않으면, 상기 기본 네트워크의 가중치들 중 적어도 하나를 제거하도록 구성된 전자 장치.
  7. 제 6 항에 있어서, 상기 프로세서는,
    상기 제 2 뉴럴 네트워크의 가중치들에 대한 그라디언트들을 상기 제 1 뉴럴 네트워크의 가중치들에 각각 적용하여, 제 3 뉴럴 네트워크를 획득하고,
    상기 제 3 뉴럴 네트워크를 상기 제 1 뉴럴 네트워크로 결정하도록 구성된 전자 장치.
KR1020180156750A 2018-10-31 2018-12-07 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축 KR102153192B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2018/015831 WO2020091139A1 (ko) 2018-10-31 2018-12-13 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축
US17/290,107 US20210397962A1 (en) 2018-10-31 2018-12-13 Effective network compression using simulation-guided iterative pruning

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180131655 2018-10-31
KR1020180131655 2018-10-31

Publications (2)

Publication Number Publication Date
KR20200049422A KR20200049422A (ko) 2020-05-08
KR102153192B1 true KR102153192B1 (ko) 2020-09-08

Family

ID=70677926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180156750A KR102153192B1 (ko) 2018-10-31 2018-12-07 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축

Country Status (1)

Country Link
KR (1) KR102153192B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200139909A (ko) 2019-06-05 2020-12-15 삼성전자주식회사 전자 장치 및 그의 연산 수행 방법
KR20210141252A (ko) * 2020-05-15 2021-11-23 삼성전자주식회사 전자 장치 및 그 제어 방법
CN111598238A (zh) * 2020-07-17 2020-08-28 支付宝(杭州)信息技术有限公司 深度学习模型的压缩方法及装置
KR20220071713A (ko) 2020-11-24 2022-05-31 삼성전자주식회사 뉴럴 네트워크 가중치 압축 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018058509A1 (en) 2016-09-30 2018-04-05 Intel Corporation Dynamic neural network surgery
US20180114114A1 (en) 2016-10-21 2018-04-26 Nvidia Corporation Systems and methods for pruning neural networks for resource efficient inference

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018058509A1 (en) 2016-09-30 2018-04-05 Intel Corporation Dynamic neural network surgery
US20180114114A1 (en) 2016-10-21 2018-04-26 Nvidia Corporation Systems and methods for pruning neural networks for resource efficient inference

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An iterative pruning algorithm for feedforward neural networks. G Castellano et al. IEEE(1997)
Learning both Weights and Connections for Efficient Neural Networks. Song Han et al. NIPS(2015).

Also Published As

Publication number Publication date
KR20200049422A (ko) 2020-05-08

Similar Documents

Publication Publication Date Title
KR102153192B1 (ko) 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축
US20240119286A1 (en) Adaptive artificial neural network selection techniques
CN110880036B (zh) 神经网络压缩方法、装置、计算机设备及存储介质
CN108337000B (zh) 用于转换到较低精度数据格式的自动方法
US10552737B2 (en) Artificial neural network class-based pruning
US10496903B2 (en) Using image analysis algorithms for providing training data to neural networks
CN113011581B (zh) 神经网络模型压缩方法、装置、电子设备及可读存储介质
CN110363297A (zh) 神经网络训练及图像处理方法、装置、设备和介质
CN111079899A (zh) 神经网络模型压缩方法、系统、设备及介质
CN109993298B (zh) 用于压缩神经网络的方法和装置
KR20210032140A (ko) 뉴럴 네트워크에 대한 프루닝을 수행하는 방법 및 장치
US11972347B2 (en) System and method for emulating quantization noise for a neural network
CN111275187A (zh) 深度神经网络模型的压缩方法及装置
EP3767549A1 (en) Delivery of compressed neural networks
US20230252294A1 (en) Data processing method, apparatus, and device, and computer-readable storage medium
US11620514B2 (en) Training artificial neural networks with reduced computational complexity
CN112861996A (zh) 深度神经网络模型压缩方法及装置、电子设备、存储介质
US20210397962A1 (en) Effective network compression using simulation-guided iterative pruning
CN110874635B (zh) 一种深度神经网络模型压缩方法及装置
KR102505946B1 (ko) 인공신경망 모델 학습 방법 및 시스템
CN111126501B (zh) 一种图像识别方法、终端设备及存储介质
CN113392867A (zh) 一种图像识别方法、装置、计算机设备及存储介质
KR102368447B1 (ko) 동영상 코딩을 위한 훈련된 심층 인공 신경망의 압축 장치 및 방법
CN112288032B (zh) 一种基于生成对抗网络的量化模型训练的方法及装置
CN111602145A (zh) 卷积神经网络的优化方法及相关产品

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant