KR102091498B1 - Unsupervised learning device and learning method therefore - Google Patents
Unsupervised learning device and learning method therefore Download PDFInfo
- Publication number
- KR102091498B1 KR102091498B1 KR1020180066858A KR20180066858A KR102091498B1 KR 102091498 B1 KR102091498 B1 KR 102091498B1 KR 1020180066858 A KR1020180066858 A KR 1020180066858A KR 20180066858 A KR20180066858 A KR 20180066858A KR 102091498 B1 KR102091498 B1 KR 102091498B1
- Authority
- KR
- South Korea
- Prior art keywords
- processing unit
- image
- weights
- neural network
- spiking neural
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 32
- 210000002364 input neuron Anatomy 0.000 claims abstract description 54
- 210000004205 output neuron Anatomy 0.000 claims abstract description 54
- 238000013528 artificial neural network Methods 0.000 claims abstract description 41
- 238000012421 spiking Methods 0.000 claims abstract description 39
- 210000000225 synapse Anatomy 0.000 claims abstract description 35
- 230000000946 synaptic effect Effects 0.000 claims abstract description 13
- 210000002569 neuron Anatomy 0.000 claims description 60
- 230000000694 effects Effects 0.000 claims description 15
- 239000012528 membrane Substances 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000010304 firing Methods 0.000 description 8
- 230000000903 blocking effect Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 210000003050 axon Anatomy 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 210000001787 dendrite Anatomy 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
본 출원의 일 실시예에 따르는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치는, 이진이미지를 입력받는 스파이킹 뉴럴 네트워크 및 상기 스파이킹 뉴럴 네트워크와 전기적으로 연결된 시냅스 학습장치를 포함하고, 상기 시냅스 학습장치는, 복수의 입력뉴런들 대비 프리신호를 일정개수 이상 발화하는 접속노드들의 연결비율에 따라, 상기 접속노드들에 대한 이진화를 통해 제1 이미지를 생성하는 제1 처리부, 복수의 출력뉴런들 중 포스트신호를 최대 개수로 발화하는 출력노드를 선택하고, 상기 출력노드에 연결된 복수의 시냅스들의 제1 가중치들을 기초로, 제2 이미지를 생성하는 제2 처리부 및 상기 제1 이미지와 상기 제1 가중치들에 대한 평균기반의 학습알고리즘을 통해 제2 가중치들을 획득하고, 상기 제2 가중치들을 기초로 제3 이미지를 생성하는 제3 처리부를 포함한다. An unsupervised learning apparatus based on a spiking neural network according to an embodiment of the present application includes a spiking neural network that receives a binary image and a synaptic learning apparatus electrically connected to the spiking neural network, and the synaptic learning apparatus The first processing unit generates a first image through binarization of the connection nodes according to the connection ratio of connection nodes that fire a predetermined number or more of pre-signals compared to a plurality of input neurons, and posts among the plurality of output neurons. A second processing unit generating a second image based on the first weights of a plurality of synapses connected to the output node, and selecting the output node that utters the maximum number of signals, and the first image and the first weights Acquire second weights through the average-based learning algorithm for and generate a third image based on the second weights It includes a third processing unit.
Description
본 출원의 실시예들은, 비지도 학습장치 및 그 학습방법에 관한 것으로, 보다 구체적으로 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치 및 그 학습방법에 관한 것이다. Embodiments of the present application relates to an unsupervised learning apparatus and a learning method thereof, and more particularly, to a non-supervised learning apparatus based on a spiking neural network and a learning method thereof.
생물의 뇌에는 수천억 단위에 이르는 신경세포로서 뉴런이 있다. 이러한 뉴런들은 복잡한 신경망을 이루고, 수천 개의 다른 뉴런들과 시냅스를 통하여 신호를 주고 받을 수 있다. 즉, 뉴런은 신경계의 구조적, 기능적 단위이고, 정보 전달의 기본 단위이다. In the brain of a living creature, neurons are billions of neurons. These neurons form a complex neural network and can send and receive signals through synapses with thousands of other neurons. In other words, neurons are structural and functional units of the nervous system and are the basic units of information transmission.
또한, 시냅스는 뉴런 사이의 접합부를 가리키고, 어느 하나의 뉴런의 축색 돌기와 다른 뉴런의 수상 돌기가 연결된 부위를 의미한다. 한 개의 뉴런은 수천 개의 다른 뉴런과 시냅스를 통해 접촉하고 있다. 뉴로모픽 시스템은 이러한 생물학적인 신경망을 모사한 인공 신경계 기반의 반도체 회로를 의미하고, 이들 뉴로모픽 시스템은 칩 단위로 제작될 수 있다.In addition, synapse refers to a junction between neurons, and refers to a region where axons of one neuron and dendrites of another neuron are connected. One neuron is in contact with thousands of other neurons through synapses. The neuromorphic system refers to an artificial neural system-based semiconductor circuit that mimics such a biological neural network, and these neuromorphic systems can be manufactured on a chip basis.
보다 구체적으로, 뉴로모픽 시스템은 머신 러닝 방법을 기반으로 한 지도 학습과 신경망 학습 방법을 모방한 학습 방법을 주로 사용하고 있다. 이러한 머신 러닝 방법을 기반으로 한 뉴로모픽 시스템은 입력단에서 스스로 학습을 할 수 있는 장점을 가질 수 있다. 한편, 머신 러닝 방법을 기반으로 한 뉴로모픽 시스템은 시냅스 가중치를 연산하는 과정에서, 대전력과 대용량의 메모리를 필요로 하기 때문에, 저장데이터 센터나 서버에서 주로 사용되고 있다. 특히, 저용량의 메모리와 저전력으로 운영되는 뉴로모픽 시스템에 머신 러닝 방법을 적용하는 데 문제가 있다.More specifically, neuromorphic systems mainly use supervised learning based on machine learning methods and learning methods that mimic neural network learning methods. A neuromorphic system based on such a machine learning method may have an advantage of self-learning at an input terminal. On the other hand, neuromorphic systems based on machine learning methods are mainly used in storage data centers and servers because they require large power and large amounts of memory in the process of calculating synaptic weights. In particular, there is a problem in applying a machine learning method to a neuromorphic system operated with low capacity of memory and low power.
이에 따라, 본 발명에서는 저전력 및 저용량의 메모리를 사용하는 스파이킹 뉴럴 네트워크(Spiking Neural Network) 기반의 비지도 학습장치 및 그 학습방법을 제안한다. Accordingly, the present invention proposes an unsupervised learning apparatus based on a Spiking Neural Network using a low-power and low-capacity memory and a learning method thereof.
본 출원의 목적은, Spike Timing Dependent Plasticity(STDP) 기반의 학습방법이 갖는 인식 정확도를 유지하면서, 메모리와 연산의 부담을 최소화시킬 수 있는 비지도 학습장치 및 그 학습방법을 제공하는 것을 목적으로 한다. An object of the present application is to provide an unsupervised learning apparatus and a learning method capable of minimizing the burden of memory and computation while maintaining the recognition accuracy of the Spike Timing Dependent Plasticity (STDP) based learning method. .
본 출원의 일 실시예에 따르는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치는, 이진이미지를 입력받는 스파이킹 뉴럴 네트워크 및 상기 스파이킹 뉴럴 네트워크와 전기적으로 연결된 시냅스 학습장치를 포함하고, 상기 시냅스 학습장치는, 복수의 입력뉴런들 대비 프리신호를 일정개수 이상 발화하는 접속노드들의 연결비율에 따라, 상기 접속노드들에 대한 이진화를 통해 제1 이미지를 생성하는 제1 처리부, 복수의 출력뉴런들 중 포스트신호를 최대 개수로 발화하는 출력노드를 선택하고, 상기 출력노드에 연결된 복수의 시냅스들의 제1 가중치들을 기초로, 제2 이미지를 생성하는 제2 처리부 및 상기 제1 이미지와 상기 제1 가중치들에 대한 평균기반의 학습알고리즘을 통해 제2 가중치들을 획득하고, 상기 제2 가중치들을 기초로 제3 이미지를 생성하는 제3 처리부를 포함한다. An unsupervised learning apparatus based on a spiking neural network according to an embodiment of the present application includes a spiking neural network that receives a binary image and a synaptic learning apparatus electrically connected to the spiking neural network, and the synaptic learning apparatus The first processing unit generates a first image through binarization of the connection nodes according to the connection ratio of connection nodes that fire a predetermined number or more of pre-signals compared to a plurality of input neurons, and posts among the plurality of output neurons. A second processing unit generating a second image based on the first weights of a plurality of synapses connected to the output node, and selecting the output node that utters the maximum number of signals, and the first image and the first weights Acquire second weights through the average-based learning algorithm for and generate a third image based on the second weights It includes a third processing unit.
실시예에 있어서, 상기 제3 처리부는, 상기 제1 및 제2 가중치들 간의 동일 여부에 따라, 상기 학습알고리즘에 대한 비활성화 여부를 결정한다. In an embodiment, the third processing unit determines whether to deactivate the learning algorithm according to whether the first and second weights are the same.
실시예에 있어서, 상기 평균기반의 학습알고리즘은, In an embodiment, the average-based learning algorithm,
(1)과, (1) and
(2)를 포함하고, (2),
여기서, f(x)는 임의의 입력값인 x에 대하여 식(2)의 결과를 나타내는 함수이고, 이때, flag는 상기 제1 이미지이고, Wn은 상기 제1 가중치들이며, Wn+1은 상기 제2 가중치들이다. Here, f (x) is a function representing the result of equation (2) for x, which is an arbitrary input value, where flag is the first image, Wn is the first weights, and W n + 1 is the These are the second weights.
실시예에 있어서, 상기 제1 처리부는, 상기 복수의 입력뉴런들로부터 발화되는 상기 프리신호의 개수를 카운트하는 복수의 제1 카운터들 및 상기 접속노드들에 플래그를 부여하는 복수의 플래그설정부들을 포함한다. In an embodiment, the first processing unit may include a plurality of first counters that count the number of the pre-signals uttered from the plurality of input neurons and a plurality of flag setting units that flag the connection nodes. Includes.
실시예에 있어서, 상기 제1 처리부는, 상기 연결비율이 임계치 미만인 경우, 상기 복수의 제1 카운터들을 통해 카운트된 상기 프리신호의 개수를 업데이트한다. In an embodiment, when the connection ratio is less than a threshold, the first processing unit updates the number of pre-signals counted through the plurality of first counters.
실시예에 있어서, 상기 제1 처리부는, 상기 연결비율이 임계치인 경우, 상기 복수의 플래그설정부들을 통해 부여된 플래그의 개수를 업데이트한다. In an embodiment, when the connection ratio is a threshold value, the first processing unit updates the number of flags given through the plurality of flag setting units.
실시예에 있어서, 상기 제1 처리부는, 상기 연결비율이 임계치를 초과하는 경우, 상기 제1 카운터들 및 복수의 플래그설정부들를 비활성화한다. In an embodiment, when the connection ratio exceeds a threshold, the first processing unit deactivates the first counters and the plurality of flag setting units.
실시예에 있어서, 상기 제2 처리부는, 상기 복수의 출력뉴런들로부터 발화되는 상기 포스트신호의 개수를 카운트하는 복수의 제2 카운터들를 포함한다. In an embodiment, the second processing unit includes a plurality of second counters that count the number of post signals ignited from the plurality of output neurons.
실시예에 있어서, 상기 제2 처리부는, 상기 포스트신호의 개수와 상기 프리신호의 개수에 따라 변화되는 적어도 하나의 출력뉴런의 멤브레인 전위를 업데이트한다. In an embodiment, the second processing unit updates the membrane potential of at least one output neuron that changes according to the number of post signals and the number of pre-signals.
실시예에 있어서, 상기 제3 처리부는, 상기 포스트신호에 따라 설정된 학습시간구간 이후에, 상기 복수의 입력뉴런들을 통해 발화하는 프리신호에 따라, 다음 학습시간구간을 설정한다. In an embodiment, after the learning time period set according to the post signal, the third processing unit sets a next learning time period according to a pre-signal uttered through the plurality of input neurons.
실시예에 있어서, 각 제1 카운터는 2비트의 이진 카운터이고, 각 플래그설정부는 1비트의 이진 플래그설정부이다. In the embodiment, each first counter is a 2-bit binary counter, and each flag setting unit is a 1-bit binary flag setting unit.
실시예에 있어서, 상기 제3 처리부는, 상기 스파이킹 뉴럴 네트워크를 통해 다른 입력이미지를 입력받을 때, 상기 제1 및 제2 처리부를 리셋한다. In an embodiment, when the third processing unit receives another input image through the spiking neural network, the first and second processing units are reset.
본 출원의 일 실시예에 따르는, 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법에 있어서, 제1 처리부가 복수의 입력뉴런들 대비 프리신호를 일정개수 이상 발화하는 접속노드들과의 연결비율에 따라, 상기 접속노드들에 대한 이진화를 통해 제1 이미지를 생성하는 단계, 제2 처리부가 복수의 출력뉴런들 중 포스트신호를 최대 개수로 발화하는 출력노드를 선택하는 단계, 상기 제2 처리부가 상기 출력노드에 연결된 시냅스들의 제1 가중치들을 기초로 제2 이미지를 생성하는 단계, 상기 제1 이미지와 상기 제1 가중치들에 대한 평균기반의 학습알고리즘을 통해 제2 가중치들을 획득하는 단계 및 상기 제2 가중치들을 기초로 제3 이미지를 생성하는 단계를 포함한다. In an unsupervised learning method based on a spiking neural network, according to an embodiment of the present application, according to a connection ratio with connection nodes that a first processing unit utters a predetermined number or more of free signals compared to a plurality of input neurons, Generating a first image through binarization of the connection nodes, and selecting, by the second processing unit, an output node that ignites a maximum number of post signals among the plurality of output neurons, and that the second processing unit outputs the output node. Generating a second image based on first weights of synapses connected to, acquiring second weights through an average-based learning algorithm for the first image and the first weights, and the second weights And generating a third image on the basis.
실시예에 있어서, 상기 제1 및 제2 가중치들 간의 동일 여부에 따라, 상기 평균기반의 학습알고리즘에 대한 비활성화 여부를 결정한다. In an embodiment, whether to deactivate the average-based learning algorithm is determined according to whether the first and second weights are the same.
실시예에 있어서, 상기 제1 이미지를 생성하는 단계는, 상기 제1 처리부가 상기 복수의 입력뉴런들로부터 발화되는 상기 프리신호의 개수를 카운트한다. In an embodiment, in the generating of the first image, the first processing unit counts the number of the pre-signals uttered from the plurality of input neurons.
실시예에 있어서, 상기 제1 이미지를 생성하는 단계는, 상기 제1 처리부가 상기 접속노드들에 플래그를 부여하는 단계를 포함한다. In an embodiment, the step of generating the first image includes the step of the first processing unit flagging the connection nodes.
실시예에 있어서, 상기 제1 이미지를 생성하는 단계는, 상기 연결비율이 임계치 미만인 경우, 상기 제1 처리부가 상기 카운트된 프리신호의 개수를 업데이트하는 단계를 포함한다. In an embodiment, the step of generating the first image includes, when the connection ratio is less than a threshold, updating the number of the pre-signed counts by the first processing unit.
실시예에 있어서, 상기 제1 이미지를 생성하는 단계는, 상기 연결비율이 임계치에 해당하는 경우, 상기 제1 처리부가 상기 플래그의 개수를 업데이트하는 단계를 포함한다. In an embodiment, generating the first image includes, when the connection ratio corresponds to a threshold, updating the number of flags by the first processing unit.
실시예에 있어서, 상기 제2 이미지를 생성하는 단계는, 상기 제2 처리부가 상기 복수의 출력뉴런들로부터 발화되는 상기 포스트신호의 개수를 카운트하는 단계를 포함한다. In an embodiment, the step of generating the second image includes the step of counting the number of post signals uttered from the plurality of output neurons by the second processing unit.
실시예에 있어서, 상기 제2 이미지를 생성하는 단계는, 상기 제2 처리부가 상기 포스트신호의 개수와 상기 프리신호에 따라 변화된 적어도 하나의 활동뉴런의 멤브레인 전위를 업데이트하는 단계를 포함한다. In an embodiment, the step of generating the second image includes the step of the second processing unit updating the membrane potential of at least one activity neuron changed according to the number of post signals and the pre-signal.
실시예에 있어서, 상기 제3 이미지를 획득하는 단계는, 상기 제3 처리부가 상기 포스트신호의 개수를 카운트한 시점을 기준으로, 학습시간구간을 설정하는 단계, 상기 학습시간구간 이후에 상기 복수의 입력뉴런들로부터 발화된 프리신호에 따라, 다음 학습시간구간을 반복적으로 설정하는 단계 및 마지막 학습시간구간에서, 상기 평균기반의 학습알고리즘에 대한 비활성화 여부를 결정하는 단계를 포함한다. In an embodiment, the step of acquiring the third image may include setting a learning time interval based on a time point when the third processing unit counts the number of post signals, and the plurality of times after the learning time interval. And repeatedly setting the next learning time interval according to the free signal uttered from the input neurons, and determining whether to deactivate the average-based learning algorithm in the last learning time interval.
본 출원의 실시 예에 따른 비지도 학습장치 및 그 학습방법은, Spike Timing Dependent Plasticity(STDP) 기반의 학습방법이 갖는 높은 인식 정확도를 유지하면서, 메모리와 연산의 부담을 최소화시킬 수 있다. The unsupervised learning apparatus and its learning method according to an embodiment of the present application can minimize the burden of memory and computation while maintaining high recognition accuracy of the Spike Timing Dependent Plasticity (STDP) based learning method.
도 1은 본 출원의 실시예에 따른 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치에 대한 블록도이다.
도 2는 도 1의 복수의 입력뉴런들의 일 예를 보여주는 도면이다.
도 3은 도 1의 복수의 출력뉴런들의 일 예를 보여주는 도면이다.
도 4는 도 1의 비지도 학습장치의 동작의 일 예를 보여주는 도면이다.
도 5는 도 1의 제1 처리부의 동작의 일 예를 보여주는 도면이다.
도 6은 도 1의 제2 처리부의 동작의 일 예를 보여주는 도면이다.
도 7은 도 1의 제2 처리부의 동작의 다른 예를 보여주는 도면이다.
도 8은 도 1의 제3 처리부의 동작의 일 예를 보여주는 도면이다.
도 9는 본 출원의 실시예에 따른 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법에 대한 순서도이다.
도 10 도 8의 비지도 학습방법에 대한 보다 구체적인 동작을 나타내는 순서도이다. 1 is a block diagram of an unsupervised learning apparatus based on a spiking neural network according to an embodiment of the present application.
FIG. 2 is a diagram showing an example of a plurality of input neurons of FIG. 1.
3 is a diagram showing an example of a plurality of output neurons of FIG. 1.
4 is a diagram illustrating an example of the operation of the unsupervised learning apparatus of FIG. 1.
5 is a diagram showing an example of an operation of the first processing unit of FIG. 1.
6 is a view showing an example of the operation of the second processing unit of FIG. 1.
7 is a view showing another example of the operation of the second processing unit of FIG. 1.
8 is a view showing an example of the operation of the third processing unit of FIG. 1.
9 is a flowchart for an unsupervised learning method based on a spiking neural network according to an embodiment of the present application.
10 is a flowchart illustrating a more specific operation of the unsupervised learning method of FIG. 8.
본 명세서에 개시되어 있는 본 출원의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 출원의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 출원의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present application disclosed in this specification are exemplified only for the purpose of describing the embodiments according to the concept of the present application, and the embodiments according to the concept of the present application It can be implemented in various forms and is not limited to the embodiments described herein.
본 출원의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 출원의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 출원의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Embodiments according to the concept of the present application may apply various changes and may have various forms, so that the embodiments will be illustrated in the drawings and described in detail herein. However, this is not intended to limit the embodiments according to the concept of the present application to specific disclosure forms, and includes all changes, equivalents, or substitutes included in the spirit and scope of the present application.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예를 들면 본 출원의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but the components should not be limited by the terms. The above terms are only for the purpose of distinguishing one component from other components, for example, without departing from the scope of rights according to the concept of the present application, the first component may be referred to as the second component, Similarly, the second component may also be referred to as the first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When an element is said to be "connected" or "connected" to another component, it is understood that other components may be directly connected to or connected to the other component, but may exist in the middle. It should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that no other component exists in the middle. Other expressions describing the relationship between the components, such as "between" and "immediately between" or "adjacent to" and "directly neighboring to," should be interpreted similarly.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 출원을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this specification are only used to describe specific embodiments, and are not intended to limit the present application. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, the terms "include" or "have" are intended to indicate that a feature, number, step, action, component, part, or combination thereof described is present, and one or more other features or numbers. It should be understood that it does not preclude the presence or addition possibilities of, steps, actions, components, parts or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 출원이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same as generally understood by one of ordinary skill in the art to which this application belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having meanings consistent with meanings in the context of related technologies, and should not be interpreted as ideal or excessively formal meanings unless explicitly defined herein. Does not.
도 1은 본 출원의 실시예에 따른 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치(1000)에 대한 블록도이고, 도 2는 도 1의 복수의 입력뉴런들(100_1~100_N)의 일 예를 보여주는 도면이며, 도 3은 도 1의 복수의 출력뉴런들(200_1~200_N)의 일 예를 보여주는 도면이고, 도 4는 도 1의 비지도 학습장치(1000)의 동작의 일 예를 보여주는 도면이다. 1 is a block diagram of a
도 1 내지 도 4를 참조하면, 비지도 학습장치(1000)는 스파이킹 뉴럴 네트워크(Spiking Neural Network, 10)와 시냅스 학습장치(500)를 포함할 수 있다. 1 to 4, the
먼저, 스파이킹 뉴럴 네트워크(10)는 복수의 입력뉴런들(100_1~100_N)과 복수의 출력뉴런들(200_1~200_N) 및 복수의 시냅스들(300_1~300_N)을 포함할 수 있다. 이때, 복수의 입력뉴런들(100_1~100_N)과 복수의 출력뉴런들(200_1~200_N)은 복수의 시냅스들(300_1~300_N)을 통해 서로 전기적으로 연결될 수 있다. First, the spiking
먼저, 복수의 입력뉴런들(100_1~100_N)은 입력이미지를 입력받을 수 있다. 이때, 복수의 입력뉴런들(100_1~100_N)은 복수의 입력뉴런들(100_1~100_N)의 개수에 따라, 입력이미지로부터 분할된 입력정보를 입력받을 수 있다. 여기서, 입력정보는 입력이미지로부터 분할된 픽셀들일 수 있다. First, a plurality of input neurons 100_1 to 100_N may receive an input image. At this time, the plurality of input neurons 100_1 to 100_N may receive input information divided from the input image according to the number of the plurality of input neurons 100_1 to 100_N. Here, the input information may be pixels divided from the input image.
실시예에 따라, 복수의 입력뉴런들(100_1~100_N)은 2차원의 위치정보와 프리신호(Pre_Spike)의 개수를 포함하는 3차원정보를 포함할 수 있다. 예를 들면, 제1 입력뉴런(100_1=120_1)은 X축 1과 Y축 1을 포함하는 위치정보 및 프리신호(Pre_Spike) 0개를 포함하는 3차원정보인 (1, 1, 0)를 포함할 수 있다. 또한, 제2 입력뉴런(100_1=110_1)은 X축 2와 Y축 1을 포함하는 위치정보 및 프리신호(Pre_Spike) 2개를 포함하는 3차원정보인 (2, 1, 2)를 포함할 수 있다. 또한, 제3 입력뉴런(100_1=110_2=130_1)은 X축 3과 Y축 1을 포함하는 위치정보 및 프리신호(Pre_Spike) 3개를 포함하는 3차원정보인 (3, 1, 3)를 포함할 수 있다. According to an embodiment, the plurality of input neurons 100_1 to 100_N may include three-dimensional information including two-dimensional location information and the number of free signals Pre_Spike. For example, the first input neuron (100_1 = 120_1) includes (1, 1, 0) three-dimensional information including position
이하에서는, 예시적으로, 본 발명에 대한 이해를 돕기 위해 복수의 입력뉴런들(100_1~100_N)과 복수의 출력뉴런들(200_1~200_N)을 다음과 같이 분류하여 정의한다.Hereinafter, illustratively, a plurality of input neurons 100_1 to 100_N and a plurality of output neurons 200_1 to 200_N are classified and defined as follows in order to help understanding of the present invention.
복수의 입력뉴런들(100_1~100_N)은 적어도 하나의 접속뉴런(110_1~110_N)과 적어도 하나의 차단뉴런들(120_1~120_N)을 포함할 수 있다. 보다 구체적으로, 적어도 하나의 접속뉴런(110_1~110_N)은 입력정보를 입력받아 프리신호(Pre_Spike)를 발화(Firing)할 수 있다. 또한, 적어도 하나의 차단뉴런들(120_1~120_N)은 입력정보를 입력받을 때, 프리신호(Pre_Spike)를 발화(Firing)하지 않을 수 있다.The plurality of input neurons 100_1 to 100_N may include at least one connection neuron 110_1 to 110_N and at least one blocking neuron 120_1 to 120_N. More specifically, at least one of the connection neurons 110_1 to 110_N may receive input information and ignite the pre-signal Pre_Spike. Also, when the input information is received, the at least one blocking neurons 120_1 to 120_N may not fire the pre-signal Pre_Spike.
즉, 복수의 입력뉴런들(100_1~100_N)은 입력정보에 대해 프리신호(Pre_Spike)를 발화(Firing)하는 적어도 하나의 접속뉴런(110_1~110_N)과 프리신호(Pre_Spike)를 발화(Firing)하지 않는 적어도 하나의 차단뉴런(120_1~120_N)으로 분류될 수 있다. 예를 들면, 복수의 입력뉴런들(100_1~100_N)은 입력받은 픽셀의 밝기세기에 따라, 프리신호(Pre_Spike)를 발화(Firing)하는 적어도 하나의 접속뉴런(110_1~110_N)과 발화(Firing)하지 않는 적어도 하나의 차단뉴런(120_1~120_N)으로 분류될 수 있다. That is, the plurality of input neurons 100_1 to 100_N do not fire at least one connection neuron 110_1 to 110_N and a free signal Pre_Spike firing a pre-signal (Pre_Spike) for input information. It may be classified as at least one blocking neuron (120_1 ~ 120_N). For example, the plurality of input neurons 100_1 to 100_N and at least one connection neuron 110_1 to 110_N firing a pre-signal (Pre_Spike) and firing according to the intensity of the received pixel It may be classified as at least one blocking neuron (120_1 ~ 120_N).
또한, 적어도 하나의 접속뉴런(110_1~110_N)은 프리신호(Pre_Spike)를 일정개수 이상 발화(Firing)하는 접속노드들(130_1~130_N)과 나머지 접속뉴런(예를 들면, 110_1, 110_3, 110_5, 110_6 등)을 포함할 수 있다. 즉, 적어도 하나의 접속뉴런(110_1~110_N)은 프리신호(Pre_Spike)를 발화한 개수에 따라, 접속노드들(130_1~130_N)과 나머지 접속뉴런(예를 들면, 110_1, 110_3, 110_5, 110_6 등)으로 정의할 수 있다. 예를 들면, 접속노드들(130_1~130_N)은 프리신호(Pre_Spike)를 3개 이상 발화한 적어도 하나의 접속뉴런(예를 들면, 110_2, 110_4 등)으로 정의할 수 있다. In addition, at least one of the connection neurons 110_1 to 110_N connects the connection nodes 130_1 to 130_N that fire a predetermined number of pre-signals (Pre_Spike) and the remaining connection neurons (for example, 110_1, 110_3, 110_5, 110_6, etc.). That is, at least one of the connection neurons 110_1 to 110_N is connected to the connection nodes 130_1 to 130_N and the remaining connection neurons (eg, 110_1, 110_3, 110_5, 110_6, etc.) according to the number of ignition of the pre-signal (Pre_Spike). ). For example, the connection nodes 130_1 to 130_N may be defined as at least one connection neuron (eg, 110_2, 110_4, etc.) in which three or more pre-signals (Pre_Spike) are spoken.
다음으로, 복수의 출력뉴런들(200_1~200_N)은 적어도 하나의 접속뉴런(110_1~110_N)으로부터 발화된 프리신호(Pre_Spike)를 복수의 시냅스들(300_1~300_N)을 통해 전달받을 수 있다. 즉, 복수의 출력뉴런들(200_1~200_N)은 복수의 입력뉴런들(100_1~100_N)과 프리신호(Pre_Spike)를 전달하는 복수의 시냅스들(300_1~300_N)을 통해 전기적으로 연결될 수 있다. Next, the plurality of output neurons 200_1 to 200_N may receive the pre-signal Pre_Spike uttered from at least one connection neuron 110_1 to 110_N through the plurality of synapses 300_1 to 300_N. That is, the plurality of output neurons 200_1 to 200_N may be electrically connected to the plurality of input neurons 100_1 to 100_N and a plurality of synapses 300_1 to 300_N transmitting a pre-signal Pre_Spike.
이때, 복수의 출력뉴런들(200_1~200_N)은 적어도 하나의 활동뉴런(210_1~210_N)과 적어도 하나의 비활동뉴런(220_1~220_N)을 포함할 수 있다. 보다 구체적으로, 복수의 출력뉴런들(200_1~200_N)이 적어도 하나의 접속뉴런(110_1~110_N)으로부터 프리신호(Pre_Spike)를 전송받을 때, 적어도 하나의 활동뉴런(210_1~210_N)은 포스트신호(Post_Spike)를 발화(Firing)하고, 적어도 하나의 비활동뉴런(220_1~220_N)은 포스트신호(Post_Spike)를 발화(Firing)하지 않을 수 있다. 즉, 복수의 출력뉴런들(200_1~200_N)은 프리신호(Pre_Spike)를 전송받을 때, 포스트신호(Post_Spike)의 발화(Firing)여부에 따라, 적어도 하나의 활동뉴런(210_1~210_N)과 적어도 하나의 비활동뉴런(220_1~220_N)으로 분류될 수 있다.At this time, the plurality of output neurons 200_1 to 200_N may include at least one active neuron 210_1 to 210_N and at least one inactive neuron 220_1 to 220_N. More specifically, when a plurality of output neurons 200_1 to 200_N receive a pre-signal Pre_Spike from at least one connection neuron 110_1 to 110_N, at least one activity neuron 210_1 to 210_N is a post signal ( Post_Spike), and at least one inactive neuron 220_1 to 220_N may not fire a Post signal (Post_Spike). That is, when a plurality of output neurons 200_1 to 200_N receive a pre-signal Pre_Spike, at least one activity neuron 210_1 to 210_N is at least one, depending on whether a post signal is fired. It can be classified as inactive neurons of (220_1 ~ 220_N).
본 출원에서는, 예를 들어, 적어도 하나의 활동뉴런(210_1~210_N) 중 포스트신호(Post_Spike)를 최대 개수로 발화(Firing)하는 하나의 활동뉴런(예를 들면, 210_2)을 출력노드(230)로 정의할 수 있다. In the present application, for example, an
실시 예에 따라, 복수의 출력뉴런들(200_1~200_N)은 2차원의 위치정보와 포스트신호(Post_Spike)의 개수를 포함하는 3차원정보를 포함할 수 있다. 예를 들면, 제3 출력뉴런(200_3=210_1)은 X축 3과 Y축 1을 포함하는 위치정보 및 포스트신호(Post_Spike) 1개를 포함하는 3차원정보인 (3, 1, 1)를 포함할 수 있다. 또한, 제11 출력뉴런(200_11=210_2=230)은 X축 4와 Y축 3을 포함하는 위치정보 및 프리신호(Pre_Spike) 5개를 포함하는 3차원정보인 (4, 3, 5)를 포함할 수 있다. According to an embodiment, the plurality of output neurons 200_1 to 200_N may include 3D information including 2D location information and the number of post signals (Post_Spike). For example, the third output neuron 200_3 = 210_1 includes (3, 1, 1) three-dimensional information including position information including one of the X-axis 3 and
다음으로, 복수의 시냅스들(300_1~300_N)은 프리신호(Pre_Spike)를 통해 복수의 입력뉴런들(100_1~100_N)과 복수의 출력뉴런들(200_1~200_N)을 연결시킬 수 있다. 즉, 복수의 시냅스들(300_1~300_N)는 복수의 입력뉴런들(100_1~100_N)로부터 프리신호(Pre_Spike)를 복수의 출력뉴런들(200_1~200_N)에 전달하는 복수의 연결선인 동시에 네트워크를 의미할 수 있다. Next, the plurality of synapses 300_1 to 300_N may connect the plurality of input neurons 100_1 to 100_N and the output neurons 200_1 to 200_N through a pre-signal Pre_Spike. That is, the plurality of synapses (300_1 ~ 300_N) is a plurality of connection lines for transmitting a pre-signal (Pre_Spike) from a plurality of input neurons (100_1 ~ 100_N) to a plurality of output neurons (200_1 ~ 200_N) at the same time means the network can do.
또한, 복수의 시냅스들(300_1~300_N)은 복수의 입력뉴런들(100_1~100_N)과 복수의 출력뉴런들(200_1~200_N)을 연결하는 연결선 각각의 시냅스가중치(Synaptic Weight)를 포함할 수 있다. 여기서, 시냅스가중치는 연결선의 연결 강도를 나타내며, 프리신호(Pre_Spike)에 응답하여, 일정시간에 따라 갱신되는 상태값을 의미할 수 있다. 이하, 본 발명에서는 갱신되기 이전 상태의 시냅스가중치를 제1 가중치라 하고, 갱신된 이후 상태의 시냅스가중치를 제2 가중치라 정의한다. Also, the plurality of synapses 300_1 to 300_N may include synaptic weights of each of the connecting lines connecting the plurality of input neurons 100_1 to 100_N and the plurality of output neurons 200_1 to 200_N. . Here, the synapse weight value indicates the connection strength of the connection line, and may mean a status value updated according to a predetermined time in response to the pre-signal (Pre_Spike). Hereinafter, in the present invention, the synaptic weight of the state before the update is defined as the first weight, and the synaptic weight of the state after the update is defined as the second weight.
또한, 복수의 시냅스들(300_1~300_N)은 3차원정보를 포함할 수 있다. 예를 들면, 어느 하나의 입력뉴런(100_1)과 어느 하나의 출력뉴런(200_3)에 연결된 어느 하나의 시냅스(예컨대, 300_2)는 어느 하나의 입력뉴런(100_1)에 대한 식별정보, 어느 하나의 출력뉴런(200_1)에 대한 식별정보 및 시냅스가중치를 포함하는 3차원정보를 포함할 수 있다. Also, the plurality of synapses 300_1 to 300_N may include 3D information. For example, any synapse (eg, 300_2) connected to any one input neuron 100_1 and one output neuron 200_3 is identification information for any one input neuron 100_1, any one output The neuron 200_1 may include 3D information including identification information and a synaptic weighting value.
다음으로, 시냅스 학습장치(500)는 스파이킹 뉴럴 네트워크(10)에 전기적으로 연결되고, 이진이미지를 입력받는 스파이킹 뉴럴 네트워크(10)를 통해 데이터를 주고 받을 수 있다. Next, the
보다 구체적으로, 시냅스 학습장치(500)는 제1 처리부(510), 제2 처리부(520) 및 제3 처리부(530)를 포함할 수 있다. More specifically, the
먼저, 제1 처리부(510)는 복수의 입력뉴런들(100_1~100_N) 대비 접속노드들(130_1~130_N)과의 연결비율에 따라, 접속노드들(130_1~130_N)에 대한 이진화(binary)를 통해 제1 이미지를 생성할 수 있다. 여기서, 제1 이미지는 접속노드들(130_1~130_N)에 포함된 3차원정보를 기초로 이진화(binary)된 그레이스케일 이미지일 수 있다. First, the
보다 구체적으로, 제1 처리부(510)는 복수의 입력뉴런들(100_1~100_N) 대비 접속노드들(130_1~130_N)의 연결비율이 임계치에 해당하는 지를 판단할 수 있다. 이때, 상기 연결비율이 임계치에 해당할 때, 제1 처리부(510)는 접속노드들(130_1~130_N)에 대한 이진화(binary)를 통해 그레이스케일 이미지인 제1 이미지를 생성할 수 있다. More specifically, the
다음으로, 제2 처리부(520)는 복수의 출력뉴런들(200_1~200_N) 중 포스트신호(Post_Spike)를 최대 개수로 발화하는 출력노드(230)를 선택할 수 있다. 그런 다음, 제2 처리부(520)는 출력노드(230)에 전기적으로 연결된 복수의 시냅스들(300_1~300_N)의 제1 가중치들을 기초로, 제2 이미지를 생성할 수 있다. 여기서, 제1 가중치들은 출력노드(230)에 연결된 복수의 시냅스들(300_1~300_N)에 포함된 갱신되기 이전의 시냅스가중치들일 수 있다. Next, the
보다 구체적으로, 제2 처리부(520)는 출력노드(230)와 복수의 입력뉴런들(100_1~100_N)을 연결하는 적어도 하나의 시냅스들(예를 들면, 300_1~300_6, 300_18~300_N)을 선택할 수 있다. 그런 다음, 제2 처리부(520)는 적어도 하나의 시냅스들(예를 들면, 300_1~300_6, 300_18~300_N)로부터 복수의 입력뉴런들(100_1~100_N)의 식별정보와 해당 제1 가중치들을 추출할 수 있다. 이때, 제2 처리부(520)는 복수의 입력뉴런들(100_1~100_N)의 식별정보와 해당 제1 가중치들을 기초로 제2 이미지를 생성할 수 있다. 여기서, 제2 이미지는, 복수의 입력뉴런들(100_1~100_N)의 식별정보와 해당 제1 가중치들에 따라 이진화(binary)된 그레이스케일 이미지일 수 있다. More specifically, the
다음으로, 제3 처리부(530)는 제1 이미지와 제1 가중치들에 대한 평균기반의 학습알고리즘을 통해 제2 가중치들을 획득할 수 있다. 그런 다음, 제3 처리부(530)는 복수의 시냅스들(300_1~300_N)에 대한 제1 가중치들을 제2 가중치들로 갱신할 수 있다. 이어서, 제3 처리부(530)는 복수의 시냅스들(300_1~300_N)의 제2 가중치들을 기초로 제3 이미지를 생성할 수 있다. 여기서, 제3 이미지는 입력이미지에 대하여 기설정된 비율의 인식정확도를 갖는 프로토타입의 그레이스케일 이미지일 수 있다. 예를 들면, 제3 이미지는, 입력이미지에 대하여 82%의 인식정확도를 갖는 이미지일 수 있다. Next, the
이때, 제3 처리부(530)는 복수의 시냅스들(300_1~300_N)에 대한 제1 가중치들과 제2 가중치들을 서로 비교할 수 있다. 보다 구체적으로, 제3 처리부(530)는 제1 및 제2 가중치들 간의 동일 여부에 따라, 상기 학습알고리즘에 대한 비활성화 여부를 결정할 수 있다. In this case, the
보다 구체적으로, 제1 가중치들이 갱신되기 이전일 때, 제1 및 제2 가중치들이 서로 동일하지 않는 경우, 제3 처리부(530)는 제1 이미지와 제1 가중치들에 대한 평균기반의 학습알고리즘을 통해 제2 가중치들을 획득할 수 있다. 한편, 제1 가중치들이 제2 가중치들로 갱신될 때, 제1 및 제2 가중치들이 서로 동일한 경우, 제3 처리부(530)는 평균기반의 학습알고리즘을 비활성화할 수 있다. 즉, 제3 처리부(530)는 제1 가중치들을 제2 가중치들로 갱신한 이후에, 평균기반의 학습알고리즘에 대한 이용을 중지할 수 있다. More specifically, when the first and second weights are not equal to each other before the first weights are updated, the
여기서, 평균기반의 학습알고리즘은 다음식들을 포함할 수 있다. Here, the average-based learning algorithm may include the following equations.
수학식 (1)과 수학식 (2)는, Equation (1) and equation (2),
(1) 이고, (1)
(2)일 수 있다. (2).
여기서, f(x)는 임의의 입력값인 x에 대하여 식(2)의 결과를 나타내는 함수이고, 이때, flag는 상기 제1 이미지이고, Wn은 상기 제1 가중치들이며, Wn+1은 상기 제2 가중치들일 수 있다. Here, f (x) is a function representing the result of equation (2) for x, which is an arbitrary input value, where flag is the first image, Wn is the first weights, and W n + 1 is the It may be second weights.
예를 들면, 수학식 (2)를 참조하면, Wn과 flag가 서로 동일한 1의 값을 갖는 경우, x는 2의 입력값을 갖는 것을 의미하고, f(x)는 x의 평균인 1의 값을 갖는 것을 의미할 수 있다. 또한, Wn과 flag가 서로 동일한 0의 값을 갖는 경우, x는 0의 값을 갖는 것을 의미하고, f(x)는 x의 평균인 0의 값을 갖는 것을 의미할 수 있다. 즉, Wn과 flag가 서로 동일한 경우, Wn+1는 Wn와 동일할 수 있다. 이에 따라, Wn과 flag가 서로 동일한 경우, 제3 처리부(530)는 평균기반의 학습알고리즘을 수행하지 않음을 의미할 수 있다.For example, referring to Equation (2), when Wn and flag have the same value of 1, x means that it has an input value of 2, and f (x) is the value of 1, which is the average of x. It may mean having. In addition, when Wn and the flag have the same value of 0, x means that it has a value of 0, and f (x) can mean that it has a value of 0, which is the average of x. That is, when Wn and flag are the same, Wn + 1 may be the same as Wn. Accordingly, when the Wn and the flag are the same, the
한편, Wn과 flag가 서로 동일하지 않는 값을 갖는 경우, x는 1의 값을 갖는 것을 의미하고, f(x)는 0 또는 1의 값을 갖는 것을 의미할 수 있다. 예를 들면, Wn이 0이고, flag가 1일 때, f(x)=Wn+1가 1인 경우 또는, Wn이 1이고, flag가 0일 때, f(x)=Wn+1가 0인 경우, Wn+1는 Wn와 동일하지 않을 수 있다. 이에 따라, Wn와 flag가 서로 동일하지 않을 때, 제3 처리부(530)는 평균기반의 학습알고리즘을 수행함을 의미할 수 있다. On the other hand, when Wn and flag have a value that is not the same as each other, x means that it has a value of 1, and f (x) can mean that it has a value of 0 or 1. For example, when Wn is 0 and the flag is 1, f (x) = Wn + 1 is 1 or when Wn is 1 and the flag is 0, f (x) = Wn + 1 is 0 In the case of, Wn + 1 may not be the same as Wn. Accordingly, when the Wn and the flags are not the same, the
즉, 제3 처리부(530)는 복수의 시냅스들(300_1~300_N)에 대한 제1 가중치들(Wn)과 제2 가중치들(Wn+1)을 서로 비교할 수 있다. 그런 다음, 제1 가중치들(Wn)과 제2 가중치들(Wn+1)이 서로 다를 때, 제3 처리부(530)는 제1 이미지(flag)와 제1 가중치들(Wn)에 대한 평균기반의 학습알고리즘을 통해 획득되는 제2 가중치들(Wn+1)을 기초로, 제3 이미지를 획득할 수 있다. 한편, 제1 가중치들(Wn)과 제2 가중치들(Wn+1)이 동일할 때, 제3 처리부(530)는 평균기반의 학습알고리즘에 대한 이용을 중지할 수 있다. That is, the
이에 따라, 본 출원의 실시예에 따른 비지도 학습장치(1000)는 평균기반의 학습알고리즘에 대한 한번의 연산을 통해 높은 인식정확도를 유지하는 제3 이미지를 획득하는 동시에, 메모리와 연산의 부담을 최소화시킬 수 있다. Accordingly, the
도 5는 도 1의 제1 처리부(510)의 동작의 일 예를 보여주는 도면이다.5 is a view showing an example of the operation of the
도 1 내지 도 5를 참조하면, 제1 처리부(510)는 복수의 제1 카운터들(511_1~511_N) 및 복수의 플래그설정부들(513_1~513_N)을 더 포함할 수 있다. 1 to 5, the
먼저, 복수의 제1 카운터들(511_1~511_N)은 복수의 입력뉴런들(100_1~100_N)과 전기적으로 연결될 수 있다. 이때, 복수의 제1 카운터들(511_1~511_N)은 복수의 입력뉴런들(100_1~100_N)로부터 발화되는 프리신호(Pre_Spike)의 개수를 카운트할 수 있다. 복수의 제1 카운터들(511_1~511_N)은 2비트 이진카운터로서, 프리신호(Pre_Spike)의 개수를 3개 이하까지 카운트할 수 있다. 즉, 복수의 제1 카운터들(511_1~511_N)은 복수의 입력뉴런들(100_1~100_N) 중 적어도 하나의 접속뉴런(110_1~110_N)을 통해 발화(Firing)하는 프리신호(Pre_Spike)의 개수를 카운트할 수 있다. First, the plurality of first counters 511_1 to 511_N may be electrically connected to the plurality of input neurons 100_1 to 100_N. In this case, the plurality of first counters 511_1 to 511_N may count the number of pre-signals Pre_Spike uttered from the plurality of input neurons 100_1 to 100_N. The plurality of first counters 511_1 to 511_N are 2-bit binary counters and can count the number of pre-signals Pre_Spike to 3 or less. That is, the plurality of first counters 511_1 to 511_N counts the number of free signals Pre_Spike fired through at least one connection neuron 110_1 to 110_N among the plurality of input neurons 100_1 to 100_N. You can count.
이에 따라, 제1 처리부(510)는 복수의 제1 카운터들(511_1~511_N)을 통해 복수의 입력뉴런들(100_1~100_N)을 적어도 하나의 접속뉴런(110_1~110_N)과 적어도 하나의 차단뉴런들(120_1~120_N)로 분류하는 기능을 수행할 수 있다. Accordingly, the
다음으로, 복수의 플래그설정부들(513_1~513_N)은 접속노드들(130_1~130_N)에 1비트의 플래그를 부여할 수 있다. 여기서, 1비트의 플래그는, 적어도 하나의 접속뉴런(110_1~110_N)과 접속노드들(130_1~130_N)을 식별하기 위한 비트일 수 있다. 보다 구체적으로, 복수의 플래그설정부들(513_1~513_N)은 적어도 하나의 접속뉴런(110_1~110_N) 중 프리신호(Pre_Spike)의 개수가 일정개수 이상인 접속노드들(130_1~130_N)에 1비트의 플래그를 부여할 수 있다. 즉, 플래그가 부여된 개수는 접속노드들(130_1~130_N)의 개수일 수 있다. Next, the plurality of flag setting units 513_1 to 513_N may give a flag of 1 bit to the connection nodes 130_1 to 130_N. Here, the 1-bit flag may be a bit for identifying at least one connection neuron 110_1 to 110_N and connection nodes 130_1 to 130_N. More specifically, the plurality of flag setting units 513_1 to 513_N have a flag of 1 bit in connection nodes 130_1 to 130_N in which the number of free signals Pre_Spike is a predetermined number or more among at least one connection neuron 110_1 to 110_N. Can be given. That is, the number of flags may be the number of connection nodes 130_1 to 130_N.
이에 따라, 제1 처리부(510)는 복수의 플래그설정부들(513_1~513_N)을 통해 적어도 하나의 접속뉴런(110_1~110_N)을 접속노드들(130_1~130_N)과 나머지 접속뉴런(예를 들면, 110_1, 110_3, 110_5, 110_6 등)으로 분류하는 기능을 수행할 수 있다. Accordingly, the
실시예에 따라, 제1 처리부(510)는 접속노드들(130_1~130_N)과의 연결비율과 기설정된 임계치를 비교할 수 있다. 여기서, 연결비율은 복수의 입력뉴런들(100_1~100_N)의 개수 대비 접속노드들(130_1~130_N)의 개수에 대한 비율과 동일할 수 있다. 즉, 제1 처리부(510)는 플래그가 부여된 개수에 따른 연결비율과 기설정된 임계치를 비교할 수 있다. According to an embodiment, the
보다 구체적으로, 연결비율이 임계치 미만인 경우, 제1 처리부(510)는 복수의 제1 카운터들(511_1~511_N)을 통해 카운트된 프리신호(Pre_Spike)의 개수를 메모리(600)에 업데이트할 수 있다. 여기서, 복수의 제1 카운터들(511_1~511_N)을 통해 카운트된 프리신호(Pre_Spike)의 개수는 적어도 하나의 접속뉴런(110_1~110_N)을 통해 발화한 프리신호(Pre_Spike)의 개수일 수 있다. More specifically, when the connection ratio is less than the threshold, the
예를 들면, 복수의 입력뉴런들(100_1~100_N)의 개수가 784개이고, 적어도 하나의 접속뉴런(110_1~110_N)의 개수가 200개이며, 접속노드들(130_1~130_N)의 개수가 100이고, 임계치가 20.15%일 때, 연결비율은 약 12.7%일 수 있다. 이때, 연결비율이 임계치 미만이므로, 제1 처리부(510)는 복수의 제1 카운터들(511_1~511_N)을 통해 카운트된 프리신호(Pre_Spike)의 개수 200개를 메모리(600)에 업데이트할 수 있다. 즉, 제1 처리부(510)는 프리신호(Pre_Spike)의 개수 200개에 해당하는 적어도 하나의 접속뉴런(110_1~110_N)을 메모리(600)에 업데이트할 수 있다. For example, the number of input neurons 100_1 to 100_N is 784, the number of at least one connection neuron 110_1 to 110_N is 200, and the number of connection nodes 130_1 to 130_N is 100. , When the threshold is 20.15%, the connection ratio may be about 12.7%. At this time, since the connection ratio is less than a threshold, the
또한, 연결비율이 임계치인 경우, 제1 처리부(510)는 복수의 플래그설정부들(513_1~513_N)을 통해 부여된 플래그의 개수를 메모리(600)에 업데이트할 수 있다. 여기서, 플래그의 개수는 접속노드들(130_1~130_N)의 개수일 수 있다. 예를 들면, 복수의 입력뉴런들(100_1~100_N)의 개수가 784개이고, 접속노드들(130_1~130_N)의 개수가 168이며, 임계치가 20.15%일 때, 연결비율은 20.15%일 수 있다. 이때, 연결비율이 임계치이므로, 제1 처리부(510)는 복수의 플래그설정부들(513_1~513_N)을 통해 부여된 플래그의 개수 168개를 메모리(600)에 업데이트할 수 있다. 즉, 제1 처리부(510)는 플래그의 개수 168개에 해당하는 접속노드들(130_1~130_N)을 메모리(600)에 업데이트할 수 있다.In addition, when the connection ratio is a threshold, the
또한, 연결비율이 임계치를 초과하는 경우, 제1 처리부(510)는 복수의 제1 카운터들(511_1~511_N) 및 복수의 플래그설정부들(513_1~513_N)를 비활성화할 수 있다. 예를 들면, 복수의 입력뉴런들(100_1~100_N)의 개수가 784개이고, 접속노드들(130_1~130_N)의 개수가 200이며, 임계치가 20.15%일 때, 연결비율은 25.51%일 수 있다. 이때, 연결비율이 임계치를 초과하므로, 제1 처리부(510)는 복수의 제1 카운터들(511_1~511_N) 및 복수의 플래그설정부들(513_1~513_N)를 모두 비활성화할 수 있다. In addition, when the connection ratio exceeds the threshold, the
도 6은 도 1의 제2 처리부(520)의 동작의 일 예를 보여주는 도면이고, 도 7은 도 1의 제2 처리부(520)의 동작의 일 예를 보여주는 도면이다.6 is a view showing an example of the operation of the
도 1 내지 도 7을 참조하면, 제2 처리부(520)는 복수의 출력뉴런들(200_1~200_N)과 전기적으로 연결될 수 있다. 이때, 제2 처리부(520)는 적어도 하나의 접속뉴런(110_1~110_N)으로부터 점화(Firing)된 프리신호(Pre_Spike)를 따라, 복수의 시냅스들(300_1~300_N)을 통해 연결된 복수의 출력뉴런들(200_1~200_N)의 멤브레인 전위(VMEM)를 감지할 수 있다. 1 to 7, the
예를 들면, 복수의 출력뉴런들(200_1~200_N)은 복수의 입력뉴런들(100_1~100_N) 중 적어도 하나의 접속뉴런(110_1~110_N)으로부터 복수의 시냅스들(300_1~300_N)를 통해 프리신호(Pre_Spike)를 전달받을 수 있다. 이에 따라, 복수의 출력뉴런들(200_1~200_N)은 전달받는 프리신호(Pre_Spike)에 따라, 멤브레인 전위가 변화될 수 있다. For example, the plurality of output neurons 200_1 to 200_N is a pre-signal through a plurality of synapses 300_1 to 300_N from at least one connection neuron 110_1 to 110_N among the plurality of input neurons 100_1 to 100_N. (Pre_Spike) can be delivered. Accordingly, the membrane potentials of the plurality of output neurons 200_1 to 200_N may be changed according to the received pre-signal Pre_Spike.
이때, 복수의 출력뉴런들(200_1~200_N) 중 멤브레인 전위가 임계전위(θ)를 초과하는 어느 하나의 출력뉴런(예컨대, 210_1~210_N)은 포스트신호(Post_Spike)를 발화(Firing)할 수 있다. 즉, 어느 하나의 출력뉴런(예컨대, 210_1~210_N)은 복수의 출력뉴런들(200_1~200_N) 중 포스트신호(Post_Spike)를 발화(Firing)하는 적어도 하나의 활동뉴런(210_1~210_N)일 수 있다. At this time, any one of the output neurons (eg, 210_1 to 210_N) whose membrane potential exceeds the threshold potential (θ) among the plurality of output neurons (200_1 to 200_N) may fire a Post signal (Post_Spike). . That is, any one of the output neurons (eg, 210_1 to 210_N) may be at least one activity neuron 210_1 to 210_N firing a post signal (Sp_Spike) among the plurality of output neurons 200_1 to 200_N. .
실시예에 따른 제2 처리부(520)는 포스트신호(Post_Spike)를 카운트하는 복수의 제2 카운터들(521_1~521_N)을 포함할 수 있다. 여기서, 복수의 제2 카운터들(521_1~521_N)은 복수의 출력뉴런들(200_1~200_N)과 전기적으로 연결될 수 있다. 보다 구체적으로, 복수의 제2 카운터들(521_1~521_N)은 복수의 출력뉴런들(200_1~200_N) 중 적어도 하나의 활동뉴런(210_1~210_N)을 통해 발화(Firing)하는 포스트신호(Post_Spike)를 카운트할 수 있다. The
즉, 제2 처리부(520)는 복수의 제2 카운터들(521_1~521_N)을 통해 복수의 출력뉴런들(200_1~200_N)을 적어도 하나의 활동뉴런(210_1~210_N)과 적어도 하나의 비활동뉴런(220_1~220_N)으로 분류할 수 있다. 예를 들면, 제1 출력뉴런(200_1=210_1)이 발화(Firng)하는 포스트신호(Post_Spike)의 개수가 3개이고, 제2 출력뉴런(200_1=220_1)이 발화(Firng)하는 포스트신호(Post_Spike)의 개수가 0개이며, 제3 출력뉴런(200_3=210_1)이 발화(Firng)하는 포스트신호(Post_Spike)의 개수가 1개일 때, 제2 처리부(520)는 제1 출력뉴런(200_1=210_1)과 제3 출력뉴런(200_3=210_1)을 적어도 하나의 활동뉴런(210_1~210_N)으로 분류할 수 있다. That is, the
이때, 제2 처리부(520)는 복수의 제2 카운터들(521_1~521_N)을 통해 카운트된 포스트신호(Post_Spike)의 개수를 메모리(600)에 업데이트할 수 있다. 여기서, 포스트신호(Post_Spike)의 개수는 적어도 하나의 활동뉴런(210_1~210_N)의 개수일 수 있다. At this time, the
또한, 제2 처리부(520)는 복수의 제2 카운터들(521_1~521_N)을 통해 카운트된 적어도 하나의 활동뉴런(210_1~210_N) 중 포스트신호(Post_Spike)의 개수가 최대인 출력노드(230)를 선택할 수 있다. 예를 들면, 제1 출력뉴런(200_1=210_1)이 발화(Firng)하는 포스트신호(Post_Spike)의 개수가 3개이고, 제2 출력뉴런(200_1=220_1)이 발화(Firng)하는 포스트신호(Post_Spike)의 개수가 0개이며, 제3 출력뉴런(200_3=210_1)이 발화(Firng)하는 포스트신호(Post_Spike)의 개수가 1개일 때, 제2 처리부(520)는 제1 출력뉴런(200_1=210_1)을 출력노드(230)로 선택할 수 있다. In addition, the
이어서, 제2 처리부(520)는 출력노드(230)에 연결된 적어도 하나의 접속뉴런(140_1~140_N)의 식별정보와 해당 복수의 시냅스들(300_1~300_N)의 제1 가중치들을 추출할 수 있다. 그런 다음, 제2 처리부(520)는 제1 가중치들을 기초로, 출력노드(230)에 연결된 적어도 하나의 접속뉴런(140_1~140_N)의 식별정보에 대한 이진화를 통해 제2 이미지를 생성할 수 있다. Subsequently, the
한편, 포스트신호(Post_Spike)가 복수의 제2 카운터들(521_1~521_N)을 통해 카운트되지 않을 때, 제2 처리부(520)는 복수의 출력뉴런들(200_1~200_N)로부터 감지되는 멤브레인 전위를 메모리(600)에 업데이트할 수 있다. Meanwhile, when the post signal Post_Spike is not counted through the plurality of second counters 521_1 to 521_N, the
도 8은 도 1의 제3 처리부(530)의 동작의 일 예를 보여주는 도면이다.8 is a view showing an example of the operation of the
도 1 내지 도 8을 참조하면, 먼저, 제3 처리부(530)는 제1 및 제2 시스(310, 320)와 전기적으로 연결되고, 제1 및 제2 처리부(510, 520)를 통해 학습시간구간(tstop-tstart)을 설정할 수 있다. 1 to 8, first, the
보다 구체적으로, 제3 처리부(530)는 제1 처리부(510)를 통해 프리신호(Pre_Spike)를 카운트하는 시점을 시작시점(tstart)으로 설정할 수 있다. 이어서, 제3 처리부(530)는 제2 처리부(520)를 통해 포스트신호(Post_Spike)의 개수 또는 멤브레인 전위를 메모리(600)에 업데이트한 시점을 종료시점(tstop)으로 설정할 수 있다. 이때, 제3 처리부(530)는 시작시점(tstart)부터 종료시점(tstop)까지의 시간구간을 학습시간구간(tstop-tstart)으로 설정할 수 있다. More specifically, the
즉, 제3 처리부(530)는 제1 종료시점(tstop1)을 기준으로, 제1 시작시점(tstart1)과의 시간구간을 제1 학습시간구간(tstop1-tstart1)으로 설정할 수 있다. 또한, 제3 처리부(530)는 제1 학습시간구간(tstop1-tstart1) 이후에, 복수의 입력뉴런들(100_1~100_N)으로부터 발화(Firing)하는 프리신호(Pre_Spike)를 감지할 수 있다. 이때, 제3 처리부(530)는 제1 학습시간구간(tstop1-tstart1) 이후에, 발화(Firing)하는 프리신호(Pre_Spike)의 감지 여부에 따라, 다음 학습시간구간(tstop2-tstart2)을 설정할 수 있다. That is, the
즉, 제3 처리부(530)는 학습시간구간(tstop-tstart) 이후에 발화(Firing)하는 프리신호(Pre_Spike)의 감지 여부에 따라, 복수의 학습시간구간들(tstop1~stopN-tstart1~startN)을 반복적으로 설정할 수 있다. 이에 따라, 도 5에 도시된 복수의 제1 카운터들(511_1~511_N)은 제3 처리부(530)를 통해 설정된 복수의 학습시간구간들에 따라, 프리신호(Pre_Spike)를 카운트할 수 있다. That is, the
다시 도 1 내지 도 8을 참조하면, 제3 처리부(530)는 마지막 학습시간구간(tstopN-tstartN)에서, 제1 및 제2 가중치들의 동일 여부에 따라, 평균기반 학습알고리즘에 대한 비활성화 여부를 결정할 수 있다. 보다 구체적으로, 마지막 학습시간구간(tstopN-tstartN)에서, 제1 및 제2 가중치들이 서로 다를 때, 제3 처리부(530)는 제1 이미지와 제1 가중치들에 대한 평균기반 학습알고리즘를 통해 제3 이미지를 획득할 수 있다. 그런 다음, 제3 처리부(530)는 제3 이미지를 메모리(600)에 업데이트할 수 있다. Referring back to FIGS. 1 to 8, the
한편, 마지막 학습시간구간(tstopN-tstartN)에서, 제1 및 제2 가중치들이 서로 동일할 때, 제3 처리부(530)는 평균기반 학습알고리즘에 대한 이용을 비활성할 수 있다. 이에 따라, 제3 처리부(530)는 제3 이미지를 메모리(600)에 업데이트할 수 없기 때문에, 메모리(600)의 사용량을 감소시킬 수 있는 효과가 있다. 이후, 제3 처리부(530)는 스파이킹 뉴럴 네트워크(10)를 통해 다른 입력이미지를 입력받을 때, 제1 및 제2 처리부(510, 520)를 리셋(RESET)할 수 있다. On the other hand, in the last learning time interval (t stopN -t startN ), when the first and second weights are the same, the
도 9는 본 출원의 실시예에 따른 비지도 학습방법에 대한 순서도이다. 9 is a flowchart for an unsupervised learning method according to an embodiment of the present application.
도 1 내지 도 9를 참조하면, S110 단계에서, 제1 처리부(510)는 복수의 입력뉴런들(100_1~100_N) 대비 접속노드들(130_1~130_N)과의 연결비율에 따라, 접속노드들(130_1~130_N)에 대한 이진화를 통해 제1 이미지를 생성할 수 있다. Referring to FIGS. 1 to 9, in step S110, the
다음으로, S120 단계에서, 제2 처리부(520)는 복수의 출력뉴런들(200_1~200_N) 중 포스트신호(Post_Spike)를 최대 개수로 발화하는 하나의 출력노드(예를 들면, 230)를 선택할 수 있다. Next, in step S120, the
이때, S130 단계에서, 제2 처리부(520)는 하나의 출력노드(예를 들면, 230)에 연결된 복수의 시냅스들(300_1~300_N)의 제1 가중치들을 기초로, 제2 이미지를 생성할 수 있다. At this time, in step S130, the
다음으로, S140 단계에서, 제3 처리부(530)는 제1 처리부(510)를 통해 생성된 제1 이미지와 제2 처리부(520)를 통해 획득되는 제1 가중치들에 대한 평균기반의 학습알고리즘을 통해 제2 가중치들을 획득할 수 있다. Next, in step S140, the
이후, S150 단계에서, 제3 처리부(530)는 획득된 제2 가중치들을 기초로, 제3 이미지를 생성하고, 메모리(600)에 업데이트할 수 있다. Thereafter, in step S150, the
도 10은 도 9의 비지도 학습방법에 대한 보다 구체적인 동작을 나타내는 순서도이다. 10 is a flowchart illustrating a more specific operation of the unsupervised learning method of FIG. 9.
도 1 내지 도 10을 참조하면, 먼저, S210 단계에서, 복수의 입력뉴런들(100_1~100_N)은 입력이미지로부터 분할된 입력정보를 입력받을 수 있다. 여기서, 입력정보는 입력이미지로부터 복수개로 분할된 픽셀일 수 있다. 1 to 10, first, in step S210, a plurality of input neurons 100_1 to 100_N may receive input information divided from an input image. Here, the input information may be pixels divided into a plurality of images from the input image.
이때, S220 단계에서, 제3 처리부(530)는 제1 및 제2 처리부(510, 520)를 리셋(RESET)할 수 있다. At this time, in step S220, the
다음으로, S230 단계에서, 제1 처리부(510)는 복수의 입력뉴런들(100_1~100_N)의 개수 대비 접속노드들(130_1~130_N)의 개수에 대한 연결비율과 임계치를 비교할 수 있다. Next, in step S230, the
이때, 연결비율과 임계치일 때, 또는 연결비율이 임계치보다 클 때, S240 단계에서, 제1 처리부(510)는 접속노드들(130_1~130_N)에 대한 이진화를 통해 제1 이미지를 생성할 수 있다. At this time, when the connection ratio and the threshold, or when the connection ratio is greater than the threshold, in step S240, the
보다 구체적으로, 연결비율과 임계치일 때, S250 단계에서, 제1 처리부(510)는 접속노드들(130_1~130_N)에 부여된 플래그의 개수를 메모리(600)에 업데이트할 수 있다. More specifically, when the connection ratio and the threshold, in step S250, the
또한, 연결비율이 임계치보다 클 때, S260 단계에서, 제1 처리부(510)는 복수의 제1 카운터들(511_1~511_N) 및 복수의 플래그설정부들(513_1~513_N)을 비활성할 수 있다. In addition, when the connection ratio is greater than the threshold, in step S260, the
한편, 연결비율이 임계치 미만일 때, 플래그의 개수가 업데이트된 이후 또는 복수의 제1 카운터들(511_1~511_N) 및 복수의 플래그설정부들(513_1~513_N)이 비활성화된 이후인, S270 단계에서, 제1 처리부(510)는 적어도 하나의 접속뉴런(110_1~110_N)으로부터 발화한 프리신호(Pre_Spike)의 개수를 메모리(600)에 업데이트할 수 있다. 이때, S270 단계에서, 제2 처리부(520)는 복수의 출력뉴런들(200_1~200_N)의 멤브레인 전위를 메모리(600)에 업데이트할 수 있다.On the other hand, when the connection ratio is less than the threshold, after the number of flags is updated or after a plurality of first counters (511_1 ~ 511_N) and a plurality of flag setting unit (513_1 ~ 513_N) is deactivated, in step S270, the first 1 The
그런 다음, S280 단계에서, 제2 처리부(520)는 복수의 출력뉴런들(200_1~200_N) 중 적어도 하나의 활동뉴런(210_1~210_N)으로부터 발화하는 포스트신호(Post_Spike)의 개수를 카운트할 수 있다. Then, in step S280, the
이때, S290단계에서, 제2 처리부(520)는 적어도 하나의 활동뉴런(210_1~210_N)으로부터 발화하는 포스트신호(Post_Spike)의 개수를 메모리(600)에 업데이트할 수 있다.At this time, in step S290, the
한편, 포스트신호(Post_Spike)가 카운트되지 않을 때 또는 제2 처리부(520)가 포스트신호(Post_Spike)의 개수를 메모리(600)에 업데이트한 이후에, S300단계에서, 제3 처리부(530)는 다음 학습시간구간의 존재여부를 확인할 수 있다. On the other hand, when the post signal (Post_Spike) is not counted or after the
그런 다음, 다음 학습시간구간이 존재하는 경우, S230단계에서, 제1 처리부(510)는 다음 학습시간구간에서 연결비율이 임계치에 해당하는 지를 판단할 수 있다. 즉, 다음 학습시간구간이 존재하는 경우, 제1 내지 제3 처리부(510, 520 및 530)는 S230 단계 내지 S300 단계를 반복하여 수행할 수 있다. Then, when the next learning time interval exists, in step S230, the
다음으로, 마지막 학습시간구간인 S310단계에서, 제2 처리부(520)는 포스트신호(Post_Spike)의 개수에 따라, 적어도 하나의 활동뉴런(210_1~210_N) 중 하나의 출력노드(예를 들면, 230)를 선택할 수 있다. Next, in step S310, which is the last learning time period, the
그런 다음, S320단계에서, 제2 처리부(520)는 하나의 출력노드(예를 들면, 230)에 연결된 복수의 시냅스들(300_1~300_N)의 제1 가중치들을 기초로, 제2 이미지를 생성할 수 있다. Then, in step S320, the
다음으로, S330단계에서, 제3 처리부(530)는 제1 이미지와 제1 가중치들에 대한 평균기반 학습알고리즘을 통해 제2 가중치들을 획득할 수 있다. 여기서, 제3 처리부(530)는 제1 및 제2 가중치들 간의 동일 여부에 따라, 평균기반 학습알고리즘에 대한 비활성화 여부를 결정할 수 있다. Next, in step S330, the
그런 다음, S340단계에서, 제1 및 제2 가중치들이 서로 다를 때, 제3 처리부(530)는 평균기반 학습알고리즘을 통해 획득된 제2 가중치들을 기초로, 제3 이미지를 생성하고, 메모리(600)에 업데이트 할 수 있다. Then, in step S340, when the first and second weights are different from each other, the
한편, S350단계에서, 제3 처리부(530)는 제1 및 제2 가중치들이 서로 동일할 때, 평균기반 학습알고리즘을 이용을 비활성화할 수 있다. 이에 따라, 제3 처리부(530)는 평균기반의 학습알고리즘에 대한 한번의 연산을 통해 인식정확도가 높은 제3 이미지를 생성하는 동시에, 연산에 대한 부담을 최소화시킬 수 있다. Meanwhile, in step S350, the
이후, 제3 이미지가 업데이트 되는 경우, 또는 평균기반 학습알고리즘에 대한 이용이 비활성화된 경우, S370단계에서, 제3 처리부(530)는 입력이미지에 대한 다음의 입력정보의 존재여부에 따라, S210 내지 S340 단계를 반복적으로 수행 할 수 있다. Thereafter, when the third image is updated, or when the use of the average-based learning algorithm is deactivated, in step S370, the
본 출원의 실시예에 따른 비지도 학습방법은 마지막 학습시간구간에서 제1 및 제2 가중치들 간의 동일 여부에 따라, 평균기반 학습알고리즘에 대한 비활성화 여부를 결정하기 때문에, 입력이미지에 대해 높은 인식정확도를 갖는 제3 이미지를 단지 한번만 업데이트할 수 있다. 이에 따라, 비지도 학습방법은 메모리(600)에 대한 사용량을 대폭 감소시킬 수 있다. Since the unsupervised learning method according to the embodiment of the present application determines whether the average-based learning algorithm is deactivated according to whether the first and second weights are the same in the last learning time period, high recognition accuracy of the input image It is possible to update the third image having only one time. Accordingly, the unsupervised learning method can greatly reduce the usage amount of the
본 출원은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 출원의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.This application has been described with reference to one embodiment shown in the drawings, but this is merely exemplary, and those skilled in the art will understand that various modifications and other equivalent embodiments are possible therefrom. Therefore, the true technical protection scope of the present application should be determined by the technical spirit of the appended claims.
10: 스파이킹 뉴럴 네트워크
100_1~100_N: 복수의 입력뉴런들
200_1~200_N: 복수의 출력뉴런들
300_1~300_N: 복수의 시냅스들
500: 시냅스 학습장치
510: 제1 처리부
520: 제2 처리부
530: 제3 처리부
600: 메모리
1000: 비지도 학습장치10: Spiking Neural Network
100_1 ~ 100_N: Multiple input neurons
200_1 ~ 200_N: Multiple output neurons
300_1 ~ 300_N: multiple synapses
500: synaptic learning device
510: first processing unit
520: second processing unit
530: third processing unit
600: memory
1000: unsupervised learning device
Claims (21)
상기 스파이킹 뉴럴 네트워크와 전기적으로 연결된 시냅스 학습장치를 포함하고,
상기 시냅스 학습장치는, 복수의 입력뉴런들 대비 프리신호를 일정개수 이상 발화하는 접속노드들의 연결비율에 따라, 상기 접속노드들에 대한 이진화를 통해 제1 이미지를 생성하는 제1 처리부;
복수의 출력뉴런들 중 포스트신호를 최대 개수로 발화하는 출력노드를 선택하고, 상기 출력노드에 연결된 복수의 시냅스들의 제1 가중치들을 기초로, 제2 이미지를 생성하는 제2 처리부; 및
상기 제1 이미지와 상기 제1 가중치들에 대한 평균기반의 학습알고리즘을 통해 제2 가중치들을 획득하고, 상기 제2 가중치들을 기초로 제3 이미지를 생성하는 제3 처리부를 포함하며,
상기 평균기반의 학습알고리즘은,
(1)과,
(2)를 포함하고,
여기서, f(x)는 임의의 입력값인 x에 대하여 식(2)의 결과를 나타내는 함수이고, 이때, flag는 상기 제1 이미지이고, Wn은 상기 제1 가중치들이며, Wn+1은 상기 제2 가중치들인 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.A spiking neural network that receives binary images; And
And a synaptic learning device electrically connected to the spiking neural network,
The synaptic learning apparatus includes: a first processing unit that generates a first image through binarization of the connection nodes according to a connection ratio of connection nodes that fire a predetermined number or more of pre-signals compared to a plurality of input neurons;
A second processing unit which selects an output node that utters a maximum number of post signals among a plurality of output neurons and generates a second image based on first weights of a plurality of synapses connected to the output node; And
And a third processing unit acquiring second weights through an average-based learning algorithm for the first image and the first weights, and generating a third image based on the second weights,
The average-based learning algorithm,
(1) and
(2),
Here, f (x) is a function representing the result of equation (2) for x, which is an arbitrary input value, where flag is the first image, Wn is the first weights, and W n + 1 is the Unsupervised learning device based on spiking neural network, the second weights.
상기 제3 처리부는, 상기 제1 및 제2 가중치들 간의 동일 여부에 따라, 상기 학습알고리즘에 대한 비활성화 여부를 결정하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.According to claim 1,
The third processing unit, a spiking neural network based unsupervised learning apparatus for determining whether to disable the learning algorithm according to whether the first and second weights are the same.
상기 제1 처리부는, 상기 복수의 입력뉴런들로부터 발화되는 상기 프리신호의 개수를 카운트하는 복수의 제1 카운터들; 및
상기 접속노드들에 플래그를 부여하는 복수의 플래그설정부들을 포함하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.According to claim 1,
The first processing unit may include a plurality of first counters that count the number of the pre-signals uttered from the plurality of input neurons; And
Spiking neural network based unsupervised learning apparatus including a plurality of flag setting units for flagging the connection nodes.
상기 제1 처리부는, 상기 연결비율이 임계치 미만인 경우, 상기 복수의 제1 카운터들을 통해 카운트된 상기 프리신호의 개수를 업데이트하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.According to claim 4,
The first processing unit, if the connection rate is less than the threshold, the spiking neural network-based unsupervised learning apparatus for updating the number of the pre-signals counted through the plurality of first counters.
상기 제1 처리부는, 상기 연결비율이 임계치인 경우, 상기 복수의 플래그설정부들을 통해 부여된 플래그의 개수를 업데이트하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.According to claim 4,
The first processing unit, when the connection ratio is a threshold, a spiking neural network based unsupervised learning apparatus that updates the number of flags given through the plurality of flag setting units.
상기 제1 처리부는, 상기 연결비율이 임계치를 초과하는 경우, 상기 제1 카운터들 및 복수의 플래그설정부들를 비활성화하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.According to claim 4,
The first processing unit, if the connection rate exceeds the threshold, the first counter and a plurality of flag setting unit, the spiking neural network-based unsupervised learning device.
상기 제2 처리부는, 상기 복수의 출력뉴런들로부터 발화되는 상기 포스트신호의 개수를 카운트하는 복수의 제2 카운터들를 포함하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.According to claim 1,
The second processing unit, a spiking neural network-based unsupervised learning apparatus including a plurality of second counters for counting the number of post signals fired from the plurality of output neurons.
상기 제2 처리부는, 상기 포스트신호의 개수와 상기 프리신호의 개수에 따라 변화되는 적어도 하나의 출력뉴런의 멤브레인 전위를 업데이트하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.According to claim 1,
The second processing unit is a spiking neural network-based unsupervised learning apparatus that updates the membrane potential of at least one output neuron that changes according to the number of post signals and the number of pre-signals.
상기 제3 처리부는, 상기 포스트신호에 따라 설정된 학습시간구간 이후에, 상기 복수의 입력뉴런들을 통해 발화하는 프리신호에 따라, 다음 학습시간구간을 설정하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.The method of claim 9,
The third processing unit, after the learning time period set according to the post signal, the spiking neural network-based unsupervised learning apparatus that sets the next learning time period according to the pre-signal that is uttered through the plurality of input neurons.
각 제1 카운터는 2비트의 이진 카운터이고, 각 플래그설정부는 1비트의 이진 플래그설정부인 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.According to claim 4,
Each first counter is a 2-bit binary counter, and each flag setting unit is a 1-bit binary flag setting unit, a spiking neural network-based unsupervised learning device.
상기 제3 처리부는, 상기 스파이킹 뉴럴 네트워크를 통해 다른 입력이미지를 입력받을 때, 상기 제1 및 제2 처리부를 리셋하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치.According to claim 1,
The third processing unit, a non-supervised learning apparatus based on a spiking neural network that resets the first and second processing units when another input image is received through the spiking neural network.
제1 처리부가 복수의 입력뉴런들 대비 프리신호를 일정개수 이상 발화하는 접속노드들과의 연결비율에 따라, 상기 접속노드들에 대한 이진화를 통해 제1 이미지를 생성하는 단계;
제2 처리부가 복수의 출력뉴런들 중 포스트신호를 최대 개수로 발화하는 출력노드를 선택하는 단계;
상기 제2 처리부가 상기 출력노드에 연결된 시냅스들의 제1 가중치들을 기초로 제2 이미지를 생성하는 단계;
제3 처리부가 상기 제1 이미지와 상기 제1 가중치들에 대한 평균기반의 학습알고리즘을 통해 제2 가중치들을 획득하는 단계; 및
상기 제3 처리부가 상기 제2 가중치들을 기초로 제3 이미지를 생성하는 단계를 포함하고,
상기 평균기반의 학습알고리즘은,
(1)과,
(2)를 포함하고,
여기서, f(x)는 임의의 입력값인 x에 대하여 식(2)의 결과를 나타내는 함수이고, 이때, flag는 상기 제1 이미지이고, Wn은 상기 제1 가중치들이며, Wn+1은 상기 제2 가중치들인 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법.In the spiking neural network-based unsupervised learning method,
Generating, by a first processing unit, a first image through binarization of the connection nodes according to a connection ratio with connection nodes that ignite a predetermined number or more of pre-signals compared to a plurality of input neurons;
A step in which the second processing unit selects an output node that utters the maximum number of post signals among the output neurons;
Generating, by the second processing unit, a second image based on first weights of synapses connected to the output node;
Obtaining, by the third processing unit, second weights through an average-based learning algorithm for the first image and the first weights; And
The third processing unit includes generating a third image based on the second weights,
The average-based learning algorithm,
(1) and
(2),
Here, f (x) is a function representing the result of equation (2) for x, which is an arbitrary input value, where flag is the first image, Wn is the first weights, and W n + 1 is the Unsupervised learning method based on Spiking Neural Network, which is the second weight.
상기 제3 처리부는, 상기 제1 및 제2 가중치들 간의 동일 여부에 따라, 상기 평균기반의 학습알고리즘에 대한 비활성화 여부를 결정하는 단계를 더 포함하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법.The method of claim 13,
The third processing unit, the spiking neural network-based unsupervised learning method further comprising the step of determining whether to deactivate the average-based learning algorithm according to whether the first and second weights are the same.
상기 제1 이미지를 생성하는 단계는, 상기 제1 처리부가 상기 복수의 입력뉴런들로부터 발화되는 상기 프리신호의 개수를 카운트하는 단계를 포함하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법.The method of claim 13,
In the generating of the first image, the first processing unit includes counting the number of the pre-signals uttered from the plurality of input neurons.
상기 제1 이미지를 생성하는 단계는, 상기 제1 처리부가 상기 접속노드들에 플래그를 부여하는 단계를 포함하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법.The method of claim 13,
In the generating of the first image, the first processing unit includes a step of flagging the connection nodes.
상기 제1 이미지를 생성하는 단계는, 상기 연결비율이 임계치 미만인 경우, 상기 제1 처리부가 상기 카운트된 프리신호의 개수를 업데이트하는 단계를 포함하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법.The method of claim 15,
The step of generating the first image includes, when the connection ratio is less than a threshold, updating the number of the counted pre-signals by the first processing unit.
상기 제1 이미지를 생성하는 단계는, 상기 연결비율이 임계치에 해당하는 경우, 상기 제1 처리부가 상기 플래그의 개수를 업데이트하는 단계를 포함하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법.The method of claim 16,
In the generating of the first image, when the connection rate corresponds to a threshold, the first processing unit updates the number of the flags.
상기 제2 이미지를 생성하는 단계는, 상기 제2 처리부가 상기 복수의 출력뉴런들로부터 발화되는 상기 포스트신호의 개수를 카운트하는 단계를 포함하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법.The method of claim 13,
In the generating of the second image, the second processing unit includes counting the number of post signals uttered from the plurality of output neurons.
상기 제2 이미지를 생성하는 단계는, 상기 제2 처리부가 상기 포스트신호의 개수와 상기 프리신호에 따라 변화된 적어도 하나의 활동뉴런의 멤브레인 전위를 업데이트하는 단계를 포함하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법.The method of claim 19,
In the generating of the second image, the second processing unit includes a step of updating the membrane potential of at least one activity neuron changed according to the number of the post signals and the pre-signal, and the spiking neural network-based non-map Learning method.
상기 제3 이미지를 획득하는 단계는, 상기 제3 처리부가 상기 포스트신호의 개수를 카운트한 시점을 기준으로, 학습시간구간을 설정하는 단계;
상기 학습시간구간 이후에 상기 복수의 입력뉴런들로부터 발화된 프리신호에 따라, 상기 제3 처리부가 다음 학습시간구간을 반복적으로 설정하는 단계; 및
마지막 학습시간구간에서, 상기 제3 처리부가 상기 평균기반의 학습알고리즘에 대한 비활성화 여부를 결정하는 단계를 포함하는 스파이킹 뉴럴 네트워크 기반의 비지도 학습방법.
The method of claim 18,
The obtaining of the third image may include setting a learning time period based on a time point when the third processing unit counts the number of post signals;
After the learning time period, the third processing unit repeatedly sets a next learning time period according to a pre-signal uttered from the input neurons; And
In the last learning time period, the third processing unit comprises a step of determining whether to disable the average-based learning algorithm Spiking neural network-based unsupervised learning method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180066858A KR102091498B1 (en) | 2018-06-11 | 2018-06-11 | Unsupervised learning device and learning method therefore |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180066858A KR102091498B1 (en) | 2018-06-11 | 2018-06-11 | Unsupervised learning device and learning method therefore |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190140276A KR20190140276A (en) | 2019-12-19 |
KR102091498B1 true KR102091498B1 (en) | 2020-03-24 |
Family
ID=69056196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180066858A KR102091498B1 (en) | 2018-06-11 | 2018-06-11 | Unsupervised learning device and learning method therefore |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102091498B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102416924B1 (en) * | 2020-01-28 | 2022-07-04 | 인하대학교 산학협력단 | The method, apparatus and the program for image region segmentation |
KR102615194B1 (en) * | 2021-01-21 | 2023-12-19 | 한국과학기술연구원 | An improved neuron core with time-embedded floating point arithmetic |
KR102461685B1 (en) * | 2021-02-15 | 2022-11-02 | 경기대학교 산학협력단 | Device and method for visualizing output node fluctuation using feature map |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015510193A (en) | 2012-02-08 | 2015-04-02 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Method and apparatus for spiking neural computation |
US20150347870A1 (en) | 2014-05-29 | 2015-12-03 | International Business Machines Corporation | Scene understanding using a neurosynaptic system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150269481A1 (en) * | 2014-03-24 | 2015-09-24 | Qualcomm Incorporated | Differential encoding in neural networks |
KR20160112186A (en) * | 2015-03-18 | 2016-09-28 | 삼성전자주식회사 | Method and apparatus for event-based learning in neural network |
-
2018
- 2018-06-11 KR KR1020180066858A patent/KR102091498B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015510193A (en) | 2012-02-08 | 2015-04-02 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Method and apparatus for spiking neural computation |
US20150347870A1 (en) | 2014-05-29 | 2015-12-03 | International Business Machines Corporation | Scene understanding using a neurosynaptic system |
Also Published As
Publication number | Publication date |
---|---|
KR20190140276A (en) | 2019-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113537471B (en) | Improved spiking neural network | |
US11651199B2 (en) | Method, apparatus and system to perform action recognition with a spiking neural network | |
KR102091498B1 (en) | Unsupervised learning device and learning method therefore | |
US11238343B2 (en) | Scalable neural hardware for the noisy-OR model of Bayesian networks | |
US11157798B2 (en) | Intelligent autonomous feature extraction system using two hardware spiking neutral networks with spike timing dependent plasticity | |
JP2016538632A (en) | Method and apparatus for tagging a class using supervised learning | |
EP3729339A1 (en) | Device, system and method for varying a synaptic weight with a phase differential of a spiking neural network | |
US20190188600A1 (en) | Secure Voice Communications System | |
US10832121B2 (en) | Transform for a neurosynaptic core circuit | |
CN113269113A (en) | Human behavior recognition method, electronic device, and computer-readable medium | |
JP6117392B2 (en) | Method and apparatus for unsupervised training of input synapses of primary visual cortex simple cells and other neural circuits | |
CN117275568A (en) | Primary auditory cortex neuron cell release rate curve simulation method and device | |
Zhao et al. | Event-driven simulation of the tempotron spiking neuron | |
KR20200121006A (en) | Storage device using neural network and operating method for automatic redistribution of information and variable storage capacity based on accuracy-storage capacity tradeoff thereof | |
San et al. | Spike-timing dependent morphological learning for a neuron with nonlinear active dendrites | |
Oudjail et al. | Bio-inspired Event-based Motion Analysis with Spiking Neural Networks. | |
Vaila et al. | Spiking CNNs with PYNN and NEURON | |
US11289175B1 (en) | Method of modeling functions of orientation and adaptation on visual cortex | |
US8843426B2 (en) | Method and apparatus of primary visual cortex simple cell training and operation | |
Guo et al. | A novel biologically plausible supervised learning method for spiking neurons | |
CN117273090A (en) | Spintronic neuron device, related method and device, and electronic equipment | |
Teerapittayanon | Intelligence Distribution Network | |
Agnes et al. | Strategies to associate memories by unsupervised learning in neural networks | |
KR20240078124A (en) | Apparatus and method for detecting Wi-Fi frame based on Spiking Neural Network | |
CN118586458A (en) | STDP rule-based deep pulse neural network construction method |
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 |