KR102091498B1 - Unsupervised learning device and learning method therefore - Google Patents

Unsupervised learning device and learning method therefore Download PDF

Info

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
Application number
KR1020180066858A
Other languages
Korean (ko)
Other versions
KR20190140276A (en
Inventor
당호영
박종선
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020180066858A priority Critical patent/KR102091498B1/en
Publication of KR20190140276A publication Critical patent/KR20190140276A/en
Application granted granted Critical
Publication of KR102091498B1 publication Critical patent/KR102091498B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • 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

비지도 학습장치 및 그 학습방법{UNSUPERVISED LEARNING DEVICE AND LEARNING METHOD THEREFORE}UNSUPERVISED LEARNING DEVICE AND LEARNING METHOD THEREFORE

본 출원의 실시예들은, 비지도 학습장치 및 그 학습방법에 관한 것으로, 보다 구체적으로 스파이킹 뉴럴 네트워크 기반의 비지도 학습장치 및 그 학습방법에 관한 것이다. 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,

Figure 112018057038882-pat00001
(1)과,
Figure 112018057038882-pat00001
(1) and

Figure 112018057038882-pat00002
(2)를 포함하고,
Figure 112018057038882-pat00002
(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 non-supervised learning apparatus 1000 based on a spiking neural network according to an embodiment of the present application, and FIG. 2 shows an example of a plurality of input neurons 100_1 to 100_N of FIG. 1 3 is a diagram showing an example of a plurality of output neurons 200_1 to 200_N of FIG. 1, and FIG. 4 is a diagram showing an example of the operation of the unsupervised learning apparatus 1000 of FIG. 1.

도 1 내지 도 4를 참조하면, 비지도 학습장치(1000)는 스파이킹 뉴럴 네트워크(Spiking Neural Network, 10)와 시냅스 학습장치(500)를 포함할 수 있다. 1 to 4, the unsupervised learning apparatus 1000 may include a Spiking Neural Network (Spiking Neural Network) 10 and a synapse learning apparatus 500.

먼저, 스파이킹 뉴럴 네트워크(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 neural network 10 may include a plurality of input neurons 100_1 to 100_N, a plurality of output neurons 200_1 to 200_N, and a plurality of synapses 300_1 to 300_N. In this case, the plurality of input neurons 100_1 to 100_N and the plurality of output neurons 200_1 to 200_N may be electrically connected to each other through a plurality of synapses 300_1 to 300_N.

먼저, 복수의 입력뉴런들(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 information including X-axis 1 and Y-axis 1 and 0 pre_Spike signals. can do. In addition, the second input neuron (100_1 = 110_1) may include (2, 1, 2) three-dimensional information including two location signals including X-axis 2 and Y-axis 1 and two free signals (Pre_Spike). have. In addition, the third input neuron (100_1 = 110_2 = 130_1) includes (3, 1, 3) three-dimensional information including location information including X-axis 3 and Y-axis 1 and three pre-signals (Pre_Spike). can do.

이하에서는, 예시적으로, 본 발명에 대한 이해를 돕기 위해 복수의 입력뉴런들(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 output node 230 that outputs one activity neuron (eg, 210_2) firing a maximum number of post signals (Post_Spike) among at least one activity neuron 210_1 to 210_N. Can be defined as

실시 예에 따라, 복수의 출력뉴런들(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 Y axis 1 and one post signal (Post_Spike). can do. In addition, the eleventh output neuron (200_11 = 210_2 = 230) includes (4, 3, 5) three-dimensional information including position information including X-axis 4 and Y-axis 3 and 5 free signals (Pre_Spike). can do.

다음으로, 복수의 시냅스들(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 synaptic learning apparatus 500 is electrically connected to the spiking neural network 10, and can send and receive data through the spiking neural network 10 that receives a binary image.

보다 구체적으로, 시냅스 학습장치(500)는 제1 처리부(510), 제2 처리부(520) 및 제3 처리부(530)를 포함할 수 있다. More specifically, the synapse learning apparatus 500 may include a first processing unit 510, a second processing unit 520, and a third processing unit 530.

먼저, 제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 first processing unit 510 binarizes the connection nodes 130_1 to 130_N according to the connection ratio with the connection nodes 130_1 to 130_N compared to the plurality of input neurons 100_1 to 100_N. Through this, a first image may be generated. Here, the first image may be a binary grayscale image based on 3D information included in the connection nodes 130_1 to 130_N.

보다 구체적으로, 제1 처리부(510)는 복수의 입력뉴런들(100_1~100_N) 대비 접속노드들(130_1~130_N)의 연결비율이 임계치에 해당하는 지를 판단할 수 있다. 이때, 상기 연결비율이 임계치에 해당할 때, 제1 처리부(510)는 접속노드들(130_1~130_N)에 대한 이진화(binary)를 통해 그레이스케일 이미지인 제1 이미지를 생성할 수 있다. More specifically, the first processing unit 510 may determine whether the connection ratio of the connection nodes 130_1 to 130_N compared to the plurality of input neurons 100_1 to 100_N corresponds to a threshold. At this time, when the connection ratio corresponds to a threshold, the first processing unit 510 may generate a first image that is a grayscale image through binarization of the connection nodes 130_1 to 130_N.

다음으로, 제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 second processing unit 520 may select an output node 230 that utters the maximum number of post signals (Post_Spike) among the plurality of output neurons 200_1 to 200_N. Then, the second processing unit 520 may generate a second image based on the first weights of the plurality of synapses 300_1 to 300_N electrically connected to the output node 230. Here, the first weights may be synapse weights before being updated included in a plurality of synapses 300_1 to 300_N connected to the output node 230.

보다 구체적으로, 제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 second processing unit 520 selects at least one synapse (for example, 300_1 to 300_6, 300_18 to 300_N) connecting the output node 230 and the plurality of input neurons 100_1 to 100_N. You can. Then, the second processing unit 520 extracts identification information of the plurality of input neurons 100_1 to 100_N and the corresponding first weights from at least one synapse (for example, 300_1 to 300_6, 300_18 to 300_N). You can. At this time, the second processing unit 520 may generate a second image based on the identification information of the plurality of input neurons 100_1 to 100_N and the corresponding first weights. Here, the second image may be a grayscale image binarized according to identification information of a plurality of input neurons 100_1 to 100_N and corresponding first weights.

다음으로, 제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 third processing unit 530 may obtain second weights through an average-based learning algorithm for the first image and the first weights. Then, the third processing unit 530 may update the first weights for the plurality of synapses 300_1 to 300_N with the second weights. Subsequently, the third processing unit 530 may generate a third image based on the second weights of the plurality of synapses 300_1 to 300_N. Here, the third image may be a grayscale image of a prototype having a recognition accuracy of a predetermined ratio with respect to the input image. For example, the third image may be an image having 82% recognition accuracy with respect to the input image.

이때, 제3 처리부(530)는 복수의 시냅스들(300_1~300_N)에 대한 제1 가중치들과 제2 가중치들을 서로 비교할 수 있다. 보다 구체적으로, 제3 처리부(530)는 제1 및 제2 가중치들 간의 동일 여부에 따라, 상기 학습알고리즘에 대한 비활성화 여부를 결정할 수 있다. In this case, the third processing unit 530 may compare the first weights and the second weights for the plurality of synapses 300_1 to 300_N. More specifically, the third processing unit 530 may determine whether to deactivate the learning algorithm according to whether the first and second weights are the same.

보다 구체적으로, 제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 third processing unit 530 performs an average-based learning algorithm for the first image and the first weights. Through this, the second weights can be obtained. Meanwhile, when the first weights are updated with the second weights, when the first and second weights are the same, the third processing unit 530 may deactivate the average-based learning algorithm. That is, after updating the first weights with the second weights, the third processing unit 530 may stop using the average-based learning algorithm.

여기서, 평균기반의 학습알고리즘은 다음식들을 포함할 수 있다. Here, the average-based learning algorithm may include the following equations.

수학식 (1)과 수학식 (2)는, Equation (1) and equation (2),

Figure 112018057038882-pat00003
(1) 이고,
Figure 112018057038882-pat00003
(1)

Figure 112018057038882-pat00004
(2)일 수 있다.
Figure 112018057038882-pat00004
(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 third processing unit 530 may mean that the average-based learning algorithm is not performed.

한편, 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 third processing unit 530 may mean performing an average-based learning algorithm.

즉, 제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 third processing unit 530 may compare the first weights Wn and the second weights Wn + 1 for a plurality of synapses 300_1 to 300_N. Then, when the first weights Wn and the second weights Wn + 1 are different from each other, the third processing unit 530 averages the first image flag and the first weights Wn. A third image may be obtained based on the second weights Wn + 1 obtained through the learning algorithm of. Meanwhile, when the first weights Wn and the second weights Wn + 1 are the same, the third processing unit 530 may stop using the average-based learning algorithm.

이에 따라, 본 출원의 실시예에 따른 비지도 학습장치(1000)는 평균기반의 학습알고리즘에 대한 한번의 연산을 통해 높은 인식정확도를 유지하는 제3 이미지를 획득하는 동시에, 메모리와 연산의 부담을 최소화시킬 수 있다. Accordingly, the unsupervised learning apparatus 1000 according to an embodiment of the present application acquires a third image maintaining high recognition accuracy through a single operation on an average-based learning algorithm, while simultaneously taking memory and computational burden. Can be minimized.

도 5는 도 1의 제1 처리부(510)의 동작의 일 예를 보여주는 도면이다.5 is a view showing an example of the operation of the first processing unit 510 of FIG. 1.

도 1 내지 도 5를 참조하면, 제1 처리부(510)는 복수의 제1 카운터들(511_1~511_N) 및 복수의 플래그설정부들(513_1~513_N)을 더 포함할 수 있다. 1 to 5, the first processing unit 510 may further include a plurality of first counters 511_1 to 511_N and a plurality of flag setting units 513_1 to 513_N.

먼저, 복수의 제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 first processing unit 510 may connect the plurality of input neurons 100_1 to 100_N to at least one connection neuron 110_1 to 110_N and at least one blocking neuron through the plurality of first counters 511_1 to 511_N. It can perform a function to classify into (120_1 ~ 120_N).

다음으로, 복수의 플래그설정부들(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 first processing unit 510 uses the plurality of flag setting units 513_1 to 513_N to connect at least one connection neuron 110_1 to 110_N to the connection nodes 130_1 to 130_N and the remaining connection neurons (for example, 110_1, 110_3, 110_5, 110_6, etc.).

실시예에 따라, 제1 처리부(510)는 접속노드들(130_1~130_N)과의 연결비율과 기설정된 임계치를 비교할 수 있다. 여기서, 연결비율은 복수의 입력뉴런들(100_1~100_N)의 개수 대비 접속노드들(130_1~130_N)의 개수에 대한 비율과 동일할 수 있다. 즉, 제1 처리부(510)는 플래그가 부여된 개수에 따른 연결비율과 기설정된 임계치를 비교할 수 있다. According to an embodiment, the first processing unit 510 may compare the connection ratio with the connection nodes 130_1 to 130_N and a preset threshold. Here, the connection ratio may be the same as the ratio of the number of connection nodes 130_1 to 130_N to the number of input neurons 100_1 to 100_N. That is, the first processing unit 510 may compare the connection ratio according to the number of flags and a preset threshold.

보다 구체적으로, 연결비율이 임계치 미만인 경우, 제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 first processing unit 510 may update the number of pre-signals (Pre_Spike) counted through the plurality of first counters 511_1 to 511_N to the memory 600. . Here, the number of pre-signals Pre_Spike counted through the plurality of first counters 511_1 to 511_N may be the number of pre-signals Pre_Spike uttered through at least one connection neuron 110_1 to 110_N.

예를 들면, 복수의 입력뉴런들(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 first processing unit 510 may update 200 memory counts of the number of pre-signals (Pre_Spike) counted through the plurality of first counters 511_1 to 511_N. . That is, the first processing unit 510 may update at least one connection neuron 110_1 to 110_N corresponding to the number of 200 free signals Pre_Spike to the memory 600.

또한, 연결비율이 임계치인 경우, 제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 first processing unit 510 may update the number of flags given through the plurality of flag setting units 513_1 to 513_N to the memory 600. Here, the number of flags may be the number of connection nodes 130_1 to 130_N. For example, when the number of input neurons 100_1 to 100_N is 784, the number of connection nodes 130_1 to 130_N is 168, and the threshold is 20.15%, the connection ratio may be 20.15%. At this time, since the connection ratio is a threshold, the first processing unit 510 may update the memory 600 with the number of flags 168 assigned through the plurality of flag setting units 513_1 to 513_N. That is, the first processing unit 510 may update the connection nodes 130_1 to 130_N corresponding to the number of flags 168 to the memory 600.

또한, 연결비율이 임계치를 초과하는 경우, 제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 first processing unit 510 may deactivate the plurality of first counters 511_1 to 511_N and the plurality of flag setting units 513_1 to 513_N. For example, when the number of input neurons 100_1 to 100_N is 784, the number of connection nodes 130_1 to 130_N is 200, and the threshold is 20.15%, the connection rate may be 25.51%. At this time, since the connection ratio exceeds the threshold, the first processing unit 510 may deactivate all of the plurality of first counters 511_1 to 511_N and the plurality of flag setting units 513_1 to 513_N.

도 6은 도 1의 제2 처리부(520)의 동작의 일 예를 보여주는 도면이고, 도 7은 도 1의 제2 처리부(520)의 동작의 일 예를 보여주는 도면이다.6 is a view showing an example of the operation of the second processing unit 520 of FIG. 1, and FIG. 7 is a view showing an example of the operation of the second processing unit 520 of FIG. 1.

도 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 second processing unit 520 may be electrically connected to a plurality of output neurons 200_1 to 200_N. At this time, the second processing unit 520 follows a pre-signal (Pre_Spike) fired from at least one connection neuron 110_1 to 110_N, and a plurality of output neurons connected through a plurality of synapses 300_1 to 300_N. The membrane potential (V MEM ) of (200_1 to 200_N) can be detected.

예를 들면, 복수의 출력뉴런들(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 second processing unit 520 according to the embodiment may include a plurality of second counters 521_1 to 521_N counting the post signal Post_Spike. Here, the plurality of second counters 521_1 to 521_N may be electrically connected to the plurality of output neurons 200_1 to 200_N. More specifically, the plurality of second counters 521_1 to 521_N transmits a post signal (Post_Spike) that fires through at least one activity neuron 210_1 to 210_N among the plurality of output neurons 200_1 to 200_N. You can count.

즉, 제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 second processing unit 520 may transmit the plurality of output neurons 200_1 to 200_N through the plurality of second counters 521_1 to 521_N, and at least one inactive neuron 210_1 to 210_N. It can be classified as (220_1 ~ 220_N). For example, the number of post signals (Post_Spike) that the first output neuron (200_1 = 210_1) fires is three, and the number of post signals (Post_Spike) that the second output neuron (200_1 = 220_1) fires (Firng). When the number of is 0 and the number of post signals (Post_Spike) that the third output neuron (200_3 = 210_1) ignites is 1, the second processing unit 520 is the first output neuron (200_1 = 210_1). And the third output neuron 200_3 = 210_1 may be classified as at least one activity neuron 210_1 to 210_N.

이때, 제2 처리부(520)는 복수의 제2 카운터들(521_1~521_N)을 통해 카운트된 포스트신호(Post_Spike)의 개수를 메모리(600)에 업데이트할 수 있다. 여기서, 포스트신호(Post_Spike)의 개수는 적어도 하나의 활동뉴런(210_1~210_N)의 개수일 수 있다. At this time, the second processing unit 520 may update the number of post signals (Post_Spike) counted through the plurality of second counters 521_1 to 521_N to the memory 600. Here, the number of post signals (Post_Spike) may be the number of at least one activity neuron (210_1 ~ 210_N).

또한, 제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 second processing unit 520 outputs the maximum number of post signals (Post_Spike) among at least one activity neuron 210_1 to 210_N counted through the plurality of second counters 521_1 to 521_N 230 You can choose For example, the number of post signals (Post_Spike) that the first output neuron (200_1 = 210_1) fires is three, and the number of post signals (Post_Spike) that the second output neuron (200_1 = 220_1) fires (Firng). When the number of is 0 and the number of post signals (Post_Spike) that the third output neuron (200_3 = 210_1) ignites is 1, the second processing unit 520 is the first output neuron (200_1 = 210_1). Can be selected as the output node 230.

이어서, 제2 처리부(520)는 출력노드(230)에 연결된 적어도 하나의 접속뉴런(140_1~140_N)의 식별정보와 해당 복수의 시냅스들(300_1~300_N)의 제1 가중치들을 추출할 수 있다. 그런 다음, 제2 처리부(520)는 제1 가중치들을 기초로, 출력노드(230)에 연결된 적어도 하나의 접속뉴런(140_1~140_N)의 식별정보에 대한 이진화를 통해 제2 이미지를 생성할 수 있다. Subsequently, the second processing unit 520 may extract identification information of at least one connection neuron 140_1 to 140_N connected to the output node 230 and first weights of the plurality of synapses 300_1 to 300_N. Then, the second processing unit 520 may generate a second image through binarization of identification information of at least one connection neuron 140_1 to 140_N connected to the output node 230 based on the first weights. .

한편, 포스트신호(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 second processing unit 520 stores the membrane potential sensed from the plurality of output neurons 200_1 to 200_N. Can be updated to 600.

도 8은 도 1의 제3 처리부(530)의 동작의 일 예를 보여주는 도면이다.8 is a view showing an example of the operation of the third processing unit 530 of FIG. 1.

도 1 내지 도 8을 참조하면, 먼저, 제3 처리부(530)는 제1 및 제2 시스(310, 320)와 전기적으로 연결되고, 제1 및 제2 처리부(510, 520)를 통해 학습시간구간(tstop-tstart)을 설정할 수 있다. 1 to 8, first, the third processing unit 530 is electrically connected to the first and second sheaths 310 and 320, and the learning time through the first and second processing units 510 and 520. You can set the interval (t stop -t start ).

보다 구체적으로, 제3 처리부(530)는 제1 처리부(510)를 통해 프리신호(Pre_Spike)를 카운트하는 시점을 시작시점(tstart)으로 설정할 수 있다. 이어서, 제3 처리부(530)는 제2 처리부(520)를 통해 포스트신호(Post_Spike)의 개수 또는 멤브레인 전위를 메모리(600)에 업데이트한 시점을 종료시점(tstop)으로 설정할 수 있다. 이때, 제3 처리부(530)는 시작시점(tstart)부터 종료시점(tstop)까지의 시간구간을 학습시간구간(tstop-tstart)으로 설정할 수 있다. More specifically, the third processing unit 530 may set a time point for counting the pre-signal Pre_Spike through the first processing unit 510 as a start time t start . Subsequently, the third processing unit 530 may set the number of post signals (Post_Spike) or the time at which the membrane potential is updated in the memory 600 through the second processing unit 520 as an end time (t stop ). At this time, the third processing unit 530 may set the time period from the start time (t start ) to the end time (t stop ) as a learning time period (t stop -t start ).

즉, 제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 third processing unit 530 may set the time period from the first start time point t start1 as the first learning time period t stop1 -t start1 based on the first end time point t stop1 . . In addition, the third processing unit 530 may detect a pre-signal (Pre_Spike) firing from a plurality of input neurons 100_1 to 100_N after the first learning time period (t stop1 -t start1 ). . At this time, the third processing unit 530, after the first learning time period (t stop1 -t start1 ), according to whether or not the detection of the pre-signal (Pre_Spike) firing (Firing), the next learning time period (t stop2 -t start2) ) Can be set.

즉, 제3 처리부(530)는 학습시간구간(tstop-tstart) 이후에 발화(Firing)하는 프리신호(Pre_Spike)의 감지 여부에 따라, 복수의 학습시간구간들(tstop1~stopN-tstart1~startN)을 반복적으로 설정할 수 있다. 이에 따라, 도 5에 도시된 복수의 제1 카운터들(511_1~511_N)은 제3 처리부(530)를 통해 설정된 복수의 학습시간구간들에 따라, 프리신호(Pre_Spike)를 카운트할 수 있다. That is, the third processing unit 530 may detect a plurality of learning time periods (t stop1 to stopN -t) according to whether a pre-signal (Pre_Spike) that fires after the learning time period (t stop -t start ) is detected. start1 ~ startN ) can be set repeatedly. Accordingly, the plurality of first counters 511_1 to 511_N illustrated in FIG. 5 may count the pre-signal Pre_Spike according to the plurality of learning time periods set through the third processing unit 530.

다시 도 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 third processing unit 530 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 (t stopN -t startN ). Can decide. More specifically, in the last learning time interval (t stopN -t startN ), when the first and second weights are different from each other, the third processing unit 530 uses an average-based learning algorithm for the first image and the first weights. A third image can be obtained. Then, the third processing unit 530 may update the third image to the memory 600.

한편, 마지막 학습시간구간(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 third processing unit 530 may deactivate the use of the average-based learning algorithm. Accordingly, since the third processing unit 530 cannot update the third image to the memory 600, there is an effect of reducing the usage amount of the memory 600. Thereafter, the third processing unit 530 may reset (RESET) the first and second processing units 510 and 520 when another input image is input through the spiking neural network 10.

도 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 first processing unit 510 is connected to the connection nodes according to the connection ratio with the connection nodes 130_1 to 130_N compared to the plurality of input neurons 100_1 to 100_N. The first image may be generated through binarization for 130_1 to 130_N).

다음으로, S120 단계에서, 제2 처리부(520)는 복수의 출력뉴런들(200_1~200_N) 중 포스트신호(Post_Spike)를 최대 개수로 발화하는 하나의 출력노드(예를 들면, 230)를 선택할 수 있다. Next, in step S120, the second processing unit 520 may select one output node (for example, 230) that fires the maximum number of post signals (Post_Spike) among the plurality of output neurons 200_1 to 200_N. have.

이때, S130 단계에서, 제2 처리부(520)는 하나의 출력노드(예를 들면, 230)에 연결된 복수의 시냅스들(300_1~300_N)의 제1 가중치들을 기초로, 제2 이미지를 생성할 수 있다. At this time, in step S130, the second processing unit 520 may generate a second image based on the first weights of the plurality of synapses 300_1 to 300_N connected to one output node (eg, 230). have.

다음으로, S140 단계에서, 제3 처리부(530)는 제1 처리부(510)를 통해 생성된 제1 이미지와 제2 처리부(520)를 통해 획득되는 제1 가중치들에 대한 평균기반의 학습알고리즘을 통해 제2 가중치들을 획득할 수 있다. Next, in step S140, the third processing unit 530 performs an average-based learning algorithm for the first weights generated through the first processing unit 510 and the first weights obtained through the second processing unit 520. Through this, the second weights can be obtained.

이후, S150 단계에서, 제3 처리부(530)는 획득된 제2 가중치들을 기초로, 제3 이미지를 생성하고, 메모리(600)에 업데이트할 수 있다. Thereafter, in step S150, the third processing unit 530 may generate a third image and update the memory 600 based on the obtained second weights.

도 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 third processing unit 530 may reset (RESET) the first and second processing units 510 and 520.

다음으로, S230 단계에서, 제1 처리부(510)는 복수의 입력뉴런들(100_1~100_N)의 개수 대비 접속노드들(130_1~130_N)의 개수에 대한 연결비율과 임계치를 비교할 수 있다. Next, in step S230, the first processing unit 510 may compare the connection ratio and the threshold for the number of connection nodes 130_1 to 130_N compared to the number of the plurality of input neurons 100_1 to 100_N.

이때, 연결비율과 임계치일 때, 또는 연결비율이 임계치보다 클 때, 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 first processing unit 510 may generate a first image through binarization of the connection nodes (130_1 ~ 130_N). .

보다 구체적으로, 연결비율과 임계치일 때, S250 단계에서, 제1 처리부(510)는 접속노드들(130_1~130_N)에 부여된 플래그의 개수를 메모리(600)에 업데이트할 수 있다. More specifically, when the connection ratio and the threshold, in step S250, the first processing unit 510 may update the number of flags given to the connection nodes 130_1 to 130_N to the memory 600.

또한, 연결비율이 임계치보다 클 때, 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 first processing unit 510 may deactivate the plurality of first counters 511_1 to 511_N and the plurality of flag setting units 513_1 to 513_N.

한편, 연결비율이 임계치 미만일 때, 플래그의 개수가 업데이트된 이후 또는 복수의 제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 processor 510 may update the number of pre-signals (Pre_Spike) uttered from at least one connection neuron 110_1 to 110_N to the memory 600. At this time, in step S270, the second processing unit 520 may update the membrane potential of the plurality of output neurons 200_1 to 200_N to the memory 600.

그런 다음, S280 단계에서, 제2 처리부(520)는 복수의 출력뉴런들(200_1~200_N) 중 적어도 하나의 활동뉴런(210_1~210_N)으로부터 발화하는 포스트신호(Post_Spike)의 개수를 카운트할 수 있다. Then, in step S280, the second processing unit 520 may count the number of post signals (Post_Spike) uttered from at least one activity neuron 210_1 to 210_N among the plurality of output neurons 200_1 to 200_N. .

이때, S290단계에서, 제2 처리부(520)는 적어도 하나의 활동뉴런(210_1~210_N)으로부터 발화하는 포스트신호(Post_Spike)의 개수를 메모리(600)에 업데이트할 수 있다.At this time, in step S290, the second processing unit 520 may update the number of post signals (Post_Spike) uttered from at least one activity neuron (210_1 ~ 210_N) to the memory (600).

한편, 포스트신호(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 second processing unit 520 updates the number of post signals (Post_Spike) in the memory 600, in step S300, the third processing unit 530 is the next You can check whether the learning time period exists.

그런 다음, 다음 학습시간구간이 존재하는 경우, S230단계에서, 제1 처리부(510)는 다음 학습시간구간에서 연결비율이 임계치에 해당하는 지를 판단할 수 있다. 즉, 다음 학습시간구간이 존재하는 경우, 제1 내지 제3 처리부(510, 520 및 530)는 S230 단계 내지 S300 단계를 반복하여 수행할 수 있다. Then, when the next learning time interval exists, in step S230, the first processing unit 510 may determine whether the connection rate corresponds to the threshold in the next learning time interval. That is, when the next learning time period exists, the first to third processing units 510, 520, and 530 may repeat steps S230 to S300.

다음으로, 마지막 학습시간구간인 S310단계에서, 제2 처리부(520)는 포스트신호(Post_Spike)의 개수에 따라, 적어도 하나의 활동뉴런(210_1~210_N) 중 하나의 출력노드(예를 들면, 230)를 선택할 수 있다. Next, in step S310, which is the last learning time period, the second processing unit 520 outputs one output node of at least one activity neuron 210_1 to 210_N (for example, 230) according to the number of post signals (Post_Spike). ).

그런 다음, S320단계에서, 제2 처리부(520)는 하나의 출력노드(예를 들면, 230)에 연결된 복수의 시냅스들(300_1~300_N)의 제1 가중치들을 기초로, 제2 이미지를 생성할 수 있다. Then, in step S320, the second processing unit 520 generates a second image based on the first weights of the plurality of synapses 300_1 to 300_N connected to one output node (eg, 230). You can.

다음으로, S330단계에서, 제3 처리부(530)는 제1 이미지와 제1 가중치들에 대한 평균기반 학습알고리즘을 통해 제2 가중치들을 획득할 수 있다. 여기서, 제3 처리부(530)는 제1 및 제2 가중치들 간의 동일 여부에 따라, 평균기반 학습알고리즘에 대한 비활성화 여부를 결정할 수 있다. Next, in step S330, the third processing unit 530 may obtain second weights through an average-based learning algorithm for the first image and the first weights. Here, the third processing unit 530 may determine whether to deactivate the average-based learning algorithm according to whether the first and second weights are the same.

그런 다음, S340단계에서, 제1 및 제2 가중치들이 서로 다를 때, 제3 처리부(530)는 평균기반 학습알고리즘을 통해 획득된 제2 가중치들을 기초로, 제3 이미지를 생성하고, 메모리(600)에 업데이트 할 수 있다. Then, in step S340, when the first and second weights are different from each other, the third processing unit 530 generates a third image based on the second weights obtained through the average-based learning algorithm, and the memory 600 ).

한편, S350단계에서, 제3 처리부(530)는 제1 및 제2 가중치들이 서로 동일할 때, 평균기반 학습알고리즘을 이용을 비활성화할 수 있다. 이에 따라, 제3 처리부(530)는 평균기반의 학습알고리즘에 대한 한번의 연산을 통해 인식정확도가 높은 제3 이미지를 생성하는 동시에, 연산에 대한 부담을 최소화시킬 수 있다. Meanwhile, in step S350, the third processing unit 530 may deactivate the use of the average-based learning algorithm when the first and second weights are the same. Accordingly, the third processing unit 530 may generate a third image with high recognition accuracy through one operation on the average-based learning algorithm, and minimize the burden on the operation.

이후, 제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 third processing unit 530 determines whether the next input information for the input image exists, S210 to Step S340 may be repeatedly performed.

본 출원의 실시예에 따른 비지도 학습방법은 마지막 학습시간구간에서 제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 memory 600.

본 출원은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 출원의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.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 처리부를 포함하며,
상기 평균기반의 학습알고리즘은,
Figure 112020010861923-pat00017
(1)과,
Figure 112020010861923-pat00018
(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,
Figure 112020010861923-pat00017
(1) and
Figure 112020010861923-pat00018
(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.
제1항에 있어서,
상기 제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.
삭제delete 제1항에 있어서,
상기 제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.
제4항에 있어서,
상기 제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.
제4항에 있어서,
상기 제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.
제4항에 있어서,
상기 제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.
제1항에 있어서,
상기 제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.
제1항에 있어서,
상기 제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.
제9항에 있어서,
상기 제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.
제4항에 있어서,
각 제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.
제1항에 있어서,
상기 제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 이미지를 생성하는 단계를 포함하고,
상기 평균기반의 학습알고리즘은,
Figure 112020010861923-pat00019
(1)과,
Figure 112020010861923-pat00020
(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,
Figure 112020010861923-pat00019
(1) and
Figure 112020010861923-pat00020
(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.
제13항에 있어서,
상기 제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.
제13항에 있어서,
상기 제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.
제13항에 있어서,
상기 제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.
제15항에 있어서,
상기 제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.
제16항에 있어서,
상기 제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.
제13항에 있어서,
상기 제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.
제19항에 있어서,
상기 제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.
제18항에 있어서,
상기 제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.
KR1020180066858A 2018-06-11 2018-06-11 Unsupervised learning device and learning method therefore KR102091498B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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