KR20200078865A - 신경망의 프루닝-재훈련 장치 및 방법 - Google Patents
신경망의 프루닝-재훈련 장치 및 방법 Download PDFInfo
- Publication number
- KR20200078865A KR20200078865A KR1020180168135A KR20180168135A KR20200078865A KR 20200078865 A KR20200078865 A KR 20200078865A KR 1020180168135 A KR1020180168135 A KR 1020180168135A KR 20180168135 A KR20180168135 A KR 20180168135A KR 20200078865 A KR20200078865 A KR 20200078865A
- Authority
- KR
- South Korea
- Prior art keywords
- neural network
- inter
- pruning
- retraining
- node weights
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 235
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000013138 pruning Methods 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims description 62
- 238000011084 recovery Methods 0.000 claims description 59
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000013527 convolutional neural network Methods 0.000 claims description 12
- 238000011069 regeneration method Methods 0.000 claims 2
- 230000003044 adaptive effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 5
- 210000002569 neuron Anatomy 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/0495—Quantised networks; Sparse networks; Compressed networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Feedback Control In General (AREA)
- Image Analysis (AREA)
Abstract
신경망의 프루닝-재훈련 방법에 관한 것이며, 신경망의 프루닝-재훈련 방법은 (a) 신경망 내 노드에 대한 프루닝을 수행하는 단계; 및 (b) 상기 프루닝된 신경망 내의 프루닝된 노드간 가중치 중 적어도 일부를 회복시키고, 상기 회복된 노드간 가중치에 대한 재훈련을 수행하는 단계를 포함할 수 있다.
Description
본원은 신경망의 프루닝-재훈련 장치 및 방법에 관한 것이다. 특히, 본원은 프루닝된 신경망을 재훈련시킴에 있어서, 신경망 전체의 재훈련을 통해 신경망 내 모든 노드간 가중치를 재훈련시키는 것이 아니라, 프루닝된 노드간 가중치 중 일부 회복시킨 노드간 가중치를 재훈련시키는 신경망의 프루닝-재훈련 장치 및 방법에 관한 것이다.
신경망(Neural Network)에서의 프루닝(Pruning)은 신경망 내 뉴런들 사이의 연결을 삭제하는 과정을 의미한다. 일반적으로 프루닝은 네트워크에서 무의미한 여분의 연결을 줄일 수 있기 때문에 많은 비용을 절감할 수 있다.
프루닝은 훈련된 신경망에서 각 뉴런들의 연결의 중요성을 판단하여 중요하지 않은 순으로 연결을 삭제한 후, 재훈련 과정을 통하여 초기 훈련된 신경망의 정확도를 복구한다. 여기서, 뉴런들의 연결을 삭제하는 기준은 그 방법에 따라 다양하며, 일반적으론 뉴런(신경)의 가중치 값을 0으로 만드는 방법을 사용한다.
도 1 및 도 2는 종래의 문헌[Han, Song, et al. "DSD: regularizing deep neural networks with dense-sparse-dense training flow." arXiv preprint arXiv:1607.04381 3.6 (ICLR 2017)]에 개시되어 있는 프루닝을 사용한 훈련 기법인 DSD(Dense-Sparse-Dense)를 설명하기 위한 도면이다. 특히 DSD 기법을 알고리즘으로 표현하면 도 2와 같을 수 있다.
도 1 및 도 2를 참조하면, 종래의 문헌에 개시되어 있는 DSD 기법은 크게 Initial Dense Phase, Sparse Phase 및 Final Dense Phase로 구분될 수 있다.
간단히 살펴보면, Initial Dense Phase는 보통의 옵티마이저(Optimizer)를 이용한 신경망 훈련 과정을 나타낸다. Sparse Phase는 임계값(Threshold)보다 작은 값의 모든 가중치를 마스킹(Masking)하여 0으로 만드는 과정을 나타낸다. Final Dense Phase는 파인튜닝(Fine Tuning)을 위한 재훈련 과정으로서 프루닝에서 떨어진 정확도를 높이기 위해 진행된다.
이러한 DSD 훈련이 적용된 신경망은, 본래의 훈련 과정과 대비하여 신경망 내 중요치 않은 연결이 삭제됨에 따라 주어진 문제에 대하여 보다 강경한 해답을 도출해 낼 수 있다. 또한, 해당 신경망이 사용 데이터셋에 대해 최적화되기 때문에 추론 정확도의 상승, 과적합 방지 등의 이점을 얻을 수 있다.
그런데, DSD 훈련에서는 신경망에 대해 프루닝을 수행한 다음, 프루닝된 신경망 전체를 다시 재훈련시킴에 따라 신경망 내 노드간 모든 가중치의 값들이 재훈련된다. 이러한 DSD 훈련이 적용된 신경망은 파라미터 볼륨(Parameter volume, 파라미터 사이즈)을 줄이는 데에 한계가 있어, 큰 메모리 공간을 필요로 하고, 추론 속도(시간)가 느리며, 높은 전력(POWER)이 요구되는 문제가 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 전력, 정확도, 속도, 메모리 공간, 파라미터 볼륨 등을 고려한 적응적(adaptive) 신경망의 사용을 가능하게 하는 신경망의 프루닝-재훈련 장치 및 방법을 제공하려는 것을 목적으로 한다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 시스템의 성능이나 요구되는 조건에 따라 신경망을 선택적으로 사용할 수 있도록 하는 신경망의 프루닝-재훈련 장치 및 방법을 제공하려는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 방법은, (a) 신경망 내 노드에 대한 프루닝을 수행하는 단계; 및 (b) 상기 프루닝된 신경망 내의 프루닝된 노드간 가중치 중 적어도 일부를 회복시키고, 상기 회복된 노드간 가중치에 대한 재훈련을 수행하는 단계를 포함할 수 있다.
또한, 상기 (b) 단계는, 상기 프루닝된 노드간 가중치 중에서 상기 회복된 적어도 일부의 노드간 가중치를 제외한 나머지 노드간 가중치 중 적어도 일부의 노드간 가중치를 추가로 회복시킬 수 있다.
또한, 상기 (b) 단계는 반복 수행될 수 있다.
또한, 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 방법은, (c) 상기 재훈련된 회복된 노드간 가중치를 고려하여 멀티 페이즈 신경망을 생성하는 단계를 더 포함할 수 있다.
또한, 상기 멀티 페이즈 신경망은, 상기 신경망 내의 프루닝된 노드간 가중치를 포함하도록 생성되는 제1 레이어 및 상기 회복된 노드간 가중치를 포함하도록 생성되는 제2 레이어를 포함할 수 있다.
또한, 상기 제2 레이어는 복수의 서브 레이어를 포함하고, 상기 복수의 서브 레이어 중 어느 하나의 서브 레이어는 상기 회복된 적어도 일부의 노드간 가중치를 포함하도록 생성되는 서브 레이어이고, 상기 복수의 서브 레이어 중 상기 어느 하나의 서브 레이어를 제외한 나머지 서브 레이어는 상기 (b) 단계가 반복 수행되는 경우, 상기 (b) 단계의 반복 수행시마다 추가로 회복된 노드간 가중치를 포함하도록 추가적으로 생성되는 서브 레이어일 수 있다.
또한, 상기 복수의 서브 레이어는 희소 행렬 형식을 적용하여 생성될 수 있다.
또한, 상기 (a) 단계에서 상기 신경망은 훈련된 합성곱 신경망(Convolution Neural Network)일 수 있다.
한편, 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치는, 신경망 내 노드에 대한 프루닝을 수행하는 프루닝부; 및 상기 프루닝된 신경망 내의 프루닝된 노드간 가중치 중 적어도 일부를 회복시키고, 상기 회복된 노드간 가중치에 대한 재훈련을 수행하는 회복 재훈련부를 포함할 수 있다.
또한, 상기 회복 재훈련부는, 상기 프루닝된 노드간 가중치 중에서 상기 회복된 적어도 일부의 노드간 가중치를 제외한 나머지 노드간 가중치 중 적어도 일부의 노드간 가중치를 추가로 회복시킬 수 있다.
또한, 상기 회복 재훈련부는, 노드간 가중치를 회복시키고 회복된 노드간 가중치를 재훈련하는 과정을 반복 수행할 수 있다.
또한, 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치는, 상기 재훈련된 회복된 노드간 가중치를 고려하여 멀티 페이즈 신경망을 생성하는 생성부를 더 포함할 수 있다.
또한, 상기 멀티 페이즈 신경망은, 상기 신경망 내의 프루닝된 노드간 가중치를 포함하도록 생성되는 제1 레이어 및 상기 회복된 노드간 가중치를 포함하도록 생성되는 제2 레이어를 포함할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 신경망의 프루닝-재훈련 장치 및 방법을 제공함으로써, 전력, 정확도, 속도, 메모리 공간, 파라미터 볼륨 등을 고려한 적응적(adaptive) 신경망의 사용을 가능하게 할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 신경망의 프루닝-재훈련 장치 및 방법을 제공함으로써, 시스템의 성능이나 요구되는 조건에 따라 신경망을 선택적으로 사용하도록 할 수 있다.
다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.
도 1 및 도 2는 종래의 문헌[Han, Song, et al. "DSD: regularizing deep neural networks with dense-sparse-dense training flow." arXiv preprint arXiv:1607.04381 3.6 (ICLR 2017)]에 개시되어 있는 프루닝을 사용한 훈련 기법인 DSD(Dense-Sparse-Dense)를 설명하기 위한 도면이다.
도 3은 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치의 개략적인 구성을 나타낸 블록도이다.
도 4는 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치에 의한 신경망의 프루닝-재훈련 과정을 설명하기 위한 도면이다.
도 5는 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치에 의해 생성되는 멀티 페이즈 신경망을 설명하기 위한 도면이다.
도 6은 희소 행렬의 유형 중 CSC(Compressed Sparse Column) 행렬의 저장 방식의 예를 나타낸 도면이다.
도 7은 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 방법에 대한 동작 흐름도이다.
도 3은 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치의 개략적인 구성을 나타낸 블록도이다.
도 4는 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치에 의한 신경망의 프루닝-재훈련 과정을 설명하기 위한 도면이다.
도 5는 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치에 의해 생성되는 멀티 페이즈 신경망을 설명하기 위한 도면이다.
도 6은 희소 행렬의 유형 중 CSC(Compressed Sparse Column) 행렬의 저장 방식의 예를 나타낸 도면이다.
도 7은 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 방법에 대한 동작 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
도 3은 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치(100)의 개략적인 구성을 나타낸 블록도이다. 도 4는 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치(100)에 의한 신경망의 프루닝-재훈련 과정을 설명하기 위한 도면이다. 도 4에 표시된 동그라미 형상은 일예로 신경망 내 노드간 가중치를 개략적으로 나타낸 것이다.
이하에서는 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치(100)를 설명의 편의상 본 장치(100)라 하기로 한다.
도 3 및 도 4를 참조하면, 본 장치(100)는 프루닝부(110), 회복 재훈련부(120) 및 생성부(130)를 포함할 수 있다.
프루닝부(110)는 신경망(10) 내 노드에 대한 프루닝(Pruning)을 수행(S2)할 수 있다. 이때, 본 장치(100)는 신경망(10) 내 노드에 대한 프루닝을 수행(S2)하기 이전에, 프루닝을 위한 신경망(10)을 준비(S1)할 수 있다.
여기서, 신경망(10)은 훈련된 신경망일 수 있다. 즉, 신경망(10)은 초기(본래, 기존) 신경망(Initial Neural Network)에 대하여 훈련(Training)이 이루어진 훈련된 신경망일 수 있다. 본원에서 고려되는 신경망(10)은 일예로 특정 이미지 데이터 집합에 대하여 훈련된 신경망 모델일 수 있다. 이에 따르면, 본원에서 신경망(10)은 훈련된 신경망 모델, 훈련된 모델(Trained Model) 등으로 달리 표현될 수 있다.
또한, 본원에서 고려되는 신경망(10)은 일예로 훈련된 합성곱 신경망(Convolution Neural Network, CNN)일 수 있다.
합성곱 신경망(CNN)은 인공신경망(딥러닝, 신경망)의 유형 중 하나로서, 주로 영상과 관련된 데이터 입력에 특화되어 분류(Classification) 및 분할(Segmentation) 처리에 뛰어난 성능을 보인다. 합성곱 신경망은 합성곱 레이어(Layer)에 포함된 필터를 입력된 영상에 적용함으로써 합성곱 연산을 통해 특징맵(feature map)을 출력시킨다. 이러한 특징맵에는 영상의 중요한 특징 정보가 압축되어 저장되기 때문에, 심층 신경망(딥 신경망)으로 합성곱 신경망을 구성할 경우 처리할 데이터가 많은 영상 및 동영상 처리에 효과적이다.
본원에서는 신경망(10)으로서 훈련된 합성곱 신경망(CNN)이 고려되는 것으로 예시하였으나, 이에만 한정되는 것은 아니고, 본원에서 고려되는 신경망(10)으로는 순환신경망(RNN, Recurrent Neural Network) 등 종래에 이미 공지되었거나 향후 개발되는 다양한 신경망(이는 훈련된 신경망, 훈련되지 않은 신경망 등을 포함함)이 적용될 수 있다.
프루닝부(110)는 단계S1에서 준비된 신경망(10)에 대하여 프루닝(Pruning)을 수행(S2, Initial Pruning)할 수 있다. 이에 따르면, 프루닝된 신경망(11)에는 프루닝의 수행에 의해 프루닝된 노드간 가중치(2) 및 프루닝되지 않은 노드간 가중치(3)가 포함될 수 있다.
프루닝부(110)가 신경망(10)에 대한 프루닝을 수행하는 경우, 신경망(10) 내 노드간 가중치(신경망 내 전체 노드간 가중치 전체, 1) 중 일부 노드간 가중치가 프루닝된 노드간 가중치(2)로서 프루닝(제거, 가지치기)될 수 있다.
프루닝부(110)는 신경망(10) 내 노드간 가중치(1) 중 미리 설정된 비율의 가중치들이 프루닝되도록, 신경망(10) 내 노드에 대한 프루닝을 수행할 수 있다.
여기서, 미리 설정된 비율은 일예로 사용자 입력에 의하여 설정될 수 있다.
미리 설정된 비율은 예시적으로 신경망(10) 내 노드간 가중치(1) 중 70 % 내지 90 % 사이의 비율 중 어느 하나의 비율일 수 있다. 다만, 이에 한정되는 것은 아니고, 다양한 비율로 설정될 수 있다.
또한, 프루닝부(110)는 신경망(10) 내 노드간 가중치(1)의 절대값을 고려하여 프루닝을 수행할 수 있다. 구체적인 일예로, 프루닝부(110)는 신경망(10) 내 노드간 가중치(1)의 절대값을 순차적으로 나열(예를 들어, 오름차순 나열 또는 내림차순 나열)했을 때, 상위(또는 하위)에서 미리 설정된 비율에 속하는 노드간 가중치들을 프루닝할 수 있다.
본원에서는 예시적으로 프루닝부(110)가 미리 설정된 비율(%)로 프루닝을 수행하는 것으로 예시하였으나, 이에 한정되는 것은 아니고, 미리 설정된 수(개수) 등의 단위로 프루닝을 수행할 수 있다.
프루닝부(110)에 의해 신경망(10) 내 노드에 대한 프루닝이 수행되면, 이후 회복 재훈련부(120)는 프루닝된 신경망(11) 내의 프루닝된 노드간 가중치(2) 중 적어도 일부(즉, 적어도 일부의 노드간 가중치)를 회복시키고, 회복된 적어도 일부의 노드간 가중치에 대한 재훈련을 수행(Weight restoring & Retraining)할 수 있다.
이때, 회복 재훈련부(120)는 앞서 프루닝 방법과 마찬가지로, 미리 설정된 비율, 가중치의 절대값 등을 고려하여 프루닝된 노드간 가중치(2) 중 적어도 일부(즉, 적어도 일부의 노드간 가중치)를 회복시킬 수 있다. 예시적으로, 회복 재훈련부(120)는 프루닝된 노드간 가중치(2)의 절대값을 순차적으로 나열(예를 들어, 오름차순 나열 또는 내림차순 나열)했을 때, 상위(또는 하위)에서 미리 설정된 비율에 속하는 노드간 가중치들을 적어도 일부의 노드간 가중치로서 회복시킬 수 있다.
또한, 회복 재훈련부(120)는 프루닝된 노드간 가중치 중에서 회복된 적어도 일부의 노드간 가중치를 제외한 나머지 노드간 가중치 중 적어도 일부의 노드간 가중치를 추가로 회복시킬 수 있다.
회복 재훈련부(120)는 이러한 노드간 가중치를 회복시키고 회복된 노드간 가중치를 재훈련하는 과정을 반복 수행할 수 있다. 구체적인 설명은 다음과 같다.
프루닝부(110)에 의해 신경망(10) 내 노드에 대한 프루닝이 수행(S2)된 이후, 회복 재훈련부(120)는 프루닝된 신경망(11) 내의 프루닝된 노드간 가중치(2) 중 적어도 일부(즉, 적어도 일부의 노드간 가중치, 4)를 회복시키고, 회복된 적어도 일부의 노드간 가중치(4)에 대한 재훈련을 수행(S3)할 수 있다. 이때, 본원에서 프루닝된 노드 간 가중치 중 적어도 일부의 노드간 가중치를 회복시키고, 회복된 적어도 일부의 노드간 가중치를 재훈련시키는 과정은 회복 재훈련 과정이라 지칭될 수 있다. 이에 따르면, 단계S3은 1차 회복 재훈련 과정이라 달리 지칭될 수 있다.
이후, 1차 회복 재훈련 과정(S3)이 수행된 다음 회복 재훈련 과정을 다시 반복 수행(즉, S3 과정을 기준으로 회복 재훈련 과정을 1회 반복 수행)하는 경우, 프루닝부(110)는 프루닝된 노드간 가중치(2) 중에서 1차 회복 재훈련 과정에서 회복된 적어도 일부의 노드간 가중치(4)를 제외한 나머지 노드간 가중치(2') 중 적어도 일부의 노드간 가중치(5)를 추가로 회복시킬 수 있으며, 이후 추가로 회복된 적어도 일부의 노드간 가중치(5)에 대한 재훈련을 수행(S4)할 수 있다. 이러한 단계S4는 1차 회복 재훈련 과정(S3)의 1회 반복 수행(S4) 결과로서 2차 회복 재훈련 과정(S4)이라 달리 지칭될 수 있다.
이후, 2차 회복 재훈련 과정(S4)이 수행된 다음 회복 재훈련 과정을 다시 반복 수행(즉, S3 과정을 기준으로 회복 재훈련 과정을 2회 반복 수행)하는 경우, 프루닝부(110)는 프루닝된 노드간 가중치(2) 중에서 1차 회복 재훈련 과정에서 회복된 적어도 일부의 노드간 가중치(4)와 2차 회복 재훈련 과정에서 회복된 적어도 일부의 노드간 가중치(5)를 제외한 나머지 노드간 가중치(2'') 중 적어도 일부의 노드간 가중치(6)를 추가로 회복시킬 수 있으며, 이후 추가로 회복된 적어도 일부의 노드간 가중치(6)에 대한 재훈련을 수행(S5)할 수 있다. 이러한 단계S5는 1차 회복 재훈련 과정(S2)의 2회 반복 수행(S4, S5) 결과로서 3차 회복 재훈련 과정(S5)이라 달리 지칭될 수 있다.
이처럼, 프루닝부(110)는 회복 재훈련 과정을 반복 수행할 수 있다. 이때, 프루닝부(110)는 회복 재훈련 과정의 반복 수행시마다, 프루닝된 노드간 가중치(2) 중 이전 회복 재훈련 과정(적어도 1회 이상의 이전 회복 재훈련 과정)에서 회복된 노드간 가중치를 제외한 나머지 노드간 가중치 중 적어도 일부의 노드간 가중치를 추가로 회복시키고, 추가로 회복된 노드간 가중치에 대해서만 재훈련을 수행할 수 있다.
이에 따르면, 종래 DSD 훈련에서는 신경망에 대해 프루닝을 수행한 다음, 프루닝된 신경망 전체를 다시 재훈련시킴에 따라 신경망 내 노드간 모든 가중치의 값들이 재훈련되었다. 다시 말해, 종래 DSD 훈련은 가중치 회복(Restoring) 후 재훈련을 수행하는 과정에서, 신경망 내 모든 노드간 가중치에 대하여 재훈련을 수행하였다. 이에 반해, 본 장치(100)의 회복 재훈련부(120)에 의하면, 본원은 프루닝-회복(Pruning-Restoring) 훈련의 수행시(달리 말해, 프루닝된 신경망을 재훈련시킴에 있어서), 종래와 같이 프루닝된 신경망 내 전체 노드간 가중치(즉, 노드간 모든 가중치)를 재훈련시키는 것이 아니라, 프루닝된 노드간 가중치 중 일부 회복시킨 노드간 가중치에 한하여 재훈련을 수행할 수 있다.
생성부(130)는 프루닝부(120)에 의해 재훈련된 회복된 노드간 가중치를 고려하여 멀티 페이즈 신경망(Multi-phase Network, 20)을 생성할 수 있다. 멀티 페이즈 신경망(20)에 대한 설명은 도 5를 참조하여 보다 쉽게 이해될 수 있다.
도 5는 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 장치(100)에 의해 생성되는 멀티 페이즈 신경망(20)을 설명하기 위한 도면이다.
도 5를 참조하면, 멀티 페이즈 신경망(20)은, 신경망(10) 내의 프루닝된 노드간 가중치(2)를 포함하도록 생성되는 제1 레이어(21) 및 회복 재훈련부(120)에 의한 회복 재훈련 과정에 의하여 회복된 노드간 가중치를 포함하도록 생성되는 제2 레이어(22)를 포함할 수 있다.
여기서, 제1 레이어(21)는 신경망(10) 내의 프루닝된 노드간 가중치(2)를 0으로 하여 포함하도록 생성되는 레이어를 의미할 수 있다. 달리 표현하여, 제1 레이어(21)는 신경망(10)에 대한 프루닝이 수행(S2)되었을 때, 프루닝된 신경망(11) 내 프루닝되지 않은 노드간 가중치(3)를 포함하도록 생성되는 레이어를 의미할 수 있다. 즉, 제1 레이어(21)는 예시적으로 도 4에서 단계S2에 대응하여, 프루닝되지 않은 노드간 가중치(3)를 포함하도록 생성되는 레이어를 의미할 수 있다.
제2 레이어(22)는 복수의 서브 레이어(22a, 22b, 22c, …)를 포함할 수 있다.
복수의 서브 레이어(22a, 22b, 22c, …) 중 어느 하나의 서브 레이어(22a)는 회복 재훈련부(120)에 의한 1차 회복 재훈련 과정(즉, 단계S3)에서 재훈련된 회복된 적어도 일부의 노드간 가중치(4)를 포함하도록 생성되는 레이어(서브 레이어)일 수 있다.
여기서, 복수의 서브 레이어(22a, 22b, 22c, …) 중 어느 하나의 서브 레이어(22a)는 제1 서브 레이어(22a)라 달리 표현될 수 있다. 상기 어느 하나의 서브 레이어(22a)는 예시적으로 도 4에서 단계S3에 대응하여, 1차 회복 재훈련 과정에서 재훈련된 회복된 적어도 일부의 노드간 가중치(4)를 포함하도록 생성되는 레이어(서브 레이어)를 의미할 수 있다.
또한, 복수의 서브 레이어(22a, 22b, 22c, …) 중 상기 어느 하나의 서브 레이어(22a)를 제외한 나머지 서브 레이어(22b, 22c, …)는 회복 재훈련부(120)에 의한 회복 재훈련 과정이 반복 수행되는 경우, 회복 재훈련 과정의 반복 수행시마다 추가로 회복된 노드간 가중치를 포함하도록 추가적으로 생성되는 서브 레이어일 수 있다.
나머지 서브 레이어(22b, 22c, …)에는 제2 서브 레이어(22b), 제3 서브 레이어(22c) 등이 포함될 수 있다.
이때, 제2 서브 레이어(22b)는 예시적으로 도 4에서 단계S4에 대응하여, 2차 회복 재훈련 과정에서(즉, 1차 회복 재훈련 과정의 1회 반복 수행시) 재훈련된 회복된 적어도 일부의 노드간 가중치(5)를 포함하도록 생성되는 레이어(서브 레이어)를 의미할 수 있다. 또한, 제3 서브 레이어(22c)는 예시적으로 도 4에서 단계S5에 대응하여, 3차 회복 재훈련 과정에서(즉, 1차 회복 재훈련 과정의 2회 반복 수행시) 재훈련된 회복된 적어도 일부의 노드간 가중치(6)를 포함하도록 생성되는 레이어(서브 레이어)를 의미할 수 있다.
이처럼, 제2 레이어(22)에 포함된 서브 레이어는, 프루닝부(110)에 의한 회복 재훈련 과정의 반복 수행시마다, 각각 반복 수행시에 추가로 회복되어 재훈련된 노드간 가중치(달리 말해, 재훈련된 추가로 회복된 노드간 가중치)를 포함하도록 추가적으로 생성될 수 있다.
달리 말해, 제2 레이어(22)에 포함되는 서브 레이어의 수는 제1 서브 레이어(22a)가 생성된 이후, 회복 재훈련 과정의 반복 수행시마다 회복 재훈련 과정의 반복 횟수에 비례하는 수로 증가할 수 있다. 즉, 제2 레이어(22)에 포함된 서브 레이어는 회복 재훈련 과정의 반복 횟수에 비례하여 추가적으로 생성될 수 있다. 달리 표현하여, 제2 레이어(22)중 제1 서브 레이어(22a)를 제외한 나머지 서브 레이어(22b, 22c, …)는 회복 재훈련 과정의 반복 횟수에 비례하는 수로 생성될 수 있다.
이때, 제2 레이어(22)에 포함된 복수의 서브 레이어(22a, 22b, 22c, …)는 희소 행렬 형식을 적용하여 생성될 수 있다.
희소 행렬(sparse matrix)은 행렬 내부의 값이 대부분 0인 행렬을 의미한다. 희소 행렬의 유형(종류)으로 예시적으로 CSR(Compressed Sparse Row), CSC(Compressed Sparse Column), COO(Coordinate list) 등이 있다. 예시적으로 도 6에는 희소 행렬의 유형 중 CSC(Compressed Sparse Column) 행렬의 저장 방식의 예가 도시되어 있다.
희소 행렬은 일종의 처리 과정을 통해 행렬 내에서 0이 아닌 값들만 저장하기 때문에, 필요한 저장 공간(요구되는 저장 공간)이 밀집 행렬(dense matrix)보다 작으며, 행렬간의 연산 속도가 빠르다는 장점이 있다.
따라서, 생성부(130)는 멀티 페이즈 신경망(20)의 생성시, 제2 레이어(22)에 포함된 복수의 서브 레이어(22a, 22b, 22c, …)의 경우 희소 행렬 형식을 적용하여 생성할 수 있다.
생성부(130)는 멀티 페이즈 신경망을 복수의 유형으로 생성할 수 있다. 여기서, 생성부(130)에 의해 생성되는 멀티 페이즈 신경망의 복수의 유형은 생성되는 멀티 페이즈 신경망에 포함된 레이어의 수에 따라 결정될 수 있다.
도 5를 참조하면 예시적으로 생성부(130)에 의해 생성되는 멀티 페이즈 신경망의 복수의 유형에는 4가지의 유형이 포함될 수 있다.
여기서, 제1 유형의 멀티 페이즈 신경망은 제1 레이어(21)를 포함하는 신경망을 의미할 수 있다. 제2 유형의 멀티 페이즈 신경망은 제1 레이어(21), 및 제2 레이어(22) 내 제1 서브 레이어(22a)를 포함하는 신경망을 의미할 수 있다. 제3 유형의 멀티 페이즈 신경망은 제1 레이어(21), 제2 레이어(22) 내 제1 서브 레이어(22a)와 제2 서브 레이어(22b)를 포함하는 신경망을 의미할 수 있다. 제4 유형의 멀티 페이즈 신경망은 제1 레이어(21), 제2 레이어(22) 내 제1 서브 레이어(22a)와 제2 서브 레이어(22b)와 제3 서브 레이어(22c)를 포함하는 신경망을 의미할 수 있다.
이처럼, 생성부(130)는 제2 레이어(22)에 포함되는 서브 레이어의 수에 따라 복수 유형의 멀티 페이즈 신경망을 생성할 수 있다.
또한, 도면에 도시하지는 않았으나, 본 장치(100)는 멀티 페이즈 신경망 제공부(미도시)를 포함할 수 있다.
멀티 페이즈 신경망 제공부(미도시)는 생성부(130)에 의해 생성된 멀티 페이즈 신경망을 제공할 수 있다. 특히, 멀티 페이즈 신경망 제공부(미도시)는 복수 유형의 멀티 페이즈 신경망 중 어느 하나를 제공할 수 있다. 이때, 멀티 페이즈 신경망 제공부(미도시)는 입력된 시스템의 성능 및/또는 요구 조건(요구되는 조건)을 고려하여, 복수 유형의 멀티 페이즈 신경망 중 어느 하나를 선택적으로 제공할 수 있다.
여기서, 시스템의 성능 및/또는 요구 조건의 유형에는 메모리(memory) 공간, 추론(inference) 속도, 정확도(accuracy) 및 전력(power, 파워)이 포함될 수 있으나, 이에 한정되는 것은 아니다. 다른 일예로, 특히 시스템의 성능의 유형에는 배터리 임베디드 시스템(Battery Embedded System) 유형, 커넥티드 임베디드 시스템(Connected Embedded System) 유형, 서버 시스템(Server System) 유형 등이 포함될 수 있다.
다시 말하자면, 생성부(130)는 멀티 페이즈 신경망(20)의 생성시, 프루닝된 신경망(11)에서 프루닝되지 않은 노드간 가중치(3)는 값을 고정시켜 두고, 이후 회복 재훈련 과정의 수행을 통해 재훈련된 회복된 노드간 가중치를 단계적으로 회복 재훈련 과정의 수행 횟수에 비례하여 증가시킴에 따라 복수 유형의 멀티 페이즈 신경망을 생성할 수 있다.
예시적으로, 신경망(10)에 대한 초기 프루닝(S2)이 수행되어 남아있는 가중치를 A라고 하고, 회복 재훈련 과정의 수행시마다 단계별로 회복되어 재훈련된 노드간 가중치가 각각 B, C, D인 것으로 가정하자. 이러한 경우, 생성부(130)는 복수 유형의 멀티 페이즈 신경망으로서 A를 포함하는 신경망, A+B를 포함하는 신경망, A+B+C를 포함하는 신경망 및 A+B+C+D를 포함하는 신경망을 생성할 수 있다.
여기서, 앞서 설명한 바에 따르면, A는 단계S2에서 프루닝된 신경망 내 남아있는 프루닝되지 않은 노드간 가중치(3)를 의미하고, B는 단계S3에서 회복되어 재훈련된 노드간 가중치(4)를 의미하고, C는 단계S4에서 회복되어 재훈련된 노드간 가중치(5)를 의미하고, D는 단계S5에서 회복되어 재훈련된 노드간 가중치(6)를 의미할 수 있다.
따라서, A를 포함하는 신경망은 제1 유형의 멀티 페이즈 신경망, A+B를 포함하는 신경망은 제2 유형의 멀티 페이즈 신경망, A+B+C를 포함하는 신경망은 제3 유형의 멀티 페이즈 신경망, A+B+C+D를 포함하는 신경망은 제4 유형의 멀티 페이즈 신경망을 의미할 수 있다.
이후, 멀티 페이즈 신경망 제공부(미도시)는 입력된 시스템의 성능 및/또는 요구 조건(요구되는 조건)에 따라 복수 유형의 멀티 페이즈 신경망(예를 들어, 제1 유형 내지 제4 유형의 멀티 페이즈 신경망) 중 어느 하나를 선택적으로 제공할 수 있다.
이때, 도 5를 참조하면, 생성된 멀티 페이즈 신경망 내 레이어의 수가 증가할수록(달리 표현하여, 생성된 멀티 페이즈 신경망 내 재훈련된 회복된 노드간 가중치의 수가 증가할수록, 혹은 제1 유형의 멀티 페이즈 신경망에서 제4 유형의 멀티 페이즈 신경망으로 갈수록), 신경망은 더욱 밀집(Dense)해질 수 있다. 이처럼, 신경망이 밀집해질수록, 요구되는 메모리(memory) 공간은 커지고(Large), 정확도(accuracy) 및 전력(power, 파워) 소모가 높아지는(high) 반면, 추론(inference) 속도(특히, 정방향 추론 속도)는 느려(Slow)질 수 있다. 즉, 성능-정확도 간에는 트레이드 오프(Trade-off) 관계를 가질 수 있으며, 본 장치(100)는 신경망(10)(예를 들어 합성곱 신경망)에서 전력, 속도, 정확도 등의 트레이드 오프(Trade-off)를 고려한 프루닝-회복 훈련(재훈련) 기술을 제공할 수 있다.
신경망(10)에서 프루닝된 노드간 가중치의 비율이 커질수록 신경망(10) 내에 0 값을 갖는 가중치의 수가 많아지게 되며, 이는 신경망(10)의 희소 비율(Sparsity rate)이 커진다고 표현할 수 있다. 따라서, 본 장치(100)에서 생성부(130)는 신경망이 밀집해질수록 추론 속도가 느려지고 요구되는 메모리 공간이 커지는 문제를 해소하기 위해, 멀티 페이즈 신경망(20)의 생성시 멀티 페이즈 신경망(20) 내 포함되는 레이어(특히, 제2 레이어에 포함된 복수의 서브 레이어)를 희소 행렬 형식을 적용하여 생성할 수 있다.
즉, 본 장치(100)에 의하여 생성된 멀티 페이즈 신경망(20)은 희소 행렬 형식이 적용됨에 따라, 종래 기술 대비 추론 속도(추론 시간, 정방향 추론 속도)가 빠르며 메모리 공간을 절약할 수(줄일 수) 있다. 달리 말해, 본 장치(100)는 생성된 멀티 페이즈 신경망(20) 내 레이어들(특히, 제2 레이어에 포함된 복수의 서브 레이어)의 필터를 희소 행렬 형식을 적용하여 구성함으로써, 멀티 페이즈 신경망(20)이 적용된 신경망의 경우 희소 행렬의 특징으로 인해 기본 행렬 형식이 적용된 신경망과 대비하여 정방향 추론 속도(시간)이 더 빠르고 메모리 공간이 절약될 수 있다. 여기서, 레이어 내 필터는 레이어 내부에 존재하는 파라미터들의 집합을 의미할 수 있다.
이러한 본 장치(100)는 신경망(10)(예를 들어 합성곱 신경망)에서 전력, 속도, 정확도 등의 트레이드 오프(Trade-off)를 고려한 프루닝-회복 훈련이 가능하다. 달리 말해, 본원은 정확도-속도/전력 트레이드 오프를 고려한 프루닝-회복 훈련 기술을 제공할 수 있다. 이러한 본원에서 제안하는 기술은 멀티 페이즈 프루닝 기술이라 달리 지칭될 수 있다.
한편, 멀티 페이즈 신경망 제공부(미도시)가 입력된 시스템의 성능 및/또는 요구 조건(요구되는 조건)에 따라 복수 유형의 멀티 페이즈 신경망(예를 들어, 제1 유형 내지 제4 유형의 멀티 페이즈 신경망) 중 어느 하나를 선택적으로 제공하는 것과 관련하여, 예를 들면 다음과 같다.
일예로, 멀티 페이즈 신경망 제공부(미도시)는 입력된 시스템의 성능 및/또는 요구 조건으로서 정확도가 일예로 0% 내지 24% 중 어느 하나인 조건이 입력된 경우, 제1 유형의 멀티 페이즈 신경망을 선택하여 제공할 수 있다. 또한, 멀티 페이즈 신경망 제공부(미도시)는 입력된 시스템의 성능 및/또는 요구 조건으로서 정확도가 일예로 25% 내지 49% 중 어느 하나인 조건이 입력된 경우, 제2 유형의 멀티 페이즈 신경망을 선택하여 제공할 수 있다. 또한, 멀티 페이즈 신경망 제공부(미도시)는 입력된 시스템의 성능 및/또는 요구 조건으로서 정확도가 일예로 50% 내지 74% 중 어느 하나인 조건이 입력된 경우, 제3 유형의 멀티 페이즈 신경망을 선택하여 제공할 수 있다. 또한, 멀티 페이즈 신경망 제공부(미도시)는 입력된 시스템의 성능 및/또는 요구 조건으로서 정확도가 일예로 75% 내지 100% 중 어느 하나인 조건이 입력된 경우, 제4 유형의 멀티 페이즈 신경망을 선택하여 제공할 수 있다.
즉, 본 장치(100)는 특정 이미지 데이터 집합에 대해 훈련된 모델에 대하여 프루닝 과정을 거친 신경망(10)에서, 프루닝된 노드간 가중치(2) 중 미리 설정된 비율의 노드간 가중치(Weight)를 회복시킬 수 있다. 이후, 본 장치(100)는 회복된 노드간 가중치에 한하여 재훈련(Retraining) 과정을 수행할 수 있다. 이러한 본 장치(100)는 회복된 노드간 가중치에 대한 재훈련을 수행함으로써, 프루닝에 의해 저하된 신경망의 정확도를 복구시킬 수 있다.
또한, 본 장치(100)에서는 신경망(10)에 대한 프루닝 수행시 프루닝되지 않은 가중치(즉, 살아있는 가중치, 3)의 값은 회복 재훈련 과정에서 변하지 않기 때문에, 회복 재훈련 과정의 수행시마다(반복 수행시마다) 각각 별개로 추가된 회복된 가중치를 추가하는 식의 신경망 구성이 가능하다.
달리 말해, 본 장치(100)에서는 프루닝 수행시 프루닝되지 않은 가중치(즉, 살아있는 가중치, 3)의 값은 고정시켜 두고, 회복 재훈련 과정의 수행시마다(반복 수행시마다) 각각 해당 과정에서 추가된 회복된 가중치(재훈련된 회복된 가중치)가 포함된 레이어를 별개로(단계적으로) 추가함으로써, 복수 유형의 신경망(멀티 페이즈 신경망)을 생성할 수 있다.
다시 말해, 본 장치(100)는 멀티 페이즈 신경망(20)을 생성하기 위해, 회복 재훈련 과정을 복수회 수행(반복 수행)하며, 각 과정에서 회복된 가중치들을 도 5에 도시된 바와 같이 여러 단계의 신경망(즉, 복수 유형의 멀티 페이즈 신경망)으로 생성할 수 있다. 이때, 각 과정에서 회복된 가중치가 추가될 때 마다(회복된 가중치를 포함하는 레이어가 추가될 때마다)(즉, 멀티 페이즈 신경망 내 레이어의 수가 증가할수록) 희소 비율이 작아지기 때문에 연산에서 큰 메모리 공간이 요구되며, 정방향 추론 속도(시간)이 오래 걸리게 된다. 따라서, 본 장치(100)는 회복 재훈련 과정의 수행시마다 각각이 회복된 가중치를 별도의 레이어로 생성하여 단계적으로 추가하여 도 5에 도시된 바와 같이 멀티 페이즈 신경망을 복수의 유형으로 구성(생성)할 수 있다. 이에 따라, 본 장치(100)는 시스템의 성능 및/또는 요구 조건(예를 들어, 메모리나 속도 등의 요구 조건)에 맞도록 본 장치(100)에 의해 생성된 복수 유형의 멀티 페이즈 신경망이 적응적(Adaptive)으로 사용되도록 제공할 수 있다.
본 장치(100)는 반복되는 회복 재훈련 과정을 통해 복수 유형의 멀티 페이즈 신경망을 구성(생성)함으로써, 이를 기반으로 전력, 정확도 등의 시스템의 성능 및/또는 요구 조건을 고려하여 그에 맞춤화된 신경망을 적응적으로 선택하여 제공할 수 있다.
이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.
도 7은 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 방법에 대한 동작 흐름도이다.
도 7에 도시된 신경망의 프루닝-재훈련 방법은 앞서 설명된 본 장치(100)에 의하여 수행될 수 있다. 따라서, 이하 생략된 내용이라고 하더라도 본 장치(100)에 대하여 설명된 내용은 신경망의 프루닝-재훈련 방법에 대한 설명에도 동일하게 적용될 수 있다.
도 7을 참조하면, 단계S110에서는 신경망 내 노드에 대한 프루닝을 수행할 수 있다.
이때, 단계S110에서 고려되는 신경망은 일예로 훈련된 합성곱 신경망(Convolution Neural Network)일 수 있다.
다음으로, 단계S120에서는 단계S110에 의해 프루닝된 신경망 내의 프루닝된 노드간 가중치 중 적어도 일부를 회복시키고, 회복된 노드간 가중치에 대한 재훈련을 수행할 수 있다.
이때, 단계S120에서는 프루닝된 노드간 가중치 중에서 회복된 적어도 일부의 노드간 가중치를 제외한 나머지 노드간 가중치 중 적어도 일부의 노드간 가중치를 추가로 회복시킬 수 있다.
이러한 단계S120은 반복 수행될 수 있다.
또한, 도면에 도시하지는 않았으나, 본원의 일 실시예에 따른 신경망의 프루닝-재훈련 방법은 단계S12 이후에, 재훈련된 회복된 노드간 가중치를 고려하여 멀티 페이즈 신경망을 생성하는 단계를 포함할 수 있다.
이때, 멀티 페이즈 신경망은, 신경망 내의 프루닝된 노드간 가중치를 포함하도록 생성되는 제1 레이어 및 단계S120에서 회복된 노드간 가중치(단계S120에서 회복되어 재훈련된 노드간 가중치, 달리 표현하여 재훈련된 회복된 노드간 가중치)를 포함하도록 생성되는 제2 레이어를 포함할 수 있다.
또한, 제2 레이어는 복수의 서브 레이어를 포함할 수 있다. 여기서, 복수의 서브 레이어 중 어느 하나의 서브 레이어는 상기 회복된 적어도 일부의 노드간 가중치를 포함하도록 생성되는 서브 레이어일 수 있다. 또한, 복수의 서브 레이어 중 상기 어느 하나의 서브 레이어를 제외한 나머지 서브 레이어는 단계S120이 반복 수행되는 경우, 단계S120의 반복 수행시마다 추가로 회복된 노드간 가중치를 포함하도록 추가적으로 생성되는 서브 레이어일 수 있다.
또한, 멀티 페이즈 신경망에 포함된 제2 레이어 내 복수의 서브 레이어는 희소 행렬 형식을 적용하여 생성될 수 있다.
상술한 설명에서, 단계 S110 및 단계S120은 본원의 구현 예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본원의 일 실시 예에 따른 신경망의 프루닝-재훈련 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 전술한 신경망의 프루닝-재훈련 방법은 기록 매체에 저장되는 컴퓨터에 의해 실행되는 컴퓨터 프로그램 또는 애플리케이션의 형태로도 구현될 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
100: 신경망의 프루닝-재훈련 장치
110: 프루닝부
120: 회복 재훈련부
130: 생성부
110: 프루닝부
120: 회복 재훈련부
130: 생성부
Claims (13)
- 신경망의 프루닝-재훈련 방법으로서,
(a) 신경망 내 노드에 대한 프루닝을 수행하는 단계; 및
(b) 상기 프루닝된 신경망 내의 프루닝된 노드간 가중치 중 적어도 일부를 회복시키고, 상기 회복된 노드간 가중치에 대한 재훈련을 수행하는 단계,
를 포함하는 신경망의 프루닝-재훈련 방법. - 제1항에 있어서,
상기 (b) 단계는,
상기 프루닝된 노드간 가중치 중에서 상기 회복된 적어도 일부의 노드간 가중치를 제외한 나머지 노드간 가중치 중 적어도 일부의 노드간 가중치를 추가로 회복시키는 것인, 신경망의 프루닝-재훈련 방법. - 제2항에 있어서,
상기 (b) 단계는 반복 수행되는 것인, 신경망의 프루닝-재훈련 방법. - 제1항에 있어서,
(c) 상기 재훈련된 회복된 노드간 가중치를 고려하여 멀티 페이즈 신경망을 생성하는 단계,
를 더 포함하는 신경망의 프루닝-재훈련 방법. - 제4항에 있어서,
상기 멀티 페이즈 신경망은, 상기 신경망 내의 프루닝된 노드간 가중치를 포함하도록 생성되는 제1 레이어 및 상기 회복된 노드간 가중치를 포함하도록 생성되는 제2 레이어를 포함하는 것인, 신경망의 프루닝-재훈련 방법. - 제5항에 있어서,
상기 제2 레이어는 복수의 서브 레이어를 포함하고,
상기 복수의 서브 레이어 중 어느 하나의 서브 레이어는 상기 회복된 적어도 일부의 노드간 가중치를 포함하도록 생성되는 서브 레이어이고,
상기 복수의 서브 레이어 중 상기 어느 하나의 서브 레이어를 제외한 나머지 서브 레이어는 상기 (b) 단계가 반복 수행되는 경우, 상기 (b) 단계의 반복 수행시마다 추가로 회복된 노드간 가중치를 포함하도록 추가적으로 생성되는 서브 레이어인 것인, 신경망의 프루닝-재훈련 방법. - 제6항에 있어서,
상기 복수의 서브 레이어는 희소 행렬 형식을 적용하여 생성된 것인, 신경망의 프루닝-재훈련 방법. - 제1항에 있어서,
상기 (a) 단계에서 상기 신경망은 훈련된 합성곱 신경망(Convolution Neural Network)인 것인, 신경망의 프루닝-재훈련 방법. - 신경망의 프루닝-재훈련 장치로서,
신경망 내 노드에 대한 프루닝을 수행하는 프루닝부; 및
상기 프루닝된 신경망 내의 프루닝된 노드간 가중치 중 적어도 일부를 회복시키고, 상기 회복된 노드간 가중치에 대한 재훈련을 수행하는 회복 재훈련부,
를 포함하는 신경망의 프루닝-재훈련 장치. - 제9항에 있어서,
상기 회복 재훈련부는,
상기 프루닝된 노드간 가중치 중에서 상기 회복된 적어도 일부의 노드간 가중치를 제외한 나머지 노드간 가중치 중 적어도 일부의 노드간 가중치를 추가로 회복시키는 것인, 신경망의 프루닝-재훈련 장치. - 제10항에 있어서,
상기 회복 재훈련부는, 노드간 가중치를 회복시키고 회복된 노드간 가중치를 재훈련하는 과정을 반복 수행하는 것인, 신경망의 프루닝-재훈련 장치. - 제9항에 있어서,
상기 재훈련된 회복된 노드간 가중치를 고려하여 멀티 페이즈 신경망을 생성하는 생성부,
를 더 포함하는 신경망의 프루닝-재훈련 장치. - 제12항에 있어서,
상기 멀티 페이즈 신경망은, 상기 신경망 내의 프루닝된 노드간 가중치를 포함하도록 생성되는 제1 레이어 및 상기 회복된 노드간 가중치를 포함하도록 생성되는 제2 레이어를 포함하는 것인, 신경망의 프루닝-재훈련 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180168135A KR102163498B1 (ko) | 2018-12-24 | 2018-12-24 | 신경망의 프루닝-재훈련 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180168135A KR102163498B1 (ko) | 2018-12-24 | 2018-12-24 | 신경망의 프루닝-재훈련 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200078865A true KR20200078865A (ko) | 2020-07-02 |
KR102163498B1 KR102163498B1 (ko) | 2020-10-08 |
Family
ID=71599517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180168135A KR102163498B1 (ko) | 2018-12-24 | 2018-12-24 | 신경망의 프루닝-재훈련 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102163498B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220131626A (ko) * | 2021-03-22 | 2022-09-29 | 한국전자통신연구원 | 비정형 커널 패턴을 이용한 확장 컨볼루션 연산 수행 방법 및 이를 이용한 확장 컨볼루션 뉴럴 네트워크 시스템 |
KR20220134097A (ko) * | 2021-03-26 | 2022-10-05 | 포항공과대학교 산학협력단 | 저전력 캡슐 네트워크 동작에 최적화된 보상 프루닝 방법 및 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180037558A (ko) * | 2016-10-04 | 2018-04-12 | 한국전자통신연구원 | 적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법 |
KR20180075368A (ko) * | 2016-12-26 | 2018-07-04 | 한국과학기술원 | 인공 신경망 모델에서 메모리 효율성 및 학습 속도 향상을 위한 드롭아웃 방법과 이를 이용한 학습 방법 |
KR20180092810A (ko) * | 2017-02-10 | 2018-08-20 | 삼성전자주식회사 | 신경망 프루닝 및 재훈련을 위한 자동 임계값들 |
KR20180134739A (ko) * | 2017-06-09 | 2018-12-19 | 한국과학기술원 | 전자 장치 및 학습 모델의 재학습 방법 |
-
2018
- 2018-12-24 KR KR1020180168135A patent/KR102163498B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180037558A (ko) * | 2016-10-04 | 2018-04-12 | 한국전자통신연구원 | 적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법 |
KR20180075368A (ko) * | 2016-12-26 | 2018-07-04 | 한국과학기술원 | 인공 신경망 모델에서 메모리 효율성 및 학습 속도 향상을 위한 드롭아웃 방법과 이를 이용한 학습 방법 |
KR20180092810A (ko) * | 2017-02-10 | 2018-08-20 | 삼성전자주식회사 | 신경망 프루닝 및 재훈련을 위한 자동 임계값들 |
KR20180134739A (ko) * | 2017-06-09 | 2018-12-19 | 한국과학기술원 | 전자 장치 및 학습 모델의 재학습 방법 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220131626A (ko) * | 2021-03-22 | 2022-09-29 | 한국전자통신연구원 | 비정형 커널 패턴을 이용한 확장 컨볼루션 연산 수행 방법 및 이를 이용한 확장 컨볼루션 뉴럴 네트워크 시스템 |
KR20220134097A (ko) * | 2021-03-26 | 2022-10-05 | 포항공과대학교 산학협력단 | 저전력 캡슐 네트워크 동작에 최적화된 보상 프루닝 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR102163498B1 (ko) | 2020-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ghiasi et al. | Nas-fpn: Learning scalable feature pyramid architecture for object detection | |
Yoon et al. | Lifelong learning with dynamically expandable networks | |
Chen et al. | ReGAN: A pipelined ReRAM-based accelerator for generative adversarial networks | |
US11151450B2 (en) | System and method for generating explainable latent features of machine learning models | |
JP6574503B2 (ja) | 機械学習方法および装置 | |
JP7246392B2 (ja) | ニューラルネットワークの関数サブネットワークの同時トレーニング | |
CN107977704B (zh) | 权重数据存储方法和基于该方法的神经网络处理器 | |
Hitawala | Comparative study on generative adversarial networks | |
US9928213B2 (en) | Event-driven spatio-temporal short-time fourier transform processing for asynchronous pulse-modulated sampled signals | |
JP5937284B2 (ja) | 階層型ニューラルネットワーク装置、判別器学習方法および判別方法 | |
WO2018121472A1 (zh) | 一种运算方法 | |
US20220383126A1 (en) | Low-Rank Adaptation of Neural Network Models | |
US11551076B2 (en) | Event-driven temporal convolution for asynchronous pulse-modulated sampled signals | |
US20180060724A1 (en) | Network Morphism | |
CN113780470A (zh) | 一种基于自适应多通道交叉图卷积网络的图分类方法 | |
Wiggers et al. | Predictive sampling with forecasting autoregressive models | |
Schrimpf et al. | A flexible approach to automated RNN architecture generation | |
KR102163498B1 (ko) | 신경망의 프루닝-재훈련 장치 및 방법 | |
CN112633482A (zh) | 一种高效宽度图卷积神经网络模型及其训练方法 | |
WO2021158830A1 (en) | Rounding mechanisms for post-training quantization | |
GB2572164A (en) | Artificial neural networks | |
JP7279225B2 (ja) | 破滅的忘却の発生を抑えつつ、転移学習を行う方法、情報処理装置及びプログラム | |
KR102669448B1 (ko) | 양자회로 에러 보정 방법 및 그 장치 | |
Sarkar et al. | An incremental pruning strategy for fast training of CNN models | |
Tao et al. | A compact neural architecture search for accelerating image classification models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right |