KR20210077159A - Spiking neural network and operation method thereof - Google Patents

Spiking neural network and operation method thereof Download PDF

Info

Publication number
KR20210077159A
KR20210077159A KR1020190168488A KR20190168488A KR20210077159A KR 20210077159 A KR20210077159 A KR 20210077159A KR 1020190168488 A KR1020190168488 A KR 1020190168488A KR 20190168488 A KR20190168488 A KR 20190168488A KR 20210077159 A KR20210077159 A KR 20210077159A
Authority
KR
South Korea
Prior art keywords
bit
weight
output
scaled
unit
Prior art date
Application number
KR1020190168488A
Other languages
Korean (ko)
Other versions
KR102468711B1 (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 KR1020190168488A priority Critical patent/KR102468711B1/en
Publication of KR20210077159A publication Critical patent/KR20210077159A/en
Application granted granted Critical
Publication of KR102468711B1 publication Critical patent/KR102468711B1/en

Links

Images

Classifications

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

Landscapes

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

Abstract

The present invention provides a spiking neural network and an operating method thereof, in which the spiking neural network includes: a weight synapse unit for storing a weight including a plurality of memory cells defined by a plurality of word lines and a plurality of bit lines; an input neuron unit for generating a plurality of input spikes in response to input data to activate a corresponding word line among the word lines; and an output neuron unit for receiving and accumulating weights that are bit-scaled into upper (n-k) bits by excluding lower k bits among weights of n bits in which bit values are stored in each of the memory cells disposed in an area where the activated word line intersects the bit lines, obtaining a membrane potential value by adding a membrane potential value in which a weight that is previously bit-scaled is accumulated, spiking an output spike when the obtained membrane potential value is greater than or equal to a spiking threshold that is bit-scaled to correspond to the bit-scaled weight, and counting a number of spiked output spikes to adjust the bit-scaled spiking threshold. Accordingly, a degree of integration and power efficiency are increased.

Description

스파이킹 신경망 및 이의 운용 방법{SPIKING NEURAL NETWORK AND OPERATION METHOD THEREOF}SPIKING NEURAL NETWORK AND OPERATION METHOD THEREOF

본 발명은 스파이킹 신경망 및 이의 운용 방법에 관한 것으로, 집적도와 전력 효율성을 높일 수 있는 스파이킹 신경망 및 이의 운용 방법에 관한 것이다.The present invention relates to a spiking neural network and an operating method thereof, and to a spiking neural network capable of increasing integration and power efficiency and an operating method thereof.

뉴로모픽(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 the synapse between neurons transmits information in the form of spikes of electrical signals. This SNN processes information based on the timing at which the spike signal having a binary value is transmitted, that is, the time difference.

SNN은 소프트웨어적으로 구현되어 컨볼루션 신경망(Convolution Neural Network: CNN), 순환 신경망(Recurrent Neural Network: RNN) 등으로 대표되는 심층 신경망(Deep Neural Network)에 비해 곱셈 연산을 요구하지 않아 간단한 하드웨어 구조로 구현될 수 있어 고성능의 컴퓨터 시스템을 요구하지 않고, 전력 소모가 매우 적다는 장점이 있다.Since SNN is implemented in software, it does not require multiplication operation compared to deep neural networks represented by Convolution Neural Network (CNN) and Recurrent Neural Network (RNN), so it has a simple hardware structure. Since it can be implemented, it does not require a high-performance computer system and has the advantage of very low power consumption.

그러나 SNN을 이용하여 인간의 두뇌를 모방하기 위해서는 적어도 수십만에서 많게는 수조개의 뉴런 및 시냅스를 집적해야 한다. 따라서 집적도와 전력 효율성은 SNN의 구현에 있어 매우 중요한 이슈이다.However, in order to mimic the human brain using SNN, at least hundreds of thousands to as many as trillions of neurons and synapses must be integrated. Therefore, integration and power efficiency are very important issues in the implementation of SNN.

SNN은 일반적으로 CMOS(complementary metal-oxide semiconductor) 기반의 메모리 소자 형태로 제작되었으나 최근에는 RRAM(Resistive Random Access Memory) 또는 PRAM(Phase-change Memory)과 같은 새로운 종류의 메모리 소자의 특성을 이용하고자 하는 시도가 계속되고 있다. 이와 같은 새로운 메모리 소자를 이용하는 경우, 각 소자의 물질적 특성에 따라 뉴런의 행동 특성을 모방하기 때문에 집적도를 높이고 전력 효율성을 향상시킬 수 있으나, 각 소자의 특성을 정밀하게 조절하는 것이 어렵고, 소자간 특성 편차가 크기 때문에 신뢰도가 낮다는 한계가 있다.SNNs are generally manufactured in the form of complementary metal-oxide semiconductor (CMOS)-based memory devices, but in recent years, they have been developed to utilize the characteristics of new types of memory devices such as RRAM (Resistive Random Access Memory) or PRAM (Phase-change Memory). Attempts are continuing. In the case of using such a new memory device, since the behavioral characteristics of neurons are imitated according to the material characteristics of each device, the degree of integration can be increased and power efficiency can be improved, but it is difficult to precisely control the characteristics of each device, and the characteristics between devices There is a limit in that reliability is low due to large deviation.

이에 CMOS 기반 디지털 회로에서 집적도와 전력 효율성을 높이기 위한 방법이 요구되고 있다.Accordingly, a method for increasing the degree of integration and power efficiency in a CMOS-based digital circuit is required.

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

본 발명의 목적은 집적도와 전력 효율성을 높일 수 있는 스파이킹 신경망 및 이의 운용 방법을 제공하는데 있다.SUMMARY OF THE INVENTION An object of the present invention is to provide a spiking neural network capable of increasing integration and power efficiency, and a method for operating the same.

본 발명의 다른 목적은 집적도와 전력 효율성을 높이면서 출력되는 스파이킹 타이밍의 정확도를 유지할 수 있는 스파이킹 신경망 및 이의 운용 방법을 제공하는데 있다.Another object of the present invention is to provide a spiking neural network capable of maintaining accuracy of outputted spiking timing while increasing integration and power efficiency, and an operating method thereof.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 스파이킹 신경망은 다수의 워드 라인과 다수의 비트 라인에 의해 정의되는 다수의 메모리 셀을 포함하여 가중치를 저장하는 가중치 시냅스부; 입력 데이터에 응답하여 다수의 입력 스파이크를 생성하여 상기 다수의 워드 라인 중 대응하는 워드 라인을 활성화하는 입력 뉴런부; 및 상기 활성화된 워드 라인과 상기 다수의 비트 라인이 교차하는 영역에 배치된 다수의 메모리 셀 각각에 비트값이 저장된 n비트의 가중치 중 하위 k비트를 제외하여 상위 n-k비트로 비트 스케일링된 가중치를 인가받아 누산하고, 이전 비트 스케일링된 가중치가 누산된 막전위값을 가산하여 막전위값을 획득하며, 획득된 막전위값이 비트 스케일링된 가중치에 대응하여 비트 스케일링된 발화 문턱값 이상이면 출력 스파이크를 발화하고, 발화된 출력 스파이크의 개수를 카운트하여 비트 스케일링된 발화 문턱값을 조절하는 출력 뉴런부를 포함한다.A spiking neural network according to an embodiment of the present invention for achieving the above object includes a weight synapse unit for storing weights including a plurality of memory cells defined by a plurality of word lines and a plurality of bit lines; an input neuron unit generating a plurality of input spikes in response to input data to activate a corresponding word line among the plurality of word lines; and excluding the lower k bits among the weights of n bits in which bit values are stored in each of a plurality of memory cells disposed in a region where the activated word line and the plurality of bit lines intersect, and the weight scaled to upper nk bits is applied. Accumulated, the previous bit-scaled weight is added to the accumulated membrane potential value to obtain a membrane potential value, and if the obtained membrane potential value is equal to or greater than the bit-scaled firing threshold corresponding to the bit-scaled weight, an output spike is fired, and an output neuron unit that counts the number of output spikes and adjusts a bit-scaled firing threshold.

상기 출력 뉴런부는 상기 가중치 시냅스부의 다수의 비트 라인이 n개의 비트 라인 단위로 그룹화된 다수의 비트 라인 그룹 중 비트 라인 그룹 각각에서 상위 n-k비트에 대응하는 비트 라인을 통해 인가되는 가중치를 상기 비트 스케일링된 가중치로 획득할 수 있다.The output neuron unit calculates the weight applied through the bit line corresponding to the upper nk bit in each bit line group among a plurality of bit line groups in which a plurality of bit lines of the weighted synaptic unit are grouped in units of n bit lines. It can be obtained by weight.

상기 출력 뉴런부는 상기 비트 스케일링된 가중치의 비트 스케일링 비율 이하로 상기 발화 문턱값을 비트 스케일링할 수 있다.The output neuron unit may bit scale the utterance threshold to be less than or equal to a bit scaling ratio of the bit scaled weight.

상기 출력 뉴런부는 상기 다수의 비트 라인 그룹 각각에 대응하는 다수의 출력 뉴런을 포함하고, 상기 다수의 출력 뉴런 각각은 대응하는 비트 라인 그룹의 상위 n-k비트에 대응하는 비트 라인으로부터 비트 스케일링된 가중치를 획득하여 누산하고, 이전 획득된 막전위값을 가산하여 막전위 값을 획득하는 가중치 누산부; 획득된 막전위 값이 상기 비트 스케일링된 발화 문턱값 이상이면 출력 스파이크를 발화하는 발화 판별부; 및 기지정된 기간 동안 발화된 출력 스파이크의 개수를 카운트하여 비트 스케일링된 발화 문턱값을 조절하는 발화 문턱값 조절부를 포함할 수 있다.The output neuron unit includes a plurality of output neurons corresponding to each of the plurality of bit line groups, and each of the plurality of output neurons obtains a bit scaled weight from a bit line corresponding to an upper nk bit of the corresponding bit line group. a weight accumulator for accumulating and adding a previously obtained membrane potential to obtain a membrane potential; a fire determination unit igniting an output spike when the obtained film potential value is equal to or greater than the bit-scaled fire threshold; and a firing threshold adjusting unit configured to adjust the bit-scaled firing threshold by counting the number of output spikes fired during a predetermined period.

상기 출력 뉴런은 이전 획득된 막전위값에 기지정된 누설 팩터를 가중하여 누설 막전위값을 획득하는 누설부를 더 포함하고, 상기 가중치 누산부는 누산된 비트 스케일링된 가중치에 상기 누설 막전위값를 가산하여 상기 막전위값을 획득할 수 있다.The output neuron further includes a leakage unit that obtains a leakage membrane potential value by weighting a predetermined leakage factor to the previously obtained membrane potential value, and the weight accumulator adds the leakage membrane potential value to the accumulated bit-scaled weight to obtain the membrane potential value. can be obtained

상기 출력 뉴런은 기지정된 억제 기간 또는 내화 기간동안 출력 스바이크를 발화하지 않도록, 상기 막전위값을 기지정된 레벨로 초기화하는 리셋 선택부를 더 포함할 수 있다.The output neuron may further include a reset selector configured to initialize the membrane potential to a predetermined level so as not to fire an output switch during a predetermined suppression period or refractory period.

상기 발화 문턱값 조절부는 기지정된 기간 동안 상기 출력 스파이크의 개수를 카운트하고, 카운트된 출력 스파이크의 개수가 기지정된 항상성 업 개수 이상이면, 상기 발화 문턱값을 기지정된 문턱값 변화량만큼 증가시키고, 카운트된 출력 스파이크의 개수가 기지정된 항상성 다운 개수 이하이면, 상기 발화 문턱값을 기지정된 문턱값 변화량만큼 감소시킬 수 있다.The firing threshold adjusting unit counts the number of output spikes during a predetermined period, and if the counted number of output spikes is equal to or greater than the predetermined homeostatic up number, the firing threshold is increased by a predetermined threshold change amount, and the counted When the number of output spikes is less than or equal to the predetermined homeostatic down number, the firing threshold may be decreased by a predetermined threshold change amount.

상기 가중치 시냅스부는 상기 다수의 비트 라인 그룹 각각에서 상위 n-k비트에 대응하는 비트 라인 각각과 대응하는 출력 뉴런 사이에 연결되어, 대응하는 비트 라인을 통해 인가되는 비트 신호를 대응하는 출력 뉴런으로 전달하는 다수의 센스 앰프를 더 포함할 수 있다.The weighted synapse unit is connected between each bit line corresponding to the upper nk bit in each of the plurality of bit line groups and a corresponding output neuron, and transmits a bit signal applied through the corresponding bit line to the corresponding output neuron. may further include a sense amplifier of

상기 스파이킹 신경망은 상기 가중치 시냅스부에 저장된 가중치를 학습시키는 가중치 학습부를 더 포함하고, 상기 가중치 학습부는 상기 다수의 입력 스파이크가 생성된 시간 정보를 포함하는 입력 스파이크 히스토리와 상기 출력 스파이크가 발화된 시간 정보를 포함하는 출력 스파이크 히스토리를 저장하여, 입력 스파이크가 생성된 시간과 출력 스파이크가 발화된 시간 차에 기반하여 상기 가중치를 업데이트할 수 있다.The spiking neural network further includes a weight learning unit for learning the weights stored in the weight synapse unit, and the weight learning unit includes an input spike history including time information at which the plurality of input spikes are generated and a time at which the output spikes are fired. By storing an output spike history including information, the weight may be updated based on a time difference between an input spike generation time and an output spike firing time.

상기 가중치 학습부는 비트 스케일링되지 않은 n 비트의 가중치를 업데이트할 수 있다.The weight learner may update the weight of n bits that are not bit scaled.

상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 스파이킹 신경망의 운용 방법은 입력 데이터에 응답하여 다수의 입력 스파이크를 생성하여, 다수의 워드 라인과 다수의 비트 라인에 의해 정의되는 다수의 메모리 셀을 포함하여 가중치를 저장하는 가중치 시냅스부에서 상기 다수의 워드 라인 중 대응하는 워드 라인을 활성화하는 단계; 상기 활성화된 워드 라인과 상기 다수의 비트 라인이 교차하는 영역에 배치된 다수의 메모리 셀 각각에 비트값이 저장된 n비트의 가중치 중 하위 k비트를 제외하여 상위 n-k비트로 비트 스케일링된 가중치를 인가받아 누산하는 단계; 누산된 비트 스케일링된 가중치에 이전 비트 스케일링된 가중치가 누산된 막전위값을 가산하여 막전위값을 획득하는 단계; 획득된 막전위값이 비트 스케일링된 가중치에 대응하여 비트 스케일링된 발화 문턱값 이상이면, 출력 스파이크를 발화하는 단계; 및 발화된 출력 스파이크의 개수를 카운트하여 비트 스케일링된 발화 문턱값을 조절하는 단계를 포함한다.A method of operating a spiking neural network according to another embodiment of the present invention for achieving the above object generates a plurality of input spikes in response to input data, and a plurality of memories defined by a plurality of word lines and a plurality of bit lines activating a corresponding word line from among the plurality of word lines in a weight synapse that stores a weight including a cell; In each of a plurality of memory cells disposed in an area where the activated word line and the plurality of bit lines intersect, a weight scaled by bit scale to the upper nk bits is applied and accumulated by excluding the lower k bits among the weights of n bits in which bit values are stored. to do; obtaining a membrane potential value by adding a membrane potential value accumulated by a previous bit scaled weight to the accumulated bit scaled weight; igniting the output spike when the obtained membrane potential value is equal to or greater than the bit-scaled firing threshold corresponding to the bit-scaled weight; and counting the number of fired output spikes to adjust the bit-scaled firing threshold.

따라서, 본 발명의 실시예에 따른 스파이킹 신경망 및 이의 운용 방법은 생체 뉴런의 항상성에 기초하여 스파이킹 신경망에서 출력되는 스파이크의 개수에 따라 발화 문턱값을 가변하고, 가변되는 발화 문턱값에 따라 가중치의 비트 스케일을 가변함으로써, 스파이킹 타이밍의 정확도를 유지하면서도 집적도와 전력 효율성을 크게 높일 수 있는 스파이킹 신경망 및 이의 운용 방법을 제공하는데 있다.Therefore, in the spiking neural network and its operating method according to an embodiment of the present invention, the firing threshold is varied according to the number of spikes output from the spiking neural network based on the homeostasis of biological neurons, and the weight is based on the variable firing threshold. An object of the present invention is to provide a spiking neural network capable of significantly increasing integration and power efficiency while maintaining accuracy of spiking timing by varying the bit scale of , and a method for operating the same.

도 1은 스파이킹 신경망의 개략적 구조를 나타낸다.
도 2는 도 1의 출력 뉴런의 구성의 일예를 나타낸다.
도 3 및 도 4는 도 1의 가중치 시냅스와 출력 뉴런의 동작을 설명하기 위한 도면이다.
도 5는 발화 문턱값 조절부에 의해 가변되는 발화 문턱값의 일예를 나타낸다.
도 6은 본 실시예에 따른 SNN이 가중치를 비트 스케일링하는 개념을 나타낸다.
도 7은 가중치 비트 스케일링에 따른 발화 문턱값의 변화를 나타낸다.
도 8은 가중치 비트 스케일링에 의한 학습 결과를 비교하여 나타낸다.
도 9는 가중치 비트 스케일링 비트 수에 따른 학습 정확도를 나타낸다.
도 10은 가중치 비트 스케일링 비트 수에 따른 전력 소비량 변화를 나타낸다.
도 11은 본 발명의 일 실시예에 따른 스파이킹 신경망의 운용 방법을 나타낸다.
1 shows a schematic structure of a spiking neural network.
2 shows an example of the configuration of the output neuron of FIG. 1 .
3 and 4 are diagrams for explaining the operation of the weighted synapse and the output neuron of FIG. 1 .
5 illustrates an example of a speech threshold value that is changed by the speech threshold value adjusting unit.
6 shows a concept in which the SNN bit scales weights according to the present embodiment.
7 illustrates a change in a speech threshold according to weight bit scaling.
8 shows a comparison of learning results by weight bit scaling.
9 shows the learning accuracy according to the number of weight bit scaling bits.
10 shows a change in power consumption according to the number of weight bit scaling bits.
11 shows a method of operating a spiking neural network according to an embodiment of the present invention.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. 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. And, in order to clearly explain 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는 도 1의 출력 뉴런의 구성의 일예를 나타내며, 도 3 및 도 4는 도 1의 가중치 시냅스와 출력 뉴런의 동작을 설명하기 위한 도면이다. 그리고 도 5는 발화 문턱값 조절부에 의해 가변되는 발화 문턱값의 일예를 나타낸다.1 shows a schematic structure of a spiking neural network, FIG. 2 shows an example of the configuration of the output neuron of FIG. 1, and FIGS. 3 and 4 are diagrams for explaining the operation of the weighted synapse and the output neuron of FIG. 1 . And FIG. 5 shows an example of a speech threshold variable by the speech threshold value adjusting unit.

도 1을 참조하면, SNN은 입력 뉴런부(100)와 가중치 시냅스부(200), 출력 뉴런부(300) 및 가중치 학습부(400)를 포함한다.Referring to FIG. 1 , the SNN includes an input neuron unit 100 , a weighted synapse unit 200 , an output neuron unit 300 , and a weight learning unit 400 .

입력 뉴런부(100)는 입력 데이터를 기지정된 방식에 따라 다수의 입력 스파이크로 변환하고, 변환된 다수의 입력 스파이크를 가중치 시냅스부(200)로 전달한다. 인간의 두뇌는 각종 감각 기관에서 감지된 정보를 전기적 신호의 형태로 전달받고, 뉴런과 뉴런을 잇는 시냅스가 스파이크 형태의 전기 신호로 뉴런 사이에 정보가 전달되도록 한다. 이에 인간의 두뇌를 모방하도록 구성되는 SNN의 입력 뉴런부(100) 또한 입력 데이터를 기지정된 방식에 따라 입력 스파이크로 변환하여 가중치 시냅스부(200)로 전달한다.The input neuron unit 100 converts input data into a plurality of input spikes according to a predetermined method, and transmits the converted plurality of input spikes to the weighted synapse unit 200 . The human brain receives information sensed from various sensory organs in the form of electrical signals, and synapses between neurons transmit information between neurons as spike-type electrical signals. Accordingly, the input neuron unit 100 of the SNN configured to imitate the human brain also converts the input data into an input spike according to a predetermined method and transmits it to the weighted synapse unit 200 .

입력 뉴런부(100)는 다수의 입력 뉴런으로 구성되어, 각각 대응하는 입력 데이터의 값에 따라 시간차를 두고 발생되는 입력 스파이크로 변환할 수 있다. 일예로 입력 뉴런부(100)의 다수의 입력 뉴런은 이미지에서 대응하는 각 픽셀의 픽셀값을 입력 데이터로 인가받고, 인가된 픽셀값에 따라 시간차를 두고 발생되는 입력 스파이크를 출력할 수 있다.The input neuron unit 100 is composed of a plurality of input neurons, and may be converted into input spikes generated with a time difference according to values of input data corresponding to each. For example, a plurality of input neurons of the input neuron unit 100 may receive a pixel value 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)의 입력 뉴런이 입력 데이터를 입력 스파이크로 변환하는 방법은 다양하게 연구되어 있으며, 일예로 포아송 분포(Poisson distribution)에 기반하여 입력 데이터를 입력 스파이크로 변환할 수 있다. 즉 입력 데이터에 대해 포아송 분포에 기반한 확률에 근거하여 다수의 스파이크를 발생하거나 발생하지 않도록 하여 입력 스파이크를 생성한다. 이때 입력 뉴런부(100)의 입력 뉴런은 상기한 바와 같이, 입력 데이터를 한번의 입력 스파이크들로 변환하는 것이 아니라, 입력 데이터에 따른 확률에 기초하여 다수의 입력 스파이크를 시간차를 두고 여러 번 생성하여 출력할 수 있다.Methods for the input neuron of the input neuron unit 100 to convert input data into input spikes have been studied in various ways. For example, input data can be converted into input spikes based on a Poisson distribution. That is, input spikes are generated by generating or not generating multiple spikes based on a probability based on a Poisson distribution for input data. At this time, as described above, the input neuron of the input neuron unit 100 generates a plurality of input spikes several times with a time difference based on the probability according to the input data, rather than converting the input data into one input spike. can be printed out.

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

여기서 입력 뉴런부(100)는 이진 데이터의 형식으로 입력 스파이크를 생성한다. 일예로 입력 스파이크가 발생되면 1의 값을 출력하고, 입력 스파이크가 발생되지 않으면 0의 값을 출력하도록 설정될 수 있다.Here, the input neuron unit 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.

가중치 시냅스부(200)는 입력 뉴런부(100)에서 인가되는 입력 스파이크에 가중치를 가중하여 출력 뉴런부(300)로 전달한다. 가중치 시냅스부(200)에는 다수의 가중치가 저장되며, 저장된 다수의 가중치는 가중치 학습부(400)에 의해 업데이트된다.The weighted synapse unit 200 transmits weights to the input spike applied from the input neuron unit 100 to the output neuron unit 300 . A plurality of weights are stored in the weight synapse unit 200 , and the stored plurality of weights are updated by the weight learning unit 400 .

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

가중치 시냅스부(200)는 입력 뉴런부(100) 중 대응하는 입력 뉴런에서 입력 스파이크가 인가되면 활성화되는 다수의 워드 라인(WL)과 다수의 워드 라인(WL)에 교차하는 다수의 비트 라인(BL) 및 다수의 워드 라인(WL)과 다수의 비트 라인(BL)에 의해 정의되는 다수의 메모리 셀(MC)을 포함하여 구성될 수 있다. 그리고 다수의 메모리 셀(MC)은 각각 가중치에서 대응하는 비트값을 저장한다.The weighted synapse unit 200 includes a plurality of word lines WL that are activated when an input spike is applied from a corresponding input neuron of the input neuron unit 100 and a plurality of bit lines BL crossing the plurality of word lines WL. ) and a plurality of memory cells MC defined by a plurality of word lines WL and a plurality of bit lines BL. In addition, each of the plurality of memory cells MC stores a corresponding bit value in the weight.

여기서 워드 라인(WL)은 입력 뉴런의 개수에 대응하는 개수로 배치될 수 있으며, 비트 라인(BL)은 가중치의 비트 수에 대응하는 개수 단위의 비트 라인 그룹(BLG)으로 배치되며, 비트 라인 그룹(BLG)은 후술하는 출력 뉴런부(300)의 출력 뉴런의 개수에 대응하는 개수로 배치될 수 있다. 즉 출력 뉴런부(300)가 병렬로 출력할 수 있는 출력 스파이크의 수에 대응하는 개수의 비트 라인 그룹(BLG)이 배치된다. 예를 들어 가중치가 n비트의 이진값으로 정의되고 출력 뉴런부(300)의 출력 뉴런의 개수가 m개이면, n개의 비트 라인(BL)이 비트 라인 그룹(BLG)을 구성하고, m개의 비트 라인 그룹(BLG)이 배치되어야 하므로, 가중치 시냅스부(200)는 n * m 개의 비트 라인(BL)을 포함할 수 있다. 그리고 각각의 워드 라인(WL)과 비트 라인 그룹(BLG)이 교차하는 위치의 메모리 셀에는 상기한 바와 같이, 가중치의 대응하는 비트값이 저장된다. 만일 입력 뉴런부(100)가 N개의 입력 뉴런을 구비하여 각각 입력 데이터에 응답하여 입력 스파이크(x1 ~ xN)를 출력하는 경우, 가중치 시냅스부(200)는 N * n * m개의 메모리 셀(MC)을 포함할 수 있다.Here, the word lines WL may be arranged in a number corresponding to the number of input neurons, and the bit lines BL are arranged in a number unit bit line group BLG corresponding to the number of bits of the weight, and the bit line group (BLG) may be arranged in a number corresponding to the number of output neurons of the output neuron unit 300 to be described later. That is, the number of bit line groups BLG corresponding to the number of output spikes that the output neuron unit 300 can output in parallel is arranged. For example, if the weight is defined as an n-bit binary value and the number of output neurons of the output neuron unit 300 is m, n bit lines BL constitute a bit line group BLG, and m bits Since the line group BLG needs to be arranged, the weighted synaptic unit 200 may include n * m bit lines BL. In addition, as described above, the corresponding bit value of the weight is stored in the memory cell at the position where each word line WL and the bit line group BLG intersect. If the input neuron unit 100 includes N input neurons and outputs input spikes (x 1 to x N ) in response to input data, respectively, the weighted synaptic unit 200 includes N * n * m memory cells. (MC) may be included.

