KR20220045424A - 인공 신경망을 압축하는 방법 및 장치 - Google Patents
인공 신경망을 압축하는 방법 및 장치 Download PDFInfo
- Publication number
- KR20220045424A KR20220045424A KR1020200128136A KR20200128136A KR20220045424A KR 20220045424 A KR20220045424 A KR 20220045424A KR 1020200128136 A KR1020200128136 A KR 1020200128136A KR 20200128136 A KR20200128136 A KR 20200128136A KR 20220045424 A KR20220045424 A KR 20220045424A
- Authority
- KR
- South Korea
- Prior art keywords
- artificial neural
- neural network
- pruning
- layer
- layers
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
일 실시예에 따른 인공 신경망을 압축하는 방법 및 장치는 미리 트레이닝된 복수의 레이어들을 포함하는 인공 신경망에 대응하는 가중치들을 획득하고, 가중치들을 기초로, 인공 신경망의 프루닝으로 인한 인공 신경망의 행동 변화를 파악하기 위한 데이터를 생성하고, 데이터에 의해 파악되는 인공 신경망의 행동 변화를 통해 인공 신경망의 프루닝을 위한 프루닝 임계치를 결정하며, 프루닝 임계치를 기초로, 인공 신경망을 압축한다.
Description
아래의 실시예들은 인공 신경망을 압축하는 방법 및 장치에 관한 것이다.
인공 신경망은 복잡한 입력 데이터에 대한 많은 양의 연산을 필요로 할 수 있다. 인공 신경망이 트레이닝하는 데이터의 양이 증가함에 따라, 인공 신경망을 구성하는 레이어들 간의 연결이 복잡해질 수 있다. 뿐만 아니라, 인공 신경망이 트레이닝하는 데이터의 양이 증가함에 따라, 과거의 트레이닝 데이터에 대한 정확도는 증가하지만, 새로운 입력 데이터에 대한 예측 값의 신뢰성이 저하되는 과적합(Over-Fitting) 문제가 발생할 수 있다. 인공 신경망의 복잡도가 증가함에 따라 메모리 할당량 또한 과도하게 증가되어 소형화 및 상용화에 있어서 문제가 발생할 수 있다. 따라서, 인공 신경망의 성능을 유지하면서 인공 신경망의 구현에 있어서 시스템 비용을 감소시키기 위한 압축 방법이 요구된다.
전술한 배경기술은 발명자가 본원의 개시 내용을 도출하는 과정에서 보유하거나 습득한 것으로서, 반드시 본 출원 전에 일반 공중에 공개된 공지기술이라고 할 수는 없다.
일 실시예에 따르면, 인공 신경망을 압축하는 방법은 미리 트레이닝된 인공 신경망- 상기 인공 신경망은 복수의 레이어들(layers)을 포함함 -에 대응하는 가중치들(weights)을 획득하는 단계; 상기 가중치들을 기초로, 상기 인공 신경망의 프루닝(pruning)으로 인한 상기 인공 신경망의 행동 변화를 파악하기 위한 데이터를 생성하는 단계; 상기 데이터에 의해 파악되는 상기 인공 신경망의 행동 변화를 통해 상기 인공 신경망의 프루닝을 위한 프루닝 임계치(pruning threshold)를 결정하는 단계; 및 상기 프루닝 임계치를 기초로, 상기 인공 신경망을 압축하는 단계를 포함한다.
상기 프루닝 임계치를 결정하는 단계는 상기 복수의 레이어들 별로, 상기 인공 신경망의 프루닝 시에 상기 인공 신경망의 행동(behavior)이 변화하는 정도를 나타내는 프루닝 민감도(pruning sensitivity)를 측정하는 단계; 및 상기 복수의 레이어들 별로 측정된 프루닝 민감도를 기초로, 상기 레이어들 별로 프루닝을 수행함으로써 상기 프루닝 임계치를 결정 하는 단계를 포함할 수 있다.
상기 프루닝 민감도를 측정하는 단계는 상기 복수의 레이어들 별로, 해당 레이어의 프루닝에 의해 상기 인공 신경망의 행동이 유지될 때까지 점진적으로 상기 해당 레이어에 대응하는 백분위 수 기반(percentile-based)의 프루닝 임계치를 증가시킴으로써 상기 프루닝 민감도를 측정하는 단계를 포함할 수 있다.
상기 프루닝 민감도는 상기 레이어들에 대응하는 가중치들의 분포, 및 상기 레이어들 간의 연결(connection) 형태 중 적어도 하나에 기초하여 결정될 수 있다.
상기 프루닝 임계치를 결정하는 단계는 상기 복수의 레이어들 중 상기 프루닝 민감도가 낮은 순으로 레이어를 선택하는 단계; 상기 선택된 레이어의 프루닝에 의해 상기 인공 신경망의 행동이 유지되도록 상기 선택된 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 결정하는 단계; 및 상기 복수의 레이어들 중 상기 선택된 레이어를 제외한 나머지 레이어들 각각에 대하여, 상기 레이어를 선택하는 단계 및 상기 백분위 수 기반의 프루닝 임계치를 결정하는 단계를 반복적으로 수행하는 단계를 포함할 수 있다.
상기 인공 신경망의 행동 변화는 상기 인공 신경망에 상기 프루닝을 적용하기 전후의 출력들이 미리 정해진 판정 기준(criterion)을 만족하는지 여부를 기초로 측정될 수 있다.
상기 판정 기준은 프루닝 된 인공 신경망이 예측한 상위 p개의 클래스들이 프루닝 전 인공 신경망이 예측한 상위 k 개의 클래스들(여기서, k, p 각각은 자연수 이며, k ≤ p 임)을 포함하는 조건을 포함할 수 있다.
상기 프루닝 임계치는 상기 복수의 레이어들 별 백분위 수 기반의 프루닝 임계치를 포함하고, 상기 인공 신경망을 압축하는 단계는 상기 인공 신경망 내 레이어에 포함된 복수의 커널들(kernels) 각각에 대응하여, 해당하는 레이어의 백분위 수 기반의 프루닝 임계치에 기초하여 해당하는 커널에 크기 기반의(magnitude-based) 프루닝 임계치를 적용하는 단계를 포함할 수 있다.
상기 데이터를 생성하는 단계는 상기 가중치들을 기초로, 상기 인공 신경망에서 예측된 클래스(class)가 복수 개의 클래스들 중 어느 하나의 목표 클래스가 될 때까지 상기 인공 신경망이 입력 영상을 반복적으로 수정함으로써 상기 데이터를 생성하는 단계를 포함할 수 있다.
상기 입력 영상은 랜덤 노이즈 영상(random noise image)을 포함할 수 있다.
상기 데이터를 생성하는 단계는 상기 목표 클래스에 대응하는 원-핫-벡터(one-hot vector)와 상기 인공 신경망에서 예측된 클래스 간의 크로스-엔트로피 로스(cross-entropy loss)를 역전파(backpropagation)하는 단계를 포함할 수 있다.
상기 가중치들은 상기 크로스-엔트로피 로스의 역전파 시에 변화되지 않고 고정될 수 있다.
일 실시예에 따르면, 인공 신경망을 압축하는 장치는 미리 트레이닝된 인공 신경망- 상기 인공 신경망은 복수의 레이어들을 포함함 -에 대응하는 가중치들을 획득하는 통신 인터페이스; 및 상기 가중치들을 기초로, 상기 인공 신경망의 프루닝으로 인한 상기 인공 신경망의 행동 변화를 파악하기 위한 데이터를 생성하고, 상기 데이터에 의해 파악되는 상기 인공 신경망의 행동 변화를 통해 상기 인공 신경망의 프루닝을 위한 프루닝 임계치를 결정하며, 상기 프루닝 임계치를 기초로, 상기 인공 신경망을 압축하는 프로세서를 포함한다.
상기 프로세서는 상기 복수의 레이어들 별로, 상기 인공 신경망의 프루닝 시에 상기 인공 신경망의 행동이 변화하는 정도를 나타내는 프루닝 민감도를 측정하고, 상기 복수의 레이어들 별로 측정된 프루닝 민감도를 기초로, 상기 레이어들 별로 프루닝을 수행함으로써 상기 프루닝 임계치를 결정할 수 있다.
상기 프로세서는 상기 복수의 레이어들 별로, 해당 레이어의 프루닝에 의해 상기 인공 신경망의 행동이 유지될 때까지 점진적으로 상기 해당 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 증가시킴으로써 상기 프루닝 민감도를 측정할 수 있다.
상기 프루닝 민감도는 상기 레이어들에 대응하는 가중치들의 분포, 및 상기 레이어들 간의 연결 형태 중 적어도 하나에 기초하여 결정될 수 있다.
상기 프로세서는 상기 복수의 레이어들 중 상기 프루닝 민감도가 낮은 순으로 레이어를 선택하고, 상기 선택된 레이어의 프루닝에 의해 상기 인공 신경망의 행동이 유지되도록 상기 선택된 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 결정하며, 상기 복수의 레이어들 중 상기 선택된 레이어를 제외한 나머지 레이어들 각각에 대하여, 상기 레이어를 선택하는 과정 및 상기 백분위 수 기반의 프루닝 임계치를 결정하는 과정을 반복적으로 수행할 수 있다.
상기 인공 신경망의 행동 변화는 상기 인공 신경망에 상기 프루닝을 적용하기 전후의 출력들이 미리 정해진 판정 기준을 만족하는지 여부를 기초로 측정될 수 있다.
상기 판정 기준은 프루닝 된 인공 신경망이 예측한 상위 p개의 클래스들이 프루닝 전 인공 신경망이 예측한 상위 k 개의 클래스들(여기서, k, p 각각은 자연수 이며, k ≤ p 임)을 포함하는 조건을 포함할 수 있다.
상기 프루닝 임계치는 상기 복수의 레이어들 별 백분위 수 기반의 프루닝 임계치를 포함하고, 상기 프로세서는 상기 인공 신경망 내 레이어에 포함된 복수의 커널들 각각에 대응하여, 해당하는 레이어의 백분위 수 기반의 프루닝 임계치에 기초하여 해당하는 커널에 크기 기반의 프루닝 임계치를 적용할 수 있다.
상기 프로세서는 상기 가중치들을 기초로, 상기 인공 신경망에서 예측된 클래스가 복수 개의 클래스들 중 어느 하나의 목표 클래스가 될 때까지 상기 인공 신경망이 입력 영상을 반복적으로 수정함으로써 상기 데이터를 생성할 수 있다.
상기 입력 영상은 랜덤 노이즈 영상을 포함할 수 있다.
상기 프로세서는 상기 목표 클래스에 대응하는 원-핫-벡터와 상기 인공 신경망에서 예측된 클래스 간의 크로스-엔트로피 로스를 역전파할 수 있다.
상기 가중치들은 상기 크로스-엔트로피 로스의 역전파 시에 변화되지 않고 고정될 수 있다.
상기 인공 신경망을 압축하는 장치는 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS), HUD(Head Up Display) 장치, 3D 디지털 정보 디스플레이(Digital Information Display, DID), 내비게이션 장치, 뉴로모픽 장치(neuromorphic device), 3D 모바일 기기, 스마트 폰, 스마트 TV, 스마트 차량, IoT(Internet of Things) 디바이스, 의료 디바이스, 및 계측 디바이스 중 적어도 하나를 포함할 수 있다.
도 1은 일 실시예에 따른 인공 신경망을 개략적으로 도시한 도면.
도 2는 일 실시예에 따른 프루닝(pruning)을 설명하기 위한 도면.
도 3은 일 실시예에 따른 인공 신경망을 압축하는 방법을 개념적으로 설명하기 위한 도면.
도 4는 일 실시예에 따른 인공 신경망을 압축하는 방법을 나타낸 흐름도.
도 5는 일 실시예에 따라 데이터를 생성하는 방법을 나타낸 흐름도.
도 6은 일 실시예에 따라 데이터를 생성하는 방법을 설명하기 위한 도면.
도 7은 일 실시예에 따라 프루팅 임계치를 결정하는 방법을 나타낸 흐름도.
도 8은 일 실시예에 따라 레이어들 별로 프루닝을 수행함으로써 프루닝 임계치를 결정하는 방법을 나타낸 흐름도.
도 9는 일 실시예에 따라 어느 하나의 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 결정하는 방법을 나타낸 흐름도.
도 10은 다른 실시예에 따라 레이어들 별로 프루닝을 수행함으로써 프루닝 임계치를 결정하는 방법을 나타낸 흐름도.
도 11은 일 실시예에 따라 커널(kernel) 단위로 프루닝 임계치가 적용되는 과정을 설명하기 위한 도면.
도 12는 일 실시예에 따른 인공 신경망을 압축하는 장치의 블록도.
도 2는 일 실시예에 따른 프루닝(pruning)을 설명하기 위한 도면.
도 3은 일 실시예에 따른 인공 신경망을 압축하는 방법을 개념적으로 설명하기 위한 도면.
도 4는 일 실시예에 따른 인공 신경망을 압축하는 방법을 나타낸 흐름도.
도 5는 일 실시예에 따라 데이터를 생성하는 방법을 나타낸 흐름도.
도 6은 일 실시예에 따라 데이터를 생성하는 방법을 설명하기 위한 도면.
도 7은 일 실시예에 따라 프루팅 임계치를 결정하는 방법을 나타낸 흐름도.
도 8은 일 실시예에 따라 레이어들 별로 프루닝을 수행함으로써 프루닝 임계치를 결정하는 방법을 나타낸 흐름도.
도 9는 일 실시예에 따라 어느 하나의 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 결정하는 방법을 나타낸 흐름도.
도 10은 다른 실시예에 따라 레이어들 별로 프루닝을 수행함으로써 프루닝 임계치를 결정하는 방법을 나타낸 흐름도.
도 11은 일 실시예에 따라 커널(kernel) 단위로 프루닝 임계치가 적용되는 과정을 설명하기 위한 도면.
도 12는 일 실시예에 따른 인공 신경망을 압축하는 장치의 블록도.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 인공 신경망을 개략적으로 도시한 도면이다. 도 1을 참조하면, 일 실시예에 따른 인공 신경망의 일 예시에 해당하는 심층 신경망(Deep Neural Network)의 개략적인 구조가 도시된다. 이하, 설명의 편의를 위하여 심층 신경망의 구조를 예로 들어 설명하지만, 반드시 이에 한정되는 것은 아니며 다양한 구조의 인공 신경망들이 사용될 수 있다.
심층 신경망은 인공 신경망을 구현하는 하나의 방식으로서, 복수의 레이어들(layers)를 포함할 수 있다. 심층 신경망은 예를 들어, 입력 데이터가 인가되는 입력 레이어(Input Layer), 트레이닝을 바탕으로 입력 데이터에 기반한 예측을 통해 도출된 결과 값을 출력하는 출력 레이어(Output Layer) 및 입력 레이어와 출력 레이어 사이의 다중의 은닉 레이어(Hidden Layer)들을 포함할 수 있다.
심층 신경망은 정보를 처리하기 위해 이용되는 알고리즘에 따라, 컨볼루션 신경망(Convolutional Neural Network), 및 리커런트 신경망(Recurrent Neural Network) 등으로 분류될 수 있다. 이하, 인공 신경망 분야의 일반적인 관행에 따라 입력 레이어를 최하위 레이어, 출력 레이어를 최상위 레이어라고 부르며, 최상위 레이어인 출력 레이어부터 최하위 레이어인 입력 레이어까지 순차적으로 레이어들의 순위를 지정하여 명명할 수 있다. 예를 들어, 은닉 레이어 2는 은닉 레이어 1 및 입력 레이어보다 상위 레이어이나, 출력 레이어보다는 하위 레이어에 해당할 수 있다.
예를 들어, 심층 신경망에서 인접한 레이어들 사이에서는 상대적으로 상위인 레이어가, 상대적으로 하위인 레이어의 출력 값에 가중치를 곱하고 바이어스를 적용한 값을 인가 받아 소정의 연산 결과를 출력할 수 있다. 이때, 출력되는 연산 결과는 해당 레이어에 인접한 상위 레이어에 유사한 방식으로 인가될 수 있다.
인공 신경망을 트레이닝하는 방식을 예를 들어, 딥러닝(Deep Learning)이라 하며, 상술한 바와 같이 딥러닝에는 컨볼루션 신경망, 리커런트 신경망 방식과 같이 다양한 알고리즘이 이용될 수 있다.
일 실시예에서 '인공 신경망을 트레이닝한다'는 것은 레이어들 간의 가중치(들) 및 바이어스(들)를 결정하고 갱신하는 것, 및/또는 인접한 레이어들 중 서로 다른 레이어에 속하는 복수의 뉴런들 간의 가중치(들) 및 바이어스(들)를 결정하고 갱신하는 것을 모두 포괄하는 의미로 이해될 수 있다.
예를 들어, 복수의 레이어들, 복수의 레이어들 간의 계층적 구조, 뉴런들 간의 가중치 및 바이어스를 모두 총칭하여 인공 신경망의 '연결성(connectivity)'이라 표현할 수 있다. 따라서, 인공 신경망을 트레이닝한다는 것은 연결성을 구축하고 트레이닝하는 것으로도 이해될 수 있다.
인공 신경망에서 복수의 레이어들 각각은 복수의 노드들(nodes)을 포함할 수 있다. 노드는 인공 신경망의 뉴런(neuron)에 해당할 수 있다. 이하의 설명에서, 용어 '뉴런'은 '노드'라는 용어와 동일한 의미로 사용될 수 있다.
도 1의 심층 신경망에서 어느 한 레이어에 포함된 복수의 노드들과 인접한 레이어에 포함된 복수의 노드들의 조합들 간에 모두 연결 관계가 형성된 것을 볼 수 있다. 이와 같이 인공 신경망의 인접한 레이어들에 포함된 모든 노드들의 조합들이 모두 서로 연결된 것을 '완전 연결(fully-connected)'이라 부를 수 있다. 예를 들어, 도 1에 도시된 은닉 레이어 2의 노드 3-1은 은닉 레이어 1의 모든 노드들, 즉, 노드 2-1 내지 노드 2-4 모두와 연결되어 각각의 노드들의 출력 값에 대하여 소정의 가중치를 곱한 값을 입력 받을 수 있다.
입력 레이어에 입력된 데이터가 복수의 은닉 레이어들을 거쳐 처리됨으로써 출력 레이어를 통해 출력 값이 출력될 수 있다. 이때, 각 노드의 출력 값에 대해 곱해지는 가중치가 클수록 대응하는 두 개의 노드들 간의 연결성이 강화됨을 의미하고, 가중치가 작을수록 두 개의 노드들 간의 연결성이 약화됨을 의미할 수 있다. 가중치는 예를 들어, 0부터 1 사이의 값을 가질 수 있고, 가중치가 0인 경우, 두 노드들 간의 연결성이 없음을 의미할 수 있다.
한편, 가중치를 통한 노드들 간의 연결성이 증가할수록 인공 신경망의 연결성이 강화되며 복잡성이 증가할 수 있다. 이에 따라, 가중치를 저장하기 위한 메모리 할당량이 증가하고, 인공 신경망 전체의 작업 수행 속도가 저해되어 인공 신경망의 작업 효율성이 감소할 수 있다.
도 2는 일 실시예에 따른 프루닝(pruning)을 설명하기 위한 도면이다. 도 2를 참조하면, 일 실시예에 따른 프루닝을 수행하기 전의 인공 신경망의 구조를 나타낸 도면(210) 및 프로닝을 수행한 후의 인공 신경망의 구조를 나타낸 도면(230)이 도시된다.
도면(210)에서 인공 신경망의 인접한 두 개의 서로 다른 레이어들에 포함된 모든 노드들의 조합들이 완전 연결된 것을 볼 수 있다. 인공 신경망이 완전 연결된 경우, 인공 신경망에 포함된 인접한 서로 다른 레이어에 속한 임의의 두 개의 노드들 간의 연결 강도를 나타내는 가중치는 0보다 큰 값을 가질 수 있다. 도면(210)과 같이 인공 신경망의 모든 인접 레이어들의 뉴런들 간에 연결성이 있는 경우, 인공 신경망 전체의 복잡도가 증가할 수 있으며, 과적합(over fitting)으로 인하여 인공 신경망의 예측 결과에 대한 정확성 및 신뢰성이 감소할 수 있다.
이를 방지하기 위해, 일 실시예에서는 도면(230)과 같이 인공 신경망의 일부에 대한 '가지치기' 다시 말해, 프루닝(pruning)을 수행할 수 있다. 예를 들어, 도면(210)과 같이 프루닝을 수행하기 전의 인공 신경망에서 노드 1과 노드 2-3 간의 가중치가 소정의 임계 값 이하라고 가정하자. 이 경우, 일 실시예에 따른 압축 장치는 프루닝할 인공 신경망의 일부를 결정하기 위해 인공 신경망을 탐색하여 소정의 임계치 이하의 가중치를 갖는 부분(예를 들어, 노드 1과 노드 2-3간)을 검색할 수 있다. 압축 장치는 임계치 이하의 가중치를 갖는 부분의 연결성을 제거하는 프루닝을 수행할 수 있다. 이때, 압축 장치는 인공 신경망의 예측(또는 추론) 정확도를 실질적으로 손상시키지 않는 인공 신경망의 가중치들의 일부 및/또는 레이어들의 일부를 제거하거나 감소시킴으로써 인공 신경망을 프루닝할 수 있다.
이와 같이, 프루닝은 인공 신경망의 출력에 실질적으로 영향을 주지 않는 인공 신경망의 레이어에 대해 수행될 수 있다. 예를 들어, 레이어에 의해 생성된 출력 특징 맵(output feature map)에 실질적으로 영향을 주지 않는, 레이어의 하나 이상의 입력 특징 맵들에 대해 프루닝이 수행될 수 있다.
일 실시예에 따른 압축 장치는 가중치들이 임계 값보다 작은 값을 갖는 뉴런들 간의 연결을 검색하여 프루닝을 수행할 수 있다. 임계 값보다 작은 값을 갖는 것으로 식별된 모든 가중치와 대응하는 연결 관계는 제거되거나, 완전히 0에 맞춰지거나 그렇지 않으면 무시될 수 있다. 예를 들어, 압축 장치는 임계값보다 작은 가중치들을 갖는 레이어들을 인공 신경망에서 프루닝할 후보로서 선택할 수 있다.
도 3은 일 실시예에 따른 인공 신경망을 압축하는 방법을 개념적으로 설명하기 위한 도면이다. 도 3을 참조하면, 일 실시예에 따른 압축 장치는 단계(310) 내지 단계(330)을 통해 프루닝을 수행함으로써 인공 신경망을 압축할 수 있다.
단계(310)에서, 압축 장치는 미리 트레이닝된(Pre-training) 인공 신경망에 대응하는 가중치들을 획득할 수 있다. 이때, 인공 신경망은 목적하는 작업에 대한 트레이닝을 통해 추론 모델을 구축할 수 있다. 또한, 인공 신경망은 구축된 추론 모델을 바탕으로 외부 입력 값에 대한 추론 결과를 출력할 수 있다. 일 실시예에 따른 인공 신경망은 예를 들어, 스마트폰을 위한 안면 인식 모듈이나 소프트웨어, 사물 인식, 음성 인식, 이미지 분류 등과 같은 인식/분류 동작, 의료 및 진단 기기, 무인 시스템 등에 적용될 수 있으며, 영상 데이터들을 처리하여 유의미한 정보들을 추출하는 전용 처리 장치로서도 구현될 수 있다.
단계(320)에서, 압축 장치는 단계(310)에서 수신한 가중치들을 기초로 데이터를 생성한다. 이때, 데이터는 예를 들어, 프루닝으로 인한 인공 신경망의 행동 변화를 파악하기 위한 데이터일 수 있다. 단계(320)은 프루닝이 인공 신경망의 출력값에 미치는 영향, 다시 말해, 프루닝으로 인한 인공 신경망의 행동 변화를 파악하기 위한 최적화된 데이터를 생성하는 과정에 해당할 수 있다. 단계(320)에서, 압축 장치는 인공 신경망이 특정 클래스를 예측하도록 생성한 입력 영상을 반복적으로 트레이닝 함으로써 데이터를 생성할 수 있다.
단계(330)에서, 압축 장치는 단계(320)에서 생성된 데이터를 이용하여 프루닝 임계치를 결정하고, 결정된 임계값보다 작은 가중치들을 갖는 레이어들을 프루닝할 수 있다. 단계(330)은 단계(320)에서 생성된 데이터를 통해 해당 인공 신경망을 위한 최적화된 프루닝 임계치를 결정하는 과정에 해당할 수 있다.
도 4는 일 실시예에 따른 인공 신경망을 압축하는 방법을 나타낸 흐름도이다. 도 4를 참조하면, 일 실시예에 따른 압축 장치는 단계(410) 내지 단계(440)의 과정을 통해 인공 신경망을 압축할 수 있다.
단계(410)에서, 압축 장치는 미리 트레이닝된 인공 신경망에 대응하는 가중치들(weights)을 획득한다. 이때, 인공 신경망은 복수의 레이어들(layers)을 포함한다.
단계(420)에서, 압축 장치는 단계(410)에서 획득한 가중치들을 기초로, 인공 신경망의 프루닝으로 인한 인공 신경망의 행동 변화를 파악하기 위한 데이터를 생성한다. 여기서, 인공 신경망의 행동 변화는 예를 들어, 인공 신경망에 프루닝을 적용하기 전후의 출력들이 미리 정해진 판정 기준(criterion)을 만족하는지 여부를 기초로 측정될 수 있다. 판정 기준은 예를 들어, 프루닝 된 인공 신경망이 예측한 상위 p개의 클래스들이 프루닝 전 인공 신경망이 예측한 상위 k 개의 클래스들(여기서, k, p 각각은 자연수 이며, k ≤ p 임)을 포함하는 조건을 포함할 수 있다.
단계(420)에서, 압축 장치는 단계(410)에서 획득한 가중치들을 기초로, 인공 신경망에서 예측된 클래스(class)가 복수 개의 클래스들 중 어느 하나의 목표 클래스가 될 때까지 인공 신경망이 입력 영상을 반복적으로 수정함으로써 데이터를 생성할 수 있다. 여기서, 입력 영상은 예를 들어, 랜덤 노이즈 영상(random noise image)을 포함할 수 있다. 압축 장치가 데이터를 생성하는 방법은 아래의 도 5 및 도 6을 참조하여 보다 구체적으로 설명한다.
단계(430)에서, 압축 장치는 데이터에 의해 파악되는 인공 신경망의 행동 변화를 통해 인공 신경망의 프루닝을 위한 프루닝 임계치(pruning threshold)를 결정한다. 프루닝 임계치는 예를 들어, 복수의 레이어들 별 백분위 수 기반의 프루닝 임계치를 포함할 수 있다. 압축 장치가 프루닝 임계치를 결정하는 방법은 아래의 도 7 내지 도 10을 참조하여 보다 구체적으로 설명한다.
단계(440)에서, 압축 장치는 단계(430)에서 결정한 프루닝 임계치를 기초로, 인공 신경망을 압축한다. 여기서, '압축'은 인공 신경망의 용량을 감소시키는 것을 의미한다. 압축 장치는 단계(430)에서 결정한 프루닝 임계치를 이용하여 프루닝을 수행함으로써 인공 신경망을 압축할 수 있다. 예를 들어, 프루닝 임계치가 40%로 결정된 경우, 압축 장치는 인공 신경망의 가중치들 중 하위 40%의 가중치들을 프루닝하여 인공 신경망을 압축할 수 있다. 압축 장치는 인공 신경망의 가중치들 중 프루닝 임계치에 의해 인공 신경망의 작업 정확도에 미치는 영향이 적은 가중치를 제거함으로써 인공 신경망의 용량을 감소시킬 수 있다.
실시예에 따라서, 인공 신경망의 레이어들 각각은 복수의 커널들을 포함할 수 있다. 이 경우, 압축 장치는 인공 신경망 내 레이어에 포함된 복수의 커널들(kernels) 각각에 대응하여, 해당하는 레이어의 백분위 수 기반의 프루닝 임계치에 기초하여 해당하는 커널에 크기 기반의(magnitude-based) 프루닝 임계치를 적용할 수 있다. 압축 장치가 해당하는 커널에 크기 기반의 프루닝 임계치를 적용하는 방법은 아래의 도 11을 참조하여 구체적으로 설명한다.
도 5는 일 실시예에 따라 데이터를 생성하는 방법을 나타낸 흐름도이고, 도 6은 일 실시예에 따라 데이터를 생성하는 방법을 설명하기 위한 도면이다. 도 5 및 도 6을 참조하면, 일 실시예에 따른 압축 장치가 단계(510) 내지 단계(540)을 통해 데이터를 생성하는 과정이 도시된다.
단계(510)에서, 압축 장치는 인공 신경망(610)의 입력 영상에 해당하는 랜덤 노이즈 영상(605)을 생성할 수 있다. 이때, 인공 신경망(610)은 예를 들어, 컨볼루션(Conv) 레이어, 배치 정규화(Batch Normalization; BN) 유닛, 컨볼루션(Conv) 레이어, 배치 정규화(Batch Normalization; BN) 유닛, 완전 연결(Fully Connected; FC) 레이어, 및 소프트 맥스(Softmax) 레이어를 포함할 수 있다. 소프트 맥스 레이어는 입력 영상의 클래스를 분류(classification)하는 원-핫-벡터(one-hot vector)(615)를 출력할 수 있다.
단계(520)에서, 압축 장치는 미리 트레이닝된 인공 신경망(610)에 대응하는 가중치들을 이용하여 인공 신경망(610)이 단계(510)에서 생성한 랜덤 노이즈 영상(605)에 대해 클래스를 예측한 결과(예를 들어, 클래스 901)를 획득할 수 있다. 이때, 클래스 901은 인공 신경망(610)이 예측한 최상위(Top-1) 클래스에 해당할 수 있다. 단계(520)에서, 압축 장치는 인공 신경망(610)이 추론(inference) 과정에서 목표 클래스(예를 들어, 클래스 1)를 도출할 수 있도록 랜덤 노이즈 영상(605)을 트레이닝 시킴으로써 랜덤 노이즈 영상(605)에 대해 클래스를 예측한 결과(예를 들어, 클래스 901)를 획득할 수 있다.
단계(530)에서, 압축 장치는 인공 신경망(610)이 단계(520)에서 예측한 최상위(Top-1) 클래스(예를 들어, 클래스 901(620))가 목표 클래스(class i)인 클래스 1과 동일한지를 판단할 수 있다. 예를 들어, 단계(530)에서, 예측한 최상위(Top-1) 클래스와 목표 클래스(class i)가 동일하다고 판단되면, 압축 장치는 동작을 종료할 수 있다.
이와 달리, 단계(530)에서, 인공 신경망(610)이 예측한 클래스(예를 들어, 클래스 901(620))와 목표 클래스(예를 들어, 클래스 1)가 동일하지 않다고 판단되었다고 하자. 이 경우, 단계(540)에서, 압축 장치는 목표 클래스(예를 들어, 클래스 1)에 대응하는 원소만을 활성화한 원-핫-벡터(one-hot vector)(615)와 인공 신경망(610)에서 예측된 클래스(class 901(620)) 간의 크로스-엔트로피 로스(cross-entropy loss)를 백워드 패스(Backward Pass)를 통해 역전파(backpropagation)할 수 있다. 이때, 인공 신경망(610)에 대응하는 가중치들은 크로스-엔트로피 로스의 역전파 시에 단순히 전달만 될 뿐, 변화되지 않고 고정될 수 있다. 압축 장치는 예를 들어, 원-핫-벡터(615)를 정답(Ground Truth; GT) 레이블(label)로 사용하여 크로스-엔트로피 로스를 구하고, 역전파를 통해 랜덤 노이즈 영상(605)을 트레이닝할 수 있다.
단계(540)에서 압축 장치는 크로스-엔트로피 로스의 역전파를 통해 인공 신경망(610)이 입력 영상(605)을 수정하도록 한 후, 단계(520)를 통해 다시 수정된 입력 영상의 클래스를 예측할 수 있다. 압축 장치는 인공 신경망에서 예측된 클래스(예를 들어, class 901)가 650과 같이 목표 클래스(예를 들어, class 1)가 될 때까지 크로스-엔트로피 로스의 역전파를 Step 1, Step 2, .. Step N 번 반복적으로 수행하여 입력 영상(605)을 수정함으로써 데이터를 생성할 수 있다. 이때, 크로스-엔트로피 로스의 역전파를 반복할수록 목표 클래스에 대한 신뢰도 스코어(confidence score)가 점점 높아지게 되고, 압축 장치는 인공 신경망(610)에서 예측한 최상위 클래스가 목표 클래스가 될 때까지 입력 영상(605)에 대한 트레이닝을 반복 수행할 수 있다.
일 실시예에 따른 압축 장치는 전술한 과정을 통해 클래스들 각각에 대응하는 입력 영상을 생성하여 프루닝 임계치를 결정하는 데에 이용함으로써 별도의 트레이닝 데이터 없이도 인공 신경망을 프루닝할 수 있다.
도 7은 일 실시예에 따라 프루팅 임계치를 결정하는 방법을 나타낸 흐름도이다. 도 7을 참조하면, 일 실시예에 따른 압축 장치는 단계(710) 내지 단계(720)를 통해 프루닝 임계치를 결정할 수 있다.
단계(710)에서, 압축 장치는 복수의 레이어들 별로, 인공 신경망의 프루닝 시에 인공 신경망의 행동(behavior)이 변화하는 정도를 나타내는 프루닝 민감도(pruning sensitivity)를 측정할 수 있다.
단계(710)에서, 압축 장치는 예를 들어, 복수의 레이어들 별로, 해당 레이어의 프루닝에 의해 인공 신경망의 행동이 유지될 때까지 해당 레이어에 대응하는 백분위 수 기반(percentile-based)의 프루닝 임계치를 1%씩 점진적으로 증가시킴으로써 프루닝 민감도를 측정할 수 있다. 프루닝 민감도는 예를 들어, 인공 신경망의 레이어들에 대응하는 가중치들의 분포, 및 인공 신경망의 레이어들 간의 연결(connection) 형태 중 적어도 하나에 기초하여 결정될 수 있다. 예를 들어, 글씨가 쓰여진 영상에서 대부분의 글씨는 영상의 중앙에 위치해 있고, 영상의 가장자리는 공백으로 비워져 있을 수 있다. 이 경우, 가중치들 또한 영상의 중앙에 해당하는 부분에 분포될 수 있다. 프루닝 민감도는 이와 같이 가중치들의 분포에 따라 달리 결정될 수 있다. 또한, 레이어들 간의 연결 형태는 해당 레이어와 다른 레이어들 간의 위치 관계를 포함할 수 있다.
단계(720)에서, 압축 장치는 복수의 레이어들 별로 측정된 프루닝 민감도를 기초로, 레이어들 별로 프루닝을 수행함으로써 프루닝 임계치를 결정할 수 있다. 이때, 측정된 프루닝 민감도는 레이어들마다 다를 수 있다. 예를 들어, 인공 신경망이 전술한 인공 신경망(610)과 같이 복수의 컨볼루션(Conv) 레이어들, 완전 연결(FC) 레이어, 및 소프트 맥스 레이어를 포함한다고 하자. 이 경우, 프룬닝 민감도는 컨볼루션 레이어, 완전 연결 레이어 및 소프트 맥스 레이어 각각에 대해 달리 측정될 수 있다. 일 실시예에서는 각 레이어의 프루닝 민감도를 기초로 레이어 별로 프루닝을 수행하기 때문에 인공 신경망의 압축에 따른 정확도 감소를 최소화할 수 있다.
프루닝 임계치는 인공 신경망의 가중치를 축소 또는 제거하는 기준이 된느 값으로서, 예를 들어, 백분위 수 기반의 임계값일 수 있다. 프루닝 임계치는 예를 들어, 최소 0, 최대 1로 고정될 수 있다. 일 실시예에서는 백분위 수 기반의 프루닝 임계치를 사용함으로써 예를 들어, 필터(filer)의 분포가 상이한 경우에 프루닝으로 인해 출력 특징 맵(output feature map)의 분포가 왜곡되는 형상을 방지할 수 있다.
단계(720)에서, 압축 장치는 예를 들어, 프루닝 전 인공 신경망이 예측한 상위 k(Top-k) 개의 클래스들과 프루닝 후 인공 신경망이 예측한 상위 p(Top-p) 개의 클래스가 미리 정해진 판정 기준(예를 들어, k:p criterion)을 만족하면, 프루닝에 의한 인공 신경망의 행동 변화가 크지 않은 것으로 파악하고 반복적으로 프루닝을 수행하여 프루닝 임계값을 결정할 수 있다. 압축 장치가 레이어들 별로 프루닝을 수행함으로써 프루닝 임계치를 결정하는 방법은 아래의 도 8 및 도 10을 참조하여 보다 구체적으로 설명한다.
도 8은 일 실시예에 따라 레이어들 별로 프루닝을 수행함으로써 프루닝 임계치를 결정하는 방법을 나타낸 흐름도이다. 도 8을 참조하면, 일 실시예에 따른 압축 장치가 단계(810) 내지 단계(830)를 통해 레이어들 별로 프루닝을 수행하여 프루닝 임계치를 결정하는 과정이 도시된다.
단계(810)에서, 압축 장치는 복수의 레이어들 중 프루닝 민감도가 낮은 순으로 레이어를 선택할 수 있다. 여기서, 프루닝 민감도가 낮다는 것은 프루닝에 의한 행동 변화가 크지 않음, 다시 말해 프루닝에 강건하다는 것을 의미할 수 있다. 따라서, '프루닝 민감도가 낮다'는 것은 '프루닝에 강건(robust)하다'는 것과 동일한 의미로 이해될 수 있다.
단계(820)에서, 압축 장치는 단계(810)에서 선택된 레이어의 프루닝에 의해 인공 신경망의 행동이 유지되도록 단계(810)에서 선택된 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 결정할 수 있다. 단계(810)에서 선택된 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 결정하는 방법은 아래의 도 9를 참조할 수 있다.
단계(830)에서, 압축 장치는 복수의 레이어들 중 단계(810)에서 선택된 레이어를 제외한 나머지 레이어들 각각에 대하여, 레이어를 선택하는 과정(단계(810)) 및 백분위 수 기반의 프루닝 임계치를 결정하는 과정(단계(820))을 반복적으로 수행할 수 있다.
도 9는 일 실시예에 따라 어느 하나의 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 결정하는 방법을 나타낸 흐름도이다. 도 9를 참조하면, 일 실시예에 따른 압축 장치가 단계(910) 내지 단계(940)을 통해 인공 신경망의 어느 하나의 레이어에서 백분위 수 기반의 프루닝 임계치를 결정하는 과정이 도시된다.
단계(910)에서, 압축 장치는 전술한 과정을 통해 측정한 프루닝 민감도를 기초로, 인공 신경망의 복수의 레이어들 중 프루닝에 강건한 레이어(robust layer), 다시 말해 프루닝 민감도가 낮은 레이어를 검색할 수 있다.
단계(920)에서, 압축 장치는 단계(910)에서 검색한 레이어를 프루닝하고, 프루닝된 인공 신경망의 추론 결과에 해당하는 출력을 획득할 수 있다. 이때, 프루닝된 인공 신경망의 추론 결과는 예를 들어, 인공 신경망이 입력 영상에 대해 예측한 상위 p개의 클래스들에 해당할 수 있다.
단계(930)에서, 압축 장치는 단계(920)의 추론 결과가 k:p 판정 기준(k:p criterion)을 만족하는지를 결정할 수 있다. 여기서, k:p 판정 기준(k:p criterion)은 프루닝 시의 인공 신경망의 행동이 변화하는 정도를 파악하기 위한 기준에 해당할 수 있다. k:p 판정 기준은 예를 들어, 프루닝 전/후에 인공 신경망이 예측한 최상위 클래스가 서로 동일한 제1 조건, 및 프루닝 전 인공 신경망이 예측한 상위 k(Top-k) 개의 클래스들의 조합이 프루닝 후 인공 신경망이 예측한 상위 p(Top-p) 개의 클래스들의 조합과 일치하는 제2 조건을 포함할 수 있다. 이때, ' 프루닝 전 인공 신경망이 예측한 상위 k 개의 클래스들의 조합이 프루닝 후 인공 신경망이 예측한 상위 p 개의 클래스들의 조합과 일치한다'는 것은 프루닝 전 인공 신경망이 예측한 상위 k 개의 클래스들이 모두 프루닝 후 인공 신경망이 예측한 상위 p 개의 클래스들에 포함되는 것으로 이해될 수 있다. 여기서, k, p 각각은 자연수이며, k ≤ p 일 수 있다. 예를 들어, 단계(930)에서, 추론 결과가 k:p 판정 기준을 만족하지 않는다고 결정된 경우, 압축 장치는 동작을 종료할 수 있다.
이와 달리, 단계(930)에서, 추론 결과가 k:p 판정 기준을 만족한다고 결정되었다고 하자. 이 경우, 인공 신경망의 행동 변화가 크지 않다고 간주하여 단계(940)에서, 압축 장치는 프루닝 임계치를 예를 들어, 1% 증가시킬 수 있다. 압축 장치는 단계(940)에서 증가시킨 프루닝 임계치에 의해 다시 단계(920)의 프루닝 및 추론을 수행할 수 있다.
압축 장치는 선택된 레이어의 프루닝에 의해 인공 신경망의 행동이 유지되도록 점진적으로 해당 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 증가시키면서 프루닝을 수행함으로써 해당 레이어에 대한 프루닝 임계치를 결정할 수 있다. 여기서, '프루닝에 의해 인공 신경망의 행동이 유지된다'는 것은 인공 신경망의 프루닝에 의해 인공 신경망의 추론 정확도에 변화가 발생하는 유의미한 행동 변화가 발생하지 않는다는 의미로 이해될 수 있다.
도 10은 다른 실시예에 따라 레이어들 별로 프루닝을 수행함으로써 프루닝 임계치를 결정하는 방법을 나타낸 흐름도이다. 도 10을 참조하면, 일 실시예에 따른 압축 장치가 단계(1010) 내지 단계(1060)를 통해 레이어들 별로 프루닝 임계치를 결정하는 과정이 도시된다.
단계(1010)에서, 압축 장치는 전술한 과정을 통해 측정한 프루닝 민감도를 기초로, 인공 신경망의 복수의 레이어들 중 프루닝 민감도가 가장 낮은 어느 하나의 레이어(예를 들어, 레이어 A)를 검색할 수 있다.
단계(1020)에서, 압축 장치는 단계(1010)에서 검색한 레이어(레이어 A) 또는 해당 레이어(레이어 A)의 블록을 프루닝하고, 프루닝 된 인공 신경망의 추론 결과를 획득할 수 있다. 레이어는 복수의 커널들을 포함할 수 있고, 복수의 커널들을 포함한다는 의미로 레이어는 블록이라고 지칭될 수 있다. 이때, 프루닝 된 인공 신경망의 추론 결과는 예를 들어, 인공 신경망이 입력 영상에 대해 예측한 상위 p개의 클래스들에 해당할 수 있다.
단계(1030)에서, 압축 장치는 단계(1020)의 추론 결과가 k:p 판정 기준(k:p criterion)을 만족하는지를 결정할 수 있다.
예를 들어, 단계(1030)에서 추론 결과가 k:p 판정 기준을 만족한다고 결정된 경우, 인공 신경망의 행동 변화가 크지 않다고 간주할 수 있다. 이 경우, 단계(1040)에서, 압축 장치는 해당 레이어(레이어 A)의 프루닝 임계치를 증가시킬 수 있다. 압축 장치는 단계(1040)에서 증가시킨 프루닝 임계치에 의해 다시 단계(1020)의 프루닝 및 추론을 수행할 수 있다.
이와 달리, 예를 들어, 단계(1030)에서 추론 결과가 k:p 판정 기준을 만족하지 않는다고 결정되었다고 하자. 이 경우, 단계(1050)에서, 압축 장치는 인공 신경망 내의 모든 레이어들에 대한 프루닝이 완료되었는지를 판단할 수 있다. 단계(1050)에서 모든 레이어들에 대한 프루닝이 완료되었다고 판단되면, 압축 장치는 동작을 종료할 수 있다.
이와 달리, 단계(1050)에서 모든 레이어들에 대한 프루닝이 완료되지 않았다고 판단되면, 단계(1060)에서 압축 장치는 단계(1010)에서 검색된 레이어(레이어 A)를 제외한 나머지 레이어들 중 단계(1010)에서 검색된 레이어(레이어 A) 다음으로 프루닝 민감도가 낮은 레이어를 검색할 수 있다.
압축 장치는 단계(1060)에서 검색된 레이어에 대해 단계(1020)의 프루닝 및 추론 결과 획득을 수행할 수 있다.
일 실시예에 따른 압축 장치는 단계(1040)를 통해 새롭게 정의된 임계값에 의해 인공 신경망에서 순차적으로 프루닝 민감도가 낮은 레이어 또는 블록을 선택하고, 선택된 레이어 또는 블록이 인공 신경망에서 유의미한 행동 변화를 만들지 않을 때까지 프루닝을 진행할 수 있다. 이 때, 압축 장치는 k:p 판정 기준을 사용하여, 인공 신경망의 행동 변화 정도를 파악할 수 있다. 압축 장치는 임의의 한 레이어에 대하여 프루닝이 종료하면, 남아있는 레이어들에 대해서도 전술한 과정을 반복하여 인공 신경망의 전체 레이어들을 프루닝할 수 있다.
도 11은 일 실시예에 따라 커널(kernel) 단위로 프루닝 임계치가 적용되는 과정을 설명하기 위한 도면이다. 도 11을 참조하면, 인공 신경망의 레이어(1130)가 복수의 커널들(1131, 1133)을 포함하는 경우에 프루닝 임계치를 결정하는 방법을 설명하기 위한 도면이 도시된다.
예를 들어, 6 x 6 x 3의 R(Red), G(Green), B(Blue)의 3가지 채널(channel)로 구성된 입력 영상(1110)이 있고, 커널들(1131, 1133)은 각각 3 x 3 x 3의 크기를 갖는다고 하자. 커널들(1131, 1133)은 입력 영상(1110)의 특징을 찾아내기 위한 필터(filter)들일 수 있다. 이 경우, 압축 장치는 입력 영상(1110)에 대해 커널들(1131, 1133)을 지정된 간격으로 이동시키면서 커널 별로 합성곱(convolution) 연산을 수행하여 4 x 4 x 2의 크기를 갖는 출력 특징 맵(feature map)을 생성할 수 있다.
일 실시예에 따른 인공 신경망 내 레이어(1130)가 도 11과 같이 복수의 커널들(1131, 1133)을 포함한다고 하자. 이 경우, 동일 레이어(1130)에 포함된 복수의 커널들(1131, 1133)은 백분위수 기반의 프루닝 임계치를 공유할 수 있다. 압축 장치는 레이어(1130)에 포함된 복수의 커널들(1131, 1133) 각각에 대응하여, 해당하는 레이어의 백분위 수 기반의 프루닝 임계치에 기초하여 각 커널에 크기 기반의(magnitude-based) 프루닝 임계치를 적용하여 프루닝을 수행함으로써 인공 신경망을 압축할 수 있다.
예를 들어, 인공 신경망의 레이어(1130)에 대해 30%의 프루닝 임계치가 공유된다고 하자. 이 경우, 레이어(1130)의 각 커널(1131, 1133)은 해당 커널에 포함되는 가중치들의 크기에 비례하는 서로 다른 임계치에 의해 프루닝이 수행될 수 있다. 예를 들어, 제1 커널(1131)에 포함된 가중치들 중 하위 30%의 가중치들이 프루닝되고, 제2 커널(1133)에 포함된 가중치들 중 하위 30%의 가중치들이 프루닝될 수 있다. 이 때, 제1 커널(1131)의 하위 30%에 해당하는 가중치의 임계값과 제2 커널(1133)의 하위 30%에 해당하는 가중치의 임계값은 상이할 수 있다.
도 1 내지 도 11을 통해 전술한 압축 방법은 예를 들어, 인공 신경망의 정확도를 낮추지 않으면서 양자화(quantization)를 수행하는 경우에도 실질적으로 동일하게 적용될 수 있다. 일 예로, 레이어 별 양자화의 정도는 양자화 비트수로 제어될 수 있으며, 양자화에 강건한 레이어 순으로 양자화가 적용될 수 있다. 이 경우, k:p criterion 을 이용하여 양자화에 반응하는 각 레이어의 민감도를 측정할 수 있다.
도 1 내지 도 11을 통해 전술한 실시예들은 데이터 정제(data distillation) 기법을 통하여 인공 신경망의 행동 변화를 파악하기 위한 데이터를 생성한다. 일 실시예에 따르면, 생성적 적대 신경망(Generative Adversarial Network; GAN) 또는 오토 인코더(Auto encoder)를 이용하여 인공 신경망의 행동 변화를 파악하기 위한 데이터를 생성할 수 있다.
예를 들어, 오토 인코더는 인코딩 부분과 디코딩 부분을 포함하며, 오토 인코더의 디코딩 부분은 오토 인코더의 인코딩 부분의 출력을 입력받아 인코딩 부분의 입력을 복원하는 역할을 할 수 있다. 기 학습된 인공 신경망을 오토 인코더의 인코딩 부분으로 적용한 뒤, 오토 인코더의 디코딩 부분을 학습할 수 있다. 이후, 오토 인코더의 디코딩 부분을 이용하여 인공 신경망의 행동 변화를 파악하기 위한 데이터를 생성할 수 있다.
또한, 오토 인코더의 디코딩 부분을 학습할 때, GAN 구조에 포함된 구별기(discriminator)를 더 이용할 수도 있다.
도 12는 일 실시예에 따른 인공 신경망을 압축하는 장치의 블록도이다. 도 12를 참조하면, 일 실시예에 따른 인공 신경망을 압축하는 장치(이하, '압축 장치')(1200)는 통신 인터페이스(1210), 프로세서(1230), 및 메모리(1250)를 포함한다. 통신 인터페이스(1210), 프로세서(1230), 및 메모리(1250)는 통신 버스(1205)를 통해 서로 연결될 수 있다.
통신 인터페이스(1210)는 미리 트레이닝된 인공 신경망에 대응하는 가중치들을 획득한다. 이때, 인공 신경망은 복수의 레이어들을 포함한다.
프로세서(1230)는 통신 인터페이스(1210)를 통해 획득한 가중치들을 기초로, 인공 신경망의 프루닝으로 인한 인공 신경망의 행동 변화를 파악하기 위한 데이터를 생성한다. 프로세서(1230)는 데이터에 의해 파악되는 인공 신경망의 행동 변화를 통해 인공 신경망의 프루닝을 위한 프루닝 임계치를 결정한다. 프로세서(1230)는 프루닝 임계치를 기초로, 인공 신경망을 압축한다.
또한, 프로세서(1230)는 도 1 내지 도 11을 통해 전술한 적어도 하나의 방법 또는 적어도 하나의 방법에 대응되는 알고리즘을 수행할 수 있다. 프로세서(1230)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 영상 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 지문 검출 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(Central Processing Unit; CPU), 그래픽 처리 장치(Graphic Processing Unit; GPU), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array), NPU(Neural Processing Unit) 등을 포함할 수 있다.
프로세서(1230)는 프로그램을 실행하고, 압축 장치(1200)를 제어할 수 있다. 프로세서(1230)에 의하여 실행되는 프로그램 코드는 메모리(1250)에 저장될 수 있다.
메모리(1250)는 예를 들어, 통신 인터페이스(1210)를 통해 획득된 가중치들을 저장할 수 있다. 이때, 가중치들은 복수의 레이어들을 포함하는 인공 신경망의 파라미터에 해당할 수 있다.
또한, 메모리(1250)는 프로세서(1230)에서 생성한 데이터 및/또는 프로세서(1230)에서 결정한 프루닝 임계치를 저장할 수 있다. 이 밖에도, 메모리(1250)는 프로세서(1230)에 의해 압축된 인공 신경망에 대한 정보를 저장할 수 있다. 압축된 인공 신경망에 대한 정보는 예를 들어, 프루닝된 레이어에 대한 정보를 포함할 수 있다.
이와 같이, 메모리(1250)는 상술한 프로세서(1230)의 처리 과정에서 생성되는 다양한 정보를 저장할 수 있다. 이 밖에도, 메모리(1250)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(1250)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(1250)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.
일 실시예에 따른 압축 장치(1200)는 예를 들어, 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS), HUD(Head Up Display) 장치, 3D 디지털 정보 디스플레이(Digital Information Display, DID), 내비게이션 장치, 뉴로모픽 장치(neuromorphic device), 3D 모바일 기기, 스마트 폰, 스마트 TV, 스마트 차량, IoT(Internet of Things) 디바이스, 의료 디바이스, 및 계측 디바이스 등과 같이 다양한 분야의 장치에 해당할 수 있다. 여기서, 3D 모바일 기기는 예를 들어, 증강 현실(Augmented Reality; AR), 가상 현실(Virtual Reality; VR), 및/또는 혼합 현실(Mixed Reality; MR)을 표시하기 위한 디스플레이 장치, 머리 착용 디스플레이(Head Mounted Display; HMD) 및 얼굴 착용 디스플레이(Face Mounted Display; FMD) 등을 모두 포함하는 의미로 이해될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
Claims (26)
- 미리 트레이닝된 인공 신경망- 상기 인공 신경망은 복수의 레이어들(layers)을 포함함 -에 대응하는 가중치들(weights)을 획득하는 단계;
상기 가중치들을 기초로, 상기 인공 신경망의 프루닝(pruning)으로 인한 상기 인공 신경망의 행동 변화를 파악하기 위한 데이터를 생성하는 단계;
상기 데이터에 의해 파악되는 상기 인공 신경망의 행동 변화를 통해 상기 인공 신경망의 프루닝을 위한 프루닝 임계치(pruning threshold)를 결정하는 단계; 및
상기 프루닝 임계치를 기초로, 상기 인공 신경망을 압축하는 단계
를 포함하는,
인공 신경망을 압축하는 방법. - 제1항에 있어서,
상기 프루닝 임계치를 결정하는 단계는
상기 복수의 레이어들 별로, 상기 인공 신경망의 프루닝 시에 상기 인공 신경망의 행동(behavior)이 변화하는 정도를 나타내는 프루닝 민감도(pruning sensitivity)를 측정하는 단계; 및
상기 복수의 레이어들 별로 측정된 프루닝 민감도를 기초로, 상기 레이어들 별로 프루닝을 수행함으로써 상기 프루닝 임계치를 결정하는 단계
를 포함하는,
인공 신경망을 압축하는 방법. - 제2항에 있어서,
상기 프루닝 민감도를 측정하는 단계는
상기 복수의 레이어들 별로, 해당 레이어의 프루닝에 의해 상기 인공 신경망의 행동이 유지될 때까지 점진적으로 상기 해당 레이어에 대응하는 백분위 수 기반(percentile-based)의 프루닝 임계치를 증가시킴으로써 상기 프루닝 민감도를 측정하는 단계
를 포함하는,
인공 신경망을 압축하는 방법. - 제2항에 있어서,
상기 프루닝 민감도는
상기 레이어들에 대응하는 가중치들의 분포, 및 상기 레이어들 간의 연결(connection) 형태 중 적어도 하나에 기초하여 결정되는,
인공 신경망을 압축하는 방법. - 제2항에 있어서,
상기 프루닝 임계치를 결정하는 단계는
상기 복수의 레이어들 중 상기 프루닝 민감도가 낮은 순으로 레이어를 선택하는 단계;
상기 선택된 레이어의 프루닝에 의해 상기 인공 신경망의 행동이 유지되도록 상기 선택된 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 결정하는 단계; 및
상기 복수의 레이어들 중 상기 선택된 레이어를 제외한 나머지 레이어들 각각에 대하여, 상기 레이어를 선택하는 단계 및 상기 백분위 수 기반의 프루닝 임계치를 결정하는 단계를 반복적으로 수행하는 단계
를 포함하는,
인공 신경망을 압축하는 방법. - 제1항에 있어서,
상기 인공 신경망의 행동 변화는
상기 인공 신경망에 상기 프루닝을 적용하기 전후의 출력들이 미리 정해진 판정 기준(criterion)을 만족하는지 여부를 기초로 측정되는,
인공 신경망을 압축하는 방법. - 제6항에 있어서,
상기 판정 기준은
프루닝 된 인공 신경망이 예측한 상위 p개의 클래스들이 프루닝 전 인공 신경망이 예측한 상위 k 개의 클래스들(여기서, k, p 각각은 자연수이며, k ≤ p 임)을 포함하는 조건
을 포함하는,
인공 신경망을 압축하는 방법. - 제1항에 있어서,
상기 프루닝 임계치는
상기 복수의 레이어들 별 백분위 수 기반의 프루닝 임계치를 포함하고,
상기 인공 신경망을 압축하는 단계는
상기 인공 신경망 내 레이어에 포함된 복수의 커널들(kernels) 각각에 대응하여, 해당하는 레이어의 백분위 수 기반의 프루닝 임계치에 기초하여 해당하는 커널에 크기 기반의(magnitude-based) 프루닝 임계치를 적용하는 단계
를 포함하는,
인공 신경망을 압축하는 방법. - 제1항에 있어서,
상기 데이터를 생성하는 단계는
상기 가중치들을 기초로, 상기 인공 신경망에서 예측된 클래스(class)가 복수 개의 클래스들 중 어느 하나의 목표 클래스가 될 때까지 상기 인공 신경망이 입력 영상을 반복적으로 수정함으로써 상기 데이터를 생성하는 단계
를 포함하는,
인공 신경망을 압축하는 방법. - 제9항에 있어서,
상기 입력 영상은
랜덤 노이즈 영상(random noise image)을 포함하는,
인공 신경망을 압축하는 방법. - 제9항에 있어서,
상기 데이터를 생성하는 단계는
상기 목표 클래스에 대응하는 원-핫-벡터(one-hot vector)와 상기 인공 신경망에서 예측된 클래스 간의 크로스-엔트로피 로스(cross-entropy loss)를 역전파(backpropagation)하는 단계
를 포함하는,
인공 신경망을 압축하는 방법. - 제11항에 있어서,
상기 가중치들은
상기 크로스-엔트로피 로스의 역전파 시에 변화되지 않고 고정되는,
인공 신경망을 압축하는 방법. - 하드웨어와 결합되어 제1항 내지 제12항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
- 미리 트레이닝된 인공 신경망- 상기 인공 신경망은 복수의 레이어들을 포함함 -에 대응하는 가중치들을 획득하는 통신 인터페이스; 및
상기 가중치들을 기초로, 상기 인공 신경망의 프루닝으로 인한 상기 인공 신경망의 행동 변화를 파악하기 위한 데이터를 생성하고, 상기 데이터에 의해 파악되는 상기 인공 신경망의 행동 변화를 통해 상기 인공 신경망의 프루닝을 위한 프루닝 임계치를 결정하며, 상기 프루닝 임계치를 기초로, 상기 인공 신경망을 압축하는 프로세서
를 포함하는,
인공 신경망을 압축하는 장치. - 제14항에 있어서,
상기 프로세서는
상기 복수의 레이어들 별로, 상기 인공 신경망의 프루닝 시에 상기 인공 신경망의 행동이 변화하는 정도를 나타내는 프루닝 민감도를 측정하고, 상기 복수의 레이어들 별로 측정된 프루닝 민감도를 기초로, 상기 레이어들 별로 프루닝을 수행함으로써 상기 프루닝 임계치를 결정하는,
인공 신경망을 압축하는 장치. - 제15항에 있어서,
상기 프로세서는
상기 복수의 레이어들 별로, 해당 레이어의 프루닝에 의해 상기 인공 신경망의 행동이 유지될 때까지 점진적으로 상기 해당 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 증가시킴으로써 상기 프루닝 민감도를 측정하는,
인공 신경망을 압축하는 장치. - 제15항에 있어서,
상기 프루닝 민감도는
상기 레이어들에 대응하는 가중치들의 분포, 및 상기 레이어들 간의 연결 형태 중 적어도 하나에 기초하여 결정되는,
인공 신경망을 압축하는 장치. - 제15항에 있어서,
상기 프로세서는
상기 복수의 레이어들 중 상기 프루닝 민감도가 낮은 순으로 레이어를 선택하고, 상기 선택된 레이어의 프루닝에 의해 상기 인공 신경망의 행동이 유지되도록 상기 선택된 레이어에 대응하는 백분위 수 기반의 프루닝 임계치를 결정하며, 상기 복수의 레이어들 중 상기 선택된 레이어를 제외한 나머지 레이어들 각각에 대하여, 상기 레이어를 선택하는 과정 및 상기 백분위 수 기반의 프루닝 임계치를 결정하는 과정을 반복적으로 수행하는,
인공 신경망을 압축하는 장치. - 제14항에 있어서,
상기 인공 신경망의 행동 변화는
상기 인공 신경망에 상기 프루닝을 적용하기 전후의 출력들이 미리 정해진 판정 기준을 만족하는지 여부를 기초로 측정되는,
인공 신경망을 압축하는 장치. - 제19항에 있어서,
상기 판정 기준은
프루닝 된 인공 신경망이 예측한 상위 p개의 클래스들이 프루닝 전 인공 신경망이 예측한 상위 k 개의 클래스들(여기서, k, p 각각은 자연수 이며, k ≤ p 임)을 포함하는 조건
을 포함하는,
인공 신경망을 압축하는 장치. - 제14항에 있어서,
상기 프루닝 임계치는
상기 복수의 레이어들 별 백분위 수 기반의 프루닝 임계치를 포함하고,
상기 프로세서는
상기 인공 신경망 내 레이어에 포함된 복수의 커널들 각각에 대응하여, 해당하는 레이어의 백분위 수 기반의 프루닝 임계치에 기초하여 해당하는 커널에 크기 기반의 프루닝 임계치를 적용하는,
인공 신경망을 압축하는 장치. - 제14항에 있어서,
상기 프로세서는
상기 가중치들을 기초로, 상기 인공 신경망에서 예측된 클래스가 복수 개의 클래스들 중 어느 하나의 목표 클래스가 될 때까지 상기 인공 신경망이 입력 영상을 반복적으로 수정함으로써 상기 데이터를 생성하는,
인공 신경망을 압축하는 장치. - 제22항에 있어서,
상기 입력 영상은
랜덤 노이즈 영상을 포함하는,
인공 신경망을 압축하는 장치. - 제22항에 있어서,
상기 프로세서는
상기 목표 클래스에 대응하는 원-핫-벡터와 상기 인공 신경망에서 예측된 클래스 간의 크로스-엔트로피 로스를 역전파하는,
인공 신경망을 압축하는 장치. - 제24항에 있어서,
상기 가중치들은
상기 크로스-엔트로피 로스의 역전파 시에 변화되지 않고 고정되는,
인공 신경망을 압축하는 장치. - 제14항에 있어서,
상기 인공 신경망을 압축하는 장치는
첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS), HUD(Head Up Display) 장치, 3D 디지털 정보 디스플레이(Digital Information Display, DID), 내비게이션 장치, 뉴로모픽 장치(neuromorphic device), 3D 모바일 기기, 스마트 폰, 스마트 TV, 스마트 차량, IoT(Internet of Things) 디바이스, 의료 디바이스, 및 계측 디바이스 중 적어도 하나를 포함하는,
인공 신경망을 압축하는 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200128136A KR20220045424A (ko) | 2020-10-05 | 2020-10-05 | 인공 신경망을 압축하는 방법 및 장치 |
US17/191,954 US20220108180A1 (en) | 2020-10-05 | 2021-03-04 | Method and apparatus for compressing artificial neural network |
CN202110246596.3A CN114386590A (zh) | 2020-10-05 | 2021-03-05 | 用于压缩人工神经网络的方法和设备 |
EP21193022.7A EP3979145A1 (en) | 2020-10-05 | 2021-08-25 | Method and apparatus for compressing artificial neural network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200128136A KR20220045424A (ko) | 2020-10-05 | 2020-10-05 | 인공 신경망을 압축하는 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220045424A true KR20220045424A (ko) | 2022-04-12 |
Family
ID=77499717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200128136A KR20220045424A (ko) | 2020-10-05 | 2020-10-05 | 인공 신경망을 압축하는 방법 및 장치 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220108180A1 (ko) |
EP (1) | EP3979145A1 (ko) |
KR (1) | KR20220045424A (ko) |
CN (1) | CN114386590A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102629142B1 (ko) * | 2023-03-09 | 2024-01-25 | 주식회사 노타 | 신경망 모델 압축 방법 및 이를 수행하는 장치 |
KR20240028055A (ko) | 2022-08-24 | 2024-03-05 | 동국대학교 산학협력단 | 사이버 공격에 강인한 인공 신경망 구조 재구성 장치 및 방법 |
KR20240057832A (ko) | 2022-10-25 | 2024-05-03 | 동국대학교 산학협력단 | 축적 컴퓨팅 시스템 및 그 동작 방법 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3991096A1 (en) * | 2019-06-26 | 2022-05-04 | HRL Laboratories, LLC | System and method fdr detecting backdoor attacks in convolutional neural networks |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10832135B2 (en) * | 2017-02-10 | 2020-11-10 | Samsung Electronics Co., Ltd. | Automatic thresholds for neural network pruning and retraining |
US20190050735A1 (en) * | 2017-08-11 | 2019-02-14 | Samsung Electronics Co., Ltd. | Methods and algorithms of reducing computation for deep neural networks via pruning |
-
2020
- 2020-10-05 KR KR1020200128136A patent/KR20220045424A/ko active Search and Examination
-
2021
- 2021-03-04 US US17/191,954 patent/US20220108180A1/en active Pending
- 2021-03-05 CN CN202110246596.3A patent/CN114386590A/zh active Pending
- 2021-08-25 EP EP21193022.7A patent/EP3979145A1/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240028055A (ko) | 2022-08-24 | 2024-03-05 | 동국대학교 산학협력단 | 사이버 공격에 강인한 인공 신경망 구조 재구성 장치 및 방법 |
KR20240057832A (ko) | 2022-10-25 | 2024-05-03 | 동국대학교 산학협력단 | 축적 컴퓨팅 시스템 및 그 동작 방법 |
KR102629142B1 (ko) * | 2023-03-09 | 2024-01-25 | 주식회사 노타 | 신경망 모델 압축 방법 및 이를 수행하는 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20220108180A1 (en) | 2022-04-07 |
CN114386590A (zh) | 2022-04-22 |
EP3979145A1 (en) | 2022-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20220045424A (ko) | 인공 신경망을 압축하는 방법 및 장치 | |
US10275719B2 (en) | Hyper-parameter selection for deep convolutional networks | |
US9786036B2 (en) | Reducing image resolution in deep convolutional networks | |
WO2019100723A1 (zh) | 训练多标签分类模型的方法和装置 | |
KR20200095335A (ko) | 고정밀도 이미지를 분석하는 딥러닝 네트워크의 학습에 이용하기 위한 트레이닝 이미지를 오토 라벨링하기 위한 방법 및 이를 이용한 오토 라벨링 장치 | |
KR20200086581A (ko) | 뉴럴 네트워크 양자화를 위한 방법 및 장치 | |
US20160328645A1 (en) | Reduced computational complexity for fixed point neural network | |
KR20180136720A (ko) | 다채널 특징맵을 이용하는 영상 처리 장치 및 방법 | |
US20200151573A1 (en) | Dynamic precision scaling at epoch granularity in neural networks | |
CN111723915B (zh) | 一种基于深度卷积神经网络的目标检测方法 | |
KR20210032140A (ko) | 뉴럴 네트워크에 대한 프루닝을 수행하는 방법 및 장치 | |
CN111488901B (zh) | 在cnn中从多个模块内的输入图像提取特征的方法及装置 | |
KR102349854B1 (ko) | 표적 추적 시스템 및 방법 | |
KR20190041921A (ko) | 액티베이션 연산과 컨벌루션 연산을 동시에 수행하기 위한 방법 및 장치 그리고 이를 위한 학습 방법 및 학습 장치 | |
KR20210071471A (ko) | 뉴럴 네트워크의 행렬 곱셈 연산을 수행하는 장치 및 방법 | |
EP4232957A1 (en) | Personalized neural network pruning | |
CN116152587A (zh) | 表情识别模型的训练方法、人脸表情识别方法及装置 | |
CN117616424A (zh) | 用于平衡权重中的稀疏性以用于加速深度神经网络的系统和方法 | |
CN114358274A (zh) | 训练用于图像识别的神经网络的方法和设备 | |
CN110245700B (zh) | 分类模型构建方法、分类模型及物体识别方法 | |
CN116912796A (zh) | 一种基于新型动态级联YOLOv8的自动驾驶目标识别方法及装置 | |
KR20210121946A (ko) | 뉴럴 네트워크 양자화를 위한 방법 및 장치 | |
CN111476362A (zh) | 确定fl值的方法及装置 | |
KR20210111677A (ko) | 뉴럴 네트워크의 클리핑 방법, 뉴럴 네트워크의 컨벌루션 계산 방법 및 그 방법을 수행하기 위한 전자 장치 | |
Zhou et al. | FENet: Fast Real-time Semantic Edge Detection Network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |