KR20200094354A - Method for generating spiking neural network based on burst spikes and inference apparatus based on spiking neural network - Google Patents

Method for generating spiking neural network based on burst spikes and inference apparatus based on spiking neural network Download PDF

Info

Publication number
KR20200094354A
KR20200094354A KR1020190011748A KR20190011748A KR20200094354A KR 20200094354 A KR20200094354 A KR 20200094354A KR 1020190011748 A KR1020190011748 A KR 1020190011748A KR 20190011748 A KR20190011748 A KR 20190011748A KR 20200094354 A KR20200094354 A KR 20200094354A
Authority
KR
South Korea
Prior art keywords
neuron
snn
burst
neural network
spiking neural
Prior art date
Application number
KR1020190011748A
Other languages
Korean (ko)
Other versions
KR102191346B1 (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 KR1020190011748A priority Critical patent/KR102191346B1/en
Publication of KR20200094354A publication Critical patent/KR20200094354A/en
Application granted granted Critical
Publication of KR102191346B1 publication Critical patent/KR102191346B1/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/08Learning methods
    • 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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Abstract

A spike-based spiking neural network generation method comprises the following steps of: mapping, by a computer device, the weights of a trained artificial neural network model to a spiking neural network (SNN); and optimizing, by the computer device, the SNN to which the weights are mapped. In the optimizing step, a threshold value for determining firing is adjusted according to the state of neurons of the SNN.

Description

버스트 스파이크 기반한 스파이킹 신경망 생성 방법 및 스파이킹 신경망 기반 추론 장치{METHOD FOR GENERATING SPIKING NEURAL NETWORK BASED ON BURST SPIKES AND INFERENCE APPARATUS BASED ON SPIKING NEURAL NETWORK}METHOD FOR GENERATING SPIKING NEURAL NETWORK BASED ON BURST SPIKES AND INFERENCE APPARATUS BASED ON SPIKING NEURAL NETWORK}

이하 설명하는 기술은 스파이킹 신경망 모델을 구축하는 방법에 관한 것이다.The technique described below relates to a method of building a spiking neural network model.

최근 AI(인공지능) 분야가 차세대 유망 기술로 주목받고 있다. 특히 딥 러닝(deep learning)이 이미지 인식 등의 분야에서 큰 성과를 거두며 많은 관심을 받고 있다. 대부분의 딥 러닝의 학습 및 추론 과정은 다수의 CPU (Central Processing Unit)와 GPU로 구성되어 컴퓨팅 자원과 전력이 풍부한 대규모 서버 컴퓨팅 환경에서 이뤄지게 된다. 많은 양의 컴퓨팅 자원과 전력 소모 요구량은 딥 러닝 모델을 모바일(mobile) 및 임베디드(embedded) 환경에 적용하는데 장애가 된다. 이러한 문제를 해결하기 위해 딥 러닝 모델을 경량화 하여 모바일 환경 적용하는 방법인 양자화(quantization)와 전정(pruning) 방법에 대해 여러 연구가 진행되고 있다.Recently, the AI (Artificial Intelligence) field is drawing attention as a next-generation promising technology. In particular, deep learning has gained a lot of attention as it has made great achievements in areas such as image recognition. Most of the deep learning learning and inference process consists of a number of CPUs (Central Processing Units) and GPUs, and is performed in a large-scale server computing environment with a lot of computing resources and power. The large amount of computing resources and power consumption demands are obstacles to applying the deep learning model to mobile and embedded environments. In order to solve this problem, various studies have been conducted on a method of quantizing and pruning, which is a method of applying a mobile environment by reducing a deep learning model.

나아가 SNN (spiking neural network)으로 구성되어 저 전력으로 동작할 수 있는 뉴로모픽 칩(neuromorphic chip)이 개발되었다. SNN은 뉴런(neuron)의 막 전위(membrane potential)가 문턱 전압(threshold voltage) 보다 높을 때만 발화(fire)하고, 발화된 스파이크(spike)를 통해 시냅스(synapse) 간의 정보를 전달하기 때문에 이벤트 기반(event-driven)으로 동작할 수 있어 다른 인공 신경망에 비해 저 전력 동작이 가능하다.Furthermore, a neuromorphic chip has been developed that consists of a SNN (spiking neural network) and can operate at low power. SNN fires only when the membrane potential of the neuron is higher than the threshold voltage, and it is an event-based because it transmits information between synapses through ignited spikes. event-driven), enabling low-power operation compared to other artificial neural networks.

미국공개특허 US 2015-0235124호United States Patent Publication US 2015-0235124

SNN은 아직 적용 애플리케이션이 많지 않다. 이는 SNN을 학습하기가 어렵기 때문이다. SNN에서는 뉴런과 시냅스가 미분이 안 되기 때문에 경사 강하법(gradient descent)과 오차 역전파 방법(error back-propagation)을 사용하여 SNN을 학습할 수 없다. SNN의 학습 방법으로 가장 널리 알려진 방법이 STDP (Spiking Timing Dependent Plasticity)이다. 그러나 STDP를 이용한 deep SNN에 대한 연구는 미진한 상태이다. 종래 DNN에 대한 학습 방법을 SNN에 적용한 연구가 있었다. SNN does not have many applications. This is because learning SNN is difficult. In SNN, neurons and synapses cannot be differentiated, so it is impossible to learn SNN using gradient descent and error back-propagation. The most widely known SNN learning method is STDP (Spiking Timing Dependent Plasticity). However, studies on deep SNN using STDP have not been conducted. There has been a study that applied a learning method for DNN to SNN.

이하 설명하는 기술은 DNN의 학습 결과를 SNN에 적용하여 SNN을 학습하는 방법을 제공하고자 한다. 이하 설명하는 기술은 DNN 학습 결과가 적용된 SNN을 최적화하는 방법을 제공하고자 한다. 이하 설명하는 기술은 버스트 스파이크 방식을 적용한 신경 코딩 기법을 제공하고자 한다.The technique described below is intended to provide a method of learning the SNN by applying the learning result of the DNN to the SNN. The technique described below is intended to provide a method for optimizing SNN to which DNN learning results are applied. The technique described below is intended to provide a neural coding technique to which a burst spike method is applied.

버스트 스파이크 기반한 스파이킹 신경망 생성 방법은 컴퓨터 장치가 학습된 인공신경망 모델의 가중치를 스파이킹 신경망(SNN)에 매핑하는 단계 및 상기 컴퓨터 장치가 상기 가중치가 매핑된 SNN을 최적화하는 단계를 포함한다. 상기 최적화하는 단계는 상기 SNN의 뉴런 상태에 따라 발화를 결정하는 임계값을 조정하한다.The burst spike-based spiking neural network generating method includes mapping a weight of an artificial neural network model trained by a computer device to a spiking neural network (SNN), and the computer device optimizing the SNN to which the weight is mapped. The optimizing step adjusts a threshold value for determining utterance according to the neuron state of the SNN.

스파이킹 신경망 기반 추론 장치는 입력 데이터를 입력받는 입력장치, 입력값에 따라 상태가 변경되는 뉴런에 대하여 기준값에 따라 상기 뉴런에 대한 임계값을 조절하고, 상기 기준값에 따라 상기 뉴런에 대한 가중치를 조절하는 신경 코딩을 사용하는 스파이킹 신경망(SNN)을 저장하는 저장장치 및 상기 입력 데이터를 상기 SNN에 입력하여 추론을 수행하는 연산장치를 포함한다.The spiking neural network-based reasoning apparatus adjusts a threshold value for the neuron according to a reference value for an input device receiving input data, and a neuron whose state changes according to an input value, and adjusts a weight for the neuron according to the reference value It includes a storage device for storing a spiking neural network (SNN) using neural coding, and a computing device for performing inference by inputting the input data to the SNN.

이하 설명하는 기술은 버스트 스파이크 기반의 신경 코딩을 적용한 SNN을 구축한다. 따라서 이하 설명하는 기술은 SNN의 장점을 유지하면서, 종래 기법에 비하여 빠르고 정확한 추론이 가능한 신경망 모델을 제공할 수 있다.The technique described below constructs an SNN to which a burst spike based neural coding is applied. Therefore, the technique described below can provide a neural network model capable of fast and accurate reasoning compared to the conventional technique while maintaining the advantages of SNN.

도 1은 DNN을 이용한 SNN 학습 방법에 대한 예이다.
도 2는 발화율 코딩에 대한 예이다.
도 3은 버스트 스파이킹에 대한 예이다.
도 4는 임계값에 따라 버스트 스파이킹이 발생하는 확률에 대한 예이다.
도 5는 버스트 스파이크를 사용하는 SNN 학습 과정에 대한 예이다.
도 6은 버스트 스파이크에 기반한 SNN 최적화 과정에 대한 예이다.
도 7은 SNN 모델에 기반한 추론 장치에 대한 예이다.
1 is an example of an SNN learning method using DNN.
Fig. 2 is an example of the coding rate.
3 is an example of burst spiking.
4 is an example of a probability that burst spiking occurs according to a threshold value.
5 is an example of an SNN learning process using burst spikes.
6 is an example of an SNN optimization process based on burst spikes.
7 is an example of an inference device based on the SNN model.

이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The technique described below may be applied to various changes and may have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the techniques described below to specific embodiments, and should be understood to include all changes, equivalents, or substitutes included in the spirit and scope of the techniques described below.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, B, etc. can be used to describe various components, but the components are not limited by the above terms, and only for distinguishing one component from other components Used only. For example, the first component may be referred to as a second component, and similarly, the second component may be referred to as a first component without departing from the scope of the technology described below. The term and/or includes a combination of a plurality of related described items or any one of a plurality of related described items.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In the terminology used herein, a singular expression should be understood to include a plurality of expressions unless the context clearly interprets otherwise, and terms such as “comprises” describe features, numbers, steps, actions, and components described. It is to be understood that it means that a part or a combination thereof is present, and does not exclude the presence or addition possibility of one or more other features or numbers, step operation components, parts or combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Prior to the detailed description of the drawings, it is intended to clarify that the division of components in this specification is only divided by the main functions of each component. That is, two or more components to be described below may be combined into one component, or one component may be divided into two or more for each subdivided function. In addition, each of the components to be described below may additionally perform some or all of the functions in charge of other components in addition to the main functions in charge thereof, and some of the main functions in charge of each of the components are different. Needless to say, it may also be carried out in a dedicated manner.

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in performing the method or the method of operation, each process constituting the method may occur differently from the specified order unless a specific order is explicitly stated in the context. That is, each process may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

이하 설명하는 기술은 인공신경망을 구축하는 기법에 관련된다. 이하 컴퓨터 장치가 인공신경망을 학습하고 구축한다고 설명한다. 컴퓨터 장치는 학습된 인공신경망을 이용하여 일정한 서비스를 제공할 수도 있다. 컴퓨터 장치는 일정한 프로그램 내지 소스코드에 따라 일정한 연산을 처리하는 장치를 의미한다. 컴퓨터 장치는 서버, 개인 PC, 스마트 기기 또는 영상처리 전용 칩셋 등을 포함한다. 응용 분야에 따라서 컴퓨터 장치는 영상 처리 장치일 수도 있다.The techniques described below relate to techniques for building artificial neural networks. It will be described below that the computer device learns and builds an artificial neural network. The computer device may provide a certain service using the learned artificial neural network. The computer device means a device that processes a certain operation according to a certain program or source code. Computer devices include servers, personal PCs, smart devices or chipsets dedicated to image processing. Depending on the application field, the computer device may be an image processing device.

먼저 SNN에 대하여 간략하게 설명한다.First, SNN will be briefly described.

SNN은 스파이크 트레인(spike train)을 생성하는 뉴런과 시냅스로 구성된다. 뉴런은 일련의 스파이크인 스파이크 트레인을 통하여 다른 뉴런으로 정보를 전달한다. 다양한 신경 모델 중에서 IF(Integrate-and-Fire) 모델이 가장 널리 사용된다. IF 신경 모델은 시냅스 후 전위(post-synaptic potential, PSP)를 막 전위(Vmem)로 통합한다. 시간 t에서 l번째 계층에 있는 j 번째 뉴런에서 통합된 PSP를 아래 수학식 1과 같이 표현할 수 있다. 이하 설명에서 동일한 파라미터 내지 기호는 수학식에서 동일한 의미로 사용한다.The SNN consists of neurons and synapses that generate spike trains. Neurons transmit information to other neurons through a series of spikes, the spike train. Among various neural models, the IF (Integrate-and-Fire) model is the most widely used. The IF neural model incorporates post-synaptic potential (PSP) into the membrane potential (V mem ). PSP integrated in the j-th neuron in the l-th layer at time t may be expressed as Equation 1 below. In the following description, the same parameter or symbol is used with the same meaning in the equation.

Figure pat00001
Figure pat00001

수학식 1에서

Figure pat00002
는 PSP의 합이다.
Figure pat00003
는 l-1번째 계층에 i번째 뉴런과 l번째 계층에 있는 j 번째 뉴런 사이의 시냅스 가중치이다.
Figure pat00004
는 l-1번째 계층에 i번째 뉴런에 있는 스파이크이다.
Figure pat00005
는 편향(bias)이다.In Equation 1
Figure pat00002
Is the sum of the PSP.
Figure pat00003
Is the synaptic weight between the i-th neuron in the l-1th layer and the j-th neuron in the l-th layer.
Figure pat00004
Is the spike in the i-th neuron in the l-1th layer.
Figure pat00005
Is bias.

막전위가 일정한 임계값

Figure pat00006
를 초과하면, 뉴런은 스파이크를 생성한다. 시간 t에서 l번째 계층에 있는 i 번째 뉴런의 스파이크 생성 과정은 아래의 수학식 2와 같이 표현될 수 있다.Threshold with constant membrane potential
Figure pat00006
When exceeded, the neurons produce spikes. The spike generation process of the i-th neuron in the l-th layer at time t may be expressed as Equation 2 below.

Figure pat00007
Figure pat00007

수학식 2에서

Figure pat00008
는 스파이크 출력을 표현하는 단위 계단 함수(unit step function)이다. z는 PSP의 합계이고, Vth는 임계값이다. In Equation 2
Figure pat00008
Is a unit step function representing the spike output. z is the sum of PSP and V th is the threshold.

IF 뉴런이 스파이크를 발화(fire)한다면, 막전위는 휴지 전위(resting potential, Vrest)로 설정되고, 스파이크가 발화되기 전이라만 이전 전위를 유지한다. 막전위의 동적 변화는 아래의 수학식 3과 같이 표현될 수 있다.If the IF neuron fires the spike, the membrane potential is set to the resting potential (V rest ) and maintains the previous potential only before the spike fires. The dynamic change of the membrane potential can be expressed as Equation 3 below.

Figure pat00009
Figure pat00009

SNN은 스파이크 트레인을 통하여 정보가 전송된다. 스파이크라는 이벤트라 발생할 때만 정보가 전송되므로, SNN은 에너지 효율적인 모델이 된다.SNN transmits information through a spike train. SNN is an energy efficient model because information is transmitted only when an event called a spike occurs.

SNNSNN 학습 learning

SNN을 위한 학습 방법에 대하여 설명한다. STDP 또는 오차 역전파 방법으로 학습된 SNN은 DNN과 같은 성능을 보이지 못한다. 최근 DNN을 이용한 SNN 학습 방법이 연구되었다. Describes the learning method for SNN. SNNs learned by STDP or error back propagation do not have the same performance as DNNs. Recently, SNN learning method using DNN has been studied.

도 1은 DNN을 이용한 SNN 학습 방법(100)에 대한 예이다. 컴퓨터 장치는 SNN에 대응하는 DNN을 구성하고, 먼저 DNN을 학습한다(110). SNN과 동일한(또는 유사한) 구조를 갖는 DNN이 오차 역전파 방법으로 학습된다. 컴퓨터 장치는 학습된 DNN의 가중치를 SNN에 적용한다(120). 컴퓨터 장치는 DNN의 각 계층 노드(뉴런)에 대한 가중치를 대응하는 SNN의 각 계층 노드에 적용한다. 즉 컴퓨터 장치가 DNN에서 대응하는 가중치를 SNN에 매핑(mapping)한다고 할 수 있다. 이 과정을 수행하면 학습된 SNN이 마련된다. 이후 컴퓨터 장치는 학습된 SNN을 이용하여 일정한 추론을 하고(130), 관련된 서비스를 제공할 수 있다.1 is an example of an SNN learning method 100 using DNN. The computer device constructs a DNN corresponding to the SNN, and first learns the DNN (110). DNN having the same (or similar) structure to the SNN is trained by the error back propagation method. The computer device applies the weight of the learned DNN to the SNN (120). The computer device applies a weight for each layer node (neuron) of the DNN to each layer node of the corresponding SNN. That is, it can be said that the computer device maps the corresponding weight in the DNN to the SNN. By performing this process, a learned SNN is prepared. Thereafter, the computer device may make certain inferences (130) using the learned SNN and provide related services.

SNN은 DNN과는 구조적으로 차이가 있다. 따라서 DNN의 학습 결과를 그대로 SNN에 적용하면 일정 부분 성능 감소가 따른다. 이를 해결하기 위한 다양한 연구가 있었다. 예를 들어, 가중치를 SNN에 맞게 조절 내지 정규화(normalization)하는 연구가 있었다. 가중치 조절을 위한 다양한 모델에 대한 연구가 있었다.SNN is structurally different from DNN. Therefore, if the learning result of the DNN is applied to the SNN as it is, some performance decreases. There have been various studies to solve this. For example, there have been studies in which weights are adjusted or normalized according to SNN. Various models for weight control have been studied.

최근 연구는 새로운 정규화 모델이 제안하였다. 새로운 정규화 모델은 막 전위의 초기화로 인한 성능 저하를 막기 위하여 감산 방식으로 초기화(reset-by-subtraction)를 구현하였다. 이 경우 휴지 전위(Vrest)는 아래의 수학식 4와 같이 표현될 수 있다.A recent study proposed a new normalization model. The new normalization model implements reset-by-subtraction in a subtractive way to prevent performance degradation due to the initialization of the membrane potential. In this case, the rest potential V rest may be expressed as Equation 4 below.

Figure pat00010
Figure pat00010

그리고 뉴런 간의 정보 손실을 줄이기 위하여 PSP의 합계를 아래의 수학식 5와 같이 표현할 수 있다. 수학식 5는 수학식 1과 같이 시간 t에서 l번째 계층에 있는 j 번째 뉴런에서의 통합된 PSP를 나타낸다.Also, in order to reduce information loss between neurons, the sum of PSPs can be expressed as Equation 5 below. Equation 5 represents the integrated PSP in the j-th neuron in the l-th layer at time t, as in Equation 1.

Figure pat00011
Figure pat00011

이와 같은 모델을 사용한 경우 MNIST 및 CIFAR-10 데이터 세트에 대해서는 DNN와 유사한 성능을 보였다. 이하 설명하는 기술도 이와 DNN의 학습 결과를 SNN에 적용하는 학습 방법을 사용한다고 전제한다.In the case of using such a model, the performance was similar to that of DNN for MNIST and CIFAR-10 data sets. The technique described below is also assumed to use a learning method that applies the learning result of DNN to SNN.

신경 코딩(neural coding)Neural coding

신경 코딩은 하나의 뉴런에서 다른 뉴런으로 정보를 전송하는 인코딩 구조(encoding scheme)이다. 다양한 유형의 신경 코딩이 연구되었다. Neural coding is an encoding scheme that transmits information from one neuron to another. Various types of neural coding have been studied.

대표적으로 발화율 코딩(rate coding)이 사용된다. 도 2는 발화율 코딩에 대한 예이다. 도 2에서 A 영역은 스파이크 트레인, B영역은 PSP(시냅스 후 전위) 및 C 영역은 ISIH(inter-spike interval histogram)을 나타낸다. ISIH는 스파이크 사이의 간격에 대한 히스토그램이다. 발화율 코딩은 스파이크 발화율에 기반한 코딩이다. 발화율 코딩은 일정 시간 동안 발생하는 스파이크 개수에 따라 결정된다. 따라서 발화율 코딩은 정보의 전송 용량 및 전송 속도라는 측면에서 비효율적이다. 예를 들어, 8비트 정보를 전송하기 위하여 256(=28) 번의 동작이 필요하다. 도 2를 살펴보면, 매번의 스파이크마다 같은 크기의 PSP가 유도되는 것을 알 수 있다. 결국 deep SNN에 발화율 코딩을 적용하면 많은 대기 시간(latency)과 높은 에너지 소비를 가져온다.Typically, rate coding is used. Fig. 2 is an example of the coding rate. In FIG. 2, region A represents a spike train, region B represents a PSP (post-synaptic potential), and region C represents an inter-spike interval histogram (ISIH). ISIH is a histogram of the spacing between spikes. Flash rate coding is based on spike firing rate. Flash rate coding is determined by the number of spikes occurring over a period of time. Therefore, coding of the speech rate is inefficient in terms of transmission capacity and transmission speed of information. For example, 256 (=2 8 ) operations are required to transmit 8-bit information. Referring to FIG. 2, it can be seen that the PSP having the same size is induced for each spike. Eventually, applying the ignition rate coding to the deep SNN brings a lot of latency and high energy consumption.

도 3은 버스트 스파이킹(burst spiking)에 대한 예이다. 버스트 스파이킹은 매우 다양한 스파이크 패턴을 갖는다. 스파이크 패턴은 짧은 ISI(inter-spike interval)를 갖는 스파이크 그룹을 포함할 수 있다. 버스트 스파이킹은 일반적인 스파이크 트레인보다 많은 정보를 담을 수 있다. 예컨대, 도 3의 C에 도시한 바와 같이 버스트 스파이킹은 정보 전달 효율을 높이는 막전위를 유도할 수 있다. 이와 같은 버스트 스파이킹을 deep SNN에 적용할 수 있다면 추론(inference) 시간을 줄여 성능 향상을 가져올 수 있을 것이다.3 is an example of burst spiking. Burst spiking has a wide variety of spike patterns. The spike pattern may include spike groups having a short inter-spike interval (ISI). Burst spiking can carry more information than a typical spike train. For example, as shown in FIG. 3C, burst spiking may induce a membrane potential that increases information transmission efficiency. If such burst spiking can be applied to a deep SNN, it will be possible to reduce inference time and improve performance.

이하 설명하는 기술은 버스트 스파이크를 deep SNN에 적용하여 효율적이고 빠른 추론이 가능한 모델을 제공한다. 이는 종래 생물학 분야에서 정보 전달에 효율적이라고 알려진 버스트 스파이크를 인공지능 모델에 적용하는 것이다.The technique described below applies a burst spike to a deep SNN to provide a model capable of efficient and fast reasoning. This is to apply the burst spike, which is known to be efficient for information transmission in the conventional biological field, to artificial intelligence models.

버스트 스파이킹을 함수적으로 구현하기 위하여 아래의 수학식 6과 같은 버스트 함수(burst function)을 정의할 수 있다.In order to functionally implement burst spiking, a burst function as in Equation 6 below may be defined.

Figure pat00012
Figure pat00012

Figure pat00013
는 시간 t에서 l번째 계층에 있는 뉴런 i에 대한 버스트 함수이다. β는 버스트 상수(burst constant)이다.
Figure pat00014
는 수학식 2에서 설명한 바와 같이 시간 t-1에서 생성된 스파이크를 의미한다.
Figure pat00013
Is the burst function for neuron i in the l-th layer at time t. β is a burst constant.
Figure pat00014
Is a spike generated at time t-1 as described in equation (2).

효율적인 버스트 스파이크를 얻기 위하여 전술한 수학식 5에 버스트 함수를 적용하면 임계값이 아래의 수학식 7과 같이 표현될 수 있다.To obtain an efficient burst spike, when a burst function is applied to Equation 5 described above, a threshold may be expressed as Equation 7 below.

Figure pat00015
Figure pat00015

Figure pat00016
는 시간 t에서 l번째 계층에 i번째 뉴런에 대한 임계값이다.
Figure pat00017
는 뉴런에 설정된 초기 임계값이다.
Figure pat00016
Is the threshold for the i-th neuron in the l-th layer at time t.
Figure pat00017
Is the initial threshold set in the neuron.

수학식 5와 수학식 7로부터 아래의 수학식 8과 같이 가중치를 결정할 수 있다. 아래 수학식 8은 시간 t에서 l-1번째 계층에 i번째 뉴런과 l번째 계층에 있는 j 번째 뉴런 사이의 시냅스 가중치이다.From Equation 5 and Equation 7, a weight may be determined as shown in Equation 8 below. Equation 8 below is a synaptic weight between the i th neuron in the l-1 th layer and the j th neuron in the l th layer at time t.

Figure pat00018
Figure pat00018

수학식 8의 가중치는 버스트 스파이크에 기반한 시냅스 강화 작용(synaptic potentiation)이라고 해석될 수 있다. 이를 통해 SNN은 효율적인 정보 전달이 가능하다. 수학식 8에서

Figure pat00019
는 각 뉴런에 초기 설정된 가중치를 의미한다. 즉, DNN의 가중치가 매핑되어 설정된 값이다.The weight of Equation 8 can be interpreted as a synaptic potentiation based on burst spikes. Through this, SNN can efficiently transmit information. In Equation 8
Figure pat00019
Denotes a weight initially set for each neuron. That is, the weight of the DNN is mapped and set.

도 4는 임계값에 따라 버스트 스파이킹이 발생하는 확률에 대한 예이다. 도 4는 서로 다른 임계값(Vth)에 따라 발생하는 버스트 스파이크의 개수 및 그 길이(burst length)를 나타낸다. 임계값이 작아지면 버스트 스파이크가 증가하고, 긴 길이의 버스트가 자주 나타나는 것을 알 수 있다.4 is an example of a probability that burst spiking occurs according to a threshold value. FIG. 4 shows the number of burst spikes generated according to different thresholds V th and the length of the burst. It can be seen that the burst spike increases as the threshold decreases, and long bursts frequently appear.

이와 같은 버스트 스파이크를 이용한 신경 코딩을 버스트 코딩(burst coding)이라고 명명한다. 버스트 코딩은 뉴런의 상태에 따라 동적으로 시냅스의 크기를 변화시킬 수 있다. 전달해야 하는 정보의 양은 누적된 막전위 및 연속된 스파이크의 수로 판단할 수 있다. 스파이크가 연속적으로 발생하는 경우 버스트 함수를 통해 시냅스를 강화하고, 스파이크가 발생하지 않는 경우 시냅스 세기를 원상태로 만드는 방법을 사용한다.Neural coding using such a burst spike is called burst coding. Burst coding can dynamically change the size of a synapse according to the state of a neuron. The amount of information to be transmitted can be determined by the cumulative film potential and the number of consecutive spikes. When the spikes occur continuously, the synapse is strengthened through the burst function, and when the spikes do not occur, the synaptic intensity is restored.

도 5는 버스트 스파이크를 사용하는 SNN 학습 과정(200)에 대한 예이다. 컴퓨터 장치는 SNN에 대응하는 DNN을 구성하고, 먼저 DNN을 학습한다(210). SNN과 동일한(또는 유사한) 구조를 갖는 DNN이 오차 역전파 방법으로 학습된다. 컴퓨터 장치는 학습된 DNN의 가중치를 SNN에 적용한다(220). 컴퓨터 장치는 DNN의 각 계층 노드(뉴런)에 대한 가중치를 대응하는 SNN의 각 계층 노드에 매핑한다. 컴퓨터 장치는 가중치가 설정된 SNN에 버스트 스파이크를 적용하여 SNN 구조를 최적화할 수 있다(230). 이후 컴퓨터 장치는 최적화된 SNN을 이용하여 일정한 추론을 할 수 있다(240). 버스트 스파이크를 이용한 구조 최적화(230)는 특정 입력 데이터에 대한 추론 과정에서 수행될 수도 있다.5 is an example of an SNN learning process 200 using burst spikes. The computer device constructs a DNN corresponding to the SNN, and first learns the DNN (210). DNN having the same (or similar) structure to the SNN is trained by the error back propagation method. The computer device applies the weight of the learned DNN to the SNN (220). The computer device maps the weights for each layer node (neuron) of the DNN to each layer node of the corresponding SNN. The computer device may optimize the SNN structure by applying a burst spike to the weighted SNN (230). Thereafter, the computer device may make certain inferences using the optimized SNN (240). Structural optimization 230 using burst spikes may be performed in the inference process for specific input data.

도 6은 버스트 스파이크에 기반한 SNN 최적화 과정(300)에 대한 예이다. 도 6은 도 5에서의 230 단계에 해당한다. 도 6은 기본적으로 SNN이 학습된 DNN의 가중치로 설정된 상태를 가정한다. 예컨대, SNN이 영상 분류를 목적으로 하다면, 최적화 과정을 위한 훈련용 영상을 사용할 수 있다. 컴퓨터 장치는 훈련용 영상을 SNN에 입력하고, 각 뉴련의 상태에 따라 해당 뉴런의 임계값 및 가중치를 조정하면서 최종 결과가 정확한지 판단한다. 정확도는 사전에 구축한 DNN의 추론 결과와 SNN의 결과를 비교하여 판단할 수도 있다. SNN은 일반적인 DNN과 같이 피드 포워드 방식으로 동작한다고 가정한다. 6 is an example of an SNN optimization process 300 based on burst spikes. 6 corresponds to step 230 in FIG. 5. 6 basically assumes a state in which the SNN is set as the weight of the learned DNN. For example, if the SNN is intended for image classification, a training image for the optimization process can be used. The computer device inputs a training image to the SNN, and determines whether the final result is correct while adjusting the threshold and weight of the corresponding neuron according to the state of each New Year. The accuracy can also be determined by comparing the DNN's preliminary inference result with the SNN's result. It is assumed that the SNN operates in a feed forward manner like a general DNN.

컴퓨터 장치는 먼저 최적화를 위하여 각 계층에 대한 인덱스를 부여할 수 있다. 컴퓨터 장치는 계층 인덱스에 대한 초기 설정을 한다(310). 컴퓨터 장치는 훈련용 영상을 SNN에 입력하고, 이후 모델의 구조에 따라 SNN 각 계층은 이전 계층의 노드(뉴런)로부터 일정한 입력값(feed forward input)을 수신한다(320). 입력값을 수신한 뉴런은 상태가 변경될 수 있다(상태 업데이트). 전술한 바와 같이 뉴런은 시냅스 후 전위(PSP)를 입력받아 이를 통합한 값이 일정한 임계값을 초과하면 발화하게 된다. 따라서 컴퓨터 장치는 현재 입력값 수신에 따라 뉴런이 상태 변화 여부(발화 진행 여부)를 판단한다(330). The computer device may first assign an index to each layer for optimization. The computer device initially sets 310 the hierarchical index. The computer device inputs the training image to the SNN, and each layer of the SNN receives a feed forward input from a node (neuron) of the previous layer according to the structure of the model (320). The neuron receiving the input value may change its state (status update). As described above, the neuron receives a potential (PSP) after synapse and fires when the combined value exceeds a certain threshold. Accordingly, the computer device determines whether the neuron changes state (whether or not speech is in progress) according to the current input value (330).

현재의 뉴런이 발화해야 하는 상태라면(330의 YES), 컴퓨터 장치는 스파이크를 생성하고 뉴런 상태를 초기화한다(341). 뉴런 상태 초기화는 뉴런의 막전위 초기화를 의미한다. 뉴런의 상태에 따라 컴퓨터 장치는 임계값을 업데이트한다(342). 예컨대, 컴퓨터 장치는 현재 스파이크가 발생한 뉴런에 대한 임계값을 기준값만큼 줄일 수 있다. 임계값을 줄이는 정도(기준값)는 SNN의 적용 애플리케이션 종류 내지 SNN이 구축된 시스템의 성능에 따라 달라질 수 있다. 기준값은 전술한 수학식 6에서의 버스트 함수에 따라 결정될 수 있다. 관련하여 컴퓨터 장치는 현재 뉴런에 대한 시냅스 연결 강화를 수행할 수 있다(343). 임계값 변경(342) 및 시냅스 연결 강화(343)는 전술한 버스트 함수를 통해 구현될 수 있다. 따라서 현재 발화된 뉴런은 임계값이 일정하게 조절(일반적으로 임계값 감소)되고, 또한 가중치도 변경된다. 구체적인 과정은 전술한 수학식 6 내지 8에 따른다.If the current neuron is in a state in which it is required to fire (YES in 330), the computer device generates a spike and initializes the neuron state (341). Neuronal state initialization means the neuron's membrane potential initialization. The computer device updates the threshold according to the state of the neuron (342). For example, the computer device may reduce the threshold value for the current neuron having a spike by a reference value. The degree of reducing the threshold (reference value) may vary depending on the application type of the SNN or the performance of the system on which the SNN is built. The reference value may be determined according to the burst function in Equation 6 above. In connection, the computer device may perform a synaptic connection enhancement to a current neuron (343). Threshold change 342 and synaptic connection enhancement 343 may be implemented through the burst function described above. Therefore, the current ignited neuron has a constant threshold (usually a reduced threshold) and a weight change. The specific process follows Equations 6 to 8 described above.

컴퓨터 장치는 현재 뉴런이 발화되는 상태가 아니라면 시냅스 연결을 초기화한다(350). 이 과정은 스파이크가 발생하지 않는 경우 초기 학습 과정에서 설정된 값(DNN의 가중치가 매핑된 값)으로 가중치를 환원하는 것입니다. 따라서 버스트 함수에 따라 임계값이 변경되고 스파이크가 많이 발생하게 되는 시냅스 강화는 일정한 기간(단기)에만 활성화 된다고 할 수 있다.The computer device initiates a synaptic connection (350) if the current neuron is not in a firing state. This process is to reduce the weight to the value set in the initial learning process (the weight of the DNN is mapped) when no spike occurs. Therefore, it can be said that the synaptic enhancement in which the threshold value is changed and spikes are generated according to the burst function is activated only for a certain period (short term).

컴퓨터 장치는 현재 계층이 마지막 계층인지 여부를 판단한다(360). 마지막 계층이 아니라면(360의 NO), 계층 인덱스를 증가하여 다음 계층으로 이동한다(370). 다음 계층에 대해서도 각 뉴런에 대하여 발화 여부를 확인하고, 경우에 따라 시냅스 연결을 강화하여 가중치를 조정하는 작업을 수행한다.The computer device determines whether the current layer is the last layer (360). If it is not the last layer (NO in 360), the layer index is increased to move to the next layer (370). The next layer is also checked for ignition of each neuron, and if necessary, strengthens synaptic connections to adjust weights.

현재 계층이 마지막 계층이라면(360의 YES), 컴퓨터 장치는 SNN의 추론 결과의 정확도가 기준값보다 큰지 판단한다(380). 컴퓨터 장치는 학습된 DNN의 추론 결과와 비교하여 정확도가 기준값보다 큰지 판단할 수 있다. 예컨대, 컴퓨터 장치는 학습된 DNN의 추론 결과와 SNN의 추론 결과가 동일하다면 정확도가 기준값보다 크다라고 판단할 수 있다. 여기서 기준값은 SNN의 최적화를 위한 목표값이라고 할 수 있다. 만약 정확도가 기준값 이하라면 컴퓨터 장치는 전술한 최적화 과정을 반복할 수 있다(380의 NO). 도 6에 도시하지 않았지만, 컴퓨터 장치는 최적화 과정을 무한 반복하지 않기 위하여 일정한 횟수의 최적화 과정을 반복하였다면, 최적화 과정을 종료할 수도 있다. 이후 컴퓨터 장치는 최적화된 SNN를 이용하여 일정한 추론 및 서비스를 제공할 수 있다.If the current layer is the last layer (YES in 360), the computer device determines whether the accuracy of the inference result of the SNN is greater than the reference value (380). The computer device can determine whether the accuracy is greater than the reference value by comparing the inferred result of the learned DNN. For example, if the inference result of the learned DNN and the inference result of the SNN are the same, the computer device may determine that the accuracy is greater than the reference value. Here, the reference value can be said to be a target value for optimization of the SNN. If the accuracy is less than the reference value, the computer device may repeat the above-described optimization process (NO in 380). Although not illustrated in FIG. 6, the computer device may end the optimization process if the optimization process is repeated a predetermined number of times in order not to repeat the optimization process indefinitely. Thereafter, the computer device may provide a certain reasoning and service using the optimized SNN.

뉴런은 그 역할 및 뇌에서의 위치에 따라 서로 다른 신경 코딩을 사용한다고 알려져 있다. 이러한 모델에 기반하여 단일 신경 코딩을 사용하지 않고, SNN의 계층의 특징에 따라 서로 다른 코딩 전략을 사용할 수도 있을 것이다.Neurons are known to use different neurocoding depending on their role and location in the brain. Based on these models, a single coding method may not be used, and different coding strategies may be used according to the characteristics of the SNN layer.

SNN을 입력 계층(input layer)과 은닉 계층(hidder layer)으로 구분할 수 있다. 영상 분류를 예로 설명하면, 입력 계층은 입력 영상의 연속적인 값을 이산된 스파이크로 변환한다. 영상 분류에서 입력 값은 한정적이고 정적인 값을 갖는다. 예를 들어, 입력 계층은 위상 코딩(phase coding) 등이 적절할 수 있다. 위상 코딩은 동적 코딩(temporal coding)의 일종이다. 한편 버스트 코딩은 동적으로 전송 속도를 결정할 수 있다. 따라서 버스트 코딩은 입력 계층보다는 은닉 계층에 적절할 수 있다. SNN은 그 용도에 따라 서로 다른 종류의 신경 코딩 기법을 사용하는 것이 보다 높은 효율을 가져올 수 있다. 복수의 신경 코딩 기법을 사용한다는 의미에서 이를 하이브리드(hybrid) 신경 코딩이라고 할 수 있다.The SNN can be divided into an input layer and a hidden layer. Taking the image classification as an example, the input layer converts the continuous values of the input image into discrete spikes. In image classification, the input value has a limited and static value. For example, phase coding may be appropriate for the input layer. Phase coding is a type of dynamic coding. Meanwhile, burst coding can dynamically determine a transmission rate. Therefore, burst coding may be more appropriate for the hidden layer than the input layer. According to the use of SNN, different types of neural coding techniques can bring higher efficiency. In the sense of using multiple neural coding techniques, this can be referred to as hybrid neurocoding.

도 7은 SNN 모델에 기반한 추론 장치(400)에 대한 예이다. SNN 기반 추론 장치(400)는 도 6에서 설명한 SNN 최적화 과정을 수행하는 장치일 수 있다. 또 SNN 기반 추론 장치는 구축된 SNN을 이용하여 일정한 추론 서비스를 제공하는 장치일 수 있다. 예컨대, SNN 기반 추론 장치(400)는 영상에 대한 분류를 수행하는 장치일 수 있다. SNN 기반 추론 장치(400)는 물리적으로 다양한 형태로 구현될 수 있다. 예컨대, SNN 기반 추론 장치(400)는 스마트 기기, PC, IoT 디바이스, 네트워크의 서버, 영상 처리 전용 칩셋 등의 형태를 가질 수 있다.7 is an example of an inference device 400 based on the SNN model. The SNN-based reasoning device 400 may be a device that performs the SNN optimization process described in FIG. 6. In addition, the SNN-based reasoning device may be a device that provides a certain reasoning service using the constructed SNN. For example, the SNN-based reasoning device 400 may be a device that performs classification on an image. The SNN-based reasoning device 400 may be physically implemented in various forms. For example, the SNN-based reasoning apparatus 400 may take the form of a smart device, a PC, an IoT device, a server of a network, a chipset dedicated to image processing, and the like.

SNN 기반 추론 장치(400)는 저장장치(410), 메모리(420), 연산장치(430), 인터페이스 장치(440) 및 통신장치(450)를 포함한다. The SNN-based reasoning device 400 includes a storage device 410, a memory 420, a computing device 430, an interface device 440, and a communication device 450.

저장장치(410)는 SNN 학습 내지 최적화 을 위한 프로그램 내지 소스코드를 저장한다. 저장장치(410)는 학습을 위한 훈련용 영상을 저장할 수 있다. 저장장치(410)는 학습 대상인 초기 SNN 모델 및 DNN 모델을 저장할 수 있다. 저장장치(410)는 학습된 DNN 모델 및 SNN 모델을 저장할 수 있다. 또 저장장치(410)는 학습된 SNN을 이용한 추론 방법 내지 서비스를 위한 프로그램 내지 소스코드를 저장할 수 있다.The storage device 410 stores programs or source codes for SNN learning or optimization. The storage device 410 may store a training image for learning. The storage device 410 may store an initial SNN model and a DNN model, which are learning targets. The storage device 410 may store the trained DNN model and SNN model. Also, the storage device 410 may store a program or source code for an inference method or service using the learned SNN.

메모리(420)는 SNN 기반 추론 장치(400)가 SNN을 학습 내지 최적화 과정에서 생성되는 데이터, 파라미터, 영상 정보 등을 저장할 수 있다. 또 메모리(420)는 SNN을 이용한 추론 과정에서 생성되는 데이터 등을 저장할 수 있다.The memory 420 may store data, parameters, image information, etc. generated by the SNN-based reasoning device 400 in learning or optimizing the SNN. Also, the memory 420 may store data generated in the inference process using the SNN.

인터페이스 장치(440)는 외부로부터 일정한 명령 및 데이터를 입력받는 장치이다. 인터페이스 장치(440)는 물리적으로 연결된 입력 장치 또는 외부 저장 장치로부터 훈련용 영상, 입력 영상 등을 입력받을 수 있다. 인터페이스 장치(440)는 DNN 모델, SNN 모델 및 영상 처리를 위한 각종 프로그램 내지 명령을 입력받을 수 있다. The interface device 440 is a device that receives certain commands and data from the outside. The interface device 440 may receive a training image or an input image from a physically connected input device or an external storage device. The interface device 440 may receive DNN models, SNN models, and various programs or commands for image processing.

통신 장치(450)는 유선 또는 무선 네트워크를 통해 일정한 정보를 수신하고 전송하는 구성을 의미한다. 통신 장치(450)는 외부 객체로부터 훈련용 영상 또는 입력 영상을 수신할 수 있다. 통신 장치(450)는 SNN 모델, DNN 모델, SNN 학습용 프로그램, SNN 기반 응용 서비스 제공 프로그램 등을 수신할 수도 있다. 나아가 통신 장치(450)는 학습된 SNN 이용한 추론 결과를 외부 객체로 송신할 수 있다.The communication device 450 refers to a configuration that receives and transmits certain information through a wired or wireless network. The communication device 450 may receive a training image or an input image from an external object. The communication device 450 may receive an SNN model, a DNN model, an SNN learning program, and an SNN-based application service providing program. Furthermore, the communication device 450 may transmit the inference result using the learned SNN to an external object.

통신 장치(450) 내지 인터페이스 장치(440)는 외부로부터 일정한 데이터 내지 명령을 전달받는 장치이다. 통신 장치(450) 내지 인터페이스 장치(440)를 입력장치라고 명명할 수 있다.The communication device 450 to the interface device 440 is a device that receives certain data or commands from the outside. The communication device 450 to the interface device 440 may be referred to as an input device.

연산 장치(430)는 저장장치(410)에 저장된 프로그램을 이용하여 SNN을 학습할 수 있다. 또 연산 장치(430)는 저장장치(410)에 저장된 프로그램을 이용하여 SNN을 최적화할 수 있다. 연산 장치(430)는 최종적으로 마련된 SNN을 이용하여 일정한 추론을 할 수 있다. 연산 장치(430)는 데이터를 처리하고, 일정한 연산을 처리하는 프로세서, AP, 프로그램이 임베디드된 칩과 같은 장치일 수 있다.The computing device 430 may learn the SNN using a program stored in the storage device 410. Also, the computing device 430 may optimize the SNN using a program stored in the storage device 410. The computing device 430 may make certain inferences using the SNN finally provided. The computing device 430 may be a device such as a processor embedded in a processor, an AP, or a program that processes data and processes a certain operation.

