WO2024185924A1 - 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 - Google Patents
외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 Download PDFInfo
- Publication number
- WO2024185924A1 WO2024185924A1 PCT/KR2023/005242 KR2023005242W WO2024185924A1 WO 2024185924 A1 WO2024185924 A1 WO 2024185924A1 KR 2023005242 W KR2023005242 W KR 2023005242W WO 2024185924 A1 WO2024185924 A1 WO 2024185924A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- quantization
- input
- neural network
- deep learning
- network model
- Prior art date
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 150
- 238000003062 neural network model Methods 0.000 title claims abstract description 142
- 230000008859 change Effects 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013139 quantization Methods 0.000 claims abstract description 404
- 230000004913 activation Effects 0.000 claims description 114
- 238000001514 detection method Methods 0.000 claims description 39
- 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
- 238000011160 research Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization 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
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 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
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 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]
Definitions
- the present disclosure relates to a method and device for quantizing a deep learning neural network model considering changes in an external environment, and more particularly, to a method and device for quantizing a deep learning neural network model for detecting changes in input characteristics of a deep learning neural network model according to changes in an external environment, and adaptively updating quantization parameters to the detected changes in input characteristics.
- AI accelerators are used to accelerate these large amounts of calculations and efficiently implement deep learning neural network models on hardware.
- AI accelerators apply quantization as a lightweight method for deep learning neural network models for low power consumption and high efficiency.
- Quantization means reducing the size of the model by reducing the number of bits used to express the weight values or activation values inside the deep learning neural network. In this case, since lower bit data is used in the calculation process of the deep learning neural network model, the calculation speed can be improved and power consumption can be reduced.
- Quantization calibration is performed to quantize the activation values of a deep learning neural network model.
- Quantization calibration is a process of checking the distribution of the activation values of each layer for a large number of input data and setting the optimal quantization range that can minimize errors through methods such as Kullback-Leibler divergence.
- the optimal quantization threshold is determined based on the distribution of the activation values, and activation values below the quantization threshold can be mapped to the corresponding quantization value, and all activation values above the quantization threshold can be mapped to the maximum quantization value.
- the quantized deep learning neural network model through the above-described process is quantized based on the distribution of the data used for quantization calibration, there is a problem that the performance deteriorates as the characteristics of the actual input data differ from the characteristics of the data used for calibration.
- the characteristics of the actual input image data may vary significantly depending on changes in the external environment, such as day and night or changes in lighting, and may show a large difference from the characteristics of the image data used for calibration. Therefore, the greater the change in the characteristics of the input data, the greater the quantization error, which causes a decline in the performance of the deep learning neural network model.
- a method and device for quantizing a deep learning neural network model can detect a change in input data characteristics due to a change in an external environment based on an activation map for input image data of a deep learning neural network model, and update existing quantization parameters of the deep learning neural network model with new quantization parameters corresponding to the change in input data characteristics.
- a quantization method of a deep learning neural network model comprising: a step of detecting a change in input data characteristics due to an external environment change in input image data of a quantized deep learning neural network model based on a plurality of preset quantization parameters; a step of determining a new quantization parameter corresponding to the change in input data characteristics due to the change in the external environment by performing quantization calibration on the deep learning neural network model; and a step of updating at least one quantization parameter among the plurality of preset quantization parameters based on the new quantization parameter.
- a quantization device including an input characteristic change detection unit that detects a change in input data characteristics due to an external environmental change of a quantized deep learning neural network model based on a plurality of preset quantization parameters; and a quantization unit that performs quantization calibration on the deep learning neural network model to determine a new quantization parameter corresponding to a change in input image data characteristics due to the external environmental change detected by the input characteristic change detection unit, and updates at least one quantization parameter among the plurality of preset quantization parameters based on the new quantization parameter.
- the method and device for quantizing a deep learning neural network model of the present disclosure adaptively updates quantization parameters of a deep learning neural network model according to changes in input data characteristics caused by changes in the external environment, thereby preventing performance degradation due to quantization error and improving the inference accuracy of the deep learning neural network model.
- FIG. 1 is a block diagram of a quantization device according to one embodiment of the present disclosure.
- Figure 2 is a drawing for explaining changes in input data characteristics according to changes in the external environment that appear in the activation map for input image data.
- FIG. 3 is a diagram for explaining a process in which a quantization device according to one embodiment of the present disclosure detects a change in input data characteristics based on an overflow that occurs in an activation map.
- FIG. 4 is a flowchart illustrating a process in which a quantization device according to one embodiment of the present disclosure changes a bias value for one convolutional layer.
- FIG. 5 is a diagram for explaining a process in which a quantization device according to one embodiment of the present disclosure updates quantization parameters of a deep learning neural network model.
- FIG. 6 is a diagram for explaining a process in which a quantization device according to another embodiment of the present disclosure updates quantization parameters of a deep learning neural network model.
- FIG. 7 is a drawing for explaining an input characteristic change detection unit of a quantization device according to another embodiment of the present disclosure.
- FIG. 8 is a flowchart for explaining a quantization method according to one embodiment of the present disclosure.
- symbols such as first, second, i), ii), a), b), etc. may be used. These symbols are only for distinguishing the components from other components, and the nature or order or sequence of the components is not limited by the symbols.
- symbols When a part in the specification is said to "include” or “provide” a component, this does not mean that other components are excluded, but rather that other components can be further included, unless explicitly stated otherwise.
- Each component of the device or method according to the present disclosure may be implemented as hardware or software, or as a combination of hardware and software.
- the function of each component may be implemented as software, and a microprocessor may be implemented to execute the function of the software corresponding to each component.
- FIG. 1 is a block diagram of a quantization device according to one embodiment of the present disclosure.
- a quantization device (100) includes all or part of an input feature change detection unit (110), a quantization unit (120), and a memory (130).
- All blocks illustrated in FIG. 1 are only components related to embodiments of the present disclosure and are not essential components of the quantization device (100). In other embodiments, some blocks included in the quantization device (100) may be changed or deleted, or another component block may be further included in the quantization device (100).
- the quantization device (100) may correspond to a computing device having various functions, such as searching a deep learning neural network or quantizing a 32-bit floating point-based deep learning neural network into an integer-based deep learning neural network of preset bits.
- the quantization device (100) may be implemented using various types of devices, such as a GPU, an FPGA, an ASIC, etc.
- the input characteristic change detection unit (110) detects changes in input data characteristics due to changes in the external environment in the input image data of a quantized deep learning neural network model based on a plurality of preset quantization parameters.
- the input data of the deep learning neural network model and the activation values output from each layer are quantized based on preset quantization parameters.
- the preset quantization parameters may be quantization parameters determined based on the statistical distribution of the activation values included in the calibration data in the initial quantization calibration process, a scale factor S, and a zero point value Z.
- the plurality of preset quantization parameters may include a plurality of quantization parameters corresponding to the input quantization parameters and each of the plurality of layers included in the deep learning neural network model.
- the input data characteristics may change due to changes in the external environment.
- a deep learning neural network model may perform inference under an environment different from the environment for the calibration data used in the initial quantization process, and in this case, input data having characteristics different from the characteristics of the calibration data may be input to the deep learning neural network model.
- the trends of real-time input CCTV footage may change over time.
- the tendency of input data may vary depending on the location where the deep learning neural network model performs inference, such as when the installation location of a CCTV changes slightly, causing the angle of the video to change, or when a deep learning neural network model is deployed to an analysis system for various locations.
- the quantization parameter is a value determined based on the statistical distribution of the activation values included in the calibration data, if data with a statistical distribution different from the calibration data is input during the actual inference process, the quantization error increases. Therefore, quantization calibration for the deep learning neural network model must be performed to reapply quantization parameters appropriate to the changed input data characteristics.
- the input characteristic change detection unit (110) analyzes the input image data input to the neural network model to detect changes in the input data characteristics due to changes in the external environment.
- the external environment change may be a change in the time at which the deep learning neural network model performs inference, but is not limited thereto.
- the external environment change may be a change in the location at which the deep learning neural network model performs inference.
- the input characteristic change detection unit (110) performs analysis on input image data at preset time intervals while the deep learning neural network model performs inference, thereby being able to determine whether a change in input data characteristics occurs due to a change in the external environment.
- the input characteristic change detection unit (110) may perform analysis on input image data at intervals of 10 minutes or 6 hours or less in order to detect changes in external environments that vary over time, such as changes in weather over time or changes between day and night, and changes in trends in data accordingly.
- the characteristics of the input image data may change.
- the deep learning neural network model is a model that performs analysis such as object detection from an image captured in real time at a specific location, there may be a difference between the characteristics of the image frames captured during the day and the characteristics of the image frames captured at night. Therefore, the statistical distribution of the input data and the activation values may vary significantly depending on the time at which the deep learning neural network model performs inference.
- the input characteristic change detection unit (110) detects a change in the characteristics of the input data based on an activation map output from one of the convolution layers among at least one convolution layer included in the deep learning neural network model.
- one convolutional layer of a deep learning neural network model outputs an activation map for multiple features extracted from input image data through multiple output channels.
- the input characteristic change detection unit (110) detects whether a change in input data characteristics has occurred by using one activation map whose activation value changes according to a change in the external environment among multiple activation maps corresponding to multiple output channels of the convolutional layer.
- the input characteristic change detection unit (110) determines at least one channel that extracts image features affected by the external environment among the entire output channels of the convolution layer as a reference output channel, and can detect a change in the input data characteristics based on the activation map output from the corresponding channel.
- the reference output channel may be experimentally determined based on the output activation map, but is not limited thereto, and may be determined using a separate reference output channel detection model that has been learned in advance.
- the input characteristic change detection unit (110) can arbitrarily change the bias value for the convolution layer and detect a change in the input data characteristics depending on whether an overflow occurs in the activation map due to the changed bias value.
- the activation values included in the activation map output from the convolution layer are values generated based on the bias value of the corresponding convolution layer determined during the learning process of the deep learning neural network model, if the bias value changes, all activation values of the activation map output from the convolution layer change.
- the activation values can also increase by the amount of change in the bias value.
- the input characteristic change detection unit (110) changes the bias value of the convolution layer to a value greater than the existing value so that when image data corresponding to one external environment is input among different external environments, overflow does not occur in the corresponding activation map, and when image data corresponding to another external environment is input, overflow occurs in the corresponding activation map.
- the input characteristic change detection unit (110) can determine that data having changed characteristics due to a change in the external environment is input.
- the input characteristic change detection unit (120) is described as detecting changes in the external environment based on an activation map output from a convolution layer, but is not limited thereto, and various data capable of extracting changes in image characteristics that vary according to changes in the external environment may be employed.
- the input characteristic change detection unit (120) may be configured to detect a characteristic change of input data based on the transformed image output from the corresponding layer.
- the quantization unit (120) performs quantization calibration for the deep learning neural network model to determine new quantization parameters corresponding to the change in the input data characteristics due to changes in the external environment.
- the quantization unit (120) may determine new quantization parameters corresponding to all quantization parameters for the deep learning neural network model based on one quantization parameter set corresponding to a change in input data characteristics due to an external environment change among a plurality of pre-generated quantization parameter sets.
- the quantization parameter set means one data set including quantization parameters for activation values in all individual layers of the deep learning neural network model.
- a set of quantization parameters for each external environment can be generated in advance and stored in a quantization device (100).
- the quantization unit (120) can determine one quantization parameter set corresponding to the current external environment from among the plurality of quantization parameter sets generated and stored in advance as a new quantization parameter.
- the quantization unit (120) updates the quantization parameters for the corresponding layer of the deep learning neural network model based on a plurality of quantization parameters included in a new quantization parameter set.
- the quantization unit (120) can determine new input quantization parameters for input data of a deep learning neural network model based on input image data having changed characteristics.
- the quantization unit (120) calculates a first input quantization parameter based on a plurality of input image data corresponding to a preset time period.
- the preset time period may be a time period corresponding to a time from the current time period when the input characteristic change detection unit (110) detects a change in the input data characteristics due to a change in the external environment to a time period in the past when the input characteristic change detection unit (110) performs an analysis on the input image data.
- the quantization unit (120) determines an optimal quantization range that can minimize accuracy loss due to quantization among input values for all input image data corresponding to a preset time period, and calculates first quantization parameters such as a scale factor and a zero point value based on the minimum and maximum values of the input values corresponding to the determined quantization range.
- the quantization unit (120) determines a new input quantization parameter based on the first input quantization parameter and the second input quantization parameter included in the plurality of quantization parameters preset for the deep learning neural network model.
- the second input quantization parameter is an existing input quantization parameter that has been applied up to the present time for quantizing input data of the deep learning neural network model.
- the quantization unit (120) calculates a first input quantization parameter based on a plurality of image data input during a time period corresponding to the second point in time from the first point in time.
- the second input quantization parameter may be an input quantization parameter determined through quantization calibration performed at the first point in time or a time point previous thereto.
- the second input quantization parameter is a quantization parameter for the input image data before the external environment changes
- the first input quantization parameter is a quantization parameter for the input image data after the external environment changes.
- the quantization unit (120) can calculate a new input quantization parameter based on the first input quantization parameter and the second input quantization parameter using mathematical expression 1.
- Q in_new is a new input quantization parameter
- Q in_1 is a first input quantization parameter
- Q in_2 is a second input quantization parameter. That is, the quantization unit (120) can determine a new input quantization parameter value by weighting the first input quantization parameter and the second input quantization parameter.
- ⁇ and ⁇ are values that are experimentally determined based on the reflection ratio of the changed characteristics of the input image data. For example, the closer the value of ⁇ is to 1, the more the characteristics of the currently input image data are reflected.
- the quantization unit (120) updates the input quantization parameters of the deep learning neural network model based on the new input quantization parameters.
- the deep learning neural network model quantizes the input image data based on the new input quantization parameters instead of quantizing the input image data based on the second input quantization parameters.
- the memory (130) may include volatile memory, permanent, virtual, or other types of memory for storing information used by or output by the quantization device (100).
- the memory (130) may include random access memory (RAM) or dynamic RAM (DRAM).
- the memory (130) stores basic programs, application programs, network setting information, etc. for the operation of the quantization device (100). In addition, the memory (130) can provide stored information according to a request from the input characteristic change detection unit (110) or the quantization unit (120).
- the memory (130) can store various data for processing or controlling the input characteristic change detection unit (110) or the quantization unit (120).
- the memory (130) can store target deep learning neural network model data for which quantization is to be performed, activation value data for each layer of the deep learning neural network model, activation map data corresponding to input image data, multiple quantization parameter sets generated according to the external environment, a detection model learned in advance to detect input data characteristic changes due to external environment changes, etc.
- the memory (130) can store various data generated by the input characteristic change detection unit (110) or the quantization unit (120). For example, new input quantization parameters calculated by the quantization unit (120) can be stored in the memory (130).
- Figure 2 is a drawing for explaining changes in input data characteristics according to changes in the external environment that appear in the activation map for input image data.
- Figure 2 (a) shows an activation map image (221a, 222a, 223a) visualizing multiple activation maps corresponding to daytime image data (200a).
- the convolutional layer (210a) may be the first convolutional layer of the deep learning neural network model.
- three activation maps are exemplified, but in general, more activation maps may be output.
- the convolution layer (210a) extracts various features from the daytime image data (200a) and outputs an activation map.
- a first activation map image (221a) is output to the first channel of the convolution layer (210a)
- a second activation map image (222a) is output to the second channel
- a third activation map image (223a) is output to the third channel.
- Figure 2 (b) shows an activation map image (221b, 222b, 223b) visualizing multiple activation maps corresponding to night time image data (200b).
- the convolution layer (210b) extracts various characteristics from the night-time image data (200b) and outputs an activation map.
- a first activation map image (221b) is output to the first channel of the convolution layer (210b)
- a second activation map image (222b) is output to the second channel
- a third activation map image (223b) is output to the third channel.
- the difference in the activation map output from the third channel among the activation maps for different external environments of day and night is relatively large compared to the other channels.
- the pixel values of the third activation map image (223a) corresponding to the daytime environment are significantly at the maximum value or a value close to the maximum value.
- the pixel values of the third activation map image (223b) corresponding to the nighttime environment show a distribution of relatively low values.
- the quantization device of the present disclosure detects a change in the external environment based on a difference in distribution between pixel values of a third activation map image (223a) corresponding to a daytime environment output from a third channel and pixel values of a third activation map image (221b) corresponding to a nighttime environment. For example, the quantization device can determine whether input image data is an image for the daytime or an image for the nighttime based on the number of pixels exceeding a preset threshold value in the activation map image output from the third channel.
- the quantization device may be configured to determine a channel having the greatest difference in activation map images among a plurality of channels outputting different activation map images according to changes in the external environment, and to detect changes in the external environment based on pixel values of the activation map image in the corresponding channel, but is not limited thereto. For example, when one or more activation maps for an input image are input, the quantization device may be configured to detect changes in the external environment using a separate prediction model learned to predict the external environment for the corresponding input image.
- FIG. 3 is a diagram for explaining a process in which a quantization device according to one embodiment of the present disclosure detects a change in input data characteristics based on an overflow that occurs in an activation map.
- the pixel values of the activation map image (310) for the night time have values similar to the first bias (B1) value of the convolution layer.
- the first bias (B1) value is a bias value for the convolution layer determined in the learning process of the deep learning neural network model.
- the pixel values of the activation map image (310) for the night time may be values determined based on a value obtained by multiplying the input image pixel value of the night time by the weight of the convolution layer and adding the first bias (B1) value.
- the pixel values of the activation map image (320) corresponding to the daytime mostly appear as a distribution of larger values than the pixel values of the activation map image (310) for the nighttime. Since the pixel values of the input image during the daytime have higher brightness values than those during the nighttime due to the brightness characteristics of the input image data according to time, the distribution of the pixel values of the activation map image (320) corresponding to the daytime also has a distribution of larger values.
- the first bias (B1) of the convolution layer is changed to the second bias (B2), which is a larger value
- a larger bias is added during the calculation process in the convolution layer, resulting in a distribution of pixel values of the activation map image (310) having a larger distribution of values.
- the pixel values of the activation map image (320) for the daytime mostly have larger values than the pixel values of the activation map image (310) for the nighttime, they may appear as values larger than a preset overflow threshold (OF).
- OF overflow threshold
- the pixel value distribution (315) of the activation map image (310) for the night time is formed in a range lower than the overflow threshold value (OF) while having a larger value than before the bias change.
- the pixel value distribution (325) of the activation map image (320) for the day time has a larger value than before the bias change, and as a result, some values appear as values higher than the overflow threshold value (OF).
- overflow can occur only in the activation map image (320) for the day time.
- the quantization device can artificially change the bias value of the convolution layer and recognize the change in the characteristics of the input data depending on whether an overflow occurs.
- the quantization device is configured to identify two different external environments depending on whether an overflow occurs depending on the changed bias value, but is not limited thereto. For example, it may be configured to identify three or more external environments depending on the number or combination of activation maps in which an overflow error occurs among a plurality of preset activation maps.
- FIG. 4 is a flowchart illustrating a process in which a quantization device according to one embodiment of the present disclosure changes a bias value for one convolutional layer.
- the quantization device changes the bias of the reference convolution layer of the deep learning neural network model (S410).
- the reference convolution layer may be the first convolution layer among multiple convolution layers included in the deep learning neural network model.
- the quantization device changes the bias value of the reference convolutional layer determined during the learning process of the deep learning neural network model to an arbitrarily larger value.
- the changed bias value may be determined based on the parameters of the deep learning neural network model or the hardware specifications of the quantization device, and the activation value of the corresponding convolutional layer may be a value set so that overflow does not occur in a first external environment among a plurality of different external environments, but overflow occurs in a second external environment.
- the quantization device checks whether an overflow occurs in the output of the reference convolution layer (S420). If an overflow error does not occur in the activation map output from the reference convolution layer, there is no significant characteristic change for the input image data, so the quantization device determines that there is no change in the external environment, and restores the bias value for the arbitrarily changed reference convolution layer to the bias value before the change (S440).
- the quantization unit determines that a change has occurred in the external environment.
- the quantization device updates the quantization parameters of the deep learning neural network model with new quantization parameters (S430).
- the quantization device restores the bias of the reference convolution layer, which was arbitrarily changed, to the value before the change so that the deep learning neural network model can operate normally (S440).
- FIG. 5 is a diagram for explaining a process in which a quantization device according to one embodiment of the present disclosure updates quantization parameters of a deep learning neural network model.
- the quantization device (500) includes a calibration unit (510), an input data quantization unit (530), a target deep learning neural network (540), and a dequantization unit (550).
- the target deep learning neural network (540) includes a plurality of layers included in a deep learning neural network model, for example, a first layer, a second layer, and a third layer.
- the quantization device (500) quantizes the activation value for the first layer using the first quantization parameter (S 1 , Z 1 ) that is set in advance. In a similar manner, the quantization device (500) quantizes the activation value for the second layer using the second quantization parameter (S 2 , Z 2 ) that is set in advance, and quantizes the activation value for the third layer using the third quantization parameter (S 3 , Z 3 ).
- the inverse quantization unit (550) inversely quantizes the quantization value for the final output of the deep learning neural network model to generate output data (502). For example, the inverse quantization unit (550) inversely quantizes the quantization value in the form of an integer into a corresponding real value in the form of FP32.
- the calibration unit (510) updates the input quantization parameters of the deep learning neural network model based on the input image data having the changed characteristics.
- the calibration unit (510) calculates a first input quantization parameter based on a plurality of input data (501) corresponding to a preset time period.
- the plurality of input data (501) may include a plurality of image frames input to a deep learning neural network model during a preset time period.
- the calibration unit (510) can determine the quantization range of the input data, that is, the range of real values of the input data mapped to the range of integer-type quantization values, based on one statistical characteristic for all of the plurality of input data (501). For example, the calibration unit (510) determines an optimal quantization range that can minimize accuracy loss due to quantization among pixel values of all image frames included in the plurality of input data (501), and calculates first input quantization parameters, such as a scale factor and a zero value, based on the minimum and maximum values of the pixel values corresponding to the determined quantization range.
- the calibration unit (510) can determine a new input quantization parameter based on the first input quantization parameter and the preset second input quantization parameter (S in , Z in , 520).
- the calibration unit (510) updates the preset input quantization parameter (S in , Z in , 520) with the new input quantization parameter.
- the quantization device (500) may first update the quantization parameter for the input data quantization unit (530), and then adjust the update time so as to update the quantization parameter for the input of the first layer at a time delayed by the time required for the quantization process. For example, the quantization device (500) may sequentially update the quantization parameter for the input data quantization unit (530) and the first layer using a method as shown in Table 1.
- T 1 is a first time point at which a preset input quantization parameter is determined
- T 2 is a second time point at which the calibration unit (510) determines a new input quantization parameter according to a change in the characteristics of the input data
- z is a time required for the quantization process of the input data quantization unit (530), and may generally be a time corresponding to 1 to 10 clock cycles of an arithmetic unit to which a deep learning neural network model is applied. z may be an extremely short time compared to the time interval between the first time point and the second time point.
- the quantization device ( 500 ) applies new input quantization parameters only to the input data quantization unit (530) during the time z, which is the time taken for the input data quantization unit (530) to perform quantization from the second time point (T 2 ), and applies existing input quantization parameters, i.e., quantization parameters determined at the first time point, to data input to the first layer until the time point T 2 +z arrives.
- the quantization device (500) After z time has elapsed, from the time point T 2 +z, input data with new input quantization parameters applied will be input to the first layer, so the quantization device (500) also applies new input quantization parameters to the input end of the first layer. Accordingly, the input quantization parameters of the deep learning neural network model can be updated seamlessly.
- FIG. 6 is a diagram for explaining a process in which a quantization device according to another embodiment of the present disclosure updates quantization parameters of a deep learning neural network model.
- the quantization device (600) includes a calibration unit (610), an input data quantization unit (630), a target deep learning neural network (640), and a dequantization unit (650).
- the target deep learning neural network (640) includes a plurality of layers included in a deep learning neural network model, for example, a first layer (641), a second layer (642), and a third layer (643).
- the input data quantization unit (630) quantizes the input data (601) using input quantization parameters (S in_1 , Z in_1 ) of a first quantization parameter set (621) including a plurality of preset quantization parameters.
- the quantized input data (601) is input to a target deep learning neural network (640), and the deep learning neural network model performs inference on the input data (601).
- the activation values output from each layer are quantized and computed based on the corresponding activation parameters in the first quantization parameter set (621).
- the activation values of the first layer (641) are quantized based on the first layer quantization parameters (S 1_1 , Z 1_1 ) of the first quantization parameter set (621).
- the activation values of the second layer (642) are quantized based on the second layer quantization parameters (S 2_1 , Z 2_1 ) of the first quantization parameter set (621)
- the activation values of the third layer (643) are quantized based on the third layer quantization parameters (S 3_1 , Z 3_1 ) of the first quantization parameter set (621).
- the inverse quantization unit (650) inversely quantizes the quantization value for the final output of the deep learning neural network model to generate output data (602).
- the calibration unit (610) updates the quantization parameters of the deep learning neural network model based on one of the quantization parameter sets (621, 622, 623) generated in advance that corresponds to the change in the characteristics of the input data due to the change in the external environment.
- the plurality of quantization parameter sets (621, 622, 623) may include quantization parameters for activation values in all individual layers of a deep learning neural network model corresponding to each of a plurality of external environments.
- quantization calibration may be performed using a plurality of input data corresponding to one external environment among a plurality of preset external environments as calibration data, and quantization parameters of all individual layers of a deep learning neural network model corresponding to the corresponding external environment may be determined to generate one quantization parameter set.
- quantization calibration is performed using multiple image data taken during the day to generate a first quantization parameter set (621) specialized for image characteristics during the day.
- a second quantization parameter set (622) specialized for image characteristics during the night and a third quantization parameter set (623) specialized for image characteristics under indoor lighting can be generated, respectively.
- the quantization device (600) can update the quantization parameters of the deep learning neural network model by selectively applying one quantization parameter set corresponding to the current external environment among the first quantization parameter set (621), the second quantization parameter set (622), and the third quantization parameter set (623) generated in advance according to the detected external environmental change.
- the quantization device (600) when a change in input data characteristics is detected due to night-time image characteristics while the deep learning neural network model is quantized based on the first quantization parameter set (621) specialized for day-time image characteristics, the quantization device (600) collectively updates all quantization parameters from the input quantization parameters to the third layer quantization parameters using the second quantization parameter set (622) specialized for night-time image characteristics.
- the input data quantization unit (630) of the deep learning neural network model quantizes the input data (601) using the input quantization parameters (S in_2 , Z in_2 ) of the second quantization parameter set (622).
- the activation value of the first layer (641) is quantized based on the first layer quantization parameters (S 1_2 , Z 1_2 ) of the second quantization parameter set (622)
- the activation value of the second layer (642) is quantized based on the second layer quantization parameters (S 2_2 , Z 2_2 ) of the second quantization parameter set (622)
- the activation value of the third layer (643) is quantized based on the third layer quantization parameters (S 3_2 , Z 3_2 ) of the second quantization parameter set (622).
- FIG. 7 is a drawing for explaining an input characteristic change detection unit of a quantization device according to another embodiment of the present disclosure.
- a parallel processor (700) that performs operations of a quantized deep learning neural network model is disclosed.
- the parallel processor (700) may be a parallel processor having a systolic array structure including N channels.
- a parallel processor having a systolic array structure is widely applied to an accelerator for the operation of a deep learning neural network model.
- This parallel processor (700) simultaneously processes N inputs input through each of N channels. For example, N input data and a plurality of weight values for a convolutional layer of a deep learning neural network model are loaded into an on-chip memory (not shown) constituting the parallel processor (700), and a parallel operation for the N input data is performed to output an activation map for the corresponding convolutional layer.
- the parallel processor (700) allocates only M channel areas (710) to the operation of the deep learning neural network model. For example, M inputs are input through channels A 1 to A M , respectively, and the operation of the deep learning neural network model is performed using multiple MACs (Multiply and Accumulate Units) constituting each channel.
- M inputs are input through channels A 1 to A M , respectively, and the operation of the deep learning neural network model is performed using multiple MACs (Multiply and Accumulate Units) constituting each channel.
- MACs Multiply and Accumulate Units
- the input characteristic change detection unit of the quantization device can perform an operation to detect a change in input data characteristics due to a change in the external environment by using at least one channel among the N-M channel areas (720), i.e., the remaining channels excluding the M channels allocated to the operation of the deep learning neural network model among the N channels of the parallel processor (700).
- the parallel processor (700) is a systolic array having a size of 64 ⁇ 64 and the number of channels of the deep learning neural network model is 32, 32 of the 64 channels of the parallel processor (700) perform the operation of the quantized deep learning neural network model.
- one or more of the remaining 32 channels may be configured to input an activation map output from a convolutional layer with a changed bias to perform overflow detection.
- the input characteristic change detection unit of the quantization device is a detection model learned to predict a characteristic change of input data due to a change in the external environment from one or more activation maps, one or more of the remaining 32 channels may be assigned to the operation of the corresponding detection model.
- the input characteristic change detection unit of the quantization device can be implemented without a separate hardware configuration because it directly utilizes the resources of one parallel processor (700) for the calculation of the deep learning neural network model. Accordingly, the weight reduction and miniaturization of the entire AI accelerator device including the quantization device are possible.
- FIG. 8 is a flowchart for explaining a quantization method according to one embodiment of the present disclosure.
- the quantization device detects changes in input image data characteristics due to changes in the external environment of the deep learning neural network model (S810).
- the input data of the deep learning neural network model and the activation values output from each layer are quantized based on preset quantization parameters.
- the preset plurality of quantization parameters may include input quantization parameters included in the deep learning neural network model and a plurality of quantization parameters corresponding to each of the plurality of layers.
- the input data characteristics may change due to changes in the external environment.
- a deep learning neural network model may perform inference under an environment different from the environment for the calibration data used in the initial quantization process, and in this case, input data having characteristics different from the characteristics of the calibration data may be input to the deep learning neural network model.
- the quantization device analyzes the input image data input to the neural network model to detect changes in the input data characteristics due to changes in the external environment.
- the change in the external environment may be a change in the time at which the deep learning neural network model performs inference, but is not limited thereto.
- the change in the external environment may be a change in the location at which the deep learning neural network model performs inference.
- the quantization device can perform analysis on input image data at preset time intervals while the deep learning neural network model performs inference, thereby determining whether changes in input data characteristics occur due to changes in the external environment.
- the quantization device may perform analysis on input image data at intervals of 10 minutes or 6 hours or less to detect changes in external environments that vary over time, such as changes in weather over time or changes between day and night, and changes in trends in data accordingly.
- the statistical distribution of input data and activation values may vary significantly depending on the time at which the deep learning neural network model performs inference.
- the quantization device detects a change in the characteristics of the input data based on an activation map output from one convolutional layer among at least one convolutional layer included in the deep learning neural network model. Specifically, the quantization device detects whether a change in the characteristics of the input data has occurred by using one activation map whose activation value changes according to a change in the external environment among a plurality of activation maps corresponding to a plurality of output channels of the convolutional layer.
- the quantization device determines at least one channel for extracting image features affected by an external environment from among all output channels of the convolution layer as a reference output channel, and detects changes in input data characteristics based on an activation map output from the corresponding channel.
- the reference output channel may be experimentally determined based on the output activation map, but is not limited thereto, and may be determined using a separate reference output channel detection model that has been learned in advance.
- the quantization unit can arbitrarily change the bias value for the convolutional layer and detect changes in the input data characteristics based on whether the changed bias value causes overflow in the activation map.
- the quantization device changes the bias value of the convolution layer to a value larger than the existing value so that when image data corresponding to one external environment is input among different external environments, overflow does not occur in the corresponding activation map, and when image data corresponding to another external environment is input, overflow occurs in the corresponding activation map.
- the quantization device can determine that data with changed characteristics is input due to a change in the external environment.
- the quantization device When a change in input data characteristics is detected, the quantization device performs quantization calibration for the deep learning neural network model to determine new quantization parameters corresponding to the change in input image data characteristics (S820).
- the quantization device can determine new quantization parameters corresponding to all quantization parameters for a deep learning neural network model based on one quantization parameter set corresponding to a change in input data characteristics due to a change in an external environment among a plurality of pre-generated quantization parameter sets.
- the quantization parameter set means one data set including quantization parameters for activation values in all individual layers of the deep learning neural network model.
- a set of quantization parameters for each external environment can be generated in advance and stored in a quantization device.
- the quantization unit (120) can determine one quantization parameter set corresponding to the current external environment from among the plurality of quantization parameter sets generated and stored in advance as a new quantization parameter of the deep learning neural network model.
- the quantization device can determine new input quantization parameters for input data of a deep learning neural network model based on input image data having changed characteristics.
- the quantization device calculates a first input quantization parameter based on a plurality of input image data corresponding to a preset time period.
- the preset time period may be a time period corresponding to a time from a current time period at which the quantization device detects a change in input data characteristics due to a change in the external environment to a time period in the past equal to a preset time period at which analysis is performed on the input image data.
- a quantization device determines an optimal quantization range that can minimize accuracy loss due to quantization among input values for all input image data corresponding to a preset time period, and calculates first quantization parameters, such as a scale factor and a zero value, based on the minimum and maximum values of the input values corresponding to the determined quantization range.
- a quantization device determines a new input quantization parameter based on a first input quantization parameter and a second input quantization parameter included in a plurality of quantization parameters preset for a deep learning neural network model.
- the second input quantization parameter is an existing input quantization parameter applied up to the present time for quantizing input data of the deep learning neural network model.
- the second input quantization parameter is a quantization parameter for input image data before a change in the external environment
- the first input quantization parameter is a quantization parameter for input image data after a change in the external environment.
- the quantization device can determine a new input quantization parameter value by weighting the first input quantization parameter and the second input quantization parameter.
- the quantization device updates at least one quantization parameter among multiple quantization parameters of a deep learning neural network model based on a new quantization parameter (S830).
- the quantization device when a quantization device determines one of a plurality of quantization parameter sets generated in advance as a new quantization parameter, the quantization device updates the quantization parameters of a corresponding layer of a deep learning neural network model based on the new quantization parameters for a plurality of individual layers included in the corresponding quantization parameter set.
- the new input quantization parameter is reset as the input quantization parameter of the deep learning neural network model.
- the deep learning neural network model quantizes the input image data based on the new input quantization parameter instead of quantizing the input image data based on the existing second input quantization parameter.
- Various implementations of the systems and techniques described herein can be implemented as digital electronic circuits, integrated circuits, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementations of one or more computer programs executable on a programmable system.
- the programmable system includes at least one programmable processor (which may be a special purpose processor or a general purpose processor) coupled to receive data and instructions from, and transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- Computer programs also known as programs, software, software applications, or code
- a computer-readable recording medium includes any type of recording device that stores data that can be read by a computer system.
- a computer-readable recording medium can be a non-volatile or non-transitory medium, such as a ROM, a CD-ROM, a magnetic tape, a floppy disk, a memory card, a hard disk, a magneto-optical disk, a storage device, and may further include a transitory medium, such as a data transmission medium.
- the computer-readable recording medium can be distributed over a network-connected computer system, so that the computer-readable code can be stored and executed in a distributed manner.
- the present invention is a result of a research project (Project Unique Number: 1711152619, Subproject Number: 2020-0-01305-004, Project Management (Specialist) Organization Name: Information and Communications Technology Planning and Evaluation Institute, Research Project Name: Next-Generation Intelligent Semiconductor Technology Development (Design), Research Project Name: Development of 2,000 TFLOPS-Class Server Artificial Intelligence Deep Learning Processor and Module, Contribution Rate: 1/1, Project Executing Organization Name: Sapion Korea Co., Ltd., Research Period: 2021-04-01 ⁇ 2024-12-31).
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은 본 개시의 일 실시예에 따른 양자화 방법을 설명하기 위한 순서도이다.
이하, 본 개시의 일부 실시예들을 예시적인 도면을 이용해 상세하게 설명한다. 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 개시에 따른 실시예의 구성요소를 설명하는 데 있어서, 제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)가 64×64 크기의 시스톨릭 어레이이고 딥러닝 신경망 모델의 채널 수가 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) 매체를 더 포함할 수도 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.
본 명세서의 흐름도/타이밍도에서는 각 과정들을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 개시의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 개시의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 개시의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 흐름도/타이밍도에 기재된 순서를 변경하여 실행하거나 각 과정들 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 흐름도/타이밍도는 시계열적인 순서로 한정되는 것은 아니다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
(후원 연구 또는 개발에 관한 진술)
본 발명은 연구과제(과제고유번호: 1711152619, 세부과제번호: 2020-0-01305-004, 과제관리(전문)기관명: 정보통신기획평가원, 연구사업명: 차세대지능형반도체기술개발(설계), 연구과제명: 2,000 TFLOPS급 서버 인공지능 딥러닝 프로세서 및 모듈 개발, 기여율: 1/1, 과제수행기관명: 주식회사 사피온코리아, 연구기간: 2021-04-01~2024-12-31)의 결과물이다.
(CROSS-REFERENCE TO RELATED APPLICATION)
본 특허출원은, 본 명세서에 그 전체가 참고로서 포함되는, 2023년 3월 7일에 한국에 출원한 특허출원번호 제10-2023-0030124호에 대해 우선권을 주장한다.
Claims (14)
- 딥러닝 신경망 모델의 양자화 방법에 있어서,미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 입력 이미지 데이터에서 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계;상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하는 단계; 및상기 새로운 양자화 파라미터를 기초로 상기 미리 설정된 복수의 양자화 파라미터 중에서 적어도 하나의 양자화 파라미터를 갱신하는 단계를 포함하는양자화 방법.
- 제1항에 있어서,상기 외부환경 변화에 의한 입력 데이터 특성 변화는,상기 딥러닝 신경망 모델이 추론을 수행하는 시간의 변화에 따라 발생한 상기 입력 이미지 데이터의 특성 변화인, 양자화 방법.
- 제1항에 있어서,상기 외부환경 변화에 의한 입력 데이터 특성 변화는,상기 딥러닝 신경망 모델이 추론을 수행하는 위치의 변화에 따라 발생한 상기 입력 이미지 데이터의 특성 변화인, 양자화 방법.
- 제1항에 있어서,상기 미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 입력 이미지 데이터에서 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계는,상기 딥러닝 신경망 모델이 추론을 수행하는 동안 미리 설정된 시간주기마다 수행되는, 양자화 방법.
- 제1항에 있어서,상기 딥러닝 신경망 모델은,적어도 하나의 컨볼루션 레이어를 포함하는 딥러닝 신경망 모델인, 양자화 방법.
- 제5항에 있어서,상기 미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 입력 이미지 데이터에서 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계는,상기 적어도 하나의 컨볼루션 레이어 중에서 어느 하나의 컨볼루션 레이어에 대한 활성화 맵을 기초로 상기 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계를 포함하는, 양자화 방법.
- 제6항에 있어서,상기 적어도 하나의 컨볼루션 레이어 중에서 어느 하나의 컨볼루션 레이어에 대한 활성화 맵을 기초로 상기 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 단계는,상기 어느 하나의 컨볼루션 레이어에 대한 바이어스 값을 변경하는 단계; 및상기 변경된 바이어스 값에 의하여 상기 활성화 맵에서 발생한 오버플로우를 기초로 외부환경 변화에 의한 입력 이미지 데이터 특성 변화를 검출하는 단계를 포함하는, 양자화 방법.
- 제7항에 있어서,상기 활성화 맵은,상기 어느 하나의 컨볼루션 레이어의 복수의 출력 채널에 대응되는 활성화 맵 중에서 상기 외부환경 변화에 따라 활성화 값이 변화되는 어느 하나의 활성화 맵인, 양자화 방법.
- 제1항에 있어서,상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하는 단계는,미리 설정된 시구간에 대응되는 복수의 입력 이미지 데이터를 기초로 제1 입력 양자화 파라미터를 계산하는 단계; 및상기 제1 입력 양자화 파라미터 및 상기 미리 설정된 복수의 양자화 파라미터에 포함된 제2 입력 양자화 파라미터를 기초로 새로운 입력 양자화 파라미터를 결정하는 단계를 포함하는 양자화 방법.
- 제1항에 있어서,상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하는 단계는,미리 생성된 복수의 양자화 파라미터 세트 중에서 상기 입력 데이터 특성 변화에 대응되는 어느 하나의 양자화 파라미터 세트를 결정하는 단계를 포함하는 양자화 방법.
- 제10항에 있어서,상기 미리 생성된 복수의 양자화 파라미터 세트는,미리 설정된 복수의 외부환경 중에서 개별 외부환경에 대응되는 입력 이미지 데이터를 기초로 결정된 상기 딥러닝 신경망 모델의 복수의 레이어에 대한 양자화 파라미터를 포함하는, 양자화 방법.
- 미리 설정된 복수의 양자화 파라미터를 기초로 양자화된 딥러닝 신경망 모델의 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하는 입력 특성 변화 검출부; 및상기 딥러닝 신경망 모델에 대한 양자화 캘리브레이션을 수행하여 상기 입력 특성 변화 검출부가 검출한 상기 외부환경 변화에 의한 입력 이미지 데이터 특성 변화에 대응되는 새로운 양자화 파라미터를 결정하고,상기 새로운 양자화 파라미터를 기초로 상기 미리 설정된 복수의 양자화 파라미터 중에서 적어도 하나의 양자화 파라미터를 갱신하는 양자화부를 포함하는양자화 장치.
- 제12항에 있어서,상기 입력 특성 변화 검출부는,상기 딥러닝 신경망 모델의 연산을 수행하는 병렬 프로세서의 N 개 채널 중에서 상기 딥러닝 신경망 모델의 연산에 할당된 M 개의 채널을 제외한 나머지 채널 중 적어도 하나의 채널을 이용하여 상기 외부환경 변화에 의한 입력 데이터 특성 변화를 검출하기 위한 연산을 수행하는, 양자화 장치.
- 제13항에 있어서,상기 병렬 프로세서는,시스톨릭 어레이 구조를 갖는 병렬 프로세서인, 양자화 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230030124A KR20240136759A (ko) | 2023-03-07 | 2023-03-07 | 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 |
KR10-2023-0030124 | 2023-03-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024185924A1 true WO2024185924A1 (ko) | 2024-09-12 |
Family
ID=92674754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/005242 WO2024185924A1 (ko) | 2023-03-07 | 2023-04-18 | 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240136759A (ko) |
WO (1) | WO2024185924A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102029852B1 (ko) * | 2019-04-09 | 2019-10-08 | 세종대학교 산학협력단 | 환경에 따라 신경망 모델을 선택하는 객체 인식 장치 및 그 방법 |
KR20190130443A (ko) * | 2018-05-14 | 2019-11-22 | 삼성전자주식회사 | 뉴럴 네트워크의 양자화 방법 및 장치 |
KR20200129458A (ko) * | 2019-05-08 | 2020-11-18 | 삼성전자주식회사 | 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템 |
KR20210011461A (ko) * | 2019-06-12 | 2021-02-01 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 신경망의 양자화 파라미터 확정방법 및 관련제품 |
KR20220013946A (ko) * | 2020-05-21 | 2022-02-04 | 상하이 센스타임 인텔리전트 테크놀로지 컴퍼니 리미티드 | 양자화 트레이닝, 이미지 처리 방법 및 장치, 저장 매체 |
-
2023
- 2023-03-07 KR KR1020230030124A patent/KR20240136759A/ko unknown
- 2023-04-18 WO PCT/KR2023/005242 patent/WO2024185924A1/ko unknown
Patent Citations (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 | 삼성전자주식회사 | 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템 |
KR20210011461A (ko) * | 2019-06-12 | 2021-02-01 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 신경망의 양자화 파라미터 확정방법 및 관련제품 |
KR20220013946A (ko) * | 2020-05-21 | 2022-02-04 | 상하이 센스타임 인텔리전트 테크놀로지 컴퍼니 리미티드 | 양자화 트레이닝, 이미지 처리 방법 및 장치, 저장 매체 |
Also Published As
Publication number | Publication date |
---|---|
KR20240136759A (ko) | 2024-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018113239A1 (zh) | 一种卷积神经网络的数据调度方法、系统及计算机设备 | |
WO2019231217A1 (en) | Method and system for dnn based imaging | |
WO2021201467A1 (en) | Dynamic vision filtering for event detection | |
WO2017215262A1 (zh) | 一种基于屏幕补光的拍照方法及系统 | |
KR100505311B1 (ko) | 화상 분할 처리 방법, 화상 분할 처리 장치, 화상 처리방법 및 화상 처리 장치 | |
WO2020085874A1 (en) | Method and apparatus for dynamic image capturing based on motion information in image | |
WO2020004815A1 (ko) | 데이터의 어노말리 감지 방법 | |
WO2023171981A1 (ko) | 감시카메라 관리 장치 | |
WO2024185924A1 (ko) | 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 | |
WO2024019266A1 (en) | Apparatus and method for performing color transformation on raw sensor images | |
WO2013187587A1 (ko) | 데이터 샘플링 방법 및 장치 | |
US20190230381A1 (en) | Compressing multiple video files using localized camera meta data | |
WO2021230470A1 (ko) | 전자 장치 및 그 제어 방법 | |
WO2022080580A1 (ko) | 성능이 개선된 레이 트레이싱 장치 및 방법 | |
WO2022114252A1 (ko) | 복잡도 기반 특정 영역 연산 생략 방식을 이용한 딥러닝 기반 범시적 영역 분할 연산 가속처리 방법 | |
WO2023177108A1 (en) | Method and system for learning to share weights across transformer backbones in vision and language tasks | |
WO2023210884A1 (ko) | 비지역적 평균 기반의 노이즈 제거 장치 및 방법 | |
WO2019047077A1 (zh) | 终端白平衡处理方法、终端及计算机可读存储介质 | |
WO2016098943A1 (ko) | 얼굴 검출 능력 향상을 위한 이미지 처리 방법 및 시스템 | |
WO2022146031A1 (en) | Method and device of computing layout selection for efficient dnn inference | |
WO2024167057A1 (ko) | 클러스터를 이용한 딥러닝 뉴럴 네트워크 모델 가속화 방법 및 장치 | |
WO2020037566A1 (zh) | 一种图像处理、匹配方法、装置及存储介质 | |
WO2023014124A1 (ko) | 신경망 파라미터의 양자화 방법 및 장치 | |
WO2020045903A1 (ko) | Cnn을 이용하여 크기 독립적으로 물체를 검출하는 방법 및 장치 | |
WO2017007047A1 (ko) | 불규칙 비교를 이용하는 공간적 깊이 불균일성 보상 방법 및 장치 |