KR20210070589A - Apparatus for learning a spiking neural network - Google Patents

Apparatus for learning a spiking neural network Download PDF

Info

Publication number
KR20210070589A
KR20210070589A KR1020190160518A KR20190160518A KR20210070589A KR 20210070589 A KR20210070589 A KR 20210070589A KR 1020190160518 A KR1020190160518 A KR 1020190160518A KR 20190160518 A KR20190160518 A KR 20190160518A KR 20210070589 A KR20210070589 A KR 20210070589A
Authority
KR
South Korea
Prior art keywords
change amount
spike
weight
output
input
Prior art date
Application number
KR1020190160518A
Other languages
Korean (ko)
Other versions
KR102344678B1 (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 KR1020190160518A priority Critical patent/KR102344678B1/en
Publication of KR20210070589A publication Critical patent/KR20210070589A/en
Application granted granted Critical
Publication of KR102344678B1 publication Critical patent/KR102344678B1/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/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Landscapes

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

Abstract

The present invention provides an apparatus for training a spiking neural network, including: an up-change amount acquisition unit for updating an up-change amount whenever an input spike is applied, or whenever a plurality of time sections divided by a quantization spike-timing-dependent plasticity (STDP) function are reached after the input spike is applied, based on the quantization STDP function in which a change amount for adjusting a weight is divided by the time sections and set in advance based on a time difference between the input spike and an output spike, in order to train the spiking neural network for accumulatively adding a weight corresponding to the applied input spike among a plurality of pre-stored weights to spike the output spike when an acquired accumulative spike signal is greater than or equal to a predetermined spiking threshold; a down-change amount acquisition unit for updating a down-change amount whenever the input spike is applied, or whenever the time sections divided by the quantization STDP function are reached after the input spike is applied; a change amount acquisition unit for acquiring a weight change amount by using the up-change amount and the down-change amount; and a weight update unit for updating the weight by adding the weight change amount to the weight. Accordingly, the weight change amount for training the spiking neural network is easily acquired in real time.

Description

스파이킹 신경망의 학습 장치{APPARATUS FOR LEARNING A SPIKING NEURAL NETWORK}A learning device for a spiking neural network {APPARATUS FOR LEARNING A SPIKING NEURAL NETWORK}

본 발명은 스파이킹 신경망의 학습 장치에 관한 것으로, 스파이크 타이밍 의존 가소성을 하드웨어적으로 구현하는 스파이킹 신경망의 학습 장치에 관한 것이다.The present invention relates to a learning apparatus for a spiking neural network, and to a learning apparatus for a spiking neural network that implements spike timing dependent plasticity in hardware.

뉴로모픽(Neuromorphic) 기술은 인간의 신경구조를 하드웨어적으로 모방하기 위한 기술로서, 기존 컴퓨팅 아키텍처가 인지처리 기능을 수행함에 있어 인간에 비해 효율성이 매우 낮고 전력 소모가 크다는 한계를 극복하기 위해 제안되었다.Neuromorphic technology is a technology to mimic the human neural structure in hardware. It is proposed to overcome the limitations that the existing computing architecture is very low in efficiency and consumes a lot of power compared to humans in performing cognitive processing functions. became

뉴로모픽 기술에는 대표적으로 스파이킹 신경망(Spiking Neural Network: 이하 SNN)이 있다. SNN은 인간의 두뇌가 뉴런(Neuron)-시냅스(Synapse) 구조를 가지고 있고, 뉴런과 뉴런을 잇는 시냅스가 스파이크 형태의 전기 신호로 정보를 전달한다는 특징을 모방하여 고안된 신경망이다. 이러한 SNN은 스파이크 신호가 전송되는 시간 차에 기초하여 정보를 처리한다.A typical example of neuromorphic technology is a spiking neural network (SNN). SNN is a neural network designed by mimicking the characteristics that the human brain has a neuron-synapse structure, and a synapse between neurons transmits information as a spike-type electrical signal. These SNNs process information based on the time difference at which the spike signal is transmitted.

SNN 또한 인공 신경망의 일종으로 가중치를 업데이트하기 위한 학습이 수행되어야 하며, SNN의 학습에는 일반적으로 스파이크 타이밍 의존 가소성(Spike-timing-dependent plasticity: 이하 STDP) 기법이 이용되고 있다. 그리고 STDP 기법에서도 기지정된 크기의 학습 윈도우 기간 내에 발생한 모든 입력 스파이크와 출력 스파이크의 발생 시간 정보를 기반으로 가중치를 업데이트하기 위한 가중치 변화량을 계산하는 올투올(All-to-All) STDP 기법이 잘 알려져 있다.SNN is also a kind of artificial neural network, and learning to update weights must be performed, and a spike-timing-dependent plasticity (STDP) technique is generally used for SNN learning. Also, in the STDP technique, the all-to-all STDP technique, which calculates the weight change amount for updating the weight based on the occurrence time information of all input and output spikes that occurred within the training window period of a predetermined size, is well known. have.

그러나 올투올 STDP 기법은 SNN을 학습시키기 위한 학습 장치가 학습 윈도우에 의해 기지정된 시간 구간 동안 발생된 입력 스파이크와 출력 스파이크에 대한 시간 정보를 모두 저장하고 있어야 하므로 큰 저장 용량을 요구하여 하드웨어적으로 구현하는데 어려움이 있다.However, the all-to-all STDP technique requires a large storage capacity and is implemented in hardware because the learning device for learning the SNN must store both the time information on the input and output spikes generated during the time period specified by the learning window. have difficulty doing

이에 기존에는 간단한 구조를 갖는 최근접(Nearest) STDP 기법이 주로 이용되고 있다. 최근접 STDP 기법에서는 입력 스파이크 또는 출력 스파이크가 발생되면, 카운터가 클럭 신호에 응답하여 카운팅을 시작하고, 입력 스파이크 또는 출력 스파이크가 발생한 시간에 대한 시간 정보를 스파이크 히스토리에 저장한다. 그리고 트리거(trigger)가 되는 스파이크가 인가되면 카운터의 카운팅값을 미리 작성된 룩업 테이블에 대입하여, 룩업 테이블로부터 가중치 변화량을 획득하고, 획득된 가중치 변화량에 따라 가중치를 업데이트한다. 여기서 입력 스파이크에 대해 트리거가 되는 스파이크는 출력 스파이크이고, 출력 스파이크에 대해 트리거가 되는 스파이크는 입력 스파이크이다. 즉 최근접 STDP 기법은 가장 인접한 시간에 발생된 다른 스파이크의 발생 시간 정보만을 참조하여 가중치를 업데이트하는 방식이다. 그러나 최근접 스파이크만을 고려하여 가중치를 업데이트함에 따라 최근접 STDP 기법은 올투올 STDP 기법에 비해 학습 성능이 낮다는 한계가 있다.For this reason, the nearest STDP technique having a simple structure has been mainly used in the past. In the nearest STDP technique, when an input spike or an output spike occurs, the counter starts counting in response to a clock signal, and time information about the time when the input spike or output spike occurs is stored in the spike history. Then, when a spike that becomes a trigger is applied, the counting value of the counter is substituted into the lookup table prepared in advance, the weight change amount is obtained from the lookup table, and the weight is updated according to the obtained weight change amount. Here, the spike that is triggered for the input spike is the output spike, and the spike that is triggered for the output spike is the input spike. That is, the nearest STDP technique is a method of updating weights by referring only to the occurrence time information of other spikes generated at the closest time. However, since the weights are updated considering only the nearest spike, the nearest STDP technique has a limitation in that the learning performance is lower than that of the all-to-all STDP technique.

한국 공개 특허 제10-2018-0062934호 (2018.06.11 공개)Korean Patent Publication No. 10-2018-0062934 (published on June 11, 2018)

본 발명의 목적은 스파이킹 신경망을 학습시키기 위한 가중치 변화량을 실시간으로 용이하게 획득할 수 있는 스파이킹 신경망의 학습 장치를 제공하는데 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a learning apparatus for a spiking neural network that can easily acquire a weight change amount for learning a spiking neural network in real time.

본 발명의 다른 목적은 간단한 하드웨어로 스파이크 히스토리를 저장하여 올투올 STDP 기법에 따라 스파이킹 신경망을 학습시킬 수 있는 스파이킹 신경망의 학습 장치를 제공하는데 있다.Another object of the present invention is to provide a learning apparatus for a spiking neural network capable of learning a spiking neural network according to an all-to-all STDP technique by storing a spike history with simple hardware.

본 발명의 또 다른 목적은 스파이크 히스토리에 저장되는 스파이크 발생 정보의 시간 간격을 스케일링하여, 더욱 효율적인 하드웨어 구성으로 스파이킹 신경망을 학습시킬 수 있는 스파이킹 신경망의 학습 장치를 제공하는데 있다.Another object of the present invention is to provide a learning apparatus for a spiking neural network capable of learning a spiking neural network with a more efficient hardware configuration by scaling a time interval of spike occurrence information stored in a spike history.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 스파이킹 신경망의 학습 장치는 미리 저장된 다수의 가중치 중 인가되는 입력 스파이크에 대응하는 가중치를 누적 가산하여 획득된 누적 스파이크 신호가 기기정된 발화 문턱값 이상이면 출력 스파이크를 발화하는 스파이킹 신경망을 학습시키기 위해, 상기 입력 스파이크와 상기 출력 스파이크 사이의 시간 차에 기반하여 상기 가중치를 조절하기 위한 변화량이 다수의 시간 구간별로 구분되어 미리 설정된 양자화 STDP 함수에 기초하여, 상기 입력 스파이크가 인가되거나, 상기 입력 스파이크가 인가된 후 상기 양자화 STDP 함수에 의해 구분된 다수의 시간 구간에 도달할 때마다 업 변화량을 업데이트하는 업 변화량 획득부; 상기 입력 스파이크가 인가되거나, 상기 입력 스파이크가 인가된 후 상기 양자화 STDP 함수에 의해 구분된 다수의 시간 구간에 도달할 때마다 다운 변화량을 업데이트하는 다운 변화량 획득부; 상기 업 변화량과 상기 다운 변화량을 이용하여 가중치 변화량을 획득하는 변화량 획득부; 및 상기 가중치 변화량을 상기 가중치에 가산하여 가중치를 업데이트하는 가중치 업데이트부를 포함한다.In order to achieve the above object, an apparatus for learning a spiking neural network according to an embodiment of the present invention includes a utterance threshold in which an accumulated spike signal obtained by accumulatively adding a weight corresponding to an input spike to be applied among a plurality of pre-stored weights is a predetermined utterance threshold. In order to train a spiking neural network that fires an output spike when it is greater than or equal to a value, the amount of change for adjusting the weight based on the time difference between the input spike and the output spike is divided into a plurality of time sections, and a preset quantization STDP function an up change amount obtaining unit that updates the up change amount each time the input spike is applied or a plurality of time intervals divided by the quantization STDP function after the input spike is applied, based on ? a down change amount obtaining unit that updates the down change amount whenever the input spike is applied or a plurality of time intervals divided by the quantization STDP function after the input spike is applied; a change amount obtaining unit for obtaining a weight change amount using the up change amount and the down change amount; and a weight update unit that updates the weight by adding the weight change amount to the weight.

상기 업 변화량 획득부는 직렬로 연결되어 상기 입력 스파이크가 인가되면 각각 기지정된 시간 구간만큼 상기 입력 스파이크를 지연하여 출력하는 다수의 구간 지연부; 및 상기 입력 스파이크가 인가되면, 기저장된 업 변화량을 양자화 STDP 함수에 의해 설정된 최대값만큼 증가시키고, 상기 다수의 구간 지연부 각각에서 지연된 입력 스파이크가 출력될 때마다 상기 양자화 STDP 함수에 의해 설정된 기지정된 변화 단위만큼 상기 업 변화량을 감소시키는 변화량 계산부를 포함할 수 있다.a plurality of interval delay units connected in series to output the up change amount obtaining unit by delaying the input spike by a predetermined time interval when the input spike is applied; and when the input spike is applied, the pre-stored up-change amount is increased by the maximum value set by the quantization STDP function, and whenever the delayed input spike is output from each of the plurality of section delay units, a predetermined value set by the quantization STDP function is output. and a change amount calculation unit for decreasing the up change amount by a change unit.

상기 다운 변화량 획득부는 직렬로 연결되어 상기 출력 스파이크가 인가되면 각각 기지정된 시간 구간만큼 상기 출력 스파이크를 지연하여 출력하는 다수의 구간 지연부; 및 상기 출력 스파이크가 인가되면, 기저장된 다운 변화량을 상기 양자화 STDP 함수에 의해 설정된 최대값만큼 증가시키고, 상기 다수의 구간 지연부 각각에서 지연된 출력 스파이크가 출력될 때마다 상기 양자화 STDP 함수에 의해 설정된 기지정된 변화 단위만큼 상기 다운 변화량을 감소시키는 변화량 계산부를 포함할 수 있다.a plurality of section delay units connected in series to the down change amount obtaining section to delay and output the output spikes by a predetermined time section, respectively, when the output spikes are applied; and when the output spike is applied, the pre-stored down change amount is increased by the maximum value set by the quantization STDP function, and whenever the delayed output spike is output from each of the plurality of section delay units, the group set by the quantization STDP function It may include a change amount calculation unit for decreasing the down change amount by a specified change unit.

상기 다수의 구간 지연부 각각은 상기 양자화 STDP 함수에 의해 구분된 다수의 시간 구간 중 대응하는 시간 구간에 대응하는 개수로 직렬 연결되고, 각각 기지정된 주기의 클럭에 응답하여 상기 입력 스파이크를 인가받거나, 이전 인가된 입력 스파이크를 전달하는 다수의 플립플롭을 포함할 수 있다.Each of the plurality of section delay units is serially connected in a number corresponding to a corresponding time section among a plurality of time sections divided by the quantization STDP function, and receives the input spike in response to a clock of a predetermined period, It may include multiple flip-flops carrying previously applied input spikes.

상기 다수의 구간 지연부 각각은 상기 클럭의 주기가 미리 지정된 타임 스텝 스케일링 비율에 따라 증가된 스케일링 클럭에 응답하여 상기 입력 스파이크를 인가받거나, 이전 인가된 입력 스파이크를 전달하는 다수의 플립플롭을 포함하고, 상기 다수의 플립플롭은 대응하는 시간 구간에서 상기 타임 스텝 스케일링 비율만큼 감소된 개수로 포함될 수 있다.Each of the plurality of section delay units includes a plurality of flip-flops for receiving the input spike or transferring the previously applied input spike in response to a scaling clock in which the cycle of the clock is increased according to a predetermined time step scaling ratio. , the plurality of flip-flops may be included in a reduced number by the time step scaling ratio in a corresponding time interval.

상기 변화량 획득부는 상기 업 변화량에서 상기 다운 변화량을 차감하여 가중치 변화량을 획득할 수 있다.The change amount obtaining unit may obtain a weight change amount by subtracting the down change amount from the up change amount.

상기 가중치 업데이트부는 상기 입력 스파이크 또는 상기 출력 스파이크가 인가되면, 상기 가중치 변화량을 대응하는 가중치에 가산하여 가중치를 업데이트할 수 있다.When the input spike or the output spike is applied, the weight update unit may update the weight by adding the weight change amount to a corresponding weight.

따라서, 본 발명의 실시예에 따른 스파이킹 신경망의 학습 장치는 다수의 플립플롭을 이용하는 간단한 구성으로 스파이크 히스토리를 저장하고, 저장된 스파이크 히스토리를 기반으로 스파이킹 신경망을 학습시키기 위한 가중치 변화량을 실시간으로 용이하게 획득하여 스파이킹 신경망을 학습시킬 수 있다. 또한 스파이크 히스토리에 저장되는 스파이크 발생 정보의 시간 간격을 스케일링하여 더욱 간단한 하드웨어 구성으로 학습 성능을 유지하면서도 스파이킹 신경망을 학습시킬 수 있다.Therefore, the learning apparatus for a spiking neural network according to an embodiment of the present invention stores the spike history in a simple configuration using a plurality of flip-flops, and facilitates the amount of weight change for learning the spiking neural network based on the stored spike history in real time It can be acquired to train a spiking neural network. In addition, by scaling the time interval of the spike occurrence information stored in the spike history, it is possible to train the spiking neural network while maintaining the learning performance with a simpler hardware configuration.

도 1은 본 발명의 일 실시예에 따른 스파이킹 신경망의 개략적 구조를 나타낸다.
도 2 및 도 3은 도 1의 가중치 시냅스와 출력 뉴런의 동작을 설명하기 위한 도면이다.
도 4는 양자화된 스파이크 타이밍 의존 가소성 함수의 일예를 나타낸다.
도 5는 도 1의 가중치 학습부의 상세 구성을 나타낸다.
도 6은 도 5의 변화량 획득부의 개략적 구조를 나타낸다.
도 7은 도 6의 구간 지연부의 상세 구성의 일예를 나타낸다.
도 8은 도 6의 구간 지연부의 상세 구성의 다른 예를 나타낸다.
도 9는 타임 스텝 스케일링 비율에 따른 학습 정확도를 분석한 결과를 나타낸다.
도 10은 타임 스텝 스케일링이 적용되어 학습된 결과를 나타낸다.
1 shows a schematic structure of a spiking neural network according to an embodiment of the present invention.
2 and 3 are diagrams for explaining the operation of the weighted synapse and the output neuron of FIG. 1 .
4 shows an example of a quantized spike timing dependent plasticity function.
FIG. 5 shows a detailed configuration of the weight learning unit of FIG. 1 .
FIG. 6 shows a schematic structure of the change amount obtaining unit of FIG. 5 .
7 shows an example of a detailed configuration of the interval delay unit of FIG. 6 .
FIG. 8 shows another example of the detailed configuration of the interval delay unit of FIG. 6 .
9 shows the results of analyzing the learning accuracy according to the time step scaling ratio.
10 shows a result learned by applying time step scaling.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings illustrating preferred embodiments of the present invention and the contents described in the accompanying drawings.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다. Hereinafter, the present invention will be described in detail by describing preferred embodiments of the present invention with reference to the accompanying drawings. However, the present invention may be embodied in various different forms, and is not limited to the described embodiments. In addition, in order to clearly describe the present invention, parts irrelevant to the description are omitted, and the same reference numerals in the drawings indicate the same members.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. Throughout the specification, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components unless otherwise stated. In addition, terms such as "... unit", "... group", "module", and "block" described in the specification mean a unit that processes at least one function or operation, which is hardware, software, or hardware. and a combination of software.

도 1은 본 발명의 일 실시예에 따른 스파이킹 신경망의 개략적 구조를 나타내고, 도 2 및 도 3은 도 1의 가중치 시냅스와 출력 뉴런의 동작을 설명하기 위한 도면이다. 그리고 도 4는 양자화된 스파이크 타이밍 의존 가소성 함수의 일예를 나타낸다.1 shows a schematic structure of a spiking neural network according to an embodiment of the present invention, and FIGS. 2 and 3 are diagrams for explaining the operation of a weighted synapse and an output neuron of FIG. 1 . and FIG. 4 shows an example of a quantized spike timing dependent plasticity function.

도 1을 참조하면, 스파이킹 신경망(Spiking Neural Network: 이하 SNN)은 입력 뉴런(100)과 가중치 시냅스(200), 출력 뉴런(300) 및 가중치 학습부(400)를 포함한다.Referring to FIG. 1 , a spiking neural network (SNN) includes an input neuron 100 , a weight synapse 200 , an output neuron 300 , and a weight learner 400 .

입력 뉴런(100)은 입력 데이터를 기지정된 방식에 따라 인코딩하여 다수의 입력 스파이크로 변환하고, 변환된 다수의 입력 스파이크를 가중치 시냅스(200)로 전달한다.The input neuron 100 encodes input data according to a predetermined method, converts it into a plurality of input spikes, and transmits the converted plurality of input spikes to the weighted synapse 200 .

입력 뉴런(100)은 입력 데이터의 값에 따라 각각 시간차를 두고 발생되는 다수의 입력 스파이크로 변환할 수 있다. 일예로 입력 뉴런(100)은 이미지에서 대응하는 각 픽셀의 픽셀값들을 입력 데이터로 인가받고, 인가된 픽셀값에 따라 시간차를 두고 발생되는 입력 스파이크를 출력할 수 있다.The input neuron 100 may be converted into a plurality of input spikes each generated with a time difference according to the value of the input data. For example, the input neuron 100 may receive the pixel values of each pixel corresponding to the image as input data, and may output an input spike generated with a time difference according to the applied pixel value.

입력 뉴런(100)이 입력 데이터를 입력 스파이크로 변환하는 방법은 다양하게 연구되어 있으며 일예로 확률에 기반하여 입력 스파이크를 생성할 수 있다. 이때 입력 뉴런(100)의 입력 뉴런은 상기한 바와 같이, 입력 데이터를 한번의 입력 스파이크들로 변환하는 것이 아니라, 입력 데이터에 기초하여 다수의 입력 스파이크를 시간차를 두고 여러 번 생성하여 출력할 수 있다.Methods for the input neuron 100 to convert input data into input spikes have been studied in various ways, and for example, an input spike may be generated based on a probability. In this case, the input neuron of the input neuron 100 may generate and output a plurality of input spikes multiple times with a time difference based on the input data, rather than converting the input data into one input spike as described above. .

즉 도 2에 도시된 바와 같이, 각각의 입력 데이터에 대해 다수의 입력 스파이크를 서로 다른 시간에 여러 번 생성할 수 있다.That is, as shown in FIG. 2 , a plurality of input spikes may be generated several times at different times for each input data.

여기서 입력 뉴런(100)은 이진 데이터의 형식으로 입력 스파이크를 생성한다. 일예로 입력 스파이크가 발생되면 1의 값을 출력하고, 입력 스파이크가 발생되지 않으면 0의 값을 출력하도록 설정될 수 있다.Here, the input neuron 100 generates an input spike in the form of binary data. For example, it may be set to output a value of 1 when an input spike occurs, and output a value of 0 when no input spike occurs.

또한 입력 뉴런(100)은 이진 데이터 형식으로 다수의 입력 스파이크를 인가받도록 구성될 수도 있으며, 이 경우 입력 뉴런(100)은 다수의 입력 스파이크를 버퍼링하여 출력하는 버퍼로 구현될 수 있다.Also, the input neuron 100 may be configured to receive a plurality of input spikes in a binary data format. In this case, the input neuron 100 may be implemented as a buffer that buffers and outputs the plurality of input spikes.

경우에 따라서 입력 뉴런(100)은 다른 뉴런의 출력 뉴런(300)에서 출력되는 출력 스파이크를 인가받아 입력 스파이크로 출력할 수 있다. 이때, 입력 뉴런(100)과 출력 뉴런(300) 사이의 매칭 관계가 상이하다면, 입력 뉴런(100)과 출력 뉴런(300) 사이의 대응 관계를 정의하는 SRT(Synapse Routing Table)를 이용할 수도 있다.In some cases, the input neuron 100 may receive an output spike output from the output neuron 300 of another neuron and output it as an input spike. In this case, if the matching relationship between the input neuron 100 and the output neuron 300 is different, a Synapse Routing Table (SRT) defining a correspondence between the input neuron 100 and the output neuron 300 may be used.

가중치 시냅스(200)는 SNN에서 두뇌의 시냅스를 모방한 구성으로, 다수의 가중치를 저장하는 메모리 어레이와 유사한 구조를 가질 수 있다. 일 예로 가중치 시냅스(200)는 SRAM(Static Random access memory) 등으로 구현될 수 있다.The weight synapse 200 is a configuration that mimics the synapse of the brain in the SNN, and may have a structure similar to a memory array storing a plurality of weights. For example, the weighted synapse 200 may be implemented as a static random access memory (SRAM) or the like.

가중치 시냅스(200)는 다수의 가중치를 저장하고, 입력 뉴런(100)에서 입력 스파이크가 인가되면, 인가된 입력 스파이크에 대응하는 가중치를 출력 뉴런(300)로 출력한다. 여기서 가중치 시냅스(200)에 저장된 다수의 가중치는 가중치 학습부(400)에 의해 업데이트된다.The weight synapse 200 stores a plurality of weights, and when an input spike is applied from the input neuron 100 , a weight corresponding to the applied input spike is output to the output neuron 300 . Here, a plurality of weights stored in the weight synapse 200 are updated by the weight learning unit 400 .

가중치 시냅스(200)는 입력 뉴런(100)으로부터 시간차를 두고 발생되어 인가되는 다수의 입력 스파이크 각각에 응답하여 대응하는 가중치를 반복적으로 출력 뉴런(300)로 출력한다. 즉 입력 뉴런(100)에서 입력 스파이크가 발생될 때마다 저장된 가중치 중 대응하는 가중치를 출력 뉴런(300)로 출력한다.The weight synapse 200 repeatedly outputs a corresponding weight to the output neuron 300 in response to each of a plurality of input spikes generated and applied with a time difference from the input neuron 100 . That is, whenever an input spike occurs in the input neuron 100 , a corresponding weight among the stored weights is output to the output neuron 300 .

출력 뉴런(300)은 가중치 시냅스(200)에서 출력되는 가중치의 누적 합에 기초하여 다수의 출력 스파이크를 생성한다. 출력 뉴런(300)은 LIF(Leaky-Integrate and Fire) 뉴런 모델에 기반하여 구성될 수 있다.The output neuron 300 generates a plurality of output spikes based on the cumulative sum of weights output from the weighted synapse 200 . The output neuron 300 may be configured based on a Leaky-Integrate and Fire (LIF) neuron model.

SNN에서는 주로 인간 신경망의 동작 특성을 모방한 LIF 뉴런 모델이 이용되며, LIF 뉴런 모델은 입력되는 입력 스파이크에 따른 가중치를 누적(Integrate)하고, 누적된 가중치가 기지정된 기준 레벨 이상이면, 발화(Fire)하여 다음 뉴런으로 전달할 새로운 입력 스파이크를 생성하며, 입력 스파이크가 전달되지 않으면 누적된 입력 스파이크의 세기가 누설(Leaky)되어 시간이 흐를수록 점차 약해지도록 구성된 모델이다.In SNN, a LIF neuron model that mimics the operation characteristics of a human neural network is mainly used. The LIF neuron model integrates weights according to input spikes, and when the accumulated weights are above a predetermined reference level, fire ) to generate a new input spike to be transmitted to the next neuron, and if the input spike is not transmitted, the accumulated intensity of the input spike leaks and becomes weaker as time goes by.