또한, 상술한 바와 같은 SNN 학습 방법, 학습된 SNN 생성 방법 및 학습된 SNN의 동작 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램(또는 어플리케이션)으로 구현될 수 있다. 상기 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.Further, the SNN learning method, the learned SNN generation method, and the learned SNN operation method as described above may be implemented as a program (or application) including an executable algorithm that can be executed on a computer. The program may be stored and provided in a non-transitory computer readable medium.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.The non-transitory readable medium means a medium that stores data semi-permanently and that can be read by a device, rather than a medium that stores data for a short time, such as registers, caches, and memory. Specifically, the various applications or programs described above may be stored and provided in a non-transitory readable medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.The drawings attached to the present embodiment and the present specification merely show a part of the technical spirit included in the above-described technology, and are easily understood by those skilled in the art within the scope of the technical spirit included in the above-described technical specification and drawings. It will be apparent that all of the examples and specific examples that can be inferred are included in the scope of the above-described technology.

400 : SNN 기반 추론 장치
410 : 저장장치
420 : 메모리
430 : 연산장치
440 : 인터페이스 장치
450 : 통신장치
400: SNN-based reasoning device
410: storage device
420: memory
430: computing device
440: interface device
450: communication device

Claims (13)

컴퓨터 장치가 학습된 인공신경망 모델의 가중치를 스파이킹 신경망(SNN)에 매핑하는 단계; 및
상기 컴퓨터 장치가 상기 가중치가 매핑된 SNN을 최적화하는 단계를 포함하되,
상기 최적화하는 단계는 상기 SNN의 뉴런 상태에 따라 발화를 결정하는 임계값을 조정하는 버스트 스파이크 기반한 스파이킹 신경망 생성 방법.
Mapping, by the computer device, the weight of the trained artificial neural network model to a spiking neural network (SNN); And
The computer device comprises optimizing the SNN to which the weight is mapped,
The step of optimizing is a burst spike-based spiking neural network generating method that adjusts a threshold for determining utterance according to the neuron state of the SNN.
제1항에 있어서,
상기 최적화하는 단계는
최적화를 위한 입력 데이터를 상기 SNN에 입력하는 단계;
상기 SNN 각 뉴런에 대하여 입력값을 수신한 뉴런이 발화할 상태인 타깃 뉴런인 경우 스파이크를 생성하는 단계;
상기 타깃 뉴런에 대한 임계값을 조절하는 단계; 및
상기 타깃 뉴런에 대하여 상기 가중치를 조절하는 단계를 포함하는 버스트 스파이크 기반한 스파이킹 신경망 생성 방법.
According to claim 1,
The step of optimizing
Inputting input data for optimization into the SNN;
Generating a spike when a neuron receiving an input value for each neuron of the SNN is a target neuron in a state to ignite;
Adjusting a threshold value for the target neuron; And
Burst spike-based spiking neural network generating method comprising the step of adjusting the weight for the target neuron.
제1항에 있어서,
상기 SNN은 정보 전달을 위한 버스트 코딩을 사용하되, 상기 버스트 코딩은 아래의 수식으로 표현되는 버스트 함수에 따른 버스트 스파이킹을 수행하는 버스트 스파이크 기반한 스파이킹 신경망 생성 방법.
Figure pat00020

(
Figure pat00021
는 시간 t에서 l번째 계층에 있는 뉴런에 대한 버스트 함수, β는 버스트를 위한 상수이고,
Figure pat00022
는 시간 t-1에서 생성된 스파이크임)
According to claim 1,
The SNN uses burst coding for information transmission, and the burst coding is a burst spike-based spiking neural network generating method that performs burst spiking according to a burst function represented by the following equation.
Figure pat00020

(
Figure pat00021
Is a burst function for neurons in the l-th layer at time t, β is a constant for bursts,
Figure pat00022
Is the spike produced at time t-1)
제3항에 있어서,
상기 버스트 함수가 적용된 뉴런에 대한 임계값은 아래 수학식으로 결정되는 버스트 스파이크 기반한 스파이킹 신경망 생성 방법.
Figure pat00023

(
Figure pat00024
는 시간 t에서 l번째 계층에 i번째 뉴런에 대한 임계값,
Figure pat00025
는 해당 뉴런에 이전에 설정된 임계값임)
According to claim 3,
A burst spike-based spiking neural network generating method in which the threshold value for a neuron to which the burst function is applied is determined by the following equation.
Figure pat00023

(
Figure pat00024
Is the threshold for the i-th neuron in the l-th layer at time t,
Figure pat00025
Is the threshold previously set for the neuron)
제3항에 있어서,
상기 버스트 함수가 적용된 뉴런에 대한 가중치는 아래 수학식으로 결정되는 버스트 스파이크 기반한 스파이킹 신경망 생성 방법.
Figure pat00026

(
Figure pat00027
는 시간 t에서 l-1번째 계층에 i번째 뉴런과 l번째 계층에 있는 j 번째 뉴런 사이의 시냅스 가중치,
Figure pat00028
는 해당 뉴런에 대하여 이전에 설정된 가중치)
According to claim 3,
A method for generating a spiking neural network based on burst spikes, wherein the weight of the neuron to which the burst function is applied is determined by the following equation.
Figure pat00026

(
Figure pat00027
Is the synaptic weight between the i-th neuron in the l-1th layer and the j-th neuron in the l-th layer at time t,
Figure pat00028
Is the weight previously set for the neuron)
제1항에 있어서,
상기 SNN은 정보 전달을 위한 신경 코딩을 사용하되, 상기 신경 코딩은 특정 뉴런이 입력값에 따라 발화하게 되는 경우 기준값에 따라 상기 특정 뉴런에 대한 임계값을 기준값만큼 낮추고, 상기 기준값에 따라 상기 특정 뉴런에 대한 가중치를 조절하는 버스트 스파이크 기반한 스파이킹 신경망 생성 방법.
According to claim 1,
The SNN uses neural coding for information transmission, but the neural coding lowers a threshold value for the specific neuron by a reference value according to a reference value when a specific neuron utters according to an input value, and the specific neuron according to the reference value A method for generating a spiking neural network based on a burst spike that adjusts the weight for the.
제1항에 있어서,
상기 컴퓨터 장치는 상기 SNN의 정확도가 기준값 이상이 될 때까지 상기 최적화 과정을 반복하는 버스트 스파이크 기반한 스파이킹 신경망 생성 방법.
According to claim 1,
The computer device is a burst spike-based spiking neural network generating method that repeats the optimization process until the accuracy of the SNN exceeds a reference value.
입력 데이터를 입력받는 입력장치;
입력값에 따라 상태가 변경되는 뉴런에 대하여 기준값에 따라 상기 뉴런에 대한 임계값을 조절하고, 상기 기준값에 따라 상기 뉴런에 대한 가중치를 조절하는 신경 코딩을 사용하는 스파이킹 신경망(SNN)을 저장하는 저장장치; 및
상기 입력 데이터를 상기 SNN에 입력하여 추론을 수행하는 연산장치를 포함하는 스파이킹 신경망 기반 추론 장치.
An input device that receives input data;
A spiking neural network (SNN) using neural coding for adjusting a threshold value for the neuron according to a reference value and a weight for the neuron according to the reference value for a neuron whose state changes according to an input value is stored. Storage device; And
Spiking neural network-based reasoning apparatus including a computing device that performs inference by inputting the input data to the SNN.
제8항에 있어서,
상기 SNN은 학습 데이터로 학습된 DNN의 가중치를 적용한 초기 SNN에 대하여 최적화를 위한 훈련 데이터를 이용하여 상기 초기 SNN의 가중치가 최적화되는 과정을 거쳐 마련되는 스파이킹 신경망 기반 추론 장치.
The method of claim 8,
The SNN is a spiking neural network based reasoning apparatus provided through a process in which the weight of the initial SNN is optimized by using training data for optimization of the initial SNN to which the weight of the DNN learned as the training data is applied.
제8항에 있어서,
상기 SNN은 정보 전달을 위한 버스트 코딩을 사용하되, 상기 버스트 코딩은 아래의 수식으로 표현되는 버스트 함수에 따른 버스트 스파이킹을 수행하는 스파이킹 신경망 기반 추론 장치.
Figure pat00029

