KR20210070589A - Apparatus for learning a spiking neural network - Google Patents
Apparatus for learning a spiking neural network Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal 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
Description
본 발명은 스파이킹 신경망의 학습 장치에 관한 것으로, 스파이크 타이밍 의존 가소성을 하드웨어적으로 구현하는 스파이킹 신경망의 학습 장치에 관한 것이다.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.
본 발명의 목적은 스파이킹 신경망을 학습시키기 위한 가중치 변화량을 실시간으로 용이하게 획득할 수 있는 스파이킹 신경망의 학습 장치를 제공하는데 있다.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
입력 뉴런(100)은 입력 데이터를 기지정된 방식에 따라 인코딩하여 다수의 입력 스파이크로 변환하고, 변환된 다수의 입력 스파이크를 가중치 시냅스(200)로 전달한다.The
입력 뉴런(100)은 입력 데이터의 값에 따라 각각 시간차를 두고 발생되는 다수의 입력 스파이크로 변환할 수 있다. 일예로 입력 뉴런(100)은 이미지에서 대응하는 각 픽셀의 픽셀값들을 입력 데이터로 인가받고, 인가된 픽셀값에 따라 시간차를 두고 발생되는 입력 스파이크를 출력할 수 있다.The
입력 뉴런(100)이 입력 데이터를 입력 스파이크로 변환하는 방법은 다양하게 연구되어 있으며 일예로 확률에 기반하여 입력 스파이크를 생성할 수 있다. 이때 입력 뉴런(100)의 입력 뉴런은 상기한 바와 같이, 입력 데이터를 한번의 입력 스파이크들로 변환하는 것이 아니라, 입력 데이터에 기초하여 다수의 입력 스파이크를 시간차를 두고 여러 번 생성하여 출력할 수 있다.Methods for the
즉 도 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
또한 입력 뉴런(100)은 이진 데이터 형식으로 다수의 입력 스파이크를 인가받도록 구성될 수도 있으며, 이 경우 입력 뉴런(100)은 다수의 입력 스파이크를 버퍼링하여 출력하는 버퍼로 구현될 수 있다.Also, the
경우에 따라서 입력 뉴런(100)은 다른 뉴런의 출력 뉴런(300)에서 출력되는 출력 스파이크를 인가받아 입력 스파이크로 출력할 수 있다. 이때, 입력 뉴런(100)과 출력 뉴런(300) 사이의 매칭 관계가 상이하다면, 입력 뉴런(100)과 출력 뉴런(300) 사이의 대응 관계를 정의하는 SRT(Synapse Routing Table)를 이용할 수도 있다.In some cases, the
가중치 시냅스(200)는 SNN에서 두뇌의 시냅스를 모방한 구성으로, 다수의 가중치를 저장하는 메모리 어레이와 유사한 구조를 가질 수 있다. 일 예로 가중치 시냅스(200)는 SRAM(Static Random access memory) 등으로 구현될 수 있다.The
가중치 시냅스(200)는 다수의 가중치를 저장하고, 입력 뉴런(100)에서 입력 스파이크가 인가되면, 인가된 입력 스파이크에 대응하는 가중치를 출력 뉴런(300)로 출력한다. 여기서 가중치 시냅스(200)에 저장된 다수의 가중치는 가중치 학습부(400)에 의해 업데이트된다.The weight synapse 200 stores a plurality of weights, and when an input spike is applied from the
가중치 시냅스(200)는 입력 뉴런(100)으로부터 시간차를 두고 발생되어 인가되는 다수의 입력 스파이크 각각에 응답하여 대응하는 가중치를 반복적으로 출력 뉴런(300)로 출력한다. 즉 입력 뉴런(100)에서 입력 스파이크가 발생될 때마다 저장된 가중치 중 대응하는 가중치를 출력 뉴런(300)로 출력한다.The
출력 뉴런(300)은 가중치 시냅스(200)에서 출력되는 가중치의 누적 합에 기초하여 다수의 출력 스파이크를 생성한다. 출력 뉴런(300)은 LIF(Leaky-Integrate and Fire) 뉴런 모델에 기반하여 구성될 수 있다.The
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
출력 뉴런(300)은 적어도 하나의 입력 스파이크가 발생될 때마다 가중치 시냅스(200)로부터 인가되는 가중치(wi)를 모두 합한다. 도 2에 도시된 바와 같이, 가중치 시냅스(200)는 다수의 입력 스파이크(x1 ~ xN)가 인가되면, 입력된 입력 스파이크(x1 ~ xN) 각각에 대응하는 가중치(w1 ~ wN)를 획득하고, 적어도 하나의 출력 뉴런은 가중치가 가중된 가중 입력 스파이크(xiwi)를 인가받아 모두 가산한다.The
상기한 바와 같이, 입력 스파이크(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
그리고 출력 뉴런(300)은 가중 입력 스파이크(xiwi)의 합(∑xiwi)에 이전 획득된 누적 스파이크 신호(u(t-1))를 더 가산한다. 이때 출력 뉴런(300)은 입력 스파이크의 합(∑xiwi)에 이전 획득된 누적 스파이크 신호(u(t-1))를 그대로 더하는 것이 아니라 이전 획득된 누적 스파이크 신호(u(t-1))에 누설 팩터(λ)(여기서 0 < λ < 1인 실수)를 가중한 누설 누적 스파이크 신호(λu(t-1))를 더하여 누적 스파이크 신호(u(t))를 획득할 수 있다.And the
여기서 이전 누적 스파이크 신호(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
가중치 학습부(400)는 SNN을 학습시키기 위한 학습 장치에 해당하는 구성으로 스파이크 타이밍 의존 가소성(Spike-timing-dependent plasticity: 이하 STDP) 기법에 따라 가중치 시냅스(200)의 다수의 가중치를 학습시킨다. STDP 기법에 따라 가중치를 학습시키는 가중치 학습부(400)는 출력 스파이크가 발생된 시점을 기준으로 이전 기지정된 기간 동안 입력 뉴런(100)으로부터 가중치 시냅스(200)로 입력 스파이크가 입력된 시간 정보를 기반으로 가중치를 증가시킨다. 한편, 가중치 학습부(400)는 입력 뉴런(100)으로부터 가중치 시냅스(200)로 입력 스파이크가 입력되면, 입력 스파이크가 입력된 이전 기지정된 기간 동안 출력 스파이크가 발생된 시간 정보를 기반으로 가중치를 감소시킨다. 즉 가중치 학습부(400)는 인가되는 입력 스파이크와 출력 스파이크의 발생 시간에 기반하여 가중치를 증가 또는 감소시킨다.The
이때 가중치 학습부(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
다만 두뇌의 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
도 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
도 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
업 변화량 획득부(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
즉 업 변화량 획득부(410)는 입력 스파이크(IS)가 인가될 때마다, 업 변화량(ΔwUP)을 양자화 STDP 함수의 최대값에 대응하는 제1 레벨만큼 증가시키고, 이후, 기지정된 제1 및 제2 시간 구간이 지날때마다 기지정된 변화 단위로 감소시켜, 제2 시간 구간 이후에는 입력 스파이크(IS)가 인가되어 제1 레벨만큼 증가된 업 변화량(ΔwUP)이 다시 입력 스파이크(IS)가 인가되기 이전과 동일한 상태로 전환한다.That is, the up change
여기서는 업 변화량 획득부(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
업 변화량 획득부(410)는 입력 스파이크(IS)가 인가될 때마다 상기한 동작을 반복적으로 수행한다.The up change
한편, 다운 변화량 획득부(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
즉 다운 변화량 획득부(420)는 출력 스파이크(OS)가 인가될 때마다, 다운 변화량(ΔwDN)을 양자화 STDP 함수의 최대값에 대응하는 제1 레벨만큼 증가시키고, 이후, 기지정된 제1 및 제2 시간 구간이 지날때마다 기지정된 변화 단위로 감소시켜, 제2 시간 구간 이후에는 출력 스파이크(OS)가 인가되어 제1 레벨만큼 증가된 다운 변화량(ΔwDN)이 다시 입력 스파이크(IS)가 인가되기 이전과 동일한 상태로 전환한다.That is, the down change
여기서 다운 변화량 획득부(420) 또한 업 변화량 획득부(410)와 마찬가지로 양자화 STDP 함수에 기반하여 다수의 시간 구간을 구분하고, 구분된 시간 구간에 따라 기지정된 변화 단위로 다운 변화량(ΔwDN)을 감소시킬 수 있다.Here, the down
그리고 다운 변화량 획득부(420) 또한 출력 스파이크(OS)가 인가될 때마다 상기한 동작을 반복적으로 수행한다.In addition, the down change
결과적으로 업 변화량 획득부(410)와 다운 변화량 획득부(420)는 입력 스파이크(IS)를 인가받는지 출력 스파이크(OS)를 인가받는지에 대한 차이가 있을 뿐, 기본적으로 동일한 동작을 수행한다. 따라서 업 변화량 획득부(410)와 다운 변화량 획득부(420)는 동일 구성의 하드웨어로 구현될 수 있어, 구현의 편의성을 향상시킬 수 있다.As a result, the up-
가중치 변화량 획득부(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
만일 다운 변화량 획득부(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
그리고 가중치 변화량 획득부(430)는 획득된 가중치 변화량(Δw)을 가중치 업데이트부(440)로 출력한다. 여기서 가중치 변화량 획득부(430)는 실시간으로 매클럭에서 가중치 변화량(Δw)을 획득하여 가중치 업데이트부(440)로 전달할 수 있다.Then, the weight change
가중치 업데이트부(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
도 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
도 6을 참조하면, 업 변화량 획득부(410)는 제1 구간 지연부(411), 제2 구간 지연부(412) 및 변화량 계산부(413)를 포함할 수 있다.Referring to FIG. 6 , the up change
우선 제1 구간 지연부(411)는 인가된 입력 스파이크(IS)를 기지정된 제1 시간 구간 지연하여 출력한다. 그리고 제2 구간 지연부(422)는 제1 구간 지연부(411)에서 출력되는 입력 스파이크(IS)를 다시 제2 시간 구간 지연하여 출력한다.First, the first
도 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
변화량 계산부(413)는 입력 스파이크(IS)가 인가되면, 저정된 업 변화량(ΔwUP)을 기지정된 제1 레벨만큼 증가(+2)시키고, 제1 구간 지연부(411) 및 제2 구간 지연부(412)에서 입력 스파이크(IS)가 출력될 때마다 저장된 업 변화량(ΔwUP)을 기지정된 변화 단위만큼 감소(-1)시킨다.When the input spike IS is applied, the
여기서는 상기한 바와 같이, 업 변화량 획득부(410)가 양자화 STDP 함수에 기반하여 시간 구간을 2개로 구분하는 것으로 가정하여, 제1 구간 지연부(411) 및 제2 구간 지연부(412)를 포함하는 것으로 도시하였으나, 업 변화량 획득부(410)는 다수의 구간 지연부를 포함할 수 있으며, 이 경우 변화량 계산부(413)는 다수의 구간 지연부 각각에서 입력 스파이크(IS)가 출력될 때마다 저장된 업 변화량(ΔwUP)을 기지정된 변화 단위만큼 감소(-1)시킬 수 있다.Here, as described above, it is assumed that the up-change
도 7과 같이 제1 구간 지연부(411) 및 제2 구간 지연부(412)가 각각 다수의 플립플롭(FF1 ~ FF60)으로 구현되면, 다수의 플립플롭(FF1 ~ FF60)은 업 변화량 획득부(410)로 이전 기지정된 기간(여기서는 60클럭) 동안 인가된 입력 스파이크(IS)의 히스토리를 항시 저장하고 있게 된다. 즉 기존과 달리 별도의 메모리를 이용하지 않고서도 매우 간단한 하드웨어 구성으로 입력 스파이크 히스토리를 획득할 수 있게 된다.As shown in FIG. 7 , when the first
다만 본 실시예에서는 업 변화량 획득부(410)로 입력 스파이크가 인가되거나 제1 구간 지연부(411) 및 제2 구간 지연부(412)에서 지연된 입력 스파이크(IS)가 출력될 때마다 업 변화량(ΔwUP)이 실시간으로 업데이트되어 있게 되므로, 이후 가중치(w)를 업데이트하는 시점에 별도로 저장된 입력 스파이크 히스토리를 확인하지 않아도 된다. 따라서 매우 간단한 하드웨어 구성으로 업 변화량(ΔwUP)이 실시간으로 업데이트할 수 있다.However, in the present embodiment, whenever an input spike is applied to the up change
그리고 상기한 바와 같이, 다운 변화량 획득부(420) 또한 업 변화량 획득부(410)와 동일하게 구성될 수 있으므로, 출력 스파이크 히스토리를 별도의 메모리 등에 저장하지 않더라도, 다운 변화량(ΔwDN)이 실시간으로 업데이트할 수 있다.And as described above, since the down change
결과적으로 본 실시예에서는 다수의 플립플롭을 이용하여 입력 스파이크 히스토리와 출력 스파이크 히스토리에 따른 업 변화량(Δ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
도 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
이에 도 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
다만 타임 스텝 스케일링 기법에 따라 기존에 매 클럭 단위로 스파이크를 전달하던 플립플롭이 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
도 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 함수에 의해 구분된 다수의 시간 구간에 도달할 때마다 다운 변화량을 업데이트하는 다운 변화량 획득부;
상기 업 변화량과 상기 다운 변화량을 이용하여 가중치 변화량을 획득하는 변화량 획득부; 및
상기 가중치 변화량을 상기 가중치에 가산하여 가중치를 업데이트하는 가중치 업데이트부를 포함하는 스파이킹 신경망 학습 장치.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.
직렬로 연결되어 상기 입력 스파이크가 인가되면 각각 기지정된 시간 구간만큼 상기 입력 스파이크를 지연하여 출력하는 다수의 구간 지연부; 및
상기 입력 스파이크가 인가되면, 기저장된 업 변화량을 양자화 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.
상기 양자화 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.
상기 클럭의 주기가 미리 지정된 타임 스텝 스케일링 비율에 따라 증가된 스케일링 클럭에 응답하여 상기 입력 스파이크를 인가받거나, 이전 인가된 입력 스파이크를 전달하는 다수의 플립플롭을 포함하고,
상기 다수의 플립플롭은 대응하는 시간 구간에서 상기 타임 스텝 스케일링 비율만큼 감소된 개수로 포함되는 스파이킹 신경망 학습 장치.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.
직렬로 연결되어 상기 출력 스파이크가 인가되면 각각 기지정된 시간 구간만큼 상기 출력 스파이크를 지연하여 출력하는 다수의 구간 지연부; 및
상기 출력 스파이크가 인가되면, 기저장된 다운 변화량을 상기 양자화 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.
상기 양자화 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.
상기 클럭의 주기가 미리 지정된 타임 스텝 스케일링 비율에 따라 증가된 스케일링 클럭에 응답하여 상기 출력 스파이크를 인가받거나, 이전 인가된 출력 스파이크를 전달하는 다수의 플립플롭을 포함하고,
상기 다수의 플립플롭은 대응하는 시간 구간에 상기 타임 스텝 스케일링 비율만큼 감소된 개수로 포함되는 스파이킹 신경망 학습 장치.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.
상기 업 변화량에서 상기 다운 변화량을 차감하여 가중치 변화량을 획득하는 스파이킹 신경망 학습 장치.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.
상기 입력 스파이크 또는 상기 출력 스파이크가 인가되면, 상기 가중치 변화량을 대응하는 가중치에 가산하여 가중치를 업데이트하는 스파이킹 신경망 학습 장치.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.
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)
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)
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)
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 |
-
2019
- 2019-12-05 KR KR1020190160518A patent/KR102344678B1/en active IP Right Grant
Patent Citations (1)
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)
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)
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 |