이에 LIF 뉴런 모델에 기반하여 구성되는 출력 뉴런(300) 또한 가중치 시냅스(200)로부터 인가되는 가중치를 합하여 누적하고, 누적 가중치가 기지정된 발화 문턱값 이상이면, 출력 스파이크를 생성하여 출력하도록 구성된다. 그리고 출력 뉴런(300)은 시간의 흐름에 따라 누적 가중치를 점차 감소시도록 구성될 수 있다.Accordingly, the output neuron 300 constructed based on the LIF neuron model also adds and accumulates the weights applied from the weighted synapses 200, and when the accumulated weight is greater than or equal to a predetermined firing threshold, an output spike is generated and output. And the output neuron 300 may be configured to gradually decrease the cumulative weight over time.

출력 뉴런(300)은 적어도 하나의 입력 스파이크가 발생될 때마다 가중치 시냅스(200)로부터 인가되는 가중치(wi)를 모두 합한다. 도 2에 도시된 바와 같이, 가중치 시냅스(200)는 다수의 입력 스파이크(x1 ~ xN)가 인가되면, 입력된 입력 스파이크(x1 ~ xN) 각각에 대응하는 가중치(w1 ~ wN)를 획득하고, 적어도 하나의 출력 뉴런은 가중치가 가중된 가중 입력 스파이크(xiwi)를 인가받아 모두 가산한다.The output neuron 300 sums all the weights w i applied from the weighted synapses 200 whenever at least one input spike is generated. 2, the weight synapses 200 is applied a plurality of input spike (x 1 ~ x N), the inputted input spike (x 1 ~ x N) weight corresponding to each (w 1 ~ w N ), and at least one output neuron receives a weighted input spike (x i w i ) with weight and adds them all.

상기한 바와 같이, 입력 스파이크(x1 ~ xN)는 이진값의 형태로 발생되고, 가중치 시냅스(200)는 입력 스파이크(x1 ~ xN)에 대응하는 가중치를 출력 뉴런(300)로 전달하므로, 가중 입력 스파이크(xiwi)의 합(∑xiwi)은 출력 뉴런(300)로 전달된 가중치의 합으로 볼 수 있다.As described above, the input spike (x 1 to x N ) is generated in the form of a binary value, and the weight synapse 200 transmits a weight corresponding to the input spike (x 1 to x N ) to the output neuron 300 . Therefore, the sum (∑x i w i ) of the weighted input spikes (x i w i ) can be viewed as the sum of the weights transmitted to the output neuron 300 .

그리고 출력 뉴런(300)은 가중 입력 스파이크(xiwi)의 합(∑xiwi)에 이전 획득된 누적 스파이크 신호(u(t-1))를 더 가산한다. 이때 출력 뉴런(300)은 입력 스파이크의 합(∑xiwi)에 이전 획득된 누적 스파이크 신호(u(t-1))를 그대로 더하는 것이 아니라 이전 획득된 누적 스파이크 신호(u(t-1))에 누설 팩터(λ)(여기서 0 < λ < 1인 실수)를 가중한 누설 누적 스파이크 신호(λu(t-1))를 더하여 누적 스파이크 신호(u(t))를 획득할 수 있다.And the output neuron 300 further adds the previously acquired cumulative spike signal u(t-1) to the sum (∑x i w i ) of the weighted input spikes x i w i . At this time, the output neuron 300 does not add the previously acquired cumulative spike signal (u(t-1)) to the sum of input spikes (∑x i w i ) as it is, but the previously acquired cumulative spike signal u(t-1). )) to the leakage factor λ (here, a real number where 0 < λ < 1) is added to the leakage cumulative spike signal λu(t-1) to obtain the cumulative spike signal u(t).

여기서 이전 누적 스파이크 신호(u(t-1))에 누설 팩터(λ)를 가중하는 것은 두뇌의 신경 세포가 시간이 지날수록 기억하고 있는 정보를 점차로 소실하는 특성을 반영한 것이며, 입력 스파이크의 합(∑xiwi)에 이전 누설 누적 스파이크 신호(λu(t-1))를 더하는 것은 반복적인 자극을 통해 정보가 기억되는 특성을 반영한 것이다. 즉 LIF 뉴런 모델에서 누설(Leaky)과 누적(Integrate)의 기능을 수행한다.Here, weighting the leakage factor (λ) to the previous cumulative spike signal (u(t-1)) reflects the characteristic that neurons in the brain gradually lose the information they remember over time, and the sum of the input spikes ( Adding the previous leakage accumulated spike signal (λu(t-1)) to ∑x i w i ) reflects the characteristic of information being remembered through repetitive stimulation. That is, it performs the functions of leakage and integration in the LIF neuron model.

누적 스파이크 신호(u(t))의 전압 레벨은 일반적으로 막 전위(Membrane potential)라고 하며, 도 3에 도시된 바와 같이 막 전위가 발화 문턱값(Vth)보다 전압 레벨이 낮으면, 출력 스파이크를 발화하지 않고, 누적 스파이크 신호(u(t))의 전압 레벨을 일반적으로 막 전위가 발화 문턱값(Vth)보다 전압 레벨이 높으면, 출력 스파이크를 발화하여 출력한다.The voltage level of the cumulative spike signal u(t) is generally referred to as a membrane potential, and as shown in FIG. 3 , when the membrane potential is lower than the firing threshold V th , the output spike In general, when the voltage level of the cumulative spike signal u(t) is higher than the ignition threshold V th , the voltage level of the accumulated spike signal u(t) is output by firing an output spike.

경우에 따라서 출력 뉴런(300)은 출력 스파이크가 발화되는 횟수를 카운트하고, 카운트된 출력 스파이크의 발화 횟수에 기초하여 발화 문턱값(Vth)을 조절함으로써, 출력 스파이크의 발화 횟수를 조절할 수도 있다.In some cases, the output neuron 300 may adjust the number of firings of the output spike by counting the number of times the output spike is fired and adjusting the firing threshold (V th ) based on the counted number of firings of the output spike.

가중치 학습부(400)는 SNN을 학습시키기 위한 학습 장치에 해당하는 구성으로 스파이크 타이밍 의존 가소성(Spike-timing-dependent plasticity: 이하 STDP) 기법에 따라 가중치 시냅스(200)의 다수의 가중치를 학습시킨다. STDP 기법에 따라 가중치를 학습시키는 가중치 학습부(400)는 출력 스파이크가 발생된 시점을 기준으로 이전 기지정된 기간 동안 입력 뉴런(100)으로부터 가중치 시냅스(200)로 입력 스파이크가 입력된 시간 정보를 기반으로 가중치를 증가시킨다. 한편, 가중치 학습부(400)는 입력 뉴런(100)으로부터 가중치 시냅스(200)로 입력 스파이크가 입력되면, 입력 스파이크가 입력된 이전 기지정된 기간 동안 출력 스파이크가 발생된 시간 정보를 기반으로 가중치를 감소시킨다. 즉 가중치 학습부(400)는 인가되는 입력 스파이크와 출력 스파이크의 발생 시간에 기반하여 가중치를 증가 또는 감소시킨다.The weight learning unit 400 learns a plurality of weights of the weight synapses 200 according to a spike-timing-dependent plasticity (STDP) technique in a configuration corresponding to a learning device for learning the SNN. The weight learning unit 400 for learning the weights according to the STDP technique is based on the time information when the input spike is input from the input neuron 100 to the weight synapse 200 for a previously predetermined period based on the time when the output spike is generated. to increase the weight. On the other hand, when an input spike is input from the input neuron 100 to the weighted synapse 200 , the weight learning unit 400 reduces the weight based on the time information at which the output spike occurred during the previous predetermined period when the input spike was input. make it That is, the weight learning unit 400 increases or decreases the weight based on the generation time of the applied input spike and the output spike.

이때 가중치 학습부(400)는 출력 스파이크가 발생된 시점으로부터 이전 입력 스파이크가 입력 시점까지의 시간차가 짧으면, 입력된 입력 스파이크와 출력 스파이크 사이의 상관 관계가 높아지도록 가중치를 더 크게 증가시킨다. 반대로, 입력 스파이크가 입력된 시점으로부터 이전 출력 스파이크가 발생된 시점까지의 시간차가 짧으면 입력된 입력 스파이크와 출력 스파이크 사이의 상관 관계가 낮아지도록 가중치를 더욱 크게 감소시킨다. 이는 출력 스파이크가 이전 입력된 입력 스파이크에 대한 반응으로 출력되어야 하는 반면, 입력되는 입력 스파이크는 이전 발생된 출력 스파이크에 가능한 무관하게 입력되어야 하기 때문이다.In this case, when the time difference between the time when the output spike is generated and the time when the previous input spike is input is short, the weight learning unit 400 increases the weight more so that the correlation between the input spike and the output spike increases. Conversely, if the time difference from the time when the input spike is input to the time when the previous output spike is generated is short, the weight is further reduced so that the correlation between the input spike and the output spike is lowered. This is because the output spike should be output in response to the previously inputted input spike, whereas the inputted input spike should be input regardless of the previously generated output spike as much as possible.

다만 두뇌의 STDP는 시간에 따라 아날로그적으로 가변되는 변화량을 갖지만, 이를 가중치 학습부(400)에 구현하기는 매우 어렵다. 따라서 SNN에서 가중치 학습부(400)는 도 4에 도시된 바와 같이, 디지털 회로로 구현되는 가중치 학습부(400)는 양자화 STDP 함수에 기반하여 가중치(w)의 가중치 변화량(Δw)을 조절한다.However, although the STDP of the brain has an amount of change that is analogically variable with time, it is very difficult to implement this in the weight learning unit 400 . Accordingly, as shown in FIG. 4 , the weight learning unit 400 in the SNN adjusts the weight change amount Δw of the weight w based on the quantization STDP function in the weight learning unit 400 implemented as a digital circuit.

도 4에 도시된 양자화 STDP 함수 그래프에서, x 축은 출력 스파이크(OS)가 발생된 시점(tOS)으로부터 입력 스파이크(IS)가 발생된 시점(tIS) 사이의 시간차를 나타내고, y 축은 가중치(w)의 가중치 변화량(Δw)을 나타낸다. 도 4의 양자화 STDP 함수 그래프는 x 축이 입력 스파이크(IS)가 발생된 시점(tIS) 사이의 시간차를 나타내므로 입력 스파이크(IS)가 인가된 시점과 출력 스파이크(OS)가 인가된 시점 모두를 기준으로 적용될 수 있다. 여기서 x 축의 값은 디지털 회로로 구현되는 SNN에서 스파이크를 입출력할 수 있는 단위 시간으로 단위 클럭(CLK)(또는 사이클(Cycle)이라고도 함)이다. 그리고 도 4에서 y축 방향의 값은 디지털 값을 갖는 가중치(w)를 조절할 수 있는 기지정된 변화 단위를 나타낸다.In the quantized STDP function graph shown in FIG. 4 , the x-axis represents the time difference between the time point at which the output spike (OS) occurs (t OS ) and the time point at which the input spike (IS) occurs (t IS ), and the y-axis represents the weight ( w) represents the weight change amount (Δw). In the quantization STDP function graph of FIG. 4, since the x-axis represents the time difference between the time points (t IS ) at which the input spike (IS) is generated, both the time point at which the input spike (IS) is applied and the time point at which the output spike (OS) is applied can be applied based on Here, the value of the x-axis is a unit time that can input and output spikes in SNN implemented as a digital circuit, and is a unit clock (CLK) (also called a cycle). In addition, in FIG. 4 , the value in the y-axis direction represents a predetermined change unit capable of adjusting the weight w having a digital value.

만일 (0, 0)인 위치가 출력 스파이크(OS)가 발생된 시점이라면, x 축에서 양의 값을 갖는 영역(x > 0)은 출력 스파이크(OS)가 발생되기 이전 입력 스파이크(IS)가 발생된 시점에 따른 가중치 변화량(Δw)을 나타내고, 음의 값(x < 0)을 갖는 영역은 출력 스파이크(OS)가 발생된 이후 입력 스파이크(IS)가 발생된 시점에 따른 가중치 변화량(Δw)을 나타낸다.If the position at (0, 0) is the time when the output spike (OS) occurs, the region with a positive value on the x-axis (x > 0) is the input spike (IS) before the output spike (OS) occurs. Represents the weight change amount (Δw) according to the time of occurrence, and the region having a negative value (x < 0) is the weight change amount (Δw) according to the time when the input spike (IS) is generated after the output spike (OS) is generated indicates

반면 (0, 0)인 위치가 입력 스파이크(IS)가 발생된 시점이라면, x 축에서 양의 값(x > 0)을 갖는 영역은 입력 스파이크(IS)가 발생된 이후 출력 스파이크(OS)가 발생된 시점에 따른 가중치 변화량(Δw)을 나타내고, 음의 값(x < 0)을 갖는 영역은 입력 스파이크(IS)가 발생되기 이전 출력 스파이크(OS)가 발생된 시점에 따른 가중치 변화량(Δw)을 나타낸다.On the other hand, if the position at (0, 0) is the point at which the input spike (IS) occurs, the region with a positive value (x > 0) on the x-axis is the output spike (OS) after the input spike (IS) occurs. It represents the weight change amount (Δw) according to the time of occurrence, and the region having a negative value (x < 0) is the weight change amount (Δw) according to the time when the output spike (OS) is generated before the input spike (IS) is generated indicates

일예로 출력 스파이크(OS)가 발생된 시점을 기준으로 이전 20클럭 이내에 하나의 입력 스파이크(IS)가 발생되고, 이전 20클럭으로부터 60클럭 이내에 3개의 입력 스파이크(IS)가 발생되었다면, 가중치 변화량(Δw)은 20클럭 이내에 발생된 입력 스파이크(IS)의 개수 * 2 + 20클럭으로부터 60클럭 사이에 발생된 입력 스파이크(IS)의 개수 * 1로서 1 * 2 + 1 * 3 = 5로 계산된다. 따라서 가중치(w)는 가중치 변화량(Δw)에 의해 5만큼 증가된다.For example, if one input spike (IS) is generated within the previous 20 clocks from the time when the output spike (OS) is generated, and three input spikes (IS) are generated within 60 clocks from the previous 20 clock, the weight change amount ( Δw) is the number of input spikes (IS) generated within 20 clocks * 2 + the number of input spikes (IS) generated between 20 clocks and 60 clocks * 1, calculated as 1 * 2 + 1 * 3 = 5. Accordingly, the weight w is increased by 5 by the weight change amount Δw.

반면, 출력 스파이크(OS)가 발생된 시점을 기준으로 이후 20클럭 이내에 2개의 입력 스파이크(IS)가 발생되고, 이후 20클럭으로부터 60클럭 이내에 2개의 입력 스파이크(IS)가 발생되었다면, 가중치 변화량(Δw)은 20클럭 이내에 발생된 입력 스파이크(IS)의 개수 * -2 + 20클럭으로부터 60클럭 사이에 발생된 입력 스파이크(IS)의 개수 * -1로서 2 * -2 + 2 * -1 = -6으로 계산된다. 따라서 가중치(w)는 가중치 변화량(Δw)에 의해 6만큼 감소된다.On the other hand, if two input spikes (IS) are generated within 20 clocks after the time when the output spike (OS) is generated, and then two input spikes (IS) are generated within 60 clocks from 20 clocks, the weight change amount ( Δw) is the number of input spikes (IS) generated within 20 clocks * -2 + the number of input spikes (IS) generated between 20 clocks and 60 clocks * -1 as 2 * -2 + 2 * -1 = - counted as 6. Accordingly, the weight w is reduced by 6 by the weight change amount Δw.

결과적으로 가중치 학습부(400)는 양자화 STDP 함수에 따라 기준이 되는 스파이크로부터 기지정된 기간 동안 발생된 스파이크 중 더 가까운 시간에 발생된 스파이크에 대해 더 높은 비중을 부여하여 가중치 변화량(Δw)을 계산하고, 계산된 가중치 변화량(Δw)을 기존의 가중치(w)에 더하여 가중치를 업데이트한다.As a result, the weight learning unit 400 calculates the weight change amount (Δw) by giving a higher weight to the spike generated at the closer time among the spikes generated for a predetermined period from the standard spike according to the quantization STDP function, and , the weight is updated by adding the calculated weight change amount Δw to the existing weight w.

도 4에서는 양자화 STDP 함수의 일예로 20(또는 -20) 클럭과 60(또는 -60) 클럭을 기준으로 가중치 변화량(Δw)의 1 단위로 가변되는 것으로 도시하였으나, 가중치 변화량(Δw)이 변화하는 클럭 수와 가변되는 단위는 다양하게 조절될 수 있다. 또한 양자화 구간도 더욱 세분화될 수도 있다.In FIG. 4, as an example of the quantization STDP function, it is shown that the weight change amount (Δw) is varied by 1 unit based on 20 (or -20) clocks and 60 (or -60) clocks. The number of clocks and the variable unit can be variously adjusted. In addition, the quantization period may be further subdivided.

도 5는 도 1의 가중치 학습부의 상세 구성을 나타낸다.FIG. 5 shows a detailed configuration of the weight learning unit of FIG. 1 .

도 5를 참조하면, 가중치 학습부(400)는 업 변화량 획득부(410), 다운 변화량 획득부(420), 가중치 변화량 획득부(430) 및 가중치 업데이트부(440)를 포함할 수 있다.Referring to FIG. 5 , the weight learning unit 400 may include an up variation acquiring unit 410 , a down variation acquiring unit 420 , a weight variation acquiring unit 430 , and a weight updating unit 440 .

업 변화량 획득부(410)는 양자화 STDP 함수를 기반으로 가중치 시냅스(200)로 인가되는 입력 스파이크(IS)에 따라 가중치 변화량(Δw)을 증가시키기 위한 업 변화량(ΔwUP)을 획득한다. 업 변화량 획득부(410)는 입력 스파이크(IS)가 인가되면, 인가된 입력 스파이크(IS)에 따라 기지정된 제1 레벨로 업 변화량(ΔwUP)을 증가시킨다. 여기서 제1 레벨은 양자화 STDP 함수의 최대값으로 도 4에서는 2로 설정되어 있다. 따라서 업 변화량 획득부(410)는 입력 스파이크(IS)가 인가되면, 업 변화량(ΔwUP)을 2 만큼 증가시킨다. 그리고 입력 스파이크(IS)가 인가된 이후, 기지정된 제1 시간 구간(도 4 에서는 20 클럭)이 지나면, 증가된 업 변화량(ΔwUP)을 기지정된 변화 단위인 1 만큼 감소시키며, 기지정된 2시간 구간(도 4 에서는 60 클럭)이 지나면, 다시 증가된 업 변화량(ΔwUP)을 기지정된 변화 단위인 1만큼 감소시킨다. The up change amount obtaining unit 410 obtains an up change amount Δw UP for increasing the weight change amount Δw according to the input spike IS applied to the weighted synapse 200 based on the quantized STDP function. When the input spike IS is applied, the up variation obtaining unit 410 increases the up variation Δw UP to a predetermined first level according to the applied input spike IS. Here, the first level is the maximum value of the quantization STDP function, and is set to 2 in FIG. 4 . Accordingly, when the input spike IS is applied, the up change amount obtaining unit 410 increases the up change amount Δw UP by 2 . And after the input spike IS is applied, when a predetermined first time interval (20 clocks in FIG. 4) passes, the increased up change amount Δw UP is reduced by 1, which is a predetermined change unit, for 2 hours After the interval (60 clocks in FIG. 4 ) passes, the increased up change amount Δw UP is decreased by 1, which is a predetermined change unit.

즉 업 변화량 획득부(410)는 입력 스파이크(IS)가 인가될 때마다, 업 변화량(ΔwUP)을 양자화 STDP 함수의 최대값에 대응하는 제1 레벨만큼 증가시키고, 이후, 기지정된 제1 및 제2 시간 구간이 지날때마다 기지정된 변화 단위로 감소시켜, 제2 시간 구간 이후에는 입력 스파이크(IS)가 인가되어 제1 레벨만큼 증가된 업 변화량(ΔwUP)이 다시 입력 스파이크(IS)가 인가되기 이전과 동일한 상태로 전환한다.That is, the up change amount obtaining unit 410 increases the up change amount Δw UP by a first level corresponding to the maximum value of the quantized STDP function whenever the input spike IS is applied, and thereafter, the predetermined first and Each time the second time period passes, it is decreased by a predetermined change unit, and after the second time period, the input spike IS is applied and the up change amount Δw UP increased by the first level is again the input spike IS It is converted to the same state as before application.

여기서는 업 변화량 획득부(410)가 도 4의 양자화 STDP 함수를 기반으로 업 변화량(ΔwUP)을 조절하는 것으로 가정하였으므로, 제1 레벨은 2이고, 제1 및 제2 시간 구간이 지날때마다 -1씩 감소시키며, 시간 구간은 제1 시간 구간과 제2 시간 구간의 2개의 시간 구간으로 구분되는 것으로 설명하였다. 그러나 상기한 바와 같이, 양자화 STDP 함수는 변경될 수 있으며, 이 경우 시간 구간은 다수의 시간 구간으로 구분될 수도 있다. Here, since it is assumed that the up change amount obtaining unit 410 adjusts the up change amount Δw UP based on the quantization STDP function of FIG. 4 , the first level is 2, and each time the first and second time intervals pass - It is decreased by 1, and the time interval has been described as being divided into two time intervals, a first time interval and a second time interval. However, as described above, the quantization STDP function may be changed, and in this case, the time interval may be divided into a plurality of time intervals.

즉 업 변화량 획득부(410)는 양자화 STDP 함수에 기반하여 다수의 시간 구간을 구분하고, 구분된 시간 구간에 따라 기지정된 변화 단위로 업 변화량(ΔwUP)을 감소시킬 수 있다.That is, the up-change amount obtaining unit 410 may classify a plurality of time sections based on the quantized STDP function, and may reduce the up-change amount Δw UP in a predetermined change unit according to the divided time sections.

업 변화량 획득부(410)는 입력 스파이크(IS)가 인가될 때마다 상기한 동작을 반복적으로 수행한다.The up change amount obtaining unit 410 repeatedly performs the above-described operation whenever the input spike IS is applied.

한편, 다운 변화량 획득부(420)는 양자화 STDP 함수를 기반으로 가중치 시냅스(200)로 인가되는 출력 스파이크(OS)에 따라 가중치 변화량(Δw)을 감소시키기 위한 다운 변화량(ΔwUP)을 획득한다. 다운 변화량 획득부(420)는 출력 스파이크(OS)가 인가되면, 기지정된 제1 레벨로 다운 변화량(ΔwDN)을 증가시킨다. 그리고 출력 스파이크(OS)가 인가된 이후, 기지정된 제1 시간 구간이 지나면, 증가된 다운 변화량(ΔwDN)을 기지정된 변화 단위인 1 만큼 감소시키며, 기지정된 2시간 구간이 지나면, 다시 증가된 다운 변화량(ΔwUP)을 기지정된 변화 단위인 1만큼 감소시킨다. Meanwhile, the down change amount obtaining unit 420 obtains the down change amount Δw UP for reducing the weight change amount Δw according to the output spike OS applied to the weighted synapse 200 based on the quantized STDP function. When the output spike OS is applied, the down variation obtaining unit 420 increases the down variation Δw DN to a predetermined first level. And after the output spike (OS) is applied, when a predetermined first time interval passes, the increased down change amount (Δw DN ) is reduced by 1, which is a predetermined change unit, and after a predetermined 2 time interval, the increased The down change amount (Δw UP ) is decreased by 1, which is a predetermined change unit.

즉 다운 변화량 획득부(420)는 출력 스파이크(OS)가 인가될 때마다, 다운 변화량(ΔwDN)을 양자화 STDP 함수의 최대값에 대응하는 제1 레벨만큼 증가시키고, 이후, 기지정된 제1 및 제2 시간 구간이 지날때마다 기지정된 변화 단위로 감소시켜, 제2 시간 구간 이후에는 출력 스파이크(OS)가 인가되어 제1 레벨만큼 증가된 다운 변화량(ΔwDN)이 다시 입력 스파이크(IS)가 인가되기 이전과 동일한 상태로 전환한다.That is, the down change amount obtaining unit 420 increases the down change amount Δw DN by a first level corresponding to the maximum value of the quantized STDP function whenever the output spike OS is applied, and thereafter, the predetermined first and Each time the second time period passes, it is decreased by a predetermined change unit, and after the second time period, the output spike OS is applied and the down change amount Δw DN increased by the first level is again the input spike IS It is converted to the same state as before application.

여기서 다운 변화량 획득부(420) 또한 업 변화량 획득부(410)와 마찬가지로 양자화 STDP 함수에 기반하여 다수의 시간 구간을 구분하고, 구분된 시간 구간에 따라 기지정된 변화 단위로 다운 변화량(ΔwDN)을 감소시킬 수 있다.Here, the down variation obtaining unit 420 also divides a plurality of time sections based on the quantized STDP function like the up variation obtaining unit 410, and according to the divided time sections, the down variation (Δw DN ) in a predetermined change unit according to the divided time section. can be reduced

그리고 다운 변화량 획득부(420) 또한 출력 스파이크(OS)가 인가될 때마다 상기한 동작을 반복적으로 수행한다.In addition, the down change amount obtaining unit 420 also repeatedly performs the above-described operation whenever the output spike OS is applied.

결과적으로 업 변화량 획득부(410)와 다운 변화량 획득부(420)는 입력 스파이크(IS)를 인가받는지 출력 스파이크(OS)를 인가받는지에 대한 차이가 있을 뿐, 기본적으로 동일한 동작을 수행한다. 따라서 업 변화량 획득부(410)와 다운 변화량 획득부(420)는 동일 구성의 하드웨어로 구현될 수 있어, 구현의 편의성을 향상시킬 수 있다.As a result, the up-variance acquisition unit 410 and the down-variance acquisition unit 420 perform basically the same operation except for the difference in whether the input spike IS or the output spike OS is applied. Accordingly, the up-variance acquisition unit 410 and the down-variance acquisition unit 420 may be implemented with hardware having the same configuration, thereby improving the convenience of implementation.

가중치 변화량 획득부(430)는 업 변화량 획득부(410)와 다운 변화량 획득부(420)로부터 업 변화량(ΔwUP)과 다운 변화량(ΔwDN)을 인가받고, 업 변화량(ΔwUP)에서 다운 변화량(ΔwDN)을 차감하여 가중치 변화량(Δw)을 획득한다. 여기서 가중치 변화량 획득부(430)가 업 변화량(ΔwUP)에서 다운 변화량(ΔwDN)을 차감하여 가중치 변화량(Δw)을 획득하는 것은 업 변화량 획득부(410)와 다운 변화량 획득부(420)는 동일 구성의 하드웨어로 구현되어 동일 부호의 값으로 출력하기 때문이다. The weight change acquisition unit 430 receives the up change amount (Δw UP ) and the down change amount (Δw DN ) from the up change amount acquisition unit 410 and the down change amount acquisition unit 420 , and the down change amount in the up change amount (Δw UP ) (Δw DN ) is subtracted to obtain a weight change amount (Δw). Here, the weight change acquisition unit 430 obtains the weight change amount Δw by subtracting the down change amount Δw DN from the up change amount Δw UP . The up change amount acquisition unit 410 and the down change amount acquisition unit 420 are This is because it is implemented by hardware of the same configuration and outputs a value with the same sign.

만일 다운 변화량 획득부(420)가 업 변화량 획득부(410)와 달리 음의 값을 갖는 다운 변화량(ΔwDN)을 출력하도록 구성된다면, 가중치 변화량 획득부(430)는 업 변화량(ΔwUP)에서 다운 변화량(ΔwDN)을 가산하여 가중치 변화량(Δw)을 획득할 수 있다. If the down change amount obtaining unit 420 is configured to output the down variance (Δw DN ) having a negative value, unlike the up variance obtaining unit 410 , the weight variance obtaining unit 430 is the up variance (Δw UP ) in the The weight change amount Δw may be obtained by adding the down change amount Δw DN .

그리고 가중치 변화량 획득부(430)는 획득된 가중치 변화량(Δw)을 가중치 업데이트부(440)로 출력한다. 여기서 가중치 변화량 획득부(430)는 실시간으로 매클럭에서 가중치 변화량(Δw)을 획득하여 가중치 업데이트부(440)로 전달할 수 있다.Then, the weight change amount obtaining unit 430 outputs the obtained weight change amount Δw to the weight update unit 440 . Here, the weight change amount obtaining unit 430 may obtain the weight change amount Δw at every clock in real time and transmit the obtained weight change amount Δw to the weight update unit 440 .

가중치 업데이트부(440)는 스파이크(입력 스파이크(IS) 또는 출력 스파이크(OS))가 발생되면, 저장된 현재 가중치(w(t))를 인가받고, 인가된 가중치(w(t))에 가중치 변화량(Δw)을 더하여 업데이트 가중치(w(t+1))를 획득한다. 그리고 획득된 업데이트 가중치(w(t+1))를 가중치 시냅스(200)에 가중치(w(t))를 대체하여 저장함으로써 가중치를 업데이트 한다. 즉 SNN을 학습시킨다.When a spike (input spike (IS) or output spike (OS)) occurs, the weight update unit 440 receives the stored current weight w(t), and changes the weight to the applied weight w(t). (Δw) is added to obtain an update weight w(t+1). Then, the weight is updated by replacing the weight w(t) in the weight synapse 200 and storing the obtained update weight w(t+1). That is, the SNN is trained.

도 6은 도 5의 변화량 획득부의 개략적 구조를 나타내고, 도 7은 도 6의 구간 지연부의 상세 구성의 일예를 나타낸다.6 shows a schematic structure of the change amount obtaining unit of FIG. 5 , and FIG. 7 shows an example of a detailed configuration of the section delay unit of FIG. 6 .

도 6에서는 일예로 업 변화량 획득부(410)의 개략적 구조를 도시하였으며, 이에 입력 스파이크(IS)가 인가되는 것으로 가정하여 도시하였다. 그러나 상기한 바와 같이, 업 변화량 획득부(410)와 다운 변화량 획득부(420)는 동일 구성의 하드웨어로 구현될 수 있으므로 다운 변화량 획득부(420)도 동일한 구조를 가질 수 있다. 다만 다운 변화량 획득부(420)의 경우, 입력 스파이크(IS)가 아닌 출력 스파이크(OS)를 인가받는다.6 illustrates a schematic structure of the up change amount obtaining unit 410 as an example, and it is assumed that the input spike IS is applied thereto. However, as described above, since the up variation acquiring unit 410 and the down variation acquiring unit 420 may be implemented with the same hardware, the down variation acquiring unit 420 may also have the same structure. However, in the case of the down change amount acquisition unit 420, the output spike OS, not the input spike IS, is applied.

도 6을 참조하면, 업 변화량 획득부(410)는 제1 구간 지연부(411), 제2 구간 지연부(412) 및 변화량 계산부(413)를 포함할 수 있다.Referring to FIG. 6 , the up change amount obtaining unit 410 may include a first interval delay unit 411 , a second interval delay unit 412 , and a change amount calculation unit 413 .

우선 제1 구간 지연부(411)는 인가된 입력 스파이크(IS)를 기지정된 제1 시간 구간 지연하여 출력한다. 그리고 제2 구간 지연부(422)는 제1 구간 지연부(411)에서 출력되는 입력 스파이크(IS)를 다시 제2 시간 구간 지연하여 출력한다.First, the first period delay unit 411 delays the applied input spike IS for a first predetermined time period and outputs it. In addition, the second section delay unit 422 delays the input spike IS output from the first section delay unit 411 for a second time section and outputs the delay.

도 7에 도시된 바와 같이, 제1 구간 지연부(411) 및 제2 구간 지연부(412)는 각각 순차 연결된 다수의 플립플롭(Flipflop)으로 구현될 수 있다. 제1 구간 지연부(411)는 제1 시간 구간에 대응하는 개수의 플립플롭(FF1 ~ FF20)으로 구현되고, 제2 구간 지연부(412)는 제2 시간 구간에 대응하는 개수의 플립플롭(FF21 ~ FF60)으로 구현될 수 있다. 여기서는 일예로 도 4에 도시된 양자화 STDP 함수에 기초하여 제1 구간 지연부(411)가 인가된 입력 스파이크(IS)를 20 클럭만큼 지연할 수 있도록 20개의 플립플롭(FF1 ~ FF20)을 포함하고, 제2 구간 지연부(412)는 40 클럭만큼 지연할 수 있도록 40개의 플립플롭(FF1 ~ FF40)을 포함하는 것으로 도시하였다.As shown in FIG. 7 , the first section delay unit 411 and the second section delay unit 412 may be implemented as a plurality of flip-flops sequentially connected, respectively. The first interval delay unit 411 is implemented with the number of flip-flops FF1 to FF20 corresponding to the first time interval, and the second interval delay unit 412 includes the number of flip-flops corresponding to the second time interval. FF21 to FF60). Here, for example, based on the quantization STDP function shown in FIG. 4 , the first section delay unit 411 includes 20 flip-flops FF1 to FF20 to delay the applied input spike IS by 20 clocks, and , the second section delay unit 412 is illustrated as including 40 flip-flops FF1 to FF40 to be delayed by 40 clocks.

변화량 계산부(413)는 입력 스파이크(IS)가 인가되면, 저정된 업 변화량(ΔwUP)을 기지정된 제1 레벨만큼 증가(+2)시키고, 제1 구간 지연부(411) 및 제2 구간 지연부(412)에서 입력 스파이크(IS)가 출력될 때마다 저장된 업 변화량(ΔwUP)을 기지정된 변화 단위만큼 감소(-1)시킨다.When the input spike IS is applied, the change amount calculator 413 increases (+2) the stored up change amount Δw UP by a predetermined first level (+2), and the first section delay unit 411 and the second section Each time the input spike IS is output from the delay unit 412, the stored up change amount Δw UP is decreased (-1) by a predetermined change unit.

여기서는 상기한 바와 같이, 업 변화량 획득부(410)가 양자화 STDP 함수에 기반하여 시간 구간을 2개로 구분하는 것으로 가정하여, 제1 구간 지연부(411) 및 제2 구간 지연부(412)를 포함하는 것으로 도시하였으나, 업 변화량 획득부(410)는 다수의 구간 지연부를 포함할 수 있으며, 이 경우 변화량 계산부(413)는 다수의 구간 지연부 각각에서 입력 스파이크(IS)가 출력될 때마다 저장된 업 변화량(ΔwUP)을 기지정된 변화 단위만큼 감소(-1)시킬 수 있다.Here, as described above, it is assumed that the up-change amount obtaining unit 410 divides the time interval into two based on the quantized STDP function, including a first interval delay unit 411 and a second interval delay unit 412 . Although shown as doing, the up-change amount obtaining unit 410 may include a plurality of interval delay units, and in this case, the variance calculation unit 413 stores the input spikes IS from each of the plurality of interval delay units each time it is output. The up change amount Δw UP may be decreased (-1) by a predetermined change unit.

도 7과 같이 제1 구간 지연부(411) 및 제2 구간 지연부(412)가 각각 다수의 플립플롭(FF1 ~ FF60)으로 구현되면, 다수의 플립플롭(FF1 ~ FF60)은 업 변화량 획득부(410)로 이전 기지정된 기간(여기서는 60클럭) 동안 인가된 입력 스파이크(IS)의 히스토리를 항시 저장하고 있게 된다. 즉 기존과 달리 별도의 메모리를 이용하지 않고서도 매우 간단한 하드웨어 구성으로 입력 스파이크 히스토리를 획득할 수 있게 된다.As shown in FIG. 7 , when the first section delay unit 411 and the second section delay unit 412 are implemented as a plurality of flip-flops FF1 to FF60, respectively, the plurality of flip-flops FF1 to FF60 is an up-change amount obtaining unit. At 410, the history of the input spike IS applied for a predetermined period (here, 60 clocks) is always stored. That is, it is possible to acquire the input spike history with a very simple hardware configuration without using a separate memory unlike the existing one.

다만 본 실시예에서는 업 변화량 획득부(410)로 입력 스파이크가 인가되거나 제1 구간 지연부(411) 및 제2 구간 지연부(412)에서 지연된 입력 스파이크(IS)가 출력될 때마다 업 변화량(ΔwUP)이 실시간으로 업데이트되어 있게 되므로, 이후 가중치(w)를 업데이트하는 시점에 별도로 저장된 입력 스파이크 히스토리를 확인하지 않아도 된다. 따라서 매우 간단한 하드웨어 구성으로 업 변화량(ΔwUP)이 실시간으로 업데이트할 수 있다.However, in the present embodiment, whenever an input spike is applied to the up change amount obtaining unit 410 or the delayed input spike IS is output from the first section delay unit 411 and the second section delay unit 412, the up change amount ( Since Δw UP ) is updated in real time, it is not necessary to check the separately stored input spike history at the time of updating the weight w later. Therefore, the up change amount (Δw UP ) can be updated in real time with a very simple hardware configuration.

그리고 상기한 바와 같이, 다운 변화량 획득부(420) 또한 업 변화량 획득부(410)와 동일하게 구성될 수 있으므로, 출력 스파이크 히스토리를 별도의 메모리 등에 저장하지 않더라도, 다운 변화량(ΔwDN)이 실시간으로 업데이트할 수 있다.And as described above, since the down change amount obtaining unit 420 can also be configured in the same way as the up change amount obtaining unit 410, even if the output spike history is not stored in a separate memory, the down change amount (Δw DN ) is displayed in real time. can be updated.

결과적으로 본 실시예에서는 다수의 플립플롭을 이용하여 입력 스파이크 히스토리와 출력 스파이크 히스토리에 따른 업 변화량(ΔwUP)과 다운 변화량(ΔwDN)을 실시간으로 획득할 수 있으며, 획득된 업 변화량(ΔwUP)과 다운 변화량(ΔwDN)으로부터 가중치 변화량(Δw) 또한 실시간으로 획득할 수 있다.As a result, in this embodiment, up variation of the input spikes history and output spike history using a plurality of flip-flops (Δw UP) and down variation (Δw DN) a can be obtained in real time, the acquired-up variation (Δw UP ) and the weight change amount Δw from the down change amount Δw DN can also be obtained in real time.

도 8은 도 6의 구간 지연부의 상세 구성의 다른 예를 나타낸다.FIG. 8 shows another example of the detailed configuration of the interval delay unit of FIG. 6 .

도 8의 구간 지연부를 살펴보면, 도 8에서 제1 구간 지연부(411) 및 제2 구간 지연부(412) 각각 4개 플립플롭(FF1 ~ FF4)와 8개의 플립 플롭(FF5 ~ FF12)을 포함한다. 즉 도 7의 제1 구간 지연부(411) 및 제2 구간 지연부(412)에 비해 플립플롭의 개수를 1/5로 줄인 구성을 갖는다. 그리고 플립플롭의 개수가 줄어든 비율에 따라 다수의 플립플롭(FF1 ~ FF12) 각각은 도 7에 비해 주기가 5배로 증가된 클럭(CLK_X5)을 인가받는다.Referring to the section delay unit of FIG. 8 , in FIG. 8 , the first section delay unit 411 and the second section delay unit 412 include four flip-flops FF1 to FF4 and eight flip-flops FF5 to FF12, respectively. do. That is, it has a configuration in which the number of flip-flops is reduced by 1/5 compared to the first section delay unit 411 and the second section delay unit 412 of FIG. 7 . In addition, each of the plurality of flip-flops FF1 to FF12 is applied with a clock CLK_X5 whose period is increased by 5 times compared to FIG.

도 7과 같이, 다수의 플립플롭(FF1 ~ FF60)이 매 클럭(CLK)마다 입력 스파이크(IS)를 인접한 다음 단의 플립플롭으로 전달하도록 구성되면, 모든 입력 스파이크(IS)에 대한 히스토리가 제1 구간 지연부(411) 및 제2 구간 지연부(412)에 저장되어 상세한 스파이크 히스토리가 획득되지만, 다수의 플립플롭을 구비함에 따라 제조 비용이나 크기 및 전력 소비의 측면에서 비효율적이다.7, when the plurality of flip-flops FF1 to FF60 are configured to transfer the input spike IS to the flip-flop of the next adjacent stage at every clock CLK, the history of all the input spikes IS is first Although the detailed spike history is obtained by being stored in the first section delay unit 411 and the second section delay unit 412, it is inefficient in terms of manufacturing cost, size, and power consumption as it includes a plurality of flip-flops.

이에 도 8에서는 클럭 주기를 기지정된 비율로 증가시키는 타임 스텝 스케일링(time step scaling) 기법을 적용함으로써, 제1 구간 지연부(411) 및 제2 구간 지연부(412) 각각을 구성하는 플리플롭의 개수를 타임 스텝 스케일링 비율만큼 줄일 수 있도록 한다. 여기서는 일예로 클럭(CLK)의 주기를 5배로 증가시키고, 주기가 5배로 증가된 스케일링 클럭(CLK_X5)에 응답하여 제1 구간 지연부(411) 및 제2 구간 지연부(412)의 플립플롭이 동작하도록 함으로써, 제1 구간 지연부(411) 및 제2 구간 지연부(412)가 각각 도 7이 비해 1/5로 줄어든 개수의 플립플롭으로 구성될 수 있도록 하였다.Accordingly, in FIG. 8, by applying a time step scaling technique of increasing the clock period at a predetermined ratio, the flip-flops constituting each of the first section delay unit 411 and the second section delay unit 412 are shown. Allows the number to be reduced by the time step scaling factor. Here, as an example, the flip-flops of the first section delay unit 411 and the second section delay unit 412 are performed by increasing the cycle of the clock CLK by 5 times and in response to the scaling clock CLK_X5 whose cycle is increased by 5 times By operating it, the first section delay unit 411 and the second section delay unit 412 can each be configured with the number of flip-flops reduced to 1/5 compared to FIG. 7 .

다만 타임 스텝 스케일링 기법에 따라 기존에 매 클럭 단위로 스파이크를 전달하던 플립플롭이 5클럭마다 전달하게 되며, 이로 인해 스파이크 히스토리의 정확도가 낮아지게 될 수 있다. 그러나 입력 및 출력 스파이크는 매 클럭마다 발생되지 않으므로, 이로 인한 오차는 크지 않다. 즉 학습 성능은 크게 저하되지 않는다.However, according to the time step scaling technique, the flip-flop, which previously transmitted a spike in units of every clock, is transmitted every 5 clocks, and this may reduce the accuracy of the spike history. However, since the input and output spikes do not occur every clock, the error caused by this is not large. That is, the learning performance is not significantly degraded.

상기한 타임 스텝 스케일링 기법은 업 변화량 획득부(410)와 다운 변화량 획득부(420) 각각의 구간 지연부에 동일하게 적용될 수 있으나, 경우에 따라서는 업 변화량 획득부(410)와 다운 변화량 획득부(420) 중 하나에만 적용될 수도 있다. 또한 업 변화량 획득부(410)와 다운 변화량 획득부(420)에 서로 다른 비율로 타임 스텝 스케일링 기법이 적용될 수도 있다.The above-described time step scaling technique may be equally applied to each section delay unit of the up variation obtaining unit 410 and the down variation obtaining unit 420, but in some cases, the up variation obtaining unit 410 and the down variation obtaining unit It may be applied to only one of (420). In addition, the time step scaling technique may be applied to the up variation obtaining unit 410 and the down variation obtaining unit 420 at different ratios.

도 9는 타임 스텝 스케일링 비율에 따른 학습 정확도를 분석한 결과를 나타내고, 도 10은 타임 스텝 스케일링이 적용되어 학습된 결과를 나타낸다.9 shows the result of analyzing the learning accuracy according to the time step scaling ratio, and FIG. 10 shows the result of learning by applying the time step scaling.

도 9에 도시된 바와 같이, 타임 스텝 스케일링 비율(N)이 4인 경우까지는 학습 정확도가 타임 스텝 스케일링을 적용하지 않을 때와 거의 동일하게 나타남을 알 수 있다. 그리고 도 8에서와 같이, 타임 스텝 스케일링 비율(N)이 5인 경우에도 학습 정확도는 약 2% 정도만 감소되는 것으로 나타났다.As shown in FIG. 9 , it can be seen that the learning accuracy is almost the same as when the time step scaling ratio is not applied until the time step scaling ratio N is 4. And, as shown in FIG. 8, even when the time step scaling ratio (N) is 5, it was found that the learning accuracy was reduced by only about 2%.

도 10은 타임 스텝 스케일링 비율(N)을 5로 적용하여 학습을 수행한 후 가중치를 재구성한 결과를 나타내며, 도 10에 도시된 바와 같이, 타임 스텝 스케일링 비율(N)을 적용하더라도 SNN의 학습 성능은 크게 저하되지 않음을 알 수 있다.10 shows the result of reconstructing the weights after performing learning by applying the time step scaling ratio (N) to 5, and as shown in FIG. 10 , the learning performance of the SNN even when the time step scaling ratio (N) is applied. It can be seen that is not significantly reduced.

따라서 타임 스텝 스케일링을 적용하여, 구간 지연부에 포함되는 플립플롭의 개수를 줄이면, 학습 성능을 유지하면서 제조 비용이나 크기 및 전력 소비를 저감시킬 수 있다.Therefore, if the number of flip-flops included in the section delay unit is reduced by applying time step scaling, manufacturing cost, size, and power consumption can be reduced while maintaining learning performance.

본 발명에 따른 방법은 컴퓨터에서 실행시키기 위한 매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다. 여기서 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 또한 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하며, ROM(판독 전용 메모리), RAM(랜덤 액세스 메모리), CD(컴팩트 디스크)-ROM, DVD(디지털 비디오 디스크)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함할 수 있다.The method according to the present invention may be implemented as a computer program stored in a medium for execution by a computer. Here, the computer-readable medium may be any available medium that can be accessed by a computer, and may include all computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, and read dedicated memory), RAM (Random Access Memory), CD (Compact Disk)-ROM, DVD (Digital Video Disk)-ROM, magnetic tape, floppy disk, optical data storage, and the like.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.Although the present invention has been described with reference to the embodiment shown in the drawings, which is merely exemplary, those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom.

따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.Accordingly, the true technical protection scope of the present invention should be defined by the technical spirit of the appended claims.

100: 입력 뉴런 200: 가중치 시냅스
300: 출력 뉴런 400: 가중치 학습부
410: 업 변화량 획득부 420: 다운 변화량 획득부
430: 가중치 변화량 획득부 440: 가중치 업데이트부
411: 제1 구간 지연부 412: 제2 구간 지연부
413: 변화량 계산부
100: input neuron 200: weighted synapse
300: output neuron 400: weight learning unit
410: up variation acquisition unit 420: down variation acquisition unit
430: weight change amount acquisition unit 440: weight update unit
411: first section delay unit 412: second section delay unit
413: change amount calculation unit

Claims (9)

미리 저장된 다수의 가중치 중 인가되는 입력 스파이크에 대응하는 가중치를 누적 가산하여 획득된 누적 스파이크 신호가 기기정된 발화 문턱값 이상이면 출력 스파이크를 발화하는 스파이킹 신경망을 학습시키기 위해, 상기 입력 스파이크와 상기 출력 스파이크 사이의 시간 차에 기반하여 상기 가중치를 조절하기 위한 변화량이 다수의 시간 구간별로 구분되어 미리 설정된 양자화 STDP 함수에 기초하여, 상기 입력 스파이크가 인가되거나, 상기 입력 스파이크가 인가된 후 상기 양자화 STDP 함수에 의해 구분된 다수의 시간 구간에 도달할 때마다 업 변화량을 업데이트하는 업 변화량 획득부;
상기 입력 스파이크가 인가되거나, 상기 입력 스파이크가 인가된 후 상기 양자화 STDP 함수에 의해 구분된 다수의 시간 구간에 도달할 때마다 다운 변화량을 업데이트하는 다운 변화량 획득부;
상기 업 변화량과 상기 다운 변화량을 이용하여 가중치 변화량을 획득하는 변화량 획득부; 및
상기 가중치 변화량을 상기 가중치에 가산하여 가중치를 업데이트하는 가중치 업데이트부를 포함하는 스파이킹 신경망 학습 장치.
In order to train a spiking neural network that ignites an output spike when a cumulative spike signal obtained by cumulatively adding a weight corresponding to an applied input spike among a plurality of stored weights is equal to or greater than a predetermined firing threshold, the input spike and the The amount of change for adjusting the weight based on the time difference between output spikes is divided into a plurality of time sections and based on a preset quantization STDP function, the input spike is applied or after the input spike is applied, the quantization STDP an up change amount obtaining unit that updates the up change amount every time a plurality of time sections divided by a function are reached;
a down change amount obtaining unit that updates the down change amount whenever the input spike is applied or a plurality of time intervals divided by the quantization STDP function after the input spike is applied;
a change amount obtaining unit for obtaining a weight change amount using the up change amount and the down change amount; and
and a weight updater configured to update a weight by adding the weight change amount to the weight.
제1 항에 있어서, 상기 업 변화량 획득부는
직렬로 연결되어 상기 입력 스파이크가 인가되면 각각 기지정된 시간 구간만큼 상기 입력 스파이크를 지연하여 출력하는 다수의 구간 지연부; 및
상기 입력 스파이크가 인가되면, 기저장된 업 변화량을 양자화 STDP 함수에 의해 설정된 최대값만큼 증가시키고, 상기 다수의 구간 지연부 각각에서 지연된 입력 스파이크가 출력될 때마다 상기 양자화 STDP 함수에 의해 설정된 기지정된 변화 단위만큼 상기 업 변화량을 감소시키는 변화량 계산부를 포함하는 스파이킹 신경망 학습 장치.
The method of claim 1, wherein the up change amount obtaining unit
a plurality of section delay units connected in series to delay and output the input spike by a predetermined time section when the input spike is applied; and
When the input spike is applied, the pre-stored up change amount is increased by the maximum value set by the quantization STDP function, and whenever the delayed input spike is output from each of the plurality of section delay units, a predetermined change set by the quantization STDP function A spiking neural network learning apparatus comprising a change amount calculation unit for decreasing the up change amount by a unit.
제2 항에 있어서, 상기 다수의 구간 지연부 각각은
상기 양자화 STDP 함수에 의해 구분된 다수의 시간 구간 중 대응하는 시간 구간에 대응하는 개수로 직렬 연결되고, 각각 기지정된 주기의 클럭에 응답하여 상기 입력 스파이크를 인가받거나, 이전 인가된 입력 스파이크를 전달하는 다수의 플립플롭을 포함하는 스파이킹 신경망 학습 장치.
The method of claim 2, wherein each of the plurality of interval delay units comprises:
A plurality of time sections divided by the quantization STDP function are serially connected in a number corresponding to a corresponding time section, and the input spike is applied in response to a clock of a predetermined period, respectively, or a previously applied input spike is delivered. A spiking neural network training device including a plurality of flip-flops.
제3 항에 있어서, 상기 다수의 구간 지연부 각각은
상기 클럭의 주기가 미리 지정된 타임 스텝 스케일링 비율에 따라 증가된 스케일링 클럭에 응답하여 상기 입력 스파이크를 인가받거나, 이전 인가된 입력 스파이크를 전달하는 다수의 플립플롭을 포함하고,
상기 다수의 플립플롭은 대응하는 시간 구간에서 상기 타임 스텝 스케일링 비율만큼 감소된 개수로 포함되는 스파이킹 신경망 학습 장치.
4. The method of claim 3, wherein each of the plurality of interval delay units comprises:
and a plurality of flip-flops receiving the input spike in response to the scaling clock increased according to a predetermined time step scaling ratio or transferring the previously applied input spike, wherein the cycle of the clock includes a plurality of flip-flops,
A spiking neural network learning apparatus including the plurality of flip-flops reduced by the time step scaling ratio in a corresponding time interval.
제1 항에 있어서, 상기 다운 변화량 획득부는
직렬로 연결되어 상기 출력 스파이크가 인가되면 각각 기지정된 시간 구간만큼 상기 출력 스파이크를 지연하여 출력하는 다수의 구간 지연부; 및
상기 출력 스파이크가 인가되면, 기저장된 다운 변화량을 상기 양자화 STDP 함수에 의해 설정된 최대값만큼 증가시키고, 상기 다수의 구간 지연부 각각에서 지연된 출력 스파이크가 출력될 때마다 상기 양자화 STDP 함수에 의해 설정된 기지정된 변화 단위만큼 상기 다운 변화량을 감소시키는 변화량 계산부를 포함하는 스파이킹 신경망 학습 장치.
According to claim 1, wherein the down change amount obtaining unit
a plurality of section delay units connected in series to delay and output the output spike by a predetermined time section when the output spike is applied; and
When the output spike is applied, the pre-stored down change amount is increased by the maximum value set by the quantization STDP function, and whenever a delayed output spike is output from each of the plurality of interval delay units, a predetermined value set by the quantization STDP function is output. A spiking neural network learning apparatus comprising a change amount calculation unit for decreasing the down change amount by a change unit.
제5 항에 있어서, 상기 다수의 구간 지연부 각각은
상기 양자화 STDP 함수에 의해 구분된 다수의 시간 구간 중 대응하는 시간 구간에 대응하는 개수로 직렬 연결되고, 각각 기지정된 주기의 클럭에 응답하여 상기 출력 스파이크를 인가받거나, 이전 인가된 출력 스파이크를 전달하는 다수의 플립플롭을 포함하는 스파이킹 신경망 학습 장치.
The method of claim 5, wherein each of the plurality of interval delay units is
It is serially connected in a number corresponding to a corresponding time interval among a plurality of time intervals divided by the quantization STDP function, and receives the output spike in response to a clock of a predetermined period, or delivers the previously applied output spike A spiking neural network training device including a plurality of flip-flops.
제6 항에 있어서, 상기 다수의 구간 지연부 각각은
상기 클럭의 주기가 미리 지정된 타임 스텝 스케일링 비율에 따라 증가된 스케일링 클럭에 응답하여 상기 출력 스파이크를 인가받거나, 이전 인가된 출력 스파이크를 전달하는 다수의 플립플롭을 포함하고,
상기 다수의 플립플롭은 대응하는 시간 구간에 상기 타임 스텝 스케일링 비율만큼 감소된 개수로 포함되는 스파이킹 신경망 학습 장치.
7. The method of claim 6, wherein each of the plurality of interval delay units comprises:
and a plurality of flip-flops receiving the output spike in response to the scaling clock increased according to a predetermined time step scaling ratio or transferring the previously applied output spike, wherein the cycle of the clock includes a plurality of flip-flops,
The spiking neural network learning apparatus is included in the number of the plurality of flip-flops reduced by the time step scaling ratio in a corresponding time interval.
제1 항에 있어서, 상기 변화량 획득부는
상기 업 변화량에서 상기 다운 변화량을 차감하여 가중치 변화량을 획득하는 스파이킹 신경망 학습 장치.
The method of claim 1, wherein the change amount obtaining unit
A spiking neural network learning apparatus for obtaining a weight change amount by subtracting the down change amount from the up change amount.
제1 항에 있어서, 상기 가중치 업데이트부는
상기 입력 스파이크 또는 상기 출력 스파이크가 인가되면, 상기 가중치 변화량을 대응하는 가중치에 가산하여 가중치를 업데이트하는 스파이킹 신경망 학습 장치.
The method of claim 1, wherein the weight update unit
When the input spike or the output spike is applied, the spiking neural network learning apparatus is configured to update the weight by adding the weight change amount to the corresponding weight.
KR1020190160518A 2019-12-05 2019-12-05 Apparatus for learning a spiking neural network KR102344678B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190160518A KR102344678B1 (en) 2019-12-05 2019-12-05 Apparatus for learning a spiking neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190160518A KR102344678B1 (en) 2019-12-05 2019-12-05 Apparatus for learning a spiking neural network

Publications (2)

Publication Number Publication Date
KR20210070589A true KR20210070589A (en) 2021-06-15
KR102344678B1 KR102344678B1 (en) 2021-12-28

Family

ID=76411958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190160518A KR102344678B1 (en) 2019-12-05 2019-12-05 Apparatus for learning a spiking neural network

Country Status (1)

Country Link
KR (1) KR102344678B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102514650B1 (en) * 2021-11-30 2023-03-29 서울대학교산학협력단 Neuromorphic device and method for compensating for variation characteristics in neuromorphic device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230149071A (en) 2022-04-19 2023-10-26 백석대학교산학협력단 System and method for predicting dangerous driving behavior using spiking neural network
KR20240041798A (en) 2022-09-23 2024-04-01 고려대학교 산학협력단 Method and System for Spiking Neural Network Based Conversion Aware Training

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180062934A (en) 2016-12-01 2018-06-11 한국과학기술원 Spiking neural network system for dynamic control of flexible, stable and hybrid memory storage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180062934A (en) 2016-12-01 2018-06-11 한국과학기술원 Spiking neural network system for dynamic control of flexible, stable and hybrid memory storage

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
O. Bichler, et al., "Extraction of Temporally Correlated Features from Dynamic Vision Sensors with Spike-Timing-Dependent Plasticity," Neural Networks, pp. 339-348 (2012.08.31.)* *
Sung-Sik Park and Seong-Ro Yoon "Temporal Interaction Between STDP Algorithm and Spike", Actual Journal of Computing of the Information Science Society, Vol. 24(9), pp. 482-486 (2018.09.30.)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102514650B1 (en) * 2021-11-30 2023-03-29 서울대학교산학협력단 Neuromorphic device and method for compensating for variation characteristics in neuromorphic device
WO2023101255A1 (en) * 2021-11-30 2023-06-08 서울대학교산학협력단 Neuromorphic device and method for compensating for variation characteristics in neuromorphic device

Also Published As

Publication number Publication date
KR102344678B1 (en) 2021-12-28

Similar Documents

Publication Publication Date Title
KR102344678B1 (en) Apparatus for learning a spiking neural network
WO2023284142A1 (en) Signal processing method for neuron in spiking neural network and method for training said network
CN111801693B (en) Neural network device, signal generation method, and program
WO2022148272A1 (en) Spiking neural network training method, data processing method, electronic device, and medium
CN106845633B (en) Neural network information conversion method and system
US5446829A (en) Artificial network for temporal sequence processing
CN114386561A (en) Improved Bayesian neural network and method and apparatus for operating the same
EP3685318A1 (en) Temporal pooling and correlation in an artificial neural network
CN113537455B (en) Synaptic weight training method, electronic device, and computer-readable medium
KR102500633B1 (en) Apparatus and method for learning a spiking neural network
US6813390B2 (en) Scalable expandable system and method for optimizing a random system of algorithms for image quality
CN109697511B (en) Data reasoning method and device and computer equipment
KR102419338B1 (en) Apparatus and method for learning a spiking neural network
CN116108898A (en) Digital pulse neural network conversion method and device for attractor neural network
US20210049462A1 (en) Computer system and model training method
EP4024287A1 (en) Method and apparatus for processing data, and related product
KR102478256B1 (en) Rank order coding based spiking convolutional neural network calculation method and handler
US11526735B2 (en) Neuromorphic neuron apparatus for artificial neural networks
CN113177634A (en) Image analysis system, method and equipment based on neural network input and output quantification
CN111582461A (en) Neural network training method and device, terminal equipment and readable storage medium
WO2002080563A2 (en) Scalable expandable system and method for optimizing a random system of algorithms for image quality
KR102637568B1 (en) Method and apparatus of optimizing spiking neural network
KR102196874B1 (en) Learning device, learning method, device and method for generating satellite image
US20220237412A1 (en) Method for modelling synthetic data in generative adversarial networks
CN117592537A (en) Graph data representation learning method under dynamic scene

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