KR20240136759A - 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 - Google Patents
외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 Download PDFInfo
- Publication number
- KR20240136759A KR20240136759A KR1020230030124A KR20230030124A KR20240136759A KR 20240136759 A KR20240136759 A KR 20240136759A KR 1020230030124 A KR1020230030124 A KR 1020230030124A KR 20230030124 A KR20230030124 A KR 20230030124A KR 20240136759 A KR20240136759 A KR 20240136759A
- Authority
- KR
- South Korea
- Prior art keywords
- quantization
- input
- neural network
- deep learning
- network model
- Prior art date
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 406
- 238000013135 deep learning Methods 0.000 title claims abstract description 149
- 238000003062 neural network model Methods 0.000 title claims abstract description 142
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000008859 change Effects 0.000 claims abstract description 133
- 230000004913 activation Effects 0.000 claims description 114
- 238000001514 detection method Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 10
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 1
- 239000013585 weight reducing agent Substances 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/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8046—Systolic arrays
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
딥러닝 신경망 모델의 양자화 방법을 개시한다.
본 개시의 일 실시예에 의하면, 미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 입력 이미지 데이터에서 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계; 상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하는 단계; 및 상기 새로운 양자화 파라미터를 기초로 상기 미리 설정된 복수의 양자화 파라미터 중에서 적어도 하나의 양자화 파라미터를 갱신하는 단계를 포함하는 양자화 방법을 제공한다.
본 개시의 일 실시예에 의하면, 미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 입력 이미지 데이터에서 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계; 상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하는 단계; 및 상기 새로운 양자화 파라미터를 기초로 상기 미리 설정된 복수의 양자화 파라미터 중에서 적어도 하나의 양자화 파라미터를 갱신하는 단계를 포함하는 양자화 방법을 제공한다.
Description
본 개시는 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치에 관한 것으로, 자세하게는, 외부환경의 변화에 따른 딥러닝 신경망 모델의 입력 특성 변화를 검출하고, 검출된 입력 특성 변화에 적응적으로 양자화 파라미터를 갱신하는 딥러닝 신경망 모델의 양자화 방법 및 장치에 관한 것이다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다.
최근 딥러닝 신경망 모델의 성능이 고도화됨에 따라, 딥러닝 신경망 모델은 더 많은 데이터에 대한 더 방대한 양의 연산을 수행하여야 한다. 따라서, 이러한 방대한 양의 연산을 가속화하고 딥러닝 신경망 모델을 하드웨어상에 효율적으로 구현하기 위하여 AI 가속기(AI accelerator)가 이용된다.
AI 가속기는 저전력 소모 및 고효율을 위한 딥러닝 신경망 모델의 경량화(lightweight) 방법으로서, 양자화(quantization)가 적용된다. 양자화는 딥러닝 뉴럴 네트워크 내부에 존재하는 가중치(Weight) 값이나 활성화(Activation) 값들을 표현하는데 사용되는 비트 수를 줄임으로써 모델의 크기를 줄이는 것을 의미한다. 이 경우, 딥러닝 신경망 모델의 연산과정에서 더 낮은 비트의 데이터가 이용되므로 연산속도를 향상시킬 수 있으며 전력 소모를 줄일 수 있다.
딥러닝 신경망 모델의 활성화 값에 대한 양자화를 위하여 양자화 캘리브레이션(calibration)이 수행된다. 양자화 캘리브레이션은 다수의 입력 데이터에 대한 각 레이어의 활성화 값의 분포를 확인하고, 쿨백 라이블러 발산(KL divergence) 등과 같은 방법을 통해 에러를 최소화할 수 있는 최적의 양자화 범위를 설정하는 과정이다. 예를 들면, 양자화 캘리브레이션을 통하여 활성화 값의 분포를 기초로 최적의 양자화 임계값(threshold)을 결정하고, 양자화 임계값 미만인 활성화 값은 대응되는 양자화 값으로 매핑(mapping)하고 양자화 임계값 이상인 활성화 값은 모두 최대 양자화 값으로 매핑할 수 있다.
그러나, 상술한 과정을 통하여 양자화된 딥러닝 신경망 모델은 양자화 캘리브레이션에 이용된 데이터의 분포를 기준으로 양자화되므로, 실제 입력 데이터의 특성이 캘리브레이션에 이용된 데이터의 특성과 달라질수록 성능이 저하되는 문제가 있다. 예를 들면, 객체검출(object detection) 모델의 경우 낮과 밤이나 조명 등의 변화와 같은 외부환경의 변화에 따라 실제 입력되는 이미지 데이터의 특성이 크게 달라질 수 있으며 캘리브레이션에 이용된 이미지 데이터의 특성과 큰 차이를 보일 수 있다. 따라서, 입력데이터의 특성 변화가 커질수록 양자화 오차가 커지며, 이는 딥러닝 신경망 모델의 성능 하락을 야기한다.
일 실시예에 따른 딥러닝 신경망 모델의 양자화 방법 및 장치는 딥러닝 신경망 모델의 입력 이미지 데이터에 대한 활성화 맵을 기초로 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하고, 딥러닝 신경망 모델의 기존 양자화 파라미터를 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터로 갱신할 수 있다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 실시예에 의하면, 딥러닝 신경망 모델의 양자화 방법에 있어서, 미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 입력 이미지 데이터에서 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계; 상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하는 단계; 및 상기 새로운 양자화 파라미터를 기초로 상기 미리 설정된 복수의 양자화 파라미터 중에서 적어도 하나의 양자화 파라미터를 갱신하는 단계를 포함하는 양자화 방법을 제공한다.
본 개시의 다른 실시예에 따르면, 미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 입력 특성 변화 검출부; 및 상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 입력 특성 변화 검출부가 검출한 상기 외부환경 변화에 의한 입력 이미지 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하고, 상기 새로운 양자화 파라미터를 기초로 상기 미리 설정된 복수의 양자화 파라미터 중에서 적어도 하나의 양자화 파라미터를 갱신하는 양자화부를 포함하는 양자화 장치를 제공한다.
일 실시예에 의하면, 본 개시의 딥러닝 신경망 모델의 양자화 방법 및 장치는 외부환경 변화에 의한 입력 데이터 특성 변화에 따라 적응적으로 딥러닝 신경망 모델의 양자화 파라미터를 갱신함으로써, 양자화 오차로 인한 성능저하를 방지하고 딥러닝 신경망 모델의 추론 정확도를 향상시키는 효과가 있다.
도 1은 본 개시의 일 실시예에 따른 양자화 장치의 블록구성도이다.
도 2는 입력 이미지 데이터에 대한 활성화 맵에서 나타나는 외부환경 변화에 따른 입력 데이터 특성 변화를 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시예에 따른 양자화 장치가 활성화 맵에서 발생한 오버플로우를 기초로 입력 데이터 특성 변화를 검출하는 과정을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 양자화 장치가 어느 하나의 컨볼루션 레이어에 대한 바이어스 값을 변경하는 과정을 설명하기 위한 순서도이다.
도 5는 본 개시의 일 실시예에 따른 양자화 장치가 딥러닝 신경망 모델의 양자화 파라미터를 갱신하는 과정을 설명하기 위한 도면이다.
도 6은 본 개시의 다른 실시예에 따른 양자화 장치가 딥러닝 신경망 모델의 양자화 파라미터를 갱신하는 과정을 설명하기 위한 도면이다.
도 7은 본 개시의 또 다른 실시예에 따른 양자화 장치의 입력 특성 변화 검출부를 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따른 양자화 방법을 설명하기 위한 순서도이다.
도 2는 입력 이미지 데이터에 대한 활성화 맵에서 나타나는 외부환경 변화에 따른 입력 데이터 특성 변화를 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시예에 따른 양자화 장치가 활성화 맵에서 발생한 오버플로우를 기초로 입력 데이터 특성 변화를 검출하는 과정을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 양자화 장치가 어느 하나의 컨볼루션 레이어에 대한 바이어스 값을 변경하는 과정을 설명하기 위한 순서도이다.
도 5는 본 개시의 일 실시예에 따른 양자화 장치가 딥러닝 신경망 모델의 양자화 파라미터를 갱신하는 과정을 설명하기 위한 도면이다.
도 6은 본 개시의 다른 실시예에 따른 양자화 장치가 딥러닝 신경망 모델의 양자화 파라미터를 갱신하는 과정을 설명하기 위한 도면이다.
도 7은 본 개시의 또 다른 실시예에 따른 양자화 장치의 입력 특성 변화 검출부를 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따른 양자화 방법을 설명하기 위한 순서도이다.
이하, 본 개시의 일부 실시예들을 예시적인 도면을 이용해 상세하게 설명한다. 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 개시에 따른 실시예의 구성요소를 설명하는 데 있어서, 제1, 제2, i), ii), a), b) 등의 부호를 사용할 수 있다. 이러한 부호는 그 구성요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 부호에 의해 해당 구성요소의 본질 또는 차례나 순서 등이 한정되지 않는다. 명세서에서 어떤 부분이 어떤 구성요소를 '포함' 또는 '구비'한다고 할 때, 이는 명시적으로 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에 따른 장치 또는 방법의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
도 1은 본 개시의 일 실시예에 따른 양자화 장치의 블록구성도이다.
도 1을 참조하면, 일 실시예에 따른 양자화 장치(100)는 입력 특성 변화 검출부(input feature change detection unit, 110), 양자화부(quantization unit, 120) 및 메모리(memory, 130)를 전부 또는 일부 포함한다.
도 1에 도시된 모든 블록은 본 개시의 실시 예들과 관련된 구성요소들만이 도시되어 있으며, 양자화 장치(100)의 필수 구성요소는 아니다. 다른 실시예에서, 양자화 장치(100)에 포함된 일부 블록이 변경 또는 삭제되거나, 또 다른 구성요소 블록이 양자화 장치(100)에 더 포함될 수 있다.
양자화 장치(100)는 딥러닝 뉴럴 네트워크를 탐색하거나, 32 비트 부동 소수점(32 bit Floating Point) 기반의 딥러닝 뉴럴 네트워크를 미리 설정된 비트의 정수(Integer) 기반의 딥러닝 뉴럴 네트워크로 양자화하는 등의 다양한 기능들을 갖는 컴퓨팅 디바이스에 해당될 수 있다. 예를 들면, 양자화 장치(100)는 GPU, FPGA, ASIC 등과 같이 다양한 종류의 디바이스들을 이용하여 구현될 수 있다.
입력 특성 변화 검출부(110)는 미리 설정된 복수의 양자화 파라미터(quantization parameter)를 기초로 양자화된 딥러닝 신경망 모델의 입력 이미지 데이터에서 외부환경 변화에 의한 입력 데이터 특성 변화를 검출한다.
딥러닝 신경망 모델의 입력 데이터 및 각 레이어에서 출력된 활성화 값은 미리 설정된 양자화 파라미터를 기초로 양자화된다. 여기서, 미리 설정된 양자화 파라미터는 초기의 양자화 캘리브레이션 과정에서 캘리브레이션 데이터에 포함된 활성화 값의 통계적 분포를 기초로 결정된 양자화 파라미터, 스케일 인자(scale factor)인 S와 영점(zero point)의 값인 Z일 수 있다. 미리 설정된 복수의 양자화 파라미터는 딥러닝 신경망 모델에 포함된 입력 양자화 파라미터 및 복수의 레이어 각각에 대응되는 복수 개의 양자화 파라미터를 포함할 수 있다.
딥러닝 신경망 모델이 추론을 수행하는 과정에서, 외부환경 변화로 인한 입력 데이터 특성이 변화할 수 있다. 구체적으로, 딥러닝 신경망 모델은 초기 양자화 과정에서 이용된 캘리브레이션 데이터에 대한 환경과 다른 환경 하에서 추론을 수행할 수 있으며, 이 경우, 캘리브레이션 데이터의 특성과 다른 특성을 갖는 입력 데이터가 딥러닝 신경망 모델에 입력될 수 있다.
일 예로서, 딥러닝 신경망 모델이 실시간으로 입력되는 CCTV의 촬영영상을 분석하여 객체 검출과 같은 기능을 수행하는 경우, 실시간으로 입력되는 CCTV의 촬영영상의 경향성이 시간의 흐름에 따라 달라질 수 있다.
또 다른 예로서, CCTV의 설치위치 변경으로 인하여 영상의 촬영각도가 미세하게 변화하는 경우나 딥러닝 신경망 모델이 다양한 위치에 대한 분석 시스템에 배포되는 경우와 같이, 입력 데이터의 경향성이 딥러닝 신경망 모델이 추론을 수행하는 위치에 따라 달라질 수 있다.
양자화 파라미터는 캘리브레이션 데이터에 포함된 활성화 값의 통계적 분포를 기준으로 결정된 값이므로, 실제 추론과정에서 캘리브레이션 데이터와 다른 통계적 분포를 갖는 데이터가 입력되면 양자화 오차는 증가하게 된다. 따라서, 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 변화된 입력 데이터 특성에 적합한 양자화 파라미터를 다시 적용하여야 한다.
입력 특성 변화 검출부(110)는 신경망 모델에 입력되는 입력 이미지 데이터를 분석하여 외부환경 변화에 의한 입력 데이터 특성 변화를 검출한다. 여기서, 외부환경 변화는 딥러닝 신경망 모델이 추론을 수행하는 시간의 변화일 수 있으나 이에 한정되는 것은 아니다. 예를 들면, 외부환경 변화는 딥러닝 신경망 모델이 추론을 수행하는 위치의 변화일 수 있다.
입력 특성 변화 검출부(110)는 딥러닝 신경망 모델이 추론을 수행하는 동안 미리 설정된 시간주기마다 입력 이미지 데이터에 대한 분석을 수행하여, 외부환경 변화에 의한 입력 데이터 특성 변화가 발생하는지 여부를 확인할 수 있다.
일 실시예에 따르면, 입력 특성 변화 검출부(110)가 시간에 따른 날씨 변화 또는 낮과 밤의 변화와 같은, 시간에 따라 달라지는 외부환경의 변화와 그에 따른 데이터의 경향성 변화를 검출하기 위하여, 10 분 또는 6 시간 이하의 주기마다 입력 이미지 데이터에 대한 분석을 수행할 수 있다.
외부환경의 변화에 따라서, 입력 이미지 데이터의 특성이 변화할 수 있다. 예를 들면, 딥러닝 신경망 모델이 특정 장소를 실시간으로 촬영한 영상으로부터 객체검출과 같은 분석을 수행하는 모델인 경우, 낮시간에 촬영된 이미지 프레임들의 특징과 밤 시간에 촬영된 이미지 프레임들의 특징간에 차이가 발생할 수 있다. 따라서, 딥러닝 신경망 모델이 추론을 수행하는 시간에 따라서 입력 데이터 및 활성화 값의 통계적 분포가 크게 달라질 수 있다. 입력 특성 변화 검출부(110)는 딥러닝 신경망 모델에 포함된 적어도 하나의 컨볼루션 레이어(convolution layer) 중에서 어느 하나의 컨볼루션 레이어에서 출력된 활성화 맵을 기초로 입력 데이터 특성 변화를 검출한다.
구체적으로, 딥러닝 신경망 모델의 어느 하나의 컨볼루션 레이어는 복수의 출력 채널을 통하여 입력 이미지 데이터로부터 추출한 복수의 특징(feature)에 대한 활성화 맵(activation map)을 출력한다. 입력 특성 변화 검출부(110)는 컨볼루션 레이어의 복수의 출력 채널에 대응되는 복수의 활성화 맵 중에서 외부환경 변화에 따라 활성화 값이 변화되는 어느 하나의 활성화 맵을 이용하여 입력 데이터 특성의 변화가 발생하였는지 여부를 검출한다.
예를 들면, 컨볼루션 레이어의 전체 출력 채널 중에서 일부 채널은 외부환경과 무관한 이미지 특징을 추출하므로, 서로 다른 외부환경에 대한 이미지 데이터가 입력되더라도 출력된 활성화 맵 간의 차이가 적게 나타날 수 있다. 반면에, 다른 일부 채널은 외부환경에 영향을 받는 이미지 특징을 추출하므로, 서로 다른 외부환경에 대한 이미지 데이터가 입력되면 전혀 다른 형태의 활성화 맵이 출력될 수 있다. 입력 특성 변화 검출부(110)는 컨볼루션 레이어의 전체 출력 채널 중에서 외부환경에 영향을 받는 이미지 특징을 추출하는 적어도 하나 이상의 채널을 기준 출력 채널로 결정하고, 해당 채널에서 출력되는 활성화 맵을 기초로 입력 데이터 특성 변화를 검출할 수 있다. 여기서, 기준 출력 채널은 출력된 활성화 맵을 기초로 실험적으로 결정될 수 있으나 이에 한정되는 것은 아니며, 미리 학습된 별도의 기준 출력 채널 검출모델을 이용하여 결정될 수 있다.
입력 특성 변화 검출부(110)는 컨볼루션 레이어에 대한 바이어스 값을 임의로 변경하고, 변경된 바이어스 값에 의하여 활성화 맵에 오버플로우가 발생하는지 여부에 따라 입력 데이터 특성의 변화를 검출할 수 있다.
컨볼루션 레이어에서 출력된 활성화 맵에 포함된 활성화 값은 딥러닝 신경망 모델의 학습과정에서 결정된 해당 컨볼루션 레이어의 바이어스 값을 기초로 생성된 값이므로, 바이어스 값이 변경되면 컨볼루션 레이어에서 출력된 활성화 맵의 활성화 값이 모두 변경된다. 여기서, 바이어스 값을 증가시키면, 활성화 값도 바이어스 값의 변화량만큼 증가할 수 있다.
입력 특성 변화 검출부(110)는 서로 다른 외부환경 중에서 어느 하나의 외부환경에 대응되는 이미지 데이터가 입력되면 대응되는 활성화 맵에서는 오버플로우가 발생하지 않고, 다른 하나의 외부환경에 대응되는 이미지 데이터가 입력되면 대응되는 활성화 맵에서는 오버플로우가 발생하도록 컨볼루션 레이어의 바이어스 값을 기존의 값보다 더 큰 값으로 변경한다.
입력 특성 변화 검출부(110)는 변경된 바이어스 값에 대한 활성화 맵에서 오버플로우가 검출되면, 외부환경의 변화로 인하여 변화된 특성을 갖는 데이터가 입력된다고 결정할 수 있다.
본 실시예에서, 입력 특성 변화 검출부(120)는 컨볼루션 레이어에서 출력된 활성화 맵을 기초로 외부환경 변화를 검출하는 것으로 기재되어 있으나 이에 한정되는 것은 아니며, 외부환경의 변화에 따라 달라지는 이미지 특성 변화를 추출할 수 있는 다양한 데이터가 채용될 수 있다.
예를 들면, 딥러닝 신경망 모델이 컨볼루션 레이어 외에도, 입력 이미지로부터 잡음을 제거하거나 특징을 추출하기 위하여 입력 이미지에 대한 필터링을 수행하여 변환 이미지를 출력하는 하나 이상의 레이어를 포함하는 경우, 입력 특성 변화 검출부(120)는 해당 레이어에서 출력되는 변환 이미지를 기초로 입력 데이터의 특성 변화를 검출하도록 구성될 수 있다.
입력 특성 변화 검출부(110)가 입력 데이터 특성 변경을 검출하면, 양자화부(120)는 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정한다.
일 실시예에 따라, 양자화부(120)는 미리 생성된 복수의 양자화 파라미터 세트 중에서 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 어느 하나의 양자화 파라미터 세트를 기초로, 딥러닝 신경망 모델에 대한 모든 양자화 파라미터에 대응되는 새로운 양자화 파라미터를 결정할 수 있다. 여기서, 양자화 파라미터 세트는 딥러닝 신경망 모델의 모든 개별 레이어에서의 활성화 값에 대한 양자화 파라미터를 포함하는 하나의 데이터 세트를 의미한다.
구체적으로, 입력 데이터 경향성을 기준으로 미리 설정된 복수의 외부환경 각각에 대응되는 다수의 입력 이미지 데이터를 이용하여, 외부환경 각각에 대한 양자화 파라미터 세트가 미리 생성되어 양자화 장치(100)에 저장될 수 있다. 양자화부(120)는 미리 생성되어 저장된 복수의 양자화 파라미터 세트 중에서 현재 외부환경에 대응되는 하나의 양자화 파라미터 세트를 새로운 양자화 파라미터로 결정할 수 있다.
양자화부(120)는 새로운 양자화 파라미터 세트에 포함된 복수의 양자화 파라미터를 기초로, 딥러닝 신경망 모델의 대응되는 레이어에 대한 양자화 파라미터를 갱신한다.
다른 실시예에 따라, 양자화부(120)는 변경된 특성을 갖는 입력 이미지 데이터를 기초로, 딥러닝 신경망 모델의 입력 데이터에 대한 새로운 입력 양자화 파라미터를 결정할 수 있다.
구체적으로, 양자화부(120)는 미리 설정된 시구간에 대응되는 복수의 입력 이미지 데이터를 기초로 제1 입력 양자화 파라미터를 계산한다. 여기서, 미리 설정된 시구간은 입력 특성 변화 검출부(110)가 외부환경 변화에 의한 입력 데이터 특성 변화를 검출한 현재 시점으로부터, 입력 특성 변화 검출부(110)가 입력 이미지 데이터에 대한 분석을 수행하는 시간 주기만큼 과거 시점까지의 시간에 해당하는 시구간일 수 있다.
양자화부(120)는 미리 설정된 시구간에 대응되는 모든 입력 이미지 데이터에 대한 입력값들 중에서 양자화로 인한 정확도 손실을 최소화 할 수 있는 최적의 양자화 범위를 결정하고, 결정된 양자화 범위에 해당되는 입력값의 최소값 및 최대값을 기초로 스케일 인자 및 영점의 값과 같은 제1 양자화 파라미터를 계산한다.
양자화부(120)는 제1 입력 양자화 파라미터와 딥러닝 신경망 모델에 대하여 미리 설정된 복수의 양자화 파라미터에 포함된 제2 입력 양자화 파라미터를 기초로 새로운 입력 양자화 파라미터를 결정한다. 여기서, 제2 입력 양자화 파라미터는 딥러닝 신경망 모델의 입력 데이터의 양자화를 위하여 현재시점까지 적용되고 있는 기존의 입력 양자화 파라미터이다.
예를 들면, 입력 특성 변화 검출부(110)가 미리 설정된 시간 주기에 따라 제1 시점에 입력 이미지 데이터에 대한 첫 번째 분석을 수행하고, 제2 시점에 입력 이미지 데이터에 대한 두 번째 분석을 수행하여 입력 데이터 특성 변화를 검출한 경우, 양자화부(120)는 제1 시점에서 제2 시점에 해당하는 시구간 동안 입력된 복수의 이미지 데이터를 기초로 제1 입력 양자화 파라미터를 계산한다. 여기서, 제2 입력 양자화 파라미터는 제1 시점 또는 그 이전 시점에 수행된 양자화 캘리브레이션을 통하여 결정된 입력 양자화 파라미터일 수 있다. 결과적으로, 제2 입력 양자화 파라미터는 외부환경 변화 전의 입력 이미지 데이터에 대한 양자화 파라미터이고, 제1 입력 양자화 파라미터는 외부환경 변화 후의 입력 이미지 데이터에 대한 양자화 파라미터이다.
양자화부(120)는 수학식 1을 이용하여, 제1 입력 양자화 파라미터와 제2 입력 양자화 파라미터를 기초로 새로운 입력 양자화 파라미터를 계산할 수 있다.
여기서, Qin_new는 새로운 입력 양자화 파라미터이고, Qin_1은 제1 입력 양자화 파라미터, Qin_2은 제2 입력 양자화 파라미터이다. 즉, 양자화부(120)는 제1 입력 양자화 파라미터 및 제2 입력 양자화 파라미터를 가중합하여 새로운 입력 양자화 파라미터 값을 결정할 수 있다.
α 및 β는 입력 이미지 데이터의 변경된 특성에 대한 반영비율에 따라 실험적으로 결정되는 값이다. 예를 들면, α의 값이 1에 가까워질수록, 현재 입력되고 있는 이미지 데이터의 특성이 더 크게 반영된다.
양자화부(120)는 새로운 입력 양자화 파라미터를 기초로, 딥러닝 신경망 모델의 입력 양자화 파라미터를 갱신한다. 결과적으로, 딥러닝 신경망 모델은 제2 입력 양자화 파라미터를 기초로 입력 이미지 데이터를 양자화하는 대신, 새로운 입력 양자화 파라미터를 기초로 입력 이미지 데이터를 양자화하게 된다.
메모리(130)는 양자화 장치(100)에 의해 사용되거나 그에 의해 출력되는 정보를 저장하기 위한 휘발성메모리, 영구, 가상 또는 다른 종류의 메모리를 포함할 수 있다. 예를 들면, 메모리(130)는 랜덤 액세스 메모리(random access memory, RAM) 또는 다이내믹 RAM(dynamic RAM, DRAM)을 포함할 수 있다.
메모리(130)는 양자화 장치(100)의 동작을 위한 기본 프로그램, 응용 프로그램, 네트워크 설정 정보 등을 저장한다. 그리고, 메모리(130)는 입력 특성 변화 검출부(110) 또는 양자화부(120)의 요청에 따라 저장된 정보를 제공할 수 있다.
메모리(130)는 입력 특성 변화 검출부(110) 또는 양자화부(120)의 처리 또는 제어를 위한 다양한 데이터를 저장할 수 있다. 예를 들면, 메모리(130)에는 양자화를 수행하고자 하는 대상 딥러닝 신경망 모델 데이터, 딥러닝 신경망 모델 의 각 레이어에 대한 활성화 값 데이터, 입력 이미지 데이터에 대응되는 활성화 맵 데이터 및 외부환경에 따라 생성된 복수의 양자화 파라미터 세트, 외부환경 변화에 의한 입력 데이터 특성 변화를 검출할 수 있도록 미리 학습된 검출모델 등이 저장될 수 있다.
또한, 메모리(130)는 입력 특성 변화 검출부(110) 또는 양자화부(120)가 생성한 다양한 데이터를 저장할 수 있다. 예를 들면, 메모리(130)에는 양자화부(120)가 계산한 새로운 입력 양자화 파라미터 등이 저장될 수 있다.
도 2는 입력 이미지 데이터에 대한 활성화 맵에서 나타나는 외부환경 변화에 따른 입력 데이터 특성 변화를 설명하기 위한 도면이다.
도 2의 (a)는 낮 시간 이미지 데이터(200a)에 대응되는 복수의 활성화 맵을 시각화한 활성화 맵 이미지(221a, 222a, 223a)를 나타낸 것이다.
도 2의 (a)를 참조하면, 딥러닝 신경망 모델의 어느 하나의 컨볼루션 레이어(210a)에 낮 시간 이미지 데이터(200a)가 입력되면, 컨볼루션 레이어(210a)의 복수의 채널 각각에 대응되는 활성화 맵이 출력된다. 여기서, 컨볼루션 레이어(210a)는 딥러닝 신경망 모델의 첫 번째 컨볼루션 레이어일 수 있다. 여기서, 3 개의 활성화 맵이 예시되어 있으나, 일반적으로 더 많은 활성화 맵이 출력될 수 있다.
컨볼루션 레이어(210a)는 낮 시간 이미지 데이터(200a)로부터 다양한 특성을 추출하여 활성화 맵을 출력한다. 컨볼루션 레이어(210a)의 제1 채널에는 제1 활성화 맵 이미지(221a), 제2 채널에는 제2 활성화 맵 이미지(222a) 및 제3 채널에는 제3 활성화 맵 이미지(223a)가 각각 출력된다.
도 2의 (b)는 밤 시간 이미지 데이터(200b)에 대응되는 복수의 활성화 맵을 시각화한 활성화 맵 이미지(221b, 222b, 223b)를 나타낸 것이다.
도 2의 (b)를 참조하면, 딥러닝 신경망 모델의 컨볼루션 레이어(210b)에 밤 시간 이미지 데이터(200b)가 입력되면, 컨볼루션 레이어(210b)는 밤 시간 이미지 데이터(200b)로부터 다양한 특성을 추출하여 활성화 맵을 출력한다. 컨볼루션 레이어(210b)의 제1 채널에는 제1 활성화 맵 이미지(221b), 제2 채널에는 제2 활성화 맵 이미지(222b) 및 제3 채널에는 제3 활성화 맵 이미지(223b)가 각각 출력된다.
도 2의 (a) 및 (b)를 참조하면, 낮과 밤의 서로 다른 외부환경에 대한 활성화 맵 중에서 제3 채널에서 출력된 활성화 맵의 차이가 다른 채널에 비하여 상대적으로 크게 나타난다. 구체적으로, 낮 시간 환경에 대응되는 제3 활성화 맵 이미지(223a)의 픽셀값은 상당 부분 최대값 또는 최대값에 가까운 값으로 나타난다. 반면에, 밤 시간 환경에 대응되는 제3 활성화 맵 이미지(223b)의 픽셀값은 상대적으로 낮은 값의 분포를 나타낸다.
본 개시의 양자화 장치는 제3 채널에서 출력되는 낮 시간 환경에 대응되는 제3 활성화 맵 이미지(223a)의 픽셀값과 밤 시간 환경에 대응되는 제3 활성화 맵 이미지(221b)의 픽셀값의 분포 차이를 기초로 외부환경의 변화를 감지한다. 예를 들면, 양자화 장치는 제3 채널에서 출력된 활성화 맵 이미지에서 미리 설정된 임계값을 초과하는 픽셀의 개수를 기초로 입력 이미지 데이터가 낮 시간에 대한 이미지인지 밤 시간에 대한 이미지인지 여부를 결정할 수 있다.
양자화 장치는 외부환경 변화에 따라 각기 다른 활성화 맵 이미지를 출력하는 복수의 채널 중에서 활성화 맵 이미지의 차이가 가장 큰 하나의 채널을 결정하고, 해당 채널에서의 활성화 맵 이미지의 픽셀값을 기초로 외부환경의 변화를 감지하도록 구성될 수 있으나 이에 한정되는 것은 아니다. 예를 들면, 양자화 장치는 입력 이미지에 대한 하나 이상의 활성화 맵이 입력되면, 해당 입력 이미지에 관한 외부환경을 예측할 수 있도록 학습된 별도의 예측 모델을 이용하여 외부환경의 변화를 감지하도록 구성될 수도 있다.
도 3은 본 개시의 일 실시예에 따른 양자화 장치가 활성화 맵에서 발생한 오버플로우를 기초로 입력 데이터 특성 변화를 검출하는 과정을 설명하기 위한 도면이다.
도 3을 참조하면, 밤 시간에 대한 활성화 맵 이미지(310)의 픽셀값들은 컨볼루션 레이어의 제1 바이어스(B1)값과 유사한 값을 갖는다. 여기서, 제1 바이어스(B1)값은 딥러닝 신경망 모델의 학습과정에서 결정된 컨볼루션 레이어에 대한 바이어스 값이다. 밤 시간에 대한 활성화 맵 이미지(310)의 픽셀값들은 밤 시간의 입력 이미지 픽셀값에 컨볼루션 레이어의 가중치를 곱하고, 제1 바이어스(B1)값을 합산한 값을 기초로 결정된 값일 수 있다.
반면에, 낮 시간에 대응되는 활성화 맵 이미지(320)의 픽셀값들은 대부분 밤 시간에 대한 활성화 맵 이미지(310)의 픽셀값보다 더 큰 값의 분포로 나타난다. 시간에 따른 입력 이미지 데이터의 밝기 특성으로 인하여 밤 시간보다 낮 시간의 입력 이미지 픽셀값이 더 높은 밝기 값을 가지므로, 낮 시간에 대응되는 활성화 맵 이미지(320)의 픽셀값의 분포 또한 더 큰 값의 분포를 갖는다.
시스템의 연산과정에서 연산 결과값이 허용된 값의 범위를 벗어나 실제값과 전혀 다른 값으로 저장되는 오버플로우가 발생하면, 시스템에서의 예기치 않은 문제가 발생할 수 있다. 따라서, 대부분의 시스템 연산과정에서는 오버플로우 발생 여부에 대한 검사를 시행하고 연산된 결과값이 허용된 값보다 더 큰 값을 갖게 되면 오버플로우 에러가 발생하였다는 메시지를 출력하게 된다.
컨볼루션 레이어의 제1 바이어스(B1)를 더 큰 값인 제2 바이어스(B2)로 변경하면 컨볼루션 레이어에서의 연산과정에서 더 큰 값의 바이어스가 더해지는 결과, 활성화 맵 이미지(310)의 픽셀값 분포가 더 큰 값의 분포를 갖게 된다. 여기서, 낮 시간에 대한 활성화 맵 이미지(320)의 픽셀값들은 밤 시간에 대한 활성화 맵 이미지(310)의 픽셀값들보다 대부분 더 큰 값을 가지므로, 미리 설정된 오버플로우 임계값(OF)보다 더 큰 값으로 나타날 수 있다.
구체적으로, 바이어스 값이 제1 바이어스(B1)에서 제2 바이어스(B2)로 변경되면, 밤 시간에 대한 활성화 맵 이미지(310)의 픽셀값 분포(315)는 바이어스 변경 전보다 더 큰 값을 가지면서도 오버플로우 임계값(OF)보다 낮은 범위에서 형성된다. 반면에 낮 시간에 대한 활성화 맵 이미지(320)의 픽셀값 분포(325)는 바이어스 변경 전보다 더 큰 값을 갖게 된 결과 일부 값들이 오버플로우 임계값(OF)보다 높은 값으로 나타난다. 결과적으로, 변경된 제2 바이어스(B2) 조건 하에서, 낮 시간에 대한 활성화 맵 이미지(320)에만 오버플로우가 발생할 수 있다.
양자화 장치는 컨볼루션 레이어의 바이어스 값을 인위적으로 변경하고, 오버플로우가 발생하는지 여부에 따라 입력 데이터의 특성 변화를 인식할 수 있다. 여기서, 양자화 장치는 변경된 바이어스 값에 따라 오버플로우가 발생하는지 여부에 따라 서로 다른 두 외부환경을 식별하도록 구성되지만 이에 한정되는 것은 아니다. 예를 들면, 미리 설정된 복수의 활성화 맵 중에서 오버플로우 에러가 발생한 활성화 맵의 개수나 조합에 따라 세 가지 이상의 외부환경을 식별할 수 있도록 구성될 수도 있다.
도 4는 본 개시의 일 실시예에 따른 양자화 장치가 어느 하나의 컨볼루션 레이어에 대한 바이어스 값을 변경하는 과정을 설명하기 위한 순서도이다.
도 4를 참조하면, 양자화 장치는 딥러닝 신경망 모델의 기준 컨볼루션 레이어의 바이어스를 변경한다(S410). 여기서, 기준 컨볼루션 레이어는 딥러닝 신경망 모델에 포함된 복수의 컨볼루션 레이어 중에서 첫 번째 컨볼루션 레이어일 수 있다.
양자화 장치는 딥러닝 신경망 모델의 학습 과정에서 결정된 기준 컨볼루션 레이어의 바이어스 값을 임의의 더 큰 값으로 변경한다. 여기서, 변경된 바이어스 값은 딥러닝 신경망 모델의 파라미터 또는 양자화 장치의 하드웨어 사양을 기초로 결정될 수 있으며, 해당 컨볼루션 레이어의 활성화 값이 서로 다른 복수의 외부환경 중에서 제1 외부환경에서는 오버플로우가 발생하지 않으나, 제2 외부환경에서는 오버플로우가 발생하도록 설정된 값일 수 있다.
양자화 장치는 기준 컨볼루션 레이어의 출력에서 오버플로우가 발생하는지 여부를 확인한다(S420). 기준 컨볼루션 레이어에서 출력된 활성화 맵에서 오버플로우 에러가 발생하지 않으면 입력 이미지 데이터에 대한 유의미한 특성 변화가 없는 것이므로, 양자화 장치는 외부환경의 변화가 없다고 결정하고, 임의로 변경한 기준 컨볼루션 레이어에 대한 바이어스 값을 변경 전의 바이어스 값으로 회복한다(S440).
기준 컨볼루션 레이어에서 출력된 활성화 맵에서 오버플로우 에러가 발생하면 입력 이미지 데이터에 대한 특성이 유의미하게 변화한 것이므로, 양자화 장치는 외부환경의 변화가 발생하였다고 결정한다.
외부환경의 변화로 인하여, 딥러닝 신경망 모델에 현재 입력되는 이미지의 특성과 기존 양자화 파라미터를 결정하는 과정에서 이용되었던 캘리브레이션 이미지의 특성간에 차이가 발생할 수 있다. 기존 양자화 파라미터를 이용하여 변경된 특성의 입력 이미지에 대한 연산을 수행하면 양자화 오차가 증가하게 된다.
양자화 장치는 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 새로운 양자화 파라미터를 결정한다. 양자화 장치는 외부환경 변화에 따른 변화된 특성의 입력 이미지 데이터를 캘리브레이션 데이터로 이용하여 딥러닝 신경망 모델에 대한 하나 이상의 새로운 양자화 파라미터를 결정할 수 있다. 여기서, 새로운 양자화 파라미터는 현재 외부환경에 대응되는 하나의 양자화 파라미터 세트에 포함된 복수의 양자화 파라미터이거나, 새로운 입력 이미지 데이터를 양자화하는데 이용되는 입력 양자화 파라미터일 수 있다.
양자화 장치는 딥러닝 신경망 모델의 양자화 파라미터를 새로운 양자화 파라미터로 갱신한다(S430). 양자화 파라미터가 갱신되면, 양자화 장치는 딥러닝 신경망 모델이 정상적으로 동작할 수 있도록 임의로 변경되었던 기준 컨볼루션 레이어의 바이어스를 변경 전의 값으로 회복한다(S440).
도 5는 본 개시의 일 실시예에 따른 양자화 장치가 딥러닝 신경망 모델의 양자화 파라미터를 갱신하는 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 양자화 장치(500)는 캘리브레이션부(510), 입력 데이터 양자화부(530), 대상 딥러닝 신경망(540) 및 역양자화부(550)를 포함한다. 여기서, 대상 딥러닝 신경망(540)은 딥러닝 신경망 모델에 포함된 복수의 레이어, 예를 들면 제1 레이어, 제2 레이어 및 제3 레이어를 포함한다.
딥러닝 신경망 모델의 입력 데이터(501)가 전처리를 거쳐 입력 데이터 양자화부(530)에 입력되면, 입력 데이터 양자화부(530)는 미리 설정된 입력 양자화 파라미터(Sin, Zin, 520)를 이용하여 입력 데이터(501)를 양자화한다. 예를 들면, FP32 실수 형식의 입력 데이터(501)는 정수 형태의 값으로 양자화된다.
양자화된 입력 데이터(501)가 딥러닝 신경망 모델의 제1 레이어에 입력되면, 양자화 장치(500)는 미리 설정된 제1 양자화 파라미터(S1, Z1)를 이용하여 제1 레이어에 대한 활성화 값을 양자화한다. 유사한 방법으로, 양자화 장치(500)는 미리 설정된 제2 양자화 파라미터(S2, Z2)를 이용하여 제2 레이어에 대한 활성화 값을 양자화하고, 제3 양자화 파라미터(S3, Z3)를 이용하여 제3 레이어에 대한 활성화 값을 양자화한다.
역양자화부(550)는 딥러닝 신경망 모델의 최종 출력에 대한 양자화 값을 역양자화하여, 출력 데이터(502)를 생성한다. 예를 들면, 역양자화부(550)는 정수 형태의 양자화 값을 대응되는 FP32 형식의 실수값으로 역양자화한다.
딥러닝 신경망 모델이 추론을 수행하는 과정에서 양자화 장치(500)가 외부환경 변화에 의한 입력 데이터의 특성 변화를 검출하면, 캘리브레이션부(510)는 변경된 특성을 갖는 입력 이미지 데이터를 기초로, 딥러닝 신경망 모델의 입력 양자화 파라미터를 갱신한다.
캘리브레이션부(510)는 미리 설정된 시구간에 대응되는 복수의 입력 데이터(501)를 기초로 제1 입력 양자화 파라미터를 계산한다. 여기서, 복수의 입력 데이터(501)는 미리 설정된 시구간 동안 딥러닝 신경망 모델에 입력된 복수의 이미지 프레임을 포함할 수 있다.
캘리브레이션부(510)는 복수의 입력 데이터(501) 전체에 대한 하나의 통계적 특성을 기초로 입력 데이터의 양자화 범위, 즉 정수형태 양자화 값 범위에 매핑되는 입력 데이터의 실수값의 범위를 결정할 수 있다. 예를 들면, 캘리브레이션부(510)는 복수의 입력 데이터(501)에 포함된 모든 이미지 프레임의 픽셀값들 중에서 양자화로 인한 정확도 손실을 최소화 할 수 있는 최적의 양자화 범위를 결정하고, 결정된 양자화 범위에 해당되는 픽셀값의 최소값 및 최대값을 기초로 스케일 인자 및 영점의 값과 같은 제1 입력 양자화 파라미터를 계산한다.
캘리브레이션부(510)는 제1 입력 양자화 파라미터와 미리 설정된 제2 입력 양자화 파라미터(Sin, Zin, 520)를 기초로 새로운 입력 양자화 파라미터를 결정할 수 있다. 캘리브레이션부(510)는 미리 설정된 입력 양자화 파라미터(Sin, Zin, 520)를 새로운 입력 양자화 파라미터로 갱신한다.
입력 데이터 양자화부(530)의 양자화 과정에서 소요되는 시간으로 인하여, 새로운 입력 양자화 파라미터가 적용된 데이터가 그 다음 단계인 제1 레이어에 즉시 입력될 수 없는 경우, 양자화 장치(500)는 입력 데이터 양자화부(530)에 대하여 먼저 양자화 파라미터를 갱신하고, 양자화 과정에서 소요되는 시간만큼 지연된 시간에 제1 레이어의 입력에 대하여 양자화 파라미터를 갱신하도록 갱신 시점을 조절할 수 있다. 예를 들면, 표 1과 같은 방법으로 양자화 장치(500)가 입력 데이터 양자화부(530) 및 제1 레이어에 대하여 순차적으로 양자화 파라미터의 갱신을 수행할 수 있다.
여기서, T1은 미리 설정된 입력 양자화 파라미터가 결정된 제1 시점이고, T2는 입력 데이터의 특성 변화에 따라 캘리브레이션부(510)가 새로운 입력양자화 파라미터를 결정한 제2 시점이다. z는 입력 데이터 양자화부(530)의 양자화 과정에서 소요되는 시간으로, 일반적으로 딥러닝 신경망 모델이 적용된 연산장치의 1 내지 10 클럭 사이클(clock cycle)에 해당하는 시간일 수 있다. z는 제1 시점 및 제2 시점 간의 시구간에 비하여 극히 짧은 시간일 수 있다.
표 1에서 나타낸 바와 같이, 양자화 장치(500)는 제2 시점부터(T2) 입력 데이터 양자화부(530)에서 양자화를 수행하는데 소요되는 시간인 z 시간 동안 입력 데이터 양자화부(530)에만 새로운 입력 양자화 파라미터를 적용하고, T2+z 시점 도래 전까지 제1 레이어에 입력되는 데이터에는 기존의 입력 양자화 파라미터, 즉 제1 시점에 결정된 양자화 파라미터를 적용한다.
z 시간이 경과된 후, T2+z 시점부터, 새로운 입력 양자화 파라미터가 적용된 입력 데이터들이 제1 레이어에 입력될 것이므로, 양자화 장치(500)는 제1 레이어의 입력단에도 새로운 입력 양자화 파라미터를 적용하게 된다. 따라서, 딥러닝 신경망 모델의 입력 양자화 파라미터가 매끄럽게(seamless) 갱신될 수 있다.
도 6은 본 개시의 다른 실시예에 따른 양자화 장치가 딥러닝 신경망 모델의 양자화 파라미터를 갱신하는 과정을 설명하기 위한 도면이다.
도 6을 참조하면, 양자화 장치(600)는 캘리브레이션부(610), 입력 데이터 양자화부(630), 대상 딥러닝 신경망(640) 및 역양자화부(650)를 포함한다. 여기서, 대상 딥러닝 신경망(640)은 딥러닝 신경망 모델에 포함된 복수의 레이어, 예를 들면 제1 레이어(641), 제2 레이어(642) 및 제3 레이어(643)를 포함한다.
입력 데이터(601)가 전처리를 거쳐 입력 데이터 양자화부(630)에 입력되면, 입력 데이터 양자화부(630)는 미리 설정된 복수의 양자화 파라미터를 포함하는 제1 양자화 파라미터 세트(621)의 입력 양자화 파라미터(Sin_1, Zin_1)를 이용하여 입력 데이터(601)를 양자화한다. 양자화된 입력 데이터(601)는 대상 딥러닝 신경망(640)에 입력되고, 딥러닝 신경망 모델은 입력 데이터(601)에 대한 추론을 수행한다.
추론을 위한 연산과정에서, 개별 레이어에서 출력된 활성화 값은 제1 양자화 파라미터 세트(621)에서 대응되는 활성화 파라미터를 기초로 양자화되어 연산된다. 구체적으로, 제1 레이어(641)의 활성화 값은 제1 양자화 파라미터 세트(621)의 제1 레이어 양자화 파라미터(S1_1, Z1_1)를 기초로 양자화된다. 동일한 방법으로, 제2 레이어(642)의 활성화 값은 제1 양자화 파라미터 세트(621)의 제2 레이어 양자화 파라미터(S2_1, Z2_1)를 기초로 양자화되고, 제3 레이어(643)의 활성화 값은 제1 양자화 파라미터 세트(621)의 제3 레이어 양자화 파라미터(S3_1, Z3_1)를 기초로 양자화된다.
역양자화부(650)는 딥러닝 신경망 모델의 최종 출력에 대한 양자화 값을 역양자화하여, 출력 데이터(602)를 생성한다.
딥러닝 신경망 모델이 추론을 수행하는 과정에서 양자화 장치(600)가 외부환경 변화에 의한 입력 데이터의 특성 변화를 검출하면, 캘리브레이션부(610)는 미리 생성된 복수의 양자화 파라미터 세트(621, 622, 623) 중에서 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 어느 하나의 양자화 파라미터 세트를 기초로 딥러닝 신경망 모델의 양자화 파라미터를 갱신한다.
복수의 양자화 파라미터 세트(621, 622, 623)는, 복수의 외부환경 각각에 대응되는 딥러닝 신경망 모델의 모든 개별 레이어에서의 활성화 값에 대한 양자화 파라미터를 포함할 수 있다. 구체적으로, 미리 설정된 복수의 외부환경 중에서 어느 하나의 외부환경에 대응되는 다수의 입력 데이터를 캘리브레이션 데이터로 이용하여 양자화 캘리브레이션을 수행하고, 해당 외부환경에 대응되는 딥러닝 신경망 모델의 모든 개별 레이어의 양자화 파라미터를 결정하여 하나의 양자화 파라미터 세트를 생성할 수 있다.
예를 들면, 특정 장소를 촬영한 영상 프레임인 입력 이미지 데이터에 대하여, 낮 시간에 촬영된 복수의 이미지 데이터를 이용하여 양자화 캘리브레이션을 수행하여 낮 시간의 이미지 특성에 특화된 제1 양자화 파라미터 세트(621)를 생성한다. 유사한 방법으로, 밤 시간의 이미지 특성에 특화된 제2 양자화 파라미터 세트(622) 및 실내조명 이미지 특성에 특화된 제3 양자화 파라미터 세트(623)를 각각 생성할 수 있다.
양자화 장치(600)는 감지된 외부환경 변화에 따라, 미리 생성한 제1 양자화 파라미터 세트(621), 제2 양자화 파라미터 세트(622) 및 제3 양자화 파라미터 세트(623) 중에서 현재 외부환경에 대응되는 어느 하나의 양자화 파라미터 세트를 선택적으로 적용하여 딥러닝 신경망 모델의 양자화 파라미터를 갱신할 수 있다.
예를 들면, 딥러닝 신경망 모델이 낮 시간의 이미지 특성에 특화된 제1 양자화 파라미터 세트(621)를 기초로 양자화되어 있는 상태에서 밤 시간의 이미지 특성으로 입력 데이터 특성 변화가 감지되는 경우, 양자화 장치(600)는 밤 시간의 이미지 특성에 특화된 제2 양자화 파라미터 세트(622)를 이용하여 입력 양자화 파라미터로부터 제3 레이어 양자화 파라미터에 이르기까지 모든 양자화 파라미터를 일괄적으로 갱신한다.
제1 양자화 파라미터 세트(621)에서 제2 양자화 파라미터 세트(622)로 양자화 파라미터가 갱신되면, 딥러닝 신경망 모델의 입력 데이터 양자화부(630)는 제2 양자화 파라미터 세트(622)의 입력 양자화 파라미터(Sin_2, Zin_2)를 이용하여 입력 데이터(601)를 양자화한다. 또한, 제1 레이어(641)의 활성화 값은 제2 양자화 파라미터 세트(622)의 제1 레이어 양자화 파라미터(S1_2, Z1_2)를 기초로, 제2 레이어(642)의 활성화 값은 제2 양자화 파라미터 세트(622)의 제2 레이어 양자화 파라미터(S2_2, Z2_2)를 기초로, 제3 레이어(643)의 활성화 값은 제2 양자화 파라미터 세트(622)의 제3 레이어 양자화 파라미터(S3_2, Z3_2)를 기초로 각각 양자화된다.
도 7은 본 개시의 또 다른 실시예에 따른 양자화 장치의 입력 특성 변화 검출부를 설명하기 위한 도면이다.
도 7을 참조하면, 양자화된 딥러닝 신경망 모델의 연산을 수행하는 병렬 프로세서(parallel processor, 700)가 개시되어 있다. 여기서, 병렬 프로세서(700)는 N 개의 채널을 포함하는 시스톨릭 어레이(Systolic array) 구조의 병렬 프로세서일 수 있다.
시스톨릭 어레이 구조의 병렬 프로세서는 딥러닝 신경망 모델의 연산을 위한 가속기에 널리 적용된다. 이러한 병렬 프로세서(700)는 N 개의 채널 각각을 통하여 입력된 N 개의 입력을 동시에 처리한다. 예를 들면, 딥러닝 신경망 모델의 컨볼루션 레이어에 대한 N 개의 입력 데이터 및 복수의 웨이트 값을 병렬 프로세서(700)를 구성하는 온칩(on-chip) 메모리(미도시)에 로드하고, N 개의 입력 데이터에 대한 병렬 연산을 수행하여 해당 컨볼루션 레이어에 대한 활성화 맵을 출력한다.
병렬 프로세서(700)에 N 보다 작은 크기의 데이터, 즉, N 보다 적은 M 개의 데이터가 입력되면, 병렬 프로세서(700)는 M 개의 채널영역(710)만을 딥러닝 신경망 모델의 연산에 할당한다. 예를 들면, M 개의 입력은 A1 내지 AM 채널을 통하여 각각 입력되고, 각 채널을 구성하는 복수의 MAC(Multiply and Accumulate Unit)을 이용하여 딥러닝 신경망 모델의 연산이 수행된다.
양자화 장치의 입력 특성 변화 검출부는 병렬 프로세서(700)의 N 개 채널 중에서 딥러닝 신경망 모델의 연산에 할당된 M 개의 채널을 제외한 나머지 채널, 즉, N-M 개의 채널영역(720) 중 적어도 하나의 채널을 이용하여 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하기 위한 연산을 수행할 수 있다.
예를 들면, 병렬 프로세서(700)가 6464 크기의 시스톨릭 어레이이고 딥러닝 신경망 모델의 채널 수가 32 인 경우, 병렬 프로세서(700)의 64 개의 채널 중에서 32 개의 채널은 양자화된 딥러닝 신경망 모델의 연산을 수행한다. 그리고, 나머지 32 개의 채널 중에서 하나 이상의 채널에는 바이어스가 변경된 컨볼루션 레이어에서 출력된 활성화 맵이 입력되어 오버플로우의 검출을 수행하도록 구성될 수 있다. 그 외에도, 양자화 장치의 입력 특성 변화 검출부가 하나 이상의 활성화 맵으로부터 외부환경 변화에 의한 입력 데이터의 특성 변화를 예측하도록 학습된 검출모델인 경우, 나머지 32 개의 채널 중에서 하나 이상의 채널은 해당 검출모델의 연산에 할당될 수 있다.
상술한 바와 같이, 양자화 장치의 입력 특성 변화 검출부는 딥러닝 신경망 모델의 연산을 위한 하나의 병렬 프로세서(700)의 리소스를 그대로 활용하므로, 별도의 하드웨어 구성 없이도 구현이 가능하다. 따라서, 양자화 장치를 포함하는 전체 AI 가속기 디바이스의 경량화 및 소형화가 가능하다.
도 8은 본 개시의 일 실시예에 따른 양자화 방법을 설명하기 위한 순서도이다.
도 8을 참조하면, 양자화 장치는 딥러닝 신경망 모델의 외부환경 변화에 의한 입력 이미지 데이터 특성 변화를 검출한다(S810).
딥러닝 신경망 모델의 입력 데이터 및 각 레이어에서 출력된 활성화 값은 미리 설정된 양자화 파라미터를 기초로 양자화된다. 미리 설정된 복수의 양자화 파라미터는 딥러닝 신경망 모델에 포함된 입력 양자화 파라미터 및 복수의 레이어 각각에 대응되는 복수 개의 양자화 파라미터를 포함할 수 있다.
딥러닝 신경망 모델이 추론을 수행하는 과정에서, 외부환경 변화로 인한 입력 데이터 특성이 변화할 수 있다. 구체적으로, 딥러닝 신경망 모델은 초기 양자화 과정에서 이용된 캘리브레이션 데이터에 대한 환경과 다른 환경 하에서 추론을 수행할 수 있으며, 이 경우, 캘리브레이션 데이터의 특성과 다른 특성을 갖는 입력 데이터가 딥러닝 신경망 모델에 입력될 수 있다.
양자화 장치는 신경망 모델에 입력되는 입력 이미지 데이터를 분석하여 외부환경 변화에 의한 입력 데이터 특성 변화를 검출한다. 여기서, 외부환경 변화는 딥러닝 신경망 모델이 추론을 수행하는 시간의 변화일 수 있으나 이에 한정되는 것은 아니다. 예를 들면, 외부환경 변화는 딥러닝 신경망 모델이 추론을 수행하는 위치의 변화일 수 있다.
양자화 장치는 딥러닝 신경망 모델이 추론을 수행하는 동안 미리 설정된 시간주기마다 입력 이미지 데이터에 대한 분석을 수행하여, 외부환경 변화에 의한 입력 데이터 특성 변화가 발생하는지 여부를 확인할 수 있다.
일 실시예에 따르면, 양자화 장치는 시간에 따른 날씨 변화 또는 낮과 밤의 변화와 같은, 시간에 따라 달라지는 외부환경의 변화와 그에 따른 데이터의 경향성 변화를 검출하기 위하여, 10분 또는 6시간 이하의 주기마다 입력 이미지 데이터에 대한 분석을 수행할 수 있다.
딥러닝 신경망 모델이 추론을 수행하는 시간에 따라서 입력 데이터 및 활성화 값의 통계적 분포가 크게 달라질 수 있다. 양자화 장치는 딥러닝 신경망 모델에 포함된 적어도 하나의 컨볼루션 레이어 중에서 어느 하나의 컨볼루션 레이어에서 출력된 활성화 맵을 기초로 입력 데이터 특성 변화를 검출한다. 구체적으로, 양자화 장치는 컨볼루션 레이어의 복수의 출력 채널에 대응되는 복수의 활성화 맵 중에서 외부환경 변화에 따라 활성화 값이 변화되는 어느 하나의 활성화 맵을 이용하여 입력 데이터 특성의 변화가 발생하였는지 여부를 검출한다.
양자화 장치는 컨볼루션 레이어의 전체 출력 채널 중에서 외부환경에 영향을 받는 이미지 특징을 추출하는 적어도 하나 이상의 채널을 기준 출력 채널로 결정하고, 해당 채널에서 출력되는 활성화 맵을 기초로 입력 데이터 특성 변화를 검출할 수 있다. 여기서, 기준 출력 채널은 출력된 활성화 맵을 기초로 실험적으로 결정될 수 있으나 이에 한정되는 것은 아니며, 미리 학습된 별도의 기준 출력 채널 검출모델을 이용하여 결정될 수 있다.
양자화 장치는 컨볼루션 레이어에 대한 바이어스 값을 임의로 변경하고, 변경된 바이어스 값에 의하여 활성화 맵에 오버플로우가 발생하는지 여부에 따라 입력 데이터 특성의 변화를 검출할 수 있다.
양자화 장치는 서로 다른 외부환경 중에서 어느 하나의 외부환경에 대응되는 이미지 데이터가 입력되면 대응되는 활성화 맵에서는 오버플로우가 발생하지 않고, 다른 하나의 외부환경에 대응되는 이미지 데이터가 입력되면 대응되는 활성화 맵에서는 오버플로우가 발생하도록 컨볼루션 레이어의 바이어스 값을 기존의 값보다 더 큰 값으로 변경한다.
양자화 장치는 변경된 바이어스 값에 대한 활성화 맵에서 오버플로우가 검출되면, 외부환경의 변화로 인하여 변화된 특성을 갖는 데이터가 입력된다고 결정할 수 있다.
입력 데이터 특성의 변화가 검출되면, 양자화 장치는 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 입력 이미지 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정한다(S820).
일 실시예에 따라, 양자화 장치는 미리 생성된 복수의 양자화 파라미터 세트 중에서 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 어느 하나의 양자화 파라미터 세트를 기초로, 딥러닝 신경망 모델에 대한 모든 양자화 파라미터에 대응되는 새로운 양자화 파라미터를 결정할 수 있다. 여기서, 양자화 파라미터 세트는 딥러닝 신경망 모델의 모든 개별 레이어에서의 활성화 값에 대한 양자화 파라미터를 포함하는 하나의 데이터 세트를 의미한다.
구체적으로, 입력 데이터 경향성을 기준으로 미리 설정된 복수의 외부환경 각각에 대응되는 다수의 입력 이미지 데이터를 이용하여, 외부환경 각각에 대한 양자화 파라미터 세트가 미리 생성되어 양자화 장치에 저장될 수 있다. 양자화부(120)는 미리 생성되어 저장된 복수의 양자화 파라미터 세트 중에서 현재 외부환경에 대응되는 하나의 양자화 파라미터 세트를 딥러닝 신경망 모델의 새로운 양자화 파라미터로 결정할 수 있다.
다른 실시예에 따라, 양자화 장치는 변경된 특성을 갖는 입력 이미지 데이터를 기초로, 딥러닝 신경망 모델의 입력 데이터에 대한 새로운 입력 양자화 파라미터를 결정할 수 있다.
구체적으로, 양자화 장치는 미리 설정된 시구간에 대응되는 복수의 입력 이미지 데이터를 기초로 제1 입력 양자화 파라미터를 계산한다. 여기서, 미리 설정된 시구간은 양자화 장치가 외부환경 변화에 의한 입력 데이터 특성 변화를 검출한 현재 시점으로부터, 입력 이미지 데이터에 대한 분석을 수행하는 미리 설정된 시간 주기만큼 과거 시점까지의 시간에 해당하는 시구간일 수 있다.
양자화 장치는 미리 설정된 시구간에 대응되는 모든 입력 이미지 데이터에 대한 입력값들 중에서 양자화로 인한 정확도 손실을 최소화 할 수 있는 최적의 양자화 범위를 결정하고, 결정된 양자화 범위에 해당되는 입력값의 최소값 및 최대값을 기초로 스케일 인자 및 영점의 값과 같은 제1 양자화 파라미터를 계산한다.
양자화 장치는 제1 입력 양자화 파라미터와 딥러닝 신경망 모델에 대하여 미리 설정된 복수의 양자화 파라미터에 포함된 제2 입력 양자화 파라미터를 기초로 새로운 입력 양자화 파라미터를 결정한다. 여기서, 제2 입력 양자화 파라미터는 딥러닝 신경망 모델의 입력 데이터의 양자화를 위하여 현재시점까지 적용되고 있는 기존의 입력 양자화 파라미터이다. 결과적으로, 제2 입력 양자화 파라미터는 외부환경 변화 전의 입력 이미지 데이터에 대한 양자화 파라미터이고, 제1 입력 양자화 파라미터는 외부환경 변화 후의 입력 이미지 데이터에 대한 양자화 파라미터이다.
양자화 장치는 제1 입력 양자화 파라미터 및 제2 입력 양자화 파라미터를 가중합하여 새로운 입력 양자화 파라미터 값을 결정할 수 있다.
양자화 장치는 새로운 양자화 파라미터를 기초로 딥러닝 신경망 모델의 복수의 양자화 파라미터 중에서 적어도 하나의 양자화 파라미터를 갱신한다(S830).
일 실시예에 따라, 양자화 장치가 미리 생성한 복수의 양자화 파라미터 세트 중에서 어느 하나의 양자화 파라미터 세트를 새로운 양자화 파라미터로 결정한 경우, 양자화 장치는 해당 양자화 파라미터 세트에 포함된 복수의 개별 레이어에 대한 새로운 양자화 파라미터를 기초로, 딥러닝 신경망 모델의 대응되는 레이어의 양자화 파라미터를 갱신한다.
다른 실시예에 따라, 양자화 장치가 새로운 입력 양자화 파라미터를 계산한 경우, 새로운 입력 양자화 파라미터를 딥러닝 신경망 모델의 입력 양자화 파라미터로 재설정한다. 결과적으로, 딥러닝 신경망 모델은 기존의 제2 입력 양자화 파라미터를 기초로 입력 이미지 데이터를 양자화하는 대신, 새로운 입력 양자화 파라미터를 기초로 입력 이미지 데이터를 양자화하게 된다.
본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 디지털 전자 회로, 집적회로, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 프로그래밍가능 시스템 상에서 실행 가능한 하나 이상의 컴퓨터 프로그램들로 구현되는 것을 포함할 수 있다. 프로그래밍가능 시스템은, 저장 시스템, 적어도 하나의 입력 디바이스, 그리고 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에게 데이터 및 명령들을 전송하도록 결합되는 적어도 하나의 프로그래밍가능 프로세서(이것은 특수 목적 프로세서일 수 있거나 혹은 범용 프로세서일 수 있음)를 포함한다. 컴퓨터 프로그램들(이것은 또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 혹은 코드로서 알려져 있음)은 프로그래밍가능 프로세서에 대한 명령어들을 포함하며 "컴퓨터가 읽을 수 있는 기록매체"에 저장된다.
컴퓨터가 읽을 수 있는 기록매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체는 ROM, CD-ROM, 자기 테이프, 플로피디스크, 메모리 카드, 하드 디스크, 광자기 디스크, 스토리지 디바이스 등의 비휘발성(non-volatile) 또는 비일시적인(non-transitory) 매체일 수 있으며, 또한 데이터 전송 매체(data transmission medium)와 같은 일시적인(transitory) 매체를 더 포함할 수도 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.
본 명세서의 흐름도/타이밍도에서는 각 과정들을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 개시의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 개시의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 개시의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 흐름도/타이밍도에 기재된 순서를 변경하여 실행하거나 각 과정들 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 흐름도/타이밍도는 시계열적인 순서로 한정되는 것은 아니다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 양자화 장치
110: 입력 특성 변화 검출부
120: 양자화부
130: 메모리
110: 입력 특성 변화 검출부
120: 양자화부
130: 메모리
Claims (14)
- 딥러닝 신경망 모델의 양자화 방법에 있어서,
미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 입력 이미지 데이터에서 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계;
상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하는 단계; 및
상기 새로운 양자화 파라미터를 기초로 상기 미리 설정된 복수의 양자화 파라미터 중에서 적어도 하나의 양자화 파라미터를 갱신하는 단계를 포함하는
양자화 방법. - 제1항에 있어서,
상기 외부환경 변화에 의한 입력 데이터 특성 변화는,
상기 딥러닝 신경망 모델이 추론을 수행하는 시간의 변화에 따라 발생한 상기 입력 이미지 데이터의 특성 변화인, 양자화 방법. - 제1항에 있어서,
상기 외부환경 변화에 의한 입력 데이터 특성 변화는,
상기 딥러닝 신경망 모델이 추론을 수행하는 위치의 변화에 따라 발생한 상기 입력 이미지 데이터의 특성 변화인, 양자화 방법. - 제1항에 있어서,
상기 미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 입력 이미지 데이터에서 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계는,
상기 딥러닝 신경망 모델이 추론을 수행하는 동안 미리 설정된 시간주기마다 수행되는, 양자화 방법. - 제1항에 있어서,
상기 딥러닝 신경망 모델은,
적어도 하나의 컨볼루션 레이어를 포함하는 딥러닝 신경망 모델인,
양자화 방법. - 제5항에 있어서,
상기 미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 입력 이미지 데이터에서 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계는,
상기 적어도 하나의 컨볼루션 레이어 중에서 어느 하나의 컨볼루션 레이어에 대한 활성화 맵을 기초로 상기 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계를 포함하는, 양자화 방법. - 제6항에 있어서,
상기 적어도 하나의 컨볼루션 레이어 중에서 어느 하나의 컨볼루션 레이어에 대한 활성화 맵을 기초로 상기 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계는,
상기 어느 하나의 컨볼루션 레이어에 대한 바이어스 값을 변경하는 단계; 및
상기 변경된 바이어스 값에 의하여 상기 활성화 맵에서 발생한 오버플로우를 기초로 외부환경 변화에 의한 입력 이미지 데이터 특성 변화를 검출하는 단계를 포함하는, 양자화 방법. - 제7항에 있어서,
상기 활성화 맵은,
상기 어느 하나의 컨볼루션 레이어의 복수의 출력 채널에 대응되는 활성화 맵 중에서 상기 외부환경 변화에 따라 활성화 값이 변화되는 어느 하나의 활성화 맵인, 양자화 방법. - 제1항에 있어서,
상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하는 단계는,
미리 설정된 시구간에 대응되는 복수의 입력 이미지 데이터를 기초로 제1 입력 양자화 파라미터를 계산하는 단계; 및
상기 제1 입력 양자화 파라미터 및 상기 미리 설정된 복수의 양자화 파라미터에 포함된 제2 입력 양자화 파라미터를 기초로 새로운 입력 양자화 파라미터를 결정하는 단계를 포함하는 양자화 방법. - 제1항에 있어서,
상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하는 단계는,
미리 생성된 복수의 양자화 파라미터 세트 중에서 상기 입력 데이터 특성 변화에 대응되는 어느 하나의 양자화 파라미터 세트를 결정하는 단계를 포함하는 양자화 방법. - 제10항에 있어서,
상기 미리 생성된 복수의 양자화 파라미터 세트는,
미리 설정된 복수의 외부환경 중에서 개별 외부환경에 대응되는 입력 이미지 데이터를 기초로 결정된 상기 딥러닝 신경망 모델의 복수의 레이어에 대한 양자화 파라미터를 포함하는, 양자화 방법. - 미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 입력 특성 변화 검출부; 및
상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 입력 특성 변화 검출부가 검출한 상기 외부환경 변화에 의한 입력 이미지 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하고,
상기 새로운 양자화 파라미터를 기초로 상기 미리 설정된 복수의 양자화 파라미터 중에서 적어도 하나의 양자화 파라미터를 갱신하는 양자화부를 포함하는
양자화 장치. - 제12항에 있어서,
상기 입력 특성 변화 검출부는,
상기 딥러닝 신경망 모델의 연산을 수행하는 병렬 프로세서의 N 개 채널 중에서 상기 딥러닝 신경망 모델의 연산에 할당된 M 개의 채널을 제외한 나머지 채널 중 적어도 하나의 채널을 이용하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하기 위한 연산을 수행하는, 양자화 장치. - 제13항에 있어서,
상기 병렬 프로세서는,
시스톨릭 어레이 구조를 갖는 병렬 프로세서인, 양자화 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230030124A KR20240136759A (ko) | 2023-03-07 | 2023-03-07 | 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 |
PCT/KR2023/005242 WO2024185924A1 (ko) | 2023-03-07 | 2023-04-18 | 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230030124A KR20240136759A (ko) | 2023-03-07 | 2023-03-07 | 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240136759A true KR20240136759A (ko) | 2024-09-19 |
Family
ID=92674754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230030124A KR20240136759A (ko) | 2023-03-07 | 2023-03-07 | 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240136759A (ko) |
WO (1) | WO2024185924A1 (ko) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190130443A (ko) * | 2018-05-14 | 2019-11-22 | 삼성전자주식회사 | 뉴럴 네트워크의 양자화 방법 및 장치 |
KR102029852B1 (ko) * | 2019-04-09 | 2019-10-08 | 세종대학교 산학협력단 | 환경에 따라 신경망 모델을 선택하는 객체 인식 장치 및 그 방법 |
KR20200129458A (ko) * | 2019-05-08 | 2020-11-18 | 삼성전자주식회사 | 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템 |
US11675676B2 (en) * | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
CN111598237B (zh) * | 2020-05-21 | 2024-06-11 | 上海商汤智能科技有限公司 | 量化训练、图像处理方法及装置、存储介质 |
-
2023
- 2023-03-07 KR KR1020230030124A patent/KR20240136759A/ko unknown
- 2023-04-18 WO PCT/KR2023/005242 patent/WO2024185924A1/ko unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024185924A1 (ko) | 2024-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10878273B2 (en) | Dynamic quantization for deep neural network inference system and method | |
US11755901B2 (en) | Dynamic quantization of neural networks | |
KR102513867B1 (ko) | 포인트 클라우드 기하학적 압축 | |
CN111445418B (zh) | 图像去雾处理方法、装置及计算机设备 | |
US20210176174A1 (en) | Load balancing device and method for an edge computing network | |
CN106855952B (zh) | 基于神经网络的计算方法及装置 | |
CN111240746B (zh) | 一种浮点数据反量化及量化的方法和设备 | |
WO2016149663A1 (en) | Method, apparatus and coder for selecting optimal reference frame in hevc coding | |
US20220261650A1 (en) | Machine learning training in logarithmic number system | |
CN111144457B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN107784281B (zh) | 人脸检测方法、装置、设备及计算机可读介质 | |
CN108875519B (zh) | 对象检测方法、装置和系统及存储介质 | |
CN114445336A (zh) | 配电设备缺陷检测方法、装置、计算机设备和存储介质 | |
EP3718049B1 (en) | Temporal de-noising | |
KR20240136759A (ko) | 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 | |
US20190362518A1 (en) | Video data processing | |
CN111767980B (zh) | 模型优化方法、装置及设备 | |
CN111767204B (zh) | 溢出风险检测方法、装置及设备 | |
KR20210133844A (ko) | 단안 이벤트-기반 센서를 사용하는 모션 추정의 시스템 및 방법 | |
CN110554916B (zh) | 基于分布式集群的风险指标计算方法及装置 | |
TW201801529A (zh) | 視訊編解碼器之複雜度控制 | |
CN113792804A (zh) | 图像识别模型的训练方法、图像识别方法、装置及设备 | |
US10896487B2 (en) | Method and apparatus for reducing noise | |
CN117411885B (zh) | 一种基于数据中心的网络信息传输数据方法及系统 | |
TWI855661B (zh) | 圖像編碼裝置與圖像編碼方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20230307 |
|
PA0201 | Request for examination |
Patent event code: PA02011R01I Patent event date: 20230307 Comment text: Patent Application |
|
PG1501 | Laying open of application |