KR20190051766A - Neuron Circuit, system and method for synapse weight learning - Google Patents
Neuron Circuit, system and method for synapse weight learning Download PDFInfo
- Publication number
- KR20190051766A KR20190051766A KR1020180069625A KR20180069625A KR20190051766A KR 20190051766 A KR20190051766 A KR 20190051766A KR 1020180069625 A KR1020180069625 A KR 1020180069625A KR 20180069625 A KR20180069625 A KR 20180069625A KR 20190051766 A KR20190051766 A KR 20190051766A
- Authority
- KR
- South Korea
- Prior art keywords
- learning
- value
- synapse
- signal
- neuron
- Prior art date
Links
- 210000002569 neuron Anatomy 0.000 title claims abstract description 326
- 210000000225 synapse Anatomy 0.000 title claims abstract description 279
- 238000000034 method Methods 0.000 title claims description 53
- 230000002787 reinforcement Effects 0.000 claims abstract description 108
- 230000004913 activation Effects 0.000 claims abstract description 44
- 230000003313 weakening effect Effects 0.000 claims abstract description 41
- 230000000946 synaptic effect Effects 0.000 claims description 120
- 230000001186 cumulative effect Effects 0.000 claims description 41
- 230000001242 postsynaptic effect Effects 0.000 claims description 19
- 230000002441 reversible effect Effects 0.000 claims description 6
- 210000004027 cell Anatomy 0.000 description 35
- 230000006870 function Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 27
- 238000013528 artificial neural network Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 238000010304 firing Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 11
- 230000001537 neural effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 7
- 238000012421 spiking Methods 0.000 description 6
- 230000003247 decreasing effect Effects 0.000 description 5
- 230000005764 inhibitory process Effects 0.000 description 5
- 238000005728 strengthening Methods 0.000 description 5
- 230000036962 time dependent Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000003518 presynaptic effect Effects 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000012528 membrane Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 210000005215 presynaptic neuron Anatomy 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000881 depressing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000036515 potency Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 210000000063 presynaptic terminal Anatomy 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Air Conditioning Control Device (AREA)
- Image Analysis (AREA)
Abstract
Description
본 개시는 시냅스 가중치 학습을 위한 뉴런 회로, 시스템 및 방법에 관한 것이다.The present disclosure relates to neuron circuits, systems and methods for synaptic weighted learning.
인공 신경망(artificial neural network)은, 인공 뉴런(neuron) 또는 그 모델들의 상호 연결을 구현하기 위한 컴퓨팅 장치 등을 지칭한다.An artificial neural network refers to an artificial neuron or a computing device for implementing the interconnections of the models.
인공 신경망의 구현 방식으로서 회선 신경망(Convolution Neural Network) 및 재귀 신경망(Recursive Neural Network) 등이 제안되었으며, 나아가 인간의 생물학적 구조를 모방하여 인간의 뇌 구조와 유사하게 인공 신경망을 구축하기 위한 스파이킹 인공 신경망(Spiking Neural Network: SNN)에 대한 연구가 부각되고 있다.Convolution Neural Network and Recursive Neural Network have been proposed as an implementation method of artificial neural network. Furthermore, spiking artificial neural network, which imitates human biological structure and constructs artificial neural network similar to human brain structure, Research on Spiking Neural Network (SNN) has been highlighted.
SNN은 기존 방식과 달리 동적인 특징을 학습함에 있어서 최적화된 구조이며 이를 구현하기 소프트웨어 및 하드웨어적 방식이 제안되고 있다.Unlike the conventional method, SNN is optimized for learning dynamic features, and software and hardware methods for implementing it are proposed.
그러나 기존 방식은 연산 처리 량이 많아 학습의 속도가 제한적이며, 상위 계층으로 갈수록 학습 속도가 누적적으로 느려지며, 또한, 기존의 결정론적 방식을 따름으로서 시냅스 가중치 값을 저장하기 위하여 많은 용량의 메모리를 필요로 하기 때문에 시스템 비용이 증가하는 문제점이 있다.However, in the conventional method, the learning speed is limited due to a large amount of computation processing, and the learning speed is gradually slowed down to the upper layer. Also, according to the existing deterministic method, a large amount of memory There is a problem in that the system cost increases.
본 개시는 다양한 실시 예에 따른 시냅스 가중치 학습을 위한 뉴런 회로, 시스템 및 방법에 관한 것으로서, 특히, 확률적 학습 방식을 이용하여 이산적 구현이 용이하며 학습 속도를 향상시키기 위한 방식을 제안한다.This disclosure relates to neural circuits, systems and methods for synaptic weighted learning in accordance with various embodiments, and proposes a method for facilitating discrete implementation using a probabilistic learning method and improving learning speed.
일 측면에 따른 복수의 시냅스 가중치 값들에 대한 시냅스 학습을 수행하는 뉴런 회로는, 복수의 시냅스 가중치 값들을 저장하는 시냅스 가중치 메모리, 시냅스 전 뉴런 회로로부터 입력 신호를 수신하고, 수신된 입력 신호가, 수신된 입력 신호의 시냅스 값이 활성 값인 활성화 신호인지 여부를 판단하는 제 1 서브 회로, 판단 결과에 따라, 활성화 입력 신호의 제 1 누적 수신 횟수와 학습 임계 값간의 비교 연산을 수행하는 제 2 서브 회로, 및 제 1 누적 수신 횟수가 학습 임계 값에 이른 경우, 제 1 확률에 따라, 기 수신된 적어도 하나의 입력 신호의 시냅스 가중치 값을 활성 값으로 설정하는 강화 학습을 수행하고, 복수의 시냅스 가중치 값들 각각을, 제 2 확률에 따라, 비활성 값으로 설정하는 약화 학습을 수행하는, 제 3 서브 회로를 포함할 수 있다.A neuron circuit for performing a synapse learning on a plurality of synapse weight values according to an aspect comprises a synapse weight memory for storing a plurality of synapse weight values, a receiving circuit for receiving an input signal from a pre- A second subcircuit for performing a comparison operation between a first cumulative number of times of reception of the activation input signal and a learning threshold value in accordance with a determination result, And performing reinforcement learning to set the synaptic weight value of the at least one input signal previously received according to the first probability to an active value when the first cumulative number of received times reaches a learning threshold, In accordance with a second probability, to an inactive value.
다른 일 측면에 따른 복수의 시냅스의 가중치 값들에 대한 학습 시스템은, 뉴런 회로 및 학습 회로를 포함할 수 있다.The learning system for a plurality of synapse weight values according to another aspect may include a neuron circuit and a learning circuit.
또한, 뉴런 회로는, 시냅스 전 뉴런 회로로부터 입력 신호를 수신하고, 수신된 입력 신호가 수신된 입력 신호의 시냅스 값이 활성 값인 활성화 신호인지 여부를 판단하여, 활성화 입력 신호의 제 1 누적 수신 횟수가 학습 임계 값에 이른 경우 학습 요청 신호를 학습 회로에게 전송할 수 있다.Further, the neuron circuit receives the input signal from the synapse pre-neuron circuit, and judges whether or not the received input signal is the activation signal whose synapse value of the received input signal is the active value, so that the first accumulated reception number of the activated input signal is When the learning threshold value is reached, the learning request signal can be transmitted to the learning circuit.
또한, 학습 회로는, 학습 요청 신호를 수신함에 따라, 제 1 확률로, 뉴런 회로에 의해 기 수신된 적어도 하나의 입력 신호의 시냅스 가중치 값을 활성 값으로 설정하는 강화 학습을 수행하고, 복수의 시냅스 가중치 값들 각각을, 제 2 확률에 따라, 비활성 값으로 설정하는 약화 학습을 수행할 수 있다.The learning circuit also performs reinforcement learning with a first probability of setting the synaptic weight value of the at least one input signal previously received by the neuron circuit to the active value as it receives the learning request signal, It is possible to perform weak learning in which each of the weight values is set to an inactive value according to the second probability.
또 다른 일 측면에 따른 뉴런 회로에 의해 수행되는, 뉴런 회로와 시냅스 전 뉴런 회로들간의 복수의 시냅스의 가중치 값들에 대한 학습 방법은, 시냅스 전 뉴런 회로로부터 입력 신호를 수신함에 따라, 수신된 입력 신호가, 수신된 입력 신호의 시냅스 값이 활성 값인 활성화 입력 신호인지 판단하는 단계, 판단 결과에 따라, 활성화 입력 신호의 제 1 누적 수신 횟수와 학습 임계 값의 비교 연산을 수행하는 단계, 제 1 누적 수신 횟수가 학습 임계 값에 이른 경우, 제 1 확률에 따라, 기 수신된 적어도 하나의 입력 신호의 시냅스 가중치 값을 활성 값으로 설정하는 강화 학습 수행 단계, 및 복수의 시냅스 가중치 값들 각각을, 제 2 확률에 따라, 비활성 값으로 설정하는 약화 학습 수행 단계를 포함할 수 있다.A learning method for a plurality of synapse weight values between a neuron circuit and a synapse neuron circuit, which is performed by a neuron circuit according to another aspect, includes receiving, as an input signal from a synapse pre-neuron circuit, Determining whether a synapse value of the received input signal is an active input signal that is an active value, performing a comparison operation between a first cumulative number of times of reception of the activation input signal and a learning threshold value according to a determination result, Performing a reinforcement learning step of setting a synapse weight value of at least one input signal that has been previously received to an active value according to a first probability when the number of times reaches a learning threshold, , And setting an inactive value according to the weakened learning step.
또 다른 일 측면에 따른 뉴런 회로와 시냅스 전 뉴런 회로들간의 복수의 시냅스의 가중치 값들에 대한 학습 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공된다.There is provided a computer-readable recording medium recording a program for causing a computer to execute a learning method for a plurality of synapse weight values between a neuron circuit and a synapse pre-neuron circuit according to another aspect.
본 실시예들에 따르면, 뉴런 회로는 확률적 강화 학습 및 약화 학습을 수행함으로써, 이진 값을 가지는 시냅스 가중치를 이용하여 스파이킹 인공신경망을 구현할 수 있기 때문에 시냅스 가중치를 저장하기 위한 메모리 용량을 줄일 수 있다.According to the embodiments, since the neuron circuit can perform spiked reinforcement learning and weakening learning, a spiking artificial neural network can be implemented using a synapse weight having a binary value, thereby reducing the memory capacity for storing the synaptic weight have.
또한, 뉴런 회로는 학습 프로세스와 발화 프로세스를 분리함으로써, 하위 계층의 학습 속도가 감소함으로 인해 상위 계층에서 학습 속도가 저하되는 것을 방지할 수 있다.In addition, the neuron circuit can prevent the learning rate from being lowered in the upper layer due to the lower learning speed of the lower layer by separating the learning process and the speech process.
도 1a 내지 도 1c는 일 실시 예에 따른 스파이킹 인공신경망(Spiking Neural Network)를 개략적으로 설명하기 위한 도면이다.
도 2a 내지 도 2d는 일 실시 예에 따른 시간 의존적 STDP(Spike-timing-dependent plasticity) 학습 함수를 도시한 도면이다.
도 3a 내지 도 3d는 일 실시 예에 따른 순서 의존적 STDP 학습 함수를 도시한 도면이다.
도 4는 일 실시 예에 따른 커넬 함수를 도시한 도면이다.
도 5는 일 실시 예에 따른 SNN의 계층 집단(population)을 도시한 도면이다.
도 6은 일 실시 예에 따른 뉴런 회로의 블록도이다.
도 7은 일 실시 예에 따른 뉴런 회로의 블록도이다.
도 8은 일 실시 예에 따른 시냅스 가중치 학습 시스템을 도시한 도면이다.
도 9는 일 실시 예에 따른 복수의 뉴런 회로들에 대한 시냅스 가중치 학습 시스템을 도시한 도면이다.
도 10은 계층적 뉴런 회로 집단의 학습 시스템을 도시한 도면이다.
도 11은 일 실시 예에 따른 뉴런 회로에 의해 수행되는 시냅스 가중치 학습 방법의 흐름도이다.
도 12는 뉴런 회로를 구현하기 위한 뉴런 블록의 스킴을 도시한 도면이다.
도 13은 일 실시 예에 따른 학습 회로를 구현하기 위한 STDP 학습 블록 스킴을 도시한 도면이다.
도 14는 일 실시 예에 따른 복수의 뉴런 회로를 포함하는 단일 코어 회로를 구현하기 위한 단일 코어 블록 스킴을 도시한 도면이다.
도 15는 복수의 단일 코어 블록들을 포함하는 멀티 코어 블록을 도시한 도면이다.FIGS. 1A to 1C are schematic views for explaining a spiking neural network according to an embodiment.
FIGS. 2A through 2D are diagrams illustrating a time-dependent spike-timing-dependent plasticity (STDP) learning function according to an embodiment.
3A through 3D are diagrams illustrating an order dependent STDP learning function according to an embodiment.
4 is a diagram illustrating a kernel function according to an embodiment.
5 is a diagram illustrating a hierarchical population of SNNs according to one embodiment.
6 is a block diagram of a neuron circuit according to one embodiment.
7 is a block diagram of a neuron circuit according to one embodiment.
8 is a diagram illustrating a synapse weight learning system according to an embodiment.
9 is a diagram illustrating a synapse weight learning system for a plurality of neuron circuits according to one embodiment.
10 is a diagram showing a learning system of a hierarchical neuron circuit group.
11 is a flow diagram of a method of learning a synaptic weight performed by a neuron circuit according to one embodiment.
12 is a diagram showing a scheme of a neuron block for implementing a neuron circuit.
13 is a diagram illustrating an STDP learning block scheme for implementing a learning circuit according to an embodiment.
14 is a diagram illustrating a single core block scheme for implementing a single core circuit including a plurality of neuron circuits according to one embodiment.
15 is a diagram showing a multicore block including a plurality of single core blocks.
도 1a 내지 도 1c는 일 실시 예에 따른 스파이킹 인공신경망(Spiking Neural Network: SNN)을 개략적으로 설명하기 위한 도면이다.FIGS. 1A through 1C are schematic views for explaining a Spiking Neural Network (SNN) according to an embodiment of the present invention.
SNN은 뇌의 뉴런을 포함하는 생물학적인 신경망 메커니즘을 모방하는 인공 신경망이다. SNN은 이산적인 스파이크 신호의 발생에 기초하여 동작한다. SNN is an artificial neural network that imitates a biological neural network mechanism that includes neurons in the brain. The SNN operates based on the generation of discrete spike signals.
도 1a를 참조하면, 뉴런(10)은 입력 스파이크 신호가 유입되는 입력 단자를 포함한다. 수신되는 입력 스파이크 신호는 물리적 또는 전산적 구현 방식에 따라 다른 성질과 모양을 가질 수 있다. SNN이 소프트웨어 프로그램과 같이 순수하게 전산적으로 구현된 것이라면, 입력 스파이크 신호는 해당 입력 스파이크 신호가 수신 된 시간 정보로 나타낼 수 있다. 또는, 입력 스파이크 신호는 시간에 따라 변하며 생물학적 형태를 가지는 복잡한 신경 스파이크 신호로 나타낼 수도 있다. 뉴런이 물리적으로 구현되는 경우, 입력 스파이크 신호는 전류, 전압, 전하, 자기 등의 펄스 또는 보다 복잡하고 정교한 시간 의존적 신호일 수 있다. 일반적으로 뉴런은 적어도 하나의 내부 상태 변수 를 가질 수 있다. 이 때, i는 뉴런 각각에 할당된 정수 인덱스를 나타낼 수 있다. Referring to FIG. 1A, the
입력 스파이크 신호는 상태 변수 를 증가 시키거나, 감소시킬 수 있다. 전자를 양의 기여도라 하며 후자를 음의 기여도라 한다. 이는 뉴런이 수신된 입력 스파이크 신호를 통합(integrating)한다고 표현된다. 또한 누출 메커니즘(leakage mechanism)에 따라, 스파이크 신호를 입력 받는 사이에 뉴런의 상태 변수 는 휴지 상태 값으로 수렴하는 경향을 갖는다. 누출 메커니즘에 따라, 뉴런이 스파이크 신호를 충분히 오랜 시간 수신하지 않으면, 뉴런은 휴지 상태에 도달한다.The input spike signal is a state variable Can be increased or decreased. The former is called the positive contribution, and the latter is the negative contribution. This is expressed as a neuron integrating the received input spike signal. In addition, depending on the leakage mechanism, the state variable of the neuron during the input of the spike signal Has a tendency to converge to a dormant state value. Depending on the leak mechanism, if a neuron does not receive the spike signal long enough, the neuron will reach a dormant state.
도 1b는 일 실시 예에 따른 뉴런들간의 상호 연결 관계를 보여준다.FIG. 1B shows the interconnection relationship between neurons according to an embodiment.
생물학적, 인공적, 물리적 및 이산적으로 구현 시, 뉴런들은 "시냅스"를 통해 상호간 연결된다. 시냅스는 단 방향성을 가진다. 즉, 신호는 시냅스 전 (pre-synaptic) 터미널에서 시냅스 후 (post-synaptic) 터미널로 전달된다. 시냅스는 신호를 전송하는 시냅스 전 뉴런의 출력 스파이크 신호가 신호를 수신하는 시냅스 후 뉴런의 입력 스파이크 신호에 미치는 영향의 크기를 조정한다.When implemented biologically, artificially, physically, and discrete, neurons are interconnected via "synapses." Synapses are unidirectional. That is, the signal is transmitted from the pre-synaptic terminal to the post-synaptic terminal. Synapse adjusts the magnitude of the effect of the output spike signal of the synaptic neuron that transmits the signal on the input spike signal of the post-synaptic neuron receiving the signal.
조정의 정도는 일반적으로 시냅스의 가중치 에 의해 결정된다. 시냅스의 가중치 는 시냅스 전 뉴런을 나타내는 인덱스 i와 시냅스 후 뉴런을 나타내는 인덱스 j의 조합으로 표현된다.The degree of coordination is generally determined by the weight of the synapse . Weight of synapse Is represented by a combination of an index i representing a pre-synapse neuron and an index j representing a post-synapse neuron.
시냅스의 가중치는 "학습 규칙"에 기초하여 시간에 따라 변할 수 있다. 예를 들어, 인공신경망에 입력되는 스파이크 신호의 패턴이나, 인공신경망에서 생성된 스파이크 신호 등에 기초하여 인공신경망은 학습을 수행할 수 있다.The weights of synapses can change over time based on "learning rules". For example, an artificial neural network can perform learning based on a pattern of a spike signal input to an artificial neural network, a spike signal generated in an artificial neural network, or the like.
지도 학습(supervised learning)의 경우 외부 모니터링 에이전트가 관여하여 주어진 목표 기능을 학습할 지 여부에 관여하며, 비지도 학습(unsupervised learning)에서는, 학습에 관여하는 외부 모니터링 에이전트가 존재하지 않는다. 비지도 학습에서, 인공신경망은 입력되는 특징의 통계적 표상을 학습한다. STDP 학습은 SNN에 대한 비지도 학습의 일 예이다. In the case of supervised learning, the external monitoring agent participates in whether to learn a given target function. In unsupervised learning, there is no external monitoring agent involved in learning. In non - articulation learning, artificial neural networks learn statistical representation of input features. STDP learning is an example of non-learning of SNN.
도 1c는 일 실시 예에 따른 STDP 학습 함수의 그래프를 도시한 도면이다.1C is a graph illustrating a STDP learning function according to an embodiment.
시냅스 전 뉴런 i와 시냅스 후 뉴런 j를 연결하는 시냅스에 대하여, 시냅스의 가중치 는 하기 수학식 1에 따른 시냅스 후 스파이크의 발생 시간 및 시냅스 전 스파이크의 발생 시간 의 차이인 에 의해 결정된다.For synapses that connect the synaptic neuron i and post-synaptic neuron j, the weight of the synapse Is the time of occurrence of the post-synaptic spike according to the following formula And time of occurrence of synaptic spikes Difference of .
수학식 1에서, 가 양수로서, 시냅스 전 스파이크와 시냅스 후 스파이크가 인과관계인 경우, 해당 시냅스 가중치가 강화되고, 그렇지 않은 경우 해당 시냅스 가중치가 약화된다.In Equation (1) Is positive, if the synaptic spike and post-synaptic spike are causal, the corresponding synapse weights are enhanced, otherwise the corresponding synapse weights are weakened.
일반적으로 STDP 학습 함수의 값은 제한된 타임 윈도우 [-Tmin, +Tmax]에서 0이 아니다. 예를 들어, 생물학적으로 Tmin 및 Tmax는 100ms 범위의 값을 가진다. 그러나 인공적 SNN에서 Tmin 및 Tmax는 학습대상인 패턴의 동적 시간 상수에 기초하여 변한다. In general, the value of the STDP learning function is not 0 in the limited time window [-Tmin, + Tmax]. For example, biologically Tmin and Tmax have values in the range of 100 ms. However, in the artificial SNN, Tmin and Tmax vary based on the dynamic time constant of the pattern to be learned.
도 2a 내지 도 2d는 일 실시 예에 따른 시간 의존적 STDP 학습 함수를 도시한 도면이다.Figures 2A-2D illustrate a time dependent STDP learning function according to one embodiment.
도 2a는 일 실시 예에 따른 인과적(causal) STDP 학습 함수의 그래프를 도시한 도면이다.2A is a graph showing a graph of a causal STDP learning function according to an embodiment.
A+ 면적과 A-면적의 비가 도 1c에 대응하는 A+ 면적과 A- 면적간의 비와 유사한 경우, 시냅스 강화 및 약화에 있어서 유사한 결과가 도출된다.If the ratio of the A + area to the A-area is similar to the ratio between the A + area and the A-area corresponding to Fig. 1c, similar results are obtained in synaptic strengthening and weakening.
도 2b는 협소 강화 윈도우(narrow potentiation window) STDP 학습 함수의 그래프를 도시한 도면이다.2B is a graph showing a graph of a narrow potentiation window STDP learning function.
협소 강화 윈도우 STDP 학습 함수에 의할 때, 좁은 범위의 양의 시간 윈도우, [0,Tp] 에서만 강화 학습이 수행되며, 전체 시간 윈도우 [-Tmin, Tmax]의 다른 시간 영역에서는 약화 학습이 수행된다. Reinforcement learning is performed only in a narrow range of positive time windows, [0, Tp], and weakening learning is performed in other time zones of the entire time window [-Tmin, Tmax] .
이 때, Tmax가 양의 무한대로 확장되고, -Tmin이 음의 무한대로 확장되는 경우, 스파이크가 발생한 목표 뉴런과 목표 뉴런의 시냅스 전 뉴런들을 연결하는 시냅스들은 모두 고정된 양만큼 약화되며, 목표 뉴런의 스파이크가 발생하기 전 소정의 시간 내에 시냅스 전 시냅스 전 뉴런으로부터 목표 뉴런으로 스파이크 신호를 전송한 시냅스에는 순 강화(net potentiation)가 발생한다. 이를 "무차별 약화(indiscriminate depressing) STDP"로 정의하기로 한다.At this time, when Tmax expands to positive infinity and -Tmin expands to negative infinity, all of the synapses that connect the spiked target neurons to the target neuron's synaptic neurons are weakened by a fixed amount, Net potentiation occurs at the synapse that transmits a spike signal from the pre-synaptic preneuron to the target neuron within a predetermined time before the spike of the spike occurs. This is defined as "indiscriminate depressing STDP".
도 2c는 대칭적 헤비안 강화(symmetric hebbian potentiation)만을 정의하는 STDP 학습 함수의 그래프를 도시한 도면이다.Figure 2c is a graph of a STDP learning function that defines only symmetric hebbian potentiation.
도 2c에 의하며, 시냅스 전 스파이크 신호의 발생 시간과 시냅스 후 스파이크 신호의 발생 시간간의 차이가, 선후와 무관하게, 일정 시간 내인 경우, 시냅스 강화가 이루어질 수 있다.Referring to FIG. 2C, when the difference between the generation time of the synapse pre-spike signal and the generation time of the post-synapse spike signal is within a predetermined time regardless of the pre-synapse, synapse strengthening can be performed.
도 2d는 협소 강화 윈도우를 가지는 대칭적 헤비안 STDP 학습 함수의 그래프를 도시한 도면이다.2D is a graph showing a symmetric heavyian STDP learning function with a narrow window.
도 2d에 의할 때, 시냅스 전 스파이크 신호의 발생 시간과 시냅스 후 스파이크 신호의 발생 시간간의 차이가, 제한적 시간 윈도우 [-Tn, Tp]에 속하는 경우, 강화 학습이 일어나며, 나머지 영역에서는 약화가 발생한다.2d, reinforcement learning occurs when the difference between the generation time of the synapse pre-spike signal and the generation time of the post-synapse spike signal belongs to the limited time window [-Tn, Tp], and weakening occurs in the remaining area do.
이 때, Tmax가 양의 무한대로 확장되고, -Tmin이 음의 무한대로 확장되는 경우, 도 2d의 STDP 함수에 따른 학습은 "대칭적 무차별 약화 STDP"로 정의된다.At this time, when Tmax expands to positive infinity, and -Tmin expands to negative infinity, learning according to the STDP function of FIG. 2D is defined as " symmetric indiscriminate weakening STDP ".
도 3a 내지 도 3d는 일 실시 예에 따른 순서 의존적 STDP 학습 함수를 도시한 도면이다.3A through 3D are diagrams illustrating an order dependent STDP learning function according to an embodiment.
상술한 바와 같이, 도 2a 내지 도 2d에 도시된 도면들은 시간 의존적 학습 함수들이다. 따라서, 하드웨어나 소프트웨어 알고리즘을 구현함에 있어서, 시냅스 전 뉴런의 스파이크 발생 시간 또는 시냅스 후 뉴런의 스파이크 발생 시간을 나타내는 정보인 타임스탬프(timestamp)가 필요하다.As described above, the figures shown in Figs. 2A to 2D are time dependent learning functions. Thus, in implementing a hardware or software algorithm, a timestamp, which is information indicating the spike occurrence time of the synaptic neuron or the spike occurrence time of the post-synapse neuron, is required.
이에 대응하여, 순서 의존적 학습 함수들이 제안된다. 순서 의존적 학습 함수들은 시간 의존적 학습 함수들의 시간 축을 이산적인 순서로 치환함으로써 획득될 수 있다. 따라서, 시냅스 전 뉴런의 스파이크가 발생하는 시냅스 전 이벤트 및 시냅스 후 뉴런의 스파이크가 발생하는 시냅스 후 이벤트의 순서를 추적함으로써, 순서 의존적 학습 함수들에 따른 STDP 학습이 구현될 수 있다. 예를 들어, 전체 인공신경망 시스템의 이벤트를 순서에 따라 나열한 이벤트 리스트가 통합적으로 저장되거나, 서브 시스템들 각각의 이벤트 리스트가 별도로 저장될 수 있다. 또는, 각각의 시냅스에 대한 이벤트 리스트가 별도로 저장될 수 있다. 이벤트 리스트를 저장함에 있어서, 최근 순으로 발생한 이벤트의 최대 저장 가능한 개수 N을 설정함으로써, 뉴런 네트워크가 최근에 발생한 이벤트를 이용하여 합리적으로 학습을 수행하도록 구현될 수 있다.Correspondingly, order dependent learning functions are proposed. Order dependent learning functions can be obtained by replacing the time axis of time dependent learning functions in a discrete order. Thus, STDP learning with order dependent learning functions can be implemented by tracking the order of pre-synaptic events where spikes of the pre-synaptic neurons occur and post-synaptic events where spikes of post-synaptic neurons occur. For example, an event list in which events of the entire artificial neural network system are arranged in order can be stored integrally, or the event list of each of the subsystems can be separately stored. Alternatively, an event list for each synapse may be separately stored. In storing the event list, by setting the maximum number N of storable events occurring in the latest order, the neuron network can be implemented to perform the learning using the events that occurred recently.
도 3a 내지 3d는 도 2a 내지 도 2d에 대응하는 순서 의존적 학습 함수들로서, 가로 축이 시냅스 후 스파이크의 시간 및 시냅스 전 스파이크의 신호간의 시간 차 대신, 하기 수학식 2에 따른 시냅스 후 뉴런 스파이크의 순서 인덱스 및 시냅스 전 뉴런 스파이크의 순서 인덱스 간의 인덱스 차이인 으로 치환된 점에서 차이가 있다.Figures 3a-3d are sequence dependent learning functions corresponding to Figures 2a-2d, in which the horizontal axis represents the time of post-synaptic spikes and the time difference between signals of the synaptic spikes Instead, the order index of post-synaptic neuron spikes according to Equation (2) And order index of synaptic neuronal spikes Index difference between . In this case,
순서 기반 STDP 학습의 특징은 학습이 신경 활동의 역동성에 적응적이라는 점이다. STDP가 시간 기반 학습 방법이기 때문에, 이로 인해, 특정 범위의 시간 상수 및 역동성에 의존하는 생물학적 STDP와 근본적으로 차이가 있다.The feature of sequence - based STDP learning is that learning is adaptive to the dynamics of neural activity. Because STDP is a time-based learning method, this is fundamentally different from biological STDP, which depends on a range of time constants and dynamics.
순서 기반 STDP 학습은 이벤트가 발생하는 속도 및 역동성과는 독립적으로 수행된다. 모든 스파이크의 타임 스탬프에 동일한 상수가 곱해지더라도, 순서가 동일하므로 결과적으로 학습 내용은 변경되지 않는다. 따라서 순서 기반 STDP는 이벤트의 속도와 역동성에 따라 자체 적응성을 가진다.Order-based STDP learning is performed independently of the rate at which events occur and dynamics. Even if the timestamps of all spikes are multiplied by the same constant, the order is the same, so the learning content is not changed as a result. Therefore, sequence based STDP has its own adaptability according to the speed and dynamics of events.
일반적으로, STDP를 전산적으로 구현함에 있어서, 학습 함수는 적은 크기의 결정론적 시냅스 변화, 예를 들어, 1% 또는 0.1% 이하의 /w 또는 를 이전 가중치에 적용한다. 이 때, 스파이크 시퀀스는 특정 선호 패턴에 치우치는 것을 막기 위해 자극(stimuli) 순서를 변경하면서 반복된다.In general, in the computational implementation of STDP, the learning function is characterized by a small amount of deterministic synaptic variation, for example, 1% or 0.1% / w or To the previous weight. At this time, the spike sequence is repeated while changing the stimuli order to prevent bias to a certain preference pattern.
따라서, 일반적인 STDP는 결정론적이고, 시냅스 가중치의 적은 변화를 구현할 수 있도록, 가중치를 저장하기 위해 고 해상도가 요구 된다.Thus, a typical STDP is deterministic and requires a high resolution to store the weights so that small changes in synaptic weights can be realized.
한편, 학습 과정에 확률적 성격을 적용함으로써 시냅스 가중치의 저장에 필요한 해상도를 낮출 수 있다. 이는, 결정론적 학습 방법에 따라 가중치에 작은 변화 량을 적용하는 대신, 확률적 학습 방법에 따라 높은 변화량을 적은 확률로 적용함으로써 구현될 수 있다.On the other hand, applying the probabilistic nature to the learning process can lower the resolution needed for storing synaptic weights. This can be implemented by applying a high variation amount with a small probability according to the probabilistic learning method, instead of applying a small variation amount to the weight according to the deterministic learning method.
예를 들어, 도 2a 내지 도2d 및 도 3a 내지 도 3d의 학습 함수들을 이용하여, 확률적 STDP 학습 모델이 구현될 수 있다. 이는, 세로 축인 가중치 변화 량 을 미리 결정된 양만큼 가중치 변화가 발생할 확률 p로 치환함으로써 구현될 수 있다.For example, a probabilistic STDP learning model can be implemented using the learning functions of FIGS. 2A through 2D and FIGS. 3A through 3D. This is because the weight change amount With a probability p that a weight change will occur by a predetermined amount.
예를 들어, 시냅스 가중치 값은 1 bit의 값인 1 또는 0일 수 있다. 만약, 또는 이 양의 확률 p (0<= p <=1)인 경우, 랜덤 수 x (0<=x<=1)를 생성하여, x<=p인 경우 가중치를 1로 설정하고, x>p인 경우 가중치를 유지할 수 있다. 만약, ξ(t) 또는 ξ(n)이 음의 확률 p (0>= p >=-1)인 경우, 랜덤 수 x (0<=x<=1)를 생성하여, x<=|p|인 경우 가중치를 0으로 설정하고, x>|p|인 경우 가중치를 유지할 수 있다.For example, the synapse weight value may be 1 or 0, which is a value of 1 bit. if, or If x <= p, the weight is set to 1, and if x> p (= 1), a random number x (0 <= x <= 1) If we can keep the weight. If ξ ( t) or ξ ( (0 <= x <= 1), if the probability of the negative (p) is 0 (p> 0), then the weight is set to 0 , x> | p |, the weight can be maintained.
도 4는 일 실시 예에 따른 커넬 함수를 도시한 도면이다.4 is a diagram illustrating a kernel function according to an embodiment.
커넬 함수는 입력 이벤트 즉 시냅스를 통해 입력된 입력 신호가 뉴런의 내부 상태 변수에 미치는 영향을 나타낸다. 예를 들어, 생물학적으로 뉴런의 내부 상태 변수는 생물학적 뉴런의 막 전위를 나타낼 수 있다.The kernel function represents the effect of the input signal input through the synapse on the internal state variables of the neuron. For example, biologically, the internal state variable of a neuron can indicate the membrane potential of a biological neuron.
뉴런의 내부 상태 변수 값이 임계 값을 넘어서면 뉴런이 발화하여 스파이크 신호를 출력할 수 있다.If the value of the internal state variable of the neuron exceeds the threshold value, the neuron can fire and output the spike signal.
예를 들어, 뉴런의 상태 변수 는 시간에 따른 함수로서 시간 영역에서 하기 수학식 3에 따른 미분 방정식을 만족한다.For example, the state variables of neurons Satisfies the differential equation according to Equation (3) in the time domain as a function of time.
미분 방정식에서 는 입력단, 또는 시냅스 전 뉴런에 대응하는 인덱스 및 현재 뉴런, 즉 시냅스 후 뉴런에 대응하는 인덱스 k에 의해 정의되는 두 뉴런간의 시냅스 가중치를 나타낸다. 는 휴지 상태의 상태 변수 값으로서 생물학적으로 뉴런 막 전위의 휴지 전압을 나타낼 수 있다. 우변의 텀은 시간 상수 에 의해 시간에 따라 감소하는 누출 메커니즘(leakage mechanism)을 나타낸다. 누출 메커니즘에 의해 뉴런이 장기간 입력 신호를 수신하지 않으면 뉴런의 상태 변수 값은 휴지 상태 값 으로 수렴한다. 누출 메커니즘은 exponential한 감쇄이나 하드웨어적 구현에서 선형 감쇄로 구현될 수 있다.In differential equations Is an input, or an index corresponding to the pre-synaptic neuron And the synapse weights between the two neurons defined by the current neuron, i.e., the index k corresponding to the post-synaptic neuron. May be biased to indicate a resting voltage of the neuronal membrane potential as a state variable of the dormant state. Right Term is a time constant Lt; RTI ID = 0.0 > leakage < / RTI > mechanism with time. If the neuron does not receive the input signal for a long time by the leakage mechanism, the value of the state variable of the neuron becomes the dormant state value . The leakage mechanism can be implemented with either exponential attenuation or linear attenuation in hardware implementations.
한편 입력 신호가 시간에 따라 뉴런 k의 상태 변수 에 미치는 영향을 나타내는 함수의 일 예인 커넬 함수 h(t)는 도 4에서와 같이 입력 시간 후 소정의 시간이 경과하기 까지 상태 변수에 미치는 기여도가 증가하다가 이후 점차 기여도가 감소하는 형태일 수 있다.On the other hand, as the input signal changes with time, The kernel function h (t), which is an example of a function indicating the influence on the state variable, may be a form in which the contribution to the state variable increases until the predetermined time elapses after the input time as shown in FIG. 4, and then the contribution decreases gradually.
함수 h(t)는 전산적 구현의 효율성을 위하여 델타 함수로 간략화 될 수 있다. 따라서, 입력 신호가 입력되는 시점에 상태 변수가 즉각적으로 시냅스 가중치 만큼 증가된다.The function h (t) can be simplified to a delta function for the efficiency of the computational implementation. Therefore, at the time when the input signal is input, the state variable immediately changes to the synapse weight .
도 5는 일 실시 예에 따른 SNN의 일 계층 집단(population)을 도시한 도면이다.5 is a diagram illustrating a one-tier population of SNNs according to one embodiment.
도 5에서, SNN의 P 계층 집단(P는 정수)은 복수의 뉴런들을 포함한다. 예를 들어, K 개의 뉴런들 각각은 인덱스 k(k=1, 2, ..., K)로 나타낼 수 있다. 복수의 뉴런들 각각으로부터 출력된 신호 는 출력 채널 O를 통하여 상위 계층인 P+1 계층 집단에 입력 신호로서 전송된다.In Figure 5, the P-tier population (P is an integer) of SNNs comprises a plurality of neurons. For example, each of the K neurons may be represented by an index k (k = 1, 2, ..., K). The signal output from each of the plurality of neurons Is transmitted as an input signal to the P + 1 hierarchy group which is the upper layer through the output channel O. [
또한, SNN의 P 계층 집단은 복수의 입력단을 포함한다. 예를 들어, m 개의 입력단은 인덱스 i(i=1, 2 , ..., m)로 나타낼 수 있다. 입력 신호 는 입력 채널 I를 통하여 입력단 i에서 수신된다.Also, the P-tier cluster of SNNs includes a plurality of input stages. For example, m input stages can be represented by index i (i = 1, 2, ..., m). Input signal Is received at input i via input channel I.
또한, 계층 집단 P에 의해 입력 신호가 수신되는 입력 이벤트가 발생한 경우, 입력 시간을 , 입력 단을 라 할 때, 입력 신호를 로 나타낼 수 있다.In addition, when an input event occurs in which an input signal is received by the hierarchical group P, , The input stage , The input signal .
마찬가지로, 계층 집단 P의 뉴런들 중 적어도 하나의 뉴런이 스파이크 신호를 출력하는 출력 이벤트가 발생한 경우, 출력 시간을 , 스파이크 신호를 출력한 뉴런의 인덱스를 라 할 때, 출력 신호를 로 나타낼 수 있다.Similarly, when an output event occurs in which at least one of the neurons of the hierarchical group P outputs a spike signal, the output time , The index of the neuron outputting the spike signal , The output signal is .
예를 들어, 각각의 SNN 계층은 이벤트 저장부를 포함할 수 있다.For example, each SNN layer may include an event store.
이벤트 저장부는 입력 이벤트가 발생할 때마다, 입력 이벤트에 관한 정보를 획득하여, 하기 수학식 4와 같이 표현되는 시간에 따른 시냅스 전 이벤트 리스트를 구축할 수 있다.Each time an input event occurs, the event storage unit acquires information about the input event and constructs a pre-synaptic event list according to the time expressed by Equation (4).
또한, 이벤트 저장부는 출력 이벤트가 발생할 때마다, 출력 이벤트에 관한 정보를 획득하여, 하기 수학식 5와 같이 표현되는 시간에 따른 시냅스 후 이벤트 리스트를 구축할 수 있다. Further, the event storage unit may acquire information about the output event every time an output event occurs, and construct a post-synapse event list expressed by the following Equation (5).
입력 이벤트 가 발생할 때마다, SNN 계층은 시냅스 후 이벤트 리스트의 출력 이벤트 각각에 대하여, 를 산출하여, 를 획득한다.Input event , The SNN layer is responsible for the output event of the post-synaptic event list For each, Respectively, .
만약, 가 0보다 큰 경우 는 시냅스 가중치를 1로 설정할 확률이고, 0보다 작은 경우 는 시냅스 가중치를 0으로 설정할 확률을 나타낸다.if, Is greater than zero Synaptic weights Is set to 1, and if it is smaller than 0 Synaptic weights Is set to zero.
출력 이벤트 가 발생할 때마다 SNN 계층은 시냅스 후 이벤트 리스트의 입력 이벤트 각각에 대하여, 를 산출하여, 를 획득한다.Output events The SNN hierarchy is used to determine the input event of the post-synaptic event list For each, Respectively, .
만약, 가 0보다 큰 경우 는 시냅스 가중치를 1로 설정할 확률이고, 0보다 작은 경우 는 시냅스 가중치를 0으로 설정할 확률을 나타낸다.if, Is greater than zero Synaptic weights Is set to 1, and if it is smaller than 0 Synaptic weights Is set to zero.
도 2b와 관련하여 설명된, 무차별 약화 STDP 학습 함수의 경우, 시냅스 후 이벤트 리스트가 필요하지 않을 수 있다. 출력 이벤트가 발생할 때마다, 도 2b의 x 축이 양의 수인 영역 중 강화 학습 영역, 즉 가 인 범위에 속하는지 여부만 판단함으로써, STDP 학습이 수행될 수 있다.In the case of the indiscriminate weakened STDP learning function described in connection with Figure 2b, a post-synaptic event list may not be needed. Every time an output event occurs, the x-axis of Fig. A reinforcement learning area, namely end , The STDP learning can be performed.
순서 기반 STDP의 경우, 시냅스 전 이벤트 리스트 및 시냅스 후 이벤트 리스트는 시간에 대한 정보가 별도로 필요하지 않고, 순서만으로 STDP 학습이 수행될 수 있다.In case of sequence-based STDP, STDP learning can be performed only in the order of the pre-synapse event list and the post-synapse event list, without any additional information on the time.
예를 들어, 시냅스 전 이벤트 리스트는 하기 수학식 6과 같이 입력단 및 순서에 따른 인덱스로 표현될 수 있다.For example, the pre-synapse event list can be represented by an index according to an input stage and a sequence as shown in Equation (6).
예를 들어, 시냅스 후 이벤트 리스트는 하기 수학식 7과 같이 스파이크 신호를 출력한 시냅스 및 순서에 따른 인덱스로 표현될 수 있다.For example, the post-synapse event list can be represented by a synapse outputting a spike signal and an index according to a sequence as shown in Equation (7).
입력 이벤트가 발생할 때마다 SNN 계층은 시냅스 후 이벤트 리스트의 출력 이벤트 각각에 대하여, 를 산출하여, 를 획득한다.Input event The SNN layer is used to generate an output event of the post-synapse event list For each, Respectively, .
만약, 가 0보다 큰 경우 는 시냅스 가중치를 1로 설정할 확률이고, 0보다 작은 경우 는 시냅스 가중치를 0으로 설정할 확률을 나타낸다.if, Is greater than zero Synaptic weights Is set to 1, and if it is smaller than 0 Synaptic weights Is set to zero.
출력 이벤트 가 발생할 때마다 SNN 계층은 시냅스 후 이벤트 리스트의 입력 이벤트 각각에 대하여, 를 산출하여, 를 획득한다.Output events The SNN hierarchy is used to determine the input event of the post-synaptic event list For each, Respectively, .
만약, 가 0보다 큰 경우 는 시냅스 가중치를 1로 설정할 확률이고, 0보다 작은 경우 는 시냅스 가중치를 0으로 설정할 확률을 나타낸다.if, Is greater than zero Synaptic weights Is set to 1, and if it is smaller than 0 Synaptic weights Is set to zero.
도 3b와 관련하여 설명된, 무차별 약화 STDP 학습 함수의 경우, 시냅스 후 이벤트 리스트가 필요하지 않을 수 있다. 출력 이벤트가 발생할 때마다, 도 3b의 x 축이 양의 수인 영역 중 강화 학습 영역, 즉 이 인 범위에 속하는지 여부만 판단함으로써, STDP 학습이 수행될 수 있다.In the case of the indiscriminate weakened STDP learning function described in connection with Figure 3b, a post-synaptic event list may not be needed. Every time an output event occurs, the x-axis in Fig. 3 A reinforcement learning area, namely this , The STDP learning can be performed.
도 6은 일 실시 예에 따른 뉴런 회로(600)의 블록도이다.6 is a block diagram of a
도 6을 참조하면, 뉴런 회로(600)는 시냅스 가중치 메모리(610), 제 1 서브 회로(620), 제 2 서브 회로(630) 및 제 3 서브 회로(640)를 포함할 수 있다. 도 6에는, 실시 예와 관련된 필수적 구성 요소만이 도시되었으며, 다른 범용적 구성 요소들이 포함될 수 있음을 통상의 기술자는 이해할 수 있을 것이다.6, the
시냅스 가중치 메모리(610)는 복수의 시냅스 가중치 값들을 저장할 수 있다. 예를 들어, 시냅스 가중치 값은 1 비트의 데이터일 수 있다. 시냅스 가중치 값은 활성 값 또는 비활성 값의 이진 값을 가질 수 있다. 예를 들어, 활성 값은 1이고 비활성 값은 0일 수 있으나 이에 제한되지 아니한다.The
시냅스 가중치 값이 활성 값인 시냅스는 활성화 시냅스라 정의하고, 비활성 값인 시냅스는 비활성화 시냅스라 정의하도록 한다.A synapse whose synaptic weight value is the active value is defined as an activated synapse, and an inactive value is defined as a deactivated synapse.
시냅스 가중치 메모리(610)는 복수의 시냅스 전 뉴런 회로들 각각에 대응하는 시냅스 가중치 값을 저장할 수 있다. 예를 들어, 시냅스 가중치 메모리(610)는 복수의 셀들 각각에 복수의 시냅스 전 뉴런 회로들 각각의 시냅스 가중치 값을 저장할 수 있다.The
시냅스 가중치 메모리(610)는 뉴런 회로(600) 내에 다른 구성 요소 또는 외부 구성 요소로부터 접근이 가능할 수 있다. 예를 들어, 셀 주소 정보 및 읽기 동작 요청 신호가 인가됨에 따라, 시냅스 가중치 메모리(610)는 셀 주소 정보에 대응하는 시냅스 가중치 값을 출력할 수 있다. 이에 따라, 읽기 동작 요청 신호를 전송한 구성 요소는 셀 주소 정보에 대응하는 시냅스 가중치 값을 획득할 수 있다. 또한, 시냅스 가중치 메모리(610)에 셀 주소 정보, 쓰기 동작 요청 신호 및 가중치 값이 인가됨에 따라, 시냅스 가중치 메모리(610) 내의 셀 주소 정보에 대응하는 시냅스 가중치 값이 인가된 가중치 값으로 설정될 수 있다.The
제 1 서브 회로(620)는 시냅스 전 뉴런 회로로부터 입력 신호를 수신하고, 수신된 입력 신호가, 수신된 입력 신호의 시냅스 가중치 값이 활성 값인 활성화 신호인지 여부를 판단할 수 있다.The
예를 들어, 제 1 서브 회로(620)는 입력 신호를 수신할 수 있다. 입력 신호는 뉴런 회로(600)의 시냅스 전 뉴런 회로로부터 출력된 신호일 수 있다. 예를 들어, 입력 신호는 시냅스 전 뉴런 회로로부터 출력된 스파이크 신호일 수 있다.For example, the
또한, 입력 신호는 복수의 시냅스 전 뉴런 회로들로부터 출력된 신호일 수 있다. 예를 들어, 입력 신호는 복수의 시냅스 전 뉴런 회로들 중 적어도 일부로부터 출력된 스파이크 신호가 선택적으로 또는 조합적으로 입력된 신호일 수 있다.In addition, the input signal may be a signal output from a plurality of synaptic pre-neuron circuits. For example, the input signal may be a signal to which spike signals output from at least some of the plurality of synaptic pre-neuron circuits are input selectively or in combination.
예를 들어, 입력 신호는 스파이크 신호를 출력한 시냅스 전 뉴런 회로를 식별할 수 있는 정보를 포함할 수 있다. 다른 일 예로서, 입력 신호는 시냅스 전 뉴런 회로가 스파이크 신호를 출력했음을 나타내는 정보 및/또는 시냅스 전 뉴런 회로의 식별 정보를 포함할 수 있다. 예를 들어, 입력 신호에 포함된 식별 정보는 시냅스 전 뉴런 회로 고유의 아이디를 포함할 수 있다. 또한, 입력 신호에 포함된 식별 정보는 시냅스 전 뉴런 회로의 시냅스 가중치 값이 저장된 시냅스 가중치 메모리(610) 내의 셀 주소 정보를 포함할 수 있다.For example, the input signal may include information that can identify a synaptic neuronal circuit that has output a spike signal. As another example, the input signal may include information indicating that the synapse pre-neuron circuit has output a spike signal and / or identification information of the synapse pre-neuron circuit. For example, the identification information contained in the input signal may include an identity unique to the synaptic neuron circuit. In addition, the identification information included in the input signal may include cell address information in the
제 1 서브 회로(620)는 입력 신호가, 입력 신호에 대응하는 시냅스 가중치 값이 활성 값인 활성화 입력 신호인지 여부를 판단할 수 있다. 예를 들어, 제 1 서브 회로(620)는 시냅스 가중치 메모리(610)로부터 입력 신호에 대응하는 시냅스 가중치 값을 획득할 수 있다. 예를 들어, 제 1 서브 회로(620)는 시냅스 가중치 메모리(610)에게 읽기 동작 요청 신호 및 입력 신호에 포함된 시냅스 셀 주소 정보를 인가할 수 있다. 또한, 제 1 서브 회로(620)는 시냅스 가중치 메모리(610)로부터 시냅스 셀 주소 정보에 대응하는 시냅스 가중치 값을 획득할 수 있다. 획득된 시냅스 가중치 값이 활성 값인 경우, 제 1 서브 회로(620)는 입력 신호를 활성화 신호라고 판단할 수 있다. 획득된 시냅스 가중치 값이 비활성 값인 경우 제 1 서브 회로(620)는 입력 신호가 활성화 신호가 아니라고 판단할 수 있다. 제 1 서브 회로(620)는, 입력 신호가 활성화 신호라고 판단함에 따라, 제 2 서브 회로(630)에게 활성화 신호를 수신했음을 나타내는 신호를 인가할 수 있다.The
제 2 서브 회로(630)는, 제 1 서브 회로(620)로부터 활성화 신호의 수신을 나타내는 신호를 인가 받음에 따라, 활성화 입력 신호의 제 1 누적 수신 횟수와 학습 임계 값간의 비교 연산을 수행할 수 있다.The
제 2 서브 회로(630)는 활성화 입력 신호를 수신할 때마다 제 1 누적 수신 횟수를 증가 시킬 수 있다. 또한, 제 2 서브 회로(630)는 제 1 누적 수신 횟수가 학습 임계 값과 같거나 학습 임계 값보다 크다고 판단함에 따라 제 1 누적 수신 횟수를 리셋할 수 있다. The
또한, 제 2 서브 회로(630)는 제 1 누적 수신 횟수가 학습 임계 값과 같거나 학습 임계 값보다 크다고 판단함에 따라, 학습 임계 값을 증가 시킬 수 있다. 일 실시 예에 따른, 학습 임계 값은 학습 임계 값의 상한 값을 가질 수 있다. 제 2 서브 회로(630)는 학습 임계 값이 학습 임계 값의 상한 값과 같은 경우 학습 임계 값을 학습 임계 값의 상한 값으로 유지할 수 있다. 다른 일 예로서, 학습 임계 값은 고정된 값일 수 있다.Also, the
제 2 서브 회로(630)는 제 1 누적 수신 횟수가 학습 임계 값과 같거나 학습 임계 값보다 크다고 판단함에 따라 제 3 서브 회로(640)에게 학습을 요청하는 신호를 인가할 수 있다.The
제 3 서브 회로(640)는 제 2 서브 회로(630)로부터 학습 요청 신호를 인가 받음에 따라 시냅스 가중치 값을 조정하는 학습 동작을 수행할 수 있다.The
제 3 서브 회로(640)는 활성화 입력 신호에 대응하는 시냅스 가중치 값을 확률적으로 활성 값으로 설정하는 강화 학습을 수행할 수 있다.The
예를 들어, 제 3 서브 회로(640)는 입력 신호를 수신하는 입력 이벤트가 발생한 경우, 입력 이벤트에 대한 정보를 획득할 수 있다. 입력 이벤트에 대한 정보는 입력 신호에 포함된 시냅스 전 뉴런 회로의 식별 정보를 포함할 수 있다. 상술한 바와 같이, 시냅스 전 뉴런 회로의 식별 정보는 시냅스 전 뉴런 회로에 대응하는 시냅스 가중치 값이 저장된 셀 주소 정보 등 시냅스 정보를 포함할 수 있으나 이에 제한되지 아니한다.For example, the
제 3 서브 회로(640)는 입력 신호에 대응하는 시냅스 가중치 메모리(610) 내에 시냅스 가중치 값을 확률적으로 활성 값으로 설정하는 강화 학습을 수행할 수 있다. 예를 들어, 제 3 서브 회로(640)는 복수의 입력 이벤트에 대한 정보를 저장할 수 있다. 또한, 제 3 서브 회로(640)는 복수의 입력 이벤트들 중 적어도 일부의 입력 이벤트에 대응하는 시냅스 가중치 값을 활성 값으로 설정하는 시냅스 강화의 수행 여부를 확률적으로 결정할 수 있다.The
예를 들어, 제 3 서브 회로(640)는 강화 학습 수행 대상인 적어도 일부의 입력 이벤트 각각에 대하여 시냅스 강화의 수행 여부를 독립적으로 결정할 수 있다.For example, the
시냅스 강화 확률인 제 1 확률은 미리 결정될 수 있다. 예를 들어, 제 1 확률은 상수일 수 있으나 이에 제한되지 아니한다.The first probability that the synapse enrichment probability can be predetermined. For example, the first probability may be a constant, but is not limited thereto.
또한, 제 3 서브 회로(640)는 기 저장된 복수의 입력 이벤트들 중 미리 결정된 개수의 입력 이벤트에 대하여 강화 학습을 수행할 수 있다. 이 때, 제 3 서브 회로(640)는 기 저장된 복수의 입력 이벤트들 중 저장된 순서의 역순으로 미리 결정된 개수의 입력 이벤트에 대하여 강화 학습을 수행할 수 있다. 기 저장된 복수의 입력 이벤트들의 개수가 미리 결정된 개수보다 적은 경우, 제 3 서브 회로(640)는 기 저장된 복수의 입력 이벤트들 모두에 대하여 강화 학습을 수행할 수 있다.In addition, the
제 3 서브 회로(640)는 시냅스 가중치 메모리(610) 내에 시냅스 가중치 값을 확률적으로 비활성 값으로 설정하는 약화 학습을 수행할 수 있다. 예를 들어, 제 3 서브 회로(640)는 시냅스 가중치 메모리(610) 내에 복수의 시냅스 가중치 값들 각각을 비활성 값으로 설정하는 시냅스 약화의 수행 여부를 확률적으로 결정할 수 있다.The
제 3 서브 회로(640)는 복수의 시냅스 가중치 값들 각각에 대하여 시냅스 약화의 수행 여부를 독립적으로 결정할 수 있다.The
시냅스 약화 확률인 제 2 확률은 복수의 시냅스 가중치 값들에 기초하여 결정될 수 있다. 예를 들어, 제 2 확률은 복수의 시냅스들 중 시냅스 가중치 값이 활성 값인 활성화 시냅스의 개수에 기초하여 결정될 수 있다.A second probability of synapse attenuation probability may be determined based on a plurality of synapse weight values. For example, the second probability may be determined based on the number of activated synapses among which the synapse weight value is the active value.
제 3 서브 회로(640)는 시냅스 가중치 메모리(610) 내의 복수의 시냅스들 중 적어도 일부에 대하여 약화 학습을 수행할 수 있다. 예를 들어, 제 3 서브 회로(640)는 시냅스 가중치 메모리(610) 내의 복수의 시냅스들 모두에 대하여 약화 학습을 수행할 수 있다. 또는, 제 3 서브 회로(640)는 시냅스 가중치 메모리(610) 내에 복수의 시냅스들 중 강화 학습이 수행되지 않은 시냅스에 대하여 약화 학습을 수행할 수 있다.The
도 7은 일 실시 예에 따른 뉴런 회로(700)의 블록도이다.7 is a block diagram of a
뉴런 회로(700)는 시냅스 가중치 메모리(710), 제 1 서브 회로(720), 제 2 서브 회로(730), 제 3 서브 회로(740) 및 제 4 서브 회로(750)를 포함할 수 있다. The
도 7의 시냅스 가중치 메모리(710), 제 1 서브 회로(720), 제 2 서브 회로(730) 및 제 3 서브 회로(740)에는, 도 6의 시냅스 가중치 메모리(610), 제 1 서브 회로(620), 제 2 서브 회로(630) 및 제 3 서브 회로(640)에 대한 실시 예가 적용될 수 있으며, 중복되는 내용은 생략하도록 한다.The
제 1 서브 회로(720)는 활성화 입력 신호를 수신 하였음을 나타내는 신호를 제 2 서브 회로(730) 및 제 4 서브 회로(750) 각각에게 인가할 수 있다.The
제 2 서브 회로(730)는 학습 카운터(731), 학습 임계 값 카운터(732) 및 제 1 비교 연산부(733)를 포함할 수 있다.The
학습 카운터(731)는 활성화 입력 신호의 제 1 누적 수신 횟수를 카운팅하여 출력할 수 있다. 예를 들어, 학습 카운터(731)의 출력 카운팅 값은 제 1 서브 회로(720)로부터 활성화 입력 신호가 수신되었음을 나타내는 신호를 인가 받음에 따라 증가할 수 있다.The learning
학습 임계 값 카운터(732)는 학습 임계 값을 카운팅하여 출력 할 수 있다. 학습 임계 값 카운터(732)의 출력 카운팅 값은 미리 결정된 초기 값을 가질 수 있다. 학습 임계 값 카운터(732)의 출력 카운팅 값은 제 1 비교 연산부(733)의 출력 값에 기초하여 증가할 수 있다.The learning
제 1 비교 연산부(733)는 학습 카운터(731)의 출력 카운팅 값과 학습 임계 값 카운터(732)의 출력 카운팅 값을 인가 받아 비교 연산을 수행할 수 있다. 제 1 비교 연산부(733)는 학습 카운터(731)의 출력 카운팅 값과 학습 임계 값 카운터(732)의 출력 카운팅 값이 같은 경우 학습 요청 신호를 출력할 수 있다. 예를 들어, 제 1 비교 연산부(733)는 1 비트의 신호를 출력할 수 있다. 학습 카운터(731)의 출력 카운팅 값과 학습 임계 값 카운터(732)의 출력 카운팅 값이 같은 경우 1을 출력하고, 다른 경우 0을 출력할 수 있다. The first
제 1 비교 연산부(733)의 출력 값은 학습 임계 값 카운터(732)에 입력될 수 있다. 예를 들어, 학습 임계 값 카운터(732)의 출력 카운팅 값은 제 1 비교 연산부(733)의 출력 값이 0에서 1로 토글(toggle) 되는 경우, 증가할 수 있다.The output value of the first
또한, 제 1 비교 연산부(733)의 출력 값은 학습 카운터(731)에 리셋 신호로서 인가될 수 있다. 예를 들어, 제 1 비교 연산부(733)의 출력 값이 1인 경우, 학습 카운터(731)의 출력 카운팅 값은 0으로 리셋될 수 있다.The output value of the first
제 3 서브 회로(740)는 랜덤 상수 생성기(741), 강화 학습 프로세서(742), 약화 학습 프로세서(743) 및 입력 이벤트 버퍼(744)를 포함할 수 있다.The
제 3 서브 회로(740)는 소정의 범위의 랜덤 상수를 생성하는 랜덤 상수 생성기(741)를 포함할 수 있다. 예를 들어, 랜덤 상수 생성기(741)가 10 비트의 값을 출력하는 경우, 랜덤 상수 생성기(741)는 0부터 1023까지의 범위에 속하는 랜덤 상수를 출력할 수 있다. 예를 들어, 랜덤 상수 생성기(741)는 선형 되먹임 시프트 레지스터(Linear feedback shift register: LFSR)일 수 있으나 이에 제한되지 아니한다.The
입력 이벤트 버퍼(744)는, 뉴런 회로(700)가 입력 신호를 수신하는 입력 이벤트가 발생한 경우, 입력 이벤트에 대한 정보를 저장할 수 있다. 예를 들어, 입력 이벤트 버퍼(744)는 복수의 입력 이벤트들에 대한 정보를 저장할 수 있다. 입력 이벤트에 대한 정보는 입력 신호에 포함된 시냅스 전 뉴런 회로의 식별 정보를 포함할 수 있다. 상술한 바와 같이, 시냅스 전 뉴런 회로의 식별 정보는 시냅스 전 뉴런 회로에 대응하는 시냅스 가중치 값이 저장된 셀 주소 정보 등 시냅스 정보를 포함할 수 있으나 이에 제한되지 아니한다. 입력 이벤트 버퍼(744)가 가득 찬 경우, 입력 이벤트 버퍼(744)는 저장 순서가 가장 빠른 입력 이벤트 정보를 삭제하고, 새로운 입력 이벤트에 관한 정보를 저장할 수 있다. 예를 들어, 입력 이벤트 버퍼(744)는 원형 버퍼(circular buffer)일 수 있다.The
제 3 서브 회로(740)는 제 2 서브 회로(730)로부터 학습 요청 신호를 수신함에 따라, 강화 학습 프로세서(742)를 이용하여 강화 학습을 수행할 수 있다.As the
강화 학습 프로세서(742)는 기 수신된 입력 신호에 대응하는 시냅스 가중치 값을 확률적으로 활성 값으로 설정하는 강화 학습을 수행할 수 있다. 예를 들어, 강화 학습 프로세서(742)는 기 수신된 복수의 입력 신호들에 대응하는 시냅스 가중치 값을 확률적으로 활성 값으로 설정하는 강화 학습을 수행할 수 있다. 예를 들어, 강화 학습 프로세서(742)는 입력 이벤트 버퍼(744)에 저장된 복수의 입력 이벤트들 중 적어도 일부의 입력 이벤트 각각의 정보에 대응하는 시냅스 가중치 값을 활성 값으로 설정하는 시냅스 강화의 수행 여부를 확률적으로 결정할 수 있다.The
예를 들어, 강화 학습 프로세서(742)는 강화 학습 수행 대상인 적어도 일부의 입력 이벤트 각각에 대하여 시냅스 강화의 수행 여부를 독립적으로 결정할 수 있다.For example, the
시냅스 강화 확률인 제 1 확률은 미리 결정될 수 있다. 예를 들어, 제 1 확률은 상수일 수 있으나 이에 제한되지 아니한다.The first probability that the synapse enrichment probability can be predetermined. For example, the first probability may be a constant, but is not limited thereto.
예를 들어, 강화 학습 프로세서(742)는 입력 이벤트 버퍼(744)에 기 저장된 복수의 입력 이벤트들 중 미리 결정된 개수의 입력 이벤트에 대하여 강화 학습을 수행할 수 있다. 이 때, 강화 학습 프로세서(742)는 입력 이벤트 버퍼(744)에 기 저장된 복수의 입력 이벤트들 중 저장된 순서의 역순으로 미리 결정된 개수의 입력 이벤트에 대하여 강화 학습을 수행할 수 있다. 입력 이벤트 버퍼(744)에 기 저장된 입력 이벤트들의 개수가 미리 결정된 개수보다 적은 경우, 강화 학습 프로세서(742)는 입력 이벤트 버퍼(744)에 기 저장된 입력 이벤트들 모두에 대하여 강화 학습을 수행할 수 있다.For example,
강화 학습 프로세서(742)는 랜덤 상수 생성기(741)로부터 획득된 랜덤 상수와, 제 1 확률에 기초하여 결정된 강화 학습 기준 상수를 비교하여 시냅스 강화의 수행 여부를 결정할 수 있다. 예를 들어, 강화 학습 프로세서(742)는 랜덤 상수가 랜덤 상수의 상한 값에 제 1 확률을 곱하여 산출된 강화 학습 기준 상수의 미만 또는 이하인 경우, 시냅스 강화를 수행할 수 있다. 즉, 강화 학습 프로세서(742)는 학습 대상 입력 이벤트 정보에 대응하는, 시냅스 가중치 메모리(710)의 시냅스 가중치 값을 활성 값으로 설정할 수 있다. 강화 학습 프로세서(742)는 시냅스 가중치 메모리(710)에 입력 이벤트에 대응하는 셀 주소 정보, 쓰기 요청 신호 및 활성 값을 인가할 수 있다. The
다른 일 예로서, 강화 학습 프로세서(742)는 랜덤 상수가 강화 학습 기준 상수보다 큰 경우 또는 크거나 같은 경우 시냅스 강화를 수행할 수 있다.As another example, the
약화 학습 프로세서(743)는 시냅스 가중치 메모리(710) 내의 시냅스 가중치 값을 확률적으로 비활성 값으로 설정하는 약화 학습을 수행할 수 있다. 약화 학습 프로세서(743)는 강화 학습 프로세서(742)에 의해 강화 학습이 수행된 후에 약화 학습을 수행할 수 있다. The weakened
약화 학습 프로세서(743)는 시냅스 가중치 메모리(710) 내의 복수의 시냅스들 중 적어도 일부의 시냅스에 대하여 약화 학습을 수행할 수 있다.The weakened
예를 들어, 약화 학습 프로세서(743)는 시냅스 가중치 메모리(710) 내의 복수의 시냅스들 모두에 대하여 약화 학습을 수행할 수 있다. 또는, 약화 학습 프로세서(743)는 시냅스 가중치 메모리(710) 내의 복수의 시냅스들 중 강화 학습이 수행되지 않은 시냅스에 대하여 약화 학습을 수행할 수 있다.For example, the weakened
약화 학습 프로세서(743)는 시냅스 가중치 메모리(710) 내의 복수의 시냅스 가중치 값들 각각을 비활성 값으로 설정하는 시냅스 약화의 수행 여부를 확률적으로 결정할 수 있다.The weakened
예를 들어, 약화 학습 프로세서(743)는 복수의 시냅스 가중치 값들에 대하여 시냅스 약화의 수행 여부를 독립적으로 결정할 수 있다.For example, the weakened
약화 학습 프로세서(743)는 시냅스 약화 확률인 제 2 확률을 복수의 시냅스 가중치 값들에 기초하여 결정될 수 있다. 예를 들어, 제 2 확률은 복수의 시냅스들 중 시냅스 가중치 값이 활성 값인 활성화 시냅스의 개수에 기초하여 결정될 수 있다. 예를 들어, 제 2 확률은 활성화 시냅스 개수에 대한, 미리 결정된 적정 활성화 시냅스 개수와 활성화 시냅스의 개수의 차이의 비율일 수 있다.The weakened
약화 학습 프로세서(743)는 랜덤 상수 생성기(741)로부터 획득된 랜덤 상수와 제 2 확률에 기초하여 결정된 약화 학습 기준 상수를 비교하여 시냅스 약화의 수행 여부를 결정할 수 있다. 예를 들어, 약화 학습 프로세서(743)는 랜덤 상수가 랜덤 상수의 상한 값에 제 2 확률을 곱하여 산출된 약화 학습 기준 상수보다 작은 경우 시냅스 약화를 수행할 수 있다. 즉, 랜덤 상수가 약화 학습 기준 상수보다 작은 경우 또는 작거나 같은 경우, 약화 학습 프로세서(743)는 시냅스 가중치 메모리(710)의 시냅스 가중치 값을 비활성 값으로 설정할 수 있다. 약화 학습 프로세서(743)는 시냅스 가중치 메모리(710)에 약화 대상인 시냅스 가중치 값에 대응하는 셀 주소 정보, 쓰기 요청 신호 및 비활성 값을 인가할 수 있다.The weakened
다른 일 예로서, 약화 학습 프로세서(743)는 랜덤 상수가 약화 기준 상수보다 큰 경우, 또는 크거나 같은 경우 시냅스 약화를 수행할 수 있다.As another example, the weakened
제 4 서브 회로(750)는 활성화 입력 신호의 제 2 누적 수신 횟수와 발화 임계 값간의 비교 연산을 수행할 수 있다. 또한, 제 4 서브 회로(750)는 활성화 입력 신호의 제 2 누적 수신 횟수가 발화 임계 값에 이른 경우 뉴런 회로(700)의 시냅스 후 뉴런 회로에게 스파이크 신호(71)를 전송할 수 있다.The
제 4 서브 회로(750)는 발화 카운터(751) 및 제 2 비교 연산부(752)를 포함할 수 있다. 발화 카운터(751)는 활성화 입력 신호의 제 2 누적 수신 횟수를 카운팅하여 출력할 수 있다. 예를 들어, 발화 카운터(751)의 출력 카운팅 값은 제 1 서브 회로(720)로부터 활성화 입력 신호가 수신되었음을 나타내는 신호를 인가 받음에 따라 증가할 수 있다.The
제 2 비교 연산부(752)는 발화 카운터(751)의 출력 카운팅 값과 발화 임계 값을 인가 받아 비교 연산을 수행할 수 있다. 발화 임계 값은 미리 결정된 상수일 수 있다. 예를 들어, 발화 임계 값은 기 저장된 값 또는 외부 구성 요소로부터 수신된 값일 수 있다.The second
제 2 비교 연산부(752)는 발화 카운터(751)의 출력 카운팅 값과 발화 임계 값이 같은 경우 스파이크 신호(71)를 출력할 수 있다. 예를 들어, 제 2 비교 연산부(752)는 1 비트의 신호를 출력할 수 있다. 이 때, 제 2 비교 연산부(752)는 발화 카운터(751)의 출력 카운팅 값과 발화 임계 값이 같은 경우 1을 출력하고, 다른 경우 0을 출력할 수 있다. 제 2 비교 연산부(752)의 출력 값이 1인 것은 스파이크 신호(71)를 출력하는 것을 나타낸다.The second
또한, 제 2 비교 연산부(752)의 출력 값은 발화 카운터(751)에 리셋 신호로서 인가될 수 있다. 예를 들어, 제 2 비교 연산부(752)의 출력 값이 1인 경우, 발화 카운터(751)의 출력 카운팅 값은 0으로 리셋될 수 있다.The output value of the second
제 2 비교 연산부(752)의 스파이크 신호(71)는 뉴런 회로(700)의 시냅스 후 뉴런 회로에 인가될 수 있다.The spike signal 71 of the second
도 8은 일 실시 예에 따른 시냅스 가중치 학습 시스템(800)을 도시한 도면이다.8 is a diagram illustrating a synapse
시냅스 가중치 학습 시스템(800)은 뉴런 회로(860) 및 학습 회로(840)를 포함할 수 있다.The synapse
도 7에서 뉴런 회로(700)에 포함된 제 3 서브 회로(740)가 시냅스 가중치 학습 동작을 수행하지만, 도 8에서는 뉴런 회로(860) 외부의 학습 회로(840)가 뉴런 회로(860)의 시냅스 가중치 학습 동작을 수행할 수 있다.8, the
도 8의 시냅스 가중치 메모리(810) 및 제 1 서브 회로(820) 각각에는 도 6 및 도 7의 시냅스 가중치 메모리(610, 710) 및 제 1 서브 회로(620, 720)에 대한 실시예가 적용될 수 있다. 또한, 도 8의 제 2 서브 회로(830), 학습 카운터(831), 학습 임계 값 카운터(832), 및 제 1 비교 연산부(833) 각각에는, 도 6 및 도 7의 제 2 서브 회로(630, 730), 학습 카운터(731), 학습 임계 값 카운터(732), 및 제 1 비교 연산부(733)에 대한 실시예가 적용될 수 있다. 도 8의 제 4 서브 회로(850), 발화 카운터(851), 및 제 2 비교 연산부(852) 각각에는, 도 7의 제 4 서브 회로(750), 발화 카운터(751), 및 제 2 비교 연산부(752)에 대한 실시예가 적용될 수 있다.The
또한, 도 8의 학습 회로(840), 랜덤 상수 생성기(841), 강화 학습 프로세서(842), 약화 학습 프로세서(843), 입력 이벤트 버퍼(844) 각각에는 도 6 및 도 7의 제 3 서브 회로(640, 740), 랜덤 상수 생성기(741), 강화 학습 프로세서(742), 약화 학습 프로세서(743), 입력 이벤트 버퍼(744)에 대한 실시 예가 적용될 수 있다. 따라서, 도 8에 대한 설명에서 도 6 및 도 7과 중복되는 설명은 생략하도록 한다.The
뉴런 회로(860)는 수신된 입력 신호가 수신된 입력 신호의 시냅스 값이 활성 값인 활성화 신호인지 여부를 판단하여, 활성화 입력 신호의 제 1 누적 수신 횟수가 학습 임계 값에 이른 경우 학습 요청 신호를 학습 회로에게 전송할 수 있다.The
뉴런 회로(860)는 제 2 서브 회로(830)에 포함된 제 1 비교 연산부(833)의 학습 요청 신호를 학습 회로(840)에 전송할 수 있다. 또한, 뉴런 회로(860)는 학습 요청 신호와 함께, 뉴런 회로(860)의 식별 정보를 학습 회로(840)에게 전송할 수 있다. 이에 따라, 학습 회로(840)는 학습 요청 신호를 전송한 뉴런 회로(860)를 뉴런 회로(860)의 식별 정보에 기초하여 식별할 수 있다.The
학습 회로(840)가 뉴런 회로(860)로부터 학습 요청 신호를 수신함에 따라, 강화 학습 프로세서(842) 및 약화 학습 프로세서(843) 각각은 뉴런 회로(860)의 시냅스 가중치 메모리(810)에 접근하여, 강화 학습 동작 및 약화 학습 동작을 수행할 수 있다.As the
도 9는 일 실시 예에 따른 복수의 뉴런 회로들에 대한 시냅스 가중치 학습 시스템을 도시한 도면이다.9 is a diagram illustrating a synapse weight learning system for a plurality of neuron circuits according to one embodiment.
복수의 뉴런 회로들 각각에는 도 8의 뉴런 회로에 대한 실시 예가 적용될 수 있고, 학습 회로에는 도 8의 학습 회로에 대한 실시 예가 적용될 수 있다.An embodiment for the neuron circuit of Fig. 8 may be applied to each of the plurality of neuron circuits, and an embodiment of the learning circuit of Fig. 8 may be applied to the learning circuit.
학습 회로(940)는 복수의 뉴런 회로들(910, 920)에 대하여 시냅스 가중치 학습 동작을 수행할 수 있다. 또한, 복수의 뉴런 회로들(910, 920) 각각은 식별 정보를 통하여 상호간 식별될 수 있다.
복수의 뉴런 회로들(910, 920)과 학습 회로(940)는 버스(BUS)(970)를 통하여 상호간 통신할 수 있다. 학습 회로(940)는 버스(970)를 통하여 복수의 뉴런 회로들(910, 920) 각각으로부터 학습 요청 신호를 수신할 수 있다. 뉴런 회로들(910, 920)로부터 학습 요청 신호 및 뉴런 회로의 식별 정보를 수신함에 따라, 학습 회로(940)는 식별 정보를 이용하여 식별 정보에 대응하는 뉴런 회로와 정보를 송수신할 수 있다. 이에 따라, 학습 회로(940)는 버스를 통해 식별 정보에 대응하는 뉴런 회로의 시냅스 가중치 학습 동작을 수행할 수 있다.A plurality of
도 10은 계층적 뉴런 회로 집단의 학습 시스템을 도시한 도면이다.10 is a diagram showing a learning system of a hierarchical neuron circuit group.
뉴런 회로 집단(population)의 학습 시스템은 복수의 계층 집단을 포함할 수 있다. 계층 집단 각각은 복수의 뉴런 회로들 및 학습 회로를 포함할 수 있다.The learning system of a neuronal circuit population may include a plurality of hierarchical groups. Each of the hierarchical groups may comprise a plurality of neuron circuits and a learning circuit.
일 계층 집단의 뉴런 회로들 각각으로부터 출력된 스파이크 신호는 다음 계층 집단에 입력 신호로 인가될 수 있다.The spike signals output from each of the neuron circuits of the one-tier cluster may be applied as input signals to the next tier cluster.
예를 들어, N-1 계층 집단의 뉴런 회로(뉴런 회로 N-1_1, 뉴런 회로 N-1_2, ..., 뉴런 회로 N-1_A) 각각으로부터 출력된 스파이크 신호(스파이크 신호 N-1_1, 스파이크 신호 N-1_2, ..., 스파이크 신호 N-1_A)는 N 계층 집단의 입력 신호(입력 신호 N)로 인가될 수 있다.For example, a spike signal (spike signal N-1_1, spike signal N-1_1) output from each of the neuron circuits (neuron circuit N-1_1, neuron circuit N-1_2, N-1_2, ..., spike signal N-1_A) may be applied to the input signal (input signal N) of the N-tier cluster.
마찬가지로, N 계층 집단의 뉴런 회로(뉴런 회로 N_1, 뉴런 회로 N_2, ..., 뉴런 회로 N_A) 각각으로부터 출력된 스파이크 신호(스파이크 신호 N_1, 스파이크 신호 N_2, ..., 스파이크 신호 N_A)는 N+1 계층 집단의 입력 신호(입력 신호 N+1)로 인가될 수 있다.Likewise, the spike signals (spike signal N_1, spike signal N_2, ..., spike signal N_A) output from each of the neuron circuits (neuron circuit N_1, neuron circuit N_2, (Input signal N + 1) of the +1 hierarchical group.
또한, 각각의 계층 집단의 학습 회로는 해당 계층 집단의 복수의 뉴런 회로들에 대하여 시냅스 학습 동작을 수행할 수 있다. 예를 들어, 학습 회로 N-1, 학습 회로 N 및 학습 회로 N+1 각각은 N-1 계층 집단, N 계층 집단 및 N+1 계층 집단 각각에 속한 뉴런회로들의 시냅스 학습 동작을 수행할 수 있다. 도 10의 복수의 뉴런 회로들 각각 학습 회로들 각각에는 도 8 및 도9의 뉴런 회로 및 학습 회로에 대한 실시 예가 적용될 수 있다.Also, the learning circuit of each hierarchical group can perform a synapse learning operation on a plurality of neuron circuits of the hierarchical group. For example, the learning circuit N-1, the learning circuit N, and the learning circuit N + 1, respectively, can perform the synapse learning operation of the neuron circuits belonging to each of the N-1 hierarchical group, the N-hierarchical group, and the N + . Multiple neuron circuits of FIG. 10 Each of the learning circuits may be applied to the neuron circuit and learning circuit of FIGS. 8 and 9, respectively.
도 11은 일 실시 예에 따른 뉴런 회로에 의해 수행되는 시냅스 가중치 학습 방법의 흐름도이다.11 is a flow diagram of a method of learning a synaptic weight performed by a neuron circuit according to one embodiment.
단계 1110에서, 뉴런 회로는 시냅스 전 뉴런 회로로부터 입력 신호를 수신하고, 수신된 입력 신호가, 수신된 입력 신호의 시냅스 가중치 값이 활성 값인 활성화 신호인지 여부를 판단할 수 있다.In
뉴런 회로는 복수의 시냅스 가중치 값들을 저장할 수 있다. 예를 들어, 뉴런 회로는 복수의 시냅스 전 뉴런 회로들 각각에 대응하는 시냅스 가중치 값을 저장할 수 있다. 예를 들어, 시냅스 가중치 값은 1 비트의 정보일 수 있다. 시냅스 가중치 값은 활성 값 또는 비활 성 값의 이진 값을 가질 수 있다. 예를 들어, 활성 값은 1이고 비활성 값은 0일 수 있으나 이에 제한되지 아니한다. 이 때, 시냅스 가중치 값이 활성 값인 시냅스는 활성화 시냅스라 정의하고, 비활성 값인 시냅스는 비활성화 시냅스라 정의하도록 한다.The neuron circuit may store a plurality of synapse weight values. For example, a neuron circuit may store a synaptic weight value corresponding to each of a plurality of synapse pre-neuron circuits. For example, the synaptic weight value may be one bit of information. The synapse weight value may have an active value or a binary value of an inactive value. For example, the active value may be 1 and the inactive value may be 0, but is not limited thereto. At this time, the synapse whose synaptic weight value is the active value is defined as the activated synapse, and the inactive value is defined as the inactivated synapse.
뉴런 회로는 입력 신호를 수신할 수 있다. 입력 신호는 뉴런 회로의 시냅스 전 뉴런 회로로부터 출력된 신호일 수 있다. 예를 들어, 입력 신호는 시냅스 전 뉴런 회로로부터 출력된 스파이크 신호일 수 있다. 또한, 입력 신호는 복수의 시냅스 전 뉴런 회로들로부터 출력된 신호일 수 있다. 예를 들어, 입력 신호는 복수의 시냅스 전 뉴런 회로들 중 적어도 일부로부터 출력된 스파이크 신호가 선택적으로 또는 조합적으로 입력된 신호일 수 있다.The neuron circuit can receive the input signal. The input signal may be a signal output from the synaptic neuron circuit of the neuron circuit. For example, the input signal may be a spike signal output from a synaptic neuron circuit. In addition, the input signal may be a signal output from a plurality of synaptic pre-neuron circuits. For example, the input signal may be a signal to which spike signals output from at least some of the plurality of synaptic pre-neuron circuits are input selectively or in combination.
예를 들어, 입력 신호는 스파이크 신호를 출력한 시냅스 전 뉴런 회로를 식별할 수 있는 정보를 포함할 수 있다. 다른 일 예로서, 입력 신호는 시냅스 전 뉴런 회로가 스파이크 신호를 출력했음을 나타내는 정보 및/또는 시냅스 전 뉴런 회로의 식별 정보를 포함할 수 있다. 예를 들어, 입력 신호에 포함된 식별 정보는 시냅스 전 뉴런 회로 고유의 식별 정보를 포함할 수 있다. 또한, 입력 신호에 포함된 식별 정보는 시냅스 전 뉴런 회로의 시냅스 가중치 값이 저장된 메모리의 셀 주소 정보를 포함할 수 있다.For example, the input signal may include information that can identify a synaptic neuronal circuit that has output a spike signal. As another example, the input signal may include information indicating that the synapse pre-neuron circuit has output a spike signal and / or identification information of the synapse pre-neuron circuit. For example, the identification information contained in the input signal may include identification information unique to the synaptic neuron circuit. In addition, the identification information included in the input signal may include cell address information of a memory in which a synapse weight value of the synapse pre-neuron circuit is stored.
뉴런 회로는 입력 신호가, 입력 신호에 대응하는 시냅스 가중치 값이 활성 값인 활성화 입력 신호인지 여부를 판단할 수 있다. 예를 들어, 뉴런 회로는 입력 신호에 대응하는 시냅스 가중치 값을 획득할 수 있다. 획득된 시냅스 가중치 값이 활성 값인 경우, 뉴런 회로는 입력 신호를 활성화 신호라고 판단할 수 있다. 획득된 시냅스 가중치 값이 비활성 값인 경우 뉴런 회로는 입력 신호가 활성화 신호가 아니라고 판단할 수 있다. The neuron circuit can determine whether the input signal is an active input signal whose synaptic weight value corresponding to the input signal is the active value. For example, the neuron circuit may obtain a synapse weight value corresponding to the input signal. If the obtained synapse weight value is the active value, the neuron circuit can determine that the input signal is an activation signal. If the obtained synapse weight value is an inactive value, the neuron circuit can determine that the input signal is not an activation signal.
단계 1120에서, 입력 신호가 활성화 신호라고 판단함에 따라, 뉴런 회로는 활성화 입력 신호의 제 1 누적 수신 횟수와 학습 임계 값간의 비교 연산을 수행할 수 있다.In
뉴런 회로는 제 1 누적 수신 횟수가 학습 임계 값에 이르렀다고 판단함에 따라 제 1 누적 수신 횟수를 리셋할 수 있다. The neuron circuit can reset the first cumulative number of times of reception according to the determination that the first cumulative number of receptions has reached the learning threshold value.
예를 들어, 뉴런 회로는 제 1 누적 수신 횟수가 학습 임계 값에 이르렀다고 판단함에 따라, 학습 임계 값을 증가 시킬 수 있다. 일 실시 예에 따른, 학습 임계 값은 학습 임계 값의 상한 값이 있을 수 있다. 뉴런 회로는 학습 임계 값이 학습 임계 값의 상한 값과 같은 경우 학습 임계 값을 학습 임계 값의 상한 값으로 유지할 수 있다. 다른 일 예로서, 학습 임계 값은 고정된 값일 수 있다.For example, the neuron circuit may increase the learning threshold as it determines that the first cumulative number of receptions has reached the learning threshold. According to one embodiment, the learning threshold may be the upper limit of the learning threshold. The neuron circuit can keep the learning threshold at the upper limit of the learning threshold if the learning threshold is equal to the upper limit of the learning threshold. As another example, the learning threshold may be a fixed value.
단계 1130에서, 뉴런 회로는 제 1 누적 수신 횟수가 학습 임계 값에 이른 경우, 제 1 확률에 따라, 기 수신된 적어도 하나의 입력 신호의 시냅스 가중치 값을 활성 값으로 설정하는 강화 학습을 수행할 수 있다.In
예를 들어, 제 1 누적 수신 횟수가 학습 임계 값에 이르렀다고 판단함에 따라, 뉴런 회로는 시냅스 가중치 값을 조정하는 강화 학습을 수행할 수 있다.For example, as determining that the first cumulative number of received times has reached the learning threshold, the neuron circuit may perform reinforcement learning to adjust the synapse weight value.
뉴런 회로는 기 수신된 입력 신호에 대응하는 시냅스 가중치 값을 확률적으로 활성 값으로 설정하는 강화 학습을 수행할 수 있다.The neuron circuit may perform reinforcement learning to set the synaptic weight value corresponding to the received input signal to the active value stochastically.
뉴런 회로는 입력 신호를 수신하는 입력 이벤트가 발생한 경우, 입력 이벤트에 대한 정보를 획득할 수 있다. 뉴런 회로는 복수의 입력 이벤트들에 대한 정보를 저장할 수 있다. 또한, 뉴런 회로는 복수의 입력 이벤트들 중 적어도 일부의 입력 이벤트에 대응하는 시냅스 가중치 값을 활성 값으로 설정하는 시냅스 강화의 수행 여부를 확률적으로 결정할 수 있다. 이 때, 뉴런 회로는 강화 학습 수행 대상인 적어도 일부의 입력 이벤트 각각에 대하여 시냅스 강화의 수행 여부를 독립적으로 결정할 수 있다.The neuron circuit can obtain information about an input event when an input event for receiving an input signal occurs. The neuron circuit may store information about a plurality of input events. In addition, the neuron circuit may stochastically determine whether to perform synaptic enhancement that sets the synaptic weight value corresponding to the input event of at least some of the plurality of input events to an active value. At this time, the neuron circuit can independently determine whether or not to perform synaptic strengthening for each of at least some input events to be subjected to reinforcement learning.
입력 이벤트에 대한 정보는 입력 신호에 포함된 시냅스 전 뉴런 회로의 식별 정보를 포함할 수 있다. 상술한 바와 같이, 시냅스 전 뉴런 회로의 식별 정보는 시냅스 전 뉴런 회로에 대응하는 시냅스 가중치 값이 저장된 주소 정보 등 시냅스 정보를 포함할 수 있으나 이에 제한되지 아니한다.The information about the input event may include identification information of the synapse pre-neuron circuit included in the input signal. As described above, the identification information of the synapse pre-neuron circuit may include, but is not limited to, synapse information, such as address information, in which the synapse weight value corresponding to the synapse pre-neuron circuit is stored.
뉴런 회로는 기 저장된 복수의 입력 이벤트들 중 미리 결정된 개수의 입력 이벤트에 대하여 강화 학습을 수행할 수 있다. 이 때, 뉴런 회로는 기 저장된 복수의 입력 이벤트들 중 저장된 순서의 역순으로 미리 결정된 개수의 입력 이벤트에 대하여 강화 학습을 수행할 수 있다. 기 저장된 복수의 입력 이벤트들의 개수가 미리 결정된 개수보다 적은 경우, 뉴런 회로는 기 저장된 복수의 입력 이벤트들 모두에 대하여 강화 학습을 수행할 수 있다.The neuron circuit may perform reinforcement learning on a predetermined number of input events among a plurality of pre-stored input events. At this time, the neuron circuit can perform reinforcement learning on a predetermined number of input events in the reverse order of the stored order among the plurality of pre-stored input events. If the number of pre-stored plurality of input events is less than a predetermined number, the neuron circuit may perform reinforcement learning for all of the pre-stored plurality of input events.
시냅스 강화 학률인 제 1 확률은 미리 결정될 수 있다. 예를 들어, 제 1 확률은 상수일 수 있으나 이에 제한되지 아니한다.The first probability that the synapse enrichment rate can be predetermined. For example, the first probability may be a constant, but is not limited thereto.
뉴런 회로는 랜덤 상수를 획득하고, 획득된 랜덤 상수와 제 1 확률에 기초하여 결정된 강화 학습 기준 상수를 비교하여 시냅스 강화의 수행 여부를 결정할 수 있다. 예를 들어, 뉴런 회로는 랜덤 상수가 랜덤 상수의 상한 값에 제 1 확률을 곱하여 산출된 강화 학습 기준 상수보다 작은 경우 시냅스 강화를 수행할 수 있다. 이 때, 랜덤 상수는 양수일 수 있고, 소정의 범위의 양수 중 랜덤으로 결정된 수이다.The neuron circuit may obtain a random constant, and may determine whether to perform synaptic enhancement by comparing the determined random constant with the determined enhanced learning reference constant based on the first probability. For example, the neuron circuit may perform synaptic enhancement if the random constants are less than the reinforcement learning criterion constant calculated by multiplying the upper limit of the random constants by the first probability. At this time, the random constant may be a positive number, and is a random number determined among positive numbers in a predetermined range.
다른 일 예로서, 뉴런 회로는 랜덤 상수가 강화 학습 기준 상수보다 작은 경우 시냅스 강화를 수행할 수 있다.As another example, the neuronal circuit can perform synaptic enhancement if the random constant is less than the enhanced learning criterion constant.
단계 1140에서, 뉴런 회로는 복수의 시냅스 가중치 값들 각각을, 제 2 확률에 따라, 비활성 값으로 설정하는 약화 학습을 수행할 수 있다.In
뉴런 회로는 시냅스 가중치 값을 확률적으로 비활성 값으로 설정하는 약화 학습을 수행할 수 있다. 예를 들어, 뉴런 회로는 복수의 시냅스 가중치 값들 각각을 비활성 값으로 설정하는 시냅스 약화의 수행 여부를 확률적으로 결정할 수 있다. 이때, 뉴런 회로는 복수의 시냅스 가중치 값들 각각에 대하여 시냅스 약화의 수행 여부를 독립적으로 결정할 수 있다.The neuron circuit can perform weakening learning to set the synapse weight value to a stochastic inactive value. For example, the neuron circuit may stochastically determine whether to perform a synapse weakening that sets each of the plurality of synapse weight values to an inactive value. At this time, the neuron circuit can independently determine whether synaptic weakening is to be performed for each of a plurality of synapse weight values.
뉴런 회로는 강화 학습을 수행한 후에 약화 학습을 수행할 수 있다. 뉴런 회로는 복수의 시냅스들 중 적어도 일부에 대하여 약화 학습을 수행할 수 있다. 예를 들어, 뉴런 회로는 복수의 시냅스들 모두에 대하여 약화 학습을 수행할 수 있다. 다른 일 예로서, 뉴런 회로는 복수의 시냅스들 중 강화 학습이 수행되지 않은 시냅스에 대하여 약화 학습을 수행할 수 있다.The neuron circuit can perform weak learning after performing reinforcement learning. The neuron circuit may perform weakening learning on at least some of the plurality of synapses. For example, a neuron circuit can perform weakening learning for all of a plurality of synapses. As another example, the neuron circuit may perform weakening learning on a synapse where reinforcement learning is not performed among a plurality of synapses.
예를 들어, 뉴런 회로는 복수의 시냅스들의 가중치 값들 각각을 비활성 값으로 설정하는 시냅스 약화의 수행 여부를 확률적으로 결정할 수 있다.For example, the neuron circuit may stochastically determine whether to perform a synapse weakening that sets each of the weight values of a plurality of synapses to an inactive value.
뉴런 회로는 시냅스 약화 확률인 제 2 확률을 복수의 시냅스 가중치 값들에 기초하여 결정할 수 있다. 예를 들어, 제 2 확률은 복수의 시냅스들 중 시냅스 가중치 값이 활성 값인 활성화 시냅스의 개수에 기초하여 결정될 수 있다. 예를 들어, 제 2 확률은 활성화 시냅스 개수에 대한 미리 결정된 적정 활성화 시냅스의 개수와 활성화 시냅스의 개수간 차이의 비율일 수 있다.The neuron circuit may determine a second probability that is a synapse attenuation probability based on the plurality of synapse weight values. For example, the second probability may be determined based on the number of activated synapses among which the synapse weight value is the active value. For example, the second probability may be a ratio of the number of predetermined activated activation synapses to the number of activated synapses to the number of activated synapses.
뉴런 회로는 랜덤 상수를 획득하고, 획득된 랜덤 상수와 제 2 확률에 기초하여 결정된 약화 학습 기준 상수를 비교하여 시냅스 약화의 수행 여부를 결정할 수 있다. 예를 들어, 뉴런 회로는 랜덤 상수가 랜덤 상수의 상한 값에 제 2 확률을 곱하여 산출된 약화 학습 기준 상수보다 작은 경우 시냅스 약화를 수행할 수 있다. 즉, 랜덤 상수가 약화 학습 기준 상수보다 작은 경우, 뉴런 회로는 시냅스의 가중치 값을 비활성 값으로 설정할 수 있다.The neuron circuit can obtain a random constant, and compare the determined random constant with the determined weakened learning reference constant based on the second probability to determine whether to perform a synapse weakening. For example, the neuron circuit may perform synaptic weakness if the random constants are less than the weakened learning criterion constant calculated by multiplying the upper limit of the random constants by the second probability. That is, when the random constant is smaller than the weakened learning reference constant, the neuron circuit can set the weight value of the synapse to the inactive value.
다른 일 예로서, 뉴런 회로는 랜덤 상수가 약화 기준 상수보다 큰 경우 시냅스 약화를 수행할 수 있다.As another example, the neuron circuit can perform synaptic weakness when the random constant is greater than the attenuation criterion constant.
입력 신호가 활성화 신호라고 판단함에 따라, 뉴런 회로는 활성화 입력 신호의 제 2 누적 수신 횟수와 발화 임계 값간의 비교 연산을 수행할 수 있다. 또한, 뉴런 회로는 제 2 누적 수신 횟수가 발화 임계 값에 이른 경우, 스파이크 신호를 출력할 수 있다. 예를 들어, 뉴런 회로는 시냅스 후(post-synaptic) 뉴런 회로에게 스파이크 신호를 전송할 수 있다.As the input signal is determined to be an activation signal, the neuron circuit may perform a comparison operation between the second cumulative number of times of reception of the activation input signal and the ignition threshold value. Further, the neuron circuit can output a spike signal when the second cumulative reception count reaches the ignition threshold value. For example, a neuron circuit can transmit a spike signal to a post-synaptic neuron circuit.
뉴런 회로는 제 2 누적 수신 횟수가 발화 임계 값에 이르렀다고 판단함에 따라 제 2 누적 수신 횟수를 리셋할 수 있다. The neuron circuit can reset the second cumulative reception count as it is determined that the second cumulative reception count has reached the ignition threshold value.
예를 들어, 발화 임계 값은 고정된 값일 수 있다. 다른 일 예로서, 뉴런 회로는 제 2 누적 수신 횟수가 발화 임계 값에 이르렀다고 판단함에 따라, 발화 임계 값을 증가 시킬 수 있다. 또한, 발화 임계 값은 발화 임계 값의 상한 값이 있을 수 있다. 뉴런 회로는 발화 임계 값이 발화 임계 값의 상한 값과 같은 경우 발화 임계 값을 발화 임계 값의 상한 값으로 유지할 수 있다.For example, the ignition threshold may be a fixed value. As another example, the neuron circuit may increase the utterance threshold value as it determines that the second cumulative reception count has reached the utterance threshold. Further, the ignition threshold value may have an upper limit value of the ignition threshold value. The neuron circuit may maintain the ignition threshold at the upper limit of the ignition threshold if the ignition threshold is equal to the upper limit of the ignition threshold.
도 12는 뉴런 회로를 구현하기 위한 뉴런 블록의 스킴을 도시한 도면이다.12 is a diagram showing a scheme of a neuron block for implementing a neuron circuit.
뉴런 블록은 고유의 뉴런 주소 정보를 가질 수 있다. 예를 들어 뉴런 주소 신호 Neuron_addr는 각각의 해당 뉴런 블록의 식별 주소 정보를 포함할 수 있다. 해당 뉴런 블록과 정보를 송수신하기 위해 외부로부터 인가되는 STDP 활성 뉴런 주소 신호 STDP_active_addr 값이 해당 뉴런 주소 정보 신호 Neuron_addr 값과 일치하는 경우에, 해당 뉴런 블록에 대한 STDP 학습 프로세스가 활성화 된다.The neuron block can have unique neuron address information. For example, the neuron address signal Neuron_addr may include the identification address information of each corresponding neuron block. The STDP learning process for the neuron block is activated when the STDP active neuron address signal STDP_active_addr value, which is externally applied to transmit / receive information to / from the neuron block, coincides with the neuron address information signal Neuron_addr value.
뉴런 블록은 입력 신호 AERin_v 입력 받을 수 있다. AERin_v는 시냅스 전 회로로부터 인가된 스파이크 신호를 나타낼 수 있다.The neuron block can receive the input signal AERin_v. AERin_v can represent a spike signal applied from the synaptic circuit.
또한, 뉴런 블록은 입력 신호 AERin을 입력 받을 수 있다. 입력 신호 AERin은 수신된 입력 신호 AErin_v을 출력한 시냅스 전 회로에 대응하는 시냅스에 관한 정보를 포함할 수 있다. 예를 들어, AERin은 뉴런 블록에 입력 신호를 인가하는 복수의 입력단들 중 해당 입력 신호를 수신하는 입력단의 주소 정보를 나타낼 수 있다. 또는, AERin은 뉴런 블록에 입력 신호를 인가하는 시냅스 전 회로의 주소 정보를 나타낼 수 있다. 또는, AERin 신호는 대응하는 시냅스 가중치 값을 저장하는 시냅스 가중치 메모리(Synaptic Weight Memory) 셀의 주소 정보를 포함할 수 있다.Also, the neuron block can receive the input signal AERin. The input signal AERin may include information about the synapse corresponding to the entire circuit for outputting the received input signal AErin_v. For example, AERin may represent address information of an input terminal receiving a corresponding input signal among a plurality of input terminals applying an input signal to a neuron block. Alternatively, AERin may represent address information of a synapse circuit that applies an input signal to a neuron block. Alternatively, the AERin signal may include address information of a Synaptic Weight Memory cell that stores a corresponding synapse weight value.
또한, 뉴런 활성 신호 Neuron_active는 뉴런 블록이 입력 신호를 처리할 수 있는 정상 상태임을 나타낼 수 있다. 예를 들어, 뉴런 활성 신호 Neuron_active의 값이 0인 경우 뉴런 블록이 시냅스 전 회로로부터 입력을 수신하여도 발화 카운터(Firing Counter) 및 학습 카운터(Learning Counter)로 입력되는 카운팅 트리거 신호 Count-up1 값이 토글 되지 않아, 발화 카운터(Firing Counter) 및 학습 카운터(Learning Counter)의 출력 카운팅 값이 증가하지 않을 수 있다.Also, the neuron activation signal Neuron_active may indicate that the neuron block is in a steady state capable of processing the input signal. For example, if the neuron activation signal Neuron_active has a value of 0, even if the neuron block receives an input from the pre-synapse circuit, the counting trigger signal Count-up1, which is input to the Firing Counter and the Learning Counter, The output count value of the Firing Counter and the Learning Counter may not increase.
뉴런 활성 신호 Neuron_active의 값이 1인 경우, 활성 값, 예를 들어, 1을 가지는 입력 신호 AERin_v가 입력됨에 따라, 발화 카운터(Firing Counter) 및 학습 카운터(Learning Counter)의 출력 카운팅 값이 증가할 수 있다. 예를 들어, 활성 값을 가지는 입력 신호 AERin_v가 입력됨에 따라 발화 카운터(Firing Counter) 및 학습 카운터(Learning Counter)로 입력되는 카운팅 트리거 신호 Count-up1 값이 1로 토글 될 수 있고, 이에 따라, 발화 카운터(Firing Counter) 및 학습 카운터(Learning Counter)의 출력 카운팅 값이 증가할 수 있다. When the value of the neuron activation signal Neuron_active is 1, the output count value of the Firing Counter and the Learning Counter can be increased as the input signal AERin_v having the active value, for example, have. For example, as the input signal AERin_v having the active value is input, the value of the counting trigger signal Count-up1 input to the Firing Counter and the Learning Counter can be toggled to 1, The output count value of the Firing Counter and the Learning Counter may increase.
이 때, 카운팅 트리거 신호 Count-up1 값이 1로 토글되기 위해서 입력 신호 AERin_v에 대응하는 시냅스 가중치 값이 고려될 수 있다. 예를 들어, 뉴런 블록은 입력 신호 AERin_v에 대응하는 AERin 신호에 포함된 시냅스 주소 신호 rd_addr에 기초하여, 시냅스 가중치 메모리로부터 대응하는 시냅스 가중치 값 syn_weight 을 획득할 수 있다. 시냅스 주소 신호 rd_addr은 입력 신호 AERin_v의 처리를 위해, 뉴런 블록 내부에서 사용되는 시냅스 가중치 값 syn_weight을 획득하기 위해 이용되며, 후술하는 STDP 학습 블록과의 정보 송수신에 이용되는 STDP 요청 시냅스 주소 신호 STDP_RD_addr과 구별될 수 있다.At this time, the synapse weight value corresponding to the input signal AERin_v can be considered so that the counting trigger signal Count-up1 value is toggled to 1. For example, the neuron block may obtain a corresponding synapse weight value syn_weight from the synapse weight memory based on the synaptic address signal rd_addr contained in the AERin signal corresponding to the input signal AERin_v. The synapse address signal rd_addr is used to acquire a synapse weight value syn_weight used in the neuron block for processing of the input signal AERin_v and distinguishes it from the STDP request synapse address signal STDP_RD_addr used for information transmission and reception with the STDP learning block .
입력 신호 AERin_v 및 AERin_v에 따라 획득된 시냅스 가중치 값 syn_weight가 1인 경우에만 카운트 트리거 신호(제 1 카운트 트리거 신호) Count_up1 값이 1로 토글될 수 있다. 이는 해당 입력을 전달하는 시냅스가 활성 상태임을 나타낸다.The count trigger signal (first count trigger signal) Count_up1 value can be toggled to 1 only when the synaptic weight value syn_weight obtained according to the input signals AERin_v and AERin_v is 1. This indicates that the synapse transmitting that input is active.
한편, 뉴런 블록은 시냅스 가중치 메모리(Synaptic Weight Memory)를 포함한다. 예를 들어, 시냅틱 가중치 메모리는 1024 bit의 용량을 가지며, 따라서 최대 1024개의 시냅스들에 대응하는 시냅스 가중치 값들을 저장할 수 있다. 예를 들어, 시냅스 가중치 메모리 셀 각각에 저장된 시냅스 가중치 값은 활성 값 또는 비활성 값 중 하나의 값을 가질 수 있다. 예를 들어, 시냅스 가중치 값의 활성 값은 1이며, 비활성 값은 0일 수 있다. 이 때, 시냅스 가중치 메모리(Synaptic Weight Memory) 내에 저장된 모든 시냅스 가중치의 초기 값들은 1로 설정될 수 있다.On the other hand, the neuron block includes a Synaptic Weight Memory. For example, the synaptic weight memory has a capacity of 1024 bits, and thus can store synapse weight values corresponding to a maximum of 1024 synapses. For example, the synaptic weight value stored in each synapse weighted memory cell may have a value of either an active value or an inactive value. For example, the active value of the synapse weight value may be one, and the inactive value may be zero. At this time, the initial values of all synapse weights stored in the synaptic weight memory may be set to one.
발화 카운터(Firing Counter)는 입력 신호로서, 카운팅 트리거 신호 Count-up1, 카운팅 값을 초기화 하는 리셋 신호 reset를 수신할 수 있다. 리셋 신호 reset는 스파이크 신호 Spike_out가 출력된 경우 또는 외부로부터 초기화를 명령하는 신호 inh_event를 수신한 경우 발화 카운터(Firing Counter)의 카운팅 값을 리셋시키는 값을 가질 수 있다.The Firing Counter can receive the counting trigger signal Count-up1 as the input signal, and the reset signal reset which initializes the count value. The reset signal reset may have a value for resetting the count value of the firing counter when the spike signal Spike_out is output or when receiving a signal inh_event for commanding initialization from the outside.
발화 카운터(Firing Counter)의 카운팅 값 count2는 뉴런의 발화 여부를 결정하는 기준이 된다. 예를 들어, 발화 카운터(Firing Counter)의 카운팅 값 count2이 미리 결정된 발화 임계 값 spike_threshold에 이른 경우 뉴런이 발화될 수 있다. 이 때, 발화 임계 값 spike_threshold는 미리 결정된 고정 값일 수 있다. 다른 일 예로서 발화 임계 값 spike_threshold는 발화 카운터(Firing Counter)의 카운팅 값 count2가 spike_threshold 값에 이를 때마다 증가할 수 있다. 이 때, 발화 임계 값 spike_threshold이 증가하는 경우에도 상한 값이 없거나 소정의 상한 값이 있을 수 있다.The count value count2 of the Firing Counter is used as a criterion for determining whether or not the neuron is ignited. For example, if the count value count2 of the Firing Counter reaches the predetermined spike threshold spike_threshold, the neuron can be ignited. In this case, the ignition threshold value spike_threshold may be a predetermined fixed value. As another example, the spark threshold value spike_threshold may increase every time the count value count2 of the Firing Counter reaches the spike threshold value. At this time, even if the spiking threshold value spike_threshold increases, there is no upper limit value or there may be a predetermined upper limit value.
예를 들어, 발화 카운터(Firing Counter)의 카운팅 값 count2와 발화 임계 값 spike-threshold간의 비교 연산이 수행될 수 있다. 발화 카운터(Firing Counter)의 카운팅 값 count2이 발화 임계 값 spike-threshold 이상인 경우 스파이크 신호 Spike_out 값이 1을 가진다. 스파이크 신호 Spike_out 값이 1을 가지는 것은 뉴런 블록이 스파이크 신호를 출력함을 나타낸다. 예를 들어, 출력된 스파이크 Spike_out 신호는 상위 계층의 뉴런 블록에 전송될 수 있다. 예를 들어, 계층적 뉴런 시스템에서, 현재 뉴런 블록에서 출력된 스파이크 신호 Spike_out는 현재 뉴런 블록을 시냅스 전 뉴런으로 하는 상위 계층의 뉴런 블록에 전송되어, 상위 계층의 뉴런 블록의 발화 여부 또는 학습 수행 여부에 이용될 수 있다.For example, a comparison operation between the count value count2 of the Firing Counter and the spike-threshold can be performed. The spike signal Spike_out value is 1 when the count value count2 of the Firing Counter is equal to or greater than the spike threshold value. A spike signal Spike_out value of 1 indicates that the neuron block outputs a spike signal. For example, the output spike Spike_out signal can be transmitted to the neuron block of the upper layer. For example, in a hierarchical neuron system, a spike signal Spike_out output from a current neuron block is transmitted to a neuron block of an upper layer, which is a neuron block that is a current neuron block, Lt; / RTI >
또한, 뉴런 모듈은 STDP 학습 모듈에 학습을 요청하는 학습 요청 모듈을 포함할 수 있다. 예를 들어, 뉴런 블록은 학습 요청 여부를 결정하는 학습 카운터(Learning Counter)와 STDP 임계 값 카운터(STDP_threshold Counter)를 포함할 수 있다. 상위 계층의 뉴런 블록의 발화 여부 또는 학습 요청 여부에 이용되는 발화 카운터(Firing Counter)와 학습 카운터(Learning Counter)가 구별됨에 따라, 현재 뉴런 블록의 학습 속도를 점차 감소 시킴으로 인해, 상위 계층의 뉴런 블록의 학습 속도가 저하되는 것을 방지할 수 있다.In addition, the neuron module may include a learning request module that requests learning to the STDP learning module. For example, the neuron block may include a Learning Counter and a STDP Threshold Counter (STDP Threshold Counter) for determining whether to request a learning. Since the learning rate of the current neuron block is gradually decreased as the ignition counter and the learning counter used for the ignition of the neuron block of the upper layer or the learning request are distinguished from each other, Can be prevented from being lowered.
학습 카운터는 발화 카운터와 마찬가지로 제 1 카운트 트리거 신호 count-up1이 1로 토글 될 때 카운팅 값을 증가시킬 수 있다.Like the ignition counter, the learning counter can increase the count value when the first count trigger signal count-up1 toggles to one.
학습 카운터(Learning Counter)의 카운팅 값 count1이 미리 결정된 학습 임계 값에 이른 경우 뉴런 블록은 학습을 요청하는 학습 요청 신호 STDP_req를 출력할 수 있다. 예를 들어, 하기 설명하는 학습 임계 값을 출력하는 STDP 임계 값 카운터(STDP_threshold Counter)의 카운팅 값 count3과 학습 카운터(Learning Counter)의 카운팅 값 count1간의 비교 연산이 수행될 수 있다. 비교 연산 결과 학습 카운터(Learning Counter)의 카운팅 값 count1이 STDP 임계 값 카운터(STDP_threshold Counter)의 카운팅 값 count3 이상인 경우, 1 값을 가지는 학습 요청 STDP_req 신호가 출력될 수 있다. 예를 들어, STDP_req 값이 1임은 학습을 요청하는 것을 나타낸다.When the count value count1 of the learning counter reaches a predetermined learning threshold value, the neuron block can output a learning request signal STDP_req for requesting learning. For example, a comparison operation between the count value count3 of the STDP threshold counter (STDP_threshold counter) and the count value count1 of the learning counter (Learning Counter), which outputs the learning threshold described below, can be performed. As a result of the comparison operation, if the count value count1 of the learning counter is equal to or larger than the count value count3 of the STDP threshold counter (STDP threshold counter), a learning request STDP_req signal having a value of 1 can be output. For example, a STDP_req value of 1 indicates that a learning request is made.
학습 카운터(Learning Counter)는 reset 신호를 수신할 수 있다. 예를 들어, STDP 학습이 활성화 또는 수행되었는지를 나타내는 신호들 STDP_activate, STDP_event 및 해당 뉴런 블록이 STDP 학습 요청하였는지를 나타내는 STDP_req 신호에 기초하여 reset 신호 값이 결정될 수 있다. 예를 들어, 학습 카운터(Learning Counter)의 카운팅 값 count1이 STDP 임계 값 카운터(STDP_threshold Counter)의 카운팅 값 count3에 이르러, 학습 요청을 나타내는 STDP_req 신호 값이 1이 됨에 따라 학습 카운터(Learning Counter)는 reset되어 카운팅 값 count1이 초기 값, 예를 들어, 0으로 리셋될 수 있다.The learning counter may receive a reset signal. For example, a reset signal value may be determined based on signals STDP_activate, STDP_event indicating whether STDP learning has been activated or performed and STDP_req signal indicating whether the neuron block has requested STDP learning. For example, when the counting value count1 of the learning counter reaches the count value count3 of the STDP threshold counter (STDP_threshold counter) and the STDP_req signal value indicating the learning request becomes 1, the learning counter is reset And the count value count1 may be reset to an initial value, for example, zero.
학습 임계 값은 증가할 수 있다. 예를 들어, 학습 임계 값은 STDP 임계 값 카운터(STDP_threshold Counter)에서 출력된 카운팅 값 count3일 수 있다.The learning threshold can be increased. For example, the learning threshold value may be the count value count3 output from the STDP threshold counter (STDP_threshold Counter).
STDP 임계 값 카운터(STDP_threshold Counter)는 입력으로 초기화 신호 initializ를 획득할 수 있다. 예를 들어, 초기화 신호 initialize는 미리 결정된 초기 학습 임계 값 STDP_threshold_init일 수 있다. STDP 임계 값 카운터(STDP_threshold Counter)는 초기화 신호 initialize를 수신함에 따라, 카운팅 값 count으로 초기 학습 임계 값 STDP_threshold_init을 출력할 수 있다.The STDP threshold counter (STDP_threshold Counter) can acquire an initialization signal initializ as an input. For example, the initialization signal initialize may be a predetermined initial learning threshold STDP_threshold_init. The STDP threshold counter (STDP_threshold Counter) can output the initial learning threshold value STDP_threshold_init as the count value count as it receives the initialization signal initialize.
또한, STDP 임계 값 카운터(STDP_threshold Counter)는 제 2 카운트 트리거 신호 count_up2를 입력 받을 수 있다. STDP 임계 값 카운터(STDP_threshold Counter)의 카운팅 값 count3은 제 2 카운트 트리거 신호 count_up2가 1로 토글됨에 따라 증가할 수 있다.Also, the STDP threshold counter (STDP_threshold Counter) can receive the second count trigger signal count_up2. The count value count3 of the STDP threshold counter (STDP_threshold Counter) may increase as the second count trigger signal count_up2 toggles to one.
제 2 카운트 트리거 신호는 STDP 블록에 학습을 요청하기 위한 신호인 학습 요청 신호 STDP_req에 기초하여 결정될 수 있다. 학습 요청 신호 STDP_req가 1로 토글 됨에 따라, STDP_req신호와 동일한 값을 가지는 Count_up2 신호가 그대로 1로 토글 되고, STDP 임계 값 카운터(STDP_threshold Counter)의 카운팅 값 count3이 증가할 수 있다.The second count trigger signal can be determined based on the learning request signal STDP_req, which is a signal for requesting learning in the STDP block. As the learning request signal STDP_req is toggled to 1, the Count_up2 signal having the same value as the STDP_req signal is toggled as 1, and the count value count3 of the STDP threshold counter (STDP_threshold counter) can be increased.
STDP 임계 값 카운터(STDP_threshold Counter)의 카운팅 값 count3이 증가하는 것은 학습이 진행됨에 따라 해당 뉴런의 학습 속도가 점차 감소함을 의미할 수 있다. 이는, 특정 뉴런에게 과도한 특징(feature)의 학습이 집중되는 것을 막고, 뉴런들간 경쟁이 발생하도록 하는 효과를 가져온다. 다른 예시로서, 학습 임계 값은 미리 결정된 고정 값일 수 있다. 상술한 바와 같이 상위 계층의 뉴런 블록의 학습에 이용되는 스파이크 신호 spike_out의 출력 기준이 되는 발화 카운터(Firing Counter)가 별도로 존재하기 때문에, 상위 계층의 뉴런 블록의 학습 속도는, 현재 블록의 학습 임계 값이 증가함에 따라 발생하는 현재 뉴런 블록의 학습 속도 저하로부터 직접적으로 영향을 받지 않는다.The increase in the count value count3 of the STDP threshold counter (STDP_threshold counter) may mean that the learning rate of the neuron gradually decreases as learning progresses. This prevents the concentration of learning of excessive features on specific neurons and causes competition between neurons to occur. As another example, the learning threshold may be a predetermined fixed value. As described above, since a firing counter serving as an output reference of the spike signal spike_out used for the learning of the neuron block of the upper layer exists separately, the learning rate of the neuron block of the upper layer is determined by the learning threshold of the current block Is not directly affected by the learning speed degradation of the current neuron block that occurs as the number of neurons increases.
또한, 뉴런 블록은 누출 프로세스(leak process)를 수행할 수 있다.In addition, the neuron block can perform a leak process.
누출 이벤트 신호 Leak_event는 발화 카운터(Firing Counter) 및 학습 카운터(Learning Counter)에 입력될 수 있다. 누출 이벤트 신호 Leak_event는 시간에 따른 뉴런의 상태 변화를 구현하기 위한 것이다. 예를 들어, 발화 카운터(Firing Counter) 및 학습 카운터(Learning Counter)의 카운팅 값 count1, count2는 누출 이벤트 신호 Leak_event에 따라 미리 결정된 시간마다 감소할 수 있다.The leak event signal Leak_event can be input to the Firing Counter and the Learning Counter. Leak event signal Leak_event is to implement state change of neuron over time. For example, the counting values count1 and count2 of the Firing Counter and the Learning Counter may be decreased at predetermined time intervals according to the leakage event signal Leak_event.
마찬가지로, 임계 값 누출 이벤트 신호 TH_Leak_event가 입력됨에 따라, STDP 임계 값 카운터(STDP_threshold Counter)의 카운팅 값이 미리 결정된 시간마다 감소할 수 있다.Likewise, as the threshold leak event signal TH_Leak_event is input, the count value of the STDP threshold counter (STDP_threshold Counter) may decrease every predetermined time.
이 때, 임계값 누출 이벤트 신호 TH_Leak_event로 인한 STDP 임계 값 카운터(STDP_threshold Counter)의 카운팅 값의 감소 속도는 누출 이벤트 신호 Leak_event로 인한 카운터(Firing Counter) 및 학습 카운터(Learning Counter)의 카운팅 값의 감소 속도보다 느릴 수 있다.At this time, the decreasing rate of the count value of the STDP threshold counter (STDP threshold counter) due to the threshold leak event signal TH_Leak_event is smaller than the decreasing rate of the counter value (Firing Counter) caused by the leak event signal Leak_event and the count value of the learning counter Can be slower.
상술한 바와 같이 STDP_active_addr 신호, STDP_RD_addr 신호, STDP_WR_en 신호, STDP_WR_data 신호는, STDP 학습 블록으로부터 수신된 입력 신호이다.As described above, the STDP_active_addr signal, the STDP_RD_addr signal, the STDP_WR_en signal, and the STDP_WR_data signal are input signals received from the STDP learning block.
예를 들어, 상술한 입력 신호들은, STDP 학습 블록이 해당 뉴런 블록 내에 시냅스 가중치 메모리(Synaptic Weight Memory)에 접근하여, 가중치 값 읽거나 변경하기 위해 이용될 수 있다.For example, the input signals described above can be used to allow the STDP learning block to access the Synaptic Weight Memory within the neuron block and read or change the weight value.
STDP 활성 뉴런 주소 신호 STDP_active_addr는 STDP 학습 블록으로부터 수신된 입력 신호로서, STDP 학습 대상 뉴런의 주소 정보를 포함한다. STDP 활성 뉴런 주소 신호 STDP_active_addr의 값과 해당 뉴런 블록의 고유 주소 정보를 포함하는 뉴런 주소 정보 신호 Neuron_addr의 값간의 비교 연산을 통해 두 신호의 값이 동일한 경우, STDP 학습 블록이 해당 뉴런 블록 내에 시냅스 가중치 메모리에 접근하기 위한 전제 조건이 충족될 수 있다.The STDP activated neuron address signal STDP_active_addr is an input signal received from the STDP learning block and contains address information of the STDP learning target neuron. When the values of the two signals are equal to each other through a comparison operation between the value of the STDP activated neuron address signal STDP_active_addr and the value of the neuron address information signal Neuron_addr including the unique address information of the neuron block, the STDP learning block stores the synapse weight memory Can be met.
STDP 학습 블록은 학습 프로세스를 수행하기 위하여, 시냅스 가중치 메모리에 저장된 복수의 가중치 값들 각각에 접근할 필요가 있다. 이 때, STDP 요청 시냅스 주소 신호 STDP_RD_addr는, STDP 학습 블록이 특정 셀에 저장된 시냅스 가중치 값을 읽거나 변경하기 위해, 해당 셀에 접근하기 위한 셀 주소 정보를 나타낸다. 용어 시냅스 주소 정보는 셀 주소 정보를 포함한다.The STDP learning block needs to access each of the plurality of weight values stored in the synaptic weight memory to perform the learning process. At this time, the STDP request synapse address signal STDP_RD_addr indicates cell address information for accessing the corresponding cell in order to read or change the synapse weight value stored in the specific cell by the STDP learning block. The term synapse address information includes cell address information.
시냅스 가중치 메모리는 STDP_RD_addr은 STDP 학습 블록으로부터 수신될 수 있다. 쓰기 인에이블 신호 STDP_WR_en가 비활성 값, 예를 들어, 0을 갖는 경우 시냅스 가중치 메모리는 STDP 요청 시냅스 주소 신호 STDP_RD_addr 값에 대응하는 셀에 저장된 시냅스의 가중치 값이 STDP_RD_data로 출력된다. 출력된 시냅스 가중치 값은 STDP 읽기 신호 STDP_RD_data를 통해 STDP 학습 블록에 전송되어 학습에 이용된다.The synapse weight memory STDP_RD_addr can be received from the STDP learning block. When the write enable signal STDP_WR_en has an inactive value, for example, 0, the synapse weight memory outputs the weight value of the synapse stored in the cell corresponding to the STDP request synapse address signal STDP_RD_addr value as STDP_RD_data. The output synaptic weight value is transmitted to the STDP learning block through the STDP read signal STDP_RD_data and used for learning.
시냅스 가중치 메모리에 입력되는 STDP_WR_addr은 쓰기용 시냅스 주소 신호이며 STDP 요청 시냅스 주소 신호 STDP_RD_addr에 기초하여 결정된다. 이 때, 쓰기용 시냅스 주소 신호 STDP_WR_addr는, 시냅스 가중치 메모리에 쓰기 기능을 활성화 하기 위하여 STDP 학습 블록으로부터 수신된 STDP 쓰기 인에이블 신호 STDP_WR_en가 1인 경우에만 유효한 주소 값을 갖는다.The STDP_WR_addr input to the synapse weight memory is a write synapse address signal and is determined based on the STDP request synapse address signal STDP_RD_addr. At this time, the write synapse address signal STDP_WR_addr has a valid address value only when the STDP write enable signal STDP_WR_en received from the STDP learning block is 1 to activate the write function to the synapse weight memory.
쓰기 인에이블 신호 STDP_WR_en가 활성 값을 갖는 경우 쓰기용 시냅스 주소 신호 STDP_WR_addr 값에 대응하는 셀에 저장된 시냅스의 가중치 값이 입력된 STDP 쓰기 신호 STDP_WR_data 값으로 설정(변경)된다.When the write enable signal STDP_WR_en has an active value, the weight value of the synapse stored in the cell corresponding to the write synapse address signal STDP_WR_addr value is set (changed) to the inputted STDP write signal STDP_WR_data value.
상술한 읽기 및 쓰기 프로세스를 이용하여, STDP 학습 블록은 학습 대상인 뉴런 블록에 접근할 수 있고, 학습 대상인 뉴런 블록 내에 특정 시냅스 가중치 메모리(Synaptic Weight Memory)에 접근하여 시냅스 가중치 값을 읽거나, 시냅스 가중치 값을 설정할 수 있다.Using the above-described read and write process, the STDP learning block can access the neuron block to be learned, access the synaptic weight memory within the neuron block to be learned, read the synapse weight value, You can set the value.
도 13은 일 실시 예에 따른 학습 회로를 구현하기 위한 STDP 학습 블록 스킴을 도시한 도면이다.13 is a diagram illustrating an STDP learning block scheme for implementing a learning circuit according to an embodiment.
도 13을 참고하면, STDP 학습 블록은 입력 이벤트를 저장하는 원형 버퍼(Circular Buffer)를 포함할 수 있다.Referring to FIG. 13, the STDP learning block may include a circular buffer for storing input events.
또한, STDP 학습 블록은 STDP 학습 블록은 장기 강화 학습을 수행하는 강화 학습 프로세서(LTP Processor), 약화 학습을 수행하는 약화 학습 프로세서(LTD Processor)를 포함할 수 있다.In the STDP learning block, the STDP learning block may include an enhanced learning processor (LTP processor) for performing long-term reinforcement learning, and a weakened learning processor (LTD Processor) for performing weakening learning.
또한, STDP 학습 블록은 STDP 학습의 요청에 따른 학습 프로세스의 개시, 강화 학습의 개시 및 종료, 약화 학습의 개시 및 종료를 관리 하는 메인 프로세서(Main Processor)를 포함할 수 있다.In addition, the STDP learning block may include a main processor that manages the start of the learning process according to the request of the STDP learning, the start and end of the reinforcement learning, and the start and end of the weakened learning.
복수의 뉴런 블록들 중 적어도 하나의 뉴런 블록이 학습 요청 신호를 송신함에 따라, STDP 학습 블록은 활성 값을 갖는 학습 요청 수신 신호 STDP_addr_v를 수신할 수 있다. 또한, 학습을 요청한 뉴런 블록의 주소를 나타내는 학습 요청 뉴런 주소 신호 STDP_req_addr를 수신할 수 있다. 예를 들어, 학습 요청 뉴런 주소 신호 STDP_req_addr는 8 비트 신호로서 최대 256 개의 뉴런 블록을 식별할 수 있다. 즉, 하나의 STDP 학습 블록이 256 개의 뉴런 블록에 대한 학습 프로세스를 수행할 수 있다.As at least one neuron block of the plurality of neuron blocks transmits the learning request signal, the STDP learning block can receive the learning request reception signal STDP_addr_v having the active value. Also, it can receive the learning request neuron address signal STDP_req_addr indicating the address of the neuron block that requested the learning. For example, the learning request neuron address signal STDP_req_addr can identify up to 256 neuron blocks as 8-bit signals. That is, one STDP learning block can perform a learning process on 256 neuron blocks.
학습 요청 수신 신호 STDP_addr_v가 활성 값을 갖고, 하기에 상술하는 바와 같이 메인 프로세서(Main Processor)로부터 학습 프로세서를 개시하기 위한 준비가 완료 되었음을 나타내는 준비 완료 신호 core_rdy 신호를 수신함에 따라, 학습 대상 뉴런 블록에 접근하기 위한 출력 신호로서, 학습 대상 뉴런 블록의 주소 정보를 나타내는 STDP 활성 뉴런 주소 신호 STDP_active_addr가 학습 요청 뉴런 주소 신호 STDP_req_addr에 대응하는 값을 가질 수 있다.As the learning request reception signal STDP_addr_v has an active value and receives the ready signal core_rdy signal indicating that the preparation for starting the learning processor from the main processor is completed as described below, The STDP active neuron address signal STDP_active_addr indicating the address information of the learning target neuron block may have a value corresponding to the learning request neuron address signal STDP_req_addr.
이후 STDP 학습 블록은 STDP 활성 뉴런 주소 신호 STDP_active_addr에 대응하는 뉴런 블록에 접근할 수 있고, 해당 뉴런 블록에 대한 학습 프로세스를 수행한다.Then, the STDP learning block can access the neuron block corresponding to the STDP activated neuron address signal STDP_active_addr, and performs a learning process on the neuron block.
학습 프로세스를 개시함에 따라, 메인 프로세서(Main Processor)는 강화학습 프로세서(LTP Processor)에 강화 학습 개시 신호 start를 인가할 수 있다. 이후 강화 학습 프로세서(LTP Processor)는 강화 학습을 수행하고 강화 학습이 완료되면 강화 학습 완료 신호 end를 메인 프로세서(Main Processor)에게 인가할 수 있다.As the learning process is started, the main processor can apply the reinforcement learning start signal to the reinforcement learning processor (LTP Processor). The reinforcement learning processor (LTP processor) then performs the reinforcement learning, and when the reinforcement learning is completed, the reinforcement learning completion signal end can be applied to the main processor.
강화 학습 프로세서(LTP Processor)로부터 강화 학습 완료 신호 end를 수신한 메인 프로세서(Main Processor)는 순차적으로 약화 학습 프로세서(LTD Processor)에게 약화 학습 개시 신호 start를 인가할 수 있다. 이후 약화 학습 프로세서(LTD Processor)는 약화 학습을 수행하고 약화 학습이 완료되면 약화 학습 완료 신호 end를 메인 프로세서(Main Processor)에게 인가할 수 있다.The main processor receiving the reinforcement learning completion signal end from the reinforcement learning processor (LTP processor) can sequentially apply the weakening learning start signal to the weakening learning processor (LTD Processor). Then, the weakened learning processor (LTD Processor) performs the weakened learning and when the weakened learning is completed, the weakened learning completion signal end can be applied to the main processor.
메인 프로세서는 약화 학습 완료 신호를 수신함에 따라, 해당 뉴런 블록에 대한 학습을 완료할 수 있다.Upon receipt of the weakened learning completion signal, the main processor can complete learning of the neuron block.
강화 학습 프로세서(LTP Processor)가 강화 학습을 수행하는 동안, 메인 프로세서(Main Processor)는, 강화 학습과 관련된 출력 값 및 약화 학습과 관련된 출력 값 중 강화 학습과 관련된 출력 값이 선택적으로 학습 대상 뉴런 블록에 전송되도록 할 수 있다. 예를 들어, 강화 학습과 관련된 출력 값 및 약화 학습과 관련된 출력 값들을 선택적으로 출력하는 멀티플렉서(LTP/LTD)가 강화 학습과 관련된 출력 값을 출력하도록 하기 위해, 활성 값을 가지는 강화 학습 활성 신호 LTP_active를 출력하여, 멀티플렉서(LTP/LTD)에 인가할 수 있다. 예를 들어, 강화 학습 활성 신호 LTP_active가 활성 값인 경우 멀티플렉서(LTP/LTD)가 강화 학습과 관련된 출력 값을 출력하고, 비활성 값인 경우 약화 학습과 관련된 출력 값을 출력한다.While the enhanced learning processor (LTP Processor) performs the reinforcement learning, the main processor is configured such that the output value associated with reinforcement learning, among the output values associated with reinforcement learning and output values associated with the weakening learning, As shown in FIG. For example, in order for the multiplexer (LTP / LTD), which selectively outputs output values related to reinforcement learning and output values associated with weakening learning, to output output values related to reinforcement learning, the reinforcement learning activation signal LTP_active And can be applied to the multiplexer LTP / LTD. For example, if the reinforcement learning activation signal LTP_active is an active value, the multiplexer (LTP / LTD) outputs an output value associated with reinforcement learning and outputs an output value associated with the weakening learning if the reinforcement learning activation signal LTP_active is an inactive value.
메인 프로세서로부터 강화 학습 개시 신호 start를 수신함에 따라 강화 학습 프로세서는 강화 학습을 개시한다.Upon receiving the reinforcement learning start signal start from the main processor, the reinforcement learning processor starts reinforcement learning.
강화 학습은 입력 이벤트 정보를 저장하는 원형 버퍼에 저장된 데이터에 기초하여 수행된다. 프리 이벤트 정보는 예를 들어 학습 대상 블록에 인가되는 입력 신호들에 대응하는 시냅스 주소 정보, 또는 입력 단자 주소 정보를 나타낼 수 있다.The reinforcement learning is performed based on the data stored in the circular buffer storing the input event information. The pre-event information may indicate, for example, synapse address information or input terminal address information corresponding to input signals applied to a learning target block.
원형 버퍼는 학습 대상 뉴런을 포함하는 적어도 하나의 뉴런 블록에 인가되는 입력 신호 AERin_v를 수신할 때마다 대응하는 시냅스 주소 정보를 포함하는 AERin 신호를 순차적으로 저장한다. 원형 버퍼는 총 1024x10 bit의 용량을 가질 수 있다. 즉, 원형 버퍼는 최근 발생한 1024 개의 입력 신호에 대응하는 10 bit의 시냅스 주소 정보를 저장할 수 있다. 이 때, 시냅스 주소 정보 뉴런 블록에 입력 신호를 전송하는 복수의 입력 신호 단자를 식별할 수 있는 주소일 수 있다. 또는 시냅스 주소 정보는 입력 신호인 스파이크 신호를 전송한 시냅스 전 뉴런 블록의 주소 정보일 수 있다. 입력 단자의 주소 정보 또는 시냅스 전 뉴런 블록의 주소 정보와 입력 신호를 입력 받는 대상 뉴런 블록의 주소 정보의 조합은 시냅스 주소 정보를 나타낼 수 있다. AERin_v로서 활성 값이 수신 됨에 따라, 원형 버퍼에 인가되는 원형 버퍼 쓰기 인에이블 신호 wr_en는 활성 값을 가질 수 있다.The circular buffer sequentially stores an AERin signal including corresponding synapse address information each time it receives an input signal AERin_v applied to at least one neuron block including learning target neurons. The circular buffer can have a total capacity of 1024x10 bits. That is, the circular buffer can store 10 bits of synapse address information corresponding to 1024 input signals that have recently occurred. At this time, it may be an address capable of identifying a plurality of input signal terminals transmitting an input signal to the synapse address information neuron block. Or the synapse address information may be the address information of the synapse preneuron block that transmitted the spike signal, which is the input signal. The combination of the address information of the input terminal or the address information of the synapse precursor block and the address information of the target neuron block receiving the input signal may represent the synapse address information. As the active value is received as AERin_v, the circular buffer write enable signal wr_en applied to the circular buffer may have an active value.
강화 학습 프로세서는 원형 버퍼에 저장된 시냅스 주소 정보들 중 최근에 저장된 시냅스 주소 정보에 대응하는 시냅스 가중치 값을 미리 결정된 강화 확률 결정 인자 LTP probability에 기초하여 활성 값으로 설정할 수 있다.The enhanced learning processor may set the synapse weight value corresponding to the recently stored synapse address information among the synapse address information stored in the circular buffer to an active value based on the predetermined enhancement probability determination factor LTP probability.
이 때, 강화 학습 프로세서는 원형 버퍼에 저장된 시냅스 주소 정보들에 대응하는 입력 이벤트들 중 최근에 발생한 미리 결정된 개수의 입력 이벤트들을 이용하여 강화 학습을 수행할 수 있다. 미리 결정된 개수는 입력 값인 강화 학습 개수 number of potentiation일 수 있다. 강화 학습 프로세서는 원형 버퍼에 저장된 각각의 입력 이벤트에 기초하여 강화 학습을 수행할 때마다 강화 학습 카운팅 트리거 신호 cnt_up 값을 인가하여 강화 학습 카운터 카운팅 값을 1씩 증가(LTP_cnt+1) 시킬 수 있다. 증가된 강화 학습 카운팅 값과 강화 학습 개수 number of potentiation간에 비교 연산이 수행되어 동일한 경우, 강화 학습 프로세서는, 완료를 나타내는 값을 가지는, 강화 학습 완료 신호 LTP_done이 수신할 수 있다. 강화 학습 완료 신호 LTP_done는 원형 버퍼로부터 출력되는 원형 버퍼에 저장된 프리 이벤트가 없음을 나타내는 신호 CB_empty에 의해서도 완료를 나타내는 값을 가질 수 있다. 즉, 강화 학습 프로세서는 원형 버퍼가 비워졌거나 강화 학습이 수행된 프리 이벤트의 개수가 강화 학습 개수 number of potentiation에 이르면, 강화 학습을 종료한다. At this time, the reinforcement learning processor can perform reinforcement learning using a predetermined number of input events occurring recently among input events corresponding to synapse address information stored in the circular buffer. The predetermined number may be the number of reinforcement learning number of the input value. The reinforcement learning processor may increase the reinforcement learning counter count value by 1 (LTP_cnt + 1) by applying the reinforcement learning count trigger signal cnt_up value every time reinforcement learning is performed based on each input event stored in the circular buffer. If a comparison operation is performed between the increased reinforcement learning count value and the reinforcement learning number number of potentiation and is the same, the reinforcement learning processor can receive the reinforcement learning completion signal LTP_done having a value indicating completion. The enhanced learning completion signal LTP_done may have a value indicating completion even by the signal CB_empty indicating that there is no pre-event stored in the circular buffer output from the circular buffer. That is, the reinforcement learning processor ends the reinforcement learning when the circular buffer is empty or when the number of pre-events for which reinforcement learning has been performed reaches the number of reinforcement learning number of potencies.
강화 학습 프로세서는 원형 버퍼 읽기 인에이블 신호 CB_rd_en를 원형 버퍼에 인가할 수 있다. 이에 따라, 원형 버퍼는 현재 순서의 입력 이벤트에 대응하는 시냅스 주소 정보를 원형 버퍼 출력 신호 CB_dout로 출력할 수 있다. 원형 버퍼 출력 신호 CB_dout는, 중간 신호 rd_addr로서, 멀티플렉서(LTP/LTD)를 통해 출력된다.The enhanced learning processor may apply a circular buffer read enable signal CB_rd_en to the circular buffer. Accordingly, the circular buffer can output the synaptic address information corresponding to the input event of the current sequence to the circular buffer output signal CB_dout. The circular buffer output signal CB_dout is output as an intermediate signal rd_addr through a multiplexer (LTP / LTD).
또한, 강화 학습 프로세서는 강화 학습 쓰기 인에이블 신호 LTP_wr_en을 출력할 수 있다. 강화 학습이 진행 중이므로 LTP_active에 따라, LTP/LTD 멀티플렉서의 출력 신호로서, 강화 학습을 위한 중간 신호 rd_addr 및 강화 학습 쓰기 인에이블 신호 LTP_wr_en 신호가 출력될 수 있다. 멀리 플렉서의 출력 값에 따라, STDP 학습 블록은 STDP 요청 시냅스 주소 신호 STDP_RD_addr로서 중간 신호 rd_addr를 출력하고, 쓰기 인에이블 신호 STDP_WR_en로서 강화 학습 쓰기 인에이블 신호 LTP_wr_en를 출력할 수 있다.Further, the reinforcement learning processor can output the reinforcement learning write enable signal LTP_wr_en. Since the reinforcement learning is in progress, the intermediate signal rd_addr for reinforcement learning and the reinforcement learning write enable signal LTP_wr_en signal can be output as an output signal of the LTP / LTD multiplexer in accordance with LTP_active. Depending on the output value of the far-away plexer, the STDP learning block may output the intermediate signal rd_addr as the STDP request synapse address signal STDP_RD_addr and output the reinforcement learning write enable signal LTP_wr_en as the write enable signal STDP_WR_en.
이에 따라, 학습 대상 뉴런 블록으로부터 STDP 요청 시냅스 주소 신호 STDP_RD_addr에 대응하는 시냅스 가중치 메모리 내의 셀에 저장된 시냅스 가중치 값을 STDP_RD_data 신호를 통해 획득할 수 있다. 읽기 프로세스 중에 강화 학습 프로세서는 쓰기 인에이블 신호 STDP_WR_en 값을 비활성 값으로 출력할 수 있다. 다시 말해, 읽기 프로세스 중에 강화 학습 프로세서는 쓰기 인에이블 신호 STDP_WR_en을 비활성화시킬 수 있다.Accordingly, the synapse weight value stored in the cell in the synapse weight memory corresponding to the STDP request synapse address signal STDP_RD_addr from the learning target neuron block can be obtained through the STDP_RD_data signal. During the read process, the enhanced learning processor can output the write enable signal STDP_WR_en value as an inactive value. In other words, during the read process, the enhanced learning processor can disable the write enable signal STDP_WR_en.
또한, 랜덤 상수 생성기에 의해 생성된 랜덤 상수와 미리 결정된 강화 확률 결정 인자 LTP probability간의 비교 연산이 수행되어, 생성된 랜덤 상수가 강화 확률 결정 인자 LTP probability 이하인 경우, 시냅스 가중치를 강화할 수 있다. 시냅스 가중치를 강화 한다는 STDP 요청 시냅스 주소 신호 STDP_RD_Addr에 대응하는 시냅스 가중치 값을 1로 설정함을 나타낸다. 즉, STDP 학습 블록은 학습 대상 뉴런에 STDP 쓰기 데이터 신호 STDP_WR_data 값으로서 1을 출력한다. STDP 쓰기 데이터 신호 STDP_WR_data 값은 학습 대상 블록에 전송되고, 학습 대상 블록 대상의 시냅스 가중치 메모리 내에 대응하는 셀에 저장된 시냅스 가중치 값이 1로 설정된다. 쓰기 프로세스를 수행하는 동안, 강화 학습 프로세서는 쓰기 인에이블 신호 LTP_wr_en 로서 1을 출력할 수 있다. 이에 따라, STDP 학습 블록은 STDP 쓰기 인에이블 신호 STDP_WR_en로서 1을 출력할 수 있다.Also, a comparison operation between the random constant generated by the random constant generator and the predetermined enhancement probability determining factor LTP probability is performed so that the synapse weight can be enhanced if the generated random constant is equal to or less than the enhancement probability determining factor LTP probability. Indicates that the synapse weight value corresponding to the STDP request synapse address signal STDP_RD_Addr, which intensifies the synapse weight, is set to one. That is, the STDP
강화 학습 이후 약화 학습 프로세서는 대상 뉴런 블록에 대해 약화 학습을 수행할 수 있다.After reinforcement learning, the weakened learning processor may perform weak learning on the target neuron block.
약화 학습 프로세서는 학습 대상 뉴런 블록 내에 시냅스 가중치 메모리에 시냅스 가중치 값을 저장하는 모든 셀들 각각에 대해 순차적으로 약화 학습 프로세스를 수행할 수 있다. 따라서, 약화 학습 프로세서는 시냅스 가중치 메모리 내에 각각의 셀에 순차적으로 접근하기 위해, 셀의 주소 값 결정에 이용되는 rd_counter의 출력 값을 순차적으로 증가시킨다. 이에 따라, 순차적으로 증가되는 rd_counter 출력 값에 따라, STDP 요청 시냅스 주소 신호 STDP_RD_addr 가 순차적으로 변경되어 출력된다. 따라서, STDP 학습 블록은 학습 대상 뉴런의 시냅스 가중치 메모리 내에 모든 셀들 각각에 접근할 수 있다.The weakened learning processor may sequentially perform the weakened learning process for each of all the cells storing the synaptic weight value in the synapse weight memory within the learning target neuron block. Thus, the weakened learning processor sequentially increases the output value of the rd_counter used for determining the address value of the cell, in order to sequentially access each cell in the synapse weight memory. Accordingly, the STDP request synapse address signal STDP_RD_addr is sequentially changed and output in accordance with the sequentially increased rd_counter output value. Thus, the STDP learning block can access each of all the cells in the synaptic weight memory of the learning neuron.
우선 STDP 학습 블록은 학습 대상 뉴런 블록 내에 시냅스 가중치 메모리 의 모든 셀들 각각 저장된 시냅스 가중치 값 각각을 순차적으로 입력 받고, 입력된 가중치 값을 합산기 증가 신호 sum_cnt_up에 인가할 수 있다. 따라서, 가중치 합산 카운터(Cnt_Sum of weight)의 출력 값은 시냅스 가중치 메모리에 저장된 시냅스 가중치 값의 총 합일 수 있다.First, the STDP learning block sequentially receives each of the synapse weight values stored in all the cells of the synapse weight memory in the learning target neuron block, and applies the input weight value to the sum signal increase_cnt_up. Therefore, the output value of the weight sum counter (Cnt_Sum of weight) may be the total sum of the synapse weight values stored in the synapse weight memory.
또한, STDP 학습 블록은 미리 결정된 예측 시냅스 가중치 합 Number of active을 입력 받을 수 있다. 또한, STDP 학습 블록은 예측 시냅스 가중치 합 Number of Active에서 시냅스 가중치 값의 총 합, 즉, 가중치 합산 카운터(Cnt_Sum of weight의 출력 값간의 차이를 산출하고, 산출된 값에 2^10을 곱한 뒤, 이를, 시냅스 가중치 값의 총 합으로 나누어 약화 확률 결정 인자 LTD Probability를 산출할 수 있다. Also, the STDP learning block can receive a predetermined number of predictive synapse weights, Number of active. Also, the STDP learning block calculates the difference between the total sum of the synaptic weight values, i.e., the output value of the weight sum counter (Cnt_Sum of weight) in the predictive synapse weight sum Number of Active, multiplies the calculated value by 2 ^ 10, This can be calculated by dividing by the total sum of the synaptic weight values, the degradation probability determination factor LTD Probability.
산출된 약화 확률 결정 인자 LTD Probability를 이용하여, 약화 학습 프로세서는 학습 대상 뉴런 블록 내에 시냅스 가중치 메모리의 모든 셀들 각각에 대하여 확률적 약화 학습을 수행할 수 있다.Using the calculated weakness probability factor LTD Probability, the weakened learning processor can perform stochastic weakening learning for each cell of the synaptic weight memory within the learning target neuron block.
약화 학습 프로세서는 시냅스 가중치 메모리의 모든 셀들 각각에 대응하는 주소 정보를 순차적으로 STDP_RD_addr로 출력하여 해당 셀의 시냅스 가중치 값을 획득한 뒤, 산출된 약화 확률 결정 인자 LTD Probability에 기초하여 확률적으로 해당 셀의 시냅스 가중치 값을 0으로 변경할 수 있다. 구체적으로, 랜덤 상수 생성기에 의해 생성된 랜덤 상수와 약화 확률 결정 인자 LTD Probability간의 비교 연산이 수행된다. 만약, 생성된 랜덤 상수가 약화 확률 결정 인자 LTD Probability보다 큰 경우에는 해당 셀의 가중치 갑이 0으로 변경된다. The weakening learning processor sequentially outputs the address information corresponding to each cell of the synapse weight memory as STDP_RD_addr to acquire the synapse weight value of the corresponding cell, and based on the calculated weakening probability determination factor LTD Probability, Can be changed to zero. Specifically, a comparison operation between the random constant generated by the random constant generator and the weakening probability determination factor LTD Probability is performed. If the generated random constant is greater than the weakening probability determination factor LTD Probability, the weight value of the corresponding cell is changed to zero.
예를 들어, 생성된 랜덤 상수가 약화 확률 결정 인자 LTD Probability보다 큰 경우, STDP 쓰기 데이터 신호 STDP_WR_data에 0이 인가되어, 현재 STDP 요청 시냅스 주소 신호 STDP_RD_addr에 대응하는 셀의 가중치 값이 0으로 설정할 수 있다. 시냅스 가중치 메모리 내에 모든 셀들 각각에 대하여 상술한 약화 학습이 수행된다. 다만, 랜덤 상수는 셀들 각각에 대하여 별도로 생성된 값이 이용될 수 있으므로, 동일 시냅틱 메모리 내에 셀들간에, 약화 학습 수행 여부가 다를 수 있다.For example, when the generated random constant is larger than the weakening probability determining factor LTD Probability, 0 is applied to the STDP write data signal STDP_WR_data, and the weight value of the cell corresponding to the current STDP request synapse address signal STDP_RD_addr can be set to 0 . The weakening learning described above is performed for each of all the cells in the synapse weight memory. However, the random constant may be a value generated separately for each of the cells, so that the weakening learning may be performed between the cells in the same Synaptic Memory.
도 14는 일 실시 예에 따른 복수의 뉴런 회로를 포함하는 단일 코어 회로를 구현하기 위한 단일 코어 블록 스킴을 도시한 도면이다.14 is a diagram illustrating a single core block scheme for implementing a single core circuit including a plurality of neuron circuits according to one embodiment.
도 15는 복수의 단일 코어 블록들을 포함하는 멀티 코어 블록을 도시한 도면이다.15 is a diagram showing a multicore block including a plurality of single core blocks.
단일 코어 블록은 복수의 뉴런 블록들(Neuron0, Neuron1 Neuron2, ? Neuron255) 및 단일 STDP 학습 블록을 포함할 수 있다. 도 14에는 단일 코어 블록이 255 개의 뉴런 블록을 포함하는 것으로 도시 되어 있으나, 뉴런 블록의 개수는 이에 제한되지 아니한다.A single core block may include a plurality of neuron blocks (Neuron0, Neuron1 Neuron2, Neuron255) and a single STDP learning block. In FIG. 14, a single core block is shown to include 255 neuron blocks, but the number of neuron blocks is not limited thereto.
단일 코어 블록은 AER_in 신호를 수신할 수 있다. AER_in 신호는, 예를 들어, 단일 코어 블록에 포함된 적어도 하나의 뉴런 블록의 시냅스 전 뉴런 블록으로부터 수신된 신호일 수 있다. AER_in 신호는 예를 들어, 적어도 하나의 뉴런 블록의 시냅스 전 뉴런 블록으로부터 출력된 스파이크 신호를 나타낼 수 있다.A single core block can receive the AER_in signal. The AER_in signal may be, for example, a signal received from a synaptic neuron block of at least one neuron block contained in a single core block. The AER_in signal may, for example, represent a spike signal output from a synaptic neuron block of at least one neuron block.
AER 필터(AER Filter)는 AERin 신호 중 단일 코어 블록 내의 뉴런 블록들과 무관한 신호를 필터링 할 수 있다. AER 필터(AER Filter)는 인공신경망의 아키텍쳐(architecture)에 따라 구현될 수 있다.The AER filter is capable of filtering signals that are not related to neuron blocks within a single core block of the AERin signal. The AER filter can be implemented according to the architecture of the artificial neural network.
필터링된 입력 신호 AERin은 단일 코어 블록에 포함된 복수의 뉴런들 중 적어도 하나의 뉴런 블록에 입력될 수 있다. AERin 신호는, 예를 들어, 도 7의 입력 신호(70)과 동일할 수 있고, 이후 각각의 뉴런 블록에 수행되는 동작은 도 12에서 설명한 내용이 적용될 수 있다.The filtered input signal AERin may be input to at least one neuron block of a plurality of neurons included in a single core block. The AERin signal may be the same as, for example, the input signal 70 of FIG. 7, and the operation described in FIG. 12 may be applied to the operation performed on each neuron block.
단일 코어 회로에서 단일 STDP 학습 블록이 복수의 뉴런들 모두의 학습 프로세스를 수행하므로 복수의 뉴런들간의 신호 충돌을 방지하기 위한 방안이 요구된다.In a single core circuit, a single STDP learning block performs a learning process for all of a plurality of neurons, so a method for preventing signal collision between a plurality of neurons is required.
한편, 단일 코어 회로에서 복수의 뉴런들이 공유하는 입력은 공통 인자로서 코어 회로 단에 입력될 수 있다.On the other hand, the inputs shared by a plurality of neurons in a single core circuit can be input to the core circuit stage as a common factor.
예를 들어, 도 12을 참조하여 설명하며, 복수의 블록의 누출 이벤트 발생 속도는 공통될 수 있다. 따라서, STDP 임계 값 카운터에 발생하는 누출 속도를 지정하는 인자 Threshold Leak_rate 및 발화 카운터 및 학습 카운터에 발생하는 누출 속도를 지정하는 인자 Neuron Leak_rate는 공통 인자로 코어 단에서 입력될 수 있다. 또한 누출 이벤트는 다른 프로세스에 비해 느린 속도로 구현될 필요가 있으므로, 코어 회로는 누출 이벤트 수행 여부를 결정하기 위한, 별도의 타이머인 Leak_timer를 포함할 수 있다.For example, with reference to FIG. 12, the leak event occurrence rates of a plurality of blocks can be common. Thus, the factor Threshold Leak_rate, which specifies the leak rate that occurs in the STDP threshold counter, and the factor Neuron Leak_rate, which specifies the leak rate that occurs in the ignition counter and the learning counter, can be entered at the core end as a common factor. Also, since the leak event needs to be implemented at a slower rate than other processes, the core circuit may include a separate timer Leak_timer for determining whether to perform a leak event.
STDP 임계 값 카운터(STDP_threshold Counter)의 초기 임계 값을 나타내는 STDP_threshold_init, 및 발화 임계 값을 나타내는 spike_threshold도 코어 회로에 공통 인자로 입력될 수 있다.STDP_threshold_init indicating the initial threshold value of the STDP threshold counter (STDP_threshold counter), and spike_threshold indicating the ignition threshold value may also be input as common factors in the core circuit.
또한, 억제 기작을 활성화 할지 여부를 나타내는 Inhibition_active가 공통 인자로 입력될 수 있다. Inhibition_active가 1 값을 갖는 경우 억제 기작이 활성화 된다. 만약 동일 코어 내에 복수의 뉴런 블록들 중 적어도 하나의 뉴런 블록이 스파이크 신호를 출력하는 경우 억제 기작 신호 inh_event가 1로 복수의 뉴런들 각각에 입력되어, 복수의 뉴런들의 발화 카운터가 모두 리셋될 수 있다.Inhibition_active, which indicates whether or not to activate the inhibition mechanism, may be input as a common factor. When inhibition_active has a value of 1, the inhibition mechanism is activated. If at least one neuron block of a plurality of neuron blocks in the same core outputs a spike signal, the inhibition mechanism signal inh_event may be input to each of the plurality of neurons as 1, so that all of the plurality of neuron's ignition counters can be reset .
한편 일반 억제 인자 General_inhibiton는 도 15에서 나타나는 멀티 코어 블록에서 동일 멀티 코어 내에 다른 코어들에 포함된 복수의 뉴런들 중 적어도 하나의 뉴런으로부터 스파이크 신호가 출력된 경우, 현재 코어에 포함된 모든 뉴런들에 대해 억제 기작을 수행되도록 하기 위해 이용된다.In general inhibition factor General_inhibiton, when a spike signal is output from at least one neuron among a plurality of neurons included in other cores in the same multicore in the multicore block shown in FIG. 15, all the neurons included in the current core Is used to make the inhibition mechanism perform.
한편 복수의 뉴런들간에 서로 구별되어야 하는 신호들은 복수의 뉴런들 각각으로부터 출력되는 스파이크 신호(spike_out) 및 학습 요청 신호(STDP_req)이다.On the other hand, signals to be distinguished from each other among a plurality of neurons are a spike signal (spike_out) and a learning request signal (STDP_req) output from each of a plurality of neurons.
스파이크 신호 출력 변환 부(Spike2AER Unit)는 복수의 뉴런들 각각으로부터 수신된 스파이크 신호(spike_out)에 기초하여, 스파이크 신호를 출력한 뉴런 블록을 식별하는 출력 AER_out(8bit)을 출력할 수 있다. 또한, 스파이크 신호 출력 변환 부(Spike2AER Unit)는 적어도 하나의 뉴런 블록이 스파이크 신호를 출력했음을 나타내는 신호 AER_out_v를 출력할 수 있다.The spike signal output conversion unit (Spike 2AER Unit) may output an output AER_out (8 bits) identifying a neuron block outputting the spike signal, based on the spike signal (spike_out) received from each of the plurality of neurons. In addition, the spike signal output conversion unit (Spike 2AER Unit) can output the signal AER_out_v indicating that at least one neuron block has outputted the spike signal.
또한, STDP 학습 아르바이터(STDP arbiter UNIT)는 복수의 뉴런들 각각으로부터 수신된 학습 요청 신호(STDP_req)에 기초하여, 학습 요청 신호를 출력한 뉴런 블록을 식별하는 신호인 학습 요청 뉴런 주소 신호 STDP_req_addr를 출력할 수 있다. 또한, 스파이크 신호 출력 변환 부(Spike2AER Unit)는 적어도 하나의 뉴런 블록이 학습 요청 신호(STDP_req)를 출력했음을 나타내는 신호 STDP_event_out를 출력할 수 있다.Also, the STDP arbiter unit (STDP arbiter UNIT) generates a learning request neuron address signal STDP_req_addr, which is a signal for identifying a neuron block outputting the learning request signal, based on the learning request signal STDP_req received from each of the plurality of neurons Can be output. Also, the spike signal output conversion unit (Spike 2AER Unit) may output a signal STDP_event_out indicating that at least one neuron block has output the learning request signal (STDP_req).
동일 코어 블록 내에 적어도 하나의 뉴런 블록이 학습 요청 신호(STDP_req)를 출력한 경우, STDP_envent 신호로 1이 입력되어, 동일 코어 블록 내에 모든 뉴런 블록들의 학습 카운터가 리셋된다. 한편 도 15에서 나타나는 멀티 코어 블록에서 동일 멀티 코어 내에 다른 코어들에 포함된 복수의 뉴런들 중 적어도 하나의 뉴런으로부터 학습 요청 신호가 출력된 경우, 현재 코어에 포함된 모든 뉴런 블록들의 학습 카운터가 리셋되도록 하기 위해 이용된다.When at least one neuron block outputs the learning request signal STDP_req in the same core block, 1 is input as the STDP_envent signal, and the learning counter of all neuron blocks in the same core block is reset. On the other hand, in the multi-core block shown in FIG. 15, when a learning request signal is outputted from at least one neuron among a plurality of neurons included in other cores in the same multicore, the learning counter of all neuron blocks included in the current core is reset .
도 15에서, 멀티 코어 블록은 복수의 코어 블록을 포함하며, 각각의 코어 블록 내에서 공유되는 공통 인자(Parameters_core0, Parameter _core1, ? Parameter_core255)를 입력 받는다.In FIG. 15, the multicore block includes a plurality of core blocks, and receives common parameters (Parameters_core0, Parameter_core1,? Parameter_core255) shared in each core block.
또한, 합병기(Merger)는 복수의 코어 블록들 각각에서 출력된 8 bit의 출력 신호 AER_out(8b)를 입력받아 16bit의 신호 AER_out(16b)를 출력한다.The merger Merger receives the 8-bit
또한, 복수의 코어 블록들 중 적어도 하나의 코어 블록 또는 복수의 코어 블록에 포함된 모든 뉴런 블록들 중 적어도 하나의 뉴런 블록이 스파이크 신호를 출력한 경우, 억제 기작을 요청하는 일반 억제 인자 General_inhibiton로 1이 출력된다.In addition, when at least one neuron block among all the neuron blocks included in at least one core block or a plurality of core blocks among the plurality of core blocks outputs a spike signal, a general suppression factor General_inhibiton for requesting a suppression mechanism is set to 1 Is output.
마찬가지로, 복수의 코어 블록들 중 적어도 하나의 코어 블록 또는 복수의 코어 블록에 포함된 모든 뉴런 블록들 중 적어도 하나의 뉴런 블록이 학습 요청 신호 STDP_event_out를 출력한 경우, 학습 카운터를 리셋하는 신호 STDP_event_in는 1 값을 가지며, 모든 멀티 코어에 입력된다.Similarly, when at least one neuron block among all the neuron blocks included in at least one of the plurality of core blocks or the plurality of core blocks outputs the learning request signal STDP_event_out, the signal STDP_event_in for resetting the learning counter is 1 Value, and is input to all multicore cores.
본 개시는 도면 내에 블록을 구현하기 위한 특정 하드웨어 및 소프트웨어를 정의하지 않지만, 당업자는 본 발명이 특정 하드웨어 또는 소프트웨어에 의한 구현에 제한되지 않으며, 임의의 종래 하드웨어 및 / 또는 소프트웨어가 본원 개시의 실시 예를 구현하는데 사용되는 것을 이해할 수 있을 것이다. 따라서, 하드웨어는 본원 개시의 기능을 수행하기 위한 하나 이상의 주문형 집적 회로(application specific integrated circuits), 디지털 신호 프로세서(digital signal processors), 디지털 신호 처리 장치(digital signal processing devices), 프로그래머블 로직 장치(programmable logic devices), 필드 프로그래머블 게이트 어레이(field programmable gate arrays), 프로세서(processor), 컨트롤러(controller), 마이크로 컨트롤러(micro controller), 마이크로 프로세서(micro processor), 전자 장치 및 기타 전자 모듈, 컴퓨터 및 이들의 조합으로 구현될 수 있다.Although the present disclosure does not define specific hardware and software for implementing blocks within the figures, those skilled in the art will appreciate that the present invention is not limited to particular hardware or software implementations, and that any conventional hardware and / As will be appreciated by those skilled in the art. Accordingly, the hardware may be implemented within one or more application specific integrated circuits, digital signal processors, digital signal processing devices, programmable logic devices, devices, field programmable gate arrays, processors, controllers, microcontrollers, microprocessors, electronic devices and other electronic modules, computers, and combinations thereof. Lt; / RTI >
본 개시의 설명 또는 청구항에서 단일 구성 요소로 나타내어진 구성 요소의 기능은 실제 구현될 경우 디바이스의 여러 구성 요소에 의하여 구현될 수 있고, 반대로, 여러 구성 요소들로 나타내어진 구성 요소들의 기능은 실제 구현될 경우 단일 구성요소에 의하여 구현될 수 있다. It is to be understood that the functionality of the components illustrated in the singular components in the description of the present disclosure or in the claims may be implemented by various components of the device when actually implemented, It can be implemented by a single component.
본원에서, 용어 "제 1", "제 2" 등은 여러 구성 요소, 부품, 영역, 계층, 및/또는 섹션을 설명하기 위하여 사용될 수 있다. 이러한 용어는, 달린 언급되거나 문맥상 명백하게 달리 사용되지 않은 이상, 일 구성요소를 다른 구성요소와 구별하기 위하여 사용되는 것일 뿐, 구성요소들은 이러한 용어에 제한되지 아니한다. 따라서, 본원 개시의 범위를 벗어나지 않는 범위에서, 제 1 구성 요소, 부품, 영역, 계층, 및/또는 섹션은 제 2 구성 요소, 부품, 영역, 계층, 및/또는 섹션으로 정의될 수 있다. 본원에서, 용어 "및/또는"은 하나 이상의 나열된 항목 각각의 임의의 모든 조합을 포함한다. 단수로 나타내어진 구성 요소는 달리 명시되지 않는 한 복수의 요소를 배제하지 않는다.Herein, the terms " first ", " second ", etc. may be used to describe various elements, parts, regions, layers, and / or sections. These terms are used only to distinguish one element from another, unless the context is explicitly stated or the context clearly indicates otherwise, the elements are not limited to these terms. Thus, a first component, component, region, layer, and / or section may be defined as a second component, component, region, layer, and / or section without departing from the scope of the disclosure herein. As used herein, the term " and / or " includes any and all combinations of one or more of the listed items. The elements shown in the singular are not intended to exclude a plurality of elements unless otherwise specified.
본원에서, 방법은 개시된 방법을 구현하기 위한 하나 이상의 단계 또는 동작을 포함한다. 단계 및/또는 동작의 특정 순서가 정해지지 않은 경우, 하나 이상의 단계 및/또는 동작 본원 개시에서 설명된 순서와 달리 수행될 수 있다. 예를 들어 관련된 기능에 따라, 연속적으로 설명된 두 개의 단계 및/또는 동작은 실질적으로 동일한 시간에 실행되거나, 역순으로 실행될 수 있다.In the present application, a method includes one or more steps or operations for implementing the disclosed method. Steps and / or operations may be performed differently than the order described in this disclosure, unless a specific order of steps and / or actions is specified. For example, depending on the associated function, two successively described steps and / or operations may be performed at substantially the same time, or in reverse order.
Claims (20)
상기 복수의 시냅스 가중치 값들을 저장하는 시냅스 가중치 메모리;
시냅스 전 뉴런 회로로부터 입력 신호를 수신하고, 상기 수신된 입력 신호가, 상기 수신된 입력 신호의 시냅스 값이 활성 값인 활성화 신호인지 여부를 판단하는 제 1 서브 회로;
상기 판단 결과에 따라, 활성화 입력 신호의 제 1 누적 수신 횟수와 학습 임계 값간의 비교 연산을 수행하는 제 2 서브 회로; 및
상기 제 1 누적 수신 횟수가 상기 학습 임계 값에 이른 경우, 제 1 확률에 따라, 기 수신된 적어도 하나의 입력 신호의 시냅스 가중치 값을 활성 값으로 설정하는 강화 학습을 수행하고,
상기 복수의 시냅스 가중치 값들 각각을, 제 2 확률에 따라, 비활성 값으로 설정하는 약화 학습을 수행하는, 제 3 서브 회로를 포함하는, 뉴런 회로.A neuron circuit for performing synapse learning on a plurality of synapse weight values,
A synapse weight memory for storing the plurality of synapse weight values;
A first sub-circuit receiving an input signal from a synapse pre-neuron circuit and judging whether or not the received input signal is an activation signal whose synapse value of the received input signal is an active value;
A second sub-circuit for performing a comparison operation between the first cumulative number of times of reception of the activation input signal and the learning threshold value according to the determination result; And
Performing reinforcement learning to set a synapse weight value of at least one input signal received as an active value according to a first probability when the first accumulated reception number reaches the learning threshold value,
And performs weak learning to set each of the plurality of synapse weight values to an inactive value according to a second probability.
상기 판단 결과에 따라, 활성화 입력 신호의 제 2 누적 수신 횟수와 발화 임계 값간의 비교 연산을 수행하며,
상기 제 2 누적 수신 횟수가 상기 발화 임계 값에 이른 경우, 상기 뉴런 회로의 시냅스 후(post-synaptic) 뉴런 회로에게 스파이크 신호를 전송하는 제 4 서브 회로를 더 포함하는, 뉴런 회로.The method according to claim 1,
Performs a comparison operation between the second cumulative reception count of the activation input signal and the ignition threshold value according to the determination result,
Further comprising a fourth sub-circuit for transmitting a spike signal to a post-synaptic neuron circuit of the neuron circuit when the second cumulative number of received times reaches the ignition threshold value.
상기 제 3 서브 회로는,
상기 강화 학습이 수행된 결과, 상기 시냅스 가중치 메모리 내의 시냅스 가중치가 활성 값을 가지는 활성화 시냅스의 개수에 기초하여 상기 제 2 확률을 결정하는, 뉴런 회로. The method according to claim 1,
Wherein the third sub-
Wherein the reinforcement learning is performed to determine the second probability based on the number of activation synapses in which the synaptic weight in the synaptic weight memory has an active value.
상기 제 2 서브 회로는,
상기 제 1 누적 수신 횟수를 카운팅하고, 상기 제 1 누적 수신 횟수가 상기 학습 임계 값에 이를 경우 리셋되는, 학습 카운터를 포함하는, 뉴런 회로.The method according to claim 1,
The second sub-
Wherein the learning counter counts the first cumulative number of times of reception and is reset when the first cumulative number of times of reception reaches the learning threshold value.
상기 제 2 서브 회로는,
상기 학습 임계 값을 카운팅하고, 상기 제 1 누적 수신 횟수가 상기 학습 임계 값에 이른 경우 증가하는, 학습 임계 값 카운터를 더 포함하는, 뉴런 회로. 5. The method of claim 4,
The second sub-
Further comprising a learning threshold counter that counts the learning threshold and increases when the first cumulative number of receptions reaches the learning threshold.
상기 제 4 서브 회로는,
상기 제 2 누적 수신 횟수를 카운팅하고, 상기 제 2 누적 수신 횟수가 상기 발화 임계 값에 이를 경우 리셋되는, 발화 카운터를 포함하는, 뉴런 회로.3. The method of claim 2,
Wherein the fourth sub-
And counts the second cumulative number of times of reception and is reset when the second cumulative number of times of reception reaches the ignition threshold value.
상기 제 3 서브 회로는,
랜덤 상수 생성기를 포함하고,
상기 랜덤 상수 생성기로부터 획득된 양수의 랜덤 상수가, 상기 랜덤 상수의 상한 값에 상기 제 1 확률을 곱하여 산출된 강화 학습 기준 상수 이하인 경우 상기 강화 학습을 수행하는, 뉴런 회로.The method of claim 3,
Wherein the third sub-
A random constant generator,
And performs the reinforcement learning when the positive random number obtained from the random number generator is equal to or less than a reinforcement learning standard constant calculated by multiplying the upper limit value of the random number by the first probability.
상기 제 3 서브 회로는,
상기 시냅스 가중치 메모리 내에 상기 복수의 시냅스 가중치 값들 각각에 대하여, 상기 랜덤 상수 생성기로부터 획득된 양수의 랜덤 상수가, 상기 랜덤 상수의 상한 값에 상기 제 2 확률을 곱하여 산출된 약화 학습 기준 상수 이상인 경우, 상기 약화 학습을 수행하는, 뉴런 회로. 8. The method of claim 7,
Wherein the third sub-
For each of the plurality of synapse weight values in the synapse weight memory, if the positive random number constant obtained from the random constant generator is greater than or equal to the weakened learning reference constant calculated by multiplying the upper limit value of the random constant by the second probability, And performs the weakening learning.
상기 제 3 서브 회로는,
수신된 입력 신호들에 포함된 시냅스 정보들을 저장하는 입력 이벤트 버퍼를 포함하고,
저장된 순서의 역순에 따라, 상기 입력 이벤트 버퍼에 저장된 미리 결정된 개수의 시냅스 정보들 각각에 대응하는 시냅스 가중치 값에 대하여 강화 학습을 수행하는, 뉴런 회로. The method according to claim 1,
Wherein the third sub-
An input event buffer for storing synapse information included in received input signals,
And performs reinforcement learning on a synapse weight value corresponding to each of a predetermined number of synaptic information stored in the input event buffer, in accordance with a reverse order of the stored sequence.
뉴런 회로; 및
학습 회로를 포함하고,
상기 뉴런 회로는,
시냅스 전 뉴런 회로로부터 입력 신호를 수신하고,
상기 수신된 입력 신호가 상기 수신된 입력 신호의 시냅스 값이 활성 값인 활성화 신호인지 여부를 판단하여, 활성화 입력 신호의 제 1 누적 수신 횟수가 학습 임계 값에 이른 경우 학습 요청 신호를 상기 학습 회로에게 전송하며,
상기 학습 회로는,
상기 학습 요청 신호를 수신함에 따라, 제 1 확률로, 상기 뉴런 회로에 의해 기 수신된 적어도 하나의 입력 신호의 시냅스 가중치 값을 활성 값으로 설정하는 강화 학습을 수행하고,
상기 복수의 시냅스 가중치 값들 각각을, 제 2 확률에 따라, 비활성 값으로 설정하는 약화 학습을 수행하는, 시스템.A learning system for a plurality of synapse weight values,
Neuron circuit; And
Learning circuit,
Wherein the neuron circuit comprises:
Receiving an input signal from a synaptic neuron circuit,
Determining whether the received input signal is an activation signal whose active value is a synapse value of the received input signal, and transmitting a learning request signal to the learning circuit when the first cumulative reception count of the activation input signal reaches a learning threshold value; In addition,
The learning circuit comprising:
Perform reinforcement learning to set a synaptic weight value of at least one input signal previously received by the neuron circuit to an active value at a first probability upon receiving the learning request signal,
And performs weak learning to set each of the plurality of synapse weight values to an inactive value according to a second probability.
시냅스 전 뉴런 회로로부터 입력 신호를 수신함에 따라, 상기 수신된 입력 신호가, 상기 수신된 입력 신호의 시냅스 값이 활성 값인 활성화 입력 신호인지 판단하는 단계;
상기 판단 결과에 따라, 활성화 입력 신호의 제 1 누적 수신 횟수와 학습 임계 값의 비교 연산을 수행하는 단계;
상기 제 1 누적 수신 횟수가 학습 임계 값에 이른 경우, 제 1 확률에 따라, 기 수신된 적어도 하나의 입력 신호의 시냅스 가중치 값을 활성 값으로 설정하는 강화 학습 수행 단계; 및
상기 복수의 시냅스 가중치 값들 각각을, 제 2 확률에 따라, 비활성 값으로 설정하는 약화 학습 수행 단계를 포함하는, 방법.A learning method for a plurality of synapse weight values between the neuron circuit and synapse neuron circuits, which is performed by a neuron circuit,
Determining that the received input signal is an active input signal, the synapse value of the received input signal being an active value, upon receiving an input signal from a synapse pre-neuron circuit;
Performing a comparison operation between a first cumulative reception count of the activation input signal and a learning threshold value according to the determination result;
Performing a reinforcement learning step of setting a synaptic weight value of at least one input signal received as an active value according to a first probability when the first cumulative reception count reaches a learning threshold; And
And performing weak learning to set each of the plurality of synapse weight values to an inactive value according to a second probability.
상기 판단 결과에 따라, 활성화 입력 신호의 제 2 누적 수신 횟수와 발화 임계 값의 비교 연산을 수행하는 단계; 및
상기 제 2 누적 수신 횟수가 상기 발화 임계 값에 이른 경우, 상기 뉴런 회로의 시냅스 후(post-synaptic) 뉴런 회로에게 스파이크 신호를 전송하는 단계를 더 포함하는, 방법. 12. The method of claim 11,
Performing a comparison operation between a second cumulative number of times of reception of the activation input signal and the ignition threshold value according to the determination result; And
Further comprising transmitting a spike signal to a post-synaptic neuron circuit of the neuron circuit when the second cumulative number of received times reaches the ignition threshold value.
상기 약화 학습을 수행하는 단계는,
상기 강화 학습이 수행된 결과, 복수의 시냅스들 중 시냅스 가중치가 활성 값을 가지는 활성화 시냅스의 개수를 결정하고, 상기 결정된 활성화 시냅스의 개수에 기초하여 상기 제 2 확률을 결정하는 단계를 포함하는, 방법.12. The method of claim 11,
Wherein the weakening learning comprises:
Determining the number of activation synapses having a synaptic weight of the plurality of synapses as a result of the reinforcement learning being performed and determining the second probability based on the determined number of activated synapses .
상기 제 1 누적 수신 횟수가 학습 임계 값에 이른 경우, 상기 제 1 누적 수신 횟수를 초기화하는 단계를 더 포함하는, 방법. 12. The method of claim 11,
Further comprising the step of initializing the first cumulative number of times of reception if the first cumulative number of receptions reaches a learning threshold.
상기 제 1 누적 수신 횟수가 상기 학습 임계 값에 이른 경우, 상기 학습 임계 값을 증가시키는 단계를 더 포함하는, 방법.15. The method of claim 14,
Further comprising increasing the learning threshold if the first cumulative number of receptions reaches the learning threshold.
상기 제 2 누적 수신 횟수가 상기 발화 임계 값에 이른 경우, 상기 제 2 누적 수신 횟수를 초기화하는 단계를 더 포함하는, 방법.13. The method of claim 12,
Further comprising the step of initializing the second cumulative number of times of reception if the second cumulative number of receptions reaches the ignition threshold value.
상기 강화 학습 수행 단계는,
양수인 랜덤 상수를 획득하고, 상기 획득된 랜덤 상수가 상기 랜덤 상수의 상한 값에 상기 제 1 확률을 곱하여 산출된 강화 학습 기준 상수 이하인 경우 상기 강화 학습을 수행하는 단계를 포함하는 방법.12. The method of claim 11,
Wherein the reinforcement learning step comprises:
And performing the reinforcement learning when the obtained random constant is equal to or less than a reinforcement learning reference constant calculated by multiplying the upper limit value of the random constant by the first probability.
상기 약화 학습 수행 단계는,
상기 복수의 시냅스 가중치 값들 각각에 대하여, 양수인 랜덤 상수를 획득하고, 상기 획득된 랜덤 상수가 상기 랜덤 상수의 상한 값에 상기 제 2 확률을 곱하여 산출된 약화 학습 기준 상수 이상인 경우, 상기 약화 학습을 수행하는 단계를 포함하는 방법.12. The method of claim 11,
Wherein the weakening learning step comprises:
Acquiring a positive random number constant for each of the plurality of synapse weight values and if the obtained random number is equal to or greater than the weak learning standard constant calculated by multiplying the upper limit value of the random constant by the second probability, ≪ / RTI >
수신된 입력 신호들에 포함된 시냅스 정보들을 저장하는 단계를 더 포함하고,
상기 강화 학습 수행 단계는,
저장된 순서의 역순에 따라, 미리 결정된 개수의 기 저장된 시냅스 정보들 각각에 대응하는 시냅스 가중치 값에 대하여 강화 학습을 수행하는 단계를 더 포함하는, 방법.12. The method of claim 11,
Further comprising storing synaptic information included in received input signals,
Wherein the reinforcement learning step comprises:
Further comprising performing reinforcement learning on a synaptic weight value corresponding to each of a predetermined number of previously stored synaptic information, in accordance with a reverse order of the stored sequence.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/181,850 US11301753B2 (en) | 2017-11-06 | 2018-11-06 | Neuron circuit, system, and method with synapse weight learning |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762581957P | 2017-11-06 | 2017-11-06 | |
US62/581,957 | 2017-11-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190051766A true KR20190051766A (en) | 2019-05-15 |
KR102592146B1 KR102592146B1 (en) | 2023-10-20 |
Family
ID=66579625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180069625A KR102592146B1 (en) | 2017-11-06 | 2018-06-18 | Neuron Circuit, system and method for synapse weight learning |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102592146B1 (en) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210004349A (en) * | 2019-07-04 | 2021-01-13 | 한국과학기술연구원 | Neuromodule device and signaling method performed on the same |
KR20210004342A (en) * | 2019-07-04 | 2021-01-13 | 한국과학기술연구원 | Neuromorphic device |
KR20210004813A (en) | 2019-07-05 | 2021-01-13 | 한국전자통신연구원 | Method for generating neural network for neuromorphic system and apparatus for the same |
KR20210004346A (en) * | 2019-07-04 | 2021-01-13 | 한국과학기술연구원 | Neuromodule device and signaling method performed on the same |
KR20210004347A (en) * | 2019-07-04 | 2021-01-13 | 한국과학기술연구원 | Multi-core neuromodule device and global routing method performed on the same |
KR20210064767A (en) * | 2019-11-26 | 2021-06-03 | 성균관대학교산학협력단 | Spiking neuron model and method for generating spike thereof |
WO2021125431A1 (en) * | 2019-12-19 | 2021-06-24 | 주식회사 노타 | Method and device for initializing deep learning model via distributed equalization |
WO2021133772A1 (en) * | 2019-12-26 | 2021-07-01 | Northwestern University | Tunable gaussian heterojunction transistors, fabricating methods and applications of same |
KR102288865B1 (en) | 2021-03-30 | 2021-08-11 | 세종대학교산학협력단 | FMCW radar range resolution enhancement technique through phase tuning |
KR20210135139A (en) * | 2020-05-04 | 2021-11-12 | 고려대학교 산학협력단 | Drop-connect network system and learning method based on the same |
KR20210137663A (en) * | 2020-05-11 | 2021-11-18 | 연세대학교 산학협력단 | Apparatus and method for learning a spiking neural network |
WO2021262407A1 (en) * | 2020-06-23 | 2021-12-30 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
KR102511526B1 (en) | 2021-11-11 | 2023-03-17 | 서울대학교산학협력단 | Hardware-based artificial neural network device |
KR102514652B1 (en) | 2021-11-19 | 2023-03-29 | 서울대학교산학협력단 | Weight transfer apparatus for neuromorphic devices and weight transfer method using the same |
KR102514649B1 (en) | 2021-11-18 | 2023-03-29 | 서울대학교산학협력단 | Neuromorphic device and neuron circuit compensating for changes in synaptic characteristics |
KR102514650B1 (en) | 2021-11-30 | 2023-03-29 | 서울대학교산학협력단 | Neuromorphic device and method for compensating for variation characteristics in neuromorphic device |
US11630992B2 (en) | 2019-07-05 | 2023-04-18 | Electronics And Telecommunications Research Institute | Neural network generation method for neuromorphic computing and apparatus for the same |
WO2023080432A1 (en) * | 2021-11-04 | 2023-05-11 | 서울대학교산학협력단 | Neuron circuit and operation method thereof, and neuromorphic device including neuron circuit |
WO2023090597A1 (en) * | 2021-11-18 | 2023-05-25 | 서울대학교산학협력단 | Neuromorphic device for processing spike signals in parallel |
US11693657B2 (en) | 2019-09-05 | 2023-07-04 | Micron Technology, Inc. | Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems |
US11829729B2 (en) | 2019-09-05 | 2023-11-28 | Micron Technology, Inc. | Spatiotemporal fused-multiply-add, and related systems, methods and devices |
US11934824B2 (en) | 2019-09-05 | 2024-03-19 | Micron Technology, Inc. | Methods for performing processing-in-memory operations, and related memory devices and systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140144130A (en) * | 2013-06-10 | 2014-12-18 | 삼성전자주식회사 | Synapse array, pulse shaper circuit and neuromorphic system including the synapse array and the pulse shaper circuit |
KR20160145636A (en) * | 2014-04-08 | 2016-12-20 | 퀄컴 인코포레이티드 | Modulating plasticity by global scalar values in a spiking neural network |
KR20170089217A (en) * | 2016-01-26 | 2017-08-03 | 삼성전자주식회사 | Recognition apparatus based on neural network and learning method of neural network |
-
2018
- 2018-06-18 KR KR1020180069625A patent/KR102592146B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140144130A (en) * | 2013-06-10 | 2014-12-18 | 삼성전자주식회사 | Synapse array, pulse shaper circuit and neuromorphic system including the synapse array and the pulse shaper circuit |
KR20160145636A (en) * | 2014-04-08 | 2016-12-20 | 퀄컴 인코포레이티드 | Modulating plasticity by global scalar values in a spiking neural network |
KR20170089217A (en) * | 2016-01-26 | 2017-08-03 | 삼성전자주식회사 | Recognition apparatus based on neural network and learning method of neural network |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210004342A (en) * | 2019-07-04 | 2021-01-13 | 한국과학기술연구원 | Neuromorphic device |
KR20210004346A (en) * | 2019-07-04 | 2021-01-13 | 한국과학기술연구원 | Neuromodule device and signaling method performed on the same |
KR20210004347A (en) * | 2019-07-04 | 2021-01-13 | 한국과학기술연구원 | Multi-core neuromodule device and global routing method performed on the same |
KR20210004349A (en) * | 2019-07-04 | 2021-01-13 | 한국과학기술연구원 | Neuromodule device and signaling method performed on the same |
KR20210004813A (en) | 2019-07-05 | 2021-01-13 | 한국전자통신연구원 | Method for generating neural network for neuromorphic system and apparatus for the same |
US11630992B2 (en) | 2019-07-05 | 2023-04-18 | Electronics And Telecommunications Research Institute | Neural network generation method for neuromorphic computing and apparatus for the same |
US11829729B2 (en) | 2019-09-05 | 2023-11-28 | Micron Technology, Inc. | Spatiotemporal fused-multiply-add, and related systems, methods and devices |
US11693657B2 (en) | 2019-09-05 | 2023-07-04 | Micron Technology, Inc. | Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems |
US11934824B2 (en) | 2019-09-05 | 2024-03-19 | Micron Technology, Inc. | Methods for performing processing-in-memory operations, and related memory devices and systems |
KR20210064767A (en) * | 2019-11-26 | 2021-06-03 | 성균관대학교산학협력단 | Spiking neuron model and method for generating spike thereof |
WO2021125431A1 (en) * | 2019-12-19 | 2021-06-24 | 주식회사 노타 | Method and device for initializing deep learning model via distributed equalization |
WO2021133772A1 (en) * | 2019-12-26 | 2021-07-01 | Northwestern University | Tunable gaussian heterojunction transistors, fabricating methods and applications of same |
KR20210135139A (en) * | 2020-05-04 | 2021-11-12 | 고려대학교 산학협력단 | Drop-connect network system and learning method based on the same |
KR20210137663A (en) * | 2020-05-11 | 2021-11-18 | 연세대학교 산학협력단 | Apparatus and method for learning a spiking neural network |
US11537861B2 (en) | 2020-06-23 | 2022-12-27 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
WO2021262407A1 (en) * | 2020-06-23 | 2021-12-30 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
US12056599B2 (en) | 2020-06-23 | 2024-08-06 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
KR102288865B1 (en) | 2021-03-30 | 2021-08-11 | 세종대학교산학협력단 | FMCW radar range resolution enhancement technique through phase tuning |
WO2023080432A1 (en) * | 2021-11-04 | 2023-05-11 | 서울대학교산학협력단 | Neuron circuit and operation method thereof, and neuromorphic device including neuron circuit |
KR102511526B1 (en) | 2021-11-11 | 2023-03-17 | 서울대학교산학협력단 | Hardware-based artificial neural network device |
KR102514649B1 (en) | 2021-11-18 | 2023-03-29 | 서울대학교산학협력단 | Neuromorphic device and neuron circuit compensating for changes in synaptic characteristics |
WO2023090597A1 (en) * | 2021-11-18 | 2023-05-25 | 서울대학교산학협력단 | Neuromorphic device for processing spike signals in parallel |
KR102514652B1 (en) | 2021-11-19 | 2023-03-29 | 서울대학교산학협력단 | Weight transfer apparatus for neuromorphic devices and weight transfer method using the same |
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 |
---|---|
KR102592146B1 (en) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20190051766A (en) | Neuron Circuit, system and method for synapse weight learning | |
US10810487B2 (en) | Reconfigurable and customizable general-purpose circuits for neural networks | |
US9460382B2 (en) | Neural watchdog | |
US11301753B2 (en) | Neuron circuit, system, and method with synapse weight learning | |
US9417845B2 (en) | Method and apparatus for producing programmable probability distribution function of pseudo-random numbers | |
US9558442B2 (en) | Monitoring neural networks with shadow networks | |
US20150206048A1 (en) | Configuring sparse neuronal networks | |
KR20160136381A (en) | Differential encoding in neural networks | |
KR20160076520A (en) | Causal saliency time inference | |
CN108900542A (en) | Ddos attack detection method and device based on LSTM prediction model | |
US20150278685A1 (en) | Probabilistic representation of large sequences using spiking neural network | |
US11308386B2 (en) | Signal processing method and apparatus based on spiking neural network | |
KR20160068823A (en) | Congestion avoidance in networks of spiking neurons | |
US20150088796A1 (en) | Methods and apparatus for implementation of group tags for neural models | |
KR101782760B1 (en) | Dynamically assigning and examining synaptic delay | |
CN114419878A (en) | Method, electronic device and storage medium for urban road network global traffic state prediction | |
KR101825937B1 (en) | Plastic synapse management | |
US9342782B2 (en) | Stochastic delay plasticity | |
US9449272B2 (en) | Doppler effect processing in a neural network model | |
US9418332B2 (en) | Post ghost plasticity | |
US20240303484A1 (en) | Neuromorphic circuit and associated training method | |
US20150278684A1 (en) | Time synchronization of spiking neuron models on multiple nodes | |
CN117591932A (en) | Time sequence signal classification model construction method and system based on impulse neural network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |