KR102309013B1 - An efficient neuromorphic circuit system of realizing negative weight - Google Patents
An efficient neuromorphic circuit system of realizing negative weight Download PDFInfo
- Publication number
- KR102309013B1 KR102309013B1 KR1020190018370A KR20190018370A KR102309013B1 KR 102309013 B1 KR102309013 B1 KR 102309013B1 KR 1020190018370 A KR1020190018370 A KR 1020190018370A KR 20190018370 A KR20190018370 A KR 20190018370A KR 102309013 B1 KR102309013 B1 KR 102309013B1
- Authority
- KR
- South Korea
- Prior art keywords
- shift
- weight
- weights
- synapse
- neurons
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
시냅스의 음수 가중치를 표현하는, 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 관한 것으로서, 다수의 프리 뉴런; 다수의 포스트 뉴런; 상기 프리 뉴런의 각각에서 로우 방향으로 연장되는 다수의 로우 라인과, 상기 포스트 뉴런의 각각에 대응되는 다수의 컬럼 라인의 교차점들 상에서 배치되어, 시냅스 어레이를 형성하는 다수의 시냅스; 상기 다수의 프리 뉴런의 입력에 시프트 가중치를 가중하여 합산하고 합산된 결과를 출력하는 시프트 회로; 및, 상기 다수의 컬럼 라인 각각의 출력에서 상기 시프트 회로의 출력을 차감하여, 차감된 출력을 상기 포스트 뉴런 각각에 출력시키는 차감 회로를 포함하고, 상기 다수의 시냅스 각각은 원래 가중치에서 상기 시프트 가중치로 시프트한 가중치를 가지는 구성을 마련하여, 뉴로모픽 시스템(neuromorphic system)에서 가중치 시프트(weight shift)를 이용하여 음수 가중치를 구현함으로써, 기존의 2개의 어레이(array)를 이용하는 방식과 달리 1개의 어레이(array)만을 사용하여 배치 공간 측면이나 전력 소모 측면에서 효율적일 뿐만 아니라 하드웨어를 용이하고 효율적으로 제작할 수 있다.It relates to a neuromorphic circuit system capable of efficiently implementing negative weights, expressing negative weights of synapses, comprising: a plurality of free neurons; multiple post neurons; a plurality of synapses disposed on intersections of a plurality of row lines extending in a row direction from each of the pre-neurons and a plurality of column lines corresponding to each of the post neurons to form a synapse array; a shift circuit for adding and summing shift weights to the inputs of the plurality of free neurons and outputting the summed result; and a subtraction circuit for subtracting the output of the shift circuit from the output of each of the plurality of column lines, and outputting the subtracted output to each of the post neurons, wherein each of the plurality of synapses is converted from the original weight to the shift weight. By providing a configuration with shifted weights and implementing negative weights using weight shifts in a neuromorphic system, one array is different from the conventional method using two arrays. Using only (array), it is not only efficient in terms of layout space and power consumption, but also makes hardware easy and efficient.
Description
본 발명은 뉴로모픽 시스템(neuromorphic system)을 시냅스의 크로스바 어레이 구조로 구현하는 시스템에서, 시냅스의 음수 가중치를 표현하는, 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 관한 것이다.The present invention relates to a neuromorphic circuit system capable of efficiently implementing negative weights, expressing negative weights of synapses, in a system implementing a neuromorphic system as a synaptic crossbar array structure.
또한, 본 발명은 추가적인 시냅스 어레이를 사용하지 않고도 음의 가중치(weight)를 구현할 수 있는 효율적인 시냅스(synapse)의 크로스바 어레이(crossbar-array) 구조를 제시하는, 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 관한 것이다.In addition, the present invention proposes a crossbar-array structure of an efficient synapse that can implement a negative weight without using an additional synapse array, a neuromorphic circuit capable of implementing an efficient negative weight It's about the system.
방대한 정보와 비정형 정보들을 우수하게 처리하기 위한 차세대 컴퓨팅 방식중 하나로서 뇌의 동작방식과 유사한 뉴로모픽 시스템(neuromorphic system)이 하나의 차세대 방식으로 각광받고 있다.As one of the next-generation computing methods for superior processing of vast amounts of information and atypical information, a neuromorphic system similar to the way the brain operates is in the spotlight as a next-generation method.
이러한 뉴로모픽 시스템(neuromorphic system)은 CPU, GPU, 아날로그 회로 등과 같은 다양한 하드웨어들을 이용하여 구현될 수 있다. 그 중, 많은 시냅스 장치(synapse device) 및 수동소자를 포함한 크로스바 어레이(crossbar-array) 구조의 하드웨어는 소자를 고집적 시킬 수 있을 뿐만 아니라 비용 측면에서도 매우 효율적이다. 따라서 이러한 구조의 하드웨어는 뉴로모픽 시스템(neuromorphic system)을 위한 하드웨어 구조로서 각광받고 있다.Such a neuromorphic system may be implemented using various hardware such as a CPU, a GPU, an analog circuit, and the like. Among them, the hardware of a crossbar-array structure including many synapse devices and passive devices is highly efficient in terms of cost as well as high integration of the devices. Therefore, the hardware of this structure is spotlighted as a hardware structure for a neuromorphic system.
하지만, 음수(-1~1)의 시냅스 가중치(synapse weight)를 표현할 수 있는 소프트웨어(software)와는 달리, 하드웨어의 경우 음수의 가중치(weight)를 단일 시냅스(synapse) 소자를 통해 표현하는 것은 불가능 하다. 이것은 실제 소자가 갖는 컨덕턴스(conductance)(가중치를 나타내는 소자)가 음수가 될 수 없음에 기인된다.However, unlike software that can express negative (-1 to 1) synapse weights, in the case of hardware, it is impossible to express negative weights through a single synapse element. . This is due to the fact that the conductance (the element representing the weight) of the actual element cannot be negative.
따라서, 종래 기술은 양의 극성과 음의 극성을 각각 갖는 두 개의 시냅스 어레이(synapse array)를 사용하여, 음수 가중치를 구현하고 있다.Therefore, the prior art implements negative weights by using two synapse arrays each having a positive polarity and a negative polarity.
도 1에서 보는 바와 같이, 시냅스 가중치(synapse weight)는 2개의 시냅스 어레이로 일반적으로 구현된다. 2개의 시냅스 어레이 M+, M-는 각각 시냅스 가중치(synapse weight)의 양과 음의 극성을 나타낸다. 각 시냅스 어레이는 컨덕턴스(1/R)로 표현된다. 그리고 소정의 레벨의 전압(VIN,j)이 입력(input)으로서 2개의 시냅스 어레이 M+, M-에 공급하고 2개의 시냅스 어레이의 출력(출력 전류 또는 출력 전압)을 서로 감산시켜, 음수 가중치(negative weight)의 효과를 낼 수 있다.As shown in Figure 1, the synapse weight (synapse weight) is generally implemented with two synaptic arrays. The two synaptic arrays M+ and M- represent positive and negative polarities of synapse weights, respectively. Each synaptic array is represented by a conductance (1/R). And a voltage (V IN,j ) of a predetermined level is supplied as an input to the two synaptic arrays M+, M-, and the outputs (output current or output voltage) of the two synaptic arrays are subtracted from each other, and a negative weight ( negative weight).
도 2는 2개의 시냅스 어레이 M+, M-로 구성되어 음수 가중치를 출력하는 회로를 나타내고 있다.2 shows a circuit for outputting negative weights composed of two synaptic arrays M+ and M-.
그러나 상기와 같은 종래기술의 음수 가중치의 회로 구성은 시스템 관점에서 추가적인 어레이로 인한 불필요한 전력과 면적이 소요된다. 따라서 뉴로모픽 시스템(neuromorphic system)이 저전력, 고집적 성능을 추구하는 것을 고려할 때, 종래기술의 구성은 뉴로모픽 시스템에 적용하기에는 부적합한 문제점을 가진다.However, the circuit configuration with negative weights of the prior art as described above requires unnecessary power and area due to an additional array from a system point of view. Therefore, considering that the neuromorphic system pursues low power and high integration performance, the configuration of the prior art has a problem that is not suitable for application to the neuromorphic system.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 추가적인 시냅시스 어레이를 사용하지 않고도 음의 가중치(weight)를 구현할 수 있는 효율적인 시냅스(synapse)의 크로스바 어레이(crossbar-array) 구조를 제시하는, 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION An object of the present invention is to solve the above-described problems, and to present an efficient synapse crossbar-array structure that can implement negative weights without using an additional synaptic array. It is to provide a neuromorphic circuit system capable of efficiently implementing negative weights.
상기 목적을 달성하기 위해 본 발명은 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 관한 것으로서, 다수의 프리 뉴런; 다수의 포스트 뉴런; 상기 프리 뉴런의 각각에서 로우 방향으로 연장되는 다수의 로우 라인과, 상기 포스트 뉴런의 각각에 대응되는 다수의 컬럼 라인의 교차점들 상에서 배치되어, 시냅스 어레이를 형성하는 다수의 시냅스; 상기 다수의 프리 뉴런의 입력에 시프트 가중치를 가중하여 합산하고 합산된 결과를 출력하는 시프트 회로; 및, 상기 다수의 컬럼 라인 각각의 출력에서 상기 시프트 회로의 출력을 차감하여, 차감된 출력을 상기 포스트 뉴런 각각에 출력시키는 차감 회로를 포함하고, 상기 다수의 시냅스 각각은 원래 가중치에서 상기 시프트 가중치로 시프트한 가중치를 가지는 것을 특징으로 한다.In order to achieve the above object, the present invention relates to a neuromorphic circuit system capable of efficiently implementing negative weights, comprising: a plurality of free neurons; multiple post neurons; a plurality of synapses disposed on intersections of a plurality of row lines extending in a row direction from each of the pre-neurons and a plurality of column lines corresponding to each of the post neurons to form a synapse array; a shift circuit for adding and summing shift weights to the inputs of the plurality of free neurons and outputting the summed result; and a subtraction circuit for subtracting the output of the shift circuit from the output of each of the plurality of column lines, and outputting the subtracted output to each of the post neurons, wherein each of the plurality of synapses is converted from the original weight to the shift weight. It is characterized in that it has a shifted weight.
또, 본 발명은 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 있어서, 상기 시프트 회로는 상기 시프트 가중치를 가지고 각각 프리 뉴런에 연결되는 다수의 시프트 가중치 소자와, 상기 다수의 시프트 가중치 소자들을 모두 연결하는 시프트 라인으로 구성되는 것을 특징으로 한다.Further, in the present invention, in a neuromorphic circuit system capable of efficiently implementing negative weights, the shift circuit connects all of the shift weight elements and a plurality of shift weight elements each having the shift weight and connected to the pre-neuron, and the plurality of shift weight elements. It is characterized in that it is composed of a shift line.
또, 본 발명은 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 있어서, 상기 시프트 가중치 소자는 저항 소자로 구성되는 것을 특징으로 한다.In addition, the present invention is characterized in that in the neuromorphic circuit system capable of efficiently implementing negative weights, the shift weight element is composed of a resistive element.
또, 본 발명은 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 있어서, 상기 차감 회로에 부하 저항을 구비하는 것을 특징으로 한다.In addition, the present invention is a neuromorphic circuit system that can effectively implement negative weights, characterized in that the subtraction circuit is provided with a load resistor.
또, 본 발명은 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 있어서, 상기 저항 소자의 저항 Rshift는 수식 1에 의한 저항으로 설정되는 것을 특징으로 한다.In addition, the present invention is characterized in that in the neuromorphic circuit system capable of efficiently implementing negative weights, the resistance R shift of the resistance element is set to the resistance according to
[수식 1][Formula 1]
단, wshift는 시프트 가중치임.However, w shift is the shift weight.
또, 본 발명은 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 있어서, 상기 시프트 가중치는 상기 시냅스가 나타내는 가중치의 최대폭의 1/2의 값인 것을 특징으로 한다.In addition, the present invention is characterized in that in the neuromorphic circuit system capable of efficiently implementing negative weights, the shift weight is a value of 1/2 of the maximum width of the weight indicated by the synapse.
또, 본 발명은 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 있어서, 상기 시프트 가중치 소자와 상기 시냅스는 동일한 소자로 구현되는 것을 특징으로 한다.In addition, the present invention is characterized in that in the neuromorphic circuit system capable of efficiently implementing negative weights, the shift weight element and the synapse are implemented by the same element.
상술한 바와 같이, 본 발명에 따른 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 의하면, 뉴로모픽 시스템(neuromorphic system)에서 가중치 시프트(weight shift)를 이용하여 음수 가중치를 구현함으로써, 기존의 2개의 어레이(array)를 이용하는 방식과 달리 1개의 어레이(array)만을 사용하여 배치 공간 측면이나 전력 소모 측면에서 효율적일 뿐만 아니라 하드웨어를 용이하고 효율적으로 제작할 수 있는 효과가 얻어진다.As described above, according to the neuromorphic circuit system capable of efficiently implementing negative weights according to the present invention, by implementing negative weights using a weight shift in a neuromorphic system, the existing 2 Unlike the method using multiple arrays, using only one array is effective in terms of layout space and power consumption, and the effect of easily and efficiently manufacturing hardware is obtained.
따라서, 본 발명은 고집적, 저전력 등의 동작특성이 요구되는 뉴로모픽 시스템(neuromorphic system)을 고려하면, 보다 효율적으로 이용될 수 있다. 예를 들어, 본 발명은 뉴로모픽 시스템(neuromorphic system) 기반의 안면인식, 음성인식 등의 시스템이나, 뉴로모픽 시스템(neuromorphic system) 기반의 데이터 처리나 변환 등의 시스템에 적용될 수 있다.Therefore, the present invention can be used more efficiently in consideration of a neuromorphic system requiring high integration and low power operation characteristics. For example, the present invention can be applied to systems such as facial recognition and voice recognition based on a neuromorphic system, or a system for processing or converting data based on a neuromorphic system.
도 1은 종래기술에 따른 음수 가중치(weight)를 구현하기 위한 구성도.
도 2는 도 1의 음수 가중치 구현 시스템의 하드웨어 기반 세부 회로 구성도.
도 3은 본 발명의 일실시예에 따른 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템의 구성에 대한 블록도.
도 4는 본 발명의 일실시예에 따른 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템의 가중치 시프트의 동작 방식을 설명하기 위한 도면.
도 5는 본 발명의 일실시예에 따른 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템에 대한 구현 예시도.
도 6은 본 발명에 따른 시스템을 적용한 파이썬(python)과 종래 기술에 따른 피스파이스(pspice)의 실험결과를 나타낸 표.1 is a configuration diagram for implementing a negative weight according to the prior art;
FIG. 2 is a hardware-based detailed circuit diagram of the system for implementing negative weights of FIG. 1;
3 is a block diagram of a configuration of a neuromorphic circuit system capable of efficiently implementing negative weights according to an embodiment of the present invention.
4 is a diagram for explaining an operation method of a weight shift in a neuromorphic circuit system capable of efficiently implementing negative weights according to an embodiment of the present invention;
5 is an exemplary implementation diagram of a neuromorphic circuit system capable of efficiently implementing negative weights according to an embodiment of the present invention.
6 is a table showing experimental results of python to which the system according to the present invention is applied and pspice according to the prior art.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.Hereinafter, specific contents for carrying out the present invention will be described with reference to the drawings.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.In addition, in demonstrating this invention, the same part is attached|subjected with the same code|symbol, and the repetition description is abbreviate|omitted.
먼저, 본 발명의 일실시예에 따른 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템의 구성에 대하여 도 3을 참조하여 설명한다.First, a configuration of a neuromorphic circuit system capable of efficiently implementing negative weights according to an embodiment of the present invention will be described with reference to FIG. 3 .
도 3에서 보는 바와 같이, 본 발명의 일실시예에 따른 뉴로모픽 시스템(100)은 다수의 프리 뉴런들(10), 프리 뉴런들(10)로부터 로우 방향으로 연장하는 다수의 로우 라인들(R), 다수의 포스트 뉴런들(20), 다수의 포스트 뉴런들(20)로부터 컬럼 방향으로 연장하는 다수의 컬럼 라인들(C), 로우 라인들(R)과 컬럼 라인들(C)의 교차점들 상에 배치된 다수의 시냅스들(30), 각 프리 뉴런(10)에 연결된 시프트 가중치 소자(40), 및, 각 컬럼 라인(C)의 시냅스들의 출력에서 시프트 가중치된 값을 차감하는 차감 회로(50)로 구성된다.As shown in FIG. 3 , the
먼저, 프리 뉴런(10)은 학습 모드 또는 독출 모드에서 로우 라인(R)을 통하여 시냅스(30)로 전기적 신호를 전송할 수 있다. 프리 뉴런(10)은 N개의 뉴런으로 구성된다. 또한, 로우 라인(R)도 N개의 라인으로 구성된다.First, the pre-neuron 10 may transmit an electrical signal to the
한편, 바람직하게는, 각 프리 뉴런 i는 입력값으로 입력전압 Vi가 입력될 수 있다(여기서, i = 1, 2, ..., N). 여기서 프리 뉴런 i로부터 연장되는 로우 라인(R)을 로우 라인 i라 지칭한다.Meanwhile, preferably, each pre-neuron i may receive an input voltage V i as an input value (here, i = 1, 2, ..., N). Here, a row line R extending from the pre-neuron i is referred to as a row line i.
다음으로, 포스트 뉴런(20)은 학습 모드 또는 독출 모드에서 컬럼 라인(C)을 통하여 시냅스(30)로 전기적 신호를 전송하거나 또는 시냅스(30)로부터 전기적 신호를 수신할 수 있다. 포스트 뉴런(20)은 M개의 뉴런으로 구성된다.Next, the
또한, 컬럼 라인(C)은 포스트 뉴런(20)에 각각 대응되는 라인으로서, M개의 라인으로 구성된다. 포스트 뉴런 j로에 대응되는 컬럼 라인(C)을 컬럼 라인 j라 지칭한다. j = 1, 2, ..., M이다.In addition, the column line C is a line corresponding to the
각 컬럼 라인 j는 로우 라인 1~N과 교차하는 지점에 구비된 시냅스 (1,j), (2,j), ..., (N,j)와 연결된다. 따라서 각 컬럼 라인 j의 출력 Ij은 컬럼 라인 j의 모든 시냅스들의 출력이 합산된 값이다.Each column line j is connected to a synapse (1,j), (2,j), ..., (N,j) provided at a point crossing the
다음으로, 각 시냅스(30)는 다수 레벨의 컨덕턴스, 특히, 양의 레벨 컨던턱스를 기억할 수 있는 소자이다. 시냅스 소자의 경우 여러 종류의 메모리 소자가 사용될 수 있다. 예를 들어, 상변화 메모리(phase change random access memory), 저항변화 메모리(resistive random access memory), 강유전체 메모리(FRAM, ferroelectric random access memory), 플래시 메모리(flash memory) 등이 사용될 수 있다. 하드웨어 기반의 뉴로모픽 시스템(neuromorphic system)에서 시냅스 가중치는 소자가 가지는 컨덕턴스(conductance)를 가중치로 사용된다.Next, each
한편, 각 시냅스 (i,j)는 로우 라인 i와 컬럼 라인 j의 교차점에 구비되어, 시냅스(30)들은 시냅스 어레이(synapse array)를 구성한다. 바람직하게는, 각 시냅스 (i,j)는 일단에 로우 라인 i와 연결되고, 타단에 컬럼 라인 j가 연결된다.On the other hand, each synapse (i, j) is provided at the intersection of the row line i and the column line j, the
또한, 각 시냅스 (i,j)는 가중치 wij를 나타낸다. 특히, 시냅스 (i,j)는 시프트된 가중치를 기억 또는 저장하는 소자이다. 즉, 시냅스(i,j)는 시프트된 가중치를 컨덕턴스(conductance) 값으로 기억 또는 저장한다.In addition, each synapse (i, j) represents a weight w ij . In particular, the synapse (i, j) is a device that stores or stores the shifted weight. That is, the synapse (i, j) stores or stores the shifted weight as a conductance value.
즉, 시냅스 (i,j)의 시프트된 가중치 wij는 다음 식과 같이 표시될 수 있다.That is, the shifted weight w ij of the synapse (i, j) may be expressed as the following equation.
[수학식 1][Equation 1]
위 식에서, wij는 소자가 갖는 가중치로서, 항상 양의 값을 갖는다. 또한, w0 ij은 실제 사용되어야 할 가중치로서, 음의 가중치도 포함한다.In the above equation, w ij is the weight of the device and always has a positive value. In addition, w 0 ij is a weight to be actually used, and includes a negative weight.
그리고 wshift는 시프트 가중치이다. 따라서 위 식은 소자가 갖는 가중치의 경우, 원래 사용되어야 할 가중치에서 wshift 만큼 시프트 된 것으로 가정한 식이다. 즉, 소자의 가중치는 항상 양의 값을 가지기 때문이다.And w shift is the shift weight. Therefore, the above equation assumes that the weight of the device is shifted by w shift from the weight to be used originally. That is, this is because the weight of the device always has a positive value.
[수학식 1-2][Equation 1-2]
따라서 사용되어야 할 가중치를 만들어 주기 위해서, 소자가 갖는 가중치에 시프트 가중치를 빼줌으로써 구현될 수 있다. 즉, 원래 사용되어야 할 가중치(또는 시프트전 가중치)는 양과 음의 값을 가져야 하지만, 시냅스 소자가 물리적으로 양의 컨덕턴스 값만을 가지므로 음의 가중치를 사용하기 위해서는 음의 방향으로 시프트를 시켜주어야 한다.Therefore, in order to make a weight to be used, it can be implemented by subtracting the shift weight from the weight of the device. That is, the weight (or weight before shift) to be originally used should have positive and negative values, but since the synaptic element has only a positive conductance value physically, it is necessary to shift it in a negative direction to use a negative weight. .
예를 들어, 9~11범위를 갖는 시냅스 소자의 가중치(weight)는 항상 양의 값을 갖지만 10만큼 시프트 시켜줄 경우 -1~1 범위 (즉, 음의 가중치를 포함한)의 가중치를 사용할 수 있다. 예시와 같이, 시프트 가중치 wshift는 시냅스 소자 가중치의 최대폭의 1/2 값이 사용되어야 한다. 따라서 시프트 가중치 wshift는 소자가 항상 갖는 양의 가중치를 음의 범위를 포함한 가중치로 만드는 시프트 값이다.For example, the weight of a synaptic element having a range of 9 to 11 always has a positive value, but if it is shifted by 10, a weight in the range of -1 to 1 (ie, including a negative weight) can be used. As an example, for the shift weight w shift , a value of 1/2 of the maximum width of the synaptic element weight should be used. Therefore, the shift weight w shift is a shift value that makes the positive weight that the device always has into the weight including the negative range.
다음으로, 시프트 가중치 소자(40)는 시프트 가중치를 가지는 소자로서, 시프트 가중치 wshift를 기억(저장)한다. 시프트 가중치 소자(40)는 프리 뉴런(10) 각각에 연결되는 소자, 또는 로우 라인(R)에 연결되는 소자로서, N개로 구성된다. 따라서 각 시프트 가중치 소자(40)는 대응되는 프리 뉴런의 입력 값에 시프트 가중치로 가중시킨다. 또한, 각 시프트 가중치 소자(40)들은 모두 시프트 라인(S)에 연결되어, 각 소자의 출력을 합산시킨다.Next, the
즉, 시프트 가중치 소자(40)들은 다수의 프리 뉴런의 입력에 시프트 가중치를 가중하여 합산하고 합산된 결과를 출력하는 시프트 회로를 구성한다. 바람직하게는, 시프트 회로는 각 프리 뉴런(10)에 연결되는 시프트 가중치 소자(40)와 상기 시프트 가중치 소자들을 컬럼 방향으로 연결하는 시프트 라인(S)으로 구성된다.That is, the
바람직하게는, 시프트 가중치 소자(40)는 저항 소자로 구성될 수 있다. 즉, 다음 식과 같은 저항 Rshift을 갖는 저항 소자로 구현될 수 있다.Preferably, the
[수학식 2][Equation 2]
여기서, wshift는 시프트 가중치이다.Here, w shift is the shift weight.
한편, 시프트 가중치 소자(40)는 저항소자에 한정되지 않으며, 시프트 가중치 wshift의 컨덕턴스(conductance, 저항의 역수)를 가지는 어떤 소자도 사용될 수 있다. 예를 들어, 뉴로모픽 회로 제작 공정의 효율성을 위해 시냅스를 구성하는 멤리스터 등 동일한 소자로도 구현될 수 있다.Meanwhile, the
또한, 시프트 가중치 소자들(40)을 모두 연결하는 컬럼 방향의 시프트 라인(S)이 구비된다. 따라서 시프트 가중치 소자들(40)에 의해 가중된 출력값들은 모두 합산되어, 시프트 라인(S)으로 출력될 수 있다.In addition, a shift line S in the column direction connecting all the
시프트 라인(S)의 출력 Ishift는 다음 식과 같다. The output I shift of the shift line S is as follows.
[수학식 3][Equation 3]
여기서, wshift는 시프트 가중치이고, Vi는 프리 뉴런 i의 입력값이다.Here, w shift is the shift weight, and V i is the input value of the pre-neuron i.
또한, 시프트 가중치 소자(40)가 저항소자로 구현되는 경우 시프트 라인(S)의 출력 Ishift는 다음 식과 같이 나타낼 수 있다.In addition, when the
[수학식 4][Equation 4]
여기서, Rshift는 시프트 가중치 소자(40)의 저항값이다.Here, R shift is the resistance value of the
다음으로, 차감 회로(50)는 각 컬럼 라인(C)의 시냅스들(30)의 출력에서 시프트 가중치된 값들을 차감한다. 즉, 각 컬럼 라인(C)의 출력 값에서 시프트 라인(S)의 출력 값을 차감한다.Next, the
앞서 설명한 바와 같이, 각 컬럼 라인 j의 출력 Ij은 컬럼 라인 j의 모든 시냅스들의 출력이 합산된 값이다. 따라서 각 컬럼 라인 j의 출력 Ij은 다음 식으로 나타낼 수 있다.As described above, the output I j of each column line j is the sum of the outputs of all synapses of the column line j. Therefore, the output I j of each column line j can be expressed as the following equation.
[수학식 5][Equation 5]
여기서, wij는 시냅스 (i,j)의 가중치를 나타내고, Vi는 프리 뉴런 i의 입력값이다.Here, w ij represents the weight of the synapse (i, j), and V i is the input value of the pre-neuron i.
차감 회로(50)의 최종 출력 I* j는 컬럼 라인(C)의 출력값 Ij에서 시프트 라인(S)의 출력 Ishift를 차감한 값이다. 따라서 최종 출력 I* j는 다음 수학식과 같다. The final output I * j of the
[수학식 6][Equation 6]
또한, 시프트 가중치 소자(40)가 저항소자로 구현되는 경우 최종 출력 I* j는 다음 수학식과 같다.In addition, when the
[수학식 7][Equation 7]
한편, 차감 회로(50)는 각 컬럼 라인(C)의 출력을 전압으로 계산하기 위하여, 부하 저항(RLoad)을 추가할 수 있다.Meanwhile, the
다음으로, 본 발명에 따른 뉴로모픽 회로 시스템의 구성 일례를 도 4 및 도 5를 참조하여 설명한다.Next, an example of the configuration of the neuromorphic circuit system according to the present invention will be described with reference to FIGS. 4 and 5 .
본 발명에 따른 뉴로모픽 회로 시스템은 음수 가중치(weight)를 구현하기 위한 간단한 시스템이다. 어레이(array)에서 사용된 시냅스 소자가 갖는 컨덕턴스(conductance), 즉, 가중치(weight) 값을 음의 방향으로 시프트(shift) 시켜줌으로써 동작된다.The neuromorphic circuit system according to the present invention is a simple system for implementing negative weights. It operates by shifting the conductance (conductance) of the synaptic element used in the array, that is, a weight value, in a negative direction.
도 4와 같이, 시프트 가중치를 10으로 설정하였다. 그 이유는, 시냅스 소자가 갖는 가중치값이 9~11으로 가정하였기 때문이다. 즉, 사용되어야 할 -1~1 가중치에서 10만큼 시프트(shift)된 것으로 가정한다. 또한, 시냅스 소자의 가중치 범위의 1/2 값이 곧 10의 시프트(shift) 값으로 계산될 수 있다.As shown in Fig. 4, the shift weight is set to 10. The reason is that it is assumed that the weight values of the synaptic elements are 9 to 11. That is, it is assumed that the -1 to 1 weights to be used are shifted by 10. In addition, a 1/2 value of the weight range of the synaptic element may be calculated as a shift value of 10.
따라서 도 4와 같이 9~11 값의 가중치(weight)를 갖는 소자를 거쳐 출력되는 값에 대해서, 10의 가중치(weight)와 입력신호(input signal)을 곱한 값을 감산시킨다. 즉, 재시프트(re-shift) 과정을 수행시켜준다.Therefore, as shown in FIG. 4, a value obtained by multiplying a weight of 10 by an input signal with respect to a value output through an element having a weight of 9 to 11 is subtracted. That is, it performs a re-shift process.
다시 말하자면, 9~11 가중치(weight)를 갖는 소자로 구성된 어레이(array)를 거쳐나온 출력값에서 10의 값을 갖는 가중치(weight)와 입력신호(input signal)를 곱한 출력값을 감산시킨다. 이를 통해, 음수의 가중치(weight)가 사용된 결과를 얻을 수 있다. 즉, 사용한 소자 가중치(weight)의 최소값 (9) 과 최대값 (11) 의 평균값인 10의 가중치(weight)를 사용한다.In other words, an output value obtained by multiplying an input signal by a weight having a value of 10 from an output value passed through an array composed of elements having a weight of 9 to 11 is subtracted. Through this, it is possible to obtain a result in which a negative weight is used. That is, a weight of 10, which is an average value of the minimum value (9) and the maximum value (11) of the element weights used, is used.
도 5에서 보는 바와 같이, 입력 전압(input voltage)은 V의 값을, 시냅스 가중치(synapse weight)(conductance)는 9~11의 범위의 가중치(weight)를 가질 수 있는 소자를 사용하였다.As shown in Figure 5, the input voltage (input voltage) is the value of V, and synapse weight (conductance), a device capable of having a weight in the range of 9 to 11 was used.
도 5와 같이, 입력, 즉, 프리 뉴런(pre-neuron)에서 시냅스 어레이(synapse array) 내로 입력전압(signal voltage)를 인가할 때, 시냅스 어레이에서 포스트 뉴런(post neuron) 방향으로 출력되는 출력 전류는 수학식 5와 같다. 즉, 각 시냅스 어레이 내 소자가 갖는 가중치인 컨덕턴스(conductance)와 인가된 전압(voltage)의 곱들의 합으로 표현된다. 이때의 출력은 음의 가중치(weight)가 고려되지 않은 (9~11의 가중치를 갖는) 소자로 구성된 어레이(array)를 거쳐 나온 출력이다. 따라서 오직 양의 값을 갖는 출력이다.As shown in FIG. 5 , when a signal voltage is applied from an input, that is, a pre-neuron to a synapse array, an output current output from the synapse array to a post neuron direction is the same as in Equation 5. That is, it is expressed as the sum of products of conductance, which is a weight of the element in each synaptic array, and an applied voltage. At this time, the output is output through an array composed of elements (with weights of 9 to 11) that do not take into account negative weights. Therefore, it is only a positive output.
따라서, 음의 가중치를 고려하기 위해, 도 5에 표현된 시프트 회로(shift circuit)를 사용한다. 이때 시프트 회로(shift circuit) 내에 시프트 가중치 소자, 즉, 시프트(shift)용 저항은 9~11의 가중치(weight)를 갖는 소자의 가중치 값 중 10값을 갖는 가중치들의 역수를 이용해야 한다.Therefore, to account for negative weights, the shift circuit shown in Fig. 5 is used. At this time, the shift weight element in the shift circuit, that is, the resistor for shift, must use the inverse of the weights having a value of 10 among the weight values of elements having a weight of 9 to 11.
예를들어, 9~11의 가중치 값이 0.001~0.005 의 컨덕턴스(conductance) 값을 갖는 소자를 사용하였다면 Rshift의 값은 1/0.003 로 사용한다; 저항은 컨덕턴스(conductance)의 역수이므로 0.001과 0.005의 평균값의 역수 값을 사용한다.For example, if a device with a weight value of 9 to 11 and a conductance value of 0.001 to 0.005 is used, the value of R shift is 1/0.003; Since resistance is the reciprocal of conductance, the reciprocal value of the average value of 0.001 and 0.005 is used.
따라서 어레이(array)에서 출력되는 값과 시프트 회로(shift circuit)에서 출력되는 값을 차감함으로써 음의 가중치가 고려된 출력을 얻을 수 있다. 해당 예에서는, 부하(load) 저항을 달아 전압(voltage) 출력을 사용하였으며, 첫 번째 출력부(또는 포스트 뉴런)에 출력되는 전압(voltage)는 (i1 × Rload) - (ishift × Rload) 의 값을 갖는다.Therefore, by subtracting the value output from the array and the value output from the shift circuit, an output with a negative weight taken into account can be obtained. In this example, a voltage output was used by attaching a load resistor, and the voltage output to the first output unit (or post neuron) is (i 1 × R load ) - (i shift × R) load ).
다음으로, 본 발명의 효과를 실험을 통해 보다 구체적으로 설명한다.Next, the effects of the present invention will be described in more detail through experiments.
본 발명에 따른 시스템을 실험적으로 증명하기 위해 16개의 입력신호(input signal)와 5개의 포스트 뉴런(post neuron)(출력부)을 이용하여 실험을 진행하였다. 우선적으로 파이썬(python) 기반의 소프트웨어를 이용하여 도 4에 제시된 동작 방식을 통해 학습(training)을 시키고 회로에 사용할 시냅스 가중치(synapse weight) 값을 얻어내었다(16 x 5 = 80 개의 가중치 값).In order to experimentally prove the system according to the present invention, an experiment was conducted using 16 input signals and 5 post neurons (output units). First, using Python-based software, training was performed through the operation method shown in FIG. 4, and synapse weight values to be used in the circuit were obtained (16 x 5 = 80 weight values).
그리고 얻어진 시냅스 가중치(synapse weight)를 회로 시뮬레이션을 위한 프로그램중 하나인 피스파이스(pspice)를 통해 회로를 설계한 뒤 소프트웨어와 비교 분석하였다. 파이썬(python) 상의 포스트 뉴런(post neuron) 출력값과 피스파이스(pspice)로 설계한 뉴로모픽 회로 상의 출력 전압값을 비교 분석하였다.And the obtained synapse weight (synapse weight) was compared and analyzed with software after designing a circuit through pspice, one of the programs for circuit simulation. Post neuron output value on python and output voltage value on neuromorphic circuit designed with pspice were compared and analyzed.
도 6은 파이썬(python)과 피스파이스(pspice) 상에서 5개의 출력 값을 도표로 표현하여 비교한 것이다. 결과적으로 파이썬(python) 상의 소프트웨어 출력값과 일치되는 출력을 피스파이스(pspice) 상에서 얻어내었다.6 is a comparison of five output values expressed in a diagram in python and pspice. As a result, the output that matches the software output on python was obtained on pspice.
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.In the above, the invention made by the present inventors has been described in detail according to the above embodiments, but the present invention is not limited to the above embodiments, and various modifications can be made without departing from the gist of the present invention.
10 : 프리 뉴런 20 : 포스트 뉴런
30 : 시냅스 40 : 시프트 가중치 소자
50 : 차감 회로10: pre neuron 20: post neuron
30: synapse 40: shift weight element
50: subtraction circuit
Claims (7)
다수의 프리 뉴런;
다수의 포스트 뉴런;
상기 프리 뉴런의 각각에서 로우 방향으로 연장되는 다수의 로우 라인과, 상기 포스트 뉴런의 각각에 대응되는 다수의 컬럼 라인의 교차점들 상에서 배치되어, 시냅스 어레이를 형성하는 다수의 시냅스;
상기 다수의 프리 뉴런의 입력에 시프트 가중치를 가중하여 상기 다수의 시냅스에 출력하는 시프트 회로; 및,
상기 다수의 컬럼 라인 각각의 출력에서 시프트 가중치로 가중된 값을 차감하여, 차감된 출력을 상기 포스트 뉴런 각각에 출력시키는 차감 회로를 포함하고,
상기 다수의 시냅스 각각은 원래 가중치에서 상기 시프트 가중치로 시프트한 가중치를 가지고,
상기 시프트 회로는 상기 시프트 가중치를 가지고 각각 프리 뉴런에 연결되는 다수의 시프트 가중치 소자와, 상기 다수의 시프트 가중치 소자들을 모두 연결하는 시프트 라인으로 구성되고,
다수의 로우 라인 각각에 대하여, 해당 로우 라인에 연결된 프리 뉴런과, 해당 로우 라인 상의 시냅스 사이에 시프트 가중치 소자가 해당 로우 라인에 연결되어, 해당 시프트 가중치 소자가 자신의 시프트 가중치로 해당 로우 라인 상의 시냅스의 가중치를 시프트 시켜 가중하고,
상기 시프트 회로는 상기 시프트 라인에 연결된 모든 시프트 가중치 소자의 시프트 가중치를 합산하고 합산된 결과를 상기 차감 회로로 출력하고,
상기 차감 회로는 상기 다수의 컬럼 라인 각각의 출력에서 상기 시프트 회로의 합산된 결과를 차감하고,
상기 시냅스는 양의 가중치를 기억하는 소자인 것을 특징으로 하는 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템.
In a neuromorphic circuit system that can efficiently implement negative weights,
a large number of free neurons;
multiple post neurons;
a plurality of synapses disposed on intersections of a plurality of row lines extending in a row direction from each of the pre-neurons and a plurality of column lines corresponding to each of the post neurons to form a synapse array;
a shift circuit that weights shift weights to the inputs of the plurality of pre-neurons and outputs them to the plurality of synapses; and,
and a subtraction circuit for subtracting a value weighted by a shift weight from the output of each of the plurality of column lines, and outputting the subtracted output to each of the post neurons;
Each of the plurality of synapses has a weight shifted from the original weight to the shift weight,
the shift circuit includes a plurality of shift weight elements each having the shift weight and connected to the pre-neuron, and a shift line connecting all of the plurality of shift weight elements;
For each of the plurality of row lines, a shift weight element is connected to the row line between the pre-neuron connected to the row line and the synapse on the row line, and the shift weight element uses its shift weight to synapse the synapse on the row line. weighted by shifting the weight of
the shift circuit sums up shift weights of all shift weight elements connected to the shift line and outputs the summed result to the subtraction circuit;
the subtraction circuit subtracts the summed result of the shift circuit from the output of each of the plurality of column lines;
The synapse is a neuromorphic circuit system capable of efficiently implementing negative weights, characterized in that it is a device that stores positive weights.
상기 시프트 가중치 소자는 저항 소자로 구성되는 것을 특징으로 하는 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템.
According to claim 1,
The shift weight element is a neuromorphic circuit system capable of effectively implementing negative weights, characterized in that it is composed of a resistive element.
상기 차감 회로에 부하 저항을 구비하는 것을 특징으로 하는 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템.
4. The method of claim 3,
A neuromorphic circuit system capable of efficiently implementing negative weights, characterized in that a load resistor is provided in the subtraction circuit.
상기 저항 소자의 저항 Rshift는 수식 1에 의한 저항으로 설정되는 것을 특징으로 하는 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템.
[수식 1]
단, wshift는 시프트 가중치임.
4. The method of claim 3,
A neuromorphic circuit system capable of effectively implementing negative weights, characterized in that the resistance R shift of the resistive element is set to the resistance according to Equation 1.
[Formula 1]
However, w shift is the shift weight.
상기 시프트 가중치는 상기 시냅스가 나타내는 가중치의 최대폭의 1/2의 값인 것을 특징으로 하는 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템.
According to claim 1,
The shift weight is a neuromorphic circuit system capable of effectively implementing negative weights, characterized in that it is a value of 1/2 of the maximum width of the weight represented by the synapse.
상기 시프트 가중치 소자와 상기 시냅스는 동일한 소자로 구현되는 것을 특징으로 하는 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템.
According to claim 1,
The neuromorphic circuit system capable of effectively implementing negative weights, characterized in that the shift weight element and the synapse are implemented by the same element.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190018370A KR102309013B1 (en) | 2019-02-18 | 2019-02-18 | An efficient neuromorphic circuit system of realizing negative weight |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190018370A KR102309013B1 (en) | 2019-02-18 | 2019-02-18 | An efficient neuromorphic circuit system of realizing negative weight |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200100286A KR20200100286A (en) | 2020-08-26 |
KR102309013B1 true KR102309013B1 (en) | 2021-10-07 |
Family
ID=72242372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190018370A KR102309013B1 (en) | 2019-02-18 | 2019-02-18 | An efficient neuromorphic circuit system of realizing negative weight |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102309013B1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102421323B1 (en) * | 2020-09-29 | 2022-07-15 | 한양대학교 산학협력단 | Synapse element base on pcm and operation method thereof |
KR102421324B1 (en) * | 2020-10-05 | 2022-07-15 | 한양대학교 산학협력단 | Synapse element for securing symmety in ltp and ltdm and operation method thereof |
KR102634665B1 (en) | 2021-12-21 | 2024-02-07 | 포항공과대학교 산학협력단 | Neuromorphic semiconductor devices and operating methods |
KR20230133051A (en) | 2022-03-10 | 2023-09-19 | 포항공과대학교 산학협력단 | Neuromorphic semiconductor devices and operating methods |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0530237B1 (en) * | 1990-05-21 | 1994-11-09 | General Electric Company | Capacitive structures for weighted summation, as used in neural nets |
KR101924694B1 (en) * | 2016-09-28 | 2019-02-21 | 포항공과대학교 산학협력단 | Weighting Device and Method of the same |
-
2019
- 2019-02-18 KR KR1020190018370A patent/KR102309013B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20200100286A (en) | 2020-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102309013B1 (en) | An efficient neuromorphic circuit system of realizing negative weight | |
US20210201125A1 (en) | On-chip training of memristor crossbar neuromorphic processing systems | |
US9646243B1 (en) | Convolutional neural networks using resistive processing unit array | |
US11907831B2 (en) | Analog neuromorphic circuit implemented using resistive memories | |
Truong et al. | New memristor-based crossbar array architecture with 50-% area reduction and 48-% power saving for matrix-vector multiplication of analog neuromorphic computing | |
EP2776988B1 (en) | Method and apparatus for using memory in probabilistic manner to store synaptic weights of neural network | |
US11531898B2 (en) | Training of artificial neural networks | |
JP2019502970A (en) | Resistive processing unit | |
US20200117986A1 (en) | Efficient processing of convolutional neural network layers using analog-memory-based hardware | |
US11087204B2 (en) | Resistive processing unit with multiple weight readers | |
US20230297839A1 (en) | Deep learning in bipartite memristive networks | |
Sun et al. | Low-consumption neuromorphic memristor architecture based on convolutional neural networks | |
Zheng et al. | Hardware-friendly actor-critic reinforcement learning through modulation of spike-timing-dependent plasticity | |
Truong et al. | Memristor circuits and systems for future computing and bio-inspired information processing | |
US20230100139A1 (en) | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference | |
Kang et al. | A dynamic fixed-point representation for neuromorphic computing systems | |
Kazemi et al. | A device non-ideality resilient approach for mapping neural networks to crossbar arrays | |
JP6902000B2 (en) | Arithmetic logic unit | |
CN114004344A (en) | Neural network circuit | |
Cheng et al. | A combined evolution method for associative memory networks | |
Truong et al. | Memristor-based cellular nanoscale networks: Theory, circuits, and applications | |
Zidan et al. | Hybrid neural network using binary RRAM devices | |
Jacob et al. | Learning rule for associative memory in recurrent neural networks | |
Rückert | VLSI implementation of an associative memory based on distributed storage of information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |