KR20240050628A - Apparatus and Method for Adjusting Quantization Precision for Artificial Neural Network - Google Patents
Apparatus and Method for Adjusting Quantization Precision for Artificial Neural Network Download PDFInfo
- Publication number
- KR20240050628A KR20240050628A KR1020220130236A KR20220130236A KR20240050628A KR 20240050628 A KR20240050628 A KR 20240050628A KR 1020220130236 A KR1020220130236 A KR 1020220130236A KR 20220130236 A KR20220130236 A KR 20220130236A KR 20240050628 A KR20240050628 A KR 20240050628A
- Authority
- KR
- South Korea
- Prior art keywords
- quantization
- neural network
- weight
- bits
- function
- Prior art date
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 253
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000006870 function Effects 0.000 claims abstract description 165
- 238000003062 neural network model Methods 0.000 claims abstract description 79
- 230000000737 periodic effect Effects 0.000 claims abstract description 50
- 238000012549 training Methods 0.000 claims abstract description 16
- 230000004913 activation Effects 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 2
- 208000000044 Amnesia Diseases 0.000 claims 4
- 208000026139 Memory disease Diseases 0.000 claims 4
- 230000006984 memory degeneration Effects 0.000 claims 4
- 208000023060 memory loss Diseases 0.000 claims 4
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 claims 1
- 229910052698 phosphorus Inorganic materials 0.000 claims 1
- 239000011574 phosphorus Substances 0.000 claims 1
- 230000008569 process Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/084—Backpropagation, e.g. using gradient descent
-
- 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/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
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)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Feedback Control In General (AREA)
Abstract
개시된 실시예는 인공 신경망을 이용하여 학습 대상인 신경망 모델의 다수의 레이어 포함된 가중치의 비트수를 인가받아 신경망 연산하여 양자화 비트수를 추정하고, 추정된 양자화 비트수에 따라 신경망 모델의 가중치를 양자화하며, 가중치와 주기 함수의 합으로 변형된 변형 양자화 함수를 연속 함수로 근사화한 근사 함수를 이용하여, 신경망 모델의 학습 시에 계산되는 손실을 인공 신경망으로 역전파하여, 신경망의 가중치 학습 시에 양자화 비트수를 학습 가능한 파라미터로서 함께 학습시키고 각 레이어별 최적화된 양자화 비트수를 획득함으로써, 제한된 하드웨어 자원에서 구현되는 신경망의 성능을 향상시킬 수 있는 양자화 정밀도 조절 장치 및 방법을 제공한다.The disclosed embodiment uses an artificial neural network to receive the number of bits of weights included in a plurality of layers of a neural network model that is a learning target, performs a neural network operation to estimate the number of quantization bits, and quantizes the weights of the neural network model according to the estimated number of quantization bits. , using an approximation function that approximates the modified quantization function transformed by the sum of the weight and the periodic function to a continuous function, the loss calculated during training of the neural network model is back-propagated to the artificial neural network, and the quantization bit is used when learning the weight of the neural network. We provide a quantization precision control device and method that can improve the performance of a neural network implemented on limited hardware resources by learning the number as a learnable parameter and obtaining the optimized number of quantization bits for each layer.
Description
개시되는 실시예들은 인공 신경망을 위한 양자화 정밀도 조절 방법에 관한 것으로, 레이어별 양자화 비트수를 최적화할 수 있는 인공 신경망을 위한 양자화 정밀도 조절 방법에 관한 것이다.The disclosed embodiments relate to a method of controlling quantization precision for an artificial neural network, and to a method of controlling quantization precision for an artificial neural network that can optimize the number of quantization bits for each layer.
최근 인공 신경망(artificial neural network)이 객체 인식, 자동 대화 인식, 자연 언어 처리, 및 음악/음향 신호 처리 등과 같은 다양한 분야에서 활발하게 적용되고 있다.Recently, artificial neural networks have been actively applied in various fields such as object recognition, automatic conversation recognition, natural language processing, and music/acoustic signal processing.
인공 신경망을 구성하는 다수의 레이어 각각은 인가되는 입력 데이터에 대해 딥 러닝 기법에 따라 학습되어 설정된 가중치로 컨벌루션 등 같은 연산을 수행하고 활성화 함수를 적용하는 등의 연산을 수행함으로써, 요구되는 출력 데이터를 생성할 수 있다. 그리고 각 레이어의 출력 데이터는 다른 레이어로 전달될 수 있다.Each of the multiple layers that make up the artificial neural network performs operations such as convolution with weights learned and set according to deep learning techniques on the input data and applies activation functions, thereby generating the required output data. can be created. And the output data of each layer can be transferred to other layers.
이러한 인공 신경망은 각 레이어에 대한 가중치는 양자화되며, 가중치의 양자화 수준이 높을수록 인공 신경망의 성능은 향상될 수 있다. 그러나 인공 신경망은 제한된 하드웨어 자원을 고려하여 설계되어야 한다. 뿐만 아니라, 연산 복잡도를 저감시키고 동작 속도를 향상시키기 위해서는 가중치의 양자화 수준, 즉 가중치의 비트수가 조절될 필요가 있다. 기존의 인공 신경망에서는 다수의 레이어의 가중치가 동일한 비트수를 갖도록 양자화되는 것이 일반적이다. 그러나 인공 신경망에서 다수의 레이어 중 일부 레이어는 양자화 수준에 따른 인공 신경망의 성능을 크게 변화시키는 반면, 일부 레이어는 양자화 수준이 가변될지라도 인공 신경망의 성능에 거의 영향을 미치지 않을 수 있다. 실제 인공 신경망에서 각 레이어의 양자화 민감도는 서로 상이하다. 따라서 인공 신경망의 모든 레이어에 대한 가중치가 동일한 비트수를 갖도록 양자화 수준을 통일하는 것은 매우 비효율적이다.In this artificial neural network, the weights for each layer are quantized, and the higher the quantization level of the weights, the better the performance of the artificial neural network can be. However, artificial neural networks must be designed considering limited hardware resources. In addition, in order to reduce computational complexity and improve operation speed, the quantization level of the weight, that is, the number of bits of the weight, needs to be adjusted. In existing artificial neural networks, it is common for the weights of multiple layers to be quantized to have the same number of bits. However, while some layers among multiple layers in an artificial neural network greatly change the performance of the artificial neural network depending on the quantization level, some layers may have little effect on the performance of the artificial neural network even if the quantization level is variable. In an actual artificial neural network, the quantization sensitivity of each layer is different. Therefore, it is very inefficient to unify the quantization level so that the weights for all layers of an artificial neural network have the same number of bits.
이에 최근에는 각 레이어별 가중치의 비트수를 독립적으로 설정하여 양자화하는 혼합 정밀도 양자화(Mixed-precision Quantization) 방식에 대한 연구가 활발하게 수행되고 있다. 혼합 정밀도 양자화 방식을 이용하면 레이어별 양자화 민감도를 고려하여, 각 레이어에 대한 가중치의 양자화 수준을 조절함으로써 제한된 하드웨어 자원 하에서 인공 신경망이 더욱 효율적으로 동작할 수 있도록 한다. 다만 각 제한된 하드웨어 자원 하에서 각 레이어에 적합한 양자화 수준을 탐색하는 것은 매우 어렵다. 특히 메모리 용량이 작은 경우, 전체적으로 양자화 수준이 낮게 설정될 수밖에 없으며, 이 경우 각 레이어에 대한 양자화 수준 최적화는 다른 레이어의 양자화 수준 조절 시에도 영향을 미치게 되어 인공 신경망의 성능 효율성이 크게 저하되는 문제가 있다.Accordingly, recently, research has been actively conducted on the mixed-precision quantization method, which quantizes by independently setting the number of bits of the weight for each layer. Using a mixed-precision quantization method takes into account the quantization sensitivity of each layer and adjusts the quantization level of the weight for each layer, allowing the artificial neural network to operate more efficiently under limited hardware resources. However, it is very difficult to find the appropriate quantization level for each layer under limited hardware resources. In particular, when the memory capacity is small, the overall quantization level has no choice but to be set low. In this case, optimizing the quantization level for each layer also affects the adjustment of the quantization level of other layers, leading to a problem that the performance efficiency of the artificial neural network is greatly reduced. there is.
개시되는 실시예들은 제한된 하드웨어 자원에서 각 레이어별 가중치의 양자화 비트수를 조절하여 신경망의 성능을 향상시킬 수 있는 양자화 정밀도 조절 장치 및 방법을 제공하는데 목적이 있다.The purpose of the disclosed embodiments is to provide a quantization precision control device and method that can improve the performance of a neural network by adjusting the number of quantization bits of the weight for each layer in limited hardware resources.
개시되는 실시예들은 신경망의 가중치 학습 시에 양자화 비트수를 학습 가능한 파라미터로서 함께 학습시켜, 각 레이어별 최적화된 양자화 비트수를 획득할 수 있는 양자화 정밀도 조절 장치 및 방법을 제공하는데 목적이 있다.The purpose of the disclosed embodiments is to provide an apparatus and method for controlling quantization precision that can obtain an optimized number of quantization bits for each layer by learning the number of quantization bits as a learnable parameter when learning weights of a neural network.
실시예에 따른 양자화 정밀도 조절 장치는 인공 신경망을 이용하여 학습 대상인 신경망 모델의 다수의 레이어 포함된 가중치의 비트수를 인가받아 신경망 연산하여 양자화 비트수를 추정하고, 추정된 양자화 비트수에 따라 상기 신경망 모델의 가중치를 양자화하며, 상기 가중치와 주기 함수의 합으로 변형된 변형 양자화 함수를 연속 함수로 근사화한 근사 함수를 이용하여, 상기 신경망 모델의 학습 시에 계산되는 손실을 상기 인공 신경망으로 역전파한다.A quantization precision control device according to an embodiment uses an artificial neural network to receive the number of bits of weights included in a plurality of layers of a neural network model that is a learning target, performs a neural network operation to estimate the number of quantization bits, and uses the neural network according to the estimated number of quantization bits. The weights of the model are quantized, and the loss calculated during training of the neural network model is back-propagated to the artificial neural network using an approximation function that approximates the transformed quantization function transformed by the sum of the weight and the periodic function into a continuous function. .
상기 근사 함수는 상기 변형 양자화 함수의 상기 주기 함수를 동일한 주기를 갖는 사인 함수 형태의 근사 주기 함수로 치환하여 획득될 수 있다.The approximate function may be obtained by replacing the periodic function of the modified quantization function with an approximate periodic function in the form of a sine function having the same period.
상기 변형 양자화 함수는 양자화 함수의 입력값인 가중치 상기 양자화 비트수에 따른 주기 및 스케일을 갖는 주기 함수의 합으로 계산될 수 있다.The modified quantization function may be calculated as the sum of a periodic function with a period and scale according to the number of quantization bits and the weight that is the input value of the quantization function.
양자화 정밀도 조절 장치는 상기 신경망 모델의 학습 시에 추정된 양자화 비트수에 따라 상기 신경망 모델의 가중치를 양자화하여 상기 신경망 모델의 가중치를 변경하고, 가중치가 변경된 상기 신경망 모델에 학습 데이터를 인가하여 출력되는 출력 데이터로부터 계산되는 손실을 계산할 수 있다.The quantization precision control device changes the weight of the neural network model by quantizing the weight of the neural network model according to the number of quantization bits estimated when learning the neural network model, and applies learning data to the neural network model with the changed weight to output The loss can be calculated from the output data.
양자화 정밀도 조절 장치는 상기 신경망 모델을 학습시키기 위한 신경망 손실과 상기 양자화 비트수에 따른 메모리 용량 제한 손실의 합으로 계산되는 총 손실을 상기 근사 함수를 이용하여 상기 인공 신경망으로 역전파할 수 있다.The quantization precision control device may backpropagate the total loss calculated as the sum of the neural network loss for learning the neural network model and the memory capacity limitation loss according to the number of quantization bits to the artificial neural network using the approximation function.
양자화 정밀도 조절 장치는 상기 신경망 손실을 상기 신경망 모델로 역전파할 수 있다.The quantization precision control device may backpropagate the neural network loss to the neural network model.
실시예에 따른 양자화 정밀도 조절 방법은 인공 신경망을 이용하여 학습 대상인 신경망 모델의 다수의 레이어 포함된 가중치의 비트수를 인가받아 신경망 연산하여 양자화 비트수를 추정하는 단계; 추정된 양자화 비트수에 따라 상기 신경망 모델의 가중치를 양자화하는 단계; 및 상기 가중치와 주기 함수의 합으로 변형된 변형 양자화 함수를 연속 함수로 근사화한 근사 함수를 이용하여, 상기 신경망 모델의 학습 시에 계산되는 손실을 상기 인공 신경망으로 역전파하는 단계를 포함한다.A method of controlling quantization precision according to an embodiment includes the steps of receiving the number of bits of weights included in a plurality of layers of a neural network model that is a learning target using an artificial neural network and performing a neural network operation to estimate the number of quantization bits; Quantizing weights of the neural network model according to the estimated number of quantization bits; And back-propagating the loss calculated during training of the neural network model to the artificial neural network using an approximation function that approximates the modified quantization function transformed by the sum of the weight and the periodic function to a continuous function.
따라서, 실시예에 따른 인공 신경망을 위한 양자화 정밀도 조절 장치 및 방법은 신경망의 가중치 학습 시에 양자화 비트수를 학습 가능한 파라미터로서 함께 학습시켜, 각 레이어별 최적화된 양자화 비트수를 획득함으로써, 제한된 하드웨어 자원에서 구현되는 신경망의 성능을 향상시킬 수 있다.Therefore, the apparatus and method for controlling quantization precision for an artificial neural network according to an embodiment learns the number of quantization bits as a learnable parameter when learning the weights of a neural network, and obtains an optimized number of quantization bits for each layer, thereby reducing hardware resources. The performance of neural networks implemented in can be improved.
도 1은 비트수에 따른 양자화 함수의 양자화를 나타낸 그래프이다.
도 2는 일 실시예 따른 양자화 정밀도 조절 장치의 개략적 구성을 나타낸다.
도 3은 도 2의 변형 양자화 모듈의 동작을 설명하기 위한 도면이다.
도 4는 도 2의 근사 역전파 모듈의 동작을 설명하기 위한 도면이다.
도 5는 일 실시예 따른 양자화 정밀도 조절 방법을 나타낸다.
도 6은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 설명하기 위한 도면이다.Figure 1 is a graph showing the quantization of a quantization function according to the number of bits.
Figure 2 shows a schematic configuration of a quantization precision adjustment device according to an embodiment.
FIG. 3 is a diagram for explaining the operation of the modified quantization module of FIG. 2.
FIG. 4 is a diagram for explaining the operation of the approximate backpropagation module of FIG. 2.
Figure 5 shows a method for controlling quantization precision according to an embodiment.
FIG. 6 is a diagram for explaining a computing environment including a computing device according to an embodiment.
이하, 도면을 참조하여 일 실시예의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of one embodiment will be described with reference to the drawings. The detailed description below is provided to provide a comprehensive understanding of the methods, devices and/or systems described herein. However, this is only an example and the present invention is not limited thereto.
일 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 일 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 일 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In describing one embodiment, if it is determined that a detailed description of the known technology related to the present invention may unnecessarily obscure the gist of an embodiment, the detailed description will be omitted. In addition, the terms described below are terms defined in consideration of functions in the present invention, and may vary depending on the intention or custom of the user or operator. Therefore, the definition should be made based on the contents throughout this specification. The terminology used in the detailed description is intended to describe only one embodiment and should in no way be limiting. Unless explicitly stated otherwise, singular forms include plural meanings. In this description, expressions such as “comprising” or “including” are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, and one or more than those described. It should not be construed to exclude the existence or possibility of any other characteristic, number, step, operation, element, or part or combination thereof. In addition, terms such as "... unit", "... unit", "module", and "block" used in the specification refer to a unit that processes at least one function or operation, which is hardware, software, or hardware. and software.
상기한 바와 같이, 기존에도 레이어별 양자화 정밀도를 조절하는 혼합 정밀도 양자화 방법이 이용된 바 있으며, 기존의 혼합 정밀도 양자화 방법으로는 규칙 기반 접근(Rule-based approach) 방식과 NAS(Neural Architecture Search) 기반 접근 방식이 대표적이다. 규칙 기반 접근 방식은 각 레이어에 대한 양자화 민감도를 측정하는 별도의 함수를 구성하여 지표값을 측정하고, 측정된 지표값을 기반으로 각 레이어의 양자화 비트수를 결정한다. 그러나 규칙 기반 접근 방식의 경우, 지표값이 실제 신경망의 성능에 대한 값이 아니므로 최적화가 어려울 뿐만 아니라, 양자화 이전에 측정된 지표값을 기반으로 비트수가 결정되므로, 양자화된 이후의 가중치에 대한 지표값이 변경될 수도 있다. 또한 비트수를 결정하는 과정과 신경망의 학습 과정이 서로 독립적으로 구분된다는 한계가 있다.As mentioned above, a mixed-precision quantization method that adjusts the quantization precision for each layer has been used, and existing mixed-precision quantization methods include a rule-based approach and a NAS (Neural Architecture Search)-based method. The approach is representative. The rule-based approach measures the index value by constructing a separate function that measures the quantization sensitivity for each layer, and determines the number of quantization bits for each layer based on the measured index value. However, in the case of the rule-based approach, not only is optimization difficult because the index value is not a value for the actual performance of the neural network, but also the number of bits is determined based on the index value measured before quantization, so it is an index for the weight after quantization. The value may change. Additionally, there is a limitation that the process of determining the number of bits and the learning process of the neural network are independent of each other.
한편, NAS 기반 접근 방식에서는 기존에 알려진 NAS 기법을 양자화 정밀도 조절을 위해 이용하는 방식으로, 가능한 모든 조합의 각 레이어별 양자화 비트수에 따른 손실 함수를 분석하여 최적 양자화 비트수를 판별한다. 그러나 NAS 접근 기반 방식에서는 가능한 모든 조합으로 레이어별 양자화 비트수를 가변하며 손실을 계산해야 하므로, 막대한 최적의 양자화 비트수를 탐색하기 위해서는 막대한 탐색 시간이 요구된다. 뿐만 아니라, 실제 신경망의 학습 과정에서 사용되는 데이터에 따라 최적의 비트수가 변화할 수 있다는 한계가 있다.Meanwhile, in the NAS-based approach, the previously known NAS technique is used to control quantization precision, and the loss function according to the number of quantization bits for each layer in all possible combinations is analyzed to determine the optimal number of quantization bits. However, in the NAS approach-based method, the loss must be calculated by varying the number of quantization bits for each layer in all possible combinations, so a huge amount of search time is required to search for the optimal number of quantization bits. In addition, there is a limitation that the optimal number of bits may change depending on the data used in the actual neural network learning process.
상기한 바와 같이, 기존의 양자화 정밀도 조절 방법은 기본적으로 양자화 비트수를 탐색하는 과정과 신경망 학습 과정이 구분되어 별도로 수행되었다. 그리고 이는 양자화 함수의 특성에 따라 신경망 학습 과정에서 최적의 양자화 비트수를 학습으로 획득하는 것이 용이하지 않기 때문이다.As mentioned above, the existing quantization precision control method basically separates the process of searching for the number of quantization bits and the neural network learning process and is performed separately. And this is because it is not easy to obtain the optimal number of quantization bits through learning during the neural network learning process, depending on the characteristics of the quantization function.
도 1은 비트수에 따른 양자화 함수의 양자화를 나타낸 그래프이다.Figure 1 is a graph showing the quantization of a quantization function according to the number of bits.
도 1에서 (a) 내지 (d)는 각각 양자화 비트수(b)가 1 내지 4인 경우(b = 1 ~ 4)에 양자화 함수(Q(xn;b))가 입력값(x)을 양자화한 결과를 나타내며, 하한(lower bound)(l)과 상한(upper bound)(u)이 각각 0과 1인 경우(l = 0, u = 1)를 도시하였다.In Figure 1 (a) to (d), when the number of quantization bits (b) is 1 to 4 (b = 1 to 4), the quantization function (Q(x n ;b)) represents the input value (x). The quantized result is shown, and the case where the lower bound (l) and upper bound (u) are 0 and 1, respectively (l = 0, u = 1) is shown.
양자화 함수(Q(xn;b))가 입력값(x)을 비트수(b)에 양자화하여 과정을 살펴보면, 우선 양자화 함수(Q(xn;b))는 상한(u)과 하한(l)을 기반으로 입력값(x)을 지정된 범위 이내의 값으로 정규화한다. 여기서 정규화값(xn)은 (여기서 clip(·)는 클립 함수)으로 획득된다. 그리고 정규화값(xn)에 대해 비트수(b)에 따른 양자화 가중치(2b-1)를 가중(xb = (2b-1)xn)하고, 양자화 가중치(2b-1)가 가중된 정규화값(xb)을 반올림 함수(round(·))로 반올림(xq = round(xb))한다. 그리고 반올림된 값(xq)을 양자화 가중치(2b-1)로 나누어 스케일을 조절()함으로써, 입력값(x)에 대한 양자화값()을 획득한다.Looking at the process by which the quantization function (Q(x n ;b)) quantizes the input value (x) to the number of bits (b), first of all, the quantization function (Q(x n ;b)) has an upper limit (u) and a lower limit ( Based on l), the input value (x) is normalized to a value within the specified range. Here, the normalized value (x n ) is (where clip(·) is obtained as a clip function). Then, the quantization weight (2 b -1) according to the number of bits (b) is weighted (x b = (2 b -1)x n ) to the normalization value (x n ), and the quantization weight (2 b -1) is The weighted normalized value (x b ) is rounded (x q = round(x b )) with the rounding function (round(·)). And the scale is adjusted by dividing the rounded value (x q ) by the quantization weight (2 b -1) ( ), the quantization value for the input value (x) ( ) to obtain.
이와 같은 양자화 함수가 양자화 함수(Q(xn;b))가 입력값(x)으로부터 양자화값()을 획득하는 과정에서 양자화 비트수(b)가 적용되는 양자화 가중치(2b-1)는 정규화값(xn)에 가중되고 이후 다시 스케일 조절 과정에 나누어져 소거된다. 따라서 양자화 비트수(b)는 양자화 함수(Q(xn;b))가 입력값(x)을 양자화값()으로 변환하는 과정에서 내부적으로만 이용될 뿐, 외부적으로는 표현되지 않는다. 이로 인해, 양자화 함수(Q(xn;b))의 양자화 비트수(b)는 인공 신경망의 학습시에 함께 학습될 수 없다. 즉 양자화 비트수(b)에 대한 학습 자체가 불가능하다는 문제가 있다.This quantization function (Q(x n ;b)) is a quantization value ( ), the quantization weight (2 b -1) to which the number of quantization bits (b) is applied is weighted to the normalization value (x n ) and is then divided and erased again in the scale adjustment process. Therefore, the number of quantization bits (b) is the quantization function (Q(x n ;b)) that converts the input value (x) to the quantization value ( ), it is only used internally and is not expressed externally. Because of this, the number of quantization bits (b) of the quantization function (Q(x n ;b)) cannot be learned together during training of the artificial neural network. In other words, there is a problem that learning about the number of quantization bits (b) itself is impossible.
도 2는 일 실시예 따른 양자화 정밀도 조절 장치의 개략적 구성을 나타내고, 도 3은 도 2의 변형 양자화 모듈의 동작을 설명하기 위한 도면이며, 도 4는 도 2의 근사 역전파 모듈의 동작을 설명하기 위한 도면이다.FIG. 2 shows a schematic configuration of a quantization precision adjustment device according to an embodiment, FIG. 3 is a diagram for explaining the operation of the modified quantization module of FIG. 2, and FIG. 4 is a diagram for explaining the operation of the approximate backpropagation module of FIG. 2. This is a drawing for
도 2에서는 실시예의 양자화 정밀도 조절 장치를 포함하는 신경망 학습 시스템을 도시하였다. 도 2에 도시된 바와 같이, 신경망 학습 시스템은 신경망 모델(11), 양자화 정밀도 조절 장치(12) 및 학습 모듈(16)을 포함할 수 있다.FIG. 2 shows a neural network learning system including a quantization precision adjustment device of an embodiment. As shown in FIG. 2, the neural network learning system may include a neural network model 11, a quantization precision adjustment device 12, and a learning module 16.
신경망 모델(11)은 학습 대상이 되는 인공 신경망 모델로서, 다수의 레이어를 포함하여 구성될 수 있다. 여기서 신경망 모델(11)의 구조와 활용되는 용도, 그리고 신경망 모델(11)에 포함되는 레이어의 개수와 각 레이어의 크기는 별도로 제한되지 않는다. 또한 각 레이어에서 가중치의 비트수는 서로 상이할 수 있다.The neural network model 11 is an artificial neural network model to be learned, and may be composed of multiple layers. Here, the structure and purpose of the neural network model 11, and the number of layers included in the neural network model 11 and the size of each layer are not separately limited. Additionally, the number of weight bits in each layer may be different.
양자화 정밀도 조절 장치(12)는 신경망 모델(11)의 다수의 레이어 각각의 가중치에 대한 비트수를 조절하는 장치로서, 각 레이어의 가중치에 대한 최적의 양자화 비트수(b)를 추정하고, 추정된 양자화 비트수(b)를 기반으로, 각 레이어에 대한 가중치를 양자화하여 신경망 모델(11)로 전달한다. 양자화 정밀도 조절 장치(12)는 각 레이어의 가중치가 학습에 의해 업데이트되는 과정에서 최적의 양자화 비트수(b)를 추정할 수 있으므로, 양자화 비트수(b) 최적화를 위한 별도의 과정을 요구하지 않는다.The quantization precision control device 12 is a device that adjusts the number of bits for the weight of each of the multiple layers of the neural network model 11. It estimates the optimal number of quantization bits (b) for the weight of each layer, and calculates the estimated number of bits. Based on the number of quantization bits (b), the weight for each layer is quantized and transmitted to the neural network model (11). The quantization precision adjustment device 12 can estimate the optimal number of quantization bits (b) in the process of updating the weight of each layer through learning, so it does not require a separate process to optimize the number of quantization bits (b). .
다만 상기한 바와 같이, 일반적인 양자화 함수(Q(xn;b))를 이용하여 가중치를 양자화하는 경우를 고려하면, 양자화 함수(Q(xn;b)) 내에서 양자화 비트수(b)에 관한 항목인 양자화 가중치(2b-1)가 소거되어 학습 자체가 수행될 수 없다. 이러한 한계를 극복하기 위해, 양자화 정밀도 조절 장치(12)는 양자화 함수(Q(xn;b))를 변형한 변형 양자화 함수를 사용하여 양자화를 수행함으로써, 양자화 비트수(b)가 인공 신경망 학습 시에 함께 학습가능한 파라미터가 될 수 있도록 한다.However, as mentioned above, considering the case of quantizing the weights using a general quantization function (Q(x n ;b)), the number of quantization bits (b) within the quantization function (Q(x n ;b)) The related item, quantization weight (2 b -1), is erased, so the learning itself cannot be performed. In order to overcome this limitation, the quantization precision control device 12 performs quantization using a modified quantization function that modifies the quantization function (Q(x n ;b)), so that the number of quantization bits (b) is adjusted for artificial neural network learning. Make it a parameter that can be learned together.
또한 양자화 함수(Q(xn;b))는 기본적으로 도 1의 (a) 내지 (d)에 도시된 바와 같이, 불연속적인 이산 함수로서 미분 불가능한 함수이며, 이는 후술하는 변형 양자화 함수 또한 마찬가지이다. 그리고 미분 불가능한 함수의 경우, 손실이 역전파될 수 없어, 학습이 정상적으로 수행되지 않는다. 이러한 문제를 해소하기 위해, 실시예의 양자화 정밀도 조절 장치(12)는 손실 역전파가 가능하도록 변형 양자화 함수를 근사화한 근사 함수를 추가로 활용함으로써, 양자화 비트수(b)가 신경망 모델(11)의 학습시에 가중치와 함께 학습에 의해 업데이트 될 수 있도록 한다.In addition, the quantization function (Q(x n ;b)) is basically a discontinuous, discrete function and a non-differentiable function, as shown in (a) to (d) of FIG. 1, and this also applies to the modified quantization function described later. . And in the case of non-differentiable functions, the loss cannot be back-propagated, so learning is not performed normally. In order to solve this problem, the quantization precision adjustment device 12 of the embodiment additionally utilizes an approximation function that approximates the modified quantization function to enable loss backpropagation, so that the number of quantization bits (b) of the neural network model 11 During training, it can be updated along with the weights through learning.
양자화 정밀도 조절 장치(12)는 양자화 비트수 추정 모듈(13), 양자화 모듈(14) 및 근사 역전파 모듈(15)을 포함할 수 있다.The quantization precision adjustment device 12 may include a quantization bit number estimation module 13, a quantization module 14, and an approximate backpropagation module 15.
양자화 비트수 추정 모듈(13)은 신경망 모델(11)에 포함된 다수의 레이어별 가중치에 대한 비트수를 입력으로 인가받아 신경망 연산함으로써, 각 레이어별 가중치의 비트수를 최적화할 수 있는 양자화 비트수(b)를 추정한다. 양자화 비트수 추정 모듈(13)은 학습 가능한 인공 신경망으로 구현되어, 신경망 모델(11)의 학습 시에 함께 학습이 수행됨으로써, 최적의 양자화 비트수(b)를 추정할 수 있다.The quantization bit number estimation module 13 receives the number of bits for the weights for each layer included in the neural network model 11 as input and performs a neural network operation to optimize the number of quantization bits for the weights for each layer. Estimate (b). The quantization bit number estimation module 13 is implemented as a learnable artificial neural network, and learning is performed simultaneously with the training of the neural network model 11, so that the optimal number of quantization bits (b) can be estimated.
양자화 모듈(14)은 입력값으로 각 레이어별 가중치(x)를 인가받고, 양자화 비트수 추정 모듈(13)에서 추정된 양자화 비트수(b)를 기반으로 인가된 레이어별 가중치가 양자화 비트수(b)에 따른 비트수를 갖는 가중치()로 양자화한다. 이때 양자화 모듈(14)은 양자화 비트수 추정 모듈(13)이 신경망 모델(11)과 함께 학습될 수 있도록 양자화 함수(Q(xn;b))가 수학식 1과 같이 변형된 변형 양자화 함수를 이용하여 가중치(x)를 양자화할 수 있다.The quantization module 14 receives the weight (x) for each layer as an input value, and the weight for each layer applied based on the number of quantization bits (b) estimated by the quantization bit number estimation module 13 is the number of quantization bits ( Weight with the number of bits according to b) ( ) is quantized. At this time, the quantization module 14 uses a modified quantization function in which the quantization function (Q(x n ;b)) is modified as shown in Equation 1 so that the quantization bit number estimation module 13 can be learned together with the neural network model 11. The weight (x) can be quantized using .
여기서 g(x;b)는 양자화 함수를 변형하기 위해 이용되는 주기 함수이다.Here, g(x;b) is a periodic function used to transform the quantization function.
이하에서는 도 3을 참조하여 수학식 1의 주기 함수(g(x;b))를 설명한다. 도 3에서 (a)는 비트수(b)가 2인 경우(b = 2) 인 경우의 양자화 함수(Q(x;2))의 동작을 나타내고, (c)는 비트수(b)가 3인 경우(b = 3) 인 경우의 양자화 함수(Q(x;3))의 동작을 나타내며, (b) 및 (d)는 각각 (a) 및 (c)의 양자화 함수에 적용할 주기 함수(g(x;b))의 동작을 나타낸다.Hereinafter, the periodic function (g(x;b)) of Equation 1 will be described with reference to FIG. 3. In Figure 3, (a) shows the operation of the quantization function (Q(x;2)) when the number of bits (b) is 2 (b = 2), and (c) shows the operation of the quantization function (Q(x;2)) when the number of bits (b) is 3. In the case (b = 3), (b) and (d) represent the operation of the quantization function (Q(x;3)), and (b) and (d) are the periodic functions ( It represents the operation of g(x;b)).
도 3의 (a) 및 (c)를 참조하여, 양자화 함수(Q(xn;b))의 동작을 다시 살펴보면, 양자화 함수(Q(xn;b))는 실질적으로 입력값인 가중치(x)에 대해 양자화 비트수(b)에 따른 주기()마다 반복하여 가중치(x)에 비례하여 선형적으로 감소하는 값을 차감함으로써, 가중치(x)를 양자화하는 것으로 볼 수 있다. 이때 반올림 함수(round(·))에 의해 주기가 반복되는 것으로 볼 수 있으며, 이에 주기를 구분하는 기준값은 주기()의 1/2 값으로 으로 볼 수 있다.Referring to (a) and (c) of FIG. 3, looking again at the operation of the quantization function (Q(x n ;b)), the quantization function (Q(x n ;b)) is substantially the input value, the weight ( Period according to the number of quantization bits (b) for x) ( ) can be seen as quantizing the weight (x) by repeating every time and subtracting a value that decreases linearly in proportion to the weight (x). At this time, the cycle can be viewed as being repeated by the rounding function (round(·)), and the standard value for dividing the cycle is the cycle ( ) to 1/2 the value of It can be seen as
수학식 1에 따르면, 주기 함수(g(x;b))는 양자화 함수(Q(xn;b))에서 가중치(x)를 차감한 값(Q(xn;b) - x)로 계산될 수 있으며, 도 3의 (b) 및 (d)에 도시된 바와 같이, 주기적으로 반복하여 선형 감소하는 함수 형태를 가지며, 수학식 2와 같이 정의될 수 있다. According to Equation 1, the periodic function (g(x;b)) is calculated by subtracting the weight (x) from the quantization function (Q(x n ;b)) (Q(x n ;b) - x) As shown in (b) and (d) of FIG. 3, it has a function form that repeats periodically and linearly decreases, and can be defined as Equation 2.
수학식 2에서는 가중치(x)가 단지 첫번째 주기 구간인 의 범위에 포함된 경우만을 나타낸 것으로, 도 3의 (b) 및 (d)에서와 같이 주기 함수(g(x;b))는 양자화 함수가 양자화를 수행하는 상한(u)과 하한(l)의 범위 내에서 적용될 수 있다.In Equation 2, the weight (x) is only the first cycle section. It only shows cases included in the range of , and as shown in Figures 3 (b) and (d), the periodic function (g(x;b)) is the upper limit (u) and lower limit (l) at which the quantization function performs quantization. It can be applied within the scope of.
그리고 상기한 바와 같이, 주기 함수(g(x;b))는 주기()를 갖는 함수이므로, 첫번째 주기 구간()을 제외한 다른 주기 구간은 으로 계산될 수 있다. 그리고 주기 함수(g(x;b))는 양자화 비트수(b)에 따라, 최대값이 주기()의 비율로 스케일링되는 함수이다.And as mentioned above, the periodic function (g(x;b)) has a period ( ), so the first period section ( ), other cycle sections except It can be calculated as And the periodic function (g(x;b)), depending on the number of quantization bits (b), has a maximum value of the period ( ) is a function that is scaled by the ratio.
그러므로 수학식 1 및 2에 따라 양자화 함수(Q(xn;b))를 가중치(x)와 주기 함수(g(x;b))의 합(x + g(x;b))으로 변형할지라도 가중치(x)는 동일한 양자화값()으로 양자화된다. 이에 양자화 모듈(14)은 변형된 양자화 함수(x + g(x;b))를 이용하여 신경망 모델(11)의 각 레이어의 가중치(x)를 양자화 가중치()로 양자화하여 전달한다.Therefore, according to Equations 1 and 2, the quantization function (Q(x n ;b)) can be transformed into the sum (x + g(x;b)) of the weight (x) and the periodic function (g(x;b)). Even though the weight (x) is the same quantization value ( ) is quantized. Accordingly, the quantization module 14 uses the modified quantization function (x + g(x;b)) to set the weight (x) of each layer of the neural network model 11 to the quantization weight ( ) is quantized and transmitted.
다만 여기서 양자화 모듈(13)이 변형된 양자화 함수(x + g(x;b))를 이용하여 가중치(x)를 양자화하는 것은, 이후 근사 역전파 모듈(15)이 학습 모듈(16)에서 획득된 손실에 근사 양자화 함수를 적용하여 신경망 모델(11)의 각 레이어와 양자화 비트수 추정 모듈(13)로 역전파될 수 있도록 하기 위한 것일 뿐, 수학식 1에 나타난 바와 같이, 양자화 함수(Q(xn;b))로 양자화된 양자화 가중치()와 변형된 양자화 함수(x + g(x;b))에 의해 양자화된 양자화 가중치()는 동일한 값을 갖는다. 따라서 양자화 모듈(13)은 변형된 양자화 함수(x + g(x;b)) 뿐만 아니라 기존의 양자화 함수(Q(xn;b))를 이용하여 양자화를 수행할 수도 있다.However, here, the quantization module 13 quantizes the weight (x) using the modified quantization function (x + g(x;b)), and then the approximate backpropagation module 15 obtains it from the learning module 16. The purpose is to apply an approximate quantization function to the loss so that it can be back-propagated to each layer of the neural network model (11) and the quantization bit number estimation module (13). As shown in Equation 1, the quantization function (Q( quantized weight ( ) and the quantization weight (quantized by the modified quantization function (x + g(x;b))) ) has the same value. Accordingly, the quantization module 13 may perform quantization using not only the modified quantization function (x + g(x;b)) but also the existing quantization function (Q(x n ;b)).
신경망 모델(11)은 양자화 모듈(13)에서 획득된 양자화 가중치()를 인가받아 다수의 레이어 각각의 가중치(x)를 치환하여 설정하고, 설정된 양자화 가중치()에 따라 입력 데이터를 신경망 연산하여 출력 데이터를 출력한다.The neural network model (11) uses the quantization weight ( ) is approved and the weight (x) of each of the multiple layers is replaced and set, and the set quantization weight ( ), performs a neural network operation on the input data and outputs the output data.
학습 모듈(16)은 신경망 모델(11)의 출력 데이터를 인가받고, 지정된 손실 함수를 기반으로 인가된 출력 데이터에 대한 손실을 계산하여 신경망 모델(11)로 역전파함으로써, 신경망 모델(11)을 학습시킨다. 즉 신경망 모델(11)의 각 레이어의 가중치()를 업데이트한다.The learning module 16 receives the output data of the neural network model 11, calculates the loss for the applied output data based on a designated loss function, and backpropagates it to the neural network model 11, thereby creating the neural network model 11. Let them learn. That is, the weight of each layer of the neural network model (11) ( ) is updated.
다만 양자화 함수(Q(xn;b))와 변형 양자화 함수(x + g(x;b))는 모두 불연속적인 이산 함수로서 미분 불가능한 함수이므로, 학습 모듈(16)에서 획득된 손실이 정상적으로 양자화 비트수 추정 모듈(13)으로 역전파되지 못한다.However, since the quantization function (Q(x n ;b)) and the modified quantization function (x + g(x;b)) are both discontinuous and non-differentiable functions, the loss obtained in the learning module 16 is normally quantized. It cannot be back-propagated to the bit number estimation module 13.
이에 양자화 정밀도 조절 장치(12)는 근사 역전파 모듈(15)을 구비하고, 근사 역전파 모듈(15)은 변형 양자화 함수(x + g(x;b))를 미분 가능한 근사 함수로 근사화하여 손실이 역전파될 수 있도록 한다. 특히 근사 역전파 모듈(15)은 변형 양자화 함수(x + g(x;b))에서 불연속성을 갖는 주기 함수(g(x;b))를 수학식 3과 같이 연속성을 갖는 사인 함수로 근사화한 근사 주기 함수(g(x;b) ≒ h(x;b))를 이용하여 근사 함수(x + h(x;b))를 구성하고, 구성된 근사 함수(x + h(x;b))를 이용하여 손실을 역전파한다.Accordingly, the quantization precision control device 12 is provided with an approximate back-propagation module 15, and the approximate back-propagation module 15 approximates the modified quantization function (x + g(x;b)) with a differentiable approximation function to reduce the loss. Allow this to be back-propagated. In particular, the approximate backpropagation module 15 approximates the periodic function (g(x;b)) with discontinuity in the modified quantization function (x + g(x;b)) as a sine function with continuity as shown in Equation 3. Construct the approximate function (x + h(x;b)) using the approximate periodic function (g(x;b) ≒ h(x;b)), and construct the approximate function (x + h(x;b)) Backpropagate the loss using .
여기서 근사 주기 함수(h(x;b))는 주기 함수(g(x;b))와 마찬가지로 의 주기를 갖고 양자화 비트수(b)에 따라, 최대값이 주기()의 비율로 스케일링되는 함수이다.Here, the approximate periodic function (h(x;b)) is similar to the periodic function (g(x;b)). It has a period of and depending on the number of quantization bits (b), the maximum value is the period ( ) is a function that is scaled by the ratio.
즉 근사 함수(x + h(x;b))는 변형 양자화 함수(x + g(x;b))에서 주기 함수(g(x;b))를 동일한 주기를 갖는 사인 함수 형태인 근사 주기 함수(g(x;b) ≒ h(x;b))로 치환하여 획득될 수 있다.That is, the approximate function (x + h(x;b)) is an approximate periodic function in the form of a sine function with the same period as the periodic function (g(x;b)) in the modified quantization function (x + g(x;b)). It can be obtained by substituting (g(x;b) ≒ h(x;b)).
도 4에서 (a)와 (c)는 도 3의 (b)와 (d)와 마찬가지로, 양자화 비트수(b)가 2 및 3인 경우(b = 2, 3)의 주기 함수(g(x;b))와 이의 근사 주기 함수(h(x;b))를 나타내고, 도 4의 (b)와 (d)는 (a) 및 (c)의 주기 함수(g(x;b))와 근사 주기 함수(h(x;b))에 가중치(x)를 적용한 결과를 나타낸다.In Figure 4 (a) and (c), like (b) and (d) in Figure 3, the periodic function (g(x) when the number of quantization bits (b) is 2 and 3 (b = 2, 3) ;b)) and its approximate periodic function (h(x;b)), and (b) and (d) of Figures 4 represent the periodic function (g(x;b)) of (a) and (c) It shows the result of applying a weight (x) to the approximate periodic function (h(x;b)).
도 4에 도시된 바와 같이, 변형된 양자화 함수에서 주기 함수(g(x;b))를 대체하여 근사 주기 함수(h(x;b))를 적용하면 일정 수준의 오차가 발생할 수 있으나, 미분 가능한 함수 형태로 변환되므로, 근사 주기 함수(h(x;b))의 미분값을 이용하여 손실 역전파가 가능하게 된다.As shown in Figure 4, if the approximate periodic function (h(x;b)) is applied instead of the periodic function (g(x;b)) in the modified quantization function, a certain level of error may occur, but the differentiation Since it is converted into a possible functional form, lossy backpropagation is possible using the differential value of the approximate periodic function (h(x;b)).
다만 양자화 비트수 추정 모듈(13) 또한 인공 신경망이므로, 신경망 모델(11)의 학습과 함께 학습되어야 하며, 이를 위해 학습 모듈(16)은 양자화 비트수 추정 모듈(13)을 학습시키기 위한 손실을 추가적으로 획득해야 한다.However, since the quantization bit number estimation module 13 is also an artificial neural network, it must be learned along with the learning of the neural network model 11. To this end, the learning module 16 additionally applies a loss for training the quantization bit number estimation module 13. Must be acquired.
학습 모듈(16)은 신경망 모델(11)을 학습시키기 위해 획득된 신경망 손실(Lgt)을 우선 획득할 수 있다. 신경망 손실(Lgt)은 신경망 모델(11)에 따라 미리 설정된 손실 함수를 이용하여 계산될 수 있으며, 신경망 손실(Lgt)은 양자화 비트수 추정 모듈(13)의 학습에도 이용된다. 그러나 학습 모듈(16)은 양자화 비트수 추정 모듈(13)을 위해 메모리 용량 제한 손실을 추가적으로 계산한다.The learning module 16 may first obtain the neural network loss (L gt ) obtained to train the neural network model 11. The neural network loss (L gt ) can be calculated using a loss function preset according to the neural network model 11, and the neural network loss (L gt ) is also used for learning the quantization bit number estimation module 13. However, the learning module 16 additionally calculates the memory capacity limitation loss for the quantization bit number estimation module 13.
많은 경우 신경망 모델(11)은 전용 하드웨어로 구현되지 않고, 범용 프로세서와 메모리를 포함하는 범용 기기에서 운용되는 소프트웨어 형식으로 구현된다. 그러므로 대부분의 신경망 모델(11)은 실질적으로 메모리에 저장되어 프로세서에 의해 실행되는 프로그램 코드와 가중치로 구성되는 것으로 볼 수 있다. 그러므로 가중치의 비트수, 즉 양자화 비트수(b)는 메모리 용량에 의해 제한되어야 한다. 따라서 학습 모듈(16)은 신경망 모델(11)이 적용되는 장치의 메모리 용량이 고려하여 메모리 용량 제한 손실을 더 계산할 수 있다.In many cases, the neural network model 11 is not implemented as dedicated hardware, but as software that runs on a general-purpose device that includes a general-purpose processor and memory. Therefore, most neural network models 11 can be viewed as consisting of program code and weights that are actually stored in memory and executed by a processor. Therefore, the number of bits of the weight, that is, the number of quantization bits (b), must be limited by memory capacity. Therefore, the learning module 16 can further calculate the memory capacity limitation loss by considering the memory capacity of the device to which the neural network model 11 is applied.
학습 모듈(16)은 가중치의 양자화 비트수(b)에 따른 가중치 메모리 용량 제한 손실(Lw)을 수학식 4에 따라 계산할 수 있다.The learning module 16 can calculate the weight memory capacity limit loss (L w ) according to the number of quantization bits (b) of the weight according to Equation 4.
여기서 pi 는 가중치이고, i는 가중치 식별자이며, bi w는 가중치(pi)의 비트수이며, bt w는 메모리 용량을 고려한 가중치 타겟 비트수이다. 그리고 가중치 타겟 비트수(bt w)는 신경망의 가중치를 저장하기 위해 활용할 수 있는 메모리 용량에 따라 설정 가능한 가중치 비트수의 평균값으로 설정될 수 있다.Here, p i is the weight, i is the weight identifier, b i w is the number of bits of the weight (p i ), and b t w is the weight target number of bits considering memory capacity. And the weight target number of bits (b t w ) can be set as the average value of the number of weight bits that can be set according to the memory capacity that can be utilized to store the weight of the neural network.
이에 학습 모듈(16)은 양자화 비트수 추정 모듈(13)을 학습시키기 위한 손실을 수학식 5에 따라 계산하고, 계산된 손실을 근사 역전파 모듈(15)로 전달하여 근사화 함수를 이용하여 역전파할 수 있다.Accordingly, the learning module 16 calculates the loss for training the quantization bit number estimation module 13 according to Equation 5, transfers the calculated loss to the approximate back-propagation module 15, and back-propagates using the approximation function. can do.
여기서 λw 는 가중치 메모리 용량 제한 손실(Lw)을 위한 손실 가중치이다.Here, λ w is the loss weight for the weight memory capacity limit loss (L w ).
다만 상기한 바와 같이, 신경망 모델(11)의 다수의 레이어 각각은 다수의 가중치를 구비하여 입력되는 데이터에 대해 컨볼루션 연산과 같은 지정된 가중 연산을 수행할 뿐만 아니라 이후, 지정된 활성화 함수(activation function)에 따라 활성화 연산을 수행하여 특징자를 출력하며, 출력된 특징자는 다른 레이어의 입력으로 인가될 수 있도록 메모리에 저장된다. 활성화 함수는 일반적으로 가중 연산 출력(y)에 대해 ay + c와 같은 방식으로 연산을 수행하도록 구현되며, 이때, 가중 연산 출력(y)에 대해 가중되는 활성화 가중치(a)의 비트수에 따라 특징자의 비트수가 가변된다고 볼 수 있다.However, as mentioned above, each of the plurality of layers of the neural network model 11 has a plurality of weights and not only performs a designated weighting operation such as a convolution operation on the input data, but also performs a designated activation function. Accordingly, an activation operation is performed to output features, and the output features are stored in memory so that they can be applied as input to other layers. The activation function is generally implemented to perform an operation such as ay + c on the weighted operation output (y), and at this time, the characteristics are determined according to the number of bits of the activation weight (a) weighted for the weighted operation output (y). It can be seen that the number of bits of a character is variable.
따라서 학습 모듈(16)은 제한된 메모리 용량에서 신경망 모델(11)이 안정적으로 구동될 수 있도록, 가중치에 대한 메모리 용량 제한 손실을 나타내는 가중치 메모리 용량 제한 손실(Lw)을 계산할 뿐만 아니라 활성화 가중치(a)에 따른 특징자 메모리 용량 제한 손실(La)을 추가적으로 계산할 수도 있다.Therefore, the learning module 16 not only calculates the weight memory capacity limit loss (L w ), which represents the memory capacity limit loss for the weights, but also calculates the activation weight (a ), the feature memory capacity limit loss (L a ) can be additionally calculated.
특징자 메모리 용량 제한 손실(La)은 수학식 6으로 계산될 수 있다.The feature memory capacity limit loss (L a ) can be calculated using Equation 6.
여기서 ai 는 활성화 가중치이고, i는 활성화 가중치 식별자이며, bi a는 활성화 가중치(ai)의 비트수이며, bt a는 메모리 용량을 고려한 활성화 가중치 타겟 비트수이다. 그리고 활성화 가중치 타겟 비트수(bt a)는 가중치 타겟 비트수(bt w)와 유사하게 활성화 가중치를 저장하기 위해 활용할 수 있는 메모리 용량에 따라 설정 가능한 가중치 비트수의 평균값으로 설정될 수 있다.Here, a i is the activation weight, i is the activation weight identifier, b i a is the number of bits of the activation weight (a i ), and b t a is the activation weight target number of bits considering memory capacity. And the activation weight target number of bits (b t a ), similar to the weight target number of bits (b t w ), can be set to the average value of the number of weight bits that can be set according to the memory capacity that can be utilized to store the activation weight.
이에 학습 모듈(16)은 특징자 메모리 용량 제한 손실(La)을 추가로 적용하여 양자화 비트수 추정 모듈(13)을 학습시키기 위한 손실을 수학식 7에 따라 계산하고 역전파할 수도 있다.Accordingly, the learning module 16 may additionally apply the feature memory capacity limitation loss (L a ) to calculate and backpropagate the loss for training the quantization bit number estimation module 13 according to Equation 7.
여기서 λa 는 특징자 메모리 용량 제한 손실(La)을 위한 손실 가중치이다.Here, λ a is the loss weight for the feature memory capacity limitation loss (L a ).
학습 모듈(16)은 계산 수학식 6 또는 7에 따라 계산되는 총 손실이 기준 손실 이하가 되거나 학습 반복 횟수가 기준 횟수를 초과하면 학습을 종료하여 손실을 역전파하지 않을 수 있다.The learning module 16 may terminate learning and not backpropagate the loss when the total loss calculated according to Equation 6 or 7 becomes less than or equal to the reference loss or when the number of learning repetitions exceeds the reference number.
도 2에서 양자화 정밀도 조절 장치(12)와 학습 모듈(16)은 신경망 모델(11)의 학습 시에만 요구되는 구성으로, 신경망 모델(11)은 학습이 완료된 이후에는 활용되지 않는다. 즉 학습이 완료된 신경망 모델(11)만이 별도로 요구되는 장치에 적용된다. 다만 경우에 따라서 양자화 비트수 추정 모듈(13)은 신경망 모델(11)에 포함되어 구성될 수 있다. 즉 신경망 모델(11)과 별도의 신경망이 아니라 신경망 모델(11)에 통합된 신경망으로 구현될 수도 있다.In FIG. 2, the quantization precision control device 12 and the learning module 16 are components required only when learning the neural network model 11, and the neural network model 11 is not used after learning is completed. That is, only the neural network model 11 that has completed learning is applied to a separately required device. However, in some cases, the quantization bit number estimation module 13 may be included in the neural network model 11. In other words, it may be implemented as a neural network integrated into the neural network model 11 rather than as a separate neural network from the neural network model 11.
결과적으로 실시예에 따른 양자화 정밀도 조절 장치(12)는 신경망 모델(11)의 학습 시에 신경망 모델(11)의 다수의 레이어의 가중치의 비트수를 입력으로 인가받아, 각 레이어별 가중치에 대한 최적의 양자화 비트수를 추정하여 가중치를 양자화한다. 특히 신경망 모델(11)의 학습시에 함께 학습을 통해 최적의 양자화 비트수를 추정함으로써, 메모리 용량과 같은 제한된 하드웨어 자원을 갖는 장치에 적용되는 경우에도, 신경망 모델(11)이 가능한 최상의 성능을 나타내도록 할 수 있다.As a result, the quantization precision adjustment device 12 according to the embodiment receives the number of bits of the weights of multiple layers of the neural network model 11 as input when learning the neural network model 11, and optimizes the weight for each layer. Quantize the weight by estimating the number of quantization bits. In particular, by estimating the optimal number of quantization bits through learning together when learning the neural network model 11, the neural network model 11 shows the best possible performance even when applied to devices with limited hardware resources such as memory capacity. You can do it.
도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 구성을 포함할 수 있다. 또한, 일 실시예에서, 각 구성은 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.In the illustrated embodiment, each component may have different functions and capabilities in addition to those described below, and may include additional components other than those described below. Additionally, in one embodiment, each configuration may be implemented using one or more physically separate devices, one or more processors, or a combination of one or more processors and software, and, unlike the example shown, may be implemented in specific operations. It may not be clearly distinguished.
그리고 도 2에 도시된 양자화 정밀도 조절 장치는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로 내에서 구현될 수 있고, 범용 또는 특정 목적 컴퓨터를 이용하여 구현될 수도 있다. 장치는 고정배선형(Hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(Field Programmable Gate Array, FPGA), 주문형 반도체(Application Specific Integrated Circuit, ASIC) 등을 이용하여 구현될 수 있다. 또한, 장치는 하나 이상의 프로세서 및 컨트롤러를 포함한 시스템온칩(System on Chip, SoC)으로 구현될 수 있다.Additionally, the quantization precision adjustment device shown in FIG. 2 may be implemented within a logic circuit using hardware, firmware, software, or a combination thereof, and may also be implemented using a general-purpose or special-purpose computer. The device may be implemented using hardwired devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc. Additionally, the device may be implemented as a System on Chip (SoC) including one or more processors and a controller.
뿐만 아니라 양자화 정밀도 조절 장치는 하드웨어적 요소가 마련된 컴퓨팅 장치 또는 서버에 소프트웨어, 하드웨어, 또는 이들의 조합하는 형태로 탑재될 수 있다. 컴퓨팅 장치 또는 서버는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신장치, 프로그램을 실행하기 위한 데이터를 저장하는 메모리, 프로그램을 실행하여 연산 및 명령하기 위한 마이크로프로세서 등을 전부 또는 일부 포함한 다양한 장치를 의미할 수 있다.In addition, the quantization precision control device may be mounted on a computing device or server equipped with hardware elements in the form of software, hardware, or a combination thereof. A computing device or server includes all or part of a communication device such as a communication modem for communicating with various devices or wired and wireless communication networks, a memory for storing data to execute a program, and a microprocessor for executing a program to perform calculations and commands. It can refer to a variety of devices, including:
도 5는 일 실시예 따른 양자화 정밀도 조절 방법을 나타낸다.Figure 5 shows a method for controlling quantization precision according to an embodiment.
도 2 내지 4를 참조하여 도 5의 양자화 정밀도 조절 방법을 설명하면, 우선 양자화 비트수 추정 모듈(13)이 학습 대상이 되는 신경망 모델(11)의 다수의 레이어의 가중치에 현재 설정된 비트수를 입력으로 인가받아 신경망 연산을 수행하여 각 레이어별 가중치에 대한 최적의 양자화 비트수(b)를 추정한다(21). 여기서 양자화 비트수 추정 모듈(13)은 학습 대상이 되는 신경망 모델(11)과 별도의 인공 신경망으로 구현될 수 있다.When explaining the quantization precision control method of FIG. 5 with reference to FIGS. 2 to 4, first, the quantization bit number estimation module 13 inputs the currently set number of bits to the weights of multiple layers of the neural network model 11 to be learned. The optimal number of quantization bits (b) for the weight of each layer is estimated by performing a neural network operation (21). Here, the quantization bit number estimation module 13 may be implemented as an artificial neural network separate from the neural network model 11 that is the learning target.
그리고 신경망 모델(11)의 가중치를 추정된 양자화 비트수(b)에 따라 양자화한다(22). 이때 가중치는 일반적인 양자화 함수(Q(xn;b))에 따라 양자화될 수도 있으나, 입력되는 가중치(x)와 양자화 비트수(b)에 따른 주기()로 반복되는 주기 함수(g(x;b))의 합으로 표현되는 변형 양자화 함수(x + g(x;b))에 따라 양자화 될 수도 있다.Then, the weights of the neural network model (11) are quantized according to the estimated number of quantization bits (b) (22). At this time, the weight may be quantized according to a general quantization function (Q(x n ;b)), but the period ( ) can also be quantized according to a modified quantization function (x + g(x;b)) expressed as the sum of a periodic function (g(x;b)) repeated as ).
신경망 모델(11)의 가중치가 양자화 비트수(b)에 따라 양자화되면, 양자화된 가중치()를 신경망 모델(11)의 가중치로 저장한다(23).If the weight of the neural network model (11) is quantized according to the number of quantization bits (b), the quantized weight ( ) is stored as the weight of the neural network model (11) (23).
신경망 모델(11)의 가중치가 양자화된 가중치로 변경되면, 신경망 모델(11)을 학습시키기 위해 준비된 학습 데이터를 신경망 모델(11)로 입력하여 학습을 시작한다(24). 학습 데이터가 인가된 신경망 모델(11)인 신경망 연산을 수행하여 출력 데이터를 출력하면, 학습 모듈(16)은 손실을 계산한다(25). 학습 모듈(16)은 학습 데이터에 대해 미리 설정된 방식으로 신경망 손실(Lgt)을 우선 계산할 수 있다. 일 예로 신경망 손실(Lgt)은 학습 데이터와 매칭되어 설정된 진리값(Ground truth)와 출력 데이터 사이의 차이를 기반으로 계산될 수 있다. 이와 함께 학습 모듈(16)은 양자화 비트수(b)를 추정하는 양자화 비트수 추정 모듈(13)을 학습시키기 위한 메모리 용량 제한 손실을 더 계산한다. 여기서 메모리 용량 제한 손실에는 가중치의 양자화 비트수(b)에 따른 가중치 메모리 용량 제한 손실(Lw)이 포함되며, 활성화 가중치(a)에 따른 특징자 메모리 용량 제한 손실(La)이 추가로 포함될 수 있다.When the weight of the neural network model 11 is changed to a quantized weight, training data prepared for learning the neural network model 11 is input into the neural network model 11 to start learning (24). When the learning data is the applied neural network model 11, a neural network operation is performed and the output data is output, the learning module 16 calculates the loss (25). The learning module 16 may first calculate the neural network loss (L gt ) in a preset manner for the learning data. As an example, the neural network loss (L gt ) can be calculated based on the difference between the output data and the ground truth set by matching the training data. In addition, the learning module 16 further calculates the memory capacity limitation loss for training the quantization bit number estimation module 13, which estimates the quantization bit number b. Here, the memory capacity limitation loss includes the weight memory capacity limitation loss (L w ) according to the number of quantization bits (b) of the weight, and additionally includes the feature memory capacity limitation loss (L a ) according to the activation weight (a). You can.
그리고 학습 모듈(16)은 신경망 손실(Lgt)과 메모리 용량 제한 손실의 합으로 계산되는 총 손실이 지정된 기준 손실 이하인지 판별한다(26). 또는 반복 학습 횟수가 기준 횟수를 초과하였는지 여부를 판별할 수도 있다. 만일 총 손실이 기준 손실 이하이거나 학습 횟수가 기준 횟수를 초과하면, 학습이 종료된 것으로 판별하여 현재 추정된 양자화 비트수(b)에 따라 설정된 신경망 모델(11)의 각 레이어의 가중치에 대한 최종적인 가중치 비트수로 결정한다(28).And the learning module 16 determines whether the total loss calculated as the sum of the neural network loss (L gt ) and the memory capacity limit loss is less than or equal to the specified reference loss (26). Alternatively, it may be determined whether the number of repetitive learning exceeds the standard number. If the total loss is less than the standard loss or the number of learning exceeds the standard number, learning is determined to be completed and the final weight of each layer of the neural network model (11) set according to the currently estimated number of quantization bits (b) is determined. It is determined by the number of weight bits (28).
그러나 만일 총 손실이 기준 손실을 초과하거나 학습 횟수가 기준 횟수를 이하이면, 계산된 손실을 역전파하여 신경망 모델(11)과 양자화 비트수 추정 모듈(13)을 함께 학습시킨다(27). 여기서 신경망 모델(11)로는 신경망 손실(Lgt)만을 역전파하고, 양자화 비트수 추정 모듈(13)로는 신경망 손실(Lgt)과 메모리 용량 제한 손실의 합을 역전파하여 학습시킬 수 있다. 다만 양자화 함수(Q(xn;b)) 또는 변형 양자화 함수(x + g(x;b)) 모두 불연속 함수로서 미분 불가능한 함수이므로, 계산된 손실을 역전파하기 어렵다. 이에 실시예에서는 손실의 미분값으로 나타나는 기울기가 역전파될 수 있도록, 변형 양자화 함수(x + g(x;b))에서 불연속 함수인 주기 함수(g(x;b))를 연속적인 사인 함수 형식으로 근사 변형한 근사 주기 함수(g(x;b) ≒ h(x;b))를 기반으로 변형 양자화 함수(x + g(x;b))를 근사 함수(x + h(x;b))로 치환하여 이용함으로써 손실이 역전파될 수 있도록 한다.However, if the total loss exceeds the reference loss or the learning number is less than the reference number, the calculated loss is back-propagated and the neural network model 11 and the quantization bit number estimation module 13 are trained together (27). Here, only the neural network loss (L gt ) can be back-propagated to the neural network model (11), and the quantization bit number estimation module (13) can be trained by back-propagating the sum of the neural network loss (L gt ) and memory capacity limitation loss. However, since the quantization function (Q(x n ;b)) or the modified quantization function (x + g(x;b)) are both discontinuous and non-differentiable, it is difficult to backpropagate the calculated loss. Accordingly, in the embodiment, the periodic function (g(x;b)), which is a discontinuous function in the modified quantization function (x + g(x;b)), is converted into a continuous sine function so that the gradient represented by the differential value of the loss can be back-propagated. Based on the approximate periodic function (g(x;b) ≒ h(x;b)) approximated in the form, the transformed quantization function (x + g(x;b)) is converted to the approximate function (x + h(x;b) )) to enable the loss to be back-propagated.
그리고 다시 양자화 비트수(b)를 추정하기 위해 현재 추정되어 가중치의 비트수로 설정된 양자화 비트수(b)를 양자화 비트수 추정 모듈(13)의 입력으로 다시 인가한다(21).Then, in order to estimate the number of quantization bits (b) again, the currently estimated number of quantization bits (b), which is set as the number of weight bits, is applied again as an input to the quantization bit number estimation module 13 (21).
도 5에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 5에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능하다.In FIG. 5, each process is described as being sequentially executed, but this is only an illustrative explanation, and those skilled in the art can change the order shown in FIG. 5 and execute it without departing from the essential characteristics of the embodiments of the present invention. Alternatively, it can be applied through various modifications and modifications by executing one or more processes in parallel or adding other processes.
도 6은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 설명하기 위한 도면이다.FIG. 6 is a diagram for explaining a computing environment including a computing device according to an embodiment.
도시된 실시예에서, 각 구성 요소들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 않은 것 이외에도 추가적인 구성 요소를 포함할 수 있다. 도시된 컴퓨팅 환경(30)은 컴퓨팅 장치(31)를 포함하여, 도 6에 도시된 양자화 정밀도 조절 방법을 수행할 수 있다. 일 실시예에서, 컴퓨팅 장치(31)는 도 4에 도시된 양자화 정밀도 조절 장치에 포함된 하나 이상의 구성 요소일 수 있다.In the illustrated embodiment, each component may have different functions and capabilities in addition to those described below, and may include additional components in addition to those not described below. The illustrated computing environment 30 may include a computing device 31 to perform the quantization precision adjustment method shown in FIG. 6 . In one embodiment, computing device 31 may be one or more components included in the quantization precision adjustment device shown in FIG. 4 .
컴퓨팅 장치(31)는 적어도 하나의 프로세서(32), 컴퓨터 판독 가능 저장매체(33) 및 통신 버스(35)를 포함한다. 프로세서(32)는 컴퓨팅 장치(31)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(32)는 컴퓨터 판독 가능 저장매체(33)에 저장된 하나 이상의 프로그램들(34)을 실행할 수 있다. 상기 하나 이상의 프로그램들(34)은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(32)에 의해 실행되는 경우 컴퓨팅 장치(31)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.Computing device 31 includes at least one processor 32, a computer-readable storage medium 33, and a communication bus 35. Processor 32 may cause computing device 31 to operate according to the above-mentioned example embodiments. For example, the processor 32 may execute one or more programs 34 stored in the computer-readable storage medium 33. The one or more programs 34 may include one or more computer-executable instructions, which, when executed by the processor 32, cause the computing device 31 to perform operations according to an example embodiment. It can be configured to perform these.
통신 버스(35)는 프로세서(32), 컴퓨터 판독 가능 저장매체(33)를 포함하여 컴퓨팅 장치(31)의 다른 다양한 구성 요소들을 상호 연결한다.Communication bus 35 interconnects various other components of computing device 31, including processor 32 and computer-readable storage media 33.
컴퓨팅 장치(31)는 또한 하나 이상의 입출력 장치(38)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(36) 및 하나 이상의 통신 인터페이스(37)를 포함할 수 있다. 입출력 인터페이스(36) 및 통신 인터페이스(37)는 통신 버스(35)에 연결된다. 입출력 장치(38)는 입출력 인터페이스(36)를 통해 컴퓨팅 장치(31)의 다른 구성 요소들에 연결될 수 있다. 예시적인 입출력 장치(38)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(38)는 컴퓨팅 장치(31)를 구성하는 일 구성 요소로서 컴퓨팅 장치(31)의 내부에 포함될 수도 있고, 컴퓨팅 장치(31)와는 구별되는 별개의 장치로 컴퓨팅 장치(31)와 연결될 수도 있다.Computing device 31 may also include one or more input/output interfaces 36 and one or more communication interfaces 37 that provide an interface for one or more input/output devices 38 . The input/output interface 36 and communication interface 37 are connected to the communication bus 35. Input/output device 38 may be coupled to other components of computing device 31 through input/output interface 36. Exemplary input/output devices 38 include, but are not limited to, a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touch screen), a voice or sound input device, various types of sensor devices, and/or imaging devices. It may include input devices and/or output devices such as display devices, printers, speakers, and/or network cards. The exemplary input/output device 38 is a component constituting the computing device 31 and may be included within the computing device 31. The exemplary input/output device 38 may be a separate device distinct from the computing device 31 and may be included in the computing device 31. It may be connected.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described in detail through representative embodiments above, those skilled in the art will understand that various modifications and other equivalent embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention should be determined by the technical spirit of the attached claims.
11: 신경망 모델
12: 양자화 정밀도 조절 장치
13: 양자화 비트수 추정 모듈
14: 양자화 모듈
15: 근사 역전파 모듈
16: 학습 모듈11: Neural network model 12: Quantization precision adjuster
13: Quantization bit number estimation module 14: Quantization module
15: Approximate backpropagation module 16: Learning module
Claims (20)
상기 프로세서는
인공 신경망을 이용하여 학습 대상인 신경망 모델의 다수의 레이어 포함된 가중치의 비트수를 인가받아 신경망 연산하여 양자화 비트수를 추정하고,
추정된 양자화 비트수에 따라 상기 신경망 모델의 가중치를 양자화하며,
상기 가중치와 주기 함수의 합으로 변형된 변형 양자화 함수를 연속 함수로 근사화한 근사 함수를 이용하여, 상기 신경망 모델의 학습 시에 계산되는 손실을 상기 인공 신경망으로 역전파하는 양자화 정밀도 조절 장치.One or more processors; and a memory storing one or more programs executed by the one or more processors,
The processor is
Using an artificial neural network, the number of bits of weights included in multiple layers of the neural network model that is the subject of learning is received and the number of quantization bits is estimated by performing neural network calculations,
Quantizing the weights of the neural network model according to the estimated number of quantization bits,
A quantization precision control device that backpropagates the loss calculated during training of the neural network model to the artificial neural network using an approximation function that approximates the modified quantization function transformed by the sum of the weight and the periodic function to a continuous function.
상기 변형 양자화 함수의 상기 주기 함수를 동일한 주기를 갖는 사인 함수 형태의 근사 주기 함수로 치환하여 획득되는 양자화 정밀도 조절 장치.The method of claim 1, wherein the approximate function is
A quantization precision control device obtained by replacing the periodic function of the modified quantization function with an approximate periodic function in the form of a sine function having the same period.
양자화 함수의 입력값인 가중치 상기 양자화 비트수에 따른 주기 및 스케일을 갖는 주기 함수의 합으로 계산되는 양자화 정밀도 조절 장치.The method of claim 1, wherein the modified quantization function is
A quantization precision control device that calculates the weight, which is an input value of the quantization function, as the sum of a periodic function with a period and scale according to the number of quantization bits.
수학식
(여기서 g(x;b)는 주기 함수이고 가중치(x)가 첫번째 주기 구간인 의 범위에 포함된 경우이며, b는 양자화 비트수)로 계산되고,
다른 주기 구간에서는 으로 계산되며,
주기 함수(g(x;b))의 주기는 인 양자화 정밀도 조절 장치.The method of claim 1, wherein the periodic function is
math equation
(where g(x;b) is a periodic function and weight(x) is the first periodic interval If it is included in the range of, b is calculated as the number of quantization bits,
In other cycle sections It is calculated as,
The period of the periodic function (g(x;b)) is Phosphorus quantization precision control device.
상기 변형 양자화 함수(x + g(x;b))(여기서 x는 가중치, b는 양자화 비트수)에서 상기 주기 함수(g(x;b))를 수학식
으로 근사화된 근사 주기 함수(h(x;b))로 치환하여 획득되는 양자화 정밀도 조절 장치.The method of claim 1, wherein the approximate function is
In the modified quantization function (x + g(x;b)) (where x is the weight and b is the number of quantization bits), the periodic function (g(x;b)) is expressed as Equation
A quantization precision control device obtained by replacing with an approximate periodic function (h(x;b)) approximated by .
상기 신경망 모델의 학습 시에 추정된 양자화 비트수에 따라 상기 신경망 모델의 가중치를 양자화하여 상기 신경망 모델의 가중치를 변경하고,
가중치가 변경된 상기 신경망 모델에 학습 데이터를 인가하여 출력되는 출력 데이터로부터 계산되는 손실을 계산하는 양자화 정밀도 조절 장치.The method of claim 1, wherein the processor
Changing the weights of the neural network model by quantizing them according to the number of quantization bits estimated when learning the neural network model,
A quantization precision control device that applies learning data to the neural network model with changed weights and calculates a loss calculated from the output data.
상기 신경망 모델을 학습시키기 위한 신경망 손실과 상기 양자화 비트수에 따른 메모리 용량 제한 손실의 합으로 계산되는 총 손실을 상기 근사 함수를 이용하여 상기 인공 신경망으로 역전파하는 양자화 정밀도 조절 장치.The method of claim 1, wherein the processor
A quantization precision control device that backpropagates a total loss calculated as the sum of a neural network loss for training the neural network model and a memory capacity limitation loss according to the number of quantization bits to the artificial neural network using the approximation function.
상기 가중치의 비트수에 대한 가중치 메모리 손실을 포함하고, 상기 가중치 메모리 손실은 수학식
(여기서 pi 는 가중치이고, i는 가중치 식별자이며, bi w는 가중치(pi)의 비트수이며, bt w는 메모리 용량을 고려한 가중치 타겟 비트수이다. 그리고 가중치 타겟 비트수(bt w)는 신경망의 가중치를 저장하기 위해 활용할 수 있는 메모리 용량에 따라 설정 가능한 가중치 비트수의 평균값으로 설정될 수 있다.)
에 따라 계산되는 양자화 정밀도 조절 장치.The method of claim 7, wherein the memory capacity limit loss is
Includes weight memory loss for the number of bits of the weight, and the weight memory loss is expressed in the equation
(Here, p i is the weight, i is the weight identifier, b i w is the number of bits of the weight (p i ), and b t w is the weight target number of bits considering memory capacity. And the weight target number of bits (b t w ) can be set as the average value of the number of weight bits that can be set depending on the memory capacity available to store the weights of the neural network.)
Quantization precision adjustment device calculated according to .
신경망 모델의 각 레이어에서 활성화 함수의 활성화 가중치(a)에 따른 특징자 메모리 용량 제한 손실을 더 포함하고, 상기 메모리 용량 제한 손실은 수학식
(여기서 ai 는 활성화 가중치이고, i는 활성화 가중치 식별자이며, bi a는 활성화 가중치(ai)의 비트수이며, bt a는 메모리 용량을 고려한 활성화 가중치 타겟 비트수이다. 그리고 활성화 가중치 타겟 비트수(bt a)는 가중치 타겟 비트수(bt w)와 유사하게 활성화 가중치를 저장하기 위해 활용할 수 있는 메모리 용량에 따라 설정 가능한 가중치 비트수의 평균값으로 설정될 수 있다.)
에 따라 계산되는 양자화 정밀도 조절 장치.The method of claim 8, wherein the memory capacity limit loss is
It further includes a feature memory capacity limitation loss according to the activation weight (a) of the activation function in each layer of the neural network model, and the memory capacity limitation loss is expressed in Equation
(Here, a i is the activation weight, i is the activation weight identifier, b i a is the number of bits of the activation weight (a i ), and b t a is the number of bits of the activation weight target considering memory capacity. And the activation weight target The number of bits (b t a ) can be set to the average value of the number of weight bits that can be set according to the memory capacity that can be utilized to store the activation weight, similar to the weight target number of bits (b t w ).)
Quantization precision adjustment device calculated according to .
상기 신경망 손실을 상기 신경망 모델로 역전파하는 양자화 정밀도 조절 장치.The method of claim 7, wherein the processor
A quantization precision control device that backpropagates the neural network loss to the neural network model.
인공 신경망을 이용하여 학습 대상인 신경망 모델의 다수의 레이어 포함된 가중치의 비트수를 인가받아 신경망 연산하여 양자화 비트수를 추정하는 단계;
추정된 양자화 비트수에 따라 상기 신경망 모델의 가중치를 양자화하는 단계; 및
상기 가중치와 주기 함수의 합으로 변형된 변형 양자화 함수를 연속 함수로 근사화한 근사 함수를 이용하여, 상기 신경망 모델의 학습 시에 계산되는 손실을 상기 인공 신경망으로 역전파하는 단계를 포함하는 양자화 정밀도 조절 방법.1. A method performed by a computing device having one or more processors and a memory that stores one or more programs to be executed by the one or more processors, comprising:
Estimating the number of quantization bits by receiving the number of bits of weights included in a plurality of layers of a neural network model to be learned using an artificial neural network and performing a neural network operation;
Quantizing weights of the neural network model according to the estimated number of quantization bits; and
Quantization precision adjustment comprising the step of backpropagating the loss calculated during training of the neural network model to the artificial neural network using an approximation function that approximates the modified quantization function transformed by the sum of the weight and the periodic function to a continuous function. method.
상기 변형 양자화 함수의 상기 주기 함수를 동일한 주기를 갖는 사인 함수 형태의 근사 주기 함수로 치환하여 획득되는 양자화 정밀도 조절 방법.The method of claim 11, wherein the approximation function is
A method of controlling quantization precision obtained by replacing the periodic function of the modified quantization function with an approximate periodic function in the form of a sine function having the same period.
양자화 함수의 입력값인 가중치 상기 양자화 비트수에 따른 주기 및 스케일을 갖는 주기 함수의 합으로 계산되는 양자화 정밀도 조절 방법.The method of claim 11, wherein the modified quantization function is
A method of controlling quantization precision in which the weight, which is the input value of the quantization function, is calculated as the sum of a periodic function with a period and scale according to the number of quantization bits.
수학식
(여기서 g(x;b)는 주기 함수이고 가중치(x)가 첫번째 주기 구간인 의 범위에 포함된 경우이며, b는 양자화 비트수)로 계산되고,
다른 주기 구간에서는 으로 계산되며,
주기 함수(g(x;b))의 주기는 인 양자화 정밀도 조절 방법.The method of claim 11, wherein the periodic function is
math equation
(where g(x;b) is a periodic function and weight(x) is the first periodic interval If it is included in the range of, b is calculated as the number of quantization bits,
In other cycle sections It is calculated as,
The period of the periodic function (g(x;b)) is Quantization precision control method.
상기 변형 양자화 함수(x + g(x;b))(여기서 x는 가중치, b는 양자화 비트수)에서 상기 주기 함수(g(x;b))를 수학식
으로 근사화된 근사 주기 함수(h(x;b))로 치환하여 획득되는 양자화 정밀도 조절 방법.The method of claim 11, wherein the approximation function is
In the modified quantization function (x + g(x;b)) (where x is the weight and b is the number of quantization bits), the periodic function (g(x;b)) is expressed as Equation
Quantization precision control method obtained by substituting with an approximate periodic function (h(x;b)) approximated by .
상기 신경망 모델의 학습 시에 추정된 양자화 비트수에 따라 상기 신경망 모델의 가중치를 양자화하여 상기 신경망 모델의 가중치를 변경하고,
가중치가 변경된 상기 신경망 모델에 학습 데이터를 인가하여 출력되는 출력 데이터로부터 계산되는 손실을 계산하여 역전파하는 양자화 정밀도 조절 방법.The method of claim 11, wherein the step of backpropagating
Changing the weights of the neural network model by quantizing them according to the number of quantization bits estimated when learning the neural network model,
A quantization precision control method that applies learning data to the neural network model with changed weights, calculates the loss calculated from the output data, and backpropagates it.
상기 신경망 모델을 학습시키기 위한 신경망 손실과 상기 양자화 비트수에 따른 메모리 용량 제한 손실의 합으로 계산되는 총 손실을 상기 근사 함수를 이용하여 상기 인공 신경망으로 역전파하는 양자화 정밀도 조절 방법.The method of claim 11, wherein the step of backpropagating
A quantization precision control method in which the total loss calculated as the sum of the neural network loss for training the neural network model and the memory capacity limitation loss according to the number of quantization bits is back-propagated to the artificial neural network using the approximation function.
상기 가중치의 비트수에 대한 가중치 메모리 손실을 포함하고, 상기 가중치 메모리 손실은 수학식
(여기서 pi 는 가중치이고, i는 가중치 식별자이며, bi w는 가중치(pi)의 비트수이며, bt w는 메모리 용량을 고려한 가중치 타겟 비트수이다. 그리고 가중치 타겟 비트수(bt w)는 신경망의 가중치를 저장하기 위해 활용할 수 있는 메모리 용량에 따라 설정 가능한 가중치 비트수의 평균값으로 설정될 수 있다.)
에 따라 계산되는 양자화 정밀도 조절 방법.The method of claim 17, wherein the memory capacity limit loss is
It includes a weight memory loss for the number of bits of the weight, and the weight memory loss is expressed by the equation
(Here, p i is the weight, i is the weight identifier, b i w is the number of bits of the weight (p i ), and b t w is the weight target number of bits considering memory capacity. And the weight target number of bits (b t w ) can be set as the average value of the number of weight bits that can be set depending on the memory capacity available to store the weights of the neural network.)
Quantization precision control method calculated according to.
신경망 모델의 각 레이어에서 활성화 함수의 활성화 가중치(a)에 따른 특징자 메모리 용량 제한 손실을 더 포함하고, 상기 메모리 용량 제한 손실은 수학식
(여기서 ai 는 활성화 가중치이고, i는 활성화 가중치 식별자이며, bi a는 활성화 가중치(ai)의 비트수이며, bt a는 메모리 용량을 고려한 활성화 가중치 타겟 비트수이다. 그리고 활성화 가중치 타겟 비트수(bt a)는 가중치 타겟 비트수(bt w)와 유사하게 활성화 가중치를 저장하기 위해 활용할 수 있는 메모리 용량에 따라 설정 가능한 가중치 비트수의 평균값으로 설정될 수 있다.)
에 따라 계산되는 양자화 정밀도 조절 방법.The method of claim 18, wherein the memory capacity limit loss is
It further includes a feature memory capacity limitation loss according to the activation weight (a) of the activation function in each layer of the neural network model, and the memory capacity limitation loss is expressed in Equation
(Here, a i is the activation weight, i is the activation weight identifier, b i a is the number of bits of the activation weight (a i ), and b t a is the number of bits of the activation weight target considering memory capacity. And the activation weight target The number of bits (b t a ) can be set to the average value of the number of weight bits that can be set according to the memory capacity that can be utilized to store the activation weight, similar to the weight target number of bits (b t w ).)
Quantization precision control method calculated according to .
상기 신경망 손실을 상기 신경망 모델로 역전파하는 양자화 정밀도 조절 방법.The method of claim 17, wherein the step of backpropagating
A quantization precision control method for back-propagating the neural network loss to the neural network model.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220130236A KR20240050628A (en) | 2022-10-12 | 2022-10-12 | Apparatus and Method for Adjusting Quantization Precision for Artificial Neural Network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220130236A KR20240050628A (en) | 2022-10-12 | 2022-10-12 | Apparatus and Method for Adjusting Quantization Precision for Artificial Neural Network |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240050628A true KR20240050628A (en) | 2024-04-19 |
Family
ID=90882203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220130236A KR20240050628A (en) | 2022-10-12 | 2022-10-12 | Apparatus and Method for Adjusting Quantization Precision for Artificial Neural Network |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240050628A (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180082344A (en) | 2017-01-09 | 2018-07-18 | 삼성전자주식회사 | Method and algorithm of recursive deep learning quantization for weight bit reduction |
-
2022
- 2022-10-12 KR KR1020220130236A patent/KR20240050628A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180082344A (en) | 2017-01-09 | 2018-07-18 | 삼성전자주식회사 | Method and algorithm of recursive deep learning quantization for weight bit reduction |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110880036B (en) | Neural network compression method, device, computer equipment and storage medium | |
KR102589303B1 (en) | Method and apparatus for generating fixed point type neural network | |
US12131258B2 (en) | Joint pruning and quantization scheme for deep neural networks | |
EP3474194B1 (en) | Method and apparatus with neural network parameter quantization | |
US11645493B2 (en) | Flow for quantized neural networks | |
US11734568B2 (en) | Systems and methods for modification of neural networks based on estimated edge utility | |
US10762426B2 (en) | Multi-iteration compression for deep neural networks | |
US10984308B2 (en) | Compression method for deep neural networks with load balance | |
US20200265301A1 (en) | Incremental training of machine learning tools | |
KR20200086581A (en) | Method and apparatus for neural network quantization | |
EP3788559A1 (en) | Quantization for dnn accelerators | |
KR20190068255A (en) | Method and apparatus for generating fixed point neural network | |
KR102655950B1 (en) | High speed processing method of neural network and apparatus using thereof | |
CN112149809A (en) | Model hyper-parameter determination method and device, calculation device and medium | |
CN112257751A (en) | Neural network pruning method | |
US20220114479A1 (en) | Systems and methods for automatic mixed-precision quantization search | |
US20220044109A1 (en) | Quantization-aware training of quantized neural networks | |
CN117217280A (en) | Neural network model optimization method and device and computing equipment | |
WO2020195940A1 (en) | Model reduction device of neural network | |
KR102457893B1 (en) | Method for predicting precipitation based on deep learning | |
KR20240050628A (en) | Apparatus and Method for Adjusting Quantization Precision for Artificial Neural Network | |
KR20220032861A (en) | Neural architecture search method and attaratus considering performance in hardware | |
US20230108177A1 (en) | Hardware-Aware Progressive Training Of Machine Learning Models | |
KR102375896B1 (en) | Method and apparatus for quantizing deep neural network | |
CN116823586A (en) | Remote sensing image processing method, device, equipment and medium |