가중치 시냅스부(200)는 특정 입력 뉴런에서 입력 스파이크가 발생되면, 대응하는 워드 라인(WL)이 활성화되고, 활성화된 워드 라인(WL)과 다수의 비트 라인(BL)이 교차하는 위치의 메모리 셀(MC)에 저장된 비트값을 출력 뉴런부(300)로 출력한다. 즉 인가된 입력 스파이크에 대응하는 가중치를 출력 뉴런부(300)로 출력하도록 구성될 수 있다.In the weighted synapse unit 200, when an input spike occurs in a specific input neuron, a corresponding word line WL is activated, and a memory cell at a position where the activated word line WL and a plurality of bit lines BL intersect The bit value stored in the MC is output to the output neuron unit 300 . That is, it may be configured to output a weight corresponding to the applied input spike to the output neuron unit 300 .

가중치 시냅스부(200)는 입력 뉴런부(100)로부터 시간차를 두고 발생되어 인가되는 다수의 입력 스파이크 각각에 응답하여 대응하는 가중치를 반복적으로 출력 뉴런부(300)로 출력한다.The weight synapse unit 200 repeatedly outputs a corresponding weight to the output neuron unit 300 in response to each of a plurality of input spikes generated and applied with a time difference from the input neuron unit 100 .

출력 뉴런부(300)는 가중치 시냅스부(200)에서 출력되는 가중치의 누적 합에 기초하여 다수의 출력 스파이크를 발화한다. 출력 뉴런부(300)는 다수의 출력 뉴런을 포함할 수 있으며, 다수의 출력 뉴런 각각은 LIF(Leaky-Integrate and Fire) 뉴런 모델에 기반하여 구성될 수 있다.The output neuron unit 300 fires a plurality of output spikes based on the cumulative sum of the weights output from the weighted synapse unit 200 . The output neuron unit 300 may include a plurality of output neurons, and each of the plurality of output neurons 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 the membrane potential obtained by the accumulated weights is at a predetermined reference level. If it is abnormal, the output spike is fired, and the membrane potential value is leaked as time goes by and is gradually weakened.

이에 LIF 뉴런 모델에 기반하여 구성되는 출력 뉴런부(300)의 다수의 출력 뉴런 각각 또한 가중치 시냅스부(200)로부터 인가되는 가중치를 누적합하여 막전위값을 획득하고, 획득된 막전위값이 기지정된 발화 문턱값 이상이면, 출력 스파이크를 발화하도록 구성된다. 그리고 출력 뉴런은 시간의 흐름에 따라 막전위값을 점차 감소시키도록 구성될 수 있다.Accordingly, each of the plurality of output neurons of the output neuron unit 300 configured based on the LIF neuron model also accumulates the weights applied from the weighted synaptic unit 200 to obtain a membrane potential value, and the obtained membrane potential value is a predetermined firing threshold. Above the value, it is configured to fire an output spike. And the output neuron may be configured to gradually decrease the membrane potential value over time.

도 2는 출력 뉴런부(300)의 다수의 출력 뉴런 중 하나의 구성을 상세하게 나타낸 도면으로, 출력 뉴런은 가중치 누산부(310), 누설부(320), 리셋 선택부(330), 발화 판별부(340), 스파이크 카운터(350), 업 다운 판별부(360) 및 발화 문턱값 발생부(370)를 포함할 수 있다.2 is a diagram showing in detail the configuration of one of a plurality of output neurons of the output neuron unit 300. The output neurons include a weight accumulator 310, a leak unit 320, a reset selector 330, and a utterance discrimination. It may include a unit 340 , a spike counter 350 , an up/down determining unit 360 , and an ignition threshold generating unit 370 .

가중치 누산부(310)는 도 3에 도시된 바와 같이, 입력 뉴런부(100)의 다수의 입력 뉴런에서 발생되는 다수의 입력 스파이크 각각에 의해 활성화되는 워드 라인(WL)에 응답하여 가중치 시냅스부(200)로부터 인가되는 모든 가중치(wi)와 이전 획득된 막전위값(V(t-1))을 가산한다. 도 3에 도시된 바와 같이, 가중치 시냅스부(200)는 다수의 입력 스파이크(x1 ~ xN)가 인가되면, 입력된 입력 스파이크(x1 ~ xN) 각각에 대응하는 가중치(w1 ~ wN)를 획득하고, 가중치가 가중된 가중 입력 스파이크(xiwi)를 모두 가산하며, 가산된 가중 입력 스파이크(xiwi)에 이전 획득된 막전위값(V(t-1))을 가산한다.As shown in FIG. 3 , the weight accumulator 310 responds to a word line WL activated by each of a plurality of input spikes generated from a plurality of input neurons of the input neuron unit 100, and a weighted synaptic unit ( 200), all weights (w i ) and the previously obtained membrane potential value (V(t-1)) are added. As shown in FIG. 3 , the weight synapse unit 200 applies a plurality of input spikes (x 1 to x N ) to the weights (w 1 to) corresponding to each of the input spikes (x 1 to x N ). obtaining w N), and (and all of the x i w i) the addition, membrane potential values (V (t-1 obtained prior to the weighted summation of the input spikes (x i w i)) is the weighted input spike weighted weight) add up

상기한 바와 같이, 이진값의 형태의 입력 스파이크(x1 ~ xN)가 대응하는 워드 라인(WL)을 활성화하고, 가중치 시냅스부(200)는 활성화된 워드 라인(WL)에 대응하는 가중치를 출력 뉴런으로 전달하므로, 가중 입력 스파이크(xiwi)의 합(∑xiwi)은 실제로 가중치의 합으로 볼 수 있다.As described above, the input spike (x 1 to x N ) in the form of a binary value activates a word line (WL) corresponding to it, and the weight synapse unit 200 calculates a weight corresponding to the activated word line (WL). Since it passes to the output neuron, the sum of the weighted input spikes (x i w i ) (∑x i w i ) can actually be viewed as the sum of the weights.

한편 가중치 누산부(310)는 입력 스파이크의 합(∑xiwi)에 이전 획득된 막전위값(V(t-1))을 그대로 더하는 것이 아니라 누설부(320)가 이전 획득된 막전위값(V(t-1))에 누설 팩터(λ)(여기서 0 < λ < 1인 실수)를 가중한 누설 막전위값(λV(t-1))을 더하여 막전위값(V(t))을 획득할 수 있다.On the other hand, the weight accumulator 310 does not add the previously obtained membrane potential value (V(t-1)) to the sum of input spikes (∑x i w i ) as it is, but the leaker 320 uses the previously acquired membrane potential value ( The membrane potential value V(t) is obtained by adding the leakage membrane potential value λV(t-1)) weighted by the leakage factor λ (where 0 < λ < 1) to V(t-1). can

누설부(320)가 이전 막전위값(V(t-1))에 누설 팩터(λ)를 가중하는 것은 두뇌의 신경 세포가 시간이 지날수록 기억하고 있는 정보를 점차로 소실하는 특성을 반영한 것이며, 가중치 누산부(310)가 입력 스파이크의 합(∑xiwi)에 이전 누설 막전위값(λV(t-1))을 더하는 것은 반복적인 자극을 통해 정보가 기억되는 특성을 반영한 것이다. 즉 누설부(320)와 가중치 누산부(310)는 각각 LIF 뉴런 모델에서 누설(Leaky)과 누적(Integrate)의 기능을 담당한다.The leakage factor 320 weighting the leakage factor λ to the previous membrane potential value V(t-1) reflects the characteristic that the nerve cells of the brain gradually lose the information stored over time, and the weight The addition of the previous leakage membrane potential (λV(t-1)) to the sum of input spikes (∑x i w i ) by the accumulator 310 reflects the characteristic of memorizing information through repeated stimulation. That is, the leak unit 320 and the weight accumulator 310 are responsible for leakage and integration functions in the LIF neuron model, respectively.

그리고 리셋 선택부(330)는 가중치 누산부(310)에서 획득된 막전위값(V(t)) 또는 기지정된 레벨을 갖는 리셋 전압(Vrst) 중 하나를 선택하여 발화 판별부(340)로 전달한다. 여기서 리셋 전압(Vrst)은 막전위값(V(t))을 초기화하기 위한 전압으로 일예로 0V로 설정될 수 있다. 일예로 리셋 선택부(330)는 출력 스파이크를 발화한 출력 뉴런이 기지정된 내화 기간(refract period) 동안 발화하지 않도록 하는 내화 신호 또는 출력 스파이크가 발화되지 않은 출력 뉴런이 기지정된 억제 기간(inhibition period) 동안 발화하지 않도록 하는 억제 신호에 응답하여 막전위값(V(t))을 초기화하는 리셋 전압(Vrst)을 선택할 수 있다.In addition, the reset selector 330 selects one of the film potential value V(t) obtained from the weight accumulator 310 or the reset voltage V rst having a predetermined level and transmits it to the ignition determination unit 340 . do. Here, the reset voltage V rst is a voltage for initializing the membrane potential value V(t), and may be set to 0V, for example. For example, the reset selector 330 may include a refractory signal that prevents an output neuron that has fired an output spike from firing for a predetermined refract period or an output neuron that has not fired an output spike during a predetermined inhibition period. A reset voltage V rst for initializing the membrane potential value V(t) in response to a suppression signal that prevents ignition during a period may be selected.

발화 판별부(340)는 리셋 선택부(330)에서 인가되는 막전위값(V(t)) 또는 리셋 전압(Vrst)과 발화 문턱값 발생부(370)에서 인가되는 발화 문턱값(Vth)을 비교하고, 비교 결과에 따라 출력 스파이크를 발화한다.The ignition determination unit 340 includes a film potential V(t) or a reset voltage V rst applied from the reset selection unit 330 and a firing threshold value V th applied from the ignition threshold generator 370 . are compared, and an output spike is fired according to the comparison result.

발화 판별부(340)는 리셋 선택부(330)에서 리셋 전압(Vrst)이 인가되면, 출력 스파이크를 출력하지 않는다. 그러나 가중치 누산부(310)에서 출력되는 막전위값(V(t))은 가중 입력 스파이크(xiwi)의 합(∑xiwi)에 이전 누설 막전위값(λV(t-1))을 더한 신호로서 발화 문턱값(Vth)보다 높거나 낮을 수 있다.The ignition determining unit 340 does not output an output spike when the reset voltage Vrst is applied from the reset selection unit 330 . However, the membrane potential value (V(t)) output from the weight accumulator 310 is the sum of the weighted input spikes (x i w i ) (∑x i w i ) and the previous leakage membrane potential value (λV(t-1)) As a signal obtained by adding , it may be higher or lower than the firing threshold value (V th ).

발화 판별부(340)는 도 4에 도시된 바와 같이 막전위값(V(t))이 발화 문턱값(Vth)보다 전압 레벨이 낮으면, 출력 스파이크를 발화하지 않고, 막전위값(V(t))이 발화 문턱값(Vth)보다 전압 레벨이 높으면, 출력 스파이크를 발화한다.As shown in FIG. 4 , when the film potential value V(t) is lower than the ignition threshold value V th , the fire determination unit 340 does not fire an output spike, and the film potential value V(t) )) is higher than the firing threshold (V th ), the output spike is fired.

스파이크 카운터(350)와 업 다운 판별부(360) 및 발화 문턱값 발생부(370)는 출력 입력 스파이크의 개수에 따라 발화 문턱값(Vth)의 전압 레벨을 조절하는 발화 문턱값 조절부를 구성하며, 발화 문턱값 조절부는 생체 뉴런의 항상성(Homeostasis)과 같은 생물학적 타당성(biologically plausible)을 구현하기 위해 추가되는 구성이다. 항상성은 SNN의 학습 시에 출력 뉴런의 민감도(excitability)를 기지정된 레벨로 유지시켜, 비지도 학습에서 과적합(overfitting) 등의 문제를 방지하여 안정성을 보장하고 정확도를 높이기 위해 적용된다.The spike counter 350, the up-down determining unit 360 and the firing threshold generating unit 370 constitute a firing threshold adjusting unit that adjusts the voltage level of the firing threshold (V th ) according to the number of output input spikes, , the firing threshold control unit is a component added to implement biologically plausible, such as homeostasis of living neurons. Homeostasis is applied to ensure stability and increase accuracy by preventing problems such as overfitting in unsupervised learning by maintaining the excitability of output neurons at a predetermined level during SNN learning.

스파이크 카운터(350)는 기지정된 항상성 기간(homeostasis epoch)동안 발화 판별부(340)에서 출력되는 출력 스파이크의 개수를 카운트하여 카운팅값(cnt)을 출력한다. 그리고 스파이크 카운터(350)는 항상성 기간마다 리셋 신호(rst)에 응답하여 카운팅값(cnt)을 초기화한다.The spike counter 350 counts the number of output spikes output from the utterance discrimination unit 340 during a predetermined homeostasis epoch and outputs a counting value cnt. And the spike counter 350 initializes the counting value cnt in response to the reset signal rst every homeostatic period.

스파이크 카운터(350)가 카운팅값(cnt)을 출력하면, 업 다운 판별부(360)는 카운팅값(cnt)이 항상성 업 문턱값(Hth_up)보다 크거나 항상성 다운 문턱값(Hth_dn)보다 작은지 판별하고, 판별 결과 따라 발화 문턱값(Vth)을 증가시키기 위한 항상성 업 신호(Hup)를 출력하거나, 발화 문턱값(Vth)을 감소시키기 위한 항상성 다운 신호(Hdn)를 출력한다.When the spike counter 350 outputs the counting value cnt, the up/down determining unit 360 determines that the counting value cnt is greater than the homeostasis up threshold H th_up or smaller than the homeostasis down threshold H th_dn ). not determined, and the determination result output homeostasis up signal (H up) to increase the ignition threshold value (V th) in accordance with, or outputs a homeostasis-down signal (H dn) to decrease the ignition threshold value (V th) .

업 다운 판별부(360)는 도 2에 도시된 바와 같이, 항상성 업 판별부(361)와 항상성 다운 판별부(362)를 포함할 수 있다. 항상성 업 판별부(361)는 카운팅값(cnt)을 기지정된 항상성 업 문턱값(Hth_up)과 비교하여 카운팅값(cnt)이 항상성 업 문턱값(Hth_up)보다 크면, 발화 문턱값(Vth)을 증가시키기 위한 항상성 업 신호(Hup)를 출력한다. 그리고 항상성 다운 판별부(362)는 카운팅값(cnt)을 기지정된 항상성 다운 문턱값(Hth_dn)과 비교하여 카운팅값(cnt)이 항상성 다운 문턱값(Hth_dn)보다 작으면, 발화 문턱값(Vth)을 감소시키기 위한 항상성 다운 신호(Hdn)를 출력한다. 여기서 항상성 업 문턱값(Hth_up)과 항상성 다운 문턱값(Hth_dn)은 미리 설정된 항상성 문턱값(HT)을 기준으로 기지정된 레벨 큰 값과 기지정된 레벨 작은 값일 수 있다.The up-down determining unit 360 may include a homeostasis up determining unit 361 and a homeostatic down determining unit 362 as shown in FIG. 2 . The homeostasis up determining unit 361 compares the counting value cnt with a predetermined homeostasis up threshold H th_up , and when the counting value cnt is greater than the homeostasis up threshold H th_up , the ignition threshold V th ) to output the homeostasis up signal (H up ) to increase. And the homeostasis down determining unit 362 compares the counting value cnt with a predetermined homeostasis down threshold (H th_dn ), and if the counting value (cnt) is less than the homeostasis down threshold (H th_dn ), the firing threshold ( V th ) to output a homeostatic down signal (H dn ) to decrease. Here, the homeostasis up threshold (H th_up ) and homeostasis down threshold (H th_dn ) may be a predetermined level higher value and a predetermined level lower value based on the preset homeostasis threshold value (H T ).

발화 문턱값 발생부(370)는 업 다운 판별부(360)에서 인가되는 항상성 업 신호(Hup) 또는 항상성 다운 신호(Hdn)에 응답하여 문턱값 변화량(ΔVth)을 결정하고, 결정된 문턱값 변화량(ΔVth)을 이전 발화 문턱값(Vth)에 더하여 발화 문턱값(Vth = Vth + ΔVth)을 가변하여 발화 판별부(340)로 출력한다.The firing threshold generator 370 determines the threshold change amount ΔV th in response to the homeostatic up signal H up or the homeostatic down signal H dn applied from the up/down determining unit 360 , and the determined threshold By adding the value change ΔV th to the previous ignition threshold V th , the ignition threshold V th = V th + ΔV th is varied and output to the utterance determination unit 340 .

일예로 발화 문턱값 발생부(370)는 항상성 업 신호(Hup)에 응답하여 양의 기지정된 크기의 문턱값 변화량(ΔVth)만큼 발화 문턱값(Vth)을 증가시킬 수 있으며, 항상성 다운 신호(Hdn)에 응답하여 음의 기지정된 크기의 문턱값 변화량(ΔVth)만큼 발화 문턱값(Vth)을 감소시킬 수 있다. 즉 발화 문턱값 조절부는 도 5의 (a)에 도시된 바와 같이, 항상성 기간동안 발화 판별부(340)에서 발화되는 출력 스파이크의 개수에 따라 발화 문턱값(Vth)을 증가시키거나 감소시킴으로써, 동일한 항상성 기간동안 발화되는 출력 스파이크의 개수가 가급적 일정하게 되도록 한다.As an example the ignition threshold value generating unit 370 homeostasis up signal period of the two in response to (H up) may increase the ignition threshold value (V th) by the threshold change amount (ΔV th) of the specified size, homeostasis-down In response to the signal H dn , the firing threshold value V th may be decreased by a threshold change amount ΔV th of a predetermined negative magnitude. That is, the firing threshold adjusting unit increases or decreases the firing threshold V th according to the number of output spikes fired by the firing determining unit 340 during the homeostasis period as shown in FIG. 5A , The number of output spikes fired during the same homeostatic period should be as constant as possible.

이때, 항상성 업 신호(Hup)와 항상성 다운 신호(Hdn)에 따른 문턱값 변화량(ΔVth)은 동일한 크기를 가질 수 있으나, 서로 상이하게 지정될 수도 있다.In this case, the threshold change amount ΔV th according to the homeostasis up signal H up and the homeostasis down signal H dn may have the same magnitude, but may be specified differently.

상기한 바와 같이, 발화 문턱값 조절부는 항상성 기간 동안 카운트되는 출력 스파이크의 개수인 카운팅값(cnt)을 항상성 문턱값(HT)을 기준으로 설정된 항상성 업 문턱값(Hth_up) 및 항상성 다운 문턱값(Hth_dn)과 비교하여, 항상성 업 신호(Hup) 또는 항상성 다운 신호(Hdn)를 출력하고, 항상성 업 신호(Hup) 또는 항상성 다운 신호(Hdn)에 응답하여 발화 문턱값(Vth)을 다양하게 조절할 수 있다. 그리고 발화 문턱값(Vth)을 다양하게 조절할 수 있으므로 가중치의 비트 스케일링에 의한 오차가 발생되는 것을 최대한 억제할 수 있을 뿐만 아니라 과적합이 발생되는 것을 방지할 수 있어 SNN이 다양한 입력 데이터에 대해 정확하게 학습을 수행할 수 있도록 한다.As described above, the firing threshold adjusting unit calculates the homeostasis up threshold (H th_up ) and homeostasis down threshold, which is set based on the homeostasis threshold (H T ), a counting value (cnt), which is the number of output spikes counted during the homeostasis period. Compared to (H th_dn ), output a homeostatic up signal (H up ) or a homeostatic down signal (H dn ), and output a homeostatic up signal (H up ) or a homeostatic down signal (H dn ) to a firing threshold (V) th ) can be adjusted in various ways. In addition, since the firing threshold (V th ) can be adjusted in various ways, it is possible to suppress the error caused by bit scaling of weights as much as possible, and also to prevent overfitting, so that the SNN can accurately measure various input data. make learning possible.

여기서 항상성 기간은 학습 시에 동일 입력 데이터가 반복 입력되는 횟수를 기준으로 설정될 수 있으며, 도 5의 (a)에서는 일예로 입력 데이터가 500회 반복 입력되고 2개의 입력 데이터가 입력되는 기간을 항상성 기간으로 설정한 경우를 도시하였다. 항상성 기간은 다양하게 설정될 수 있으며, 일예로 50개의 입력 데이터 각각에 대해 500회 반복 입력되는 2500 사이클 기간으로 설정될 수 있다.Here, the homeostasis period may be set based on the number of times the same input data is repeatedly input during learning, and in FIG. 5 ( a ), as an example, a period in which input data is repeatedly input 500 times and two input data is input is homeostasis. A case in which the period was set is shown. The homeostasis period may be set in various ways, for example, it may be set to a 2,500 cycle period that is input repeatedly 500 times for each of 50 pieces of input data.

도 5의 (b)에서는 SNN이 학습되는 학습 기간 동안 발화 문턱값(Vth)의 변화를 나타낸다. 여기서는 SNN이 디지털 CMOS 회로를 기반으로 구현되는 것으로 가정하였으며, 이에 발화 문턱값(Vth) 또한 전압 레벨이 아닌 디지털 값으로 표현하였다. 도 5의 (b)에 도시된 바와 같이, 발화 문턱값 조절부에 의해 발화 문턱값(Vth)은 매우 큰 폭의 다양한 값을 가질 수 있다. 여기서 발화 문턱값 조절부가 발화 문턱값(Vth)을 출력 스파이크가 발화되거나 발화되지 않을 때마다 또는 항상성 기간동안 발화된 출력 스파이크의 개수에 비례하여 발화 문턱값(Vth)을 증가 또는 감소시키지 않고, 발화 문턱값(Vth)을 일정한 문턱값 변화량(ΔVth)만큼 증가시키거나 감소시키는 것은 발화 문턱값 조절부의 구현이 용이하도록 하기 위함이다.5 (b) shows the change in the speech threshold value (V th ) during the learning period in which the SNN is learned. Here, it is assumed that the SNN is implemented based on a digital CMOS circuit, and thus the firing threshold (V th ) is also expressed as a digital value rather than a voltage level. As shown in FIG. 5B , the fire threshold V th may have a very large wide variety of values by the fire threshold adjuster. Here, the firing threshold adjusting unit adjusts the firing threshold value (V th ) whenever an output spike is fired or not fired or in proportion to the number of output spikes fired during the homeostasis period without increasing or decreasing the firing threshold value (V th ) , increasing or decreasing the ignition threshold V th by a predetermined threshold change amount ΔV th is to facilitate the implementation of the ignition threshold adjustment unit.