(
Figure pat00030
는 시간 t에서 l번째 계층에 있는 뉴런에 대한 버스트 함수, β는 버스트를 위한 상수이고,
Figure pat00031
는 시간 t-1에서 생성된 스파이크임)
The method of claim 8,
The SNN uses burst coding for information transmission, wherein the burst coding is a spiking neural network based reasoning apparatus performing burst spiking according to a burst function represented by the following equation.
Figure pat00029

(
Figure pat00030
Is a burst function for neurons in the l-th layer at time t, β is a constant for bursts,
Figure pat00031
Is the spike produced at time t-1)
제10항에 있어서,
상기 버스트 함수가 적용된 뉴런에 대한 임계값은 아래 수학식으로 결정되는 스파이킹 신경망 기반 추론 장치.
Figure pat00032

(
Figure pat00033
는 시간 t에서 l번째 계층에 i번째 뉴런에 대한 임계값,
Figure pat00034
는 해당 뉴런에 이전에 설정된 임계값임)
The method of claim 10,
Spiking neural network-based reasoning apparatus that the threshold value for a neuron to which the burst function is applied is determined by the following equation.
Figure pat00032

(
Figure pat00033
Is the threshold for the i-th neuron in the l-th layer at time t,
Figure pat00034
Is the threshold previously set for the neuron)
제10항에 있어서,
상기 버스트 함수가 적용된 뉴런에 대한 가중치는 아래 수학식으로 결정되는 스파이킹 신경망 기반 추론 장치.
Figure pat00035

(
Figure pat00036
는 시간 t에서 l-1번째 계층에 i번째 뉴런과 l번째 계층에 있는 j 번째 뉴런 사이의 시냅스 가중치,
Figure pat00037
는 해당 뉴런에 대하여 이전에 설정된 가중치)
The method of claim 10,
A spiking neural network based reasoning device in which the weight of the neuron to which the burst function is applied is determined by the following equation.
Figure pat00035

(
Figure pat00036
Is the synaptic weight between the i-th neuron in the l-1th layer and the j-th neuron in the l-th layer at time t,
Figure pat00037
Is the weight previously set for the neuron)
컴퓨터에서 상기 제1항 내지 제7항 중 어느 하나의 항에 기재된 버스트 스파이크 기반한 스파이킹 신경망 생성 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium recording a program for executing the burst spike-based spiking neural network method according to any one of claims 1 to 7 in a computer.
KR1020190011748A 2019-01-30 2019-01-30 Method for generating spiking neural network based on burst spikes and inference apparatus based on spiking neural network KR102191346B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190011748A KR102191346B1 (en) 2019-01-30 2019-01-30 Method for generating spiking neural network based on burst spikes and inference apparatus based on spiking neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190011748A KR102191346B1 (en) 2019-01-30 2019-01-30 Method for generating spiking neural network based on burst spikes and inference apparatus based on spiking neural network

Publications (2)

Publication Number Publication Date
KR20200094354A true KR20200094354A (en) 2020-08-07
KR102191346B1 KR102191346B1 (en) 2020-12-15

Family

ID=72050065

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190011748A KR102191346B1 (en) 2019-01-30 2019-01-30 Method for generating spiking neural network based on burst spikes and inference apparatus based on spiking neural network

Country Status (1)

Country Link
KR (1) KR102191346B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220023079A (en) * 2020-08-20 2022-03-02 서울대학교산학협력단 Threshold variation compensation of neurons in Spiking Neural Networks
KR20220053387A (en) * 2020-10-22 2022-04-29 경북대학교 산학협력단 Prediction method in spiking neural network (snn) hardware for ultra-low power consumption and circuit for performing the method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150235124A1 (en) 2014-02-20 2015-08-20 Qualcomm Incorporated Phase-coding for coordinate transformation
US20170286828A1 (en) * 2016-03-29 2017-10-05 James Edward Smith Cognitive Neural Architecture and Associated Neural Network Implementations
KR20180048109A (en) * 2016-11-02 2018-05-10 삼성전자주식회사 Method for converting neural network and apparatus for recognizing using the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150235124A1 (en) 2014-02-20 2015-08-20 Qualcomm Incorporated Phase-coding for coordinate transformation
US20170286828A1 (en) * 2016-03-29 2017-10-05 James Edward Smith Cognitive Neural Architecture and Associated Neural Network Implementations
KR20180048109A (en) * 2016-11-02 2018-05-10 삼성전자주식회사 Method for converting neural network and apparatus for recognizing using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220023079A (en) * 2020-08-20 2022-03-02 서울대학교산학협력단 Threshold variation compensation of neurons in Spiking Neural Networks
KR20220053387A (en) * 2020-10-22 2022-04-29 경북대학교 산학협력단 Prediction method in spiking neural network (snn) hardware for ultra-low power consumption and circuit for performing the method

Also Published As

Publication number Publication date
KR102191346B1 (en) 2020-12-15

Similar Documents

Publication Publication Date Title
KR102644947B1 (en) Training method for neural network, recognition method using neural network, and devices thereof
US10671912B2 (en) Spatio-temporal spiking neural networks in neuromorphic hardware systems
Zhang et al. A hybrid particle swarm optimization–back-propagation algorithm for feedforward neural network training
US9330355B2 (en) Computed synapses for neuromorphic systems
US20180121802A1 (en) Method of converting neural network and recognition apparatus using the same
KR20180045635A (en) Device and method to reduce neural network
WO2019223250A1 (en) Pruning threshold determination method and device, as well as model pruning method and device
Fu et al. An ensemble unsupervised spiking neural network for objective recognition
Zhang et al. Spike-timing-dependent back propagation in deep spiking neural networks
US20220335303A1 (en) Methods, devices and media for improving knowledge distillation using intermediate representations
US11080592B2 (en) Neuromorphic architecture for feature learning using a spiking neural network
CN112085198A (en) Pulse neural network optimization method based on global feedback and local synapse plasticity
KR102191346B1 (en) Method for generating spiking neural network based on burst spikes and inference apparatus based on spiking neural network
Amari Mathematical theory of neural learning
US20210350236A1 (en) Neural network robustness via binary activation
CN114266351A (en) Pulse neural network training method and system based on unsupervised learning time coding
KR20160138125A (en) Plastic synapse management
CN114091652A (en) Impulse neural network model training method, processing chip and electronic equipment
Hung et al. Training neural networks with the GRG2 nonlinear optimizer
CN116080688B (en) Brain-inspiring-like intelligent driving vision assisting method, device and storage medium
Zhou et al. Evolutionary optimization of liquid state machines for robust learning
CN113628615B (en) Voice recognition method and device, electronic equipment and storage medium
Lan et al. Pc-snn: Supervised learning with local hebbian synaptic plasticity based on predictive coding in spiking neural networks
KR20210103912A (en) Method and apparatus for trining neural network, method and apparatus for processing data using neural network
Neukart et al. A Machine Learning Approach for Abstraction Based on the Idea of Deep Belief Artificial Neural Networks

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant