KR20180007657A - Method for neural network and apparatus perform same method - Google Patents

Method for neural network and apparatus perform same method Download PDF

Info

Publication number
KR20180007657A
KR20180007657A KR1020170053543A KR20170053543A KR20180007657A KR 20180007657 A KR20180007657 A KR 20180007657A KR 1020170053543 A KR1020170053543 A KR 1020170053543A KR 20170053543 A KR20170053543 A KR 20170053543A KR 20180007657 A KR20180007657 A KR 20180007657A
Authority
KR
South Korea
Prior art keywords
input
vector
activation
threshold
change
Prior art date
Application number
KR1020170053543A
Other languages
Korean (ko)
Other versions
KR102399548B1 (en
Inventor
이준행
네일 다니엘
루 시치
델브럭 토비
Original Assignee
삼성전자주식회사
우니페르지타에트 취리히
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 우니페르지타에트 취리히 filed Critical 삼성전자주식회사
Priority to US15/607,007 priority Critical patent/US10949737B2/en
Priority to EP17178120.6A priority patent/EP3270330B1/en
Priority to JP2017132072A priority patent/JP7037143B2/en
Priority to CN201710570971.3A priority patent/CN107622303B/en
Publication of KR20180007657A publication Critical patent/KR20180007657A/en
Priority to US17/171,551 priority patent/US12008461B2/en
Priority to US17/171,554 priority patent/US20210166113A1/en
Priority to JP2021156767A priority patent/JP7290256B2/en
Priority to JP2021156768A priority patent/JP7237122B2/en
Application granted granted Critical
Publication of KR102399548B1 publication Critical patent/KR102399548B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

Disclosed are an operating method of an artificial neuron and a device for performing the method. According to an embodiment, the artificial neuron calculates a change amount of activation based on an input signal received from an input synapse, determines whether an event occurs based on the change amount of the activation, and transmits an output signal, which corresponds to an event, to an output synapse in accordance with the occurrence of the event.

Description

뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치{METHOD FOR NEURAL NETWORK AND APPARATUS PERFORM SAME METHOD}[0001] METHOD FOR NEURAL NETWORK AND APPARATUS PERFORM SAME METHOD [0002]

아래 실시예들은 인공 뉴런의 동작 방법 및 그 방법을 수행하는 장치에 관한 것이다.The following embodiments are directed to a method of operating an artificial neuron and an apparatus for performing the method.

복잡하거나 해가 알려지지 않은 문제를 해결하기 위해, 인간이 지닌 인식 방법을 디바이스에 적용시키려는 연구가 진행되고 있다. 이러한 연구 중 하나로, 인간의 생물학적 신경 세포를 모델링한 뉴럴 네트워크(neural network)가 있다. 뉴럴 네트워크는 인간이 가지고 있는 학습 능력을 모방한 알고리즘을 이용한다. 뉴럴 네트워크는 학습을 통해 입력 패턴과 출력 패턴들 사이의 사상(mapping)을 수행할 수 있다. 또한, 뉴럴 네트워크는 학습된 결과에 기초하여 학습에 이용되지 않았던 입력 패턴에 대하여 비교적 올바른 출력을 생성할 수 있는 일반화 능력을 가질 수 있다.Research is underway to apply human recognition methods to devices in order to solve complex or unknown problems. One of these studies is a neural network modeling human biological neurons. Neural networks use algorithms that mimic human learning abilities. The neural network can perform mapping between input patterns and output patterns through learning. In addition, the neural network may have a generalization ability to generate a relatively correct output for input patterns that were not used for learning based on the learned results.

일 측에 따르면, 뉴럴 네트워크(neural network)를 위한 방법은 인공 뉴런의 이전 액티베이션(activation) 및 상기 인공 뉴런의 입력 시냅스를 통하여 수신되는 입력 신호에 기초하여, 상기 인공 뉴런의 현재 액티베이션을 결정하는 단계; 상기 현재 액티베이션 및 상기 인공 뉴런에 의하여 이전에 발생한 이벤트에 대응하는 액티베이션에 기초하여, 액티베이션의 변화량을 결정하는 단계; 상기 액티베이션의 변화량 및 임계치에 기초하여, 새로운 이벤트의 발생 여부를 결정하는 단계; 및 상기 새로운 이벤트의 발생에 따라 출력 시냅스로 상기 새로운 이벤트에 대응하는 출력 신호를 전송하는 단계를 포함한다.According to one aspect, a method for a neural network includes determining a current activation of an artificial neuron based on an input signal received via a previous activation of an artificial neuron and an input synapse of the artificial neuron, ; Determining an amount of change in activation based on the current activation and an activation corresponding to an event previously generated by the artificial neuron; Determining whether a new event has occurred based on the amount of change and the threshold of the activation; And transmitting an output signal corresponding to the new event to an output synapse in response to the occurrence of the new event.

상기 새로운 이벤트는 상기 액티베이션의 변화량과 상기 임계치의 교차에 따라 발생할 수 있다. 상기 출력 신호는 상기 변화량과 상기 임계치의 교차 방향을 나타내는 부호 비트를 포함할 수 있다. 상기 방법은, 상기 입력 시냅스를 통하여 연결된 이전 레이어에 대응하는 임계치를 수신하는 단계를 더 포함할 수 있고, 상기 현재 액티베이션을 결정하는 단계는 상기 이전 액티베이션, 상기 입력 신호, 및 상기 이전 레이어에 대응하는 임계치에 기초하여 상기 현재 액티베이션을 결정하는 단계를 포함할 수 있다.The new event may occur according to the intersection of the amount of change of the activation and the threshold value. The output signal may include a sign bit indicating the direction of intersection of the change amount and the threshold value. The method may further include receiving a threshold corresponding to a previous layer connected through the input synapse, wherein the step of determining the current activation includes receiving a signal corresponding to the previous activation, the input signal, And determining the current activation based on the threshold.

상기 출력 신호는 미리 결정된 비트 정밀도(bit precision)로 근사화된 상기 액티베이션의 변화량을 포함할 수 있다. 상기 비트 정밀도는 요구 정확도 및 가용 자원 중 적어도 하나에 따라 조절될 수 있다. 상기 임계치는 단위 시간 동안 발생하는 이벤트의 수에 따라 조절될 수 있다. 상기 임계치는, 상기 단위 시간 동안 발생하는 상기 이벤트의 수가 미리 정해진 제1 임계치를 초과하는 것에 따라 증가할 수 있고, 상기 단위 시간 동안 발생하는 상기 이벤트의 수가 미리 정해진 제2 임계치 미만인 것에 따라 감소할 수 있다. 상기 제1 임계치는 상기 제2 임계치보다 클 수 있다. The output signal may comprise a variation of the activation approximated by a predetermined bit precision. The bit precision can be adjusted according to at least one of the required accuracy and the available resources. The threshold may be adjusted according to the number of events occurring during a unit time. The threshold may be increased as the number of events occurring during the unit time exceeds a predetermined first threshold and may decrease as the number of events occurring during the unit time is less than a predetermined second threshold have. The first threshold may be greater than the second threshold.

상기 방법은 상기 출력 신호의 전송 이후에, 상기 현재 액티베이션에 기초하여, 상기 임계치를 업데이트하는 단계를 더 포함할 수 있다. 상기 임계치는 고정 간격(fixed step), 로그 간격(logarithmic step), 자릿수(order of magnitude) 에 따라 조절될 수 있다. 상기 방법은 상기 현재 액티베이션을 저장하는 단계를 더 포함할 수 있다.The method may further comprise, after transmission of the output signal, updating the threshold based on the current activation. The threshold may be adjusted according to a fixed step, a logarithmic step, and an order of magnitude. The method may further include storing the current activation.

상기 방법은 미리 정해진 동작 모드를 지시하는 제어 신호를 수신하는 단계; 상기 입력 시냅스를 통하여 상기 동작 모드에 대응하여 프레임화된 입력 신호를 수신하는 단계; 및 상기 프레임화된 입력 신호에 기초하여 상기 현재 액티베이션을 결정하는 단계를 더 포함할 수 있다.The method includes receiving a control signal indicating a predetermined operating mode; Receiving a framed input signal corresponding to the operation mode through the input synapse; And determining the current activation based on the framed input signal.

상기 뉴럴 네트워크는 인공 뉴럴 네트워크(artificial neural network), 완전 연결 네트워크(fully connected network), 딥 컨볼루셔널 네트워크(deep convolutional network), 리커런트 뉴럴 네트워크(recurrent neural network) 및 스파이킹 뉴럴 네트워크(spiking neural network) 중 어느 하나일 수 있다.The neural network may be an artificial neural network, a fully connected network, a deep convolutional network, a recurrent neural network, and a spiking neural network. network).

다른 일 측에 따르면, 뉴럴 네트워크(neural network)를 위한 방법은 인공 뉴런의 이전 액티베이션, 및 상기 인공 뉴런의 입력 시냅스를 통하여 수신되는 입력 신호에 기초하여, 상기 인공 뉴런의 현재 액티베이션을 결정하는 단계; 상기 이전 액티베이션이 속한 제1 클러스터 및 상기 현재 액티베이션이 속한 제2 클러스터에 기초하여, 이벤트의 발생 여부를 결정하는 단계; 및 상기 이벤트의 발생에 따라 출력 시냅스로 상기 이벤트에 대응하는 출력 신호를 전송하는 단계를 포함한다.According to another aspect, a method for a neural network includes determining a current activation of an artificial neuron based on a previous activation of an artificial neuron and an input signal received through an input synapse of the artificial neuron; Determining whether an event is generated based on a first cluster to which the previous activation belongs and a second cluster to which the current activation belongs; And transmitting an output signal corresponding to the event to an output synapse in response to the occurrence of the event.

상기 이벤트는 상기 제1 클러스터와 상기 제2 클러스터의 차이에 따라 발생할 수 있다. 상기 출력 신호는 클러스터의 변화 방향 및 클러스터의 변화량 중 적어도 하나를 나타내는 적어도 하나의 변경 비트를 포함할 수 있다.The event may occur according to a difference between the first cluster and the second cluster. The output signal may include at least one change bit indicating at least one of a change direction of the cluster and a change amount of the cluster.

일 측에 따르면, 리커런트 뉴럴 네트워크(recurrent neural network)를 위한 방법은 t-1에서의 입력 벡터 및 t에서의 입력 벡터 간의 차에 기초하여, t에서의 입력 델타 벡터를 획득하는 단계; t-2에서의 히든 상태 벡터 및 t-1에서의 히든 상태 벡터 간의 차에 기초하여, t-1에서의 히든 상태 델타 벡터를 획득하는 단계; 상기 획득된 t에서의 입력 델타 벡터 및 입력 벡터를 위한 가중치 간의 곱, 및 상기 획득된 t-1에서의 히든 상태 델타 벡터 및 히든 상태 벡터를 위한 가중치 간의 곱에 기초하여, 상기 리커런트 뉴럴 네트워크의 파라미터들을 결정하는 단계; 및 상기 결정된 상기 리커런트 뉴럴 네트워크의 파라미터들에 기초하여, t에서의 히든 상태 벡터를 결정하는 단계를 포함한다. 여기서, t는 타임 스탬프를 나타내고, 1보다 큰 정수다.According to one aspect, a method for a recurrent neural network includes obtaining an input delta vector at t based on a difference between an input vector at t-1 and an input vector at t; obtaining a hidden state delta vector at t-1 based on the difference between the hidden state vector at t-2 and the hidden state vector at t-1; Based on the product of the product of the input delta vector at the obtained t and the weight for the input vector and the weight for the hidden state delta vector and the hidden state vector at the obtained t-1, Determining parameters; And determining a hidden state vector at t based on the determined parameters of the recurrent neural network. Here, t represents a time stamp and is an integer greater than one.

상기 리커런트 뉴럴 네트워크의 파라미터들은 리셋 게이트의 값, 업데이트 게이트의 값 및 출력 히든 상태 벡터의 값 중 적어도 하나를 포함할 수 있다.The parameters of the recurrent neural network may include at least one of a value of a reset gate, a value of an update gate, and a value of an output disable state vector.

상기 입력 델타 벡터를 획득하는 단계는 상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차가 미리 정해진 임계치보다 큰 경우, 상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차를 상기 입력 델타 벡터로 결정하는 단계; 및 상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차가 미리 정해진 임계치보다 작은 경우, 제로 벡터를 상기 입력 델타 벡터로 결정하는 단계를 포함할 수 있다.Wherein the step of acquiring the input delta vector includes: if the difference between the input vector at t-1 and the input vector at t is greater than a predetermined threshold, the difference between the input vector at t-1 and the input vector at t Determining the input delta vector as the input delta vector; And determining the zero vector as the input delta vector if the difference between the input vector at t-1 and the input vector at t is less than a predetermined threshold.

상기 입력 델타 벡터를 획득하는 단계는 t-1에서의 입력 델타 벡터에 기초하여 t-1에서의 참조 벡터를 획득하는 단계; 및 상기 t-1에서의 참조 벡터 및 상기 t에서의 입력 벡터 간의 차에 기초하여, 상기 입력 델타 벡터를 획득하는 단계를 포함할 수 있다.Wherein obtaining the input delta vector comprises: obtaining a reference vector at t-1 based on the input delta vector at t-1; And obtaining the input delta vector based on the difference between the reference vector at t-1 and the input vector at t.

상기 t-1에서의 참조 벡터를 획득하는 단계는 상기 t-1에서의 입력 델타 벡터가 상기 미리 정해진 임계치보다 큰 경우, 상기 t-1에서의 입력 델타 벡터를 상기 t-1에서의 참조 벡터로 결정하는 단계; 및 상기 t-1에서의 입력 델타 벡터가 상기 미리 정해진 임계치보다 작은 경우, t-2에서의 참조 벡터를 상기 t-1에서의 참조 벡터로 결정하는 단계를 포함할 수 있다.Wherein the step of acquiring the reference vector at t-1 comprises: if the input delta vector at t-1 is greater than the predetermined threshold, calculating the input delta vector at t-1 as a reference vector at t-1 Determining; And determining the reference vector at t-2 as the reference vector at t-1 if the input delta vector at t-1 is less than the predetermined threshold.

상기 히든 상태 델타 벡터를 획득하는 단계는 상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차가 미리 정해진 임계치보다 큰 경우, 상기 입력 델타 벡터를 상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차로 결정하는 단계; 및 상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차가 미리 정해진 임계치보다 작은 경우, 상기 입력 델타 벡터를 제로 벡터로 결정하는 단계를 포함할 수 있다.Wherein the obtaining of the hidden state delta vector comprises: if the difference between the input vector at t-1 and the input vector at t is greater than a predetermined threshold, obtaining the input delta vector at the t-1 and the t Determining a difference between the input vectors in the input vector; And determining the input delta vector as a zero vector when the difference between the input vector at t-1 and the input vector at t is less than a predetermined threshold value.

일 측에 따르면, 전자 장치는 인공 뉴런들에 대응하는 프로세싱 유닛들을 포함하고, 상기 프로세싱 유닛들 각각은 컴퓨터에서 읽을 수 있는 명령어들을 저장하는 메모리 및 프로세서를 포함하고, 상기 명령어들이 상기 프로세서에서 실행되면, 상기 프로세서는 이전 액티베이션 및 입력 링크를 통하여 수신되는 입력 신호에 기초하여 현재 액티베이션을 결정하고, 상기 현재 액티베이션 및 이전에 발생한 이벤트에 대응하는 액티베이션에 기초하여 액티베이션의 변화량을 결정하고, 상기 액티베이션의 변화량 및 임계치에 기초하여 새로운 이벤트의 발생 여부를 결정하고, 상기 새로운 이벤트의 발생에 따라 출력 링크로 상기 새로운 이벤트에 대응하는 출력 신호를 전송한다.According to one aspect, an electronic device includes processing units corresponding to artificial neurons, each of the processing units including a memory and a processor storing instructions readable by the computer, wherein when the instructions are executed on the processor , The processor determines a current activation based on an input signal received over a previous activation and an input link and determines an amount of change in activation based on the current activation and an activation corresponding to a previously occurring event, And determines an occurrence of a new event based on the threshold value and transmits an output signal corresponding to the new event to an output link in response to the occurrence of the new event.

상기 프로세서는 상기 입력 링크를 통하여 연결된 이전 레이어에 대응하는 임계치를 더 수신할 수 있고, 상기 이전 액티베이션, 상기 입력 신호, 및 상기 이전 레이어에 대응하는 임계치에 기초하여 상기 현재 액티베이션을 결정할 수 있다. 상기 프로세서는, 상기 출력 신호의 전송 이후에, 상기 현재 액티베이션에 기초하여, 상기 임계치를 업데이트할 수 있다. 상기 메모리는 상기 현재 액티베이션을 저장할 수 있다.The processor may further receive a threshold corresponding to a previous layer connected via the input link and may determine the current activation based on the threshold corresponding to the previous activation, the input signal, and the previous layer. The processor may update the threshold based on the current activation after transmission of the output signal. The memory may store the current activation.

도 1은 일 실시예에 따른 뉴럴 네트워크를 나타낸 도면.
도 2는 인공 뉴런의 입력 및 출력 예시를 나타낸 도면.
도 3은 일 실시예에 따른 이벤트 결정 및 출력 신호를 나타낸 도면.
도 4는 다른 실시예에 따른 이벤트 결정 및 출력 신호를 나타낸 도면.
도 5는 일 실시예에 따른 임계치의 조절을 나타낸 도면.
도 6은 일 실시예에 따른 클러스터의 변경을 나타낸 도면.
도 7은 표준 비디오 데이터 세트를 처리하는 표준 컨볼루셔널 네트워크의 특성을 나타낸 도면.
도 8은 시간의 경과에 따른 RNN 액티베이션의 안정성을 나타낸 도면.
도 9는 델타 네트워크를 통해 획득된 계산 결과를 나타낸 도면.
도 10은 일 실시예에 따른 전자 장치를 나타낸 블록도.
도 11은 다른 실시예에 따른 전자 장치를 나타낸 도면.
도 12는 일 실시예에 따른 인공 뉴런의 동작 방법을 나타낸 동작 흐름도.
1 illustrates a neural network according to one embodiment.
Figure 2 shows an example of input and output of artificial neurons.
3 illustrates an event determination and output signal according to one embodiment.
4 illustrates an event determination and output signal according to another embodiment;
5 illustrates adjustment of a threshold according to one embodiment;
6 illustrates a variation of a cluster according to one embodiment;
Figure 7 shows the characteristics of a standard convolutional network for processing a standard video data set;
8 shows the stability of RNN activation over time;
9 is a diagram showing a calculation result obtained through a delta network;
10 is a block diagram illustrating an electronic device according to one embodiment.
11 shows an electronic device according to another embodiment.
12 is an operational flow diagram illustrating a method of operating an artificial neuron according to one embodiment.

본 명세서에서 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 실시예들은 다양한 다른 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.It is to be understood that the specific structural or functional descriptions disclosed herein may be implemented by way of example only, and that the embodiments may be embodied in various other forms and are not limited to the embodiments described herein It does not.

제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first or second may be used to describe various components, but such terms should be understood only for the purpose of distinguishing one component from another. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the words "comprising ", etc. are intended to designate the presence of stated features, integers, steps, operations, elements, parts or combinations thereof, It is to be understood that they do not preclude the presence or addition of components, components or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.

도 1은 일 실시예에 따른 뉴럴 네트워크를 나타낸 도면이다. 도 1을 참조하면, 뉴럴 네트워크(100)는 인공 뉴런들을 포함하는 집합들(collections)(110 내지 150)을 포함한다.1 is a diagram illustrating a neural network according to one embodiment. Referring to FIG. 1, a neural network 100 includes collections 110-150 that include artificial neurons.

뉴럴 네트워크(100)는 이벤트 기반으로 동작함으로써, 학습 또는 인식에 소요되는 계산 비용(computational costs)을 감소시킬 수 있다. 뉴럴 네트워크(100)는 딥 러닝에 이용될 수 있다. 딥 러닝은 빅 데이터 세트로부터 영상 또는 음성 인식과 같은 문제를 해결하기 위한 기계 학습 기법이다. 딥 러닝의 지도식(supervised) 또는 비지도식(unsupervised) 학습을 통해 멀티 레이어 뉴럴 네트워크(multi-layered neural network)에서 특징 계층들이 추출될 수 있다. 뉴럴 네트워크(100)는 멀티 레이어 뉴럴 네트워크의 예시에 해당할 수 있다. 멀티 레이어 뉴럴 네트워크는 완전 연결 네트워크(fully connected network), 딥 컨볼루셔널 네트워크(deep convolutional network) 및 리커런트 뉴럴 네트워크(recurrent neural network) 등을 포함할 수 있다. 예를 들어, 완전 연결 네트워크는 많은 어휘의 연속적 음석 인식(large-vocabulary continuous speech recognition), 3D 객체 인식, 얼굴 인식 및 매칭 및 시각적 분류 등에 이용될 수 있다.The neural network 100 operates on an event basis, thereby reducing the computational costs of learning or recognizing. The neural network 100 may be used for deep running. Deep learning is a machine learning technique for solving problems such as image or speech recognition from a big data set. Feature hierarchies can be extracted in a multi-layered neural network through supervised or unsupervised learning of deep learning. The neural network 100 may correspond to an example of a multilayer neural network. The multilayer neural network may include a fully connected network, a deep convolutional network, and a recurrent neural network. For example, a fully connected network can be used for large vocabulary continuous speech recognition, 3D object recognition, face recognition, and matching and visual classification.

멀티 레이어 뉴럴 네트워크의 크기와 깊이는 일반적인 뉴럴 네트워크에 비하여 매우 크고 깊을 수 있다. 뉴럴 네트워크의 크기는 레이어 별 뉴런의 수와 레이어의 수의 곱으로 나타낼 수 있고, 뉴럴 네트워크의 깊이는 네트워크 별 레이어의 수로 나타낼 수 있다. 예를 들어, 최근의 비전 어플리케이션에 이용되는 뉴럴 네트워크는 41개의 레이어들, 약 143*106개의 가중치들, 및 31*106개의 뉴런들을 포함하고, 해당 뉴럴 네트워크를 위해 19.7*109개의 연산들이 필요하다. 이러한, 멀리 레이어 뉴럴 네트워크의 학습에는 거대한 데이터베이스 및 긴 학습 시간이 소요된다. The size and depth of a multilayer neural network can be very large and deep compared to a conventional neural network. The size of a neural network can be expressed as a product of the number of layers per neuron and the number of layers, and the depth of a neural network can be expressed as the number of layers per network. For example, a neural network used in recent vision applications includes 41 layers, about 143 * 10 6 weights, and 31 * 10 6 neurons, and 19.7 * 10 9 operations Are needed. Learning of such a far-layer neural network requires a huge database and long learning time.

이러한 거대한 뉴럴 네트워크를 순차적인 방법을 통해 구동시키기 위해서는 CPU(central processing unit)나 GPU(graphic processing unit)와 같은 프로세서의 계산에 많은 비용이 소모될 수 있다. 최근의 연구에 따르면 슈퍼 컴퓨터에서 수일 또는 몇 주 동안 학습된 백만의 인공 뉴런들이 사용되었다. 순차적인 방법을 통한 학습에서 모든 인공 뉴런은 새로운 입력 샘플에 의해 항상 업데이트되므로, 네트워크의 복잡성에 따라 컴퓨팅 자원의 소모가 증가될 수밖에 없다. 아래에서 상세히 설명되겠지만, 실시예들은 입력 샘플에 기초하여 이벤트 기반으로 동작함으로써, 네트워크의 출력을 계산하는데 사용되는 컴퓨팅 자원을 크게 감소시킬 수 있다.Computing a processor such as a central processing unit (CPU) or a graphics processing unit (GPU) can be expensive to drive such a large neural network in a sequential manner. Recent studies have used millions of artificial neurons learned on supercomputers for days or weeks. In learning through sequential methods, all artificial neurons are always updated by new input samples, which leads to increased consumption of computing resources depending on the complexity of the network. As will be described in detail below, embodiments can operate on an event basis based on input samples, thereby greatly reducing the computing resources used to compute the output of the network.

뉴럴 네트워크(100)에서 각각의 집합들(110 내지 150)은 인공 뉴런들을 포함하고, 각각의 집합들(110 내지 150)에 포함된 인공 뉴런들은 다른 인공 뉴런들과 연결될 수 있다. 상기 다른 인공 뉴런들은 상기 인공 뉴런들과 같은 집합에 위치하거나, 혹은 다른 집합에 위치할 수 있다. 집합들(110 내지 150)은 레이어들일 수 있고, 집합들(110 내지 150)은 레이어들(110 내지 150)로 지칭될 수 있다. 이 경우, 뉴럴 네트워크(100)는 인공 뉴런들을 포함하는 연속적인(successive) 레이어들(110 내지 150)을 포함할 수 있다. 따라서, 뉴럴 네트워크(100)는 멀티 레이어 뉴럴 네트워크에 해당할 수 있다.In the neural network 100, each of sets 110 through 150 includes artificial neurons, and the artificial neurons included in each of sets 110 through 150 may be connected to other artificial neurons. The other artificial neurons may be located in the same set as the artificial neurons, or may be located in another set. The sets 110-150 may be layers, and the sets 110-150 may be referred to as layers 110-150. In this case, neural network 100 may include successive layers 110-150 that include artificial neurons. Accordingly, the neural network 100 may correspond to a multi-layer neural network.

도 1에는 설명의 편의를 위해 5개의 레이어들(110 내지 150)이 도시되어 있으나, 뉴럴 네트워크(100)는 다양한 수의 레이어들을 포함할 수 있다. 레이어(110)는 입력 레이어를 나타내고, 레이어들(120 내지 140)은 중간 레이어 또는 히든 레이어(hidden layer)를 나타내고, 레이어(150)는 출력 레이어를 나타낸다. 출력 레이어를 제외한 레이어들(110 내지 140)에 포함된 인공 뉴런들은 다음 레이어의 인공 뉴런들에 출력 신호를 전송하기 위한 링크들을 통해 연결될 수 있다. 링크들의 수는 다음 레이어에 포함된 인공 뉴런들의 수에 대응할 수 있다. 이러한 링크는 시냅스로 지칭될 수 있다.In FIG. 1, five layers 110 to 150 are illustrated for convenience of explanation, but the neural network 100 may include various numbers of layers. The layer 110 represents an input layer, the layers 120 to 140 represent an intermediate layer or a hidden layer, and the layer 150 represents an output layer. Artificial neurons included in the layers 110 to 140 except the output layer may be connected through links for transmitting output signals to artificial neurons of the next layer. The number of links may correspond to the number of artificial neurons included in the next layer. Such a link may be referred to as a synapse.

뉴럴 네트워크(100)는 피드포워드(feedforward) 네트워크일 수 있다. 뉴럴 네트워크(100)에 포함된 각각의 인공 뉴런은, 뉴럴 네트워크(100)가 완전 연결 네트워크를 형성하도록, 다음 레이어의 모든 인공 뉴런들에 연결되거나, 컨볼루셔널 네트워크에서와 같이 제한된 공간적 접속 가능성(spatial connectivity)을 가질 수 있다.The neural network 100 may be a feedforward network. Each artificial neuron included in the neural network 100 may be connected to all artificial neurons of the next layer so that the neural network 100 forms a fully connected network, spatial connectivity.

뉴럴 네트워크(100)에 포함된 각각의 인공 뉴런은 이전 레이어에 포함된 인공 뉴런들의 입력(x_i)에 관한 1차 결합(linear combination)을 계산할 수 있다. 입력(x_i)은 시냅스의 가중치(w_i, synaptic weight)와 곱해진다. 가중된 입력들은 서로 더해질 수 있고, 가중된 입력들의 합(y)은 수학식 1로 나타낼 수 있다.Each artificial neuron included in the neural network 100 may compute a linear combination for the input (x_i) of the artificial neurons contained in the previous layer. The input (x_i) is multiplied by the synaptic weight (w_i, synaptic weight). The weighted inputs can be added to each other, and the sum (y) of the weighted inputs can be expressed by Equation (1).

Figure pat00001
Figure pat00001

가중된 입력들의 합(y)은 활성 함수(activation function; f)에 입력될 수 있다. 예를 들어, 활성 함수(f)는 ReLU(rectified linear unit), 시그모이드(sigmoid) 및 하이퍼볼릭 탄젠트(hyperbolic tangent) 중 어느 하나일 수 있다. 활성 함수(f)는 인공 뉴런의 출력(o)을 수학식 2에 따라 계산할 수 있다.The sum (y) of the weighted inputs can be input to an activation function (f). For example, the activation function f may be any one of a rectified linear unit (ReLU), a sigmoid, and a hyperbolic tangent. The activation function (f) can calculate the output (o) of the artificial neuron according to equation (2).

Figure pat00002
Figure pat00002

이하, 인공 뉴런(105)을 기준으로 뉴럴 네트워크(100)의 동작을 설명하겠지만, 인공 뉴런(105)에 관한 설명은 나머지 인공 뉴런들에도 적용될 수 있다. 아래에서 인공 뉴런(105)의 이전 레이어는 레이어(120)를 지칭할 수 있고, 인공 뉴런(105)의 다음 레이어는 레이어(140)를 지칭할 수 있다. 인공 뉴런(105)과 레이어(120)에 포함된 인공 뉴런들 사이의 링크는 인공 뉴런(105)의 입력 시냅스로 지칭될 수 있고, 인공 뉴런(105)과 레이어(140)에 포함된 인공 뉴런들 사이의 링크는 인공 뉴런(105)의 출력 시냅스로 지칭될 수 있다.Hereinafter, the operation of the neural network 100 will be described with reference to the artificial neuron 105, but the description of the artificial neuron 105 may be applied to other artificial neurons. Below, the previous layer of artificial neuron 105 may refer to layer 120, and the next layer of artificial neuron 105 may refer to layer 140. The link between the artificial neurons 105 and the artificial neurons included in the layer 120 may be referred to as the input synapse of the artificial neuron 105 and the artificial neurons 105 and the artificial neurons included in the layer 140 May be referred to as the output synapse of the artificial neuron 105. [

일 측에 따르면, 인공 뉴런(105)의 액티베이션(activation)이 미리 정해진 양만큼 변할 때, 인공 뉴런(105)은 새로운 이벤트의 발생을 결정할 수 있다. 액티베이션은 인공 뉴런(105)의 입력 시냅스를 통하여 수신되는 입력들과 인공 뉴런(105)을 위해 구현된 활성 함수에 기초하여 계산될 수 있다.According to one aspect, when the activation of the artificial neuron 105 changes by a predetermined amount, the artificial neuron 105 can determine the occurrence of a new event. Activation may be computed based on inputs received through the input synapse of the artificial neuron 105 and on the activation function implemented for the artificial neuron 105.

일 실시예에 따른 뉴럴 네트워크(100)는 동적 연산망(dynamic computation net, DCN)이라고 지칭될 수 있다. 아래에서 상세히 설명 하겠으나, DCN은 인공 뉴럴 네트워크(artificial neural network, ANN) 혹은 스파이킹 뉴럴 네트워크(spiking neural network, SNN) 등 다양한 유형의 뉴럴 네트워크(100)에 적용될 수 있다. 뉴럴 네트워크(100)가 스파이킹 뉴럴 네트워크인 경우, 인공 뉴런(105)의 액티베이션은 인공 뉴런(105)의 막 전위(membrane potential)일 수 있다.The neural network 100 according to one embodiment may be referred to as a dynamic computation net (DCN). As will be described in detail below, the DCN can be applied to various types of neural networks 100, such as an artificial neural network (ANN) or a spiking neural network (SNN). If the neural network 100 is a spiking neural network, the activation of the artificial neuron 105 may be the membrane potential of the artificial neuron 105.

인공 뉴런(105)은 새로운 이벤트의 발생에 따라 출력 시냅스들로 새로운 이벤트에 대응하는 출력 신호들을 전송할 수 있다. 새로운 이벤트는 액티베이션의 변화량과 임계치의 교차에 따라 발생할 수 있다. 여기서, '액티베이션의 변화량과 임계치의 교차'는 액티베이션의 변화량이 임계치의 절대값보다 큰 경우를 나타낸다. 출력 신호들은 출력 시냅스들의 가중치들과 곱해질 수 있고, 다음 레이어의 인공 뉴런들은 인공 뉴런(105)의 가중된 출력 신호를 수신할 수 있다.The artificial neuron 105 may transmit output signals corresponding to a new event to output synapses as a new event occurs. A new event can occur according to the intersection of the activation amount and the threshold value. Here, the 'intersection of the amount of change in activation and the threshold value' indicates a case where the amount of change in activation is larger than the absolute value of the threshold value. The output signals may be multiplied by the weights of the output synapses and the artificial neurons of the next layer may receive the weighted output signal of the artificial neuron 105.

일 실시예에 따르면, 출력 신호는 액티베이션의 변화량과 임계치의 교차 방향을 나타내는 부호 비트를 포함할 수 있다. 이벤트 발생 시 단일 부호 비트를 출력하는 인공 뉴런들을 포함하는 뉴런 네트워크는 기본 DCN(basic DCN)이라고 지칭될 수 있다. 이 경우, 다음 레이어의 인공 뉴런들로 인공 뉴런(105)의 임계치가 함께 전송될 수 있다. 일 실시예에 따르면, 복수의 인공 뉴런들은 동일한 임계치를 공유할 수 있다. 예를 들어, 동일한 레이어에 속한 인공 뉴런들은 서로 동일한 임계치를 가질 수 있다. 이 경우, 다음 레이어의 인공 뉴런들은 이전 레이어의 인공 뉴런들 사이에 공유되는 임계치를 수신함으로써 임계치 전송에 따른 부하를 감소시킬 수 있다. 다음 레이어의 인공 뉴런들은 수신한 부호 비트 및 임계치에 기초하여, 자신의 액티베이션을 결정할 수 있다. 인공 뉴런(105)은 출력 신호를 다음 레이어로 전송한 이후에 자신의 임계치 또는 자신이 속한 레이어 내에서 공유되는 임계치를 업데이트할 수 있다. 다른 예로, 레이어 이외에 미리 정해진 그룹 별로 임계치가 다르게 설정되거나, 개별 인공 뉴런 별로 임계치가 다르게 설정될 수 있다. 또 다른 예로, 뉴런 네트워크 전체가 동일한 임계치를 이용할 수도 있다.According to one embodiment, the output signal may include a sign bit indicating the direction of intersection of the amount of change in activation and the threshold. A neuron network that includes artificial neurons that output a single sign bit upon occurrence of an event may be referred to as a basic DCN. In this case, the threshold of the artificial neuron 105 may be transmitted together with artificial neurons of the next layer. According to one embodiment, a plurality of artificial neurons may share the same threshold. For example, artificial neurons belonging to the same layer may have the same threshold value. In this case, the artificial neurons of the next layer can reduce the load due to threshold transmission by receiving a shared threshold between the artificial neurons of the previous layer. The artificial neurons of the next layer can determine their activation based on the received sign bit and threshold. The artificial neuron 105 may update its threshold or a threshold shared within its own layer after transmitting the output signal to the next layer. As another example, the threshold may be set differently for each predetermined group other than the layer, or the threshold value may be set differently for each artificial neuron. As another example, the entire neuron network may use the same threshold.

다른 실시예에 따르면, 출력 신호는 미리 결정된 비트 정밀도(bit precision)로 근사화된 액티베이션의 변화량을 포함할 수 있다. 이벤트 발생 시 미리 결정된 비트 정밀도로 근사화된 액티베이션의 변화량을 출력하는 뉴런 네트워크는 아날로그-전송 DCN(analog-transmission DCN)이라고 지칭될 수 있다. 근사화된 액티베이션의 변화량은 연속적인 값을 표현할 수 있다. 이 경우, 출력 신호의 전송을 위해 더 많은 비트가 요구되지만, 부호 비트로 액티베이션의 변화량을 나타내는 것에 비해, 다음 레이어에 포함된 인공 뉴런들의 액티베이션이 상대적으로 정확하게 계산될 수 있다. 다음 레이어의 인공 뉴런들은 수신한 액티베이션의 변화량을 이용하여 자신의 액티베이션을 결정할 수 있으므로, 인공 뉴런(105)의 임계치는 전송되지 않는다. According to another embodiment, the output signal may comprise a variation of the activation approximated by a predetermined bit precision. A neuron network that outputs the amount of change of activation approximated with a predetermined bit precision at the time of an event may be referred to as an analog-transmission DCN (DCN). The amount of change in the approximated activation can represent a continuous value. In this case, more bits are required for the transmission of the output signal, but the activation of the artificial neurons contained in the next layer can be calculated relatively accurately, as compared to representing the amount of change in activation by the sign bit. The artificial neurons of the next layer can determine their own activation using the amount of change in the received activation, so that the threshold of the artificial neuron 105 is not transmitted.

인공 뉴런(105)은 출력 신호를 다음 레이어로 전송한 이후에 자신의 임계치를 업데이트할 수 있다. 아날로그-전송 DCN의 경우, 액티베이션의 변화량이 전송됨으로써, 모든 인공 뉴런은 자신의 임계치를 가질 수 있고, 각각의 인공 뉴런은 제한된 버스 용량과 같은 가용 자원 또는 액티베이션에 관한 함수에 따라 자신의 임계치를 동적으로 변경할 수 있다. The artificial neuron 105 may update its threshold value after transmitting the output signal to the next layer. In the case of an analog-to-transmit DCN, the amount of change in activation is transmitted so that all artificial neurons can have their own thresholds, and each artificial neuron can change its threshold to a function based on available resources, such as limited bus capacity, .

또한, 기본 DCN의 경우 부호 비트로 제한된 출력 신호로는 임계치보다 매우 큰 액티베이션의 변화량이 정확하게 전달되기 어렵다. 반면, 아날로그-전송 DCN의 인공 뉴런(105)은 복수의 바이너리 이벤트들을 전송하는 대신에, 액티베이션의 변화량을 정확하게 나타내는 단일 이벤트를 전송할 수 있게 된다. 이에 따라, 아날로그-전송 DCN에서는 슬로프 과부하(slope-overload) 문제가 해결될 수 있다.Also, in the case of the basic DCN, it is difficult for the output signal limited to the sign bit to accurately transmit the amount of change in activation that is much larger than the threshold value. On the other hand, instead of transmitting a plurality of binary events, the artificial neuron 105 of the analog-transmitting DCN can transmit a single event accurately indicating the amount of change in activation. Thus, the slope-overload problem can be solved in an analog-to-transmit DCN.

상술된 실시예들에서, 인공 뉴런들의 임계치는 새로운 이벤트의 발생에 따라 업데이트될 수 있다. 임계치는 고정된 간격(fixed step), 로그 간격(logarithmic step), 자릿수(order of magnitude) 등 다양한 방식으로 조절될 수 있다. 예를 들어, 액티베이션이 임계치에 비하여 매우 크게 변하는 경우, 임계치도 액티베이션의 변화에 맞게 조절될 필요가 있다. 액티베이션이 149에서 150으로 변하는 것은, 0에서 1로 변하는 것에 비해, 그 의미가 크지 않을 수 있기 때문이다. 이 경우, 임계치가 로그 간격으로 조절됨으로써, 이미 매우 큰 액티베이션을 가지는 인공 뉴런이 액티베이션의 변화량이 충분히 큰 경우에 한하여 이벤트를 발생시킬 수 있다. 임계치가 로그 간격으로 조절되는 뉴런 네트워크는 로그-간격 임계치 DCN(log-stepped threshold DCN)라고 지칭될 수 있다. 로그-간격 임계치 DCN에 포함된 인공 뉴런들은 기본 DCN 방식으로 동작하거나, 아날로그-전송 DCN 방식으로 동작할 수 있다.In the embodiments described above, the threshold of artificial neurons may be updated as the new event occurs. The threshold can be adjusted in a variety of ways, such as a fixed step, a logarithmic step, and an order of magnitude. For example, if the activation varies greatly relative to the threshold, the threshold also needs to be adjusted to accommodate the change in activation. The reason why the activation is changed from 149 to 150 is that the meaning of the activation may not be large compared with the case of changing from 0 to 1. In this case, the threshold value is adjusted to the log interval, so that an artificial neuron having a very large activation can generate an event only when the amount of change in the activation is sufficiently large. The neuron network whose threshold is adjusted to the log interval may be referred to as a log-stepped threshold DCN. The artificial neurons contained in the log-interval threshold DCN may operate in the basic DCN scheme or in the analog-transmission DCN scheme.

다른 일 측에 따르면, 인공 뉴런(105)은 자신의 액티베이션에 따라 미리 정해진 k개의 클러스터들 중 어느 하나로 분류될 수 있고, 자신이 속한 클러스터의 변경에 따라 이벤트의 발생을 결정할 수 있다. 여기서, k는 자연수일 수 있다. 예를 들어, 인공 뉴런(105)의 이전 액티베이션에 따라 인공 뉴런(105)이 제1 클러스터에 속했으나, 인공 뉴런(105)의 현재 액티베이션에 따라 인공 뉴런(105)이 제2 클러스터에 속하게 된 경우, 인공 뉴런(105)은 이벤트의 발생을 결정할 수 있다. According to another aspect, the artificial neuron 105 may be classified into one of the predetermined k clusters according to its activation, and may determine the occurrence of an event in accordance with the change of the cluster to which it belongs. Here, k may be a natural number. For example, if the artificial neuron 105 belongs to the first cluster according to previous activation of the artificial neuron 105 but the artificial neuron 105 belongs to the second cluster according to the current activation of the artificial neuron 105 , The artificial neuron 105 can determine the occurrence of an event.

인공 뉴런(105)은 이벤트의 발생에 따라 출력 신호들을 출력 시냅스들로 전송할 수 있다. 이 경우, 출력 신호는 클러스터의 변화 방향 및 클러스터의 변화량 중 적어도 하나를 나타내는 적어도 하나의 변경 비트를 포함할 수 있다. 예를 들어, 인공 뉴런(105)이 속한 클러스터가 상위 클러스터로 변경된 경우, 인공 뉴런(105)은 양의 비트인 +1을 전송할 수 있고, 인공 뉴런(105)이 속한 클러스터가 하위 클러스터로 변경된 경우, 인공 뉴런(105)은 음의 비트인 -1을 전송할 수 있다. 클러스터가 두 레벨 이상 변한 것을 나타내기 위해, 변경 비트는 두 비트 이상일 수 있다. 이벤트 발생 시 클러스터의 변화 방향 및 클러스터의 변화량 중 적어도 하나를 나타내는 적어도 하나의 변경 비트를 출력하는 인공 뉴런들을 포함하는 뉴런 네트워크는 K-레벨 DCN(K-level DCN)이라고 지칭될 수 있다.The artificial neuron 105 may transmit the output signals to the output synapses as the event occurs. In this case, the output signal may include at least one change bit indicating at least one of the change direction of the cluster and the change amount of the cluster. For example, when the cluster to which the artificial neuron 105 belongs is changed to the upper cluster, the artificial neuron 105 can transmit +1 which is a positive bit, and when the cluster to which the artificial neuron 105 belongs is changed to the lower cluster , The artificial neuron 105 can transmit a negative bit of -1. To indicate that the cluster has changed more than one level, the change bit may be more than two bits. A neuron network that includes artificial neurons that output at least one change bit indicating at least one of a change direction of a cluster and an amount of change of a cluster at the time of an event may be referred to as a K-level DCN.

인공 뉴런(105)은 입력 신호를 디코딩하는 디코더, 출력 신호를 생성하는 인코더 및 출력 신호를 전송하는 전송기를 포함할 수 있다. 인코더는 이벤트의 발생에 따라 이벤트에 대응하는 출력 신호를 생성할 수 있다. 예를 들어, 출력 신호는 부호 비트, 근사화된 액티베이션의 변화량 또는 변경 비트를 포함할 수 있다. 기본 DCN의 경우, 전송기는 부호 비트와 함께 임계치를 전송할 수 있다. 디코더, 인코더 및 전송기는 적어도 하나의 프로세서 하드웨어 모듈 또는 적어도 하나의 소프트웨어 모듈로 구현될 수 있다.Artificial neuron 105 may include a decoder for decoding an input signal, an encoder for generating an output signal, and a transmitter for transmitting an output signal. The encoder can generate an output signal corresponding to the event in accordance with the occurrence of the event. For example, the output signal may include a sign bit, a change amount of the approximated activation, or a change bit. In the case of a basic DCN, the transmitter can send a threshold along with the sign bit. The decoder, encoder and transmitter may be implemented with at least one processor hardware module or at least one software module.

뉴럴 네트워크(100)는 뉴럴 네트워크(100)의 설정 값이 고정된 정적 설정(static configuration) 또는 뉴럴 네트워크(100)의 설정 값이 동적으로 변경되는 동적 설정(dynamic configuration)에 따라 동작할 수 있다. 설정 값은 임계치 및 비트 정밀도를 포함할 수 있다. 동적 설정에서 설정 값은 주기적으로 변경되거나, 미리 정해진 조건이 만족되는 경우에 변경되거나, 혹은 요청에 따라 변경될 수 있다. 예를 들어, 임계치는 단위 시간 동안 발생하는 이벤트의 수에 따라 조절될 수 있다. 보다 구체적으로, 단위 시간 동안 발생하는 이벤트의 수가 미리 정해진 제1 임계치를 초과할 때, 이벤트를 감소시키기 위해, 임계치가 증가될 수 있다. 또한, 단위 시간 동안 발생하는 이벤트의 수가 미리 정해진 제2 임계치 미만으로 떨어질 때, 이벤트를 증가시키기 위해, 임계치가 감소될 수 있다. 여기서, 제1 임계치는 제2 임계치보다 클 수 있다.The neural network 100 may operate according to a static configuration in which the setting value of the neural network 100 is fixed or a dynamic configuration in which the setting value of the neural network 100 is changed dynamically. The setpoint may include threshold and bit precision. In the dynamic setting, the setting value may be changed periodically, or when the predetermined condition is satisfied, or may be changed upon request. For example, the threshold may be adjusted according to the number of events occurring during a unit time. More specifically, when the number of events occurring during a unit time exceeds a predetermined first threshold, the threshold may be increased to reduce the event. In addition, when the number of events occurring during a unit time falls below a predetermined second threshold, the threshold may be decreased to increase the event. Here, the first threshold value may be larger than the second threshold value.

설정 값들의 동적인 변경은 실제 구현에 있어서 하드웨어 자원의 최적화에 도움을 줄 수 있다. 예를 들어, 설정 값은 요구 정확도 및 가용 자원 중 적어도 하나에 따라 조절될 수 있다. 구체적으로, 검출에 요구되는 정확도에 비해, 자원의 소모나 지연을 감소시키는 것에 우선 순위가 부여된 경우, 우선 순위에 맞게 비트 정밀도가 감소되거나, 임계치가 증가될 수 있다. 모바일 전자기기에서, 명령들의 시퀀스를 시작하는 핵심 키워드들을 검출하기 위해 요구 정확도가 낮게 설정될 수 있고, 이러한 핵심 키워드들의 검출에 따라, 높은 정확도에서 연속적인 단어들이 검출될 수 있다. 핵심 키워드들 이외의 나머지 키워드들에 관해서는 요구 정확도가 낮게 설정될 수 있다.Dynamic changes of settings can help optimize hardware resources in actual implementations. For example, the settings can be adjusted according to at least one of the request accuracy and the available resources. Specifically, when priority is given to reducing the consumption or delay of resources, compared with the accuracy required for detection, the bit precision may be decreased or the threshold value may be increased in accordance with the priority. In a mobile electronic device, the request accuracy can be set low to detect key keywords starting a sequence of commands, and in accordance with the detection of these key words, successive words can be detected with high accuracy. The request accuracy can be set low for the remaining keywords other than the core keywords.

뉴럴 네트워크(100)의 인공 뉴런들은 자신의 상태를 저장함으로써, 스테이트-풀(stateful) 동작을 수행할 수 있다. 보다 구체적으로, 인공 뉴런들은 액티베이션의 변화량을 계산하기 위해, 이벤트가 발생한 시점의 액티베이션을 저장할 수 있다. 아래에서 상세히 설명되겠지만, 액티베이션의 변화량은 현재 액티베이션 및 이전에 발생한 이벤트에 대응하는 액티베이션에 기초하여 결정될 수 있다. 이 경우, 이전에 발생한 이벤트에 대응하는 액티베이션이 저장되어 있어야, 액티베이션의 변화량이 계산될 수 있다. 전통적인 피드포워드 네트워크의 인공 뉴런들은 상태를 저장하지 않고 스테이트-리스(stateless) 동작을 수행하며, 모든 인공 뉴런들의 상태는 새로운 입력 샘플들로부터 다시 설정된다. 뉴럴 네트워크(100)는 이벤트의 발생에 따라 부분적으로 업데이트되므로, 모든 입력 샘플마다 모든 네트워크를 업데이트하는 것에 비해, 상당한 양의 연산이 절감될 수 있다.The artificial neurons of the neural network 100 can perform stateful operation by storing their state. More specifically, artificial neurons can store activation at the time an event occurs to calculate the amount of change in activation. As will be described in detail below, the amount of change in activation can be determined based on the current activation and the activation corresponding to the previously occurring event. In this case, the activation corresponding to the previously generated event must be stored, so that the amount of change in activation can be calculated. Artificial neurons in a traditional feedforward network perform stateless operation without storing states, and the state of all artificial neurons is reset from new input samples. Since the neural network 100 is partially updated as the event occurs, a significant amount of computation can be saved as compared to updating the entire network for every input sample.

구체적으로, 뉴럴 네트워크를 동작시키기 위한 계산에 관한 비용은 뉴럴 네트워크의 아키텍처 및 뉴럴 네트워크에 필요한 비트 정밀도에 의존적이다. 네트워크의 아키텍처는 인공 뉴런의 모델, 레이어의 수, 레이어 별 뉴런들의 수 및 레이어 별 시냅스들의 수 등에 의해 결정될 수 있다. 네트워크 파라미터들의 계산을 위한 비용에 관해, 2-레이어의 완전 연결 네트워크의 순차적인 업데이트를 예시로 설명한다.Specifically, the cost of the computation for operating the neural network depends on the bit precision required for the architecture of the neural network and the neural network. The architecture of the network can be determined by the model of artificial neurons, the number of layers, the number of neurons per layer, and the number of synapses per layer. Regarding the cost for calculating the network parameters, a sequential update of the two-layer fully connected network is illustrated by way of example.

첫 번째 레이어가 N개의 인공 뉴런들을 포함하고, 두 번째 레이어가 M개의 인공 뉴런들을 포함하며, b 비트의 정밀도가 이용되고, 뉴런 동작의 복잡성이 c라고 가정하면, 완전 연결 네트워크의 순차적인 업데이트를 위해서는 매 스텝마다 N*M*b*c 비트의 동작들이 계산을 위한 비용이 된다. 이 경우, 인공 뉴런의 입력이 변하지 않거나, 0에 머무르는 것과 같은 상황에, 동작들 중에 어느 하나가 활성화되지 않는다면, 계산을 위한 비용은 감소될 수 있다.Assuming that the first layer contains N artificial neurons, the second layer contains M artificial neurons, the precision of b bits is used, and the complexity of neuron motion is c, sequential updates of fully connected networks For each step, N * M * b * c bits of operation are the cost for calculation. In this case, the cost for the calculation may be reduced if either of the operations is not activated, such as when the input of the artificial neuron remains unchanged or remains at zero.

α가 계산을 활성화하는 입력의 비율이라고 하면, 뉴럴 네트워크(100)는 매 스텝마다 N*M*b*c*α의 동작들을 수행하게 된다. α=1인 경우, N*M*b*c*α의 동작들이 수행된다. α=0인 경우, 0의 동작들이 수행된다. 또한, 뉴럴 네트워크(100)에서는 b를 작은 값으로 설정함으로써, 계산에 관한 비용이 감소될 수 있다. b=1인 경우, 뉴럴 네트워크(100)는 바이너리-값의 연결들로 동작할 수 있다. 네트워크의 정확도와 비트 정밀도 간에는 트레이드 오프 관계가 있지만, 네트워크의 정확도 및 비트 정밀도를 모두 만족시키는 적절한 b가 선택될 수 있다. 한편, 실시간 어플리케이션은 종종 프레임 별 변화가 작은 입력을 수신할 수 있다. 예를 들어, 입력 영상의 연속된 프레임 사이에는 동일한 픽셀이 다수 포함될 수 있다. 이에 따라, 중첩적인(redundant) 계산들이 수행될 수 있다. 뉴럴 네트워크(100)는 이러한 중첩적인 계산들을 감소시킬 수 있다.Assuming that α is the ratio of the input that activates the calculation, the neural network 100 performs N * M * b * c * α operations at each step. When? = 1, the operations of N * M * b * c *? are performed. When? = 0, zero operations are performed. Further, in the neural network 100, by setting b to a small value, the cost for calculation can be reduced. If b = 1, the neural network 100 may operate with binary-value connections. There is a tradeoff between the accuracy of the network and the bit precision, but an appropriate b that satisfies both the accuracy and the bit accuracy of the network can be selected. On the other hand, real-time applications are often able to receive input with little frame-to-frame variation. For example, a plurality of identical pixels may be included between consecutive frames of the input image. Thus, redundant calculations can be performed. Neural network 100 may reduce these overlap calculations.

뉴럴 네트워크(100)는 인공 뉴런들이 출력 신호를 전송할 때, 모든 인공 뉴런의 상태를 환기(refresh)하는 환기 모드로 동작할 수 있다. 환기 모드는 잡음에 의해 야기되는 액티베이션의 에러가 축적되는 것에서 벗어나기 위해 사용될 수 있다. 환기 모드는, 뉴럴 네트워크(100)의 입력이, 모든 채널의 주기적인 전체 정보(예를 들어, 이미지와 같은 프레임화된 입력)와, 프레임들 사이의 특정 채널들의 업데이트 이벤트들의 혼합일 때, 정보를 충분히 처리하기에 적합할 수 있다. 일반 모드에는 이벤트에 따른 동작이 출력 신호의 전송에 따라 종료되는 것에 비해, 환기 모드에서는 프레임화된 입력이 모두 처리될 수 있다. 환기 모드에 따른 동작은 주기적으로 처리되거나, 요청에 의해 처리될 수 있다.Neural network 100 may operate in a ventilation mode that refreshes the status of all artificial neurons when artificial neurons transmit output signals. The ventilation mode can be used to escape the accumulation of activation errors caused by noise. The ventilation mode is used when the input of the neural network 100 is a mixture of periodic full information (e.g., framed input such as an image) of all channels and update events of certain channels between frames May be suitable for the treatment sufficiently. In the normal mode, the operation according to the event is terminated according to the transmission of the output signal. In the ventilation mode, the framed input can be all processed. The operation according to the ventilation mode can be periodically processed or can be processed by request.

예를 들어, 인공 뉴런은 미리 정해진 동작 모드(예를 들어, 환기 모드)를 지시하는 제어 신호를 수신할 수 있다. 이 경우, 인공 뉴런은 입력 시냅스를 통하여 동작 모드에 대응하여 프레임화된 입력 신호를 수신할 수 있다. 인공 뉴런은 프레임화된 입력 신호에 기초하여 자신의 상태(예를 들어, 액티베이션 등)를 결정할 수 있다.For example, the artificial neuron may receive a control signal indicating a predetermined operating mode (e.g., ventilation mode). In this case, the artificial neuron can receive the framed input signal corresponding to the mode of operation through the input synapse. The artificial neuron can determine its state (e.g., activation, etc.) based on the framed input signal.

도 2는 인공 뉴런의 입력 및 출력 예시를 나타낸 도면이다. 도 2를 참조하면, 이전 레이어(210)의 인공 뉴런들, 인공 뉴런(225) 및 다음 레이어(230)의 인공 뉴런들이 도시되어 있다.Figure 2 is an illustration of input and output examples of artificial neurons. Referring to FIG. 2, artificial neurons of the previous layer 210, artificial neurons 225, and artificial neurons of the next layer 230 are shown.

인공 뉴런(225)은 인공 뉴런(225)의 이전 액티베이션(v_p) 및 입력 신호들(i1, i2, i3)에 기초하여, 인공 뉴런(225)의 현재 액티베이션(v_c)를 결정할 수 있다. 인공 뉴런(225)은 수학식 3을 이용하여 현재 액티베이션(v_c)를 결정할 수 있다.The artificial neuron 225 may determine the current activation v_c of the artificial neuron 225 based on the previous activation v_p of the artificial neuron 225 and the input signals i1, i2, i3. The artificial neuron 225 may determine the current activation v_c using equation (3).

Figure pat00003
Figure pat00003

수학식 3에서, v_c는 현재 액티베이션을 나타내고, f는 활성 함수를 나타내며, v_p는 이전 액티베이션을 나타내고, i는 입력 신호의 합을 나타내며, φ는 인공 뉴런의 파라미터를 나타낸다. 인공 뉴런의 파라미터는 인공 뉴런의 바이어스 및 인공 뉴런의 상태를 포함할 수 있다. 입력 신호의 합(i)는 입력 신호들(i1, i2, i3)의 합에 의해 결정될 수 있다. 입력 신호들(i1, i2, i3)은 이전 레이어(210)의 인공 뉴런들의 출력 신호들 및 인공 뉴런(225)의 입력 시냅스들의 가중치들 사이의 곱에 기초하여 결정될 수 있다. 현재 액티베이션(v_c)가 결정된 이후에, 인공 뉴런(225)은 현재 액티베이션(v_c)를 저장할 수 있다.In equation (3), v_c represents the current activation, f represents the activation function, v_p represents the previous activation, i represents the sum of the input signals, and φ represents the parameters of the artificial neurons. The parameters of artificial neurons can include the biases of artificial neurons and the state of artificial neurons. The sum (i) of the input signals can be determined by the sum of the input signals (i1, i2, i3). The input signals i1, i2, i3 may be determined based on the product of the output signals of the artificial neurons of the previous layer 210 and the weights of the input synapses of the artificial neuron 225. [ After the current activation v_c has been determined, the artificial neuron 225 can store the current activation v_c.

인공 뉴런(225)은 현재 액티베이션(v_c) 및 인공 뉴런(225)에 의하여 이전에 발생한 이벤트(E_P)에 대응하는 액티베이션(v_e)에 기초하여, 액티베이션의 변화량(△v)을 결정할 수 있다. 인공 뉴런(225)은 현재 액티베이션(v_c)에서 액티베이션(v_e)를 차감한 값을 액티베이션의 변화량(△v)으로 결정할 수 있다.The artificial neuron 225 can determine the amount of change in activation Δv based on the activation v_e corresponding to the event (E_P) previously generated by the current activation v_c and the artificial neuron 225. The artificial neuron 225 can determine a value obtained by subtracting the activation (v_e) from the current activation (v_c) by the change amount (? V) of the activation.

인공 뉴런(225)은 액티베이션의 변화량(△v) 및 임계치(VT)에 기초하여, 새로운 이벤트(E_N)의 발생 여부를 결정할 수 있다. 구체적으로, 인공 뉴런(225)은 액티베이션의 변화량(△v)과 임계치(VT)의 교차에 따라 새로운 이벤트(E_N)의 발생을 결정할 수 있다. 임계치(VT)는 증가 방향의 제1 임계치 및 감소 방향의 제2 임계치를 포함할 수 있다. 따라서, 제1 임계치는 제2 임계치보다 클 수 있다. 이 경우, 액티베이션의 변화량(△v)이 제1 임계치를 초과하거나, 액티베이션의 변화량(△v)이 제1 임계치 미만으로 감소함에 따라, 인공 뉴런(225)은 새로운 이벤트(E_N)의 발생을 결정할 수 있다.The artificial neuron 225 can determine whether or not a new event E_N is generated based on the change amount? V of the activation and the threshold value VT. Specifically, the artificial neuron 225 can determine the occurrence of a new event E_N according to the intersection of the activation amount? V and the threshold value VT. The threshold value VT may include a first threshold value in the increasing direction and a second threshold value in the decreasing direction. Thus, the first threshold may be greater than the second threshold. In this case, as the amount of change? V of the activation exceeds the first threshold or the amount of change? V of activation is reduced below the first threshold, the artificial neuron 225 determines the occurrence of a new event E_N .

인공 뉴런(225)은 새로운 이벤트(E_N)의 발생에 따라 출력 시냅스로 새로운 이벤트(E_N)에 대응하는 출력 신호(o)를 전송할 수 있다. 출력 신호(o)는 출력 시냅스의 가중치(w1, w2, w3)와 곱해질 수 있다. 따라서, 다음 레이어(230)에 포함된 인공 뉴런들은 인공 뉴런(225)과 연결된 출력 시냅스의 가중치에 따라 서로 다른 입력 신호를 수신할 수 있다.The artificial neuron 225 may transmit the output signal o corresponding to the new event E_N to the output synapse in accordance with the occurrence of the new event E_N. The output signal o can be multiplied by the weight w1, w2, w3 of the output synapse. Accordingly, the artificial neurons included in the next layer 230 may receive different input signals depending on the weight of the output synapse connected to the artificial neuron 225.

상술된 것처럼, 일 실시예에 따르면, 기본 DCN에서 출력 신호(o)는 액티베이션의 변화량(△v)과 임계치(VT)의 교차 방향을 나타내는 부호 비트를 포함할 수 있다. 예를 들어, 액티베이션의 변화량(△v)이 제1 임계치를 초과할 경우, 인공 뉴런(225)은 다음 레이어(230)에 포함된 인공 뉴런들로 단일 양의 비트인 +1을 전송할 수 있다. 또한, 액티베이션의 변화량(△v)이 제2 임계치 미만으로 감소할 경우, 인공 뉴런(225)은 다음 레이어(230)에 포함된 인공 뉴런들로 단일 음의 비트인 -1을 전송할 수 있다. 이 경우, 출력 시냅스를 통해 다음 레이어(230)의 인공 뉴런들로 임계치(VT)가 함께 전송될 수 있고, 다음 레이어(230)의 인공 뉴런들은 인공 뉴런(225)으로부터 수신한 부호 비트 및 임계치(VT)에 기초하여 자신의 액티베이션을 결정할 수 있다.As described above, according to one embodiment, the output signal o at the basic DCN may include a sign bit indicating the direction of intersection of the activation amount change DELTA v and the threshold value VT. For example, if the change amount of activation (v) exceeds the first threshold, the artificial neuron 225 may transmit a single positive bit +1 to the artificial neurons included in the next layer 230. In addition, if the amount of change in activation (v) is reduced below the second threshold, the artificial neuron 225 may transmit a single negative bit of -1 to the artificial neurons included in the next layer 230. In this case, the threshold VT may be transmitted together with the artificial neurons of the next layer 230 through the output synapse, and the artificial neurons of the next layer 230 may be transmitted with the sign bit and threshold value received from the artificial neuron 225 RTI ID = 0.0 > VT). ≪ / RTI >

다른 실시예에 따르면, 아날로그-전송 DCN에서 인공 뉴런(225)은 액티베이션의 변화량(△v)을 미리 결정된 비트 정밀도로 근사화할 수 있고, 출력 신호(o)는 근사화된 액티베이션의 변화량(v_a)을 포함할 수 있다. 예를 들어, 액티베이션의 변화량(△v)이 제1 임계치를 초과하거나, 제2 임계치 미만으로 감소할 때, 인공 뉴런(225)은 16비트로 근사화된 액티베이션의 변화량(v_a)을 다음 레이어(230)에 포함된 인공 뉴런들로 전송할 수 있다. 이 경우, 다음 레이어(230)의 인공 뉴런들은 인공 뉴런(225)으로부터 수신한 근사화된 액티베이션의 변화량(v_a)을 이용하여 자신의 액티베이션을 결정할 수 있으므로, 임계치(VT)는 전송되지 않는다.According to another embodiment, the artificial neuron 225 in the analog-to-transmit DCN can approximate the change amount? V of the activation with a predetermined bit precision, and the output signal o can change the approximate activation amount v_a . For example, when the amount of change (v) of activation exceeds or falls below the first threshold, the artificial neuron 225 transmits the amount of change (v_a) of activation approximated to 16 bits to the next layer 230, Lt; RTI ID = 0.0 > artificial neurons < / RTI > In this case, the artificial neurons of the next layer 230 can determine their activation using the approximate activation variation (v_a) received from the artificial neuron 225, so the threshold VT is not transmitted.

인공 뉴런(225)은 출력 신호(o)를 다음 레이어(230)의 인공 뉴런들로 전송한 이후에 임계치(VT)를 업데이트할 수 있다. 인공 뉴런(225)은 새로운 이벤트(E_N)를 발생시킨 현재 액티베이션(v_c)에 기초하여 임계치(VT)를 업데이트할 수 있다. 예를 들어, 인공 뉴런(225)은 현재 액티베이션(v_c)와 유사한 값으로 임계치(VT)를 업데이트할 수 있다. 또는, 인공 뉴런(225)은 고정 간격, 로그 간격, 또는 자릿수 등 다양한 방식에 따라 임계치를 조절할 수 있다. 임계치의 조절에 관해서는 추후 상세히 설명한다.The artificial neuron 225 may update the threshold VT after transmitting the output signal o to the artificial neurons of the next layer 230. The artificial neuron 225 may update the threshold VT based on the current activation v_c that generated the new event E_N. For example, the artificial neuron 225 may update the threshold VT with a value similar to the current activation v_c. Alternatively, the artificial neuron 225 may adjust the threshold according to various manners such as fixed spacing, logarithmic spacing, or number of digits. The adjustment of the threshold value will be described later in detail.

도 3은 일 실시예에 따른 이벤트 결정 및 출력 신호를 나타낸 도면이다. 도 3을 참조하면, 기본 DNC에서 시간에 따른 인공 뉴런의 액티베이션 및 이벤트에 따른 출력 신호가 도시되어 있다.3 is a diagram illustrating event determination and output signals according to one embodiment. Referring to FIG. 3, an activation signal of an artificial neuron according to time and an output signal according to an event are shown in a basic DNC.

시간(t1)에서 액티베이션의 변화량이 임계치(VT1)를 초과함에 따라, 이벤트(E1)가 발생될 수 있다. 액티베이션의 변화량이 증가 방향의 제1 임계치(VT1)를 초과하였으므로, 출력 신호(o)로 +1을 지시하는 단일 비트(예를 들어, '참'의 논리 값을 가지는 신호)가 전송될 수 있다. 출력 신호(o)가 전송된 이후에, 임계치(VT1)는 그대로 유지되거나, 임계치(VT2)로 업데이트될 수 있다.As the amount of change of the activation at time t1 exceeds the threshold value VT1, the event E1 may be generated. A single bit (for example, a signal having a logical value of 'true') indicating +1 by the output signal o may be transmitted because the amount of change of the activation exceeds the first threshold value VT1 in the increasing direction . After the output signal o is transmitted, the threshold value VT1 may be maintained or updated to the threshold value VT2.

시간(t2) 및 시간(t3)에서 액티베이션의 변화량이 임계치(VT2) 및 임계치(VT3)를 초과함에 따라, 이벤트(E2) 및 이벤트(E3)가 발생될 수 있다. 이 때, 출력 신호(o)로 +1을 지시하는 단일 비트가 전송될 수 있다. 시간(t2) 이후에 임계치(VT2)는 그대로 유지되거나 임계치(VT3)로 업데이트될 수 있고, 시간(t3) 이후에 임계치(VT3)는 그대로 유지되거나 임계치(VT4)로 업데이트될 수 있다.The event E2 and the event E3 can be generated as the amount of change of the activation at the time t2 and the time t3 exceeds the threshold value VT2 and the threshold value VT3. At this time, a single bit indicating +1 can be transmitted to the output signal o. After time t2, the threshold value VT2 may remain the same or may be updated to the threshold value VT3, and after the time t3, the threshold value VT3 may be maintained or updated to the threshold value VT4.

시간(t4)에서 액티베이션의 변화량이 임계치(VT4) 미만으로 감소함에 따라, 이벤트(E4)가 발생될 수 있다. 액티베이션의 변화량이 감소 방향의 제2 임계치(VT4) 미만으로 감소하였으므로, 출력 신호(o)로 -1을 지시하는 단일 비트(예를 들어, '거짓'의 논리 값을 가지는 신호)가 전송될 수 있다. 출력 신호(o)가 전송된 이후에, 임계치(VT4)는 그대로 유지되거나 임계치(VT5)로 업데이트될 수 있다. As the change amount of the activation at time t4 is reduced to less than the threshold value VT4, event E4 can be generated. A single bit (e.g., a signal having a logic value of 'false') indicating -1 in the output signal o can be transmitted since the variation amount of the activation has decreased to less than the second threshold value VT4 in the decreasing direction have. After the output signal o is transmitted, the threshold value VT4 may be maintained or updated to the threshold value VT5.

설명의 편의를 위하여, 도 3의 예시에서, 임계치는 업데이트되지 않고 유지되고 있으나, 상술된 것과 같이 이벤트의 발생에 반응하여 임계치가 업데이트 될 수 있다.For ease of explanation, in the example of FIG. 3, the threshold is maintained un-updated, but the threshold may be updated in response to the occurrence of the event, as described above.

도 4는 다른 실시예에 따른 이벤트 결정 및 출력 신호를 나타낸 도면이다. 도 4를 참조하면, 아날로그 전송 DCN에서 시간에 따른 인공 뉴런의 액티베이션 및 이벤트에 따른 출력 신호가 도시되어 있다.4 is a diagram illustrating event determination and output signals according to another embodiment. Referring to FIG. 4, the activation signal of the artificial neuron over time and the output signal according to the event are shown in the analog transmission DCN.

시간(t1)에서 액티베이션의 변화량이 임계치(VT1)를 초과함에 따라, 이벤트(E1)가 발생될 수 있다. 인공 뉴런은 액티베이션의 변화량 +1을 미리 결정된 비트 정밀도로 근사화할 수 있다. 인공 뉴런은 근사화된 액티베이션의 변화량 +1을 출력 신호(o)로 전송할 수 있다. 출력 신호(o)가 전송된 이후에, 임계치(VT1)는 그대로 유지되거나 임계치(VT2)로 업데이트될 수 있다.As the amount of change of the activation at time t1 exceeds the threshold value VT1, the event E1 may be generated. An artificial neuron can approximate the amount of change in activation + 1 with a predetermined bit precision. The artificial neuron can transmit the change amount of the approximated activation + 1 as the output signal (o). After the output signal o is transmitted, the threshold value VT1 may be maintained or updated to the threshold value VT2.

시간(t2)에서 액티베이션의 변화량이 임계치(VT2)를 초과함에 따라, 이벤트(E2)가 발생될 수 있다. 인공 뉴런은 액티베이션의 변화량 +4.2를 미리 결정된 비트 정밀도로 근사화할 수 있다. 인공 뉴런은 근사화된 액티베이션의 변화량 +4.2를 출력 신호(o)로 전송할 수 있다. 출력 신호(o)가 전송된 이후에, 임계치(VT2)는 그대로 유지되거나 임계치(VT3)로 업데이트될 수 있다.As the amount of change of the activation at time t2 exceeds the threshold value VT2, the event E2 may be generated. An artificial neuron can approximate the variation of activation +4.2 with a predetermined bit precision. An artificial neuron can transmit an approximated change in activation amount of +4.2 to the output signal (o). After the output signal o is transmitted, the threshold value VT2 may be maintained or updated to the threshold value VT3.

시간(t3)에서 액티베이션의 변화량이 임계치(VT3) 미만으로 감소함에 따라, 이벤트(E3)가 발생될 수 있다. 인공 뉴런은 액티베이션의 변화량 -1을 미리 결정된 비트 정밀도로 근사화할 수 있다. 인공 뉴런은 근사화된 액티베이션의 변화량 -1을 출력 신호(o)로 전송할 수 있다. 출력 신호(o)가 전송된 이후에, 임계치(VT3)는 그대로 유지되거나 임계치(VT4)로 업데이트될 수 있다. As the amount of change in activation at time t3 decreases below the threshold value VT3, event E3 can be generated. The artificial neuron can approximate the variation amount of activation-1 with a predetermined bit precision. The artificial neuron can transmit a variation of -1 of the approximated activation to the output signal (o). After the output signal o is transmitted, the threshold value VT3 may be maintained or updated to the threshold value VT4.

설명의 편의를 위하여, 도 4의 예시에서, 임계치는 업데이트되지 않고 유지되고 있으나, 상술된 것과 같이 이벤트의 발생에 반응하여 임계치가 업데이트될 수 있다.For convenience of illustration, in the example of FIG. 4, the threshold is maintained un-updated, but the threshold may be updated in response to the occurrence of the event, as described above.

도 5는 일 실시예에 따른 임계치의 조절을 나타낸 도면이다. 도 5를 참조하면, 로그-간격 임계치 DCN에서 시간에 따른 인공 뉴런의 액티베이션 및 이벤트에 따른 출력 신호가 도시되어 있다.5 is a diagram illustrating adjustment of a threshold according to an embodiment. Referring to FIG. 5, there is shown an output signal according to the activation and event of artificial neurons over time in the log-interval threshold DCN.

시간(t1)에서 액티베이션의 변화량이 임계치(VT1)를 초과함에 따라, 이벤트(E1)가 발생될 수 있다. 액티베이션의 변화량이 증가 방향의 제1 임계치(VT1)를 초과하였으므로, 인공 뉴런은 출력 신호(o)로 +1을 지시하는 단일 비트를 전송할 수 있다. 또는, 인공 뉴런은 액티베이션의 변화량 +1을 미리 결정된 비트 정밀도로 근사화할 수 있다. 이 경우, 인공 뉴런은 근사화된 액티베이션의 변화량 +1을 출력 신호(o)로 전송할 수 있다. As the amount of change of the activation at time t1 exceeds the threshold value VT1, the event E1 may be generated. Since the amount of change in the activation exceeds the first threshold VT1 in the increasing direction, the artificial neuron can send a single bit indicating +1 to the output signal o. Alternatively, the artificial neuron can approximate the amount of change in activation by +1 with a predetermined bit precision. In this case, the artificial neuron can transmit the change amount of the approximated activation + 1 as the output signal o.

출력 신호(o)가 전송된 이후에, 임계치(VT1)는 임계치(VT2)로 업데이트될 수 있다. 예를 들어, 임계치(VT2)는 로그 간격에 따라 임계치(VT1)의 2배로 설정될 수 있다. 도 5에서, 임계치(VT1)는 1이고, 임계치(VT2)는 2일 수 있다.After the output signal o is transmitted, the threshold value VT1 may be updated to the threshold value VT2. For example, the threshold value VT2 may be set to twice the threshold value VT1 according to the log interval. In FIG. 5, the threshold value VT1 may be 1 and the threshold value VT2 may be 2.

시간(t2)에서 액티베이션의 변화량이 임계치(VT2)를 초과함에 따라, 이벤트(E2)가 발생될 수 있다. 액티베이션의 변화량이 증가 방향의 제1 임계치(VT1)를 초과하였으므로, 인공 뉴런은 출력 신호(o)로 +1을 지시하는 단일 비트를 전송할 수 있다. 또는, 인공 뉴런은 액티베이션의 변화량 +2를 미리 결정된 비트 정밀도로 근사화하고, 근사화된 액티베이션의 변화량 +2을 출력 신호(o)로 전송할 수 있다. As the amount of change of the activation at time t2 exceeds the threshold value VT2, the event E2 may be generated. Since the amount of change in the activation exceeds the first threshold VT1 in the increasing direction, the artificial neuron can send a single bit indicating +1 to the output signal o. Alternatively, the artificial neuron can approximate the variation amount of activation +2 with a predetermined bit precision, and transmit the approximated variation amount of activation + 2 to the output signal o.

출력 신호(o)가 전송된 이후에, 임계치(VT2)는 임계치(VT3)로 업데이트될 수 있다. 예를 들어, 임계치(VT3)는 로그 간격에 따라 임계치(VT2)의 2배로 설정될 수 있다. 도 5에서, 임계치(VT3)는 4일 수 있다. 액티베이션의 증가에 따라, 임계치도 증가함으로써, 더욱 큰 변화량에서 이벤트가 발생할 수 있다. 액티베이션의 절대량에 비하여 상대적으로 작은 변화량은 그 의미가 크지 않을 수 있기 때문에, 임계치를 조절함으로써, 의미 없는 이벤트의 발생을 억제할 수 있다.After the output signal o is transmitted, the threshold value VT2 may be updated to the threshold value VT3. For example, the threshold value VT3 may be set to be twice the threshold value VT2 according to the log interval. In FIG. 5, the threshold value VT3 may be four. As the activation increases, the threshold value also increases, so that an event can occur at a larger change amount. Since the change amount relatively small relative to the absolute amount of the activation may not be meaningful, the occurrence of the meaningless event can be suppressed by adjusting the threshold value.

도 6은 일 실시예에 따른 클러스터의 변경을 나타낸 도면이다. 도 6을 참조하면, 클러스터들(610 내지 630)이 도시되어 있다.6 is a diagram illustrating a variation of a cluster according to one embodiment. Referring to FIG. 6, clusters 610 through 630 are shown.

상술된 것처럼, 인공 뉴런(N)은 자신이 속한 클러스터의 변경에 따라 이벤트(E)의 발생을 결정할 수 있다. 보다 구체적으로, 인공 뉴런(N)은 인공 뉴런(N)의 이전 액티베이션(v_p), 및 인공 뉴런(N)의 입력 시냅스를 통하여 수신되는 입력 신호(i)에 기초하여, 인공 뉴런(N)의 현재 액티베이션(v_c)를 결정하고, 이전 액티베이션(v_p)가 속한 제1 클러스터 및 현재 액티베이션(v_c)가 속한 제2 클러스터에 기초하여, 이벤트(E)의 발생 여부를 결정할 수 있다. 인공 뉴런(N)은 제1 클러스터와 제2 클러스터가 상이한 경우, 이벤트(E)의 발생을 결정할 수 있다. 인공 뉴런(N)은 이벤트의 발생에 따라 출력 시냅스로 이벤트(E)에 대응하는 출력 신호(o)를 전송할 수 있다.As described above, the artificial neuron N can determine the occurrence of the event E in accordance with the change of the cluster to which it belongs. More specifically, the artificial neuron N is a neuron of the artificial neuron N, based on the previous activation v_p of the artificial neuron N, and the input signal i received through the input synapse of the artificial neuron N, It is possible to determine the current activation v_c and determine whether the event E is generated based on the first cluster to which the previous activation v_p belongs and the second cluster to which the current activation v_c belongs. The artificial neuron N may determine the occurrence of the event E if the first cluster and the second cluster are different. The artificial neuron N may transmit the output signal o corresponding to the event E to the output synapse in accordance with the occurrence of the event.

클러스터들(610 내지 630)은 각각 상이한 범위를 가질 수 있다. 예를 들어, 클러스터(620)는 0이상 1미만의 범위를 가질 수 있고, 클러스터(610)는 1이상 10미만의 범위를 가질 수 있고, 클러스터(630)는 10이상의 범위를 가질 수 있다. 클러스터(620)는 제1 레벨에 해당하고, 클러스터(610)는 제2 레벨에 해당하며, 클러스터(630)는 제3 레벨에 해당할 수 있다. 이 경우, 인공 뉴런은 자신의 현재 액티베이션(v_c)에 따라 클러스터들(610 내지 630) 중 어느 하나에 속할 수 있다. 예를 들어, 0이상 1미만의 액티베이션을 갖는 인공 뉴런들은 클러스터(620)에 속할 수 있다. 클러스터들의 수 및 클러스터들의 범위는 뉴럴 네트워크에 속한 인공 뉴런들의 액티베이션의 범위에 따라 결정될 수 있다. 보다 구체적으로, 학습이 완료된 인공 뉴런들의 전형적인 액티베이션의 분포가 0, 1 및 10을 경계로 분리되어 있는 경우, 클러스터들은 상술된 0, 1 및 10을 경계로 하는 범위를 가질 수 있다.Clusters 610 through 630 may each have a different range. For example, cluster 620 may range from 0 to less than 1, cluster 610 may range from 1 to less than 10, and cluster 630 may have a range of 10 or more. The cluster 620 corresponds to the first level, the cluster 610 corresponds to the second level, and the cluster 630 corresponds to the third level. In this case, the artificial neuron may belong to any one of the clusters 610 to 630 according to its current activation v_c. For example, artificial neurons with an activation of less than 1 and less than 1 may belong to cluster 620. The number of clusters and the range of clusters may be determined by the extent of activation of artificial neurons belonging to the neural network. More specifically, if the distribution of the typical activation of the learned artificial neurons is separated by 0, 1, and 10, the clusters may have a range bounded by 0, 1, and 10 as described above.

출력 신호(o)는 클러스터의 변화 방향 및 클러스터의 변화량 중 적어도 하나를 나타내는 적어도 하나의 변경 비트를 포함할 수 있다. 예를 들어, 인공 뉴런(N)이 속한 클러스터가 상위 클러스터로 변경된 경우, 인공 뉴런은 +1을 지시하는 변경 비트를 전송할 수 있다. 상술된 예시에 따라, 클러스터(610)는 클러스터(620)의 상위 클러스터에 해당하고, 클러스터(630)는 클러스터(610)의 상위 클러스터에 해당한다. 또한, 클러스터(630)는 클러스터(620)의 두 레벨 상위 클러스터에 해당한다. 클러스터가 두 레벨 이상 변한 것을 나타내기 위해, 변경 비트는 두 비트 이상일 수 있다. 예를 들어, 인공 뉴런(N)이 속한 클러스터가 두 레벨 하위 클러스터로 변경된 경우, 인공 뉴런은 -2를 지시하는 변경 비트를 전송할 수 있다.The output signal o may comprise at least one change bit indicating at least one of a change direction of the cluster and a change amount of the cluster. For example, if the cluster to which the artificial neuron (N) belongs is changed to a higher cluster, the artificial neuron can transmit a change bit indicating +1. According to the example described above, the cluster 610 corresponds to a higher cluster of the cluster 620, and the cluster 630 corresponds to a higher cluster of the cluster 610. [ Also, cluster 630 corresponds to a two-level ancestor of cluster 620. To indicate that the cluster has changed more than one level, the change bit may be more than two bits. For example, if the cluster to which the artificial neuron (N) belongs is changed to a two-level subcluster, the artificial neuron may transmit a change bit indicating -2.

보다 구체적으로, 인공 뉴런(N)의 이전 액티베이션(v_p)가 1.5이고, 인공 뉴런(N)의 현재 액티베이션(v_c)가 10.5인 경우, 인공 뉴런(N)은 클러스터(610)에서 클러스터(630)으로 이동하게 된다. 이 경우, 인공 뉴런(N)은 출력 신호(o)로 +1을 지시하는 변경 비트를 전송할 수 있다. 또한, 인공 뉴런(N)의 이전 액티베이션(v_p)가 1.5이고, 인공 뉴런(N)의 현재 액티베이션(v_c)가 0.5인 경우, 인공 뉴런(N)은 클러스터(610)에서 클러스터(620)으로 이동하게 된다. 이 경우, 인공 뉴런(N)은 출력 신호(o)로 -1을 지시하는 변경 비트를 전송할 수 있다. 또한, 인공 뉴런(N)의 이전 액티베이션(v_p)가 0.5이고, 인공 뉴런(N)의 현재 액티베이션(v_c)가 10.5인 경우, 인공 뉴런(N)은 클러스터(620)에서 클러스터(630)으로 이동하게 된다. 이 경우, 인공 뉴런(N)은 출력 신호(o)로 +2를 지시하는 변경 비트를 전송할 수 있다.More specifically, when the previous activation v_p of the artificial neuron N is 1.5 and the current activation v_c of the artificial neuron N is 10.5, the artificial neuron N moves from the cluster 610 to the cluster 630, . In this case, the artificial neuron N may transmit a change bit indicating +1 to the output signal o. Further, when the previous activation v_p of the artificial neuron N is 1.5 and the current activation v_c of the artificial neuron N is 0.5, the artificial neuron N moves from the cluster 610 to the cluster 620 . In this case, the artificial neuron N may send a change bit indicating -1 to the output signal o. Further, when the previous activation v_p of the artificial neuron N is 0.5 and the current activation v_c of the artificial neuron N is 10.5, the artificial neuron N moves from the cluster 620 to the cluster 630 . In this case, the artificial neuron N may transmit a change bit indicating +2 to the output signal o.

전술한 바와 같이, 일 실시예에 따르면, DCN은 ANN 혹은 SNN에 적용될 수 있다. 아래에서는 도 7 내지 도 9를 참조하여 DCN이 ANN의 일종인 RNN(recurrent neural network)에 적용되는 실시예를 설명한다. 아래의 설명은 DCN의 적용 범위를 제한하는 것은 아니며, DCN은 아래의 설명과 달리 RNN 이외의 ANN, 혹은 SNN에 적용될 수 있다.As described above, according to one embodiment, the DCN can be applied to the ANN or the SNN. 7 to 9, an embodiment in which the DCN is applied to a recurrent neural network (RNN), which is a type of ANN, will be described below. The following description does not limit the scope of the DCN, and the DCN may be applied to an ANN other than the RNN, or SNN, as described below.

아래 실시예들은 델타 네트워크라고 불릴 수 있는 RNN 아키텍처를 제안한다. 델타 네트워크는 상술된 DCN에 대응할 수 있다. 델타 네트워크에서 각각의 뉴런은 자신의 액티베이션의 변화가 문턱 값(threshold)을 초과한 때에만 값을 출력할 수 있다.The embodiments below propose an RNN architecture that may be referred to as a Delta network. The delta network may correspond to the DCN described above. In a delta network, each neuron can output a value only when its activation change exceeds a threshold.

빅 데이터 세트를 처리하는 능력, 예를 들어 GPU와 같은 컴퓨터 자원 및 트레이닝 알고리즘의 큰 향상과 같은 인자(factor)들의 결합으로 인하여, 일시적인 시퀀스의 처리에 RNN이 이용될 수 있다. 예를 들어, RNN을 이용하여 자연어 처리, 음성 인식, 및 구조화된 예측을 위한 주의(attention) 기반의 모델과 같은 어플리케이션이 구현될 수 있다. RNN은 메모리를 장착하고, LSTM(long short term memory)과 같은 게이팅 유닛(gating unit)을 이용한다. 게이트화된 회기 유닛(gated recurrent unit: GRU)는 RNN의 트레이닝 과정을 크게 향상시킬 수 있다. 그러나, RNN은 뉴런 액티베이션을 업데이트하기 위해 매트릭스 연산에 크게 의존하므로, RNN을 구동하기 위해서는 많은 자원이 요구된다.Due to the combination of factors such as the ability to process big data sets, e.g., computer resources such as the GPU, and large improvements in training algorithms, the RNN can be used to process transient sequences. For example, applications such as attention-based models for natural language processing, speech recognition, and structured prediction can be implemented using RNN. The RNN is equipped with a memory and uses a gating unit such as a long short term memory (LSTM). A gated recurrent unit (GRU) can greatly improve the training process of an RNN. However, since the RNN relies heavily on the matrix operation to update the neuron activation, a large amount of resources are required to operate the RNN.

실시예들에 따르면, RNN을 구동하기 위한 자원을 감소시키기 위하여, 입력 스트림의 특성 및 입력 스트림에 관한 신경 표현(neural representation)의 특성을 이용할 수 있다. 여기서, 신경 표현은 전술된 뉴런의 액티베이션에 대응할 수 있다.According to embodiments, to reduce the resources for driving the RNN, the characteristics of the input stream and the characteristics of the neural representation of the input stream may be used. Here, the neural expression may correspond to the activation of the neurons described above.

일반적으로 뉴럴 네트워크로의 입력은 시간적 자기 상관(temporal autocorrelation)이 높은 레벨을 가질 수 있다. 입력이 시간에 따라 천천히 변화하는 경우 시간적 자기 상관이 높은 것으로 볼 수 있다. 예를 들어, 프레임 간의 변화가 적은 비디오 영상의 경우 시간적 자기 상관이 높게 나타날 수 있다. 뉴럴 네트워크가 시간적 자기 상관이 높은 레벨의 입력을 처리하는 경우, 뉴럴 네트워크의 상태는 천천히 변하는(slow-changing) 액티베이션들을 생성할 수 있다.In general, the input to the neural network may have a high level of temporal autocorrelation. If the input slowly changes with time, it can be seen that the temporal autocorrelation is high. For example, a temporal autocorrelation may be high in a video image having a small change between frames. When a neural network processes a high level input of temporal autocorrelation, the state of the neural network can produce slow-changing activations.

도 7은 표준 비디오 데이터 세트를 처리하는 표준 컨볼루셔널 네트워크(standard convolutional network)의 특성을 나타내는 도면이다. 도 7을 참조하면, 표준 비디오 데이터 세트를 처리하는 표준 컨볼루셔널 네트워크의 상태는 천천히 변하는 액티베이션을 생성할 수 있다. 도 7에서 시간(또는 프레임)의 흐름에 따른 액티베이션은 매우 리던턴트(highly redundant)하다.Figure 7 is a diagram illustrating the characteristics of a standard convolutional network for processing a set of standard video data. Referring to FIG. 7, the state of a standard convolutional network that processes a set of standard video data may produce slowly varying activity. In FIG. 7, the activation according to the flow of time (or frame) is highly redundant.

예를 들어, 시간의 흐름에 따라 액티베이션은 거의 변하지 않는다. 도 7은 장면 인식을 위한 클립에서 상위 1000개의 프레임들이 표준 컨볼루셔널 네트워크에 인가될 때, 탑 레벨 특징 벡터 레이어의 임의의 상위 50개의 특징이 시간의 흐름에 따라 플롯된 결과일 수 있다. 도 7에서 피크는 시간이 지남에 따라 상대적으로 일정하게 유지되는 경향이 있어서, 시간에 따라 무작위의 액티베이션이 나타나기보다 액티베이션에 일관성이 나타난다.For example, activation over time does not change much. FIG. 7 shows that when the top 1000 frames in a clip for scene recognition are applied to a standard convolutional network, any top 50 features of the top level feature vector layer may be the result of being plotted over time. In Figure 7, the peaks tend to remain relatively constant over time, so that activation is consistent rather than random activation over time.

도 8은 시간의 경과에 따른 RNN 액티베이션의 안정성을 나타내는 도면이다. 도 8에는 숫자 인식 데이터 세트가 적용된 RNN의 액티베이션 특성이 나타나 있다. 보다 구체적으로, 도 8의 위 도면은 음성 숫자에 대한 MFCC(mel-frequency cepstral coefcients) 특징을 보여준다. 도 8의 아래 도면은 MFCC 특징에 대한 응답으로, 신경 네트워크의 액티베이션을 보여준다.8 is a diagram showing the stability of RNN activation over time. Fig. 8 shows the activation characteristics of the RNN to which the numerical recognition data set is applied. More specifically, the upper diagram of FIG. 8 shows the MFCC (mel-frequency cepstral coefcients) characteristic for voice numbers. The lower figure of Figure 8 shows the activation of the neural network in response to the MFCC feature.

도 8을 참조하면, 신경 입력을 처리하는 리커런트 뉴럴 네트워크(recurrent neural network: RNN)의 계산에서도 천천히 변하는 액티베이션 특징이 나타날 수 있다. 예를 들어, 입력에 길고 안정된 표현이 존재하면, 시간의 경과에 따른 액티베이션에 변화가 느리게 발생하며, 시간의 흐름에 따라 액티베이션에 높은 수준의 안정성이 나타날 수 있다.Referring to FIG. 8, slowly varying activation features may also appear in the computation of a recurrent neural network (RNN) that processes neural input. For example, if there is a long and stable representation of the input, a change in activation over time will occur slowly, and a high level of stability in activation may occur over time.

<델타 네트워크의 개념><Concept of Delta Network>

델타 네트워크의 목적은 가중치 매트릭스(weight matrix) 및 상태 벡터(state vector)와 같이 밀집된(dense) 매트릭스-벡터 곱을 완전 합(full addition)과 결합된 희소(sparse) 매트릭스-벡터 곱으로 변환하는 것이다. 이 변환을 통해 메모리 액세스 및 연산이 감소할 수 있다. 이 변환을 나타내기 위해 매트릭스-벡터 곱이 수학식 4와 같이 정의될 수 있다.The purpose of a delta network is to transform a dense matrix-vector product, such as a weight matrix and a state vector, into a sparse matrix-vector product that is combined with a full addition. This conversion can reduce memory access and computation. To represent this transformation, the matrix-vector product can be defined as:

Figure pat00004
Figure pat00004

수학식 4에서 r은 리커런트 뉴럴 네트워크의 파라미터들 중 리셋 게이트의 값을 나타낸다. 아래에서는 델타 네트워크의 개념을 r을 참조하여 설명하겠지만, 아래의 설명은 리커런트 뉴럴 네트워크의 다른 파라미터에도 적용될 수 있다. 수학식 4에 따라 사이즈 n×n의 매트릭스 W 및 사이즈 n의 벡터 x가 계산되기 위해, n2번의 연산이 사용되고, n2+n번 읽기 동작이 수행되고, n번 쓰기 동작이 수행될 수 있다. 긴 입력 벡터 시퀀스 xt를 위해 복수의 매트릭스-벡터 곱이 고려될 수 있다. 여기서, t는 1, 2, ..., n이다. 복수의 매트릭스-벡터 곱은 수학식 5에 따라 회귀적으로 계산될 수 있다.In Equation (4), r represents the value of the reset gate among the parameters of the recurrent neural network. In the following, the concept of a delta network is described with reference to r, but the following description can be applied to other parameters of a recurrent neural network. In order to calculate the matrix W of size n x n and the vector x of size n according to Equation 4, n 2 operations are used, n 2 + n read operations are performed, and n write operations can be performed . A plurality of matrix-vector products can be considered for the long input vector sequence x t . Here, t is 1, 2, ..., n. A plurality of matrix-vector products may be calculated recursively according to equation (5).

Figure pat00005
Figure pat00005

수학식 5에서, Δ = xt xt1이고, rt1은 이전 계산으로부터 획득된 결과이다. 따라서, t에서 수학식 5의 계산 비용은 0이다. 또한, x0 = 0이고, r0 = 0이다. 여기서, Δ는 입력 델타 벡터(input delta vector)로 지칭될 수 있다. 만약 Δ가 히든 상태 벡터(hidden state vector)에 관한 것이라면, Δ는 히든 상태 델타 벡터(hidden state delta vector)로 지칭될 수 있다. Δ가 희소(sparse) 벡터라면, 수학식 5와 같은 형식은 계산 비용 측면에서 유리할 수 있다. 보다 상세하게, rt은 Δ의 비용의 합(사이즈 n의 벡터를 위해 n개의 연산), 저장된 이전 결과 rt- 1를 더하는 비용(n개의 연산), 및 희소 매트릭스 곱 WΔ의 비용(n×n 가중치 매트릭스 및 점유율(occupancy ratio) s의 희소 벡터를 위한 n2개의 연산)으로 계산될 수 있다. 유사하게, rt를 계산하기 위한 메모리 비용은 매트릭스 W를 위한 n×s개의 가중치를 인출(fetch)하는 것, Δ를 위한 2n개의 값, rt-1을 위한 n개의 값, 및 결과를 나타내는 n개의 값을 저장하는 것에 기초하여 결정될 수 있다.In equation (5),? = X t x t1 and r t1 is the result obtained from the previous calculation. Therefore, the calculation cost of equation (5) at t is zero. Also, x0 = 0 and r0 = 0. Here,? Can be referred to as an input delta vector. If Δ is related to a hidden state vector, Δ can be referred to as a hidden state delta vector. If? Is a sparse vector, the form as shown in equation (5) may be advantageous in terms of calculation cost. More specifically, r t is the sum of the costs of Δ (n operations for a vector of size n), the cost of adding the stored previous results r t- 1 (n operations), and the cost of the sparse matrix product WΔ n may be calculated as a weighted matrix and a share (occupancy ratio) of 2 n s operation for sparse vectors). Similarly, the memory cost to compute r t may be calculated by fetching n x s weights for matrix W, 2n values for A, n values for r t-1 , may be determined based on storing n values.

x에 작은 변화가 있는 경우에도 계산 비용이 절약될 수 있다는 점을 명확히 하기 위해, 문턱 값의 쓰임을 설명한다. 실시예에 따른 계산 비용은 수학식 6으로 나타낼 수 있다.To clarify that the computational cost can be saved even when there is a small change in x, the use of thresholds is explained. The calculation cost according to the embodiment can be expressed by Equation (6).

Figure pat00006
Figure pat00006

또한, 메모리 비용은 수학식 7로 나타낼 수 있다.Also, the memory cost can be expressed by Equation (7).

Figure pat00007
Figure pat00007

점유율이 10%라면, 수학식 7에 따라

Figure pat00008
이다. 따라서, 연산 속도가 10배 증가할 수 있다.If the occupancy is 10%, then according to Equation 7
Figure pat00008
to be. Therefore, the operation speed can be increased by 10 times.

Figure pat00009
에 의해 계산되는 0의 수에 의해 속도 증가(speed up)가 주어질 수 있다. 실제로, 속도 증가는 데이터 스트림에 의해 결정될 수 있다. 예를 들어, 속도 증가는 xt 및 xt -1 사이에 얼마나 많은 값이 동일하게 머무르는지에 의해 결정될 수 있다. RNN의 입력, 중간 액티베이션 값, 및 출력을 나타내는 벡터 x가 타임 스텝마다 천천히 변하는 경우, 입력 값 xt 및 xt -1은 매우 리던턴트(redundant)해질 수 있고, 낮은 점유율 s 및 이에 상응하는 증가된 속도 증가가 이루어질 수 있다.
Figure pat00009
A speed up may be given by the number of zeros computed by &lt; / RTI &gt; In fact, the rate increase can be determined by the data stream. For example, the rate increase can be determined by how much the value stays the same between x t and x t -1 . If the vector x representing the input, intermediate activation value, and output of the RNN changes slowly from time step to time step, the input values x t and x t -1 can be very redundant and the low occupancy rate s and the corresponding increase The increased speed can be achieved.

<델타 네트워크 GRUs><Delta network GRUs>

GRU에서, 델타 네트워크 연산으로 대체될 수 있는 매트릭스-벡터 곱 연산이 몇 차례 나타날 수 있다. 아래에서는 델타 네트워크가 GRU에 적용되는 경우를 RNN에 관한 실시예로서 설명하겠지만, 델타 네트워크는 LSTM과 같은 다른 방식의 RNN에도 적용될 수 있다. 수학식 8은 GRU의 파라미터들을 나타낸다. 구체적으로, 수학식 8에서 r은 리셋 게이트 값을 나타내고, z는 업데이트 게이트 값을 나타내고, c는 출력 히든 상태 벡터를 나타내고, h는 업데이트된 히든 상태 벡터를 나타낸다. 또한, 수학식 8에서 굵게 표시된 부분은 매트릭스-벡터 곱 연산을 나타낸다. 수학식 8에서 W 및 x는 임의로 전치(transposition)될 수 있다.In GRU, a matrix-vector product operation that can be replaced by a delta network operation may appear several times. In the following, the case where the delta network is applied to the GRU will be described as an embodiment related to the RNN, but the delta network can be applied to other types of RNN such as the LSTM. Equation (8) represents the parameters of the GRU. Specifically, in Equation (8), r represents a reset gate value, z represents an update gate value, c represents an output disabled state vector, and h represents an updated hidden state vector. Also, the portion indicated in bold in Equation (8) represents a matrix-vector product operation. W and x in equation (8) can be arbitrarily transposed.

Figure pat00010
Figure pat00010

수학식 8에서 Wxr, Wxu, Wxc는 각각 입력 벡터 x를 위한 가중치들을 나타내고, Whr, Whu, Whc는 각각 히든 상태 벡터 h를 위한 가중치들을 나타낸다. 아래에서, Wxr, Wxu, Wxc는 Wx로 대표될 수 있고, Whr, Whu, Whc는 Wh로 대표될 수 있다. t는 타임 스탬프를 나타낼 수 있다. 수학식 8에서 굵게 표시된 부분은 수학식 5로 정의된 델타 업데이트로 대체될 수 있고, 이는 수학식 9으로 나타낼 수 있다.In Equation (8), W xr , W xu , and W xc denote weights for the input vector x, and W hr , W hu , and W hc represent weights for the hidden state vector h, respectively. In the following, W xr , W xu , W xc can be represented by W x , and W hr , W hu , and W hc can be represented by W h . t can represent a timestamp. The portion indicated in bold in Equation (8) can be replaced by a delta update defined by Equation (5), which can be expressed by Equation (9).

Figure pat00011
Figure pat00011

수학식 9에 따르면, t-1에서의 입력 벡터 xt -1 및 t에서의 입력 벡터 xt 간의 차에 기초하여, t에서의 입력 델타 벡터 Δx가 획득될 수 있고, t-2에서의 히든 상태 벡터 ht-2 및 t-1에서의 히든 상태 벡터 ht-2 간의 차에 기초하여, t-1에서의 히든 상태 델타 벡터 Δh가 획득될 수 있다. 또한, t에서의 입력 델타 벡터 Δx 및 입력 벡터 x를 위한 가중치 Wx간의 곱, 및 t-1에서의 히든 상태 델타 벡터 Δh및 히든 상태 벡터 h를 위한 가중치 Wh 간의 곱에 기초하여, 파라미터들 r, u 및 c가 결정될 수 있다. 결정된 파라미터들 r, u 및 c에 기초하여, t에서의 히든 상태 벡터 ht가 결정될 수 있다.According to Equation (9), the input vector in the t-1 x t -1, and on the basis of the difference between the input vector x t at t, the input of the delta vector Δ t, and x can be obtained, in t-2 Based on the difference between the hidden state vector h t-2 and the hidden state vector h t-2 at the hidden state vector h t-2 and t-1, the hidden state delta vector Δ h at t-1 can be obtained. Further, on the basis of the input delta vector Δ x and input vector product between the weight W x for x, and the product between the weight W h for the hidden state delta vector Δ h and hidden state vector h of the t-1 at t, The parameters r, u and c can be determined. Based on the determined parameters r, u and c, the hidden state vector ht at t can be determined.

수학식 9에서 zxr, zxu, zxc, zhr, zhu, zhc는 입력 또는 히든 상태를 위한 이전 계산의 저장된 결과로서 회귀적으로 정의될 수 있다. 예를 들어, zxr은 수학식 10으로 나타낼 수 있다.Z xr , z xu , z xc , z hr , z hu , and z hc in equation (9) can be regressively defined as the stored result of the previous calculation for the input or hidden state. For example, z xr can be expressed by Equation (10).

Figure pat00012
Figure pat00012

수학식 10에 따른 연산은 zxu, zxc, zhr, zhu, zhc에 유사하게 적용될 수 있다. x0에서의 초기 조건은 z0 := 0이다. 또한, 상술된 수학식에 나타난 것처럼, 저장된 완전-랭크(full-rank) 이전-액티베이션(pre-activation) 상태 및 바이어스를 포함하는, 다수의 추가적인 텀이 하나의 값으로 병합될 수 있다. 병합된 하나의 값은 게이트 타입 별로 단지 하나 혹은 둘의 저장된 벡터 값으로 나타날 수 있다. 예를 들어, 저장된 벡터 값은 수학식 11으로 나타낼 수 있다.The operation according to Equation (10) can be applied similarly to z xu , z xc , z hr , z hu , z hc . The initial condition at x0 is z0: = 0. Also, as shown in the above equation, a number of additional terms can be merged into a single value, including a stored full-rank pre-activation state and bias. One merged value may appear as only one or two stored vector values per gate type. For example, the stored vector value may be expressed by Equation (11).

Figure pat00013
Figure pat00013

최종적으로, 상술된 초기 상태의 조건에 따라, 저장된 값 M은 보정된 바이어스로 초기화될 수 있다. 예를 들어, Mr,0 = br, Mu,0 = bu, Mxc,0 = bc, and Mhr,0 = 0일 수 있고, 이들을 통해 델타 네트워크 GRU를 위해 수학식 12가 정의될 수 있다.Finally, in accordance with the conditions of the initial state described above, the stored value M can be initialized with a corrected bias. For example, for a delta network GRU, M r, 0 = b r , M u, 0 = b u , M xc, 0 = b c , and M hr, Can be defined.

Figure pat00014
Figure pat00014

<델타 네트워크에서의 근사 계산><Approximate Calculation in Delta Networks>

상술된 수학식들은 네트워크에서 최초의 계산으로서의 정확히 같은 답을 주기 위해 설계될 수 있다. 예를 들어, t-1에서의 입력 벡터 및 t에서의 입력 벡터 간의 차가 미리 정해진 임계치보다 큰 경우, t-1에서의 입력 벡터 및 t에서의 입력 벡터 간의 차가 입력 델타 벡터로 결정될 수 있고, t-1에서의 입력 벡터 및 t에서의 입력 벡터 간의 차가 미리 정해진 임계치보다 작은 경우, 제로 벡터가 입력 델타 벡터로 결정될 수 있다. 히든 상태 델타 벡터도 동일한 방식으로 결정될 수 있다.The above-described equations can be designed to give exactly the same answer as the initial calculation in the network. For example, if the difference between the input vector at t-1 and the input vector at t is greater than a predetermined threshold, then the difference between the input vector at t-1 and the input vector at t can be determined as the input delta vector, and t If the difference between the input vector at -1 and the input vector at t is less than a predetermined threshold, the zero vector may be determined as the input delta vector. The hidden state delta vector can also be determined in the same way.

상술된 수학식들을 통해 응용적인 접근이 가능하다. 예를 들어, 액티베이션의 변화가 0인 경우에 벡터-곱 연산이 생략(skip)되는 대신에, 액티베이션의 변화가 임의의 문턱 값

Figure pat00015
보다 작은 경우에 벡터-곱 연산이 생략될 수 있다. 여기서 액티베이션의 변화는 전술된 델타 벡터들에 대응될 수 있다. 이 것은 정확히 같은 결과를 생산하지는 않지만, 근사적으로 정확한 결과를 생성할 수 있다.An application approach is possible through the above equations. For example, instead of skipping the vector-product operation when the change in activation is zero,
Figure pat00015
Vector-product operation may be omitted. Where the change in activation may correspond to the delta vectors described above. This does not produce exactly the same result, but it can produce an approximate and accurate result.

도 9는 델타 네트워크를 통해 획득된 계산 결과를 나타낸다. 도 9에서, 0이 아닌 값은 검은 색으로 표시된다. 델타 벡터의 가중치 행렬 및 희소성을 통해, 희소성의 효과를 알 수 있다. 도 9의 실시예에서, 델타 벡터가 약 20%의 점유율을 가진다면 가중치 행렬의 약 20%만 인출될 수 있다. 가중치 행렬이 20%의 점유율을 갖는다는 것을 추가로 고려하면, 본래 가중치 행렬의 4%만 실제 계산에 사용되는 것으로 나타날 수 있다.9 shows a calculation result obtained through a delta network. In Figure 9, non-zero values are displayed in black. Through the weighting matrix and the scarcity of the delta vector, the effect of scarcity can be seen. In the embodiment of FIG. 9, only about 20% of the weighting matrix can be fetched if the delta vector has a share of about 20%. Further considering that the weighting matrix has a 20% occupancy, only 4% of the original weighting matrix may appear to be used for the actual calculation.

0이 아닌 문턱 값이 사용되는 경우, 여러 타임 스텝 동안 에러가 축적될 수 있다. 예를 들어, 입력 값 xt가 매 타임 스텝 동안 거의

Figure pat00016
만큼 증가하는 경우, 액티베이션의 중대한 변화가 축적됨에도 불구하고 변화가 발생하지 않을 수 있다. 그러므로, 이전 타임 스텝의 메모리는, 단지 최근 타입 스텝부터의 차이를 저장하는 것이 아닌, 문턱 값을 상회하는 변화를 야기하는 최근 값을 저장하도록 설정될 수 있다. 이러한 동작은 수학식 13으로 정의될 수 있다.If a non-zero threshold is used, errors can accumulate over several time steps. For example, if the input value x t is close to
Figure pat00016
The change may not occur even though a significant change in the activation is accumulated. Hence, the memory of the previous time step may be set to store a recent value that causes a change above the threshold, rather than just storing the difference from the last type step. This operation can be defined by Equation (13).

Figure pat00017
Figure pat00017

수학식 13에서

Figure pat00018
Figure pat00019
는 참조 벡터를 나타낸다. 예를 들어, t-1에서의 입력 델타 벡터 Δx , t-1이 미리 정해진 임계치
Figure pat00020
보다 큰 경우, t-1에서의 입력 벡터 xi, t-1이 t-1에서의 참조 벡터
Figure pat00021
로 결정될 수 있다. t-1에서의 입력 델타 벡터 Δx, t-1이 미리 정해진 임계치
Figure pat00022
보다 작은 경우, t-2에서의 참조 벡터
Figure pat00023
가 t-1에서의 참조 벡터
Figure pat00024
로 결정될 수 있다.In Equation (13)
Figure pat00018
And
Figure pat00019
Represents a reference vector. For example, if the input delta vector? X , t-1 at t-1 is greater than a predetermined threshold
Figure pat00020
, The input vector x i, t-1 at t-1 is the reference vector at t-1
Figure pat00021
. &Lt; / RTI &gt; If the input delta vector? x, t-1 at t-1 is less than a predetermined threshold
Figure pat00022
, The reference vector at t-2
Figure pat00023
Is the reference vector at t-1
Figure pat00024
. &Lt; / RTI &gt;

다시 말해, 입력 델타 벡터

Figure pat00025
를 계산할 때, 입력
Figure pat00026
의 현재 값 및 델타 벡터
Figure pat00027
의 최근 값 사이의 차가 이용될 수 있다. 여기서, i는 시간 t에서 벡터의 성분을 나타내고,
Figure pat00028
는 0이 아닌 값을 갖는다. 또한, 델타 변화가 소정의 문턱 값
Figure pat00029
미만이면, 델타 변화는 0으로 설정되어, 충분히 큰 변화가 0이 아닌 업데이트를 생성할 때 교정될 작은 근사 오차를 생성한다. 유사하게, 수학식 13을 통해 히든 상태 델타 벡터 Δhi,t를 구할 수 있다.In other words, the input delta vector
Figure pat00025
, The input
Figure pat00026
And the delta vector
Figure pat00027
Lt; / RTI &gt; may be used. Where i represents the component of the vector at time t,
Figure pat00028
Has a non-zero value. In addition, if the delta variation is less than a predetermined threshold
Figure pat00029
, The delta change is set to zero, producing a small approximation error to be corrected when generating a non-zero update that is sufficiently large. Similarly, the hidden state delta vector [Delta] hi , t can be obtained through Expression (13).

이하, 델타 네트워크 모델을 산출하는 트레이닝 방법 및 최적화 기법을 설명한다. 트레이닝 과정에 제약 조건을 추가하면 강력하고 가속화 될 수 있는 델타 네트워크가 산출될 수 있다. 제약 조건에 관해서는 후술한다.Hereinafter, a training method and an optimization technique for calculating a delta network model will be described. Adding constraints to the training process can yield a powerful and accelerating delta network. Constraints will be described later.

<트레이닝 방법><Training method>

a) 반올림(rounding) 네트워크의 액티베이션: 상술된 문턱 값 델타 네트워크(thresholded Delta Network)의 계산은 부분적으로 계산된 상태의 반올림과 유사한 기능을 수행할 수 있다. Δ 텀은 작은 차이에서 0으로 설정되지만, 큰 차이에서 네트워크는 업데이트될 수 있다. 트레이닝 과정에서 반올림을 수행할 경우에 발생할 수 있는 작은 반올림 오류(small rounding error)에 대해, 네트워크를 강화하는 다양한 방법이 생각될 수 있다. 보다 정확성을 높이기 위해, 액티베이션 반올림을 수행하는 것이다. 이 경우, 네트워크가 성공적으로 훈련될 수 있으므로 이러한 작은 반올림 오류에 견고할 수 있다. 또한, 낮은 정밀도 계산은 전력 소비를 더욱 감소시킬 수 있다.a) Activation of the rounding network: The computation of the thresholded delta network described above can perform a function similar to the rounding of a partially computed state. The term is set to zero in small differences, but the network can be updated in large differences. For small rounding errors that can occur when performing rounding in the training process, there are a variety of ways to enhance the network. In order to increase the accuracy, the activation rounding is performed. In this case, the network can be successfully trained and thus robust to these small rounding errors. In addition, low-precision calculations can further reduce power consumption.

다시 말해, m개의 정수 비트 및 f개의 분수 비트를 갖는 부호가 있는 고정 소수점 형식 Qm .f의 저해상도 파라미터

Figure pat00030
은 결정성(deterministic) 및 기울기-보존형 라운딩(gradient-preserving rounding)을 사용하여 고해상도 파라미터
Figure pat00031
로부터 생성될 수 있다. 저-해상도 파라미터
Figure pat00032
은 수학식 14로 나타낼 수 있다.In other words, a low-resolution parameter of the signed fixed-point format Q m .f with m integer bits and f fractional bits
Figure pat00030
Using a deterministic and gradient-preserving rounding, the high-resolution parameters &lt; RTI ID = 0.0 &gt;
Figure pat00031
Lt; / RTI &gt; Low-resolution parameter
Figure pat00032
Can be expressed by Equation (14).

Figure pat00033
Figure pat00033

수학식 14에서,

Figure pat00034
은[-2 m + f-1, 2 m + f-1]의 범위로 클리핑된(clipped)
Figure pat00035
와 수학식 15와 같은 반올림 함수를 통해 구할 수 있다.In Equation (14)
Figure pat00034
Is clipped to the range [-2 m + f-1, 2 m + f-1]
Figure pat00035
And a rounding function such as Equation (15).

Figure pat00036
Figure pat00036

수학식 15에서, ∇는 기울기 연산자를 나타낸다. 포워드 패스(forward pass)에서, 저-해상도 파라미터

Figure pat00037
은 보다 낮은 정밀도의 영향을 고려하는 출력을 생성하는데 사용되며, 작은 기울기 업데이트는 고해상도 파라미터
Figure pat00038
에서 시간에 따라 누적된다. 훈련이 끝나면
Figure pat00039
는 버려지고(discard) 이 사용된다. 시뮬레이션 결과의 파라미터가 액티베이션이 된다.In Equation 15, ∇ denotes a slope operator. In the forward pass, the low-resolution parameter
Figure pat00037
Lt; / RTI &gt; is used to generate an output that takes into account the effect of lower precision,
Figure pat00038
Are cumulatively accumulated over time. After the training
Figure pat00039
Is discarded, Is used. The parameter of the simulation result becomes activation.

b) 네트워크 액티베이션에 가우시안 노이즈(Gaussian noise)를 추가: 일단 문턱 값이 도입되면, 네트워크는 작은 변화의 비-전파에(non-propagation) 견고해야 하고, 큰 변화는 중요하게 고려되어야 한다. 작은 변화에 대해 견고성을 제공하는 또 다른 방법은 문턱 값 델타 액티베이션(thresholded delta activation)을 갖는 모든 위치에 가우스 노이즈를 추가하는 것이다. 가우시안 노이즈는 수학식 16과 같이 추가될 수 있다.b) Add Gaussian noise to network activation: once the threshold is introduced, the network must be robust to non-propagation of small changes, and large changes should be considered important. Another way to provide robustness to small changes is to add Gaussian noise to all positions with thresholded delta activation. Gaussian noise can be added as shown in Equation (16).

Figure pat00041
Figure pat00041

수학식 16에서, ? ~ N (?, ?)는 각각의 ? ∈ {? xr, ? hr, ? xu, ? hu, ? xc, ? hc}, 및 각 벡터의 각 구성 요소에 대해 평균 ?와 분산 ?를 갖는 가우시안 분포로부터 샘플 ?의 벡터를 결정하는 것을 의미한다. 전형적으로, 값 ?는 0으로 설정되어 기대 값(expectation)이 바이어스되지 않도록 한다. 예를 들어, E [xt + ?xr] = E [xt]이다. 분산 ?는 비-업데이트로 인한 일반적인 반올림 오류를 평가하도록 설정될 수 있다.In equation (16),? ~ N (?,?) For each? ∈ {? xr,? hr,? xu,? hu,? xc,? hc}, and the vector of samples from the Gaussian distribution with mean? and variance? for each component of each vector. Typically, the value? Is set to zero so that the expectation is not biased. For example, E [x t +? a xr] = E [x t] . Distributed? Can be set to evaluate common round-off errors due to non-updates.

<델타 네트워크 모델에서의 직접 계산><Direct calculation in delta network model>

가우스 노이즈를 추가하는 작업은 문턱 값 델타 네트워크에서 수행하는 절단 작업과 여전히 동일하지 않다. 이를 보완하기 위해 모델을 델타 네트워크에서 직접 트레이닝할 수 있다. 테스트 모델에서 직접 트레이닝함으로써, 네트워크는 임계 값 델타 네트워크가 일반적으로 만드는 오류 유형에 대해 견고 해질 수 있다.The addition of Gaussian noise is still not the same as the cutting operation performed on the threshold delta network. To overcome this, models can be trained directly on the delta network. By training directly in the test model, the network can be robust against the types of errors that threshold delta networks typically make.

<희박성 비용에 발생하는 액티베이션의 변화><Changes in Activation in Sedimentation Cost>

네트워크가 델타 네트워크 모델을 사용하여 훈련됨에 따라, 비용은 델타 조건과 관련 될 수 있고 전체 비용에 추가 될 수 있다. 일괄 처리(batch)에서 Δh를 위한 L1 표준(norm)은 평균 절대 값 변화(mean absolute delta change)로 계산 될 수 있으며, L1 표준은 가중 인자(weighting factor) β에 의해 조정될 수 있다. 희소 비용(sparse cost) L은 손실 함수에 추가로 포함될 수 있다. 수학식 17는 희소 비용 L을 나타낸다.As the network is trained using the Delta network model, the cost can be related to the delta condition and added to the overall cost. The L1 standard for Δh in a batch can be computed as a mean absolute change in delta change and the L1 standard can be adjusted by the weighting factor β. The sparse cost L may be further included in the loss function. Equation (17) represents the sparse cost L.

Figure pat00042
Figure pat00042

여기서 L1 표준은 Δh의 희소 값을 결정하는데 사용되므로 적은 델타 업데이트가 필요하다. 실시예들에 따르면 훈련 중에 Δ가 최적화되지 않기 때문에, Δx는 L1의 타겟이 아니다. 따라서, 관계식에 Δx가 포함되지 않을 수 있다.Here, the L1 standard is used to determine the scarceness of Δh, so a small delta update is needed. According to the embodiments, since? Is not optimized during training,? X is not a target of L1. Therefore,? X may not be included in the relational expression.

<최적화 방법><Optimization method>

무게 희박성(weight sparsity)의 영향: 트레이닝 후 심층 네트워크(deep network)의 가중치 행렬(weight matrix)에서 희박성의 양은 계산 비용의 절감 및 속도 향상에 영향을 미칠 수 있다. 트레이닝된 저 정밀 네트워크에서 가중치 행렬의 희박성은 매우 클 수 있다. 0은 델타 벡터와 배수적으로(multiplicatively) 작용하여 필요한 곱셈-누적(multiply-accumulate)을 훨씬 적게 생성할 수 있다. 따라서, 업데이트 횟수에 대한 가중치 희박성(weight sparsity)의 영향을 고려함으로써, 추가적인 정확도의 손실 없이 속도 향상을 얻을 수 있다.The effect of weight sparsity: The amount of sparseness in the weight matrix of a deep network after training can affect the cost savings and speed up of the calculation. The sparseness of the weighting matrix in a trained low-precision network can be very large. 0 can work multiplicatively with the delta vector to produce the much needed multiply-accumulate. Thus, by considering the effect of weight sparsity on the number of updates, the speed improvement can be achieved without loss of additional accuracy.

도 10은 일 실시예에 따른 전자 장치를 나타낸 블록도이다. 도 10을 참조하면, 전자 장치(1000)는 프로세서(1010) 및 메모리(1020)를 포함한다. 앞서 설명된 뉴럴 네트워크는 전자 장치(1000)로 구현될 수 있다.10 is a block diagram illustrating an electronic device according to one embodiment. 10, an electronic device 1000 includes a processor 1010 and a memory 1020. [ The neural network described above may be implemented in electronic device 1000.

프로세서(1010)는 도 1 내지 도 9를 통하여 상술된 적어도 하나의 장치들을 포함하거나, 도 1 내지 도 9를 통하여 상술된 적어도 하나의 방법을 수행할 수 있다. 예를 들어, 프로세서(1010)는 상술된 인공 뉴런들의 동작을 처리할 수 있다. 보다 구체적으로, 프로세서(1010)는 뉴럴 네트워크에 포함된 각각의 뉴런들에 관하여, 이전 액티베이션 및 입력 시냅스를 통하여 수신되는 입력 신호에 기초하여 현재 액티베이션을 결정하기 위한 동작, 현재 액티베이션 및 이전에 발생한 이벤트에 대응하는 액티베이션에 기초하여 액티베이션의 변화량을 결정하기 위한 동작, 액티베이션의 변화량 및 임계치에 기초하여 새로운 이벤트의 발생 여부를 결정하기 위한 동작, 새로운 이벤트의 발생에 따라 출력 시냅스로 새로운 이벤트에 대응하는 출력 신호를 전송하기 위한 동작을 처리할 수 있다.The processor 1010 may include at least one of the devices described above with reference to Figures 1-9, or may perform at least one of the methods described above with respect to Figures 1-9. For example, the processor 1010 may process the operations of the artificial neurons described above. More specifically, processor 1010 may be configured to perform, for each neuron included in the neural network, an operation for determining a current activation based on an input signal received over a previous activation and input synapse, a current activation and a previously occurring event An operation for determining the amount of change in activation based on the activation corresponding to the activation event, an operation for determining whether a new event is generated based on the amount of change in the activation and the threshold value, an output corresponding to the new event at the output synapse Lt; RTI ID = 0.0 &gt; signal. &Lt; / RTI &gt;

메모리(1020)는 컴퓨터에서 읽을 수 있는 명령어들을 저장할 수 있다. 메모리(1020)에 저장된 명령어들이 프로세서(1010)에서 실행되면, 프로세서(1010)는 상술된 인공 뉴런들의 동작을 처리할 수 있다. 또한, 메모리(1020)는 상술된 뉴럴 네트워크에 관한 데이터들을 저장할 수 있다. 예를 들어, 메모리(1020)는 인공 뉴런들의 액티베이션 및 시냅스의 가중치 등을 저장할 수 있다. 메모리(1020)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.The memory 1020 may store instructions readable by the computer. When instructions stored in memory 1020 are executed in processor 1010, processor 1010 may process the operations of the artificial neurons described above. The memory 1020 may also store data relating to the neural network described above. For example, memory 1020 may store activation of artificial neurons and weight of synapses, and the like. Memory 1020 may be volatile memory or non-volatile memory.

프로세서(1010)는 프로그램을 실행하고, 전자 장치(1020)를 제어할 수 있다. 전자 장치(1020)는 입출력 장치(도면 미 표시)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다. 전자 장치(1020)는 이동 전화, 스마트 폰, PDA, 태블릿 컴퓨터, 랩톱 컴퓨터 등 모바일 장치, 퍼스널 컴퓨터, 태블릿 컴퓨터, 넷북 등 컴퓨팅 장치, 또는 텔레비전, 스마트 텔레비전, 게이트 제어를 위한 보안 장치 등 전자 제품 등 다양한 전자 장치들을 포함할 수 있다. 그 밖에, 전자 장치(1000)에 관해서는 상술된 내용이 적용될 수 있으며, 보다 상세한 설명은 생략한다.The processor 1010 may execute the program and control the electronic device 1020. The electronic device 1020 is connected to an external device (e.g., a personal computer or a network) through an input / output device (not shown) and can exchange data. The electronic device 1020 may be a computing device such as a mobile phone, a smart phone, a PDA, a tablet computer, a laptop computer, a personal computer, a tablet computer, a netbook, or an electronic device such as a television, a smart television, And may include various electronic devices. In addition, the above description may be applied to the electronic device 1000, and a detailed description thereof will be omitted.

도 11은 다른 실시예에 따른 전자 장치를 나타낸 도면이다. 도 11을 참조하면, 전자 장치(1100)는 인공 뉴런들에 대응하는 프로세싱 유닛들을 포함한다.11 is a view showing an electronic device according to another embodiment. Referring to FIG. 11, an electronic device 1100 includes processing units corresponding to artificial neurons.

프로세싱 유닛들은 상술된 뉴럴 네트워크의 인공 뉴런들에 일대일로 대응할 수 있다. 프로세싱 유닛들 각각은 자신과 대응하는 인공 뉴런을 위한 동작을 처리하거나, 자신과 대응하는 인공 뉴런을 위한 데이터를 저장할 수 있다. 프로세싱 유닛들은 서로 링크를 통해 연결된다. 링크는 상술된 시냅스에 대응할 수 있고, 특정한 비트 폭을 갖도록 제한될 수 있다. 프로세싱 유닛들 각각은 컴퓨터에서 읽을 수 있는 명령어들을 저장하는 메모리 및 프로세서를 포함한다. 예를 들어, 프로세싱 유닛들 각각에 포함된 프로세서는 ALU(arithmetic logic unit)로 구현될 수 있다. 프로세싱 유닛들 각각은 완전 연결 네트워크에서와 같이 다른 레이어의 모든 프로세싱 유닛들에 연결되거나, 컨볼루셔널 네트워크에서와 같이 제한된 공간의 접속가능성을 가질 수 있다.The processing units may correspond one-to-one to artificial neurons of the neural network described above. Each of the processing units may process an operation for its corresponding artificial neuron or may store data for its corresponding artificial neuron. The processing units are linked to each other via a link. The link may correspond to the above-described synapse, and may be limited to have a specific bit width. Each of the processing units includes a memory and a processor for storing instructions readable by the computer. For example, a processor included in each of the processing units may be implemented as an arithmetic logic unit (ALU). Each of the processing units may be connected to all of the processing units of the other layer, such as in a fully connected network, or may have limited space connectivity, as in a convolutional network.

메모리에 저장된 명령어들이 프로세서에서 실행되면, 프로세서는 이전 액티베이션 및 입력 링크를 통하여 수신되는 입력 신호에 기초하여 현재 액티베이션을 결정하고, 현재 액티베이션 및 이전에 발생한 이벤트에 대응하는 액티베이션에 기초하여 액티베이션의 변화량을 결정하고, 액티베이션의 변화량 및 임계치에 기초하여 새로운 이벤트의 발생 여부를 결정하고, 새로운 이벤트의 발생에 따라 출력 링크로 새로운 이벤트에 대응하는 출력 신호를 전송한다. 메모리는 자신과 대응하는 인공 뉴런의 현재 액티베이션을 저장할 수 있다. 그 밖에, 전자 장치(1100)에 관해서는 상술된 내용이 적용될 수 있으며, 보다 상세한 설명은 생략한다.When the instructions stored in the memory are executed in the processor, the processor determines the current activation based on the input signal received over the previous activation and input link, and determines the amount of change in activation based on the current activation and the activation corresponding to the previously occurring event Determines whether to generate a new event based on the amount of change in the activation and threshold value, and transmits an output signal corresponding to the new event to the output link according to the occurrence of the new event. The memory can store the current activation of its corresponding artificial neuron. In addition, the above description may be applied to the electronic device 1100, and a detailed description thereof will be omitted.

도 12는 일 실시예에 따른 인공 뉴런의 동작 방법을 나타낸 동작 흐름도이다. 도 12를 참조하면, 단계(1210)에서, 인공 뉴런은 인공 뉴런의 이전 액티베이션 및 인공 뉴런의 입력 시냅스를 통하여 수신되는 입력 신호에 기초하여 인공 뉴런의 현재 액티베이션을 결정한다. 단계(1220)에서, 인공 뉴런은 현재 액티베이션 및 인공 뉴런에 의하여 이전에 발생한 이벤트에 대응하는 액티베이션에 기초하여 액티베이션의 변화량을 결정한다. 단계(1230)에서, 인공 뉴런은 액티베이션의 변화량 및 임계치에 기초하여, 새로운 이벤트의 발생 여부를 결정한다. 단계(1240)에서, 인공 뉴런은 새로운 이벤트의 발생에 따라 출력 시냅스로 새로운 이벤트에 대응하는 출력 신호를 전송한다. 그 밖에, 인공 뉴런의 동작 방법에 관해서는 상술된 내용이 적용될 수 있으며, 보다 상세한 설명은 생략한다.12 is a flowchart illustrating an operation method of an artificial neuron according to an embodiment of the present invention. Referring to FIG. 12, in step 1210, an artificial neuron determines the current activation of an artificial neuron based on a previous activation of an artificial neuron and an input signal received through an input synapse of the artificial neuron. At step 1220, the artificial neuron determines the amount of change in activation based on the current activation and an activation corresponding to a previously occurring event by the artificial neuron. At step 1230, the artificial neuron determines whether a new event has occurred, based on the amount of change and the threshold of activation. In step 1240, the artificial neuron transmits an output signal corresponding to the new event to the output synapse as the new event occurs. In addition, the above description can be applied to the operation method of the artificial neuron, and a detailed description thereof will be omitted.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented in hardware components, software components, and / or a combination of hardware components and software components. For example, the devices, methods, and components described in the embodiments may be implemented within a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate Such as an array, a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command 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, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various technical modifications and variations may be applied to those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI &gt; or equivalents, even if it is replaced or replaced.

Claims (34)

뉴럴 네트워크(neural network)를 위한 방법에 있어서,
인공 뉴런의 이전 액티베이션(activation) 및 상기 인공 뉴런의 입력 시냅스를 통하여 수신되는 입력 신호에 기초하여, 상기 인공 뉴런의 현재 액티베이션을 결정하는 단계;
상기 현재 액티베이션 및 상기 인공 뉴런에 의하여 이전에 발생한 이벤트에 대응하는 액티베이션에 기초하여, 액티베이션의 변화량을 결정하는 단계;
상기 액티베이션의 변화량 및 임계치에 기초하여, 새로운 이벤트의 발생 여부를 결정하는 단계; 및
상기 새로운 이벤트의 발생에 따라 출력 시냅스로 상기 새로운 이벤트에 대응하는 출력 신호를 전송하는 단계
를 포함하는, 방법.
1. A method for a neural network,
Determining a current activation of the artificial neuron based on an input signal received via an activation of an artificial neuron and an input synapse of the artificial neuron;
Determining an amount of change in activation based on the current activation and an activation corresponding to an event previously generated by the artificial neuron;
Determining whether a new event has occurred based on the amount of change and the threshold of the activation; And
Transmitting an output signal corresponding to the new event to an output synapse in response to the occurrence of the new event
/ RTI &gt;
제1항에 있어서,
상기 새로운 이벤트는 상기 액티베이션의 변화량과 상기 임계치의 교차에 따라 발생하는, 방법.
The method according to claim 1,
Wherein the new event occurs according to an intersection of the amount of change of the activation and the threshold.
제1항에 있어서,
상기 출력 신호는 상기 변화량과 상기 임계치의 교차 방향을 나타내는 부호 비트를 포함하는, 방법.
The method according to claim 1,
Wherein the output signal comprises a sign bit indicating the direction of intersection of the amount of change and the threshold.
제1항에 있어서,
상기 입력 시냅스를 통하여 연결된 이전 레이어에 대응하는 임계치를 수신하는 단계를 더 포함하고,
상기 현재 액티베이션을 결정하는 단계는
상기 이전 액티베이션, 상기 입력 신호, 및 상기 이전 레이어에 대응하는 임계치에 기초하여 상기 현재 액티베이션을 결정하는 단계
를 포함하는, 방법.
The method according to claim 1,
Further comprising receiving a threshold corresponding to a previous layer connected through the input synapse,
Wherein determining the current activation comprises:
Determining the current activation based on the previous activation, the input signal, and a threshold corresponding to the previous layer
/ RTI &gt;
제1항에 있어서,
상기 출력 신호는 미리 결정된 비트 정밀도(bit precision)로 근사화된 상기 액티베이션의 변화량을 포함하는, 방법.
The method according to claim 1,
Wherein the output signal comprises a variation of the activation approximated with a predetermined bit precision.
제5항에 있어서,
상기 비트 정밀도는 요구 정확도 및 가용 자원 중 적어도 하나에 따라 조절되는, 방법.
6. The method of claim 5,
Wherein the bit precision is adjusted according to at least one of a demand accuracy and an available resource.
제1항에 있어서,
상기 임계치는 단위 시간 동안 발생하는 이벤트의 수에 따라 조절되는, 방법.
The method according to claim 1,
Wherein the threshold is adjusted according to the number of events occurring during a unit time.
제7항에 있어서,
상기 임계치는, 상기 단위 시간 동안 발생하는 상기 이벤트의 수가 미리 정해진 제1 임계치를 초과하는 것에 따라 증가하고, 상기 단위 시간 동안 발생하는 상기 이벤트의 수가 미리 정해진 제2 임계치 미만인 것에 따라 감소하며, 상기 제1 임계치는 상기 제2 임계치보다 큰, 방법.
8. The method of claim 7,
Wherein the threshold is increased as the number of events occurring during the unit time exceeds a predetermined first threshold and decreases as the number of events occurring during the unit time is less than a predetermined second threshold, 1 threshold is greater than the second threshold.
제1항에 있어서,
상기 출력 신호의 전송 이후에, 상기 현재 액티베이션에 기초하여, 상기 임계치를 업데이트하는 단계를 더 포함하는, 방법.
The method according to claim 1,
Further comprising: after the transmission of the output signal, updating the threshold based on the current activation.
제9항에 있어서,
상기 임계치는 고정 간격(fixed step), 로그 간격(logarithmic step), 또는 자릿수(order of magnitude)에 따라 조절되는, 방법.
10. The method of claim 9,
Wherein the threshold is adjusted according to a fixed step, a logarithmic step, or an order of magnitude.
제1항에 있어서,
상기 현재 액티베이션을 저장하는 단계
를 더 포함하는, 방법.
The method according to claim 1,
Storing the current activation
&Lt; / RTI &gt;
제1항에 있어서,
미리 정해진 동작 모드를 지시하는 제어 신호를 수신하는 단계;
상기 입력 시냅스를 통하여 상기 동작 모드에 대응하여 프레임화된 입력 신호를 수신하는 단계; 및
상기 프레임화된 입력 신호에 기초하여 상기 현재 액티베이션을 결정하는 단계
를 더 포함하는, 방법.
The method according to claim 1,
Receiving a control signal indicating a predetermined operation mode;
Receiving a framed input signal corresponding to the operation mode through the input synapse; And
Determining the current activation based on the framed input signal
&Lt; / RTI &gt;
제1항에 있어서,
상기 뉴럴 네트워크는
인공 뉴럴 네트워크(artificial neural network), 완전 연결 네트워크(fully connected network), 딥 컨볼루셔널 네트워크(deep convolutional network), 리커런트 뉴럴 네트워크(recurrent neural network) 및 스파이킹 뉴럴 네트워크(spiking neural network) 중 어느 하나인, 방법.
The method according to claim 1,
The neural network
An artificial neural network, a fully connected network, a deep convolutional network, a recurrent neural network, and a spiking neural network. One, the way.
뉴럴 네트워크(neural network)를 위한 방법에 있어서,
인공 뉴런의 이전 액티베이션, 및 상기 인공 뉴런의 입력 시냅스를 통하여 수신되는 입력 신호에 기초하여, 상기 인공 뉴런의 현재 액티베이션을 결정하는 단계;
상기 이전 액티베이션이 속한 제1 클러스터 및 상기 현재 액티베이션이 속한 제2 클러스터에 기초하여, 이벤트의 발생 여부를 결정하는 단계; 및
상기 이벤트의 발생에 따라 출력 시냅스로 상기 이벤트에 대응하는 출력 신호를 전송하는 단계
를 포함하는, 방법.
1. A method for a neural network,
Determining a current activation of the artificial neuron based on a previous activation of the artificial neuron and an input signal received through an input synapse of the artificial neuron;
Determining whether an event is generated based on a first cluster to which the previous activation belongs and a second cluster to which the current activation belongs; And
Transmitting an output signal corresponding to the event to an output synapse in response to the occurrence of the event
/ RTI &gt;
제14항에 있어서,
상기 이벤트는 상기 제1 클러스터와 상기 제2 클러스터의 차이에 따라 발생하는, 방법.
15. The method of claim 14,
Wherein the event occurs according to a difference between the first cluster and the second cluster.
제14항에 있어서,
상기 출력 신호는 클러스터의 변화 방향 및 클러스터의 변화량 중 적어도 하나를 나타내는 적어도 하나의 변경 비트를 포함하는, 방법.
15. The method of claim 14,
Wherein the output signal comprises at least one change bit indicating at least one of a change direction of the cluster and a change amount of the cluster.
리커런트 뉴럴 네트워크(recurrent neural network)를 위한 방법에 있어서,
t-1에서의 입력 벡터 및 t에서의 입력 벡터 간의 차에 기초하여, t에서의 입력 델타 벡터를 획득하는 단계;
t-2에서의 히든 상태 벡터 및 t-1에서의 히든 상태 벡터 간의 차에 기초하여, t-1에서의 히든 상태 델타 벡터를 획득하는 단계;
상기 획득된 t에서의 입력 델타 벡터 및 입력 벡터를 위한 가중치 간의 곱, 및 상기 획득된 t-1에서의 히든 상태 델타 벡터 및 히든 상태 벡터를 위한 가중치 간의 곱에 기초하여, 상기 리커런트 뉴럴 네트워크의 파라미터들을 결정하는 단계; 및
상기 결정된 상기 리커런트 뉴럴 네트워크의 파라미터들에 기초하여, t에서의 히든 상태 벡터를 결정하는 단계
를 포함하고,
상기 t는 타임 스탬프를 나타내고, 1보다 큰 정수인,
방법.
1. A method for a recurrent neural network,
obtaining an input delta vector at t based on a difference between an input vector at t-1 and an input vector at t;
obtaining a hidden state delta vector at t-1 based on the difference between the hidden state vector at t-2 and the hidden state vector at t-1;
Based on the product of the product of the input delta vector at the obtained t and the weight for the input vector and the weight for the hidden state delta vector and the hidden state vector at the obtained t-1, Determining parameters; And
Determining a hidden state vector at t based on the determined parameters of the recurrent neural network
Lt; / RTI &gt;
Where t is a time stamp and is an integer greater than 1,
Way.
제17항에 있어서,
상기 리커런트 뉴럴 네트워크의 파라미터들은 리셋 게이트의 값, 업데이트 게이트의 값 및 출력 히든 상태 벡터의 값 중 적어도 하나를 포함하는, 방법.
18. The method of claim 17,
Wherein the parameters of the recurrent neural network include at least one of a value of a reset gate, a value of an update gate, and a value of an output hidden state vector.
제17항에 있어서,
상기 입력 델타 벡터를 획득하는 단계는
상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차가 미리 정해진 임계치보다 큰 경우, 상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차를 상기 입력 델타 벡터로 결정하는 단계; 및
상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차가 상기 미리 정해진 임계치보다 작은 경우, 제로 벡터를 상기 입력 델타 벡터로 결정하는 단계
를 포함하는, 방법.
18. The method of claim 17,
The step of obtaining the input delta vector
If the difference between the input vector at t-1 and the input vector at t is greater than a predetermined threshold, determining the difference between the input vector at t-1 and the input vector at t to be the input delta vector ; And
Determining a zero vector as the input delta vector if the difference between the input vector at t-1 and the input vector at t is less than the predetermined threshold,
/ RTI &gt;
제17항에 있어서,
상기 입력 델타 벡터를 획득하는 단계는
t-1에서의 입력 델타 벡터에 기초하여 t-1에서의 참조 벡터를 획득하는 단계; 및
상기 t-1에서의 참조 벡터 및 상기 t에서의 입력 벡터 간의 차에 기초하여, 상기 입력 델타 벡터를 획득하는 단계
를 포함하는, 방법.
18. The method of claim 17,
The step of obtaining the input delta vector
obtaining a reference vector at t-1 based on the input delta vector at t-1; And
Obtaining the input delta vector based on a difference between the reference vector at t-1 and the input vector at t;
/ RTI &gt;
제20항에 있어서,
상기 t-1에서의 참조 벡터를 획득하는 단계는
상기 t-1에서의 입력 델타 벡터가 미리 정해진 임계치보다 큰 경우, 상기 t-1에서의 입력 델타 벡터를 상기 t-1에서의 참조 벡터로 결정하는 단계; 및
상기 t-1에서의 입력 델타 벡터가 상기 미리 정해진 임계치보다 작은 경우, t-2에서의 참조 벡터를 상기 t-1에서의 참조 벡터로 결정하는 단계
를 포함하는, 방법.
21. The method of claim 20,
The step of obtaining the reference vector at t-1 comprises:
If the input delta vector at t-1 is greater than a predetermined threshold, determining an input delta vector at t-1 as a reference vector at t-1; And
If the input delta vector at t-1 is smaller than the predetermined threshold, determining a reference vector at t-2 as a reference vector at t-1
/ RTI &gt;
제17항에 있어서,
상기 히든 상태 델타 벡터를 획득하는 단계는
상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차가 미리 정해진 임계치보다 큰 경우, 상기 입력 델타 벡터를 상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차로 결정하는 단계; 및
상기 t-1에서의 입력 벡터 및 상기 t에서의 입력 벡터 간의 차가 상기 미리 정해진 임계치보다 작은 경우, 상기 입력 델타 벡터를 제로 벡터로 결정하는 단계
를 포함하는, 방법.
18. The method of claim 17,
The step of obtaining the hidden state delta vector
If the difference between the input vector at t-1 and the input vector at t is greater than a predetermined threshold, determining the input delta vector as a difference between the input vector at t-1 and the input vector at t; And
If the difference between the input vector at t-1 and the input vector at t is less than the predetermined threshold, determining the input delta vector as a zero vector
/ RTI &gt;
하드웨어와 결합되어 제1항 내지 제22항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.22. A computer program stored on a medium for executing the method of any one of claims 1 to 22 in combination with hardware. 인공 뉴런들에 대응하는 프로세싱 유닛들을 포함하고,
상기 프로세싱 유닛들 각각은 컴퓨터에서 읽을 수 있는 명령어들을 저장하는 메모리 및 프로세서를 포함하고,
상기 명령어들이 상기 프로세서에서 실행되면, 상기 프로세서는 이전 액티베이션 및 입력 링크를 통하여 수신되는 입력 신호에 기초하여 현재 액티베이션을 결정하고, 상기 현재 액티베이션 및 이전에 발생한 이벤트에 대응하는 액티베이션에 기초하여 액티베이션의 변화량을 결정하고, 상기 액티베이션의 변화량 및 임계치에 기초하여 새로운 이벤트의 발생 여부를 결정하고, 상기 새로운 이벤트의 발생에 따라 출력 링크로 상기 새로운 이벤트에 대응하는 출력 신호를 전송하는, 전자 장치.
Comprising processing units corresponding to artificial neurons,
Each of the processing units comprising a memory and a processor for storing instructions readable by the computer,
If the instructions are executed in the processor, the processor determines a current activation based on an input signal received over a previous activation and an input link, and determines a change in activation based on the current activation and an activation corresponding to a previously occurring event Determines whether to generate a new event based on the amount of change and threshold of the activation and sends an output signal corresponding to the new event to an output link as the new event occurs.
제24항에 있어서,
상기 새로운 이벤트는 상기 액티베이션의 변화량과 상기 임계치의 교차에 따라 발생하는, 전자 장치.
25. The method of claim 24,
Wherein the new event occurs according to an intersection of the amount of change of the activation and the threshold value.
제24항에 있어서,
상기 출력 신호는 상기 변화량과 상기 임계치의 교차 방향을 나타내는 부호 비트를 포함하는, 전자 장치.
25. The method of claim 24,
Wherein the output signal includes a sign bit indicating a direction of intersection of the amount of change and the threshold value.
제24항에 있어서,
상기 프로세서는 상기 입력 링크를 통하여 연결된 이전 레이어에 대응하는 임계치를 더 수신하고, 상기 이전 액티베이션, 상기 입력 신호, 및 상기 이전 레이어에 대응하는 임계치에 기초하여 상기 현재 액티베이션을 결정하는, 전자 장치.
25. The method of claim 24,
Wherein the processor further receives a threshold corresponding to a previous layer connected via the input link and determines the current activation based on the threshold corresponding to the previous activation, the input signal, and the previous layer.
제24항에 있어서,
상기 출력 신호는 미리 결정된 비트 정밀도(bit precision)로 근사화된 상기 액티베이션의 변화량을 포함하는, 전자 장치.
25. The method of claim 24,
Wherein the output signal comprises a variation of the activation approximated by a predetermined bit precision.
제28항에 있어서,
상기 비트 정밀도는 요구 정확도 및 가용 자원 중 적어도 하나에 따라 조절되는, 전자 장치.
29. The method of claim 28,
Wherein the bit precision is adjusted according to at least one of a request accuracy and an available resource.
제24항에 있어서,
상기 임계치는 단위 시간 동안 발생하는 이벤트의 수에 따라 조절되는, 전자 장치.
25. The method of claim 24,
Wherein the threshold is adjusted according to the number of events occurring during a unit time.
제30항에 있어서,
상기 임계치는, 상기 단위 시간 동안 발생하는 상기 이벤트의 수가 미리 정해진 제1 임계치를 초과하는 것에 따라 증가하고, 상기 단위 시간 동안 발생하는 상기 이벤트의 수가 미리 정해진 제2 임계치 미만인 것에 따라 감소하며, 상기 제1 임계치는 상기 제2 임계치보다 큰, 전자 장치.
31. The method of claim 30,
Wherein the threshold is increased as the number of events occurring during the unit time exceeds a predetermined first threshold and decreases as the number of events occurring during the unit time is less than a predetermined second threshold, 1 threshold is greater than the second threshold.
제24항에 있어서,
상기 프로세서는, 상기 출력 신호의 전송 이후에, 상기 현재 액티베이션에 기초하여, 상기 임계치를 업데이트하는, 전자 장치.
25. The method of claim 24,
Wherein the processor updates the threshold based on the current activation after transmission of the output signal.
제32항에 있어서,
상기 임계치는 고정 간격, 로그 간격, 또는 자릿수에 따라 조절되는, 전자 장치.
33. The method of claim 32,
Wherein the threshold is adjusted according to a fixed interval, a log interval, or a number of digits.
제24항에 있어서,
상기 메모리는 상기 현재 액티베이션을 저장하는, 전자 장치.
25. The method of claim 24,
Wherein the memory stores the current activation.
KR1020170053543A 2016-07-13 2017-04-26 Method for neural network and apparatus perform same method KR102399548B1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
US15/607,007 US10949737B2 (en) 2016-07-13 2017-05-26 Method for neural network and apparatus performing same method
EP17178120.6A EP3270330B1 (en) 2016-07-13 2017-06-27 Method for neural network and apparatus performing same method
JP2017132072A JP7037143B2 (en) 2016-07-13 2017-07-05 Methods and electronic devices for neural networks
CN201710570971.3A CN107622303B (en) 2016-07-13 2017-07-13 Method for neural network and device for performing the method
US17/171,551 US12008461B2 (en) 2016-07-13 2021-02-09 Method for determining neuron events based on cluster activations and apparatus performing same method
US17/171,554 US20210166113A1 (en) 2016-07-13 2021-02-09 Method for neural network and apparatus performing same method
JP2021156767A JP7290256B2 (en) 2016-07-13 2021-09-27 Methods for Neural Networks
JP2021156768A JP7237122B2 (en) 2016-07-13 2021-09-27 Methods for Neural Networks

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201662361626P 2016-07-13 2016-07-13
US62/361,626 2016-07-13
KR20160113039 2016-09-02
KR1020160113039 2016-09-02
US201662429146P 2016-12-02 2016-12-02
US62/429,146 2016-12-02

Publications (2)

Publication Number Publication Date
KR20180007657A true KR20180007657A (en) 2018-01-23
KR102399548B1 KR102399548B1 (en) 2022-05-19

Family

ID=61071041

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170053543A KR102399548B1 (en) 2016-07-13 2017-04-26 Method for neural network and apparatus perform same method

Country Status (2)

Country Link
KR (1) KR102399548B1 (en)
CN (1) CN107622303B (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102019376B1 (en) * 2018-11-08 2019-09-06 주식회사 도아에스티 Intelligent steel products cutting system and method
KR20190124846A (en) 2018-04-27 2019-11-06 한국과학기술원 The design of GRU-based cell structure robust to missing value and noise of time-series data in recurrent neural network
KR20200002665A (en) * 2018-06-29 2020-01-08 성균관대학교산학협력단 Prognostics and health management systems for component of vehicle and methods thereof
KR102113876B1 (en) * 2019-12-13 2020-05-21 이큐엠텍(주) Method and apparatus for controlling injection mold manufacturing process
KR102188044B1 (en) * 2019-11-29 2020-12-07 한남대학교 산학협력단 Framework system for intelligent application development based on neuromorphic architecture
KR20210035304A (en) * 2018-08-27 2021-03-31 실리콘 스토리지 테크놀로지 인크 A configurable analog neural memory system for deep learning neural networks
KR20220064336A (en) * 2020-11-11 2022-05-18 딥큐브 엘티디. Cluster-Connected Neural Network

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108777157B (en) * 2018-05-08 2021-07-09 南京邮电大学 Self-adaptive method for predicting MLC flash memory voltage threshold based on deep neural network
US10853725B2 (en) * 2018-05-18 2020-12-01 Deepmind Technologies Limited Neural networks with relational memory
US20200019836A1 (en) * 2018-07-12 2020-01-16 International Business Machines Corporation Hierarchical parallelism in a network of distributed neural network cores
CN109102079B (en) * 2018-08-16 2022-01-11 深圳市德瑞信息技术有限公司 Intrusion detection algorithm based on value derivative GRU
WO2020260422A1 (en) * 2019-06-24 2020-12-30 Aictx Ag An event-driven spiking neutral network system for detection of physiological conditions
CN112989346B (en) * 2021-04-09 2021-08-10 鹏城实验室 Countermeasure sample generation method and device, terminal device and storage medium
CN116109489A (en) * 2021-11-09 2023-05-12 华为技术有限公司 Denoising method and related equipment
CN113974607B (en) * 2021-11-17 2024-04-26 杭州电子科技大学 Sleep snore detecting system based on pulse neural network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857177A (en) * 1994-03-08 1999-01-05 Alstroem; Preben Neural network
US20150058269A1 (en) * 2013-08-21 2015-02-26 Kunjumon Ittira Vadakkan Artificial neural circuit forming re-activatible functional link between the postsynaptic terminals of two synapses
US20150269481A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Differential encoding in neural networks
US20150372805A1 (en) * 2014-06-23 2015-12-24 Qualcomm Incorporated Asynchronous pulse modulation for threshold-based signal coding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2002681A1 (en) * 1989-11-10 1991-05-10 Patrick F. Castelaz Neural network signal processor
JPH05210649A (en) * 1992-01-24 1993-08-20 Mitsubishi Electric Corp Neural network expressing device
US9460387B2 (en) * 2011-09-21 2016-10-04 Qualcomm Technologies Inc. Apparatus and methods for implementing event-based updates in neuron networks
US9412064B2 (en) * 2011-08-17 2016-08-09 Qualcomm Technologies Inc. Event-based communication in spiking neuron networks communicating a neural activity payload with an efficacy update
US9146546B2 (en) * 2012-06-04 2015-09-29 Brain Corporation Systems and apparatus for implementing task-specific learning using spiking neurons
US20140074761A1 (en) * 2012-05-30 2014-03-13 Qualcomm Incorporated Dynamical event neuron and synapse models for learning spiking neural networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857177A (en) * 1994-03-08 1999-01-05 Alstroem; Preben Neural network
US20150058269A1 (en) * 2013-08-21 2015-02-26 Kunjumon Ittira Vadakkan Artificial neural circuit forming re-activatible functional link between the postsynaptic terminals of two synapses
US20150269481A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Differential encoding in neural networks
KR20160136381A (en) * 2014-03-24 2016-11-29 퀄컴 인코포레이티드 Differential encoding in neural networks
US20150372805A1 (en) * 2014-06-23 2015-12-24 Qualcomm Incorporated Asynchronous pulse modulation for threshold-based signal coding

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190124846A (en) 2018-04-27 2019-11-06 한국과학기술원 The design of GRU-based cell structure robust to missing value and noise of time-series data in recurrent neural network
KR20200002665A (en) * 2018-06-29 2020-01-08 성균관대학교산학협력단 Prognostics and health management systems for component of vehicle and methods thereof
KR20210035304A (en) * 2018-08-27 2021-03-31 실리콘 스토리지 테크놀로지 인크 A configurable analog neural memory system for deep learning neural networks
KR102019376B1 (en) * 2018-11-08 2019-09-06 주식회사 도아에스티 Intelligent steel products cutting system and method
KR102188044B1 (en) * 2019-11-29 2020-12-07 한남대학교 산학협력단 Framework system for intelligent application development based on neuromorphic architecture
KR102113876B1 (en) * 2019-12-13 2020-05-21 이큐엠텍(주) Method and apparatus for controlling injection mold manufacturing process
KR20220064336A (en) * 2020-11-11 2022-05-18 딥큐브 엘티디. Cluster-Connected Neural Network

Also Published As

Publication number Publication date
CN107622303A (en) 2018-01-23
CN107622303B (en) 2023-10-31
KR102399548B1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
US12008461B2 (en) Method for determining neuron events based on cluster activations and apparatus performing same method
KR102399548B1 (en) Method for neural network and apparatus perform same method
KR102589303B1 (en) Method and apparatus for generating fixed point type neural network
US20210089922A1 (en) Joint pruning and quantization scheme for deep neural networks
KR102483639B1 (en) Method for extending structure of neural network, method of dimension reduction, and apparatus thereof
KR20210029785A (en) Neural network acceleration and embedding compression system and method including activation sparse
US20190354865A1 (en) Variance propagation for quantization
US11861467B2 (en) Adaptive quantization for execution of machine learning models
Guo et al. A fully-pipelined expectation-maximization engine for Gaussian mixture models
KR20190098671A (en) High speed processing method of neural network and apparatus using thereof
KR20210076691A (en) Method and apparatus for verifying the learning of neural network between frameworks
Yuan et al. Trainable Spiking-YOLO for low-latency and high-performance object detection
US11429771B2 (en) Hardware-implemented argmax layer
US20230108177A1 (en) Hardware-Aware Progressive Training Of Machine Learning Models
Swaney et al. Efficient skin segmentation via neural networks: HP-ELM and BD-SOM
WO2022198437A1 (en) State change detection for resuming classification of sequential sensor data on embedded systems
KR20230071719A (en) Method and apparatus for train neural networks for image training
WO2023143707A1 (en) Training a neural network to perform a machine learning task
CN118140229A (en) Activating quantization by embedding group
Hua et al. Quantize YOLOv3-tiny For 5-bit Hardware
Chi et al. Research on medical image segmentation based on machine learning
KR20220071091A (en) Method and apparatus of optimizing spiking neural network
KR20230123309A (en) Pruning method and apparatus
WO2023249821A1 (en) Adapters for quantization
WO2023224723A1 (en) Fast eight-bit floating point (fp8) simulation with learnable parameters

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right