상기에서는 스파이크 카운터(350)가 카운트된 출력 스파이크의 개수에 대응하는 카운팅값(cnt)을 출력하고, 업 다운 판별부(360)의 항상성 업 판별부(361)와 항상성 다운 판별부(362)가 각각 카운팅값(cnt)을 항상성 업 문턱값(Hth_dn) 및 항상성 다운 문턱값(Hth_dn)과 비교하여 항상성 업 신호(Hup) 또는 항상성 다운 신호(Hdn)를 출력하는 것으로 설명하였으나, 스파이크 카운터(350)가 카운트한 출력 스파이크의 개수를 기지정된 항상성 업 개수 및 항상성 다운 개수와 비교하여 항상성 업 신호(Hup) 또는 항상성 다운 신호(Hdn)를 출력하도록 간략하게 구성될 수도 있다.In the above, the spike counter 350 outputs a counting value cnt corresponding to the number of counted output spikes, and the homeostasis up determining unit 361 and the homeostasis down determining unit 362 of the up/down determining unit 360 are By comparing the counting value (cnt) with the homeostasis up threshold (H th_dn ) and the homeostatic down threshold (H th_dn ), respectively, the homeostasis up signal (H up ) or the homeostatic down signal (H dn ) was described as outputting, but the spike The counter 350 may be simply configured to output a homeostatic up signal (H up ) or a homeostatic down signal (H dn ) by comparing the counted number of output spikes with a predetermined homeostatic up number and homeostatic down number.

가중치 학습부(400)는 스파이크 타이밍 의존 가소성(Spike-timing-dependent plasticity: 이하 STDP) 기법에 따라 가중치 시냅스부(200)의 다수의 가중치를 학습시킨다. STDP 기법에 따라 가중치를 학습시키는 가중치 학습부(400)는 출력 스파이크가 발화된 시점을 기준으로 이전 기지정된 기간 동안 입력 뉴런부(100)에서 입력 스파이크가 발생된 시간 정보를 기반으로 가중치를 증가시키는 한편, 입력 뉴런부(100)으로부터 입력 뉴런부(100)에서 입력 스파이크가 발생된 시점을 기준으로 이전 기지정된 기간 동안 출력 스파이크가 발화된 시간 정보를 기반으로 가중치를 감소시킬 수 있다.The weight learning unit 400 learns a plurality of weights of the weighted synaptic unit 200 according to a spike-timing-dependent plasticity (STDP) technique. The weight learning unit 400 for learning the weights according to the STDP technique increases the weights based on the time information at which the input spikes are generated in the input neuron unit 100 for a previously predetermined period based on the time when the output spikes are fired. On the other hand, the weight may be reduced based on information about the time when the output spike is fired for a previously predetermined period based on the time when the input spike is generated in the input neuron unit 100 from the input neuron unit 100 .

가중치 학습부(400)는 우선 출력 뉴런부(300)에서 출력 스파이크가 출력되면, 출력 스파이크가 발화되기 이전 기지정된 학습 윈도우 크기(예를 들면 60)에 대응하여 과거 기지정된 기간 동안 가중치 시냅스부(200)로 인가된 입력 스파이크의 정보를 나타내는 입력 스파이크 히스토리를 분석한다. 그리고 출력 스파이크가 발화된 시점을 기준으로 입력 스파이크 히스토리에 저장된 이전 입력 스파이크가 발생된 시간을 비교하여 시간차에 따라 가중치의 변화량을 계산하여 가중치를 증가시킨다.First, when the output spike is output from the output neuron unit 300, the weight learning unit 400 corresponds to a predetermined learning window size (eg, 60) before the output spike is fired, and the weighted synapse unit ( 200) and analyzes the input spike history indicating information on the applied input spike. Then, by comparing the generation time of the previous input spike stored in the input spike history with respect to the time when the output spike is fired, the amount of change in the weight is calculated according to the time difference, and the weight is increased.

한편, 가중치 학습부(400)는 입력 뉴런부(100)에서 입력 스파이크가 발생되어 가중치 시냅스부(200)로 인가되면, 입력 스파이크가 발생되기 이전 기지정된 학습 윈도우 크기에 대응하여 과거 기지정된 기간 동안 발화된 출력 스파이크의 정보를 나타내는 출력 스파이크 히스토리를 분석한다. 그리고 입력 스파이크가 발생된 시점을 기준으로 출력 스파이크가 발화된 시간 사이의 시간차에 따라 가중치의 변화량을 계산하여 가중치를 감소시킨다.On the other hand, when an input spike is generated in the input neuron unit 100 and applied to the weight synaptic unit 200 , the weight learning unit 400 corresponds to a predetermined learning window size before the input spike occurs during a predetermined period in the past. Analyze the output spike history indicating the information of the fired output spike. Then, the weight is reduced by calculating the change amount of the weight according to the time difference between the time when the output spike is fired based on the time when the input spike is generated.

가중치 학습부(400)는 출력 스파이크가 발화된 시점으로부터 이전 입력 스파이크가 발생된 시점까지의 시간차가 짧으면, 입력된 입력 스파이크와 출력 스파이크 사이의 상관 관계가 높아지도록 가중치를 증가시킨다. 반대로, 입력 스파이크가 발생된 시점으로부터 이전 출력 스파이크가 발화된 시점까지의 시간차가 짧으면 입력된 입력 스파이크와 출력 스파이크 사이의 상관 관계가 낮아지도록 가중치를 감소시킨다. 이는 출력 스파이크가 이전 입력된 입력 스파이크에 대한 반응으로 발화되어야 하는 반면, 입력되는 입력 스파이크는 이전 발화된 출력 스파이크에 가능한 무관하게 발생되어야 하기 때문이다.If the time difference from the time when the output spike is fired to the time when the previous input spike is generated is short, the weight learner 400 increases the weight 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 generated to the time when the previous output spike is fired is short, the weight is reduced so that the correlation between the input spike and the output spike is low. This is because the output spike should be fired in response to the previously inputted input spike, whereas the incoming input spike should be generated as independent of the previously fired output spike as possible.

즉 가중치 학습부(400)는 인가되는 입력 스파이크와 출력 스파이크의 발생 시간 차에 기반하여 가중치를 증가 또는 감소시킨다.That is, the weight learning unit 400 increases or decreases the weight based on the time difference between the applied input spike and the output spike.

가중치 학습부(400)가 STDP 기법에 기반하여 가중치 시냅스부(200)를 학습시키는 방법은 공지된 기술이므로 여기서는 상세하게 설명하지 않는다.A method for the weight learning unit 400 to learn the weight synapse unit 200 based on the STDP technique is a well-known technique and will not be described in detail here.

한편, 상기한 바와 같이 출력 뉴런부(300)의 발화 판별부(340)는 막전위값(V(t))이 발화 문턱값(Vth)보다 높으면 출력 스파이크를 발화하고, 출력 뉴런의 발화 문턱값(Vth)이 다양하게 가변된다. 따라서 실제로는 막전위값(V(t))의 상위 비트의 값이 우세하게 되는 반면, 하위 비트의 값은 가변되는 발화 문턱값(Vth)에 의해 오차가 무시될 수 있다.On the other hand, as described above, when the membrane potential value V(t ) is higher than the firing threshold value V th , the firing determination unit 340 of the output neuron unit 300 ignites an output spike, and the firing threshold value of the output neuron unit 300 . (V th ) is variously varied. Therefore, in reality, the value of the upper bit of the membrane potential value V(t) dominates, while the value of the lower bit may have an error negligible due to the variable firing threshold value V th .

일반적으로 SNN에서는 더 많은 뉴런을 구현할수록 더 높은 정확성을 가지지만, 뉴런의 전력 소모 비중이 크기 때문에 뉴런의 집적도를 높이면서 전력 소비를 줄일 수 있는 가장 간단한 방법은 가중치의 비트 수를 줄이는 것이다. 가중치의 비트 수를 줄이게 되면, 출력 뉴런부(300)의 다수의 출력 뉴런 각각이 더 적은 비트에 대한 연산을 수행하게 됨에 따라 회로 구조가 단순해져 SNN의 집적도를 향상시킬 수 있다. 또한 가중치의 비트 수를 줄이게 되면, 가중치 시냅스부(200)는 상기 다수의 비트 라인 각각에 연결되어, 대응하는 비트 라인을 통해 전달되는 가중치의 비트값을 출력 뉴런부(300)로 전달하는 센스 앰프(미도시)의 개수를 줄여 SNN의 집적도를 더욱 높일 수 있다.In general, in SNN, the more neurons are implemented, the higher the accuracy, but since the power consumption of neurons is large, the simplest way to reduce power consumption while increasing the density of neurons is to reduce the number of bits in weights. When the number of bits of the weight is reduced, as each of the plurality of output neurons of the output neuron unit 300 performs an operation on fewer bits, the circuit structure is simplified and the degree of integration of the SNN can be improved. Also, when the number of bits of the weight is reduced, the weight synapse unit 200 is connected to each of the plurality of bit lines, and the sense amplifier transmits the bit value of the weight transmitted through the corresponding bit line to the output neuron unit 300 . By reducing the number (not shown), the degree of integration of the SNN can be further increased.

그러나 가중치의 비트 수를 줄여 낮은 정밀도의 가중치를 이용하는 경우, 학습의 안정성이 낮아지는 문제가 있다.However, when using a weight with low precision by reducing the number of bits in the weight, there is a problem in that the stability of learning is lowered.

이에 본 실시예에서는 가중 입력 스파이크(xiwi)의 합(∑xiwi)을 계산하는 과정에서 가중치에 대해 비트 스케일링(bit scaling)함으로써, 출력 스파이크는 정상적으로 발화하되 SNN의 집적도를 높이고 전력 소비를 줄일 수 있도록 한다.Therefore, in the present embodiment, by bit scaling the weights in the process of calculating the sum (∑x i w i ) of the weighted input spikes (x i w i ), the output spikes are fired normally, but the integration of the SNN is increased. to reduce power consumption.

상기에서는 출력 뉴런부(300)가 다수의 비트 라인 그룹(BLG)에 대응하여 다수의 출력 뉴런을 포함하는 것으로 설명하였으나, 경우에 따라서는 적어도 하나의 출력 뉴런을 구비하고, 스파이크가 발생된 뉴런의 가중치만을 획득하도록 구성될 수도 있다.Although it has been described above that the output neuron unit 300 includes a plurality of output neurons corresponding to the plurality of bit line groups BLG, in some cases, the output neuron unit 300 includes at least one output neuron, It may be configured to obtain only weights.

도 6은 본 실시예에 따른 SNN이 가중치를 비트 스케일링하는 개념을 나타내고, 도 7은 가중치 비트 스케일링에 따른 발화 문턱값의 변화를 나타낸다.6 illustrates a concept in which the SNN according to the present embodiment bit-scales a weight, and FIG. 7 illustrates a change in an utterance threshold according to the weight-bit scaling.

도 6에서 (a)는 가중치를 비트 스케일링 하지 않는 경우의 구성을 나타내고, (b)는 가중치를 비트 스케일링 하지 않는 경우의 구성을 나타낸다. 도 6의 (a)와 (b)를 비교하면, (a)에서는 가중치 시냅스부(200)에서 센스 앰프(SA)가 다수의 비트 라인 그룹(BLG) 각각에 대해 모든 비트 라인에 대응하여 8개씩 구비되어 가중치 누산부(310)로 8비트의 가중치를 인가하도록 구성되었다. 그에 반해, 본 실시예에 따라 가중치를 비트 스케일링하는 경우에는 (b)에 도시된 바와 같이, 비트 라인 그룹(BLG)의 비트 라인 중 가중치의 하위 비트에 대응하는 기지정된 개수(여기서는 4개)의 비트 라인에 대응하는 센스 앰프(SA)가 구비되지 않는다. 따라서 가중치 누산부(310)는 가중치의 상위 비트만을 인가받는다. 즉 (a)에서는 8비트의 가중치가 가중치 누산부(310)로 인가되는 반면, (b)에서는 4비트의 가중치가 가중치 누산부(310)로 인가된다.In FIG. 6, (a) shows a configuration in which weights are not bit scaled, and (b) is a configuration in which weights are not bit scaled. Comparing (a) and (b) of FIG. 6 , in (a), the sense amplifier SA in the weighted synaptic unit 200 corresponds to all bit lines for each of the plurality of bit line groups BLG, 8 each. It is provided and configured to apply an 8-bit weight to the weight accumulator 310 . On the other hand, in the case of bit scaling the weight according to the present embodiment, as shown in (b), a predetermined number (here, four) corresponding to the lower bit of the weight among the bit lines of the bit line group BLG. The sense amplifier SA corresponding to the bit line is not provided. Accordingly, the weight accumulator 310 receives only the upper bit of the weight. That is, in (a), an 8-bit weight is applied to the weight accumulator 310 , whereas in (b), a 4-bit weight is applied to the weight accumulator 310 .

따라서 (a)와 (b)의 가중치 누산부(310)에서 계산되는 막전위값(V(t))의 값이 서로 상이하게 출력된다. 그러나 상기한 바와 같이, 막전위값(V(t))은 출력 스파이크를 발화하기 위한 값이며, 출력 스파이크의 발화는 막전위값(V(t))과 발화 문턱값(Vth)의 비교를 통해 발생된다. 그리고 발화 문턱값(Vth)은 발화 문턱값 조절부의 의해 가변된다.Accordingly, the values of the membrane potential values V(t) calculated by the weight accumulator 310 of (a) and (b) are output differently from each other. However, as described above, the membrane potential (V(t)) is a value for firing the output spike, and firing of the output spike is generated by comparing the membrane potential (V(t)) and the firing threshold (V th ). do. In addition, the fire threshold V th is varied by the fire threshold adjustment unit.

따라서 가중치를 비트 스케일링하여 줄어든 비트 수에 의한 오차보다 발화 문턱값(Vth)의 변화가 더 크면, 가중치를 비트 스케일링하여 발생되는 오차는 무시될 수 있으며, 출력 스파이크는 동일한 시점에 발화될 수 있다. 상기한 바와 같이, 가중치를 8비트에서 4비트로 4비트만큼 비트 스케일링하고, 이에 대응하여 도 7의 (a)에 도시된 16비트 레벨을 갖는 발화 문턱값(Vth)을 (b)와 같이 12비트로 4비트만큼 비트 스케일링하면, 가중치를 비트 스케일링하여 발생되는 오차는 무시될 수 있다. Therefore, if the change in the firing threshold (V th ) is greater than the error caused by the reduced number of bits by bit-scaling the weight, the error generated by bit-scaling the weight can be ignored, and the output spike can be fired at the same time. . As described above, the weight is bit scaled by 4 bits from 8 bits to 4 bits, and correspondingly, the firing threshold value (V th ) having a 16-bit level shown in (a) of FIG. 7 is 12 as shown in (b). When bit-scaled by 4 bits, an error generated by bit-scaling the weight can be ignored.

가중치의 비트 스케일링 비율과 발화 문턱값(Vth)의 비트 스케일링 비율은 반드시 동일하지 않아도 무방하지만, 발화 문턱값(Vth)의 비트 스케일링 비율을 가중치의 비트 스케일링 비율을 초과하여 증가시키는 경우, 출력 스파이크가 발화되는 시점에 변화가 발생할 수 있다. 즉 출력 스파이크에 오차가 발생될 수 있다. 따라서 발화 문턱값(Vth)의 비트 스케일링 비율을 가중치의 비트 스케일링 비율 이내로 설정되는 것이 바람직하다.The bit scaling ratio of the weight and the bit scaling ratio of the speech threshold (V th ) are not necessarily the same, but when the bit scaling ratio of the speech threshold (V th ) is increased to exceed the bit scaling ratio of the weight, output The change may occur at the point in time when the spike is fired. That is, an error may occur in the output spike. Therefore, it is preferable that the bit scaling ratio of the speech threshold V th is set within the bit scaling ratio of the weight.

이와 같이 비트 스케일링을 수행하는 경우, 출력 뉴런부(300)의 다수의 출력 뉴런 각각은 8비트의 가중치에 대한 누적 연산을 수행하지 않고, 4비트의 가중치에 대한 누적 연산을 수행하여 막전위값을 획득하고, 획득된 막전위값에 따라 출력 스파이크를 발화할 수 있다. 따라서 출력 뉴런부(300)의 다수의 출력 뉴런 각각이 비트 스케일링되어 줄어든 가중치의 비트수에 따라 회로 구조가 단순해질 수 있어 SNN의 집적도를 향상시킬 수 있다. 일예로 가중치 누산부(310) 또한 8비트의 가중치들을 누산하기 위한 16비트 가산기 대신 12비트의 누산기로 대체할 수 있다. 그리고 도 2에 도시된 출력 뉴런의 나머지 구성 요소들 또한 비트 스케일링된 발화 문턱값(Vth)과 비트 스케일링된 가중치에 따라 더 적은 비트수를 처리하도록 구현될 수 있어 SNN의 집적도를 향상시킬 수 있다.When bit scaling is performed in this way, each of the plurality of output neurons of the output neuron unit 300 does not perform an accumulative operation on an 8-bit weight, but performs an accumulative operation on a 4-bit weight to obtain a membrane potential value. and the output spike may be ignited according to the obtained membrane potential value. Accordingly, since each of the plurality of output neurons of the output neuron unit 300 is bit-scaled, the circuit structure can be simplified according to the number of bits of the reduced weight, thereby improving the degree of integration of the SNN. For example, the weight accumulator 310 may also be replaced with a 12-bit accumulator instead of a 16-bit adder for accumulating 8-bit weights. And the remaining components of the output neuron shown in FIG. 2 can also be implemented to process a smaller number of bits according to the bit-scaled firing threshold (V th ) and the bit-scaled weight, thereby improving the degree of integration of the SNN. .

또한 (b)에 도시된 바와 같이, 가중치 시냅스부(200)의 센스 앰프(SA) 개수를 줄일 수 있다. 만일 8비트의 가중치에 대해 4비트로 비트 스케일링하는 경우, 센스 앰프의 개수를 1/2로 줄일 수 있게 된다. 따라서 SNN의 집적도를 더욱 향상시킬 수 있다.Also, as shown in (b), the number of sense amplifiers SA of the weighted synaptic unit 200 can be reduced. If the 8-bit weight is bit-scaled to 4 bits, the number of sense amplifiers can be reduced by half. Therefore, the degree of integration of the SNN can be further improved.

한편, 전력 측면에서 살펴보면, 가중치 시냅스부(200)는 비트 라인 그룹(BLG)의 비트 라인이 미리 프리차지(precharge) 되어야 하므로, 프리차지 전력(EPRE)이 요구된다. 그리고 하나의 입력 스파이크가 인가되면 워드 라인(WL)을 활성화해야 하며, 활성화된 워드 라인(WL)에 대응하는 가중치가 각 비트 라인에 연결된 센스 앰프(SA)로 인가되므로, 센스 앰프(SA)가 대응하는 비트 신호를 증폭하기 위한 워드라인 활성화 전력(EWL)이 요구된다. 또한 가중치 누산부(310)가 인가된 가중치를 누산하기 위한 전력(EADD)이 요구된다.Meanwhile, in terms of power, the weighted synaptic unit 200 requires precharged power E PRE because the bit lines of the bit line group BLG must be precharged. And when one input spike is applied, the word line (WL) must be activated, and since the weight corresponding to the activated word line (WL) is applied to the sense amplifier (SA) connected to each bit line, the sense amplifier (SA) is The wordline activation power E WL is required to amplify the corresponding bit signal. In addition, power E ADD for accumulating the weight applied by the weight accumulator 310 is required.

(a)의 경우에는 비트 라인 그룹(BLG)의 n개의 비트 라인이 프리차지되어야 하고, n개의 센스 앰프가 비트 신호를 증폭해야 하며, 가산기가 n비트의 가중치를 16비트로 누산해야 하므로, M개의 출력 뉴런에 대한 전력 소비는 (EPRE + EWL) * n * M + (EADD_16 * M)으로 계산된다. 여기서 EADD_16 은 16비트 누산기의 전력 소비를 나타낸다.In the case of (a), n bit lines of the bit line group (BLG) must be precharged, n sense amplifiers must amplify the bit signal, and the adder must accumulate the weights of n bits into 16 bits. The power consumption for the output neuron is calculated as (E PRE + E WL ) * n * M + (E ADD_16 * M). where E ADD_16 represents the power consumption of the 16-bit accumulator.

반면 (b)의 경우에는 비트 라인 그룹(BLG)의 n/2개의 비트 라인이 프리차지되어야 하고, n/2개의 센스 앰프가 비트 신호를 증폭해야 하며, 가산기가 n/2비트의 가중치를 12비트로 누산해야 하므로, M개의 출력 뉴런에 대한 전력 소비는 (EPRE + EWL) * n/2 * M + (EADD_12 * M)으로 계산된다. 여기서 EADD_12 은 12비트 누산기의 전력 소비를 나타낸다. 즉 전력 소비가 대략 50% 수준으로 크게 줄어들게 됨을 알 수 있다.On the other hand, in the case of (b), n/2 bit lines of the bit line group BLG need to be precharged, n/2 sense amplifiers need to amplify the bit signal, and the adder sets the weight of n/2 bits to 12. Since we need to accumulate in bits, the power consumption for M output neurons is calculated as (E PRE + E WL ) * n/2 * M + (E ADD_12 * M). where E ADD_12 represents the power consumption of the 12-bit accumulator. That is, it can be seen that the power consumption is greatly reduced to about 50% level.

다만 도 6의 (b)에 도시된 바와 같이 비트 스케일링을 수행하는 경우에도 비트 라인 그룹(BLG)의 비트 라인의 수는 그대로 유지되어야 한다. 이는 가중치 학습부(400)가 비록 입력 스파이크와 출력 스파이크 사이의 시간 차에 따라 가중치를 업데이트하지만, 이때 업데이트되는 가중치의 변화는 매우 작은 값으로 나타난다. 그러나 가중치 학습부(400)가 업데이트하는 가중치가 비트 스케일링되면, 가중치의 변화폭이 증가됨으로 인해 학습의 안정성이 낮아질 뿐만 아니라 정상적인 학습이 수행되지 않을 수 있다. 이에 비트 라인 그룹(BLG)의 비트 라인의 수를 그대로 유지하여, 가중치 시냅스부(200)에 저장된 가중치는 비트 스케일링하지 않음으로써, 출력 뉴런에서의 가중치 비트 스케일링에도 불구하고 가중치 학습부(400)가 기존과 동일한 정밀도로 가중치를 업데이트할 수 있도록 하여 학습의 안정성을 유지할 수 있도록 한다.However, even when bit scaling is performed as shown in FIG. 6B , the number of bit lines in the bit line group BLG should be maintained as it is. In this case, although the weight learning unit 400 updates the weight according to the time difference between the input spike and the output spike, the change in the updated weight appears as a very small value. However, if the weights updated by the weight learning unit 400 are bit-scaled, the stability of learning may be lowered and normal learning may not be performed due to an increase in the change range of the weights. Accordingly, by maintaining the number of bit lines in the bit line group BLG as it is, the weights stored in the weight synaptic unit 200 are not bit-scaled, so that the weight learning unit 400 performs the weight learning unit 400 despite the weight bit scaling in the output neurons. By allowing the weights to be updated with the same precision as before, the stability of learning can be maintained.

도 8은 가중치 비트 스케일링에 의한 학습 결과를 비교하여 나타낸다.8 shows a comparison of learning results by weight bit scaling.

도 8에서 (a)는 가중치를 비트 스케일링하지 않고 학습을 수행하여 가중치를 재구성하여 나타난 결과를 나타내고, (b)는 가중치를 비트 스케일링하여 학습을 수행하여 가중치를 재구성하여 나타난 결과를 나타낸다.In FIG. 8, (a) shows the results obtained by reconstructing the weights by performing learning without bit-scaling the weights, and (b) shows the results obtained by reconstructing the weights by performing learning by bit-scaling the weights.

(a)와 (b)를 비교하면 가중치 비트 스케일링 여부에 거의 영향을 받지 않고 정상적으로 학습이 수행됨을 알 수 있다.Comparing (a) and (b), it can be seen that learning is performed normally without being affected by whether or not the weight bit is scaled.

도 9는 가중치 비트 스케일링 비트 수에 따른 학습 정확도를 나타내고, 도 10은 가중치 비트 스케일링 비트 수에 따른 전력 소비량 변화를 나타낸다.FIG. 9 shows the learning accuracy according to the number of weight bit scaling bits, and FIG. 10 shows the change in power consumption according to the number of weight bit scaling bits.

도 9를 참조하면, 가중치의 초기값이 랜덤하게 설정되고 인코딩된 입력 스파이크가 확률에 기초하여 발생되므로, 학습이 수행되는 입력 데이터에 따라 정확도에 일부 편차가 존재하지만, 4비트까지의 비트 스케일링에 대해서는 정확도가 낮아지지 않는다는 것을 알 수 있다. 즉 가중치에 대해 비트 스케일링을 수행하더라도 출력 스파이크가 발화되는 타이밍의 오차는 비트 스케일링을 수행하지 않는 경우와 거의 동일하게 나타난다.Referring to FIG. 9 , since the initial value of the weight is set randomly and the encoded input spike is generated based on the probability, there is some deviation in accuracy depending on the input data on which learning is performed, but in bit scaling up to 4 bits It can be seen that the accuracy does not decrease. That is, even when bit scaling is performed on weights, an error in timing at which an output spike is fired appears almost the same as when bit scaling is not performed.

그러나 도 10에 도시된 바와 같이, 가중치에 대해 비트 스케일링을 수행하는 경우, 비트 스케일링되는 비트 수의 증가에 비례하여 SNN이 가중치에 대한 가산 연산을 수행할 때 소모되는 에너지 소비가 크게 줄어들게 됨을 알 수 있다. 특히 도 10에서 비트 스케일링을 수행하지 않는 경우와 4비트의 비트 스케일링을 수행한 경우를 비교하면 에너지 소비가 1/2 수준으로 줄어들었음을 알 수 있다.However, as shown in FIG. 10, when bit scaling is performed on weights, it can be seen that the energy consumption consumed when the SNN performs addition operation on weights is greatly reduced in proportion to the increase in the number of bits to be bit scaled. have. In particular, when comparing the case in which bit scaling is not performed and the case in which bit scaling of 4 bits is performed in FIG. 10 , it can be seen that the energy consumption is reduced to 1/2 level.

도 11은 본 발명의 일 실시예에 따른 스파이킹 신경망의 운용 방법을 나타낸다.11 shows a method of operating a spiking neural network according to an embodiment of the present invention.

도 11을 참조하여, 본 실시예에 따른 스파이킹 신경망의 운용 방법을 설명하면, 우선 입력 데이터에 대응하는 다수의 입력 스파이크를 생성한다(S10). 생성된 입력 스파이크는 다수의 가중치가 저장된 가중치 시냅스의 다수의 워드 라인 중 대응하는 워드 라인을 활성화한다.Referring to FIG. 11 , the operating method of the spiking neural network according to the present embodiment will be described. First, a plurality of input spikes corresponding to input data are generated ( S10 ). The generated input spike activates a corresponding word line among a plurality of word lines of a weighted synapse in which a plurality of weights are stored.

그리고 활성화된 워드 라인과 교차하는 다수의 비트 라인에 의해 정의되는 메모리 셀에 저장된 가중치가 비트 라인을 통해 인가되어 획득된다. 이때, 가중치는 n비트의 이진 데이터 형태로 저장되지만, 기지정된 하위 k비트를 제외한 상위 (n-k) 비트로 비트 스케일링된 가중치를 인가받아 획득한다(S20).Then, a weight stored in a memory cell defined by a plurality of bit lines intersecting the activated word line is applied and obtained through the bit line. At this time, the weight is stored in the form of n-bit binary data, but the weight is obtained by applying a bit-scaled weight to higher (n-k) bits except for the predetermined lower k bits (S20).

그리고 인가되는 다수의 입력 스파이크 각각에 대응하는 다수의 비트 스케일링된 가중치를 누산한다(S30). 또한 이전 획득된 막전위값(V(t-1))에 기지정된 누설 팩터(λ)를 가중한 누설 막전위값(λV(t-1))을 누산된 비트 스케일링 가중치에 더하여 막전위값(V(t))을 획득한다(S40).Then, a plurality of bit scaled weights corresponding to each of the plurality of input spikes applied are accumulated (S30). In addition, the membrane potential value (V(t)) by adding the previously obtained membrane potential value (V(t-1)) to the leakage membrane potential value (λV(t-1)) obtained by weighting the predetermined leakage factor (λ) to the accumulated bit scaling weight. )) is obtained (S40).

막전위값(V(t))이 획득되면, 획득된 막전위값(V(t))을 비트 스케일링된 발화 문턱값(Vth)과 비교한다(S50). 막전위값(V(t))이 발화 문턱값(Vth) 미만이면, 다시 입력 스파이크에 따른 비트 스케일링 가중치를 획득하고 누산하여 막전위값(V(t+1))을 획득한다.When the membrane potential V(t) is obtained, the obtained membrane potential V(t) is compared with the bit-scaled firing threshold V th ( S50 ). If the membrane potential value V(t) is less than the firing threshold V th , the bit scaling weight according to the input spike is again acquired and accumulated to obtain the membrane potential value V(t+1).

그러나 막전위값(V(t))이 발화 문턱값(Vth) 이상이면, 출력 스파이크를 발화하고, 막전위값(V(t))을 초기화 한다(S60).However, when the membrane potential value V(t) is equal to or greater than the ignition threshold value V th , the output spike is fired and the membrane potential value V(t) is initialized ( S60 ).

출력 스파이크가 발화되면, 기지정된 항상성 기간 동안 발화된 출력 스파이크의 개수를 카운트하고 카운트된 출력 스파이크의 개수에 따라 비트 스케일링된 발화 문턱값(Vth)을 조절한다(S70). 이때, 비트 스케일링된 발화 문턱값(Vth)은 카운트된 출력 스파이크의 개수에 무관하게 증가 또는 감소될 수 있으며, 카운트된 출력 스파이크의 개수에 비례하여 증가 또는 감소되도록 설정될 수도 있다.When the output spike is fired, the number of output spikes fired during the predetermined homeostatic period is counted, and the bit-scaled firing threshold V th is adjusted according to the counted number of output spikes ( S70 ). In this case, the bit-scaled firing threshold V th may be increased or decreased regardless of the number of counted output spikes, and may be set to increase or decrease in proportion to the counted number of output spikes.

본 발명에 따른 방법은 컴퓨터에서 실행시키기 위한 매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다. 여기서 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 또한 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하며, 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: 가중치 학습부
SA: 센스 앰프 310: 가중치 누산부
320: 누설부 330: 리셋 선택부
340: 발화 판별부 350: 스파이크 카운터
360: 업 다운 판별부 370: 발화 문턱값 발생부
100: input neuron unit 200: weighted synaptic unit
300: output neuron unit 400: weight learning unit
SA: sense amplifier 310: weight accumulator
320: leakage 330: reset selection unit
340: ignition discrimination unit 350: spike counter
360: up-down determining unit 370: ignition threshold generating unit

Claims (18)

다수의 워드 라인과 다수의 비트 라인에 의해 정의되는 다수의 메모리 셀을 포함하여 가중치를 저장하는 가중치 시냅스부;
입력 데이터에 응답하여 다수의 입력 스파이크를 생성하여 상기 다수의 워드 라인 중 대응하는 워드 라인을 활성화하는 입력 뉴런부; 및
상기 활성화된 워드 라인과 상기 다수의 비트 라인이 교차하는 영역에 배치된 다수의 메모리 셀 각각에 비트값이 저장된 n비트의 가중치 중 하위 k비트를 제외하여 상위 n-k비트로 비트 스케일링된 가중치를 인가받아 누산하고, 이전 비트 스케일링된 가중치가 누산된 막전위값을 가산하여 막전위값을 획득하며, 획득된 막전위값이 비트 스케일링된 가중치에 대응하여 비트 스케일링된 발화 문턱값 이상이면 출력 스파이크를 발화하고, 발화된 출력 스파이크의 개수를 카운트하여 비트 스케일링된 발화 문턱값을 조절하는 출력 뉴런부를 포함하는 스파이킹 신경망.
a weight synaptic unit for storing weights including a plurality of memory cells defined by a plurality of word lines and a plurality of bit lines;
an input neuron unit generating a plurality of input spikes in response to input data to activate a corresponding word line among the plurality of word lines; and
In each of a plurality of memory cells disposed in a region where the activated word line and the plurality of bit lines intersect, a weight scaled by bits to the upper nk bits is applied and accumulated by excluding the lower k bits among the weights of n bits in which bit values are stored. and obtaining a membrane potential value by adding the membrane potential value accumulated by the previous bit-scaled weight, and if the obtained membrane potential value is equal to or greater than the bit-scaled firing threshold corresponding to the bit-scaled weight, an output spike is fired, and the fired output A spiking neural network comprising an output neuron unit that counts the number of spikes and adjusts a bit-scaled firing threshold.
제1 항에 있어서, 상기 출력 뉴런부는
상기 가중치 시냅스부의 다수의 비트 라인이 n개의 비트 라인 단위로 그룹화된 다수의 비트 라인 그룹 중 비트 라인 그룹 각각에서 상위 n-k비트에 대응하는 비트 라인을 통해 인가되는 가중치를 상기 비트 스케일링된 가중치로 획득하는 스파이킹 신경망.
According to claim 1, wherein the output neuron unit
Obtaining, as the bit scaled weight, a weight applied through a bit line corresponding to the upper nk bit in each bit line group among a plurality of bit line groups in which a plurality of bit lines of the weight synapse are grouped in units of n bit lines Spiking Neural Network.
제2 항에 있어서, 상기 출력 뉴런부는
상기 비트 스케일링된 가중치의 비트 스케일링 비율 이하로 상기 발화 문턱값을 비트 스케일링하는 스파이킹 신경망.
The method of claim 2, wherein the output neuron unit
A spiking neural network that bit scales the firing threshold to less than or equal to a bit scaling ratio of the bit scaled weight.
제2 항에 있어서, 상기 출력 뉴런부는
상기 다수의 비트 라인 그룹 각각에 대응하는 다수의 출력 뉴런을 포함하고,
상기 다수의 출력 뉴런 각각은
대응하는 비트 라인 그룹의 상위 n-k비트에 대응하는 비트 라인으로부터 비트 스케일링된 가중치를 획득하여 누산하고, 이전 획득된 막전위값을 가산하여 막전위 값을 획득하는 가중치 누산부;
획득된 막전위 값이 상기 비트 스케일링된 발화 문턱값 이상이면 출력 스파이크를 발화하는 발화 판별부; 및
기지정된 기간 동안 발화된 출력 스파이크의 개수를 카운트하여 비트 스케일링된 발화 문턱값을 조절하는 발화 문턱값 조절부를 포함하는 스파이킹 신경망.
The method of claim 2, wherein the output neuron unit
a plurality of output neurons corresponding to each of the plurality of bit line groups;
Each of the plurality of output neurons is
a weight accumulator for acquiring and accumulating a bit-scaled weight from a bit line corresponding to an upper nk bit of a corresponding bit line group, and obtaining a membrane potential value by adding the previously acquired membrane potential;
a fire determination unit igniting an output spike when the obtained film potential value is equal to or greater than the bit-scaled fire threshold; and
A spiking neural network comprising: a firing threshold adjusting unit configured to count the number of output spikes fired during a predetermined period to adjust a bit-scaled firing threshold.
제4 항에 있어서, 상기 출력 뉴런은
이전 획득된 막전위값에 기지정된 누설 팩터를 가중하여 누설 막전위값을 획득하는 누설부를 더 포함하고,
상기 가중치 누산부는 누산된 비트 스케일링된 가중치에 상기 누설 막전위값를 가산하여 상기 막전위값을 획득하는 스파이킹 신경망.
5. The method of claim 4, wherein the output neuron is
Further comprising a leakage unit for obtaining a leakage membrane potential value by weighting a predetermined leakage factor to the previously obtained membrane potential value,
The weight accumulator adds the leaked membrane potential value to the accumulated bit-scaled weight to obtain the membrane potential value.
제4 항에 있어서, 상기 출력 뉴런은
기지정된 억제 기간 또는 내화 기간동안 출력 스바이크를 발화하지 않도록, 상기 막전위값을 기지정된 레벨로 초기화하는 리셋 선택부를 더 포함하는 스파이킹 신경망.
5. The method of claim 4, wherein the output neuron is
The spiking neural network further comprising a reset selector configured to initialize the membrane potential to a predetermined level so as not to ignite the output switch during a predetermined suppression period or fire resistance period.
제4 항에 있어서, 상기 발화 문턱값 조절부는
기지정된 기간 동안 상기 출력 스파이크의 개수를 카운트하고, 카운트된 출력 스파이크의 개수가 기지정된 항상성 업 개수 이상이면, 상기 발화 문턱값을 기지정된 문턱값 변화량만큼 증가시키고, 카운트된 출력 스파이크의 개수가 기지정된 항상성 다운 개수 이하이면, 상기 발화 문턱값을 기지정된 문턱값 변화량만큼 감소시키는 스파이킹 신경망.
5. The method of claim 4, wherein the ignition threshold adjustment unit
Count the number of output spikes for a predetermined period, and if the counted number of output spikes is equal to or greater than a predetermined homeostatic up number, the firing threshold is increased by a predetermined threshold change amount, and the number of counted output spikes is A spiking neural network that decreases the firing threshold by a predetermined threshold change amount if the number of homeostatic downs is less than or equal to a specified number.
제4 항에 있어서, 상기 가중치 시냅스부는
상기 다수의 비트 라인 그룹 각각에서 상위 n-k비트에 대응하는 비트 라인 각각과 대응하는 출력 뉴런 사이에 연결되어, 대응하는 비트 라인을 통해 인가되는 비트 신호를 대응하는 출력 뉴런으로 전달하는 다수의 센스 앰프를 더 포함하는 스파이킹 신경망.
According to claim 4, wherein the weight synaptic unit
A plurality of sense amplifiers connected between each bit line corresponding to the upper nk bit in each of the plurality of bit line groups and a corresponding output neuron to transmit a bit signal applied through the corresponding bit line to the corresponding output neuron; A spiking neural network that includes more.
제2 항에 있어서, 상기 스파이킹 신경망은
상기 가중치 시냅스부에 저장된 가중치를 학습시키는 가중치 학습부를 더 포함하고,
상기 가중치 학습부는 상기 다수의 입력 스파이크가 생성된 시간 정보를 포함하는 입력 스파이크 히스토리와 상기 출력 스파이크가 발화된 시간 정보를 포함하는 출력 스파이크 히스토리를 저장하여, 입력 스파이크가 생성된 시간과 출력 스파이크가 발화된 시간 차에 기반하여 상기 가중치를 업데이트하는 스파이킹 신경망.
The method of claim 2, wherein the spiking neural network
Further comprising a weight learning unit for learning the weight stored in the weight synapse unit,
The weight learning unit stores an input spike history including time information at which the plurality of input spikes are generated and an output spike history including time information at which the output spikes are fired, so that the time when the input spikes are generated and the time when the output spikes are fired A spiking neural network that updates the weights based on the time difference.
제9 항에 있어서, 상기 가중치 학습부는
비트 스케일링되지 않은 n 비트의 가중치를 업데이트하는 스파이킹 신경망.
10. The method of claim 9, wherein the weight learning unit
A spiking neural network that updates the weights of n bits that are not bit scaled.
입력 데이터에 응답하여 다수의 입력 스파이크를 생성하여, 다수의 워드 라인과 다수의 비트 라인에 의해 정의되는 다수의 메모리 셀을 포함하여 가중치를 저장하는 가중치 시냅스부에서 상기 다수의 워드 라인 중 대응하는 워드 라인을 활성화하는 단계;
상기 활성화된 워드 라인과 상기 다수의 비트 라인이 교차하는 영역에 배치된 다수의 메모리 셀 각각에 비트값이 저장된 n비트의 가중치 중 하위 k비트를 제외하여 상위 n-k비트로 비트 스케일링된 가중치를 인가받아 누산하는 단계;
누산된 비트 스케일링된 가중치에 이전 비트 스케일링된 가중치가 누산된 막전위값을 가산하여 막전위값을 획득하는 단계;
획득된 막전위값이 비트 스케일링된 가중치에 대응하여 비트 스케일링된 발화 문턱값 이상이면, 출력 스파이크를 발화하는 단계; 및
발화된 출력 스파이크의 개수를 카운트하여 비트 스케일링된 발화 문턱값을 조절하는 단계를 포함하는 스파이킹 신경망의 운용 방법.
A corresponding word among the plurality of word lines in a weight synapse that generates a plurality of input spikes in response to input data and stores a weight including a plurality of memory cells defined by a plurality of word lines and a plurality of bit lines activating the line;
In each of a plurality of memory cells disposed in an area where the activated word line and the plurality of bit lines intersect, a weight scaled by bit scale to the upper nk bits is applied and accumulated by excluding the lower k bits among the weights of n bits in which bit values are stored. to do;
obtaining a membrane potential value by adding a membrane potential value accumulated by a previous bit scaled weight to the accumulated bit scaled weight;
igniting the output spike when the obtained membrane potential value is equal to or greater than the bit-scaled firing threshold corresponding to the bit-scaled weight; and
A method of operating a spiking neural network, comprising the step of counting the number of fired output spikes and adjusting a bit-scaled firing threshold.
제11 항에 있어서, 상기 누산하는 단계는
상기 가중치 시냅스부의 다수의 비트 라인이 n개의 비트 라인 단위로 그룹화된 다수의 비트 라인 그룹 중 대응하는 비트 라인 그룹에서 상위 n-k비트에 대응하는 비트 라인을 통해 인가되는 가중치를 상기 비트 스케일링된 가중치로 획득하는 스파이킹 신경망의 운용 방법.
12. The method of claim 11, wherein the accumulating comprises:
A weight applied through a bit line corresponding to the upper nk bit in a corresponding bit line group among a plurality of bit line groups in which a plurality of bit lines of the weight synapse are grouped in units of n bit lines is obtained as the bit scaled weight How to operate a spiking neural network.
제12 항에 있어서, 상기 발화 문턱값을 조절하는 단계는
상기 비트 스케일링된 가중치의 비트 스케일링 비율 이하로 상기 발화 문턱값을 비트 스케일링하고, 비트 스케일링된 발화 문턱값을 조절하는 스파이킹 신경망의 운용 방법.
13. The method of claim 12, wherein adjusting the firing threshold comprises:
A method of operating a spiking neural network by bit-scaling the speech threshold to be less than or equal to a bit-scaling ratio of the bit-scaled weight and adjusting the bit-scaled speech threshold.
제13 항에 있어서, 상기 막전위값을 획득하는 단계는
이전 획득된 막전위값에 기지정된 누설 팩터를 가중하여 누설 막전위값을 획득하는 단계; 및
누산된 비트 스케일링된 가중치에 상기 누설 막전위값를 가산하여 상기 막전위값을 획득하는 단계를 포함하는 스파이킹 신경망의 운용 방법.
14. The method of claim 13, wherein the obtaining the membrane potential value comprises:
obtaining a leakage membrane potential value by weighting a predetermined leakage factor to the previously obtained membrane potential value; and
A method of operating a spiking neural network, comprising the step of adding the leaked membrane potential to an accumulated bit-scaled weight to obtain the membrane potential.
제13 항에 있어서, 상기 스파이킹 신경망의 운용 방법은
기지정된 억제 기간 또는 내화 기간동안 출력 스바이크를 발화하지 않도록, 상기 막전위값을 기지정된 레벨로 초기화하는 단계를 더 포함하는 스파이킹 신경망의 운용 방법.
The method of claim 13, wherein the operating method of the spiking neural network is
The method of operating a spiking neural network further comprising the step of initializing the membrane potential to a predetermined level so as not to ignite the output switch during a predetermined suppression period or fire resistance period.
제13 항에 있어서, 상기 발화 문턱값을 조절하는 단계는
상기 출력 스파이크의 개수를 카운트하는 단계;
카운트된 출력 스파이크의 개수가 기지정된 항상성 업 개수 이상이면, 상기 발화 문턱값을 기지정된 문턱값 변화량만큼 증가시키는 단계; 및
카운트된 출력 스파이크의 개수가 기지정된 항상성 다운 개수 이하이면, 상기 발화 문턱값을 기지정된 문턱값 변화량만큼 감소시키는 단계를 포함하는 스파이킹 신경망의 운용 방법.
14. The method of claim 13, wherein adjusting the firing threshold comprises:
counting the number of output spikes;
if the counted number of output spikes is equal to or greater than a predetermined homeostatic up number, increasing the firing threshold by a predetermined threshold change amount; and
When the counted number of output spikes is less than or equal to a predetermined homeostatic down number, the method of operating a spiking neural network comprising the step of reducing the firing threshold by a predetermined threshold change amount.
제12 항에 있어서, 상기 스파이킹 신경망의 운용 방법은
상기 가중치 시냅스부에 저장된 가중치를 학습시키는 단계를 더 포함하고,
상기 학습시키는 단계는
상기 다수의 입력 스파이크가 생성된 시간 정보를 포함하는 입력 스파이크 히스토리와 상기 출력 스파이크가 발화된 시간 정보를 포함하는 출력 스파이크 히스토리를 저장하는 단계;
저장된 입력 스파이크 히스토리와 출력 스파이크 히스토리를 이용하여 입력 스파이크가 생성된 시간과 출력 스파이크가 발화된 시간 차를 계산하는 단계; 및
계산된 시간 차에 기반하여 상기 가중치를 업데이트하는 단계를 포함하는 스파이킹 신경망의 운용 방법.
The method of claim 12, wherein the operating method of the spiking neural network is
Further comprising the step of learning the weight stored in the weight synaptic unit,
The learning step
storing an input spike history including time information at which the plurality of input spikes are generated and an output spike history including time information at which the output spikes are fired;
calculating a time difference between an input spike generation time and an output spike firing time using the stored input spike history and output spike history; and
A method of operating a spiking neural network comprising the step of updating the weight based on the calculated time difference.
제17 항에 있어서, 상기 가중치를 업데이트하는 단계는
비트 스케일링되지 않은 n 비트의 가중치를 업데이트하는 스파이킹 신경망의 운용 방법.
18. The method of claim 17, wherein updating the weight comprises:
A method of operating a spiking neural network that updates the weights of n bits that are not bit scaled.
KR1020190168488A 2019-12-17 2019-12-17 Spiking neural network and operation method thereof KR102468711B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190168488A KR102468711B1 (en) 2019-12-17 2019-12-17 Spiking neural network and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190168488A KR102468711B1 (en) 2019-12-17 2019-12-17 Spiking neural network and operation method thereof

Publications (2)

Publication Number Publication Date
KR20210077159A true KR20210077159A (en) 2021-06-25
KR102468711B1 KR102468711B1 (en) 2022-11-17

Family

ID=76629002

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190168488A KR102468711B1 (en) 2019-12-17 2019-12-17 Spiking neural network and operation method thereof

Country Status (1)

Country Link
KR (1) KR102468711B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120033966A1 (en) * 2009-03-10 2012-02-09 Lockheed Martin Corporation Optical leaky integrate-and-fire neuron
KR20180062934A (en) 2016-12-01 2018-06-11 한국과학기술원 Spiking neural network system for dynamic control of flexible, stable and hybrid memory storage
KR20180073118A (en) * 2016-12-22 2018-07-02 삼성전자주식회사 Convolutional neural network processing method and apparatus
US20190057301A1 (en) * 2017-08-17 2019-02-21 International Business Machines Corporation Neuromorphic processing apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120033966A1 (en) * 2009-03-10 2012-02-09 Lockheed Martin Corporation Optical leaky integrate-and-fire neuron
KR20180062934A (en) 2016-12-01 2018-06-11 한국과학기술원 Spiking neural network system for dynamic control of flexible, stable and hybrid memory storage
KR20180073118A (en) * 2016-12-22 2018-07-02 삼성전자주식회사 Convolutional neural network processing method and apparatus
US20190057301A1 (en) * 2017-08-17 2019-02-21 International Business Machines Corporation Neuromorphic processing apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
S. R. Kulkarni. "Neuromorphic Hardware Accelerator for SNN Inference based on STT-RAM Crossbar Arrays"* *

Also Published As

Publication number Publication date
KR102468711B1 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
Fusi Hebbian spike-driven synaptic plasticity for learning patterns of mean firing rates
KR101466205B1 (en) An electric circuit, a method and an apparatus for implimenting a digital neural processing unit
US8892485B2 (en) Methods and systems for neural processor training by encouragement of correct output
US10446231B2 (en) Memory cell structure
CN110998611A (en) Neuromorphic processing device
US11023805B2 (en) Monitoring potential of neuron circuits
US10340002B1 (en) In-cell differential read-out circuitry for reading signed weight values in resistive processing unit architecture
WO2019021081A1 (en) System and method for constructing synaptic weights for artificial neural networks from signed analog conductance-pairs of varying significance
US10552734B2 (en) Dynamic spatial target selection
US11301752B2 (en) Memory configuration for implementing a neural network
KR20160125967A (en) Method and apparatus for efficient implementation of common neuron models
US11461640B2 (en) Mitigation of conductance drift in neural network resistive processing units
TWI677827B (en) Semiconductor memory device
US9418332B2 (en) Post ghost plasticity
KR102468711B1 (en) Spiking neural network and operation method thereof
KR102419338B1 (en) Apparatus and method for learning a spiking neural network
US20220147796A1 (en) Circuit and method for spike time dependent plasticity
KR102500633B1 (en) Apparatus and method for learning a spiking neural network
TWI657446B (en) Resistive memory and write method thereof
Pupezescu Auto Resetting Multilayer Perceptron in an Adaptive Elearning Architecture
US20230298663A1 (en) Neural network based method and device
Wu et al. A digitalized RRAM-based Spiking Neuron Network system with 3-bit weight and unsupervised online learning scheme
CN110660432B (en) Resistive memory and writing method
US20230306245A1 (en) Programming circuit, integrated circuit, and method
Lee et al. Unsupervised Online Learning With Multiple Postsynaptic Neurons Based on Spike-Timing-Dependent Plasticity Using a TFT-Type NOR Flash Memory Array

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