KR20210093648A - Method and apparatus for processing weight of artificial neural network - Google Patents
Method and apparatus for processing weight of artificial neural network Download PDFInfo
- Publication number
- KR20210093648A KR20210093648A KR1020200007509A KR20200007509A KR20210093648A KR 20210093648 A KR20210093648 A KR 20210093648A KR 1020200007509 A KR1020200007509 A KR 1020200007509A KR 20200007509 A KR20200007509 A KR 20200007509A KR 20210093648 A KR20210093648 A KR 20210093648A
- Authority
- KR
- South Korea
- Prior art keywords
- weight
- weights
- neural network
- type
- function
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 179
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000012545 processing Methods 0.000 title claims abstract description 18
- 238000010606 normalization Methods 0.000 claims abstract description 60
- 230000006870 function Effects 0.000 claims description 225
- 238000013139 quantization Methods 0.000 claims description 129
- 238000010586 diagram Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 22
- 230000004913 activation Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 20
- 210000002569 neuron Anatomy 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 210000000225 synapse Anatomy 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000004580 weight loss Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Analysis (AREA)
Abstract
Description
본 개시는 인공 신경망의 가중치를 처리하는 방법 및 장치에 관한 것이다. 보다 상세하게는, 인공 신경망의 가중치를 양자화함으로써 가중치를 표현할 수 있는 방법 및 장치에 관한 것이다.The present disclosure relates to a method and apparatus for processing weights in an artificial neural network. More particularly, it relates to a method and apparatus capable of expressing weights by quantizing the weights of an artificial neural network.
인공 신경망(Artificial Neural Network)는 인공 뉴런들의 상호 연결된 집합들을 구현하기 위하여 컴퓨팅 기기 또는 컴퓨팅 기기에 의해서 수행되는 방법을 지칭할 수 있다. 인공 신경망의 일 실시 예로, 심층 신경망(Deep Neural Network) 또는 딥 러닝(Deep Learning)은 멀티 레이어 구조를 가질 수 있고, 레이어들 각각이 다수의 데이터에 따라 학습될 수 있다.An artificial neural network may refer to a computing device or a method performed by a computing device to implement interconnected sets of artificial neurons. As an embodiment of the artificial neural network, a deep neural network or deep learning may have a multi-layer structure, and each of the layers may be learned according to a plurality of data.
최근 인공 신경망 기술의 개발이 활성화 됨에 따라, 인공 지능 분야에서 연산량을 줄이면서도 동시에 전력 효율성을 향상시키기 위한 방법으로 양자화(quantization) 기술이 활발히 연구되고 있다. 인공 신경망의 양자화 기술은 고성능 및 저전력 소모라는 장점을 제공할 수 있지만, 양자화 기술에 따른 저정밀도 기반의 저비트 연산은 인공 지능 신경망의 정확도(accuracy)가 저하되는 문제점이 있다.Recently, as the development of artificial neural network technology has been activated, quantization technology has been actively studied as a method to reduce the amount of computation and improve power efficiency at the same time in the field of artificial intelligence. Although the quantization technology of an artificial neural network can provide advantages of high performance and low power consumption, low-precision-based low-bit operation according to the quantization technology has a problem in that the accuracy of the artificial intelligence neural network is deteriorated.
따라서, 인공 신경망에서 양자화 기술을 통하여 저비트 연산을 수행함으로써 효과적으로 인공 신경망을 압축함과 함께 인공 신경망의 정확도를 향상시키기 위한 기술개발이 요구되고 있다.Accordingly, there is a demand for technology development for effectively compressing the artificial neural network and improving the accuracy of the artificial neural network by performing a low-bit operation through a quantization technique in the artificial neural network.
일 실시 예에 따르면, 인공 신경망의 가중치를 처리하는 방법 및 전자 장치가 제공될 수 있다.According to an embodiment, a method and an electronic device for processing a weight of an artificial neural network may be provided.
또한, 일 실시 예에 의하면, 양자화된 인공 신경망의 가중치의 적어도 일부를 부호화하는 방법 및 전자 장치가 제공될 수 있다.Also, according to an embodiment, a method and an electronic device for encoding at least a portion of a weight of a quantized artificial neural network may be provided.
상술한 기술적 과제를 달성하기 위한 본 개시의 일 실시 예에 따라, 인공 신경망 내 레이어들 및 상기 레이어들 간의 연결 강도에 관한 가중치(weight)를 양자화 하는 단계; 상기 양자화된 가중치를 상기 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 이용하여 정규화 하는 단계; 상기 정규화된 가중치의 타입을 식별하는 단계; 및 상기 식별된 가중치의 타입에 기초하여, 상기 가중치의 적어도 일부를 부호화하는 단계; 를 포함하는 인공 신경망(Neural Network)의 가중치를 처리하는 방법이 제공될 수 있다.According to an embodiment of the present disclosure for achieving the above-described technical problem, the method comprising: quantizing layers in an artificial neural network and weights related to connection strength between the layers; normalizing the quantized weights using a weight normalization function for adjusting the distribution of the weights; identifying the type of normalized weight; and encoding at least a portion of the weight based on the identified type of weight. A method of processing weights of an artificial neural network including
또한, 상기 기술적 과제를 해결하기 위한 본 개시의 또 다른 실시 예에 따라, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션들을 실행하는 적어도 하나의 프로세서; 를 포함하고, 상기 적어도 하나의 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 인공 신경망 내 레이어들 및 상기 레이어들 간의 연결 강도에 관한 가중치(weight)를 양자화 하고, 상기 양자화된 가중치를 상기 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 이용하여 정규화 하고, 상기 정규화된 가중치의 타입을 식별하고, 상기 식별된 가중치의 타입에 기초하여, 상기 가중치의 적어도 일부를 부호화하는, 인공 신경망(Neural Network)의 가중치를 처리하는 전자 장치가 제공될 수 있다.In addition, according to another embodiment of the present disclosure for solving the above technical problem, a memory for storing one or more instructions; and at least one processor executing the one or more instructions. including, wherein the at least one processor quantizes the weights related to the layers in the artificial neural network and the connection strength between the layers by executing the one or more instructions, and uses the quantized weights to distribute the weights. A weight of an artificial neural network, which normalizes using a weight normalization function for adjusting , identifies a type of the normalized weight, and encodes at least a portion of the weight based on the identified type of weight An electronic device for processing may be provided.
또한, 상기 기술적 과제를 해결하기 위한 본 개시의 또 다른 실시 예에 따라, 인공 신경망(Neural Network) 내 레이어들 및 상기 레이어들 간의 연결 강도에 관한 가중치(weight)를 양자화 하는 단계; 상기 양자화된 가중치를 상기 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 이용하여 정규화 하는 단계; 상기 정규화된 가중치의 타입을 식별하는 단계; 및 상기 식별된 가중치의 타입에 기초하여, 상기 가중치의 적어도 일부를 부호화하는 단계; 를 포함하는, 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공될 수 있다.In addition, according to another embodiment of the present disclosure for solving the above technical problem, the method comprising: quantizing layers in an artificial neural network and weights related to connection strength between the layers; normalizing the quantized weights using a weight normalization function for adjusting the distribution of the weights; identifying the type of normalized weight; and encoding at least a portion of the weight based on the identified type of weight. A computer-readable recording medium recording a program for executing the method on a computer, including a computer-readable recording medium, may be provided.
도 1은 일 실시 예에 따른 전자 장치가 인공 신경망의 가중치를 처리하는 과정을 나타내는 도면이다.
도 2는 일 실시 예에 따른 인공 신경망의 가중치를 처리하는 방법의 흐름도이다.
도 3은 일 실시 예에 따른 인공 신경망의 가중치를 양자화하는 구체적인 방법을 설명하기 위한 도면이다.
도 4는 일 실시 예에 따른 인공 신경망의 가중치를 정규화하는 구체적인 방법을 설명하기 위한 도면이다.
도 5는 일 실시 예에 따른 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 나타내는 도면이다.
도 6은 일 실시 예에 따른 가중치의 타입을 식별하는 방법을 구체적으로 설명하기 위한 도면이다.
도 7은 일 실시 예에 따른 가중치의 적어도 일부를 부호화하는 방법을 구체적으로 설명하기 위한 도면이다.
도 8은 일 실시 예에 따른 전자 장치가 가중치의 적어도 일부를 부호화하는 방법을 설명하기 위한 도면이다.
도 9는 또 다른 실시 예에 따른 전자 장치가 인공 신경망의 가중치를 처리하는 방법의 흐름도이다.
도 10은 일 실시 예에 따른 전자 장치가 식별된 가중치의 타입에 따라 서로 다르게 양자화된 가중치들을 설명하기 위한 도면이다.
도 11은 일 실시 예에 따른 인공 신경망의 가중치를 처리하는 전자 장치의 블록도이다.
도 12는 일 실시 예에 따른 전자 장치와 통신 가능한 서버의 블록도이다.
도 13은 일 실시 예에 따라 전자 장치가 이용하는 인공 신경망의 성능을 설명하기 위한 도면이다.
도 14는 또 다른 실시 예에 따라 전자 장치가 이용하는 인공 신경망의 성능을 설명하기 위한 도면이다.
도 15는 일 실시 예에 따른 전자 장치 내 인공 신경망의 동작을 설명하기 위한 도면이다.
도 16은 일 실시 예에 따른 전자 장치 내 인공 신경망의 동작을 설명하기 위한 도면이다.
도 17은 또 다른 실시 예에 따른 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 나타내는 도면이다.1 is a diagram illustrating a process in which an electronic device processes a weight of an artificial neural network, according to an embodiment.
2 is a flowchart of a method of processing a weight of an artificial neural network according to an embodiment.
3 is a diagram for describing a specific method of quantizing a weight of an artificial neural network according to an embodiment.
4 is a diagram for describing a specific method of normalizing a weight of an artificial neural network according to an embodiment.
5 is a diagram illustrating a weight normalization function for adjusting a distribution of weights according to an embodiment.
6 is a diagram for describing in detail a method of identifying a weight type according to an embodiment.
7 is a diagram for describing in detail a method of encoding at least a portion of a weight according to an exemplary embodiment.
8 is a diagram for describing a method of encoding at least a portion of a weight by an electronic device, according to an exemplary embodiment.
9 is a flowchart of a method of processing, by an electronic device, a weight of an artificial neural network according to another embodiment.
10 is a diagram for explaining different quantized weights according to the types of weights identified by an electronic device according to an embodiment.
11 is a block diagram of an electronic device that processes a weight of an artificial neural network according to an embodiment.
12 is a block diagram of a server capable of communicating with an electronic device according to an exemplary embodiment.
13 is a diagram for explaining the performance of an artificial neural network used by an electronic device, according to an embodiment.
14 is a diagram for explaining the performance of an artificial neural network used by an electronic device according to another embodiment.
15 is a diagram for describing an operation of an artificial neural network in an electronic device according to an embodiment.
16 is a diagram for describing an operation of an artificial neural network in an electronic device according to an embodiment.
17 is a diagram illustrating a weight normalization function for adjusting a distribution of weights according to another embodiment.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. Terms used in this specification will be briefly described, and the present disclosure will be described in detail.
본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the present disclosure are selected as currently widely used general terms as possible while considering the functions in the present disclosure, which may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in specific cases, there are also terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the terms used in the present disclosure should be defined based on the meaning of the term and the contents of the present disclosure, rather than the simple name of the term.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When a part "includes" a certain component throughout the specification, this means that other components may be further included, rather than excluding other components, unless otherwise stated. In addition, terms such as "...unit" and "module" described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software, or a combination of hardware and software. .
아래에서는 첨부한 도면을 참고하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the accompanying drawings, embodiments of the present disclosure will be described in detail so that those of ordinary skill in the art to which the present disclosure pertains can easily implement them. However, the present disclosure may be implemented in several different forms and is not limited to the embodiments described herein. And in order to clearly explain the present disclosure in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.
도 1은 일 실시 예에 따른 전자 장치가 인공 신경망의 가중치를 처리하는 과정을 나타내는 도면이다.1 is a diagram illustrating a process in which an electronic device processes a weight of an artificial neural network, according to an embodiment.
일 실시 예에 의하면, 전자 장치(1000)는 인공 신경망(Artificial Neural Network)(102)을 포함할 수 있고, 인공 신경망의 가중치를 처리할 수 있다. 예를 들어, 전자 장치(1000)는 인공 신경망의 가중치를 양자화(quantizing)하고, 양자화된 가중치의 적어도 일부를 부호화(encoding)할 수 있다. According to an embodiment, the
일 실시 예에 의하면, 전자 장치(1000)는 인공 신경망의 가중치를 처리하기 위한, AI 프로그램이 탑재되고 음성 인식 기능을 포함하는 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, 미디어 플레이어, 서버, 마이크로 서버, 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다.According to an embodiment, the
일 실시 예에 의하면, 전자 장치(1000)가 이용하는 인공 신경망(Artificial Neural Network)은 생물학적 신경망에 착안된 컴퓨팅 시스템을 지칭할 수 있다. 인공 신경망은 미리 정의된 조건에 따라 작업을 수행하는 고전적인 알고리즘과 달리, 다수의 샘플들을 고려함으로써 작업을 수행하는 것을 학습할 수 있다. 인공 신경망은 인공 뉴런(neuron)들이 연결된 구조를 가질 수 있고, 뉴런들 간의 연결은 시냅스(synapse)로 지칭될 수 있다. 뉴런은 수신된 신호를 처리할 수 있고, 처리된 신호를 시냅스를 통해서 다른 뉴런에 전송할 수 있다. 뉴런의 출력은 액티베이션(activation)으로 지칭될 수 있고, 뉴런 및/또는 시냅스는 변동될 수 있는 가중치(weight)를 가질 수 있고, 가중치에 따라 뉴런에 의해 처리된 신호의 영향력이 증가하거나 감소할 수 있다.According to an embodiment, an artificial neural network used by the
예를 들어, 인공 신경망은 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values, weights, 104)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공 신경망의 학습 결과에 의해 최적화될 수 있다. For example, the artificial neural network may be composed of a plurality of neural network layers. Each of the plurality of neural network layers has a plurality of weight values (weights, 104), and a neural network operation is performed through an operation between an operation result of a previous layer and a plurality of weights. The plurality of weights of the plurality of neural network layers may be optimized by the learning result of the artificial neural network.
예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 손실(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 수정 및 갱신될 수 있다. 본 개시에 따른 인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다. 이하에서는 편의상 본 개시에 따른 인공 신경망은 심층 신경망인 경우를 예로 설명하기로 한다.For example, a plurality of weights may be modified and updated so that a loss value or a cost value obtained from the artificial intelligence model during the learning process is reduced or minimized. The artificial neural network according to the present disclosure may include a deep neural network (DNN), for example, a Convolutional Neural Network (CNN), a Deep Neural Network (DNN), a Recurrent Neural Network (RNN), Restricted RBM (RBM). Boltzmann Machine), Deep Belief Network (DBN), Bidirectional Recurrent Deep Neural Network (BRDNN), or Deep Q-Networks, but is not limited to the above-described example. Hereinafter, for convenience, a case in which the artificial neural network according to the present disclosure is a deep neural network will be described as an example.
일 실시 예에 의하면, 전자 장치(1000)는 인공 신경망의 가중치를 양자화(S112)하고, 양자화된 가중치의 분포를 정규화(S114)할 수 있다. According to an embodiment, the
일 실시 예에 의하면, 본 개시에 따른 전자 장치(1000)가 수행하는 양자화는 예컨대 반올림을 통해서 실수(real number)를 정수(integer)로 맵핑하는 것과 같이, 입력 값들을 입력 값들의 개수 보다 작은 개수의 값들로 맵핑하는 과정을 지칭할 수 있다. 또 다른 실시 예에 의하면, 전자 장치(1000)가 수행하는 양자화는 부동 소수점(floating point) 연산 기반의 신경망을 고정 소수점(fixed point) 연산 기반의 신경망으로 변환하는 과정을 의미할 수 있다. 본 개시에 따른 양자화는 입력값을 단순화된 단위의 값으로 변환하기 위한 기타 알고리즘을 포함할 수 있다.According to an embodiment, in the quantization performed by the
예를 들어, 전자 장치(1000)는 인공 신경망의 가중치를 양자화(S112)고, 양자화 과정에서 인공 신경망의 가중치를 정규화(S114)함으로써, 가중치의 크기가 큰 일부 가중치들을 가중치의 크기가 작은 가중치로 정규화함으로써 인공 신경망의 가중치 계산이 필요한 높은 계산 복잡도(Computational complexity)를 줄일 수 있다. 예를 들어, 도 1의 S114를 참조하면, 전자 장치(1000)가 가중치들을 양자화 하는 과정에서 양자화된 가중치들을 정규화함으로써, 가중치들에 대하여 중앙 집중화된 양자화(Centralized Quantization)를 수행할 수 있다.For example, the
또한, 전자 장치(1000)는 S114에서 양자화된 가중치들을 미리 설정된 타입으로 분류할 수 있다. 예를 들어, 전자 장치(1000)는 양자화된 가중치들의 절대 값 크기를 미리 설정된 임계치와 비교함으로써, 가중치들의 타입을 제1 타입의 가중치(122) 또는 제2 타입의 가중치(124)로 식별할 수 있다. 전자 장치(1000)는 식별된 가중치의 타입에 기초하여, 양자화된 가중치들의 적어도 일부를 부호화(encoding)할 수 있다. Also, the
본 개시에 따른 전자 장치(1000)는 양자화 과정에서 가중치의 정규화를 통하여 분포된 가중치의 타입을 식별하고, 식별된 가중치의 타입에 따라 가중치를 값(value) 및 지시자(indicies) 모두를 이용하여 나타낼 수 있기 때문에, 효과적으로 인공 신경망을 압축함과 함께 인공 신경망의 정확도를 향상시킬 수 있다. 전자 장치(1000)가 가중치의 타입에 기초하여 가중치를 부호화하는 구체적인 방법은 후술하는 도 6 내지 도 8을 참조하여 구체적으로 설명하기로 한다.The
도 2는 일 실시 예에 따른 인공 신경망의 가중치를 처리하는 방법의 흐름도이다.2 is a flowchart of a method of processing a weight of an artificial neural network according to an embodiment.
S210에서, 전자 장치(1000)는 인공 신경망 내 레이어들 및 레이어들 간의 연결 강도에 관한 가중치를 양자화할 수 있다. 예를 들어, 전자 장치(1000)는 인공 신경망 내 사전 학습된 가중치의 크기에 기초하여 제1 양자화 함수를 결정하고, 결정된 양자화 함수에 따라 양자화된 가중치들을 포함하는 인공 신경망의 제1 손실 함수를 최소화하도록 가중치를 양자화할 수 있다. In S210 , the
보다 상세하게는, 전자 장치(1000)는 양자화된 가중치들을 포함하는 인공 신경망에 입력 데이터를 입력 시키고, 입력 데이터에 대응되는 인공 신경망의 출력 값과 정답 값의 차이에 관한 제1 손실 함수를 결정할 수 있다. 전자 장치(1000)는 양자화된 가중치를 포함하는 인공 신경망의 제1 손실 함수가 최소화되도록 가중치를 양자화 할 수 있다. 전자 장치(1000)가 가중치를 양자화 하는 구체적인 방법은 도 3을 참조하여 더 구체적으로 설명하기로 한다.More specifically, the
S220에서, 전자 장치(1000)는 가중치 정규화 함수를 이용하여 양자화된 가중치를 정규화할 수 있다. 예를 들어, 전자 장치(1000)는 과적합을 피하기 위한 회귀 방법론들 중, 미리 설정된 제약 조건에 따라 결정되는 가중치 정규화 함수를 이용하여 양자화되는 가중치들을 정규화할 수 있다. 도 2에서는 전자 장치(1000)가 가중치를 양자화 한 후, 양자화된 가중치들을 정규화(regularizing)하는 것으로 도시되었으나, 이에 한정되는 것은 아니며, 전자 장치(1000)가 가중치들을 양자화 하는 동작 및 가중치들을 미리 설정된 제약 조건에 따라 결정되는 정규화 함수를 이용하여 정규화 하는 동작은 함께 수행될 수도 있다. 전자 장치(1000)가 가중치를 정규화 하는 구체적인 방법은 후술하는 도 4 내지 5를 참조하여 구체적으로 설명하기로 한다.In S220, the
S230에서, 전자 장치(1000)는 정규화된 가중치의 타입을 식별(identifying)할 수 있다. 예를 들어, 전자 장치(1000)는 양자화된 가중치들을 포함하는 인공 신경망의 제1 손실 함수 및 양자화된 가중치들을 정규화함에 따라 발생하는 인공 신경망의 제2 손실 함수가 최소화되도록 인공 신경망의 가중치들을 수정(modify) 및 갱신(refine)할 수 있다. 전자 장치(1000)는 제1 손실 함수 및 제2 손실 함수가 최소화되는 인공 신경망의 가중치와 미리 설정된 임계치를 비교함하고, 비교 결과에 기초하여 가중치들을 제1 타입의 가중치 또는 제2 타입의 가중치로 분류(classify)할 수 있다. 전자 장치(1000)가 정규화된 가중치들의 타입을 식별하는 구체적인 방법은 도 6을 참조하여 구체적으로 설명하기로 한다.In S230 , the
S240에서, 전자 장치(1000)는 식별된 가중치의 타입에 기초하여 가중치의 적어도 일부를 부호화할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 가중치의 전부 또는 일부를 부호화(encoding)할 수 있다. 전자 장치(1000)가 가중치의 타입에 기초하여 가중치를 부호화하는 구체적인 방법은 도 7 내지 도 8을 참조하여 구체적으로 설명하기로 한다.In S240 , the
또한, 일 실시 예에 의하면, 도 2에는 도시되지 않았지만, 전자 장치(1000)는 S210단계에 앞서, 인공 신경망 내 가중치들이 양자화 되기 전, 사전 학습된(pre-trained) 가중치에 기초하여 인공 신경망 내 가중치들을 초기화하고, 초기화된 인공 신경망 내 가중치들을 양자화할 수 있다. Also, according to an embodiment, although not shown in FIG. 2 , before step S210 , the
예를 들어, 전자 장치(1000)는 활성화 함수로써 ReLU1를 사용하여 활성화된 값들의 범위를 제한함으로써, 인공 신경망 내 활성화 함수의 출력을 양자화할 수 있다. 예를 들어, 양자화된 활성화 함수의 출력 값은 하기 수학식 1과 같이 표현될 수 있다. For example, the
여기에서 a는 활성화 함수 ReLU1의 출력 값이고, 활성화 함수 Relu1은 입력 변수 x가 0보다 작을 경우 0을 출력하고, 입력 변수가 0 에서 1사이에 위치할 경우 입력 변수를 그대로 출력하며, 입력 변수가 1보다 클 경우 1을 출력하는 클리핑 함수에 대응될 수 있다. 또한, 활성화 함수 ReLU1은 max(0, x)의 출력 값을 입력으로 하는 min 함수에 대응될 수도 있다. 또한 aq는 양자화된 활성화 함수의 출력 값을 나타내고, Qa활성화 함수의 출력 값을 양자화하기 위한 양자화 함수로써, 0과 1사이의 단계의 수를 나타내는 변수 k및 활성화 함수의 출력 a를 입력으로 하는 round 함수(예컨대 반올림 함수)를 이용하여 정의될 수 있다. 본 개시에 따른 전자 장치(1000)는 인공 신경망의 가중치들이 양자화 되기 전, Relu1 활성화 함수를 통하여 사전 학습된 FP(Full Precision) 모델의 가중치를 이용하여 인공 신경망을 초기화함으로써 인공 신경망의 정확도를 더 향상시킬 수 있다.Here, a is the output value of the activation function ReLU1, and the activation function Relu1 outputs 0 when the input variable x is less than 0, and outputs the input variable as it is when the input variable is located between 0 and 1. When it is greater than 1, it may correspond to a clipping function that outputs 1. Also, the activation function ReLU1 may correspond to a min function that takes an output value of max(0, x) as an input. Also, a q represents the output value of the quantized activation function, Q a is a quantization function for quantizing the output value of the activation function, and a variable k representing the number of steps between 0 and 1 and the output a of the activation function are input. It can be defined using a round function (eg, a rounding function). The
도 3은 일 실시 예에 따른 인공 신경망의 가중치를 양자화하는 구체적인 방법을 설명하기 위한 도면이다.3 is a diagram for describing a specific method of quantizing a weight of an artificial neural network according to an embodiment.
S320에서, 전자 장치(1000)는 인공 신경망 내 사전 학습된 가중치의 크기에 기초하여 제1 양자화 함수를 결정할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 하기의 수학식 2에 따라 결정되는 제1 양자화 함수를 이용하여 가중치들을 양자화할 수 있다.In S320 , the
여기에서, wq는 양자화된 가중치이고, Qw는 제1 양자화 함수, wc클리핑된 가중치, rng는 가중치들의 고정 범위로써, 사전 학습된 가중치들의 최대 절대 값, s는 제2 타입의 가중치들의 비트 수로부터 유도된 비트수, round 함수는 반올림 함수, clip 함수는 clip 함수로 입력된 가중치가 ??rng 보다 작으면, -rng를 출력하고, 입력된 가중치가 ??rng 보다 크고, rng보다 작으면 입력된 가중치의 값을 그대로 출력하며, 입력된 가중치가 rng보다 크면 rng를 출력하는 함수이다. 일 실시 예에 의하면, rng 값은 인공 신경망의 사전 학습(pre-training) 단계에서 결정되고, 양자화 손실을 최소화하도록 하는 재 학습(re-training) 단계에서는 고정될 수 있다. Here, w q is a quantized weight, Qw is the first quantization function, w c clipped weight, rng is a fixed range of weights, the maximum absolute value of the pre-learned weights, and s is the bit of the weights of the second type The number of bits derived from a number, the round function is a rounding function, and the clip function outputs -rng if the weight input to the clip function is less than ??rng, and if the input weight is greater than ??rng and less than rng This function outputs the value of the input weight as it is, and outputs rng if the input weight is greater than rng. According to an embodiment, the rng value may be determined in a pre-training step of the artificial neural network, and may be fixed in a re-training step to minimize quantization loss.
즉, 수학식 2에 도시된 바와 같이 일 실시 예에 의하면, 제1 양자화 함수는 인공 신경망 내 사전 학습된 가중치의 크기에 기초하여 상기 초기화된 가중치들을 클리핑하는 클리핑 함수의 출력 값 및 상기 가중치의 비트 수를 입력으로 하는 라운드 함수일 수 있다. 상기 수학식에 따른 양자화 함수는 클립 함수를 양자화 함수에 입력함으로써 하기 수학식 3과 같이 다시 표현될 수도 있다.That is, as shown in
여기에서, wq는 양자화된 가중치이고, Qw는 제1 양자화 함수, Mwp는 사전 학습된 가중치들의 최대 절대 값, clip 은 clip 함수로써 입력된 가중치가 ?? Mwp 보다 작으면, - Mwp 를 출력하고, 입력된 가중치가 ?? Mwp 보다 크고, Mwp는 보다 작으면 입력된 가중치의 값을 그대로 출력하며, 입력된 가중치가 Mwp 보다 크면 Mwp 를 출력하는 함수이고, st는 제1 타입의 가중치를 나타내는데 필요한 양자화 상태수, ssl은 제2 타입의 가중치를 나타내는데 필요한 양자화 상태수를 나타낸다.Here, w q is the quantized weight, Qw is the first quantization function, M wp is the maximum absolute value of the pre-trained weights, and clip is the clip function. If it is less than M wp , - M wp is output, and the input weight is ?? Is greater than M wp, M wp is and output as the value of the weighted input if less than, the input weighting is a function that outputs a larger M wp than M wp, s t is quantized states needed to represent the weight for the first type The number s sl represents the number of quantization states required to represent the second type of weight.
본 개시에 따른 전자 장치(1000)는 가중치를 양자화 하기 전, 클립함수 Wc를 이용하여 클리핑함으로써 라운드 함수에 따른 양자화 오류(misquantization)를 방지할 수 있다.The
S340에서, 전자 장치(1000)는 제1 양자화 함수에 따라 양자화된 가중치들을 포함하는 인공 신경망의 제1 손실 함수를 최소화하도록 가중치를 양자화할 수 있다. 예를 들어, 전자 장치(1000)는 상기 수학식 2에 기초하여 결정되는 제1 양자화 함수를 이용하여 가중치를 양자화한 후, 양자화된 가중치들을 이용하여 인공 신경망의 가중치를 수정 및 갱신할 수 있다. 전자 장치(1000)는 양자화된 가중치를 포함하는 인공 신경망에 입력 데이터를 인가한 후, 입력 데이터에 대한 인공 신경망의 출력 값 및 정답 값의 차이에 관한 제1 손실 함수를 결정하고, 결정된 제1 손실 함수가 최소화되도록 가중치를 양자화할 수 있다. 일 실시 예에 의하면 제1 손실 함수는 평균 제곱 오차 또는 교차 엔트로피 오차를 포함할 수 있다.In S340 , the
도 4는 일 실시 예에 따른 인공 신경망의 가중치를 정규화하는 구체적인 방법을 설명하기 위한 도면이다.4 is a diagram for describing a specific method of normalizing a weight of an artificial neural network according to an embodiment.
S420에서, 전자 장치(1000)는 부분 L1 제약 조건 및 L2 제약 조건에 기초하여 제1 가중치 정규화 함수를 결정할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)가 이용하는 제1 가중치 정규화 함수는 하기의 수학식 4에 기초하여 결정될 수 있다.In S420 , the
여기에서, WR은 가중치 w, 제1 하이퍼파라미터 및 제2 하이퍼파라미터를 입력으로 하는 제1 가중치 정규화 함수 이다. 또한, 및 는 하이퍼 파라미터들로써 제1 가중치 정규화 함수의 정규화(또는 규제화)의 강도(intensity)를 조절하기 위한 변수이고, pL1은 과적합(over fitting)을 막기 위한 회귀 방법론 중 하나로써 부분 L1 제약 조건(part of L1, pL1)을 따르는 정규화 함수이고, L2는 L2 제약 조건 (Ridge)을 따르는 정규화 함수이며, Mwp는 인공 신경망 내 가중치들이 양자화 되기 전 사전 학습된 가중치들의 최대 절대 값을 나타낸다. L2 및 pL1 제약 조건에 따른 가중치의 손실은 후술하는 도 5를 참조하여 더 구체적으로 설명하기로 한다.Here, WR is a first weight normalization function with a weight w, a first hyperparameter, and a second hyperparameter as inputs. also, and is a variable for adjusting the intensity of regularization (or regulation) of the first weight regularization function as hyperparameters, and pL1 is a partial L1 constraint as one of the regression methodologies to prevent overfitting. L1, pL1) is a regularization function, L2 is a regularization function conforming to the L2 constraint (Ridge), and Mwp represents the maximum absolute value of pre-trained weights before the weights in the artificial neural network are quantized. The weight loss according to the L2 and pL1 constraints will be described in more detail with reference to FIG. 5 to be described later.
S440에서, 전자 장치(1000)는 제1 가중치 정규화 함수에 따라 정규화된 가중치들을 포함하는 인공 신경망의 제2 손실 함수를 최소화하도록 가중치를 정규화할 수 있다. 예를 들어, 전자 장치(1000)는 상기 수학식 4에 기초하여 결정되는 제1 가중치 정규화 함수를 이용하여 양자화된 가중치를 정규화한 후, 정규화된 가중치를 포함하는 인공 신경망에 입력 데이터를 인가한 후, 입력 데이터에 대한 인공 신경망의 출력 값 및 정답 값의 차이에 관한 제2 손실 함수를 결정하고, 결정된 제2 손실 함수가 최소화되도록 가중치를 정규화할 수 있다.In S440 , the
도 5는 일 실시 예에 따른 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 나타내는 도면이다.5 is a diagram illustrating a weight normalization function for adjusting a distribution of weights according to an embodiment.
도 5의 차트 502를 참조하면 L2 제약 조건을 따르는 정규화 함수의 손실 곡선(506)과 부분 L1 제약 조건(pL1)을 따르는 정규화 함수의 손실 곡선(508)이 도시되어 있다. 차트 502의 점선은 제1 타입의 가중치 및 제2 타입의 가중치를 구별하기 위한 임계치(thresh)를 나타낸다. 부분 L1 제약 조건(pL1)을 따르는 정규화 함수는 하기 수학식 5에 기초하여 결정될 수 있다.Referring to chart 502 of FIG. 5 , a
여기에서 pL1은 부분 L1 제약 조건을 따르는 정규화 함수로써, 가중치 w의 절대 값이 임계치보다 큰 경우, 가중치의 절대 값에서 임계치만큼의 차이 값을 출력 값으로 하고, 가중치 w의 절대 값이 임계치 보다 작은 경우, 0의 값을 출력으로 하는 정규화 함수이다. 또한, 여기에서 Mwp는 사전 학습된 가중치들의 최대 절대 값이고, st는 제1 타입의 가중치를 표현하는데 필요한 비트 수, ssl은 제2 타입의 가중치를 표현하는데 필요한 비트 수를 나타낼 수 있다.Here, pL1 is a regularization function that conforms to the partial L1 constraint. If the absolute value of the weight w is greater than the threshold, the difference value from the absolute value of the weight to the threshold is the output value, and the absolute value of the weight w is smaller than the threshold. In this case, it is a normalization function that outputs a value of 0. In addition, Mwp may be the maximum absolute value of the pre-learned weights, s t may indicate the number of bits required to express the weight of the first type, and s sl may indicate the number of bits required to express the weight of the second type.
도 5의 차트 512를 참조하면, 전자 장치(1000)가 이용하는 제1 가중치 정규화 함수의 손실 곡선이 도시된다. 일 실시 예에 의하면, 제1 가중치 정규화 함수는 L2 제약 조건을 따르는 정규화 함수 및 부분 L1 제약 조건(pL1)을 따르는 정규화 함수를 더 함으로써 정의될 수 있다. 도 5의 차트 512를 참조하면 제1 가중치 정규화 함수는 L2 제약 조건을 따르는 정규화 함수 및 부분 L1 제약 조건(pL1)을 따르는 정규화 함수의 합으로 정의되므로, 임계치 부근에서 더 가파른 기울기를 가지는 손실 곡선을 나타낼 수 있다. Referring to the
도 5의 차트 522를 참조하면, 본 개시에 따른 제1 가중치 정규화 함수의 기울기가 도시된다. 전자 장치(1000)는 도 5의 차트 522의 기울기를 나타내는 제1 가중치 정규화 함수를 이용하여 가중치들을 정규화 하기 때문에, 임계치(thresh) 이상의 가중치에 더 큰 강도의 정규화 는 규제화)를 수행함으로써, 상당수의 가중치가 임계치 사이에 존재하도록 변환할 수 있다.Referring to chart 522 of FIG. 5 , the slope of the first weight normalization function according to the present disclosure is shown. Since the
도 6은 일 실시 예에 따른 가중치의 타입을 식별하는 방법을 구체적으로 설명하기 위한 도면이다.6 is a diagram for describing in detail a method of identifying a weight type according to an embodiment.
S620에서, 전자 장치(1000)는 양자화 과정에서 정규화된 가중치의 절대 값 및 기 설정된 임계치를 비교한다. S640에서, 전자 장치(1000)는 비교 결과에 기초하여 정규화된 가중치를 -1, 0 또는 1중 하나 또는, -1 에서 1사이의 임의의 값을 나타내는 제1 타입의 가중치로 식별하거나, 상기 가중치 중, 제1 타입의 가중치가 아닌 가중치를 제2 타입의 가중치로 식별할 수 있다. 전자 장치(1000)가 가중치의 타입을 식별하는 동작은 하기의 수학식 4에 기초하여 정의될 수 있다.In S620, the
여기에서 mask(w)는 가중치의 타입을 식별하기 위한 mask함수이고, 양자화 과정에서 정규화된 가중치의 절대 값이 기 설정된 임계치 보다 작은 경우, 가중치를 삼항 가중치(Ternary Weight, TW)로 분류하고, 가중치의 절대 값이 기 설정된 임계치 보다 작은 경우, 큰 가중치(Sparse-large weight)로 분류하는 함수이다. 일 실시 예에 의하면, 삼항 가중치(TW)는 -1과 1사이의 범위를 나타내는 가중치 또는 -1, 0 및 1 중 하나를 나타내는 가중치의 타입을 나타내고, 큰 가중치(SLW)는 가중치들 중, -1 보다 작거나 1보다 큰 값을 나타내는 가중치의 타입을 나타낼 수 있다. 이하에서는, 편의상 삼항 가중치(TW)를 제1 타입의 가중치, 큰 가중치(SLW)를 제2 타입의 가중치로 정의하여 설명하기로 한다.Here, mask(w) is a mask function for identifying the type of weight, and when the absolute value of the normalized weight in the quantization process is smaller than a preset threshold, the weight is classified as a ternary weight (TW), and the weight is When the absolute value of is smaller than a preset threshold, it is a function that classifies it as a sparse-large weight. According to an embodiment, the ternary weight (TW) indicates a type of weight indicating a range between -1 and 1 or a weight indicating one of -1, 0, and 1, and a large weight (SLW) is a weight among the weights, - The type of weight representing a value less than 1 or greater than 1 may be indicated. Hereinafter, for convenience, the ternary weight TW is defined as the first type of weight and the large weight SLW is defined as the second type of weight.
도 7은 일 실시 예에 따른 가중치의 적어도 일부를 부호화하는 방법을 구체적으로 설명하기 위한 도면이다.7 is a diagram for describing in detail a method of encoding at least a portion of a weight according to an exemplary embodiment.
S720에서, 전자 장치(1000)는 제1 타입의 가중치를 2비트로 표현 가능한 양자화 상태에 각각 대응되는 이진 값으로 변환한다. 예를 들어, 전자 장치(1000)는 양자화 과정에서 정규화된 가중치가 제1 타입의 가중치로 식별되는 경우, 제1 타입의 가중치를 0 또는 1 값에 기초하여 이진화할 수 있다. 보다 상세하게는, 전자 장치(1000)는 가중치 w가 1인 경우 01로, 가중치가 0인 경우 00으로, 가중치가 -1인 경우 11의 값을 이용하여 가중치를 이진 값으로 나타낼 수 있다.In S720 , the
S740에서, 전자 장치(1000)는 제2 타입의 가중치를 상기 이진 값으로 변환된 제1 타입의 가중치에 대응되지 않는 양자화 상태를 이용하여 제2 타입의 가중치를 부호화한다. 전자 장치(1000)가 제1 타입의 가중치를 이진 값으로 변환하는 동작 및 가중치들 중, 제1 타입의 가중치가 아닌 가중치인 제2 타입의 가중치를 부호화하는 동작은 후술하는 도 8을 참조하여 구체적으로 설명하기로 한다.In S740 , the
도 8은 일 실시 예에 따른 전자 장치가 가중치의 적어도 일부를 부호화하는 방법을 설명하기 위한 도면이다.8 is a diagram for describing a method of encoding at least a portion of a weight by an electronic device, according to an exemplary embodiment.
본 개시에 따른 전자 장치(1000)는 제1 타입의 가중치는 이진 값으로 변환함으로써 값(value)으로 저장하고, 제2 타입의 가중치는, 제1 타입의 가중치에 대응되지 않는 별도의 양자화 상태 각각에 대응되는 지시자를 이용하여 가중치를 표현(representation)할 수 있다. 즉, 본 개시에 따른 전자 장치(1000)는 제1 타입의 가중치를 값으로 표현하고, 제2 타입의 가중치를 지시자(indices)로 표현함으로써, 인공 신경망 내 가중치들을 혼합 가중치 표현 방법(Hybrid weight representation method)을 이용하여 나타낼 수 있다. The
먼저, 도 8에 도시된 실시 예 (802)를 참조하여 전자 장치(1000)가 제1 타입의 가중치로써 1, 0 및 -1 를 식별하고, 제2 타입의 가중치로써 3, 2, -2, -3을 식별한 경우를 가정하여 설명하기로 한다. 즉, 제1 타입의 가중치의 비트 수 bt는 2이고, 제1 타입의 가중치들의 양자화 상태수 st는 3이며, 제2 타입의 가중치의 비트 수 bsl은 2이고, 제2 타입의 가중치들의 양자화 상태수 ssl은 4인 경우를 가정한다.First, referring to the embodiment 802 shown in FIG. 8 , the
전자 장치(1000)는 인공 신경망의 가중치들의 절대 값이 임계치 1보다 작은 가중치들을 양자화함으로써 -1, 0 또는 1로 식별할 수 있다. 전자 장치(1000)는 제1 타입의 가중치(812)들(예컨대 -1, 0, 1)을 양자화 상태 수(quantization level number)가 4인 양자화 상태들(806)을 이용하여 나타낼 수 있다. 양자화 상태 수가 4인 양자화 상태들은 2비트로 표현 가능한 양자화 상태를 의미할 수 있다. 예를 들어, 전자 장치(1000)는 제1 타입의 가중치(812) 중, 1을 제1 양자화 상태 (01)로, 0을 제2 양자화 상태 (00)로, -1을 제3 양자화 상태 (11)에 각각 매핑(mapping)할 수 있다.The
또한, 전자 장치(1000)는 제1 타입의 가중치를 나타내는데 사용되지 않는 양자화 상태인 제4 양자화 상태(00)(808)을 이용하여, 제2 타입의 가중치를 부호화할 수 있다. 예를 들어, 전자 장치(1000)는 제1 타입의 가중치를 이진 값으로 변환하는데 사용되지 않은 제4 양자화 상태(808)에 대응되는 상태 값 (10)을 이용하여 제2 타입의 가중치(818)중, 가중치 3을 1001로, 가중치 2를 1000으로, 가중치 -2를 1010으로, 가중치 -3을 1011와 같은 지시자(indices)로 부호화(encoding)할 수 있다. 본 개시에 따르면, 전자 장치(1000)가 제2 타입의 가중치를 부호화하기 위하여 사용하는 지시자(indices)들은 제2 타입의 가중치들의 양자화 상태에 각각 대응될 수 있다.Also, the
도 8의 실시예 802에 도시된 바와 같이, 본 개시에 따른 전자 장치(1000)는 제1 타입의 가중치는 이진 값으로 변환하여 저장하나, 제2 타입의 가중치는 이진 값으로 변환된 제1 타입의 가중치를 나타내는데 사용되지 않은 양자화 상태를 이용하여 부호화함으로써, 인공 신경망의 정확도를 더 향상시킬 수 있다.As shown in embodiment 802 of FIG. 8 , the
도 8에 도시된 실시 예 (822)를 참조하여 전자 장치(1000)가 제1 타입의 가중치로써 1, 0 및 -1을 식별하고, 제2 타입의 가중치로써 5, 4, 3, 2, -2, -3, -4, -5를 식별하는 경우를 가정한다. 즉, 제1 타입의 가중치의 비트 수 bt는 2이고, 제1 타입의 가중치들의 양자화 상태수 st는 3으로 실시 예 (802)와 동일하지만, 제2 타입의 가중치의 비트 수 bsl은 3이고, 제2 타입의 가중치들의 양자화 상태수 ssl은 8인 경우를 가정하여 설명하기로 한다.Referring to the embodiment 822 shown in FIG. 8 , the
도 8의 실시 예 (822)를 참조하면, 전자 장치(1000)가 제1 타입의 가중치를 이진 값으로 변환하는 동작은 실시 예 (802)에 대응될 수 있다. 즉, 전자 장치(1000)는 제1 타입의 가중치(832)들(예컨대 -1, 0, 1)을 양자화 상태 수(quantization level number)가 4인 양자화 상태들(826)을 이용하여 나타낼 수 있다. 예를 들어, 전자 장치(1000)는 제1 타입의 가중치(832) 중, 1을 제1 양자화 상태 (01)로, 0을 제2 양자화 상태 (00)로, -1을 제3 양자화 상태 (11)에 각각 매핑(mapping)할 수 있다. 또한, 전자 장치(1000)는 제1 타입의 가중치를 나타내는데 사용되지 않는 양자화 상태인 제4 양자화 상태(00)(828)을 이용하여, 제2 타입의 가중치를 부호화할 수 있다. Referring to the embodiment 822 of FIG. 8 , the operation of the
예를 들어, 전자 장치(1000)는 제1 타입의 가중치를 이진 값으로 변환하는데 사용되지 않은 제4 양자화 상태(828)에 대응되는 상태 값 (10)을 이용하여 제2 타입의 가중치(838)중, 가중치 5를 10011로, 가중치 4를 10010으로, 가중치 3을 10001로, 가중치 2를 10000로, 가중치 -2를 10100으로, 가중치 -3을 10101으로, 가중치 -4를 10110으로, 가중치 -5를 10111와 같은 지시자(indices)로 부호화(encoding)할 수 있다. For example, the
따라서, 본 개시에 따른 전자 장치(1000)는 인공 신경망의 가중치들을 양자화 하는 과정에서 제2 타입의 가중치들을 정규화함으로써, 상당수의 가중치들을 제1 타입의 가중치로 변경하여 사용하기 때문에, 인공 신경망의 가중치 연산을 효율적으로 수행함과 함께, 제1 타입의 가중치는 이진 값으로 표현하고, 제2 타입의 가중치는 이진 값으로 변환된 제1 타입의 가중치를 나타내는데 사용되지 않은 양자화 상태(808, 828)에 대응되는 지시자를 이용하여 부호화함으로써 인공 신경망의 정확도를 향상시킬 수 있다.Accordingly, since the
도 9는 또 다른 실시 예에 따른 전자 장치가 인공 신경망의 가중치를 처리하는 방법의 흐름도이다.9 is a flowchart of a method of processing, by an electronic device, a weight of an artificial neural network according to another embodiment.
S910에서, 전자 장치(1000)는 가중치의 타입을 1차로 식별할 수 있다. S910은 도 2의 S230에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다.In S910 , the
S920에서, 전자 장치(1000)는 1차 식별된 가중치의 타입에 기초하여 제1 양자화 함수와 다른 제2 양자화 함수를 결정할 수 있다. 예를 들어, 전자 장치(1000)는 가중치의 타입을 식별하고, 식별된 가중치의 타입에 따라 서로 다른 양자화 함수를 결정하며, 서로 다른 양자화 함수를 가중치의 타입 별로 다르게 적용함으로써 S210단계에서 양자화된 가중치들을 재 양자화(re-quantizing) 할 수 있다. 전자 장치(1000)가 가중치의 타입에 따라 서로 다른 양자화 함수들은 하기의 수학식 7에 기초하여 결정될 수 있다.In S920 , the
여기에서, mask(w)는 전자 장치(1000)가 가중치의 타입을 1차로 식별하기 위해, 수학식 6에서 정의된 mask 함수이고, QW는 식별된 가중치의 타입 별로 생성되는 양자화 함수들이며, st는 제1 타입의 가중치들의 양자화 상태수이고, ssl은 제2 타입의 가중치들의 양자화 상태수를 나타내며, thresh는 사전 학습 단계에서 인공 신경망 가중치의 절대 값의 최대 크기에 기초하여 결정되는 임계치를 나타낸다.Here, mask(w) is a mask function defined in Equation 6 in order for the
예를 들어, 전자 장치(1000)는 S910에서 식별된 가중치가 제1 타입의 가중치(예컨대 삼항 가중치, TW)인 경우, 가중치가 -thresh보다 작은 경우 ??thresh를 출력하고, 가중치가 ??thresh 및 thresh 사이의 값을 가지는 경우 가중치를 그대로 출력하며, 가중치가 thresh 보다 큰 경우, thresh를 출력하는 클립 함수, thresh 및 제2 타입의 가중치들의 양자화 상태수 + 1의 값을 입력으로 하는 제2 양자화 함수를 결정할 수 있다. For example, when the weight identified in S910 is the first type of weight (eg, ternary weight, TW), the
또한, 전자 장치(1000)는 S910에서 식별된 가중치가 제2 타입의 가중치(예컨대 큰 가중치, SLW)인 경우, 가중치가 -Mwp보다 작은 경우 ??Mwp를 출력하고, 가중치가 ??Mwp 및 Mwp 사이의 값을 가지는 경우 가중치를 그대로 출력하며, 가중치가 Mwp 보다 큰 경우, Mwp를 출력하는 클립 함수, Mwp 및 제1 타입의 가중치들의 양자화 상태수 st 와 제2 타입의 가중치들의 양자화 상태수 ssl 의 합을 입력으로 하는 제1 양자화 함수를 결정할 수 있다. 상기 수학식 7에서, 전자 장치가(1000)가 식별한 가중치가 제2 타입의 가중치인 경우 이용하는 제1 양자화 함수는 전술한 수학식 3에 기초하여 정의되는 제1 양자화 함수에 대응될 수 있다.Also, when the weight identified in S910 is the second type of weight (eg, large weight, SLW), the
S930에서, 전자 장치(1000)는 1차로 식별된 가중치의 타입에 따라 제1 양자화 함수 및 제2 양자화 함수를 선택적으로 적용함으로써 가중치를 재 양자화 할 수 있다. 즉, 상기 수학식 7에서 표기한 바와 같이, 전자 장치(1000)는 가중치의 타입에 따라 제1 양자화 함수 또는 제2 양자화 함수를 선택적으로 적용함으로써 가중치를 양자화 하기 때문에, S930에서 전자 장치가 가중치를 재 양자화 하는 동작은, 가중치의 선택적 양자화(Selective Quantization) 동작에 대응될 수 있다.In S930, the
예를 들어, 전자 장치(1000)는 1차로 식별된 가중치의 타입이 제1 가중치 타입에 해당하는 경우, 제2 양자화 함수를 이용하여 가중치를 재 양자화 할 수 있다. 보다 상세하게는, 전자 장치(1000)는 제2 양자화 함수에 따라 양자화된 가중치들을 포함하는 인공 신경망의 제3 손실 함수가 최소화되도록 가중치를 양자화할 수 있다. 예를 들어, 전자 장치(1000)는 제2 양자화 함수를 이용하여 가중치를 양자화한 후, 양자화된 가중치들을 이용하여 인공 신경망의 가중치를 수정 및 갱신하고, 양자화된 가중치를 포함하는 인공 신경망에 입력 데이터를 인가한 후, 입력 데이터에 대한 인공 신경망의 출력 값 및 정답 값의 차이에 관한 손실 함수를 결정하며, 결정된 손실 함수가 최소화되도록 가중치를 양자화한다.For example, when the primarily identified weight type corresponds to the first weight type, the
또한, 전자 장치(1000)는, 1차로 식별된 가중치의 타입이 제2 가중치 타입에 해당하는 경우, 제1 양자화 함수를 이용하여 가중치를 재 양자화 할 수 있다. 보다 상세하게는, 전자 장치(1000)는 제1 양자화 함수에 따라 양자화된 가중치들을 포함하는 인공 신경망의 손실 함수가 최소화되도록 가중치를 양자화할 수 있다. 예를 들어, 전자 장치(1000)는 제1 양자화 함수를 이용하여 가중치를 양자화한 후, 양자화된 가중치들을 이용하여 인공 신경망의 가중치를 수정 및 갱신하고, 양자화된 가중치를 포함하는 인공 신경망에 입력 데이터를 인가한 후, 입력 데이터에 대한 인공 신경망의 출력 값 및 정답 값의 차이에 관한 손실 함수를 결정하며, 결정된 손실 함수가 최소화되도록 가중치를 양자화할 수 있다.Also, when the first weight type is the second weight type, the
본 개시에 따른 전자 장치(1000)는 S210단계에서 가중치를 양자화 한 후, 양자화된 가중치들의 타입에 기초하여 가중치들을 다시 양자화함으로써 이전 학습 단계에서 학습된 인공 신경망의 가중치들의 값을 미세 조정(fine tune)할 수 있고, 결과적으로 인공 신경망의 성능을 향상시킬 수 있다.After quantizing the weights in step S210, the
S940에서, 전자 장치(1000)는 재 양자화된 가중치를 L2 제약 조건에 대응되는 제2 가중치 정규화 함수를 이용하여 재 정규화 할 수 있다. 예를 들어, 전자 장치(1000)는 도 5의 차트 502에서 도시된 pL1 제약 조건에 대응되는 정규화 함수를 제1 가중치 정규화 함수에서 제거함으로써 제2 가중치 정규화 함수를 결정할 수 있다. 전자 장치(1000)가 도 2의 S220 단계를 수행한 이후의 인공 신경망의 가중치들은 임계치 이하로 집중 분포되어 있는 상태이다. 따라서, 본 개시에 따른 전자 장치(1000)는 제1 정규화 함수로부터 pL1 제약 조건에 따른 정규화 함수의 영향을 제거함으로써 결정되는 제2 정규화 함수를 이용하여 가중치를 재 정규화함으로써 가중치 식별의 정확성을 향상시킬 수 있다.In S940 , the
일 실시 예에 의하면, 전자 장치(1000)는 제2 가중치 정규화 함수에 따라 재 정규화된 가중치들을 포함하는 인공 신경망의 제4 손실 함수를 최소화하도록 재 양자화된(예컨대 selective quantized)가중치를 재 정규화할 수 있다. 보다 상세하게는, 전자 장치(1000)는 제2 가중치 정규화 함수에 따라 정규화된 가중치들을 재 정규화한 후, 정규화된 가중치를 포함하는 인공 신경망에 입력 데이터를 인가한 후, 입력 데이터에 대한 인공 신경망의 출력 값 및 정답 값의 차이에 관한 제4 손실 함수를 결정하고, 결정된 제4 손실 함수가 최소화되도록 가중치를 수정 및 갱신함으로써 가중치를 재 정규화할 수 있다. According to an embodiment, the
S950에서, 전자 장치(1000)는 재 정규화된 가중치의 타입을 식별할 수 있다. 전자 장치(1000)가 재 정규화된 가중치의 타입을 식별하는 동작은 도 6의 전자 장치(1000)가 가중치의 타입을 식별하는 동작 S620 내지 S640에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다.In S950, the
S960에서, 전자 장치(1000)는 재 정규화된 가중치의 타입에 기초하여 재 정규화된 가중치의 적어도 일부를 부호화할 수 있다. 전자 장치(1000)가 재 정규화된 가중치의 타입에 기초하여, 가중치의 적어도 일부를 부호화하는 동작은 도 7 내지 도 8에서 전자 장치(1000)가 가중치의 적어도 일부를 부호화하는 동작에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다.In S960, the
또한, 일 실시 예에 의하면 도 9에는 도시되지 않았지만, 전자 장치(1000)는 S960단계 이후에, 이진 값으로 변환된 제1 타입의 가중치 및 지시자(indices)를 이용하여 부호화된 제2 타입의 가중치를 모두 전자 장치(1000)의 메모리에 저장하는 단계를 더 수행할 수도 있다.In addition, according to an embodiment, although not shown in FIG. 9 , after step S960 , the
도 10은 일 실시 예에 따른 전자 장치가 식별된 가중치의 타입에 따라 서로 다르게 양자화된 가중치들을 설명하기 위한 도면이다.10 is a diagram for explaining different quantized weights according to the types of weights identified by an electronic device according to an embodiment.
도 10을 참조하면, 전자 장치(1000)가 식별한 가중치의 타입에 따라 클리핑된 가중치(1004, 1014) 및 양자화된 가중치(1006, 1016)가 도시된다. 일 실시 예에 의하면, 전자 장치(1000)가 식별한 가중치의 타입이 제1 타입의 가중치(1002)인 경우, 수학식 7의 클리핑 함수 clip에 따라 클리핑된 가중치들(1004)은 가중치 범위가 -1 보다 기 설정된 간격만큼 이격된 곳에서 -1보다 소정의 임계치 보다 작은 값에 수렴하고, -1 에서 1사이에서는 선형으로 증가하며, 가중치 범위가 1보다 큰 범위에서는 1보다 소정의 임계치만큼 큰 값에 수렴할 수 있다. 또한, 클리핑 함수를 입력으로 하는 제2 양자화 함수에 따라 양자화된 가중치들(1006)은 제1 타입의 가중치로써, -1, 0 또는 1에 수렴하는 것을 관측할 수 있다.Referring to FIG. 10 , clipped
또한, 일 실시 예에 의하면, 전자 장치(1000)가 식별한 가중치의 타입이 제2 타입의 가중치(1012)인 경우, 수학식 7의 클리핑 함수 clip에 따라 클리핑된 가중치들(1014)은 가중치 범위가 -3 보다 작은 범위에서 -3 값에 수렴하고, -3 에서 3사이에서는 선형으로 증가하며, 가중치 범위가 3보다 큰 범위에서는 3에 수렴할 수 있다. 또한, 클리핑 함수를 입력으로 하는 제1 양자화 함수에 따라 양자화된 가중치들(1016)은 제2 타입의 가중치로써, -3, -2, 2, 또는 3에 수렴하는 것을 관측할 수 있다.Also, according to an embodiment, when the type of the weight identified by the
도 11은 일 실시 예에 따른 인공 신경망의 가중치를 처리하는 전자 장치의 블록도이다.11 is a block diagram of an electronic device that processes a weight of an artificial neural network according to an embodiment.
도 11에 도시된 바와 같이, 인공 신경망의 가중치를 처리하는 전자 장치는 프로세서(1400) 및 메모리(1402)를 포함할 수 있다. 그러나, 도시된 구성 요소가 모두 필수구성요소인 것은 아니고, 도시된 구성 요소보다 많은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 전자 장치(1000)는 구현될 수도 있다. 일 실시 예에 의하면, 전자 장치(1000)는 프로세서(1400) 및 메모리(1402)외에 통신부(미도시)를 더 포함할 수도 있다.As shown in FIG. 11 , the electronic device for processing the weights of the artificial neural network may include a
프로세서(1400)는, 통상적으로 전자 장치(1000)의 전반적인 동작을 제어한다. The
일 실시 예에 의하면, 본 개시에 따른 프로세서(1400)는 메모리(1402)에 저장된 프로그램들을 실행함으로써, 도 1 내지 도 10에 기재된 전자 장치(1000)의 기능을 수행할 수 있다. 또한, 프로세서(1400)는 하나 또는 복수의 프로세서로 구성될 수 있고, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU와 같은 그래픽 전용 프로세서 또는 인공지능(AI) 전용 프로세서일 수 있다. 일 실시 예에 의하면, 프로세서(1400)가 범용 프로세서, 인공지능 프로세서 및 그래픽 전용 프로세서를 포함하는 경우, 인공지능 프로세서는 범용 프로세서 또는 그래픽 전용 프로세서와 별도의 칩으로 구현될 수도 있다. According to an embodiment, the
일 실시 예에 의하면, 프로세서(1400)가 복수의 프로세서 또는 그래픽 전용 프로세서 또는 인공 지능 전용 프로세서로 구현될 때, 복수의 프로세서 또는 그래픽 전용 프로세서 또는 인공 지능 전용 프로세서 중 적어도 일부는 전자 장치(1000) 및 전자 장치(1000)와 연결된 다른 전자 장치 또는 서버에 탑재될 수도 있다. According to an embodiment, when the
예를 들어, 프로세서(1400)는, 메모리(1402)에 저장된 프로그램들을 실행함으로써, 전자 장치에 저장된 인공 신경망 내 가중치들을 제1 타입의 가중치 또는 제2 타입의 가중치로 양자화하고, 양자화 하는 과정에서 제2 타입의 가중치를 희소화할 수 있으며, 제1 타입의 가중치를 값으로 나타내고, 제2 타입의 가중치를 지시자를 이용하여 부호화함으로써 인공 신경망 내 가중치를 빠르게 처리함과 함께 인공 신경망의 정확도를 향상시키도록 할 수 있다.For example, the
일 실시 예에 의하면, 프로세서(1400)는 상기 인공 신경망 내 레이어들 및 상기 레이어들 간의 연결 강도에 관한 가중치(weight)를 양자화 하고, 상기 양자화된 가중치를 상기 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 이용하여 정규화 하고, 상기 정규화된 가중치의 타입을 식별하고, 상기 식별된 가중치의 타입에 기초하여, 상기 가중치의 적어도 일부를 부호화할 수 있다.According to an embodiment, the
또한, 프로세서(1400)는 상기 인공 신경망 내 가중치들이 양자화 되기 전, 사전 학습된(pre-trained) 가중치에 기초하여 상기 인공 신경망 내 가중치들을 초기화 하고, 상기 초기화된 인공 신경망 내 가중치들을 양자화할 수 있다.Also, the
또한, 프로세서(1400)는 인공 신경망 내 사전 학습된 가중치의 크기에 기초하여 제1 양자화 함수를 결정하고, 상기 결정된 제1 양자화 함수에 따라 양자화된 가중치들을 포함하는 상기 인공 신경망의 제1 손실 함수를 최소화하도록 상기 가중치를 양자화할 수 있다.In addition, the
또한, 프로세서(1400)는 부분 L1 제약 조건 및 L2 제약 조건에 기초하여 제1 가중치 정규화 함수를 결정하고, 상기 결정된 제1 가중치 정규화 함수에 따라 정규화된 가중치들을 포함하는 상기 인공 신경망의 제2 손실 함수를 최소화하도록 상기 가중치를 정규화할 수 있다.In addition, the
또한, 프로세서(1400)는 상기 가중치의 절대 값 및 기 설정된 임계치를 비교하고, 상기 비교 결과에 기초하여, 상기 정규화된 가중치를 -1, 0 또는 1 중 하나를 나타내는 제1 타입의 가중치 또는 상기 가중치 중, 상기 제1 타입의 가중치가 아닌 가중치를 제2 타입의 가중치로 식별할 수 있다.In addition, the
또한, 프로세서(1400)는 제1 타입의 가중치를, 2비트로 표현 가능한 양자화 상태에 각각 대응되는 이진 값으로 변환하고, 상기 제2 타입의 가중치를, 상기 이진 값으로 변환된 제1 타입의 가중치에 대응되지 않는 양자화 상태를 이용하여 상기 제2 타입의 가중치를 부호화할 수 있다.In addition, the
또한, 프로세서(1400)는 상기 식별된 가중치의 타입에 기초하여 상기 제1 양자화 함수와 다른 제2 양자화 함수를 결정하고, 상기 식별된 가중치의 타입에 따라 상기 제1 양자화 함수 및 상기 제2 양자화 함수를 선택적으로 적용함으로써, 상기 가중치를 재 양자화 하고, 상기 재 양자화된 가중치를 상기 L2 제약 조건에 대응되는 제2 가중치 정규화 함수를 이용하여 재 정규화할 수 있다.Also, the
통신부(미도시)는, 전자 장치(1000)가 다른 장치(미도시) 및 서버(2000)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 다른 장치(미도시)는 전자 장치(1000)와 같은 컴퓨팅 장치이거나, 센싱 장치일 수 있으나, 이에 제한되지 않는다. 예를 들어, 통신부(미도시)는, 근거리 통신부, 이동 통신부를 포함할 수 있다. The communication unit (not shown) may include one or more components that allow the
근거리 통신부(short-range wireless communication unit) 는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 이동 통신부는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. Short-range wireless communication unit, Bluetooth communication unit, BLE (Bluetooth Low Energy) communication unit, near field communication unit (Near Field Communication unit), WLAN (Wi-Fi) communication unit, Zigbee communication unit, infrared (IrDA, infrared) It may include a data association) communication unit, a Wi-Fi Direct (WFD) communication unit, an ultra wideband (UWB) communication unit, and the like, but is not limited thereto. The mobile communication unit transmits/receives a radio signal to and from at least one of a base station, an external terminal, and a server on a mobile communication network.
일 실시 예에 의하면, 통신부(미도시)는 프로세서의 제어에 의하여, 서버로 인공 신경망 내 가중치 값들, 가중치들을 포함하는 인공 신경망의 손실 함수의 값, 손실 기울기 값 등을 전송할 수 있고, 서버로부터 수정된 가중치 값들, 손실 함수의 값, 기울기 값 등을 수신할 수도 있다.According to an embodiment, the communication unit (not shown) may transmit, under the control of the processor, weight values in the artificial neural network, the value of the loss function of the artificial neural network including the weights, the loss slope value, and the like, and is modified from the server. It is also possible to receive the calculated weight values, the value of the loss function, the gradient value, and the like.
메모리(1402)는, 프로세서(1400)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 전자 장치(1000)로 입력되거나 전자 장치(1000)로부터 출력되는 데이터를 저장할 수도 있다. 또한, 메모리(1402)는 인공 신경망을 구성하는 레이어들, 레이어들에 포함된 노드들 및 레이어들의 연결 강도에 관한 가중치들에 대한 정보와 가중치 정규화 함수, 양자화 함수, 식별된 가중치의 타입 및 식별된 가중치의 타입에 따라 부호화된 가중치 값들을 저장할 수 있다. 즉, 메모리(1402)는 인공 신경망 내 가중치들이 수정 및 갱신될 경우, 수정 및 갱신된 가중치에 관한 정보를 더 저장할 수 있다. The
메모리(1402)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. The
도 12는 일 실시 예에 따른 전자 장치와 통신 가능한 서버의 블록도이다.12 is a block diagram of a server capable of communicating with an electronic device according to an exemplary embodiment.
도 12는 일 실시 예에 따른 보이스 어시스턴트 서비스를 제공하는 서버의 블록도이다.12 is a block diagram of a server providing a voice assistant service according to an embodiment.
일 실시 예에 따르면, 서버(2000)는 통신부(2100), 데이터 베이스(Data Base, 2200) 및 프로세서(2300)를 포함할 수 있다. According to an embodiment, the
통신부(2100)는 상술한 전자 장치(1000)의 통신부(미도시)에 대응될 수 있다. 예를 들어, 통신부(2100)는 전자 장치(1000)로부터 인공 신경망의 레이어들 및 레이어들에 포함된 노드에 관한 정보 또는 신경망 내 레이어들의 연결 강도에 관한 가중치 값들을 수신할 수 있다.The communication unit 2100 may correspond to the communication unit (not shown) of the
데이터 베이스(2200)는 도 11에 도시된 전자 장치의 메모리(1402)에 대응될 수 있다. 예를 들어, 데이터 베이스(2200)는 프로세서(2300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 전자 장치(1000)로 입력되거나 전자 장치(1000)로부터 출력되는 데이터를 저장할 수도 있다. 또한, 데이터 베이스(2200)는 인공 신경망을 구성하는 레이어들, 레이어들에 포함된 노드들 및 레이어들의 연결 강도에 관한 가중치들에 대한 정보와 가중치 정규화 함수, 양자화 함수, 식별된 가중치의 타입 및 식별된 가중치의 타입에 따라 부호화된 가중치 값들을 저장할 수 있다. 또한, 데이터 베이스(2200)는 인공 신경망 내 가중치들이 수정 및 갱신될 경우, 수정 및 갱신된 가중치에 관한 정보를 더 저장할 수도 있다.The database 2200 may correspond to the
프로세서(2300)는 통상적으로 서버(2000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(2300)는, 서버(2000)의 DB(2200)에 저장된 프로그램들을 실행함으로써, DB(2200) 및 통신부(2100) 등을 전반적으로 제어할 수 있다. 또한, 프로세서(2300)는 DB(2100)에 저장된 프로그램들을 실행함으로써, 도 1 내지 도11에서의 전자 장치(1000)의 동작의 일부를 수행할 수 있다.The processor 2300 typically controls the overall operation of the
예를 들어, 프로세서(2300)는 전자 장치(1000)에 저장된 인공 신경망의 초기화된 가중치들을 수신함으로써, 수신된 가중치들을 양자화하고, 양자화 과정에서 가중치들을 정규화하며, 정규화된 가중치의 타입을 식별하고, 식별된 가중치의 타입에 따라 가중치의 적어도 일부를 부호화할 수 있다.For example, the processor 2300 quantizes the received weights by receiving the initialized weights of the artificial neural network stored in the
도 13은 일 실시 예에 따라 전자 장치가 이용하는 인공 신경망의 성능을 설명하기 위한 도면이다.13 is a diagram for explaining the performance of an artificial neural network used by an electronic device, according to an embodiment.
도 13을 참조하면, 전자 장치(1000)가 ImageNet dataset의 데이터를 기초로 인공 신경망을 학습 시킨 후, 모델명(1322), 비트 폭(1324), 활성화 함수의 출력 값을 양자화하는데 필요한 비트수(1326), 제2 하이퍼파라미터(1328), 제2 타입의 가중치인 SLW 가중치의 비율(1332), 전자 장치가 가중치를 부호화함에 따라 부호화된 평균 비트 길이(1332), 양자화 및 정규화 방법(1336)에 따라 다른 인공 신경망의 정확도(Accuracy)가 도시된다.Referring to FIG. 13 , after the
일 실시 예에 의하면, 전자 장치(1000)는 딥러닝 기반의 인공 신경망으로써 ResNet-18를 기반으로, 비트 폭이 2/3이며, 활성화 함수의 출력 값을 양자화하는데 필요한 비트수가 4이고, SLW 가중치가 0.54% 존재하며, 평균 부호화된 비트 길이가 2.016이고, 식별된 가중치의 타입에 따라 서로 다른 양자화 함수를 적용하며, 양자화 과정에서 선택적 양자화(Selective Quantization)만을 수행할 경우, 57.57%의 정확도를 나타내는 신경망을 학습시킬 수 있다.According to an embodiment, the
또 다른 실시 예에 의하면, 전자 장치(1000)가 학습시키는 인공 신경망은, 전자 장치(1000)가 딥러닝 기반의 인공 신경망으로써 ResNet-18를 기반으로, 비트 폭이 2/4이며, 활성화 함수의 출력 값을 양자화하는데 필요한 비트수가 4, SLW 가중치가 0.269% 존재하며, 평균 부호화된 비트 길이가 2.011이고, 식별된 가중치의 타입에 따라 서로 다른 양자화 함수를 적용함으로써 선택적 양자화 (Selective Quantization, SQ)만을 수행할 경우, 59.00%의 정확도를 나타낼 수 있다.According to another embodiment, the artificial neural network taught by the
도 14는 또 다른 실시 예에 따라 전자 장치가 이용하는 인공 신경망의 성능을 설명하기 위한 도면이다.14 is a diagram for explaining the performance of an artificial neural network used by an electronic device according to another embodiment.
도 14를 참조하면, 도 14에는 전자 장치(1000)가 학습시킨 인공 신경망의 모델명(1422), 양자 플랜(Quantization Plan)(1424), 제2 하이퍼 파라미터(1425) 및 이용된 가중치 정규화 함수를 결정하기 위한 제약조건의 종류(1428)에 따른 인공 신경망의 정확도가 도시된다.Referring to FIG. 14 , in FIG. 14 , a
일 실시 예에 의하면, 전자 장치(1000)가 Quantization plan(예컨대, 비트폭, 1424)가 2/4이고, 제2 하이퍼 파라미터가 1로 설정하며, L2 제약 조건을 따르는 정규화 함수 및 부분 L1 제약 조건(pL1)을 따르는 정규화 함수를 모두 이용하여, AlexNet 모델학습 시키는 경우, 인공 신경망은 76.88%의 정확도를 나타낼 수 있다.According to an embodiment, in the
도 15는 일 실시 예에 따른 전자 장치 내 인공 신경망의 동작을 설명하기 위한 도면이다.15 is a diagram for describing an operation of an artificial neural network in an electronic device according to an embodiment.
도 15를 참조하여, 일 실시 예에 따른, 전자 장치(1000)가 이용하는 인공 신경망의 구체적인 동작을 설명하기로 한다. 예를 들어, 본 개시에 따른 전자 장치(1000)가 이용하는 인공 신경망이 ResNet구조의 신경망인 경우, ResNet의 add operation 전, ResNet의 각 블록 으로부터, 마지막 컨벌루션 레이어들의 출력은 컨벌루션 레이어들의 최대 절대 값으로부터 유도되는 스케일 팩터 r에 의하여 스케일링 수 있다.A detailed operation of the artificial neural network used by the
본 개시에 따른 전자 장치(1000)가 가중치를 처리하는 방법에 따르면, 인공 신경망 내 가중치들 및 활성화 함수의 출력은 동일한 간격(wq=iw??Iw, aq=ia??Ia)으로 양자화될 수 있다. 여기에서 Iw및 ia 는 fixed float 간격이고, iw 및 ia 는 정수 변수이다. 따라서, 인공 신경망 내 컨벌루션 레이어 및 풀리 커넥티드 레이어는 하기 수학식 8에 의해, integer operation에 의해 추론(inferred)될 수 있다.According to the method of the
여기에서, aq는 양자화된 활성화 함수의 출력이고, wq는 양자화된 가중치이며, Iw및 ia 는 fixed float 간격이고, iw 및 ia 는 정수 변수이다. 예를 들어, 배치 정규화(Batch Normalization, BN), ReLU1 활성화 함수(1504) 및 활성화 함수의 출력을 양자화하기 위한 양자화 함수 Qa(??)는 integer comparators에 의해, 누적(integrated)되거나 압축(conpressed)될 수 있다. 활성화 함수의 출력을 양자화 하기 위한 함수, 활성화 함수의 경계 및 배치 정규화의 계수들은 미리 정렬되기 위하여 고정(fixed)될 수 있다.where a q is the output of the quantized activation function, w q is the quantized weight, I w and i a are fixed float intervals, and i w and i a are integer variables. For example, batch normalization (BN), the
그러나, ResNet은 layer-wise intervals로 인하여, 데이터 스트림들이 동일한 양자화 간격들을 유지하지 못하게 하는 특성(identity)이 있다. 따라서, 이러한 문제를 해결하기 위해, 전자 장치(1000)는 하기 수학식 9에 의하여 정의되는 스케일 팩터 r에 기초하여, add operation의 입력을 스케일링할 수 있다. 스케일링 팩터 r은 blk1/shortcut 컨벌루션 레이어(1506)의 최대 절대 값 및 마지막 컨벌루션 레이어 blk1/conv-b(1512)의 최대 절대 값에 기초하여 결정될 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 로그 함수 및 floor 함수를 사용하기 때문에, 스케일링 팩터 r은 항상 0.5에서 1의 범위를 가질 수 있고, 결과적으로 저자 장치(1000)는 ResNet의 맵핑 동작을 효과적으로 할 수 있다. 만약 스케일링 팩터 r이 0인 경우, add operation에 추가될 것이 없고, 스케일링 팩터 r이 1 보다 큰 경우, shortcut은 큰 레지듀얼에 의해 섭동(perturbed)될 수 있다.However, ResNet has an identity that prevents data streams from maintaining the same quantization intervals due to layer-wise intervals. Accordingly, to solve this problem, the
여기에서 r은 스케일링 팩터이고, mshort 및 mconvb는 blk1/shortcut 컨벌루션 레이어(1506)의 최대 절대 값 및 마지막 컨벌루션 레이어 blk1/conv-b(1512)의 최대 절대 값을 각각 나타낼 수 있다. Here, r is a scaling factor, and m short and m convb may represent the maximum absolute value of the blk1/
상기 수학식 10을 이용하여, 전자 장치(1000)는 스케일링 팩터 r을 조정함으로써, j번째 shortcut 및 k번째 컨벌루션 레이어와의 간격을 조정할 수 있고, 시프트 연산(shift operation)(2의 곱)만으로도 두가지 입력을 추가할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 인공 신경망 내 첫번째 컨벌루션 레이어를 양자화 하지 않을 수 있다. 인공 신경망 내 첫번째 컨벌루션 레이어가 양자화 되지 않을 경우, add operation 이후, ResNet의 정밀 출력이 mixed 되는 것을 방지하기 위해, 첫째 레지듀얼 블록은 블록의 입력 모양이 첫번째 레이어의 출력 모양과 동일하더라도 skip connection을 가지지 않을 수 있다. Using Equation (10), the
도 16은 일 실시 예에 따른 전자 장치 내 인공 신경망의 동작을 설명하기 위한 도면이다.16 is a diagram for describing an operation of an artificial neural network in an electronic device according to an embodiment.
도 16을 참조하면, 인공 신경망의 추론 시간(inference time)동안, 혼합 가중치 표현(hybrid weight representation, HWR)을 처리하기 위해 전자 장치가 이용하는 논리 회로가 도시된다. 도 16을 참조하면, 전자 장치가 이용하는 논리 회로는 크게, 이전 레이어의 입력 수신 노드(1612), 가중치(1614)중, 삼항 가중치(TW)로 식별된 가중치를 수신하기 위한 블록(1616), 가중치(1614)중, 큰 가중치(SLW)로 식별된 가중치를 수신하기 위한 블록(1618), 부호를 변환하기 위한 Sign asgmt 블록(1622) 및 입력과 가중치를 곱하기 위한 MUTT 블록(1624), Sign asgmt 블록(1622) 및 MUTT 블록(1624)의 출력을 선택하기 위한 스위치 블록(1626) 및 입력과 가중치의 곱합을 누적합 하기 위한 시그마 블록(1628)을 포함할 수 있다.Referring to FIG. 16 , a logic circuit used by an electronic device to process a hybrid weight representation (HWR) during inference time of an artificial neural network is shown. Referring to FIG. 16 , the logic circuit used by the electronic device is largely a
일 실시 예에 의하면, 전자 장치는 삼항 가중치(TW)를 사용할 ??, 이진 가중치를 활용하기 위해, XNPR 게이트를 사용할 수 있다. 인공 신경망의 입력 값 또는 가중치가 0인 경우, 곱셈 연산은 생략되고, 0이 아닌 경우, XNOR 연산이 적용될 수 있다. 도 16을 참조하면, 삼항 가중치가 012 또는 112이고, 입력 값이 0이 아닌 경우, 부호를 변환하기 위한 Sign asgmt 블록(1622)에 의해, 오직 부호 변환 연산만이 수행될 수 있다. 그러나, 삼항 가중치가 102인 경우, MUTT 블록(1624)에 의해 오직 integer 곱만이 수행될 수 있다. 부호 변환 또는 곱셈의 결과 값은 하나의 뉴런의 출력 값이 될 수 있다.According to an embodiment, the electronic device may use an XNPR gate to utilize a ternary weight (TW) and a binary weight. When the input value or weight of the artificial neural network is 0, the multiplication operation is omitted, and when it is not 0, the XNOR operation may be applied. Referring to FIG. 16 , when the ternary weight is 012 or 112 and the input value is not 0, only a sign conversion operation may be performed by the
도 17은 또 다른 실시 예에 따른 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 나타내는 도면이다.17 is a diagram illustrating a weight normalization function for adjusting a distribution of weights according to another embodiment.
일 실시 예에 의하면, 전자 장치(1000)는 도 5에서 설명한 바와 같이, L2 제약 조건을 따르는 정규화 함수 및 부분 L1 제약 조건(pL1)을 따르는 정규화 함수를 더 함으로써 결정되는 제1 가중치 정규화 함수를 이용하여 가중치를 정규화할 수 있다. 그러나 또 다른 실시 예에 의하면, 전자 장치(1000)는 제1 가중치 정규화 함수와 다른 제3 가중치 정규화 함수를 이용하여 가중치를 정규화할 수도 있다. 예를 들어, 도 17의 차트 (1702)를 참조하면, L2 제약 조건을 따르는 정규화 함수의 손실 곡선(1706)과 부분 지수 lasso (part of exponential lasso, PeL1) 제약 조건을 따르는 정규화 함수의 손실 곡선(1708)이 도시되어 있다. 차트 1702의 점선은 제1 타입의 가중치 및 제2 타입의 가중치를 구별하기 위한 임계치(thresh)를 나타낼 수 있다. According to an embodiment, as described with reference to FIG. 5 , the
또한, 도 17의 차트 1712를 참조하면, 전자 장치(1000)가 이용하는 제3 가중치 정규화 함수의 손실 곡이 도시된다. 제3 가중치 정규화 함수는 L2 제약 조건을 따르는 정규화 함수 및 부분 지수 lasso (part of exponential lasso, PeL1) 제약 조건을 따르는 정규화 함수를 더 함으로써 정의될 수 있다. 도 17의 차트 1712를 참조하면 제3 가중치 정규화 함수는 L2 제약 조건을 따르는 정규화 함수 및 부분 지수 lasso (part of exponential lasso, PeL1) 제약 조건을 따르는 정규화 함수의 합으로 정의되므로, 임계치 부근에서 더 가파른 기울기를 가지는 손실 곡선을 나타낼 수 있다. 도 17의 차트 1722를 참조하면, 본 개시에 따른 제3 가중치 정규화 함수의 기울기가 도시된다. Also, referring to the
일 실시 예에 의하면, 전자 장치(1000)는 도 17의 차트 1722와 같은 기울기를 나타내는 제3 가중치 정규화 함수를 이용하여 가중치들을 정규화함으로써, 임계치(thresh) 이상의 가중치에 더 효과적으로 규제(penalty)를 수행할 수 있다. 본 개시에 따른 전자 장치(1000)는 가중치의 타입을 1차로 식별한 후, 식별된 가중치의 타입에 따라 서로 다른 양자화 함수를 결정하고, 서로 다른 양자화 함수를 가중치의 타입 별로 다르게 적용함으로써 인공 신경망의 성능을 더 향상시킬 수 있다. According to an embodiment, the
일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. The method according to an embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present disclosure, or may be known and available to those skilled in the art of computer software.
또한, 상기 일 실시 예에 다른 방법을 수행하도록 하는 프로그램이 저장된 기록매체를 포함하는 컴퓨터 프로그램 장치가 제공될 수 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.In addition, according to the embodiment, a computer program apparatus including a recording medium storing a program for performing another method may be provided. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
이상에서 본 개시의 실시예에 대하여 상세하게 설명하였지만 본 개시의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시의 권리범위에 속한다.Although the embodiment of the present disclosure has been described in detail above, the scope of the present disclosure is not limited thereto, and various modifications and improved forms of the present disclosure are also provided by those skilled in the art using the basic concept of the present disclosure as defined in the following claims. belong to the scope of the right.
Claims (20)
상기 인공 신경망 내 레이어들 및 상기 레이어들 간의 연결 강도에 관한 가중치(weight)를 양자화 하는 단계;
상기 양자화된 가중치를 상기 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 이용하여 정규화 하는 단계;
상기 정규화된 가중치의 타입을 식별하는 단계; 및
상기 식별된 가중치의 타입에 기초하여, 상기 가중치의 적어도 일부를 부호화하는 단계; 를 포함하는, 방법.In the method of processing the weight of an artificial neural network (Neural Network),
quantizing a weight of layers in the artificial neural network and a connection strength between the layers;
normalizing the quantized weights using a weight normalization function for adjusting the distribution of the weights;
identifying the type of normalized weight; and
encoding at least a portion of the weight based on the identified type of weight; A method comprising
상기 인공 신경망 내 가중치들이 양자화 되기 전, 사전 학습된(pre-trained) 가중치에 기초하여 상기 인공 신경망 내 가중치들을 초기화 하는 단계; 를 더 포함하고,
상기 양자화 하는 단계는 상기 초기화된 인공 신경망 내 가중치들을 양자화하는 것인, 방법.The method of claim 1, wherein the method
initializing the weights in the artificial neural network based on pre-trained weights before the weights in the artificial neural network are quantized; further comprising,
The method of claim 1, wherein the quantizing is quantizing the weights in the initialized artificial neural network.
상기 인공 신경망 내 사전 학습된 가중치의 크기에 기초하여 제1 양자화 함수를 결정하는 단계; 및
상기 결정된 제1 양자화 함수에 따라 양자화된 가중치들을 포함하는 상기 인공 신경망의 제1 손실 함수를 최소화하도록 상기 가중치를 양자화 하는 단계; 를 포함하는, 방법.The method of claim 2, wherein the quantizing comprises:
determining a first quantization function based on the size of pre-trained weights in the artificial neural network; and
quantizing the weights to minimize a first loss function of the artificial neural network including weights quantized according to the determined first quantization function; A method comprising
부분 L1 제약 조건 및 L2 제약 조건에 기초하여 제1 가중치 정규화 함수를 결정하는 단계; 및
상기 결정된 제1 가중치 정규화 함수에 따라 정규화된 가중치들을 포함하는 상기 인공 신경망의 제2 손실 함수를 최소화하도록 상기 가중치를 정규화 하는 단계; 를 포함하는, 방법.4. The method of claim 3, wherein the normalizing comprises:
determining a first weight normalization function based on the partial L1 constraint and the L2 constraint; and
normalizing the weights to minimize a second loss function of the artificial neural network including weights normalized according to the determined first weight normalization function; A method comprising
상기 가중치의 절대 값 및 기 설정된 임계치를 비교하는 단계; 및
상기 비교 결과에 기초하여, 상기 정규화된 가중치를 -1, 0 또는 1 중 하나를 나타내는 제1 타입의 가중치 또는 상기 가중치 중, 상기 제1 타입의 가중치가 아닌 가중치를 제2 타입의 가중치로 식별하는 단계; 를 포함하는, 방법.The method of claim 1, wherein the identifying comprises:
comparing the absolute value of the weight with a preset threshold; and
Based on the comparison result, a first type of weight representing one of -1, 0, or 1 as the normalized weight or a weight other than the first type of weight among the weights is identified as a second type of weight step; A method comprising
상기 제1 타입의 가중치를, 2비트로 표현 가능한 양자화 상태에 각각 대응되는 이진 값으로 변환하는 단계; 및
상기 제2 타입의 가중치를, 상기 이진 값으로 변환된 제1 타입의 가중치에 대응되지 않는 양자화 상태를 이용하여 상기 제2 타입의 가중치를 부호화 하는 단계; 를 포함하는, 방법. The method of claim 5, wherein the encoding comprises:
converting the weight of the first type into binary values respectively corresponding to quantization states that can be expressed by two bits; and
encoding the weight of the second type by using a quantization state that does not correspond to the weight of the first type converted into the binary value; A method comprising
상기 식별된 가중치의 타입에 기초하여 상기 제1 양자화 함수와 다른 제2 양자화 함수를 결정하는 단계;
상기 식별된 가중치의 타입에 따라 상기 제1 양자화 함수 및 상기 제2 양자화 함수를 선택적으로 적용함으로써, 상기 가중치를 재 양자화 하는 단계; 및
상기 재 양자화된 가중치를 상기 L2 제약 조건에 대응되는 제2 가중치 정규화 함수를 이용하여 재 정규화 하는 단계; 를 더 포함하는, 방법.5. The method of claim 4, wherein the method
determining a second quantization function different from the first quantization function based on the identified type of weight;
re-quantizing the weight by selectively applying the first quantization function and the second quantization function according to the identified type of weight; and
re-normalizing the re-quantized weights using a second weight normalization function corresponding to the L2 constraint; A method further comprising:
상기 제1 양자화 함수 또는 상기 제2 양자화 함수에 따라 양자화된 가중치를 포함하는 상기 인공 신경망의 제3 손실 함수를 최소화하도록 상기 가중치를 재 양자화 하는 단계; 를 포함하는, 방법.The method of claim 7, wherein the re-quantization comprises:
re-quantizing the weights to minimize a third loss function of the artificial neural network including weights quantized according to the first quantization function or the second quantization function; A method comprising
상기 결정된 제2 가중치 정규화 함수에 따라 재 정규화된 가중치들을 포함하는 상기 인공 신경망의 제4 손실 함수를 최소화하도록 상기 재 양자화된 가중치를 재 정규화하는 단계; 를 포함하는, 방법.The method of claim 7, wherein the re-normalizing
re-normalizing the re-quantized weights to minimize a fourth loss function of the artificial neural network including re-normalized weights according to the determined second weight normalization function; A method comprising
상기 재 정규화된 가중치의 타입을 식별하는 단계; 를 더 포함하고,
상기 부호화 하는 단계는 상기 재 정규화된 가중치의 타입에 기초하여 상기 재 정규화된 가중치의 적어도 일부를 부호화 하는 것을 특징으로 하는, 방법.8. The method of claim 7, wherein the method
identifying a type of the renormalized weight; further comprising,
The encoding method, characterized in that encoding at least a part of the renormalized weight based on the type of the renormalized weight.
상기 부호화된 가중치 및 상기 가중치 중, 부호화되지 않은 가중치를 저장하는 단계; 를 더 포함하는, 방법.The method of claim 1, wherein the method
storing an uncoded weight among the encoded weights and the weights; A method further comprising:
상기 인공 신경망 내 사전 학습된 가중치의 크기에 기초하여 상기 초기화된 가중치들을 클리핑하는 클리핑 함수의 출력 값 및 상기 가중치의 비트 수를 입력으로 하는 라운드 함수인 것을 특징으로 하는 방법.9. The method of claim 8, wherein the first quantization function is
The method according to claim 1, wherein the round function is a round function inputting an output value of a clipping function for clipping the initialized weights based on the size of the pre-trained weights in the artificial neural network and the number of bits of the weights.
하나 이상의 인스트럭션을 저장하는 메모리; 및
상기 하나 이상의 인스트럭션들을 실행하는 적어도 하나의 프로세서; 를 포함하고,
상기 적어도 하나의 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 인공 신경망 내 레이어들 및 상기 레이어들 간의 연결 강도에 관한 가중치(weight)를 양자화 하고,
상기 양자화된 가중치를 상기 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 이용하여 정규화 하고,
상기 정규화된 가중치의 타입을 식별하고,
상기 식별된 가중치의 타입에 기초하여, 상기 가중치의 적어도 일부를 부호화하는 전자 장치.In the electronic device for processing the weight of the artificial neural network (Neural Network),
a memory storing one or more instructions; and
at least one processor executing the one or more instructions; including,
The at least one processor by executing the one or more instructions,
quantizing the weights related to the layers in the artificial neural network and the connection strength between the layers,
Normalizing the quantized weights using a weight normalization function for adjusting the distribution of the weights,
identify the type of the normalized weight;
An electronic device that encodes at least a portion of the weight based on the identified type of weight.
상기 인공 신경망 내 가중치들이 양자화 되기 전, 사전 학습된(pre-trained) 가중치에 기초하여 상기 인공 신경망 내 가중치들을 초기화 하고,
상기 초기화된 인공 신경망 내 가중치들을 양자화하는 것을 특징으로 하는, 전자 장치.14. The method of claim 13, wherein the at least one processor comprises:
Before the weights in the artificial neural network are quantized, the weights in the artificial neural network are initialized based on pre-trained weights,
The electronic device, characterized in that the weights in the initialized artificial neural network are quantized.
상기 인공 신경망 내 사전 학습된 가중치의 크기에 기초하여 제1 양자화 함수를 결정하고,
상기 결정된 제1 양자화 함수에 따라 양자화된 가중치들을 포함하는 상기 인공 신경망의 제1 손실 함수를 최소화하도록 상기 가중치를 양자화 하는, 전자 장치.15. The method of claim 14, wherein the at least one processor comprises:
Determine a first quantization function based on the size of the pre-trained weight in the artificial neural network,
quantizing the weights to minimize a first loss function of the artificial neural network including weights quantized according to the determined first quantization function.
부분 L1 제약 조건 및 L2 제약 조건에 기초하여 제1 가중치 정규화 함수를 결정하고,
상기 결정된 제1 가중치 정규화 함수에 따라 정규화된 가중치들을 포함하는 상기 인공 신경망의 제2 손실 함수를 최소화하도록 상기 가중치를 정규화 하는, 전자 장치.16. The method of claim 15, wherein the at least one processor comprises:
determine a first weight normalization function based on the partial L1 constraint and the L2 constraint;
and normalizing the weight to minimize a second loss function of the artificial neural network including weights normalized according to the determined first weight normalization function.
상기 가중치의 절대 값 및 기 설정된 임계치를 비교하고,
상기 비교 결과에 기초하여, 상기 정규화된 가중치를 -1, 0 또는 1 중 하나를 나타내는 제1 타입의 가중치 또는 상기 가중치 중, 상기 제1 타입의 가중치가 아닌 가중치를 제2 타입의 가중치로 식별하는, 전자 장치.14. The method of claim 13, wherein the at least one processor comprises:
comparing the absolute value of the weight with a preset threshold,
Based on the comparison result, a first type of weight representing one of -1, 0, or 1 as the normalized weight or a weight other than the first type of weight among the weights is identified as a second type of weight , electronic devices.
상기 제1 타입의 가중치를, 2비트로 표현 가능한 양자화 상태에 각각 대응되는 이진 값으로 변환하고,
상기 제2 타입의 가중치를, 상기 이진 값으로 변환된 제1 타입의 가중치에 대응되지 않는 양자화 상태를 이용하여 상기 제2 타입의 가중치를 부호화 하는, 전자 장치.18. The method of claim 17, wherein the at least one processor comprises:
converting the weight of the first type into binary values corresponding to quantization states that can be expressed with 2 bits,
and encoding the weight of the second type by using a quantization state that does not correspond to the weight of the first type converted into the binary value.
상기 식별된 가중치의 타입에 기초하여 상기 제1 양자화 함수와 다른 제2 양자화 함수를 결정하고,
상기 식별된 가중치의 타입에 따라 상기 제1 양자화 함수 및 상기 제2 양자화 함수를 선택적으로 적용함으로써, 상기 가중치를 재 양자화 하고,
상기 재 양자화된 가중치를 상기 L2 제약 조건에 대응되는 제2 가중치 정규화 함수를 이용하여 재 정규화 하는, 전자 장치.17. The method of claim 16, wherein the at least one processor comprises:
determine a second quantization function different from the first quantization function based on the identified type of weight;
re-quantizes the weight by selectively applying the first quantization function and the second quantization function according to the identified type of weight;
and re-normalizing the re-quantized weight using a second weight normalization function corresponding to the L2 constraint.
상기 양자화된 가중치를 상기 가중치의 분포를 조절하기 위한 가중치 정규화 함수를 이용하여 정규화 하는 단계;
상기 정규화된 가중치의 타입을 식별하는 단계; 및
상기 식별된 가중치의 타입에 기초하여, 상기 가중치의 적어도 일부를 부호화하는 단계; 를 포함하는, 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.quantizing a weight of layers in an artificial neural network and a connection strength between the layers;
normalizing the quantized weights using a weight normalization function for adjusting the distribution of the weights;
identifying the type of normalized weight; and
encoding at least a portion of the weight based on the identified type of weight; A computer-readable recording medium recording a program for executing the method on a computer, comprising a.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200007509A KR102384255B1 (en) | 2020-01-20 | 2020-01-20 | Method and apparatus for processing weight of artificial neural network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200007509A KR102384255B1 (en) | 2020-01-20 | 2020-01-20 | Method and apparatus for processing weight of artificial neural network |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210093648A true KR20210093648A (en) | 2021-07-28 |
KR102384255B1 KR102384255B1 (en) | 2022-04-06 |
Family
ID=77126298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200007509A KR102384255B1 (en) | 2020-01-20 | 2020-01-20 | Method and apparatus for processing weight of artificial neural network |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102384255B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023014124A1 (en) * | 2021-08-04 | 2023-02-09 | 주식회사 사피온코리아 | Method and apparatus for quantizing neural network parameter |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170088165A (en) * | 2016-01-22 | 2017-08-01 | 한국전자통신연구원 | Method and apparatus for speech recognition using deep neural network |
WO2019008752A1 (en) * | 2017-07-07 | 2019-01-10 | 三菱電機株式会社 | Data processing device, data processing method, and compressed data |
KR20190034985A (en) | 2017-09-25 | 2019-04-03 | 삼성전자주식회사 | Method and apparatus of artificial neural network quantization |
-
2020
- 2020-01-20 KR KR1020200007509A patent/KR102384255B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170088165A (en) * | 2016-01-22 | 2017-08-01 | 한국전자통신연구원 | Method and apparatus for speech recognition using deep neural network |
WO2019008752A1 (en) * | 2017-07-07 | 2019-01-10 | 三菱電機株式会社 | Data processing device, data processing method, and compressed data |
KR20190034985A (en) | 2017-09-25 | 2019-04-03 | 삼성전자주식회사 | Method and apparatus of artificial neural network quantization |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023014124A1 (en) * | 2021-08-04 | 2023-02-09 | 주식회사 사피온코리아 | Method and apparatus for quantizing neural network parameter |
Also Published As
Publication number | Publication date |
---|---|
KR102384255B1 (en) | 2022-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11803744B2 (en) | Neural network learning apparatus for deep learning and method thereof | |
US12014268B2 (en) | Batch normalization layer training method | |
US20210089925A1 (en) | Training method for quantizing the weights and inputs of a neural network | |
US20190347550A1 (en) | Method and apparatus with neural network parameter quantization | |
Carreira-Perpinán | Model compression as constrained optimization, with application to neural nets. Part I: General framework | |
US20210174193A1 (en) | Slot filling with contextual information | |
KR20190034985A (en) | Method and apparatus of artificial neural network quantization | |
US11610154B1 (en) | Preventing overfitting of hyperparameters during training of network | |
Mnatzaganian et al. | A mathematical formalization of hierarchical temporal memory’s spatial pooler | |
EP3913538A1 (en) | Classification model calibration | |
US20210241112A1 (en) | Neural network update method, classification method and electronic device | |
CN113748605A (en) | Method and apparatus for compressing parameters of neural network | |
US20220383127A1 (en) | Methods and systems for training a graph neural network using supervised contrastive learning | |
KR20190130443A (en) | Method and apparatus for quantization of neural network | |
US20220335303A1 (en) | Methods, devices and media for improving knowledge distillation using intermediate representations | |
KR20200062183A (en) | Method and device for audio restoration using machine learning | |
US20230073669A1 (en) | Optimising a neural network | |
CN116775807A (en) | Natural language processing and model training method, equipment and storage medium | |
US20230419075A1 (en) | Automated Variational Inference using Stochastic Models with Irregular Beliefs | |
He et al. | A novel dependency-oriented mixed-attribute data classification method | |
CN116069931A (en) | Hierarchical label text classification method, system, equipment and storage medium | |
KR20200063041A (en) | Method and apparatus for learning a neural network using unsupervised architecture variation and supervised selective error propagation | |
KR102384255B1 (en) | Method and apparatus for processing weight of artificial neural network | |
CN116762085A (en) | Variable bit rate compression using neural network model | |
Kulkarni et al. | AI model compression for edge devices using optimization techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |