KR20180070187A - Apparatus and method for regularizating of neural network device - Google Patents

Apparatus and method for regularizating of neural network device Download PDF

Info

Publication number
KR20180070187A
KR20180070187A KR1020160172594A KR20160172594A KR20180070187A KR 20180070187 A KR20180070187 A KR 20180070187A KR 1020160172594 A KR1020160172594 A KR 1020160172594A KR 20160172594 A KR20160172594 A KR 20160172594A KR 20180070187 A KR20180070187 A KR 20180070187A
Authority
KR
South Korea
Prior art keywords
lines
signal
input
signals
line
Prior art date
Application number
KR1020160172594A
Other languages
Korean (ko)
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 KR1020160172594A priority Critical patent/KR20180070187A/en
Publication of KR20180070187A publication Critical patent/KR20180070187A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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

Abstract

The present technique relates to a neuromorphic apparatus capable of normalizing a computing operation by performing dropout on some information, and an operation method thereof. The neuromorphic apparatus includes: an input unit for applying a plurality of input signals to a plurality of corresponding first lines, respectively; an operation unit including a plurality of memory elements cross-connected between the first lines and a plurality of second lines, in which each of the memory elements has a unique weight value so as to generate product signals of the input signals of the corresponding first lines and weights to output the generated product signals to corresponding second lines among the second lines; a drop-connect control unit including switches connected between the first line and the memory elements to drop a connection of the input signal applied to a corresponding memory element by switching the switch through a random signal; and an output unit connected to the second line to activate signals of the second lines to apply the activated signals to the input unit as an input signal and to output a result when a preset number of operations are completed.

Description

신경망 장치의 정규화 장치 및 방법{APPARATUS AND METHOD FOR REGULARIZATING OF NEURAL NETWORK DEVICE}[0001] APPARATUS AND METHOD FOR REGULARIZING OF NEURAL NETWORK DEVICE [0002]

본 발명은 드롭 커넥트 및/또는 드롭 아웃을 이용하여 신경망 장치의 정규화를 실행하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for performing normalization of a neural network device using a drop connect and / or a dropout.

인간의 뇌에는 수천억 단위의 신경 세로로서 뉴런(neuron)이 있고, 이들은 복잡한 신경망을 이루고 있다. 뉴런은 수천 개 단위의 다른 뉴런과 시냅스(synapses)들을 통하여 신호를 주고 받음으로서 지적 능력을 발휘할 수 있다. 뉴런은 신경계의 구조적, 기능적 단위이며 정보 전달의 기본 단위가 될 수 있다. 시냅스는 뉴런 사이의 접합부가 될 수 있으며, 다른 뉴런과 시냅스로 접촉할 수 있다. 신경망 장치는 이런 신경망을 모사한 인공 신경계를 뉴런 수준으로 만들어지는 장치가 될 수 있다. There are hundreds of billions of neurons in the human brain, which form a complex neural network. Neurons are able to exert their intellectual abilities by sending and receiving signals through thousands of other neurons and synapses. Neurons are structural and functional units of the nervous system and can be the basic unit of information transmission. Synapses can be junctions between neurons and synaptic contact with other neurons. The neural network device can be a device that makes the artificial neurons simulating these neural networks to the neuron level.

신경망 장치는 뉴런에 특정한 정보를 임의로 할당하고, 할당 정보를 해당하는 뉴런에 학습시키는 방법이 될 수 있다. 신경망 장치에서 뉴런은 다른 뉴런의 시냅스와 접촉되어 정보를 입력할 수 있으며, 또한 다른 뉴런의 입력 정보로 출력할 수 있다. The neural network device may be a method of arbitrarily allocating specific information to a neuron and learning allocation information to a corresponding neuron. In a neural network device, a neuron can be in contact with the synapse of another neuron to input information, and can also output the input information of another neuron.

신경망 장치의 알고리듬은 복잡도가 높을 수 있다. 예를들면, 하나의 뉴런은 수많은 정보들을 입력할 수 있다. 입력된 정보들을 각각 대응되는 웨이트와 연산하는 동작을 수행할 수 있다. 따라서 신경망 장치의 복잡도를 개선하기 위하여 정규화(normalization, regularization)할 필요가 있다. The algorithm of the neural network device may be highly complex. For example, one neuron can input a lot of information. And can perform an operation of calculating the input information with the respective weights. Therefore, in order to improve the complexity of the neural network device, normalization (regularization) is required.

본 발명의 실시 예들은 신경망 장치의 연산을 정규화할 수 있는 장치 및 방법을 제공할 수 있다. Embodiments of the present invention may provide an apparatus and method for normalizing an operation of a neural network device.

본 발명의 실시예들은 멤리스터들을 이용하여 정보를 처리하는 신경망 장치에서 멤리스터에 입력되는 신호를 정규화(drop-connect)할 수 있는 장치 및 방법을 제공할 수 있다.Embodiments of the present invention may provide an apparatus and method for drop-connecting a signal input to a memristor in a neural network device that processes information using memristors.

본 발명의 실시예들은 멤리스터들을 이용하여 정보를 처리하는 신경망 장치에서 멤리스터의 노드 출력을 드롭아웃할 수 있는 장치 및 방법을 제공할 수 있다.Embodiments of the present invention may provide an apparatus and method that can drop out node outputs of a memristor in a neural network device that processes information using memristors.

본 발명의 실시예들은 멤리스터들을 이용하여 정보를 처리하는 신경망 장치에서 드롭 커넥트 및 드롭아웃 기능을 이용하여 정규화할 수 있는 장치 및 방법을 제공할 수 있다.Embodiments of the present invention may provide an apparatus and method that can be normalized using a drop-connect and drop-out function in a neural network device that processes information using memristors.

본 발명의 다양한 실시예들에 따른 신경망 장치는, 복수의 입력 신호들을 각각 대응되는 복수의 제1 라인들에 인가하는 입력부와, 상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 복수의 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호들을 생성하여 상기 복수의 제2 라인들 중 대응되는 제2 라인에 출력하는 연산부와, 상기 제1라인과 상기 메모리 소자들 사이에 연결되는 스위치들을 포함하며, 랜덤 신호에 의해 상기 스위치가 스위칭 제어되어 대응되는 메모리 소자에 인가되는 입력 신호의 연결을 해제하는 드롭 커넥트 제어부 및 상기 제2 라인에 연결되며, 상기 제2 라인의 신호들을 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 출력하는 출력부를 포함할 수 있다. A neural network apparatus according to various embodiments of the present invention includes an input unit for applying a plurality of input signals to a plurality of first lines respectively corresponding to the plurality of first lines and a plurality of second lines, Wherein each of the memory devices has a unique weight value and generates product signals of the input signal and the weight of the corresponding first line to generate corresponding second And a switch connected between the first line and the memory elements, the switch being controlled by the switch to switch the input signal to a corresponding memory element, A connect control unit and the second line, activates signals of the second line and applies the input signals to the input unit, When the output operation is ended output that may include a.

또한 본 발명의 다양한 실시예들에 따른 신경망 장치는, 복수의 입력 신호들을 각각 대응되는 복수의 제1 라인들에 인가하는 입력부와, 상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 복수의 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호들을 생성하여 상기 복수의 제2 라인들 중 대응되는 제2 라인에 출력하는 연산부와, 상기 제1라인과 상기 메모리 소자들 사이에 연결되는 스위치들을 포함하며, 제1 랜덤 신호에 의해 상기 스위치가 스위칭 제어되어 대응되는 메모리 소자에 인가되는 입력 신호의 연결을 해제하는 드롭 커넥트 제어부와, 상기 제2 라인들에 연결되는 스위치들을 포함하며, 제2 랜덤 신호에 의해 적어도 하나의 상기 제2 라인의 신호를 드롭아웃하는 드롭아웃 제어부 및 상기 제2 라인에 연결되며, 상기 제2 라인의 신호들을 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 출력하는 출력부를 포함할 수 있다. .The neural network apparatus according to various embodiments of the present invention may further include an input unit for applying a plurality of input signals to a plurality of first lines respectively corresponding to the plurality of first lines and a plurality of second lines, Wherein each of the memory elements has a unique weight value and generates product signals of the input signal and the weight of the corresponding first line to output a corresponding product of the plurality of second lines, And a switch connected between the first line and the memory elements, wherein the switch is controlled by a first random signal to switch a connection of an input signal applied to the corresponding memory element, And a switch connected to the second lines, wherein the second random signal causes at least one of the second lines A dropout control unit for dropping out a signal and an output unit connected to the second line and activating signals of the second line to apply the input signals to the input unit and outputting the signals when the set number of operations is completed . .

본 발명의 다양한 실시예들에 따른 신경망 장치의 정규화 방법은, 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되고, 각각 웨이트 값에 대응되는 고유 저항값을 가지는 메모리 소자들의 상기 제1 라인들에 복수의 입력신호들을 인가하는 단계와, 제1 랜덤 신호에 의해 상기 제1라인들과 상기 메모리 소자들 사이에 연결되는 제1 스위치들 중에서 대응되는 일부의 제1스위치들이 스위칭 제어되어 상기 메모리 소자들에 인가되는 입력 신호들의 연결을 해제하는 드롭 커넥트 단계와, 상기 메모리 소자들에서 대응되는 상기 입력 신호와 저항 값에 의해 생성되는 전류신호들을 상기 제2라인들에서 합성하여 노드의 신호를 생성하는 단계 및 상기 제2 라인들의 신호들을 활성함수에 의해 활성화시켜 상기 입력신호로 궤환시키는 출력 단계를 포함할 수 있다. A method of normalizing a neural network device according to various embodiments of the present invention includes the steps of: selecting a plurality of memory devices, each having a specific resistance value corresponding to a weight value, which are located at intersections of a plurality of first lines and a plurality of second lines, Applying a plurality of input signals to the first lines and a corresponding one of the first switches among the first switches connected between the first lines and the memory elements by a first random signal, And a memory circuit for storing the current signals generated by the input signals and the resistance values corresponding to the memory elements in the second lines, And an output step of activating the signals of the second lines by an activation function and feeding back the signals of the second lines to the input signal .

본 발명의 실시 예들에 따른, 메모리 소자(예; 멤리스터)를 기반으로 하는 신경망 장치에서 정보들의 일부를 드롭아웃하여 연산 동작을 정규화 및/또는 정제화할 수 있다.Some of the information may be dropped out in a neural network device based on a memory element (e.g., a memristor) to normalize and / or refine the computational operation, in accordance with embodiments of the present invention.

도 1은 뉴런의 구조를 도시하는 도면이다.
도 2는 퍼셉트론(Perceptron) 구조를 도시하는 도면이다.
도 3은 다층 퍼셉트론(multi-layer Perceptron, MLP) 구조를 도시하는 도면이다.
도 4a 및 도 4b는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 정규화 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 다양한 실시예들에 따라 멤리스터들을 사용하는 신경망 장치에서 드롭 커넥트 기능을 구현하는 장치의 구성을 도시하는 도면이다.
도 6은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 7은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 8a - 도 8d는 본 발명의 다양한 실시예에 따른 신경망 장치에서 출력부의 동작을 설명하기 위한 도면이다.
도 9는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 출력신호를 궤환하여 다음 레이어로 입력하는 루프 동작을 설명하기 위한 도면이다.
도 10a 및 도 10b는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 랜덤신호 발생부의 구성을 도시하는 도면이다.
도 11은 본 발명의 다양한 실시예들에 따른 신경망 장치에서 정규화 동작을 수행하는 다른 실시예의 구성을 도시하는 도면이다.
도 12은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
1 is a diagram showing a structure of a neuron.
2 is a diagram showing a Perceptron structure.
3 is a diagram showing a multi-layer perceptron (MLP) structure.
4A and 4B are views for explaining a normalization method in a neural network apparatus according to various embodiments of the present invention.
5 is a diagram illustrating a configuration of an apparatus for implementing a drop connect function in a neural network apparatus using memristors according to various embodiments of the present invention.
6 is a diagram showing a configuration of a neural network device according to various embodiments of the present invention.
7 is a diagram showing a configuration of a neural network device according to various embodiments of the present invention.
8A to 8D are views for explaining the operation of the output unit in the neural network apparatus according to various embodiments of the present invention.
9 is a diagram for explaining a loop operation in which an output signal is fed back to a next layer in a neural network device according to various embodiments of the present invention.
10A and 10B are diagrams showing a configuration of a random signal generator in a neural network apparatus according to various embodiments of the present invention.
11 is a diagram showing a configuration of another embodiment for performing a normalization operation in a neural network apparatus according to various embodiments of the present invention.
12 is a diagram showing a configuration of a neural network device according to various embodiments of the present invention.

이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, only parts necessary for understanding the operation according to the present invention will be described, and the description of other parts will be omitted so as not to disturb the gist of the present invention.

이하, 도면들을 참조하여 본 발명의 실시 예들에 대해서 보다 구체적으로 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in more detail with reference to the drawings.

도 1은 뉴런의 구조를 도시하는 도면이다.1 is a diagram showing a structure of a neuron.

도 1을 참조하면, 신경망 알고리듬(neural network algorithm)은 포유류 뇌를 수학적으로 모델링하여 만든 알고리듬이 될 수 있다. 포유류의 뇌는 수 많은 단위체가 그물처럼 얽혀서 이루어져 있으며, 이런 단위체는 도 1과 같은 구조를 가지는 뉴런이 될 수 있다. 뉴런에서 시냅스(101)는 다른 뉴런의 시냅스에 전기신호를 전달할 수 있다. 시냅스(101)이 전기신호를 전달하는 방법은 1:1 매칭이 아니라 N:N 매칭이 될 수 있다. 즉, 하나의 시냅스는 하나의 시냅스에 전기신호를 전달할 수 있으며, 또는 하나의 시냅스는 여러 개의 시냅스들에 전기신호를 전달할 수 있다. Referring to FIG. 1, a neural network algorithm can be an algorithm that is created by mathematically modeling a mammalian brain. The mammalian brain is made up of a number of monolithic entangled entities, which can be neurons with the same structure as in Fig. In a neuron, synapse 101 can deliver an electrical signal to the synapse of another neuron. The manner in which the synapse 101 transmits an electrical signal may be N: N matching rather than 1: 1 matching. That is, one synapse can carry an electrical signal to one synapse, or one synapse can transmit an electrical signal to multiple synapses.

도 2는 퍼셉트론(Perceptron) 구조를 도시하는 도면이며, 도 3은 다층 퍼셉트론(multi-layer Perceptron, MLP) 구조를 도시하는 도면이다.FIG. 2 is a diagram showing a Perceptron structure, and FIG. 3 is a diagram showing a multi-layer perceptron (MLP) structure.

도 2를 참조하면, 퍼셉트론은 뉴런 단위체를 모방한 수학 모델이 될 수 있으며, MLP는 퍼셉트론을 그물망으로 엮은 구조가 될 수 있다. 퍼셉트론 및 MLP는 신경망 회로의 기본 모델이 될 수 있다. 퍼셉트론(Perceptron)은 인간의 신경 세포인 뉴런을 계산 가능한 형태로 만든 알고리듬이 될 수 있다. Referring to FIG. 2, a perceptron may be a mathematical model that imitates a neuron unit, and MLP may be a structure in which a perceptron is networked. Perceptron and MLP can be basic models of neural network circuits. Perceptron can be an algorithm that makes human neurons, neurons, into a computable form.

퍼셉트론은 복수의 입력들과 각 입력들에 대응되는 웨이트들을 각각 곱한 후, 곱셈 신호들을 가산(sum of product)한 결과 값을 생성할 수 있다. 도 2는 3개의 입력(x0 - x2)들과 이에 대응되는 3개의 웨이트(w0 - w2)들을 각각 곱하고, 가산기를 통해 곱 신호들을 가산(sum of product, vector multiplication)하는 구조의 예를 도시하고 있다. 도 2에서 b는 바이어스(bias)를 의미하며, 입력 데이터들의 활성화(activation) 여부를 결정하는 임계 값(threshold value)을 학습하는데 사용될 수 있다. 퍼셉트론은 선형 분리 가능(웨이트 합을 이용해 분리 가능) 문제를 해결할 수 있는 알고리듬이 될 수 있다. 도 2a와 같은 구조의 퍼셉트론은 선형 분리 기능을 수행할 수 있지만, 비선형 분리 기능을 수행할 수 없다. The perceptron may multiply the plurality of inputs and the weights corresponding to each of the inputs, respectively, and then generate a summed product of the multiplication signals. 2 shows an example of a structure for multiplying three inputs (x0-x2) and corresponding three weights w0-w2, respectively, and adding up product signals through an adder (sum of products, vector multiplication) have. In FIG. 2, b denotes a bias and can be used to learn a threshold value for determining whether to activate the input data. Perceptron can be an algorithm that can solve the linear detachable (detachable with weight sum) problem. The perceptron having the structure as shown in FIG. 2A can perform the linear separation function, but can not perform the nonlinear separation function.

퍼셉트론은 학습 벡터를 두 부류로 선형 분류하기 위한 선형 경계를 찾을 수 있다. 웨이트(weight)는 선형 경계의 방향성 또는 형태를 나타내는 값이 될 수 있다. 바이어스(bias)는 선형 경계의 절편을 나타내는 값이 될 수 있으며, 임계값은 어떤 값이 활성화되기 위한 최소값을 의미할 수 있다. 활성함수(activation function)은 뉴런에서 계산된 값(net value: 입력 값과 웨이트의 곱이 모두 합한 값(SOP, sum of product)로서, 기하학적으로 해석하면 선형 경계의 방정식이 될 수 있음)이 임계값 보다 크면 1을 출력하고, 임계치보다 작으면 0을 출력하는 함수가 될 수 있다. MLP에서는 다른 형태의 활성함수를 사용할 수 있다. 즉, 뉴런은 인경 신경망을 구성하는 가장 작은 단위체로서, SOP가 임계값보다 크면 활성화되면서 1을 출력하고 작으면 비활성화되면서 0을 출력할 수 있다. 도 2와 같은 퍼셉트론(single layer Perceptron)는 입력층(input layer)와 출력층(output layer)로 구성될 수 있다. 입력층은 학습 벡터 또는 입력 벡터가 입력되는 계층이 될 수 있다. 입력층의 데이터는 출력층 뉴런으로 전달되어 활성함수에 따른 값으로 출력될 수 있다. Perceptrons can find linear boundaries for linear classification of learning vectors into two classes. The weight may be a value indicating the direction or shape of the linear boundary. The bias may be a value representing an intercept of a linear boundary, and the threshold may mean a minimum value for which a value is activated. The activation function is defined as the net value (sum of product of input and weight, SOP, which can be geometrically interpreted as an equation of linear boundary) If it is greater than 1, it outputs 1, and if it is smaller than the threshold, it is 0. Other types of active functions can be used in MLP. That is, the neuron is the smallest unit constituting the neuron network. If the SOP is larger than the threshold value, the neuron outputs 1 while being activated. When the SOP is smaller than the threshold, 0 is output. A single layer Perceptron as shown in FIG. 2 may be composed of an input layer and an output layer. The input layer may be a layer into which a learning vector or an input vector is input. The data of the input layer can be transferred to the output layer neuron and output as a value according to the activation function.

도 3을 참조하면, 비선형 분리 기능은 여러 층의 퍼셉트론들을 그물 망으로 엮어 해결할 수 있다. MLP는 복수의 선형 분리 기능을 이용하여 비선형 분리 기능을 수행할 수 있다. MLP는 입력층(input layer), 은닉 마디로 구성된 은닉층(hidden layer), 출력층(output layer)로 구성된 전방향(feed-forward) 신경망이 될 수 있다. 도 3은 입력값인 x0 - x2 및 바이어스의 bx로 이루어지는 입력층, a2- a2의 은닉층 및 01 - 02의 출력층으로 구성된 MLP 구조를 도시하는 도면이다. 도 1과 같은 구조를 가지는 뉴런의 시냅스(101)은 n:n 매칭을 할 수 있다. 도 3에서 x0 - x2는 뉴런이 될 수 있으며, 또는 시스템에서 제공되는 입력이 될 수 있다. a0 - a2는 뉴런이 될 수 있다. 따라서 도 3에 도시된 바와 같이 입력층 및 은닉층의 뉴런들은 각각 대응되는 뉴런에 n:n 매칭의 전기 신호들을 인가할 수 있다.Referring to FIG. 3, the nonlinear separation function can solve several layers of perceptons by mesh network. The MLP can perform nonlinear separation functions using a plurality of linear separation functions. The MLP can be a feed-forward neural network composed of an input layer, a hidden layer composed of hidden nodes, and an output layer. 3 is a diagram showing an MLP structure composed of an input layer composed of input values x0 - x2 and a bias bx, a hidden layer of a2 - a2, and an output layer of 01 - 02. The synapse 101 of the neuron having the structure as shown in Fig. 1 can perform n: n matching. In FIG. 3, x0 - x2 may be a neuron or an input provided by the system. a0 - a2 can be a neuron. Therefore, as shown in FIG. 3, the neurons of the input layer and the hidden layer may apply n: n matching electrical signals to the corresponding neurons, respectively.

입력층은 받은 값을 그대로 은닉층에 전달할 수 있다. 은닉층은 다수의 노드(예를들면 도 2b에서 a0 - a2)들을 포함할 수 있으며, 각 노드는 다수의 입력신호들을 각각 웨이트들과 곱한 후, 곱신호들을 가산하는 신호 SOP를 출력할 수 있다. 은닉층은 합 계산 + 활성함수 계산을 수행하여 출력층에 전달할 수 있다. 출력층은 합계산 + 활성함수 계산을 수행하여 출력 신호를 발생할 수 있다. 즉, MLP의 원리는 왼쪽에서 출발하여 오른쪽으로만 진행하는 전방향 계산(forward computation)을 수행하며, 각 층(은닉층 및 출력층)은 웨이트 합 계산 및 활성함수 계산을 수행할 수 있다. 웨이트 합 계산은 입력층 또는 은닉층의 마디들을 결합하는 형태가 될 수 있다. 활성함수는 비선형 함수(시그모이드 함수)로서, 입력 변수 또는 은닉 마디의 결합을 변환하는 함수가 될 수 있다.신경망 알고리듬의 복잡도는 매우 높을 수 있다. 이런 경우, 신경망은 오버피팅(overfitting)되어 연산 시간이 길어질 수 있다. 신경망 장치는 정규화 기법을 사용하여 신경망 장치의 복잡도를 해결할 수 있다. 신경망 장치의 정규화 방법은 드롭 커넥트(drop-connect) 및/또는 드롭아웃(dropout) 방법이 될 수 있다. The input layer can pass the received value directly to the hidden layer. The hidden layer may include a plurality of nodes (e.g., a0-a2 in FIG. 2B), and each node may output a signal SOP that multiplies a plurality of input signals, respectively, with weights, and then adds the product signals. The hidden layer can carry sum calculation + active function calculation and transmit it to the output layer. The output layer can perform a total acid + active function calculation to generate an output signal. That is, the principle of MLP performs a forward computation starting from the left and proceeding only to the right, and each layer (hidden layer and output layer) can perform weight sum calculation and active function calculation. The weight sum calculation may take the form of combining the nodes of the input layer or the hidden layer. The active function is a nonlinear function (sigmoid function), which can be a function that transforms the combination of input variables or hidden nodes. The complexity of the neural network algorithm can be very high. In this case, the neural network may be overfitted and the computation time may become longer. The neural network device can solve the complexity of the neural network device by using the normalization technique. The normalization method of the neural network device may be a drop-connect and / or dropout method.

도 4a 및 도 4b는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 정규화(regulization, pruning) 방법을 설명하기 위한 도면이다. 도 4a는 드롭 커넥트 방법을 사용하여 정규화 기능을 수행하는 신경망 장치의 구조를 도시하는 도면이다. 도 4b는 드롭 아웃 방법을 사용하여 정규화 기능을 수행하는 신경망 장치의 구조를 도시하는 도면이다. 4A and 4B are views for explaining a regulization method in a neural network apparatus according to various embodiments of the present invention. 4A is a diagram showing a structure of a neural network device that performs a normalization function using a drop connect method. 4B is a diagram showing a structure of a neural network device that performs a normalization function using a dropout method.

도 4a를 참조하면, 드롭커넥트는 은닉층의 노드에 인가되는 입력신호의 연결을 해제(drop-connect, pruning)하는 방법이 될 수 있다. 드롭 커넥트는 한 계층에서 다음 계층으로 가중치가 곱해져서 전달될 때, 일부의 값들의 인가되지 않도록 하는 방법이 될 수 있다. 도 4a에서 노드 x0(411) - x2(415)에서 출력되는 이전 계층(layer)의 노드 출력이 될 수 있다. 노드 a0(451) - a2(452)는 현재 노드가 될 수 있다. 도 4a는 노드 x0(411) - x(415)의 출력신호들 중에서 신호431, 433, 435들이 드롭 커넥트되는 예를 도시하고 있다. Referring to FIG. 4A, a drop connection may be a method of drop-connecting (pruning) an input signal applied to a node of a hidden layer. A drop connection can be a way to prevent some of the values from being applied when the weight is passed from one layer to the next. And may be the node output of the previous layer outputted from the node x0 (411) - x2 (415) in Fig. 4A. Node a0 (451) - a2 (452) may be the current node. 4A shows an example in which the signals 431, 433, and 435 among the output signals of the nodes x0 (411) - x (415) are drop-connected.

도 4b를 참조하면, 드롭아웃(drop out, pruning)은 한 계층의 노드들 중의 일부 노드들이 동작하지 않도록 하는 것을 의미할 수 있다. 즉, 드롭아웃은 이전 계층의 값을 받지 않으며, 다음 계층으로도 값을 넘기지 않는 동작을 의미할 수 있다. 드롭아웃은 MLP에서 트레이닝 예제(training example)에 대하여 무작위로 설정된 비율의 은닉 노드들을 제거하는 방법이 될 수 있다. 도 4b는 a0 노드(451) 및 a2 노드(455)가 드롭아웃되는 예를 도시하고 있다.Referring to FIG. 4B, dropout (pruning) may mean that some of the nodes in one layer do not operate. In other words, dropout can mean the operation that does not receive the value of the previous layer and does not pass the value to the next layer. Dropout can be a way to remove randomly set concealment nodes for the training example in the MLP. 4B shows an example in which the a0 node 451 and the a2 node 455 are dropped out.

도 5는 본 발명의 다양한 실시예들에 따라 멤리스터들을 사용하는 신경망 장치에서 드롭 커넥트 기능을 구현하는 장치의 구성을 도시하는 도면이다. 도 5를 참조하면, 입력부(510)는 입력신호 또는 연산된 신호를 입력할 수 있다. 예를들면, 입력부(510)는 최초 동작시 외부의 입력신호를 수신할 수 있으며, 연산 구간에서는 출력부(540)에서 출력되는 연산신호를 수신할 수 있다. 입력부(510)은 입력 신호를 제1 라인에 인가할 수 있다. 5 is a diagram illustrating a configuration of an apparatus for implementing a drop connect function in a neural network apparatus using memristors according to various embodiments of the present invention. Referring to FIG. 5, the input unit 510 may input an input signal or a computed signal. For example, the input unit 510 can receive an external input signal during the initial operation, and can receive the operation signal output from the output unit 540 during the operation period. The input unit 510 may apply an input signal to the first line.

연산부(530)는 입력신호들과 대응되는 웨이트들을 곱한 후 가산하는 다수의 노드들을 포함할 수 있다. 연산부(530)는 멤리스터 멤리스터(MEMRISTOR)를 사용할 수 있다. 멤리스터는 ReRAM(resistive random access memory), PCRAM(phase change RAM), MRAM(magnetoresistive RAM) 등 전하와 자속과의 결합에 관련된 비선형 수동, 두 단자의 전기적 구성요소로 된 메모리 소자를 의미한다. 연산부(530)의 각 노드들은 복수의 입력신호들과 입력신호들에 대응되는 웨이트들의 곱 신호들을 발생한 후 가산된 신호들을 출력할 수 있다. 멤리스터를 사용하는 경우, 입력신호와 웨이트의 곱은 전류 값으로 나타날 수 있으며, SOP 신호는 전류 값의 합으로 나타날 수 있다. 예를들면, 연산부(520)는 제1 라인들과 제2 라인들 사이에 교차 위치되는 복수의 멤리스터들을 포함할 수 있다. 또한 제2 라인에 연결되는 멤리스터들은 각각 입력신호에 대응되는 웨이트 값을 곱한 신호들을 대응되는 제2 라인에 인가하며, 멤리스터들의 곱 신호들은 제2 라인에서 합성되어 SOP(sum of product, SOP)로 발생될 수 있다. 예를들면, 각 제2 메모리의 SOP는 노드 출력이 될 수 있다.The operation unit 530 may include a plurality of nodes that multiply input signals and corresponding weights, and add the signals. The arithmetic operation unit 530 may use a memristor (MEMRISTOR). Memristor refers to a non-linear passive, two-terminal electrical component of memory associated with the combination of charge and magnetic flux, such as resistive random access memory (ReRAM), phase change RAM (PCRAM), and magnetoresistive random access memory (MRAM) Each node of the operation unit 530 may generate multiplication signals of weights corresponding to a plurality of input signals and input signals, and then output the added signals. When a memristor is used, the product of the input signal and the weight can be represented by the current value, and the SOP signal can be represented by the sum of the current values. For example, the operation unit 520 may include a plurality of memristors that are located between the first lines and the second lines. In addition, the memristors connected to the second line respectively apply signals obtained by multiplying the weight values corresponding to the input signals to the corresponding second lines, and the products of the memristors are synthesized in the second line to form a sum of product (SOP) ). ≪ / RTI > For example, the SOP of each second memory may be the node output.

정규화 제어부(520)는 연산부(530)의 특정 멤리스터에 인가되는 입력신호의 연결을 해제(drop-connect)시킬 수 있다. 예를들면, 정규화 제어부(520)은 제1 라인과 각 멤리스터들의 입력단 사이에 위치되는 스위치들과, 랜덤 신호 발생부를 포함할 수 있다. 정규화 제어부(520)는 랜덤 신호에 의해 선택되는 스위치들을 제어하여 대응되는 멤리스터에 인가되는 입력신호의 연결을 해제시킬 수 있다. The normalization control unit 520 may drop-connect the input signal applied to the specific mem- ber of the operation unit 530. [ For example, the normalization control unit 520 may include a switch located between the first line and the input of each of the memristors, and a random signal generator. The normalization control unit 520 may control the switches selected by the random signal to release the connection of the input signal applied to the corresponding memristor.

출력부(540)은 드롭아웃 제어부(520)에서 출력되는 연산부(530)의 노드 신호들을 임계치에 기반하여 활성화 여부를 결정하여 출력신호를 발생할 수 있다.The output unit 540 may determine whether to activate the node signals of the operation unit 530 output from the dropout control unit 520 based on the threshold value to generate an output signal.

도 5에 도시된 신경망 장치에서 연산부(530)는 멤리스터에 기반하여 노드들의 SOP신호를 생성할 수 있으며, 정규화 제어부(520)는 연산부(530)에 입력되는 신호를랜덤신호에 의해 제어하여 드롭 커넥트 기능을 수행할 수 있다. 5, the operation unit 530 may generate an SOP signal of the nodes based on the memristor. The normalization control unit 520 controls the signal input to the operation unit 530 by using a random signal, Connect function can be performed.

SRAM 기반의 시냅스 소자를 이용한 경우는 집적도 개선 및 아날로그 정보 저장에 어려움이 있을 수 있다. ReRAM은 소자 구조가 간단하고, 많은 정보를 저장할 수 있으며, 이로인해 ReRAM 기반의 시냅스에 대한 연구가 활발히 진행되고 있다. ReRAM은 저항을 이용한 메모리이다. ReRAM은 제1 라인과 제2 라인 사이에 교차 위치되는 셀들의 어레이들이 될 수 있으며, 셀은 저항 소자(resistance charging element)를 포함할 수 있다. 저항 소자의 저항 R 값은 웨이트 값이 될 수 있다. If SRAM based synaptic elements are used, it may be difficult to improve the degree of integration and to store analog information. ReRAM has a simple device structure and can store a lot of information, and therefore research on ReRAM-based synapses is actively conducted. ReRAM is a memory using resistors. The ReRAM may be arrays of cells that are crossed between the first and second lines, and the cell may include a resistance charging element. The resistance R value of the resistance element can be a weight value.

연산부(530)는 ReRAM 셀 어레이의 구성을 가질 수 있다. MLP를 구성할 때, 각 노드들은 복수의 제1 라인들 통해 신호를 입력하고, 하나의 제2 라인들을 통해 SOP를 생성하여 출력할 수 있다. 즉, 노드의 구성은 복수의 제1 라인들과 하나의 제1 라인에 교차 연결되는 복수의 ReRAM 셀 어레이들이 될 수 있다. 이때 하나의 제2 라인들에 연결되는 ReRAM 셀 어레이의 저항소자530의 저항 값은 각각 다른 값(웨이트 값)으로 설정될 수 있다. The operation unit 530 may have a configuration of a ReRAM cell array. When constructing the MLP, each node inputs a signal through a plurality of first lines, and generates and outputs an SOP through one second lines. That is, the configuration of the node may be a plurality of ReRAM cell arrays cross-connected to a plurality of first lines and a first line. At this time, the resistance values of the resistance elements 530 of the ReRAM cell array connected to one second lines may be set to different values (weight values), respectively.

도 6은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.6 is a diagram showing a configuration of a neural network device according to various embodiments of the present invention.

도 6을 참조하면, 입력부(510)는 최초 외부에서 입력되는 제1 입력신호 Vin을 제1 라인 L11 - L1N에 인가할 수 있으며, 연산 구간에서는 출력부(540)에서 궤환 입력되는 신호 Vout를 제1 라인 L11 - L1n에 제2 입력신호로 인가할 수 있다. Referring to FIG. 6, the input unit 510 may apply the first input signal Vin input from the outside to the first line L11 - L1N. In the calculation period, the output unit 540 may output the signal Vout fed back from the output unit 540 1 line L11 - L1n as a second input signal.

연산부(530)은 제1 라인 L11 - L1n과 제2 라인 L21 - L2n 사이에 교차 연결되는 N*N ReRAM 셀 R11 - Rnn들을 - 포함할 수 있다. ReRAM 셀 R11 - Rnn은 도 4와 같은 구조를 가질 수 있으며, 각각 고유의 저항 R 값을 가질 수 있으며, 저항 R 값은 웨이트 값(W=1/R)에 대응될 수 있다. 또한 제2 라인 L21 - L2n에 연결되는 각각의 셀 R11 - Rn1, R12 - R1n2, ... , R1n - Rnn들은 각각의 노드 1(ND1) - 노드 n(NDn)을 구성하는 셀들이 될 수 있다. 입력 신호들이 해당하는 제1 라인에 각각 인가되면, 노드 ND1 - NDn에 연결된 ReRAM 셀들은 각각 설정된 저항값에 기반하여는 전류 신호(즉, 입력신호 및 웨이트의 곱신호)를 생성하여 제2 라인 L21 -L2n에 인가하며 제2 라인 L21 - L2n에서 각 노드 ND1 - NDn의 SOP로 출력될 수 있다. The operation unit 530 may include N * N ReRAM cells R11 to Rnn that are cross-connected between the first line L11 to L1n and the second line L21 to L2n. The ReRAM cells R11 to Rnn may have a structure as shown in FIG. 4 and each may have a unique resistance R value, and the resistance R value may correspond to a weight value (W = 1 / R). Each of the cells R11 to Rn1, R12 to R1n2, ..., R1n to Rnn connected to the second lines L21 to L2n may be cells constituting each of the node 1 (ND1) to node n (NDn) . When the input signals are respectively applied to the corresponding first lines, the ReRAM cells connected to the nodes ND1 to NDn generate a current signal (i.e., a product signal of the input signal and weight) based on the set resistance value, -L2n and output to the SOP of each node ND1-NDn in the second line L21-L2n.

정규화 제어부(520)는 제1 입력라인 L11 - L1n들과 각각 대응되는 멤리스터(R11 - Rnn) 사이에 연결되는 스위치(S11 - Snn)들과, 스위치(S11 - Snn)들의 온/오프를 제어하기 위한 선택신호 Sel11 - Selnn을 발생하는 랜덤신호 발생부(630)을 포함할 수 있다. 랜덤 신호 발생부(635)는 스위치(S11 - Snn)들의 스위칭을 제어하여 입력신호들 중에서 일정 비율(예를들면 50%)의 입력신호들이 연산되지 않도록 제어할 수 있다. The normalization control unit 520 controls the switches S11 to Snn connected between the first input lines L11 to L1n and the memristors R11 to Rnn and the switches S11 to Snn to turn on / And a random signal generator 630 for generating a selection signal Sel11-Selnn. The random signal generator 635 may control the switching of the switches S11 to Snn so as to prevent a certain ratio (for example, 50%) of the input signals from being calculated.

출력부(540)는 변환부(640) 및 활성화부(645)를 포함할 수 있다. 변환부(640)는 스위치부(530)에서 출력되는 노드들의 SOP를 입력할 수 있다. 이때의 SOP는 전류 신호가 될 수 있다. 변환부(640)는 전류 신호를 전압으로 변환할 수 있다. 활성화부(645)는 설정된 임계값에 의해 변환부(640)에서 출력되는 노드의 SOP를 활성화 또는 비활성화시킬 수 있다. 상기 출력부(540)는 설정된 연산 구간에서 출력 신호를 입력부(510)의 제2 입력신호 Vout로 인가할 수 있으며, 연산이 종료되는 시점에서 출력될 수 있다. The output unit 540 may include a conversion unit 640 and an activation unit 645. The converting unit 640 may input the SOP of the nodes output from the switch unit 530. The SOP at this time can be a current signal. The converting unit 640 may convert the current signal into a voltage. The activating unit 645 can activate or deactivate the SOP of the node output from the converting unit 640 according to the set threshold value. The output unit 540 may apply the output signal to the second input signal Vout of the input unit 510 in the set operation interval and may be output at the end of the operation.

도 7은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다. 7 is a diagram showing a configuration of a neural network device according to various embodiments of the present invention.

도 7을 참조하면, 선택기(711, 713)는 도 5의 입력부(510)의 구성이 될 수 있으며, 멤리스터(731 - 734)는 도 5의 연산부(530)의 구성이 될 수 있으며, 랜덤신호 발생부(725) 및 스위치(721 - 724)는 도 5의 정규화 제어부(520)의 구성이 될 수 있으며, 변환기(741, 743) 및 비교기(745, 747)는 도 5의 출력부(540)의 구성이 될 수 있다. 7, the selectors 711 and 713 may have the configuration of the input unit 510 of FIG. 5, the memristors 731 to 734 may have the configuration of the operation unit 530 of FIG. 5, The signal generating unit 725 and the switches 721 to 724 may be configured in the normalization control unit 520 of FIG. 5 and the converters 741 and 743 and the comparators 745 and 747 may be configured as the output unit 540 ). ≪ / RTI >

도 7에 도시된 연산부(예를들면 도 5의 연산부(530))는 하나의 노드가 2개의 멤리스터들을 포함된 예를 도시하고 있다. 멤리스터 (731 - 734)들은 각각 고유의 저항값을 가지며, 입력신호 및 저항 값에 기반하는 전류 신호를 생성할 수 있다. 멤리스터(731 - 734)에서 생성되는 전류(즉, 입력신호 및 웨이트의 곱 신호)는 대응되는 제2 라인에 인가할 수 있으며, 제2 라인에서 해당 노드들의 전류신호들이 합성되어 SOP로 생성될 수 있다. 예를들면, 도 7에서 제1 노드의 연산부는 각각 R1 및 R2의 저항 값을 가지는 멤리스터(731, 732)들 포함할 수 있으며, 제2 노드의 연산부는 각각 R3 및 R4 저항 값을 가지는 멤리스터(733, 734)를 포함할 수 있다. The operation unit (for example, the operation unit 530 in FIG. 5) shown in FIG. 7 shows an example in which one node includes two memristors. The memristors 731 to 734 each have a unique resistance value and can generate a current signal based on the input signal and the resistance value. The currents generated by the memristors 731 - 734 (that is, the product signals of the input signal and the weight) can be applied to the corresponding second line, and the current signals of the nodes in the second line are synthesized and generated as SOP . 7, the operation unit of the first node may include memristors 731 and 732 having resistance values of R1 and R2, respectively, and the operation unit of the second node may include members having resistance values of R3 and R4, respectively Listers 733 and 734, respectively.

본 발명의 다양한 실시예에 따른 신경망 장치는 멤리스터 소자를 이용하여 하드웨어 모델링을 할 수 있다. 도 7에서 멤리스터(731 및 732)는 제1 노드의 연산부 구성이 될 수 있으며, 멤리스터 (733 및 734)는 제2 노드의 연산부 구성이 될 수 있다. 선택기(711)는 Vin1 또는 Vout1들 중의 하나를 입력신호로 선택하여 라인 L11에 인가할 수 있으며, 선택기(713)는 Vin2 또는 Vout2들 중의 하나를 입력신호로 선택하여 라인 L12에 인가할 수 있다. 여기서 라인 L11 및 L12는 입력신호가 인가되는 제1 라인이 될 수 있다. The neural network apparatus according to various embodiments of the present invention can perform hardware modeling using a memristor element. In FIG. 7, the memristors 731 and 732 may be constituent units of the first node, and the memristors 733 and 734 may be constituent units of the second node. The selector 711 may select one of Vin1 or Vout1 as an input signal and apply it to the line L11 and the selector 713 may select one of Vin2 or Vout2 as an input signal and apply it to the line L12. Here, the lines L11 and L12 may be the first line to which the input signal is applied.

제1 노드의 연산부 구성을 살펴보면, 멤리스터(731)는 라인 L11 및 라인 L21에 교차 위치되며, 저항 R1 값을 가질 수 있다. 멤리스터(731)는 입력신호(Vin1 또는 Vout1)와 저항 R1에 기반하여 전류 신호를 생성할 수 있으며, 라인 L21에 인가할 수 있다. 멤리스터(732)는 라인 L12 및 라인 L21에 교차 위치되며, 저항 R2 값을 가질 수 있다. 멤리스터(732)는 입력신호(Vin2 또는 Vout2)와 저항 R2에 기반하여 전류 신호를 생성할 수 있으며, 라인 L21에 인가할 수 있다. 제2 노드의 연산부 구성을 살펴보면, 멤리스터(733)는 라인 L11 및 라인 L22에 교차 위치되며, 저항 R3 값을 가질 수 있다. 멤리스터(733)는 입력신호(Vin1 또는 Vout1)와 저항 R3에 기반하여 전류 신호를 생성할 수 있으며, 라인 L22에 인가할 수 있다. 멤리스터(734)는 라인 L12 및 라인 L22에 교차 위치되며, 저항 R4 값을 가질 수 있다. 멤리스터(734)는 입력신호(Vin2 또는 Vout2)와 저항 R4에 기반하여 전류 신호를 생성할 수 있으며, 라인 L22 인가할 수 있다. 여기서 저항 R1 - R4는 웨이트(G=1/R) 값에 대응될 수 있으며, 멤리스터들을 각각 고유의 저항 값으로 설정될 수 있다. As to the configuration of the operation unit of the first node, the memristor 731 is located at the intersection of the line L11 and the line L21 and may have the value of the resistance R1. The memristor 731 can generate a current signal based on the input signal (Vin1 or Vout1) and the resistor R1, and can apply it to the line L21. The memristor 732 is located across the lines L12 and L21 and may have a value of resistance R2. The memristor 732 can generate a current signal based on the input signal (Vin2 or Vout2) and the resistor R2 and can apply it to the line L21. As to the configuration of the operation unit of the second node, the memristor 733 is located at the intersection of the line L11 and the line L22 and can have the value of the resistor R3. The memristor 733 can generate a current signal based on the input signal (Vin1 or Vout1) and the resistor R3 and can apply it to the line L22. The memristor 734 is located across the line L12 and the line L22 and may have a value of the resistor R4. The memristor 734 can generate a current signal based on the input signal (Vin2 or Vout2) and the resistor R4, and can apply the line L22. Here, the resistors R1 to R4 can correspond to the values of the weights (G = 1 / R), and the memristors can be set to their respective resistance values.

따라서 멤리스터(731 및 732)는 각각 대응되는 입력신호들에 웨이트 값(각각 설정된 고유의 저항값)을 곱하여 라인 L21에 출력할 수 있다. 이런 경우 라인 L21에 인가되는 제1 노드의 합성 전류를 하기 <수학식 1>과 같이 표시할 수 있다. Thus, the memristors 731 and 732 can output the corresponding input signals to the line L21 by multiplying the weight values (the respective inherent resistance values). In this case, the combined current of the first node applied to the line L21 can be expressed as Equation (1).

Figure pat00001
Figure pat00001

<수학식 1>에서 I1은 라인 21에서 생성되는 제1 노드의 SOP에 대응되는 전류 값이 될 수 있으며, Vin1 및 Vin은 입력신호, G1 및 G2는 각각 멤리스터(731 및 732) 저항 R1 및 R2에 기반하는 웨이트 값이 될 수 있다. 이와 같은 방법으로 제2 노드의 SOP인 I2를 생성할 수 있다. 본 발명의 다양한 실시예들에 따른 신경망 장치는 신경망 알고리듬의 기본 동작은 SOM을 멤리스터에 기반하여 생성할 수 있다. In Equation (1), I1 may be a current value corresponding to the SOP of the first node generated on line 21, Vin1 and Vin are input signals, G1 and G2 are resistors R1 and R2 of memristors 731 and 732, Can be a weight value based on R2. In this way, I2, which is the SOP of the second node, can be generated. The neural network device according to various embodiments of the present invention can generate the SOM based on the memristor as the basic operation of the neural network algorithm.

멤리스터에서 생성되는 SOP는 전류(I1 및I2)로 나타낼 수 있으며, 전압변환기(741 및 743)는 각각 대응되는 제1 노드 및 제2 노드의 전류 i1 및 i2를 전압으로 변환할 수 있다. 그리고 활성화부인 비교기(745 및 747)는 각각 전압변환기(741 및 743)에서 변환된 전압의 활성화 여부를 판단하여 출력신호 Vout1 및 Vout2를 출력할 수 있다. 비교기(745 및 747)은 활성화 함수(activation function) 기능을 수행할 수 있다. 예를들면, 특정 Vref(reference volatage)보다 작으면 -Vcc(OP amp의 공급전압)을 출력하고, Vref 보다 크면 +VCC를 출력할 수 있다. 여기서 Vref는 도 2a 및 도 2b의 바이어스 전압(b 및 bx)에 의해 결정될 수 있다. The SOPs generated in the memristor may be represented by currents I1 and I2, and the voltage converters 741 and 743 may convert the currents i1 and i2 of the corresponding first and second nodes, respectively, to a voltage. The comparators 745 and 747, which are activated, can determine whether the voltage converted by the voltage converters 741 and 743 is activated, respectively, and output the output signals Vout1 and Vout2. The comparators 745 and 747 may perform an activation function. For example, -Vcc (supply voltage of OP amp) is output if it is smaller than a specific Vref (reference volatage), and + VCC can be output if it is larger than Vref. Where Vref can be determined by the bias voltages b and bx in Figs. 2A and 2B.

도 8a - 도 8d는 본 발명의 다양한 실시예에 따른 신경망 장치에서 출력부의 동작을 설명하기 위한 도면이다.8A to 8D are views for explaining the operation of the output unit in the neural network apparatus according to various embodiments of the present invention.

도 8a - 도 8d를 참조하면, 활성화부는 도 8a와 같은 비교기를 이용하여 구성할 수 있다. 도 8b는 비교기의 동작 특성을 도시하고 있다. 비교기는 다음과 같은 출력 특성을 가질 수 있다. 8A to 8D, the activation unit may be configured using a comparator as shown in FIG. 8A. 8B shows the operational characteristics of the comparator. The comparator can have the following output characteristics.

Figure pat00002
Figure pat00002

도 8b와 같은 비교기의 특성은 도 8c와 같은 시그모이드 함수(Sigmoid function)과 유사한 특성을 가질 수 있다. 신경망 장치는 입력 변호를 결합하는 합성 함수(combination function)과 입력 신호를 결합하여 변형하는 활성 함수(activation function)을 사용할 수 있다. 합성 함수는 입력신호를 하나의 정보로 만들기 위한 함수로써, 웨이트 데이터가 될 수 있다. 이때 활성 함수는 입력 신호의 합성값(예를들면 SOP)을 출력층 또는 은닉층에 전달하는 함수로써, SOP를 일정 범위의 값으로 전환해줄 수 있는 함수가 될 수 있다. 시그모이드 함수(Sigmoid function)는 활성 함수로 가장 많이 사용되는 함수가 될 수 있다. 시그모이드 함수는 출력 값들이 0에 가까울 때 선형 함수(linear function)에 매우 근사하게 되는 특성을 가질 수 있다. 신경망 장치에서 비교기(745 및 747)dml +VCC를 충분히 크게 잡고, -VCC를 0으로 설정하면, 도 8d에 도시된 바와 같이 활성 함수(ReLU activation function)과 유사함을 알 수 있다. 비교기의 운용에 따라 여러가지 활성함수를 구현할 수 있다. The characteristic of the comparator as shown in FIG. 8B may have characteristics similar to those of the Sigmoid function shown in FIG. 8C. The neural network device can use a combination function that combines the input argument and an activation function that transforms the input signal by combining it. The composite function is a function for converting the input signal into one piece of information and can be weight data. At this time, the activation function is a function for transferring the composite value (for example, SOP) of the input signal to the output layer or the hidden layer, and can be a function that can convert the SOP to a certain range of values. Sigmoid function can be the most used function as active function. The sigmoid function can have characteristics that approximate a linear function when the output values are close to zero. If the comparators 745 and 747 in the neural network device have a sufficiently large dml + VCC and set -VCC to 0, it can be seen that it is similar to the ReLU activation function as shown in FIG. 8D. Depending on the operation of the comparator, various active functions can be implemented.

비교기(745)에서 출력되는 출력신호 Vout1는 하기 <수학식 3>과 같이 표현할 수 있다. 그리고 하기 <수학식 3>과 같은 방법으로 출력신호 Vout2도 구할 수 있다.The output signal Vout1 output from the comparator 745 can be expressed by Equation (3) below. The output signal Vout2 can also be obtained by the following Equation (3).

Figure pat00003
Figure pat00003

비교기(745 및 747)에 출력되는 출력전압 Vout1 및 Vout2는 입력부인 선택기(711 및 713)의 제2 입력신호로 인가될 수 있다. 신경망 장치 연산 동작을 수행하는 시점에서는 외부로부터 입력되는 제1 입력신호 Vin 를 선택할 수 있으며, 이후 연산 구간에서는 연산된 신호인 제2 입력신호 Vout를 선택할 수 있다. 따라서 연산부는 제1 입력신호 Vin에 기반하여 연산동작을 수행할 수 있으며, 이후에는 출력신호인 제2 입력신호 Vout에 기반하여 연산동작을 수행할 수 있다. 그리고 설정된 횟수의 연산 동작을 수행하면 연산된 최종 출력신호를 발생할 수 있다.The output voltages Vout1 and Vout2 output to the comparators 745 and 747 may be applied as the second input signals of the selectors 711 and 713, which are the input units. The first input signal Vin input from the outside can be selected at the time of performing the neural network device arithmetic operation and the second input signal Vout which is the calculated signal can be selected in the subsequent arithmetic section. Therefore, the operation unit can perform a calculation operation based on the first input signal Vin, and can then perform a calculation operation based on the second input signal Vout, which is an output signal. Then, the computed final output signal can be generated by performing the set number of arithmetic operations.

도 9는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 출력신호를 궤환하여 다음 레이어로 입력하는 루프(loop) 동작을 설명하기 위한 도면이다.9 is a diagram for explaining a loop operation in which an output signal is fed back to a next layer in a neural network apparatus according to various embodiments of the present invention.

도 9를 참조하면, 최초 입력 Vin에 따른 신경망 장치의 첫번째 루프 (1st loop, 1st layer)의 출력은 하기 <수학식 4>와 같이 나타낼 수 있다. Referring to FIG. 9, the output of the first loop (1 st loop, 1 st layer) of the neural network device according to the initial input Vin can be expressed as Equation (4).

Figure pat00004
Figure pat00004

따라서 신경망 장치의 출력 Vout은 하기 <수학식 5>와 표현할 수 있다.Therefore, the output Vout of the neural network apparatus can be expressed by Equation (5).

Figure pat00005
Figure pat00005

이후 <수학식 4>와 같이 과정에서 생성된 출력신호 Vout1 및 Vout2을 입력으로 하는 신경망 장치의 두번째 루프(2nd loop, 2nd layer)의 출력은 하기 <수학식 6>과 같이 신경망 장치의 출력을 구할 수 있다.The output of the second loop (2 nd loop, 2 nd layer) of the neural network device, which receives the output signals Vout1 and Vout2 generated in the process as shown in Equation (4), is expressed by Equation Can be obtained.

Figure pat00006
Figure pat00006

상기 <수학식 4> 및 <수학식 6>에 도시된 바와 같이, 신경망 장치는 입력되는 신호들에 기반하여 SOP를 생성하고, 생성된 SOP를 활성화 여부를 판단하여 출력신호를 생성할 수 있다. 신경망 장치의 출력신호는 하기 <수학식 7>과 같이 나타낼 수 있다. As shown in Equation (4) and Equation (6), the neural network device can generate an SOP based on input signals, and generate an output signal by determining whether to activate the generated SOP. The output signal of the neural network device can be expressed as Equation (7).

Figure pat00007
Figure pat00007

도 7과 같은 신경망 장치는 복잡도 높기 때문에 정규화 및/또는 정제화 기능을 추가할 수 있다. 정규화 및/또는 정제화 방법들 중의 한가지 방법이 드롭커넥트가 될 수 있다. 드롭커넥트는 도 4a에 도시된 바와 같이 멤리스터들에 인가되는 입력신호의 연결을 해제시키는 방법이 될 수 있다. 도 7에서, 드롭 커넥트는 연산부(530)의 각 멤리스터(R11 -Rnn)들의 입력단에 스위치(S11 - Snn)들을 연결하고, 랜덤신호 발생부(예를들면, 도 6의 랜덤신호 발생부(635))에서 생성되는 랜덤신호 Sel11 - Selnn에 의해 스위치(S11 - Snn)의 온/오프 동작을 제어할 수 있다. 도 6의 스위치부(630)는 도 7에서 스위치(721 - 724)가 될 수 있으며, 도 6의 랜덤신호 발생부(635)는 도 7에서 랜덤신호 발생부(725)가 될 수 있다. 스위치(721)은 라인 L11과 멤리스터(731) 사이에 연결되고, 선택신호 Sel1에 의해 멤리스터(731)에 인가되는 입력신호의 연결을 해제시킬 수 있다. 스위치(722)는 라인 L12와 멤리스터(722) 사이에 연결되고, 선택신호 Sel2에 의해 멤리스터(722)에 인가되는 입력신호의 연결을 해제시킬 수 있다. 스위치(723)은 라인 L11과 멤리스터(733) 사이에 연결되고, 선택신호 Sel3에 의해 멤리스터(733)에 인가되는 입력신호의 연결을 해제시킬 수 있다. 스위치(734)는 라인 L12와 멤리스터(734) 사이에 연결되고, 선택신호 Sel4에 의해 멤리스터(734)에 인가되는 입력신호의 연결을 해제시킬 수 있다. Since the neural network apparatus shown in FIG. 7 has high complexity, the normalization and / or refinement functions can be added. One of the methods of normalization and / or refinement may be a drop connection. The drop connection may be a method of disconnecting the input signal applied to the memristors as shown in FIG. 4A. 7, the drop connection connects the switches S11 to Snn to the input terminals of the memristors R11 to Rnn of the operation unit 530, and generates a random signal generator (for example, a random signal generator 635 can control on / off operation of the switches S11 - Snn by the random signals Sel11-Selnn generated in the switches S11-Snn. The switch unit 630 in FIG. 6 may be a switch 721 - 724 in FIG. 7, and the random signal generator 635 in FIG. 6 may be a random signal generator 725 in FIG. The switch 721 is connected between the line L11 and the memristor 731 and can disconnect the input signal applied to the memristor 731 by the selection signal Sel1. The switch 722 is connected between the line L12 and the memristor 722 and can disconnect the input signal applied to the memristor 722 by the selection signal Sel2. The switch 723 is connected between the line L11 and the memristor 733 and can disconnect the input signal applied to the memristor 733 by the selection signal Sel3. The switch 734 is connected between the line L12 and the memristor 734 and can disconnect the input signal applied to the memristor 734 by the selection signal Sel4.

랜덤신호 발생부(735)는 입력되는 신호들의 일부 신호들의 연결을 해제시킬 수있는 스위치 제어신호를 발생할 수 있다. 도 10a 및 도 10b는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 랜덤신호 발생부의 구성을 도시하는 도면이다.The random signal generator 735 may generate a switch control signal that can cancel the connection of some signals of the input signals. 10A and 10B are diagrams showing a configuration of a random signal generator in a neural network apparatus according to various embodiments of the present invention.

도 10a 및 도 10b를 참조하면, 랜덤신호 발생부(725)는 N 비트 피보나치 LFSR(N bit Fibonacci linear feedback shift register)를 사용할 수 있다. 피보나치 LFSR은 쉬프트 레지스터와 쉬프트 레지스터의 일부를 익스클루시브 오아(exclusive OR)연산하는 XOR 게이트로 구성할 수 있다. 도 10a 및 도 10b에서 XOR 게이트는 최종 출력 및 최종 출력의 전단에 위치되는 데이터를 익스클루시브 오아 연산하여 쉬프트레지스터의 입력으로 인가하는 구성예를 도시하고 있다. 랜덤신호 발생부(725)는 도 10a와 같이 복수의 피보나치 LFSR들을 구비하여 각 노드들의 드롭아웃을 제어하기 위한 스위치 제어신호들을 생성할 수 있다. 또한 랜덤신호 발생부(725)는 도 10b와 같이 하나의 피보나치 LFSR들을 구비하여 각 노드들의 롭아웃을 제어하기 위한 스위치 제어신호들을 생성할 수 있다. 도 10a 및 도 10b에서 스위치 제어신호가 1이면 드롭 아웃을 적용하고, 0이면 드롭아웃을 적용하지 않을 수 있다. 상기 랜덤함수 발생부(725)는 드롭 아웃 비율(예를들면 1로 출력되는 신호의 비율)이 50%가 되도록 랜덤 신호를 발생할 수 있다.Referring to FIGS. 10A and 10B, the random signal generator 725 may use an N-bit Fibonacci linear feedback shift register (LFSR). The Fibonacci LFSR can be configured with an XOR gate that excludes a shift register and a portion of the shift register. In FIGS. 10A and 10B, the XOR gate shows a configuration example in which data positioned at the previous stage of the final output and the final output is subjected to an exclusive OR operation and applied to the input of the shift register. The random signal generator 725 may include a plurality of Fibonacci LFSRs as shown in FIG. 10A to generate switch control signals for controlling the dropout of each node. Also, the random signal generator 725 may include one Fibonacci LFSR as shown in FIG. 10B to generate switch control signals for controlling the dropout of each node. In FIGS. 10A and 10B, a dropout is applied if the switch control signal is 1, and a dropout is not applied when the switch control signal is 0. The random function generator 725 may generate a random signal such that the dropout rate (for example, the ratio of the signal output as 1) is 50%.

도 7과 같은 구성을 가지는 신경망 장치의 동작을 구체적으로 살펴보면, 멤리스터(ReRAM)(731 - 734)는 각각 고유한 저항 값(R1 - R4)를 가질 수 있으며, 이들 저항값들은 변경시킬 수 있다. 그리고 멤리스터의 저항값들은 웨이트값에 대응될 수 있다. 첫번째 루프에서 입력 Vin1 및 Vin2가 입력되면, 멤리스터(731 - 734)는 이전에 설정된 저항 값 R1 - R4에 기반하여 전류신호를 발생하고, 이들 전류신호들은 라인 21 및 라인 22(즉, 제1 노드 및 제2 노드)에서 합성되어 전류 I1 및 I2(즉, SOP1 및 SOP2)로 생성될 수 있다. 이때 전류 I1은 R1 및 Vin1에 의해 멤리스터(731)에서 생성되는 전류와, R2 및 Vin2에 의해 멤리스터(732)에서 생성되는 전류의 합이 될 수 있다. 전류 I1은 신경망 장치의 첫번째 레이어의 한 노드 출력이 될 수 있다. 전류 I2는 R3 및 Vin1에 의해 멤리스터(733)에서 생성되는 전류와, R4 및 Vin2에 의해 멤리스터(732)에서 생성되는 전류의 합이 될 수 있다. 전류 I2은 신경망 장치의 첫번째 레이어의 다른 노드 출력이 될 수 있다.7, the memristor (ReRAM) 731 - 734 may have a unique resistance value (R1 - R4), and these resistance values may be changed . And the resistance values of the memristor can correspond to the weight value. When the inputs Vin1 and Vin2 are input in the first loop, the memristors 731 to 734 generate current signals based on the previously set resistance values R1 to R4, and these current signals are applied to the lines 21 and 22 Node and the second node) to generate currents I1 and I2 (i.e., SOP1 and SOP2). At this time, current I1 may be the sum of the current generated by memristor 731 by R1 and Vin1 and the current generated by memristor 732 by R2 and Vin2. The current I1 can be the output of one node of the first layer of the neural network device. The current I2 can be the sum of the current generated in the memristor 733 by R3 and Vin1 and the current generated in the memristor 732 by R4 and Vin2. Current I2 can be the output of another node of the first layer of the neural network device.

신경망 장치는 드롭커넥트(또는 pruning) 기능을 통해 알고리듬의 성능을 향상시킬 수 있다. 드롭 커넥트는 연산부에 입력되는 신호들 중의 일부는 0로 만드는 것이 될 수 있다. 본 발명의 다양한 실시예들에 따른 신경망 장치의 드롭 커넥트는 연산부(530)을 구성하는 멤리스터들의 일부에 입력되는 신호들을 0로 만드는 방법(입력신호의 연결을 해제하는 방법)을 사용할 수 있다. 입력신호들의 선택은 랜덤신호 발생부(725)에 의해 결정될 수 있다. 랜덤신호 발생부(725)는 도 10a 또는 도 10b와 같은 구성을 가지는 N 비트 피보나치 LFSR로 구현할 수 있다. 랜덤신호 발생부(725)에서 생성되는 스위치 제어신호는 스위치(721 및 723)에 인가되어 전압비교기(741 및 743)에 인가되는 노드 L21 및 L22의 SOP를 드롭 아웃시킬 수 있다. 전압비교기(741 및 743)는 입력이 0로 인가되면, 해당 노드의 출력을 드롭아웃시킬 수 있다. The neural network device can improve the performance of the algorithm through the drop connect (or pruning) function. The drop connector may be made to have some of the signals input to the operation unit to be zero. The drop connection of the neural network apparatus according to various embodiments of the present invention may use a method of making the signals input to a part of the memristors constituting the operation unit 530 zero (a method of disconnecting an input signal). The selection of the input signals may be determined by the random signal generator 725. The random signal generator 725 may be implemented as an N-bit Fibonacci LFSR having the configuration shown in FIG. 10A or FIG. 10B. The switch control signal generated by the random signal generator 725 may be applied to the switches 721 and 723 to drop out the SOP of the nodes L21 and L22 applied to the voltage comparators 741 and 743. [ The voltage comparators 741 and 743 can drop out the output of the node when the input is applied to zero.

현재 레이어(예를들면, 첫번째 레이어)의 출력을 다음 레이어(예를들면 두번째 레이어)의 입력으로 인가하기 위하여, 전압변환기(741 및 743)은 각각 전류 I1과 전류 I2를 전압으로 변환할 수 있다. 이때 전압 변환기(741 및 743)는 전류를 전압으로 변환하는 OP amp를 이용하여 구성할 수 있다. 전압변환기(741 및 743)의 궤환 저항 Rf는 임의 적정 값을 사용할 수 있다. 전압 변환부(741 및 743)의 출력은 비교기(745 및 747)의 비교 입력으로 인가될 수 있다. 비교기(745 및 747)의 Vref는 적정한 값으로 설정될 수 있다. 비교기(745 및 747)는 전압변환기(731 및 733)에서 변환되는 전압과 +Vref를 비교하여 Vout1 및 Vout2를 각각 출력할 수 있다. 비교기(745 및 747)는 공급전압과 Vref의 설정 값을 변경할 수 있으며, 설정에 따라 Relu 활성함수로 나타낼 수 있으며, 시그모이드 함수로 나타낼 수도 있다. In order to apply the output of the current layer (e.g., the first layer) to the input of the next layer (e.g., the second layer), the voltage converters 741 and 743 may convert the current I1 and current I2, respectively, . At this time, the voltage converters 741 and 743 can be configured using an OP amp that converts a current into a voltage. The feedback resistances Rf of the voltage converters 741 and 743 can use any appropriate value. The outputs of the voltage conversion units 741 and 743 may be applied as comparative inputs of the comparators 745 and 747. [ Vref of the comparators 745 and 747 can be set to appropriate values. The comparators 745 and 747 compare the voltage converted by the voltage converters 731 and 733 with + Vref to output Vout1 and Vout2, respectively. The comparators 745 and 747 may change the set values of the supply voltage and Vref, and may be represented by a Relu activation function and a sigmoid function depending on the setting.

비교기(745 및 747)에서 출력되는 출력 전압 Vout1 및 Vout2는 다음 레이어의 입력신호가 될 수 있으며, 입력부(예를들면 도 4의 입력부(510))에 제2 입력신호로 인가될 수 있다. 그러면 입력부는 제2 입력신호를 선택하여 연산부의 제1 라인에 인가할 수 있다. 신경망 장치는 위와 같은 동작을 설정된 횟수만큼 반복 수행할 수 있으며, 설정된 횟수에 도달하면 최종 출력신호 Vout를 외부로 출력할 수 있다.The output voltages Vout1 and Vout2 output from the comparators 745 and 747 may be the input signals of the next layer and may be applied as the second input signals to the input portion (for example, the input portion 510 of FIG. 4). Then, the input unit can select the second input signal and apply it to the first line of the operation unit. The neural network device can repeat the above-described operation by the set number of times, and can output the final output signal Vout to the outside when the preset number of times is reached.

도 11은 본 발명의 다양한 실시예들에 따른 신경망 장치에서 정규화 동작을 수행하는 다른 실시예의 구성을 도시하는 도면이다.11 is a diagram showing a configuration of another embodiment for performing a normalization operation in a neural network apparatus according to various embodiments of the present invention.

도 11을 참조하면, 입력부(1110)는 입력신호 또는 연산된 신호를 입력할 수 있다. 예를들면, 입력부(1110)는 최초 동작시 외부의 입력신호를 수신할 수 있으며, 연산 구간에서는 출력부(1150)에서 출력되는 신호를 수신할 수 있다. 입력부(510)은 입력 신호를 제1 라인에 인가할 수 있다. Referring to FIG. 11, an input unit 1110 may input an input signal or a computed signal. For example, the input unit 1110 can receive an external input signal during the initial operation, and can receive a signal output from the output unit 1150 during the operation period. The input unit 510 may apply an input signal to the first line.

연산부(1130)는 입력신호들과 대응되는 웨이트들을 곱한 후 가산하는 다수의 노드들을 포함할 수 있다. 연산부(1130)는 멤리스터(ReRAM, resistance random access memory)를 사용할 수 있다. 연산부(1130)의 각 노드들은 복수의 입력신호들과 입력신호들에 대응되는 웨이트들의 곱 신호들을 발생한 후 가산된 신호 SOP들을 출력할 수 있다. 연산부(1130)은 제1 라인들과 제2 라인들에 교차 연결되는 복수의 멤리스터들을 포함할 수 있다.The operation unit 1130 may include a plurality of nodes that multiply input signals by corresponding weights, and then add the signals. The operation unit 1130 may use a resistance random access memory (ReRAM). Each node of the operation unit 1130 may generate product signals of weights corresponding to a plurality of input signals and input signals, and output the added signals SOP. The operation unit 1130 may include a plurality of memristors cross-connected to the first and second lines.

제1 정규화 제어부(1120)는 연산부(530)의 특정 멤리스터에 인가되는 입력신호의 연결을 해제(drop-connect)시킬 수 있다. 예를들면, 제1 정규화 제어부(520)은 제1 라인과 각 멤리스터들의 입력단 사이에 위치되는 스위치들과, 제1 랜덤 신호 발생부를 포함할 수 있다. 제1 정규화 제어부(1120)는 랜덤 신호에 의해 선택되는 스위치들을 제어하여 대응되는 멤리스터에 인가되는 입력신호의 연결을 해제시킬 수 있다. The first normalization control unit 1120 may drop-connect the input signal applied to the specific mem- ber of the operation unit 530. [ For example, the first normalization control unit 520 may include a switch located between the first line and the inputs of the memristors, and a first random signal generator. The first normalization controller 1120 may control the switches selected by the random signal to release the connection of the input signal applied to the corresponding memristor.

제2 정규화 제어부(1140)는 랜덤 제어신호에 의해 연산부(1130)의 복수 노드 신호들 중의 일부 노드 신호들을 드롭아웃시킬 수 있다. 예를들면, 제2 정규화 제어부(1140)는 제2 라인들에 연결되는 스위치들과 제2 랜덤 신호 발생부를 포함할 수 있다. 제1 정규화 제어부(1140)는 랜덤 신호에 의해 선택되는 특정 제2 라인의 신호를 드롭아웃 시킬 수 있다. The second normalization controller 1140 may drop out some node signals among the plurality of node signals of the operation unit 1130 according to the random control signal. For example, the second normalization controller 1140 may include switches connected to the second lines and a second random signal generator. The first normalization control unit 1140 can drop out the signal of the specific second line selected by the random signal.

출력부(11500)은 연산부(1130)의 노드 신호들을 임계치에 기반하여 활성화 여부를 결정하여 출력신호를 발생할 수 있다.The output unit 11500 can generate an output signal by determining whether to activate the node signals of the operation unit 1130 based on the threshold value.

도 11에 도시된 신경망 장치에서 연산부(1130)는 멤리스터에 기반하여 노드들의 SOP신호를 생성할 수 있으며, 제1 정규화 제어부(1120)는 연산부(1130)에 입력되는 신호를 제1 랜덤신호에 의해 드롭 커넥트시킬 수 있으며, 제2 정규화 제어부(1140)는 연산부(11130)에서 출력되는 노드 신호를 제2 랜덤신호에 의해 드롭 아웃 시킬 수 있다. 11, the operation unit 1130 may generate SOP signals of the nodes based on the memristor, and the first normalization control unit 1120 may output the signals input to the operation unit 1130 to the first random signal And the second normalization controller 1140 can drop out the node signal output from the operation unit 11130 by the second random signal.

도 12은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다. 12 is a diagram showing a configuration of a neural network device according to various embodiments of the present invention.

도 12을 참조하면, 선택기(1211, 1213)는 도 11의 입력부(1110)의 구성이 될 수 있으며, 멤리스터(1231 - 1234)는 도 11의 연산부(1130)의 구성이 될 수 있으며, 제1 랜덤신호 발생부(1225) 및 스위치(1221 - 1224)는 도 11의 제1 정규화 제어부(1120)의 구성이 될 수 있으며, 스위치(1241, 1243) 및 제2 랜덤신호 발생부(1245)는 도 11의 제2 정규화 제어부(1140)의 구성이 될 수 있으며, 변환기(1251, 1253) 및 비교기(1255, 1257)는 도 11의 출력부(1150)의 구성이 될 수 있다. 12, the selectors 1211 and 1213 may have the configuration of the input unit 1110 shown in FIG. 11, the memristors 1231 to 1234 may have the configuration of the calculator 1130 shown in FIG. 11, 1 random signal generator 1225 and switches 1221 to 1224 may be configured as the first normalization controller 1120 shown in Figure 11 and the switches 1241 and 1243 and the second random signal generator 1245 11, and the converters 1251 and 1253 and the comparators 1255 and 1257 may have the configuration of the output unit 1150 shown in FIG.

도 12에 도시된 연산부(예를들면 도 11의 연산부(1130))는 하나의 노드가 2개의 멤리스터들을 포함하는 예를 도시하고 있다. 멤리스터(1231 - 1234)들은 각각 고유의 저항값을 가지며, 입력신호 및 저항 값에 기반하는 전류 신호를 생성할 수 있다. 멤리스터(1231 - 1234)에서 생성되는 전류(즉, 입력신호 및 웨이트의 곱 신호)는 대응되는 제2 라인 L21, L22에 인가될 수 있으며, 제2 라인 L21, L22에서 해당 노드들의 전류신호들이 합성되어 SOP로 생성될 수 있다. 예를들면, 도 12에서 제1 노드의 연산부는 각각 R1 및 R2의 저항 값을 가지는 멤리스터(1231, 1232)들 포함할 수 있으며, 제2 노드의 연산부는 각각 R3 및 R4 저항 값을 가지는 멤리스터(1233, 1234)를 포함할 수 있다. The operation unit (for example, the operation unit 1130 in FIG. 11) shown in FIG. 12 shows an example in which one node includes two memristors. The memristors 1231 to 1234 each have a unique resistance value and can generate a current signal based on the input signal and the resistance value. The currents generated by the memristors 1231 to 1234 (i.e., the product signals of the input signal and the weight) can be applied to the corresponding second lines L21 and L22, and the current signals of the corresponding nodes in the second lines L21 and L22 Can be synthesized and generated as SOPs. For example, in FIG. 12, the operation unit of the first node may include memristors 1231 and 1232 having resistance values of R1 and R2, respectively, and the operation unit of the second node may include members having resistance values of R3 and R4, respectively And listers 1233 and 1234. [

선택기(1211)는 Vin1 또는 Vout1들 중의 하나를 입력신호로 선택하여 라인 L11에 인가할 수 있으며, 선택기(1213)는 Vin2 또는 Vout2들 중의 하나를 입력신호로 선택하여 라인 L12에 인가할 수 있다. 여기서 라인 L11 및 L12는 입력신호가 인가되는 제1 라인이 될 수 있다. The selector 1211 can select one of Vin1 or Vout1 as an input signal and apply it to the line L11 and the selector 1213 can select one of Vin2 or Vout2 as an input signal and apply it to the line L12. Here, the lines L11 and L12 may be the first line to which the input signal is applied.

제1 노드의 연산부 구성을 살펴보면, 멤리스터(1231)는 라인 L11 및 라인 L21에 교차 위치되며, 저항 R1 값을 가질 수 있다. 멤리스터(1231)는 입력신호(Vin1 또는 Vout1)와 저항 R1에 기반하는 전류 신호를 생성할 수 있으며, 라인 L21에 인가할 수 있다. 멤리스터(1232)는 라인 L12 및 라인 L21에 교차 위치되며, 저항 R2 값을 가질 수 있다. 멤리스터(1232)는 입력신호(Vin2 또는 Vout2)와 저항 R2에 기반하는 전류 신호를 생성할 수 있으며, 라인 L21에 인가할 수 있다. As to the configuration of the operation unit of the first node, the memristor 1231 is located at the intersection of the line L11 and the line L21 and can have the value of the resistance R1. The memristor 1231 can generate the current signal based on the input signal (Vin1 or Vout1) and the resistor R1 and can apply it to the line L21. The memristor 1232 is located across line L12 and line L21 and may have a value of resistance R2. The memristor 1232 can generate a current signal based on the input signal (Vin2 or Vout2) and the resistor R2 and can apply it to the line L21.

제2 노드의 연산부 구성을 살펴보면, 멤리스터(1233)는 라인 L11 및 라인 L22에 교차 위치되며, 저항 R3 값을 가질 수 있다. 멤리스터(1233)는 입력신호(Vin1 또는 Vout1)와 저항 R3에 기반하는 전류 신호를 생성할 수 있으며, 라인 L22에 인가할 수 있다. 멤리스터(1224)는 라인 L12 및 라인 L22에 교차 위치되며, 저항 R4 값을 가질 수 있다. 멤리스터(1234)는 입력신호(Vin2 또는 Vout2)와 저항 R4에 기반하는 전류 신호를 생성할 수 있으며, 라인 L23 인가할 수 있다. 여기서 저항 R1 - R4는 웨이트(G=1/R) 값에 대응될 수 있으며, 멤리스터들을 각각 고유의 저항 값으로 설정될 수 있다. Looking at the configuration of the operation unit of the second node, the memristor 1233 is located at the intersection of the line L11 and the line L22 and can have the value of the resistor R3. The memristor 1233 can generate the current signal based on the input signal (Vin1 or Vout1) and the resistor R3 and can apply it to the line L22. The memristor 1224 is located across line L12 and line L22 and may have a value of resistance R4. The memristor 1234 can generate the current signal based on the input signal Vin2 or Vout2 and the resistor R4, and can apply the line L23. Here, the resistors R1 to R4 can correspond to the values of the weights (G = 1 / R), and the memristors can be set to their respective resistance values.

본 발명의 다양한 실시예들에 따른 신경망 장치는 정규화 및/또는 정제화 기능을 가질 수 있다. 정규화 및/또는 정제화 방법은 드롭커넥트 및 드롭 아웃이 될 수 있다. 드롭커넥트는 도 4a에 도시된 바와 같이 멤리스터들에 인가되는 입력신호의 연결을 해제(drop-connect)시키는 방법이 될 수 있다. 드롭아웃은 도 4b에 도시된 바와 같이 연산부(1120)에서 출력되는 노드들의 출력을 드롭아웃시킬 수 있다. The neural network device according to various embodiments of the present invention may have normalization and / or refinement functions. Normalization and / or refinement methods may be drop-connect and drop-out. The drop connection may be a method of drop-connecting the input signal applied to the memristors as shown in FIG. 4A. The dropout may drop out the output of the nodes output from the operation unit 1120 as shown in FIG. 4B.

도 12에서, 드롭 커넥트는 연산부(1130)의 각 멤리스터(1231 - 1234)들의 입력단에 스위치(1221 - 1224)들을 각각 연결하고, 제1 랜덤신호 발생부(1225)에서 생성되는 랜덤신호 Sel1 - Sel4에 의해 스위치(1221 - 1224)의 온/오프되는 동작에 의해 수행될 수 있다. 스위치(1221)은 라인 L11과 멤리스터(1231) 사이에 연결되고, 선택신호 Sel1에 의해 멤리스터(1231)에 인가되는 입력신호의 연결을 해제시킬 수 있다. 스위치(1222)는 라인 L12와 멤리스터(1232) 사이에 연결되고, 선택신호 Sel2에 의해 멤리스터(1232)에 인가되는 입력신호의 연결을 해제시킬 수 있다. 스위치(1223)은 라인 L11과 멤리스터(1233) 사이에 연결되고, 선택신호 Sel3에 의해 멤리스터(1233)에 인가되는 입력신호의 연결을 해제시킬 수 있다. 스위치(1224)는 라인 L12와 멤리스터(1234) 사이에 연결되고, 선택신호 Sel4에 의해 멤리스터(1234)에 인가되는 입력신호의 연결을 해제시킬 수 있다. 12, the drop connection connects the switches 1221-1224 respectively to the inputs of the memristors 1231-1234 of the operation unit 1130, and generates the random signals Sel1 - S122 generated by the first random signal generator 1225, And by turning on / off the switches 1221-1224 by Sel4. The switch 1221 is connected between the line L11 and the memristor 1231 and can disconnect the input signal applied to the memristor 1231 by the selection signal Sel1. The switch 1222 is connected between the line L12 and the memristor 1232 and can disconnect the input signal applied to the memristor 1232 by the selection signal Sel2. The switch 1223 is connected between the line L11 and the memristor 1233 and can disconnect the input signal applied to the memristor 1233 by the selection signal Sel3. The switch 1224 is connected between the line L12 and the memristor 1234 and can disconnect the input signal applied to the memristor 1234 by the selection signal Sel4.

도 12에서 드롭 아웃은 연산부(1130)의 노드 출력단에 노드 출력을 스위칭 출력할 수 있는 스위치(1241, 1243)을 연결하고, 제2 랜덤신호 발생부(1245)에서 생성되는 제2 랜덤신호에 의해 스위치의 온/오프되는 동작에 의해 실행될 수 있다. 스위치(1241)는 라인 L21과 전압변환기(1251) 사이에 연결되는 제1 트랜지스터 T1과, 라인 L21과 접지단 사이에 연결되는 제2 트랜지스터 T2를 포함할 수 있다. 스위치(1241)는 제1 노드의 SOP를 드롭아웃시킬 수 있다. 예를들면, 랜덤신호 발생부(1245)에서 발생되는 스위치 제어신호가 제1 논리(예를들면 하이 논리)이면 제2 트랜지스터 T2가 온되고 제1 트랜지스터 T1이 오프되어 제1 노드의 SOP(라인 L21의 I1 신호)는 드롭아웃될 수 있다. 또한 랜덤신호 발생부(735)에서 발생되는 스위치 제어신호가 제2 논리(예를들면 로우 논리)이면 제1 트랜지스터 T1이 온되고 제2 트랜지스터 T2가 오프되어 제1 노드의 SOP(라인 L21의 I1 신호)는 전압변환기(741)의 입력으로 인가될 수 있다. 12, the dropout connects switches 1241 and 1243 capable of switching output of a node output to a node output terminal of the operation unit 1130, and a second random signal generated by the second random signal generation unit 1245 And can be executed by an operation of turning on / off the switch. The switch 1241 may include a first transistor T1 connected between the line L21 and the voltage converter 1251 and a second transistor T2 connected between the line L21 and the ground terminal. The switch 1241 may drop out the SOP of the first node. For example, if the switch control signal generated by the random signal generator 1245 is a first logic (e.g., high logic), the second transistor T2 is turned on and the first transistor T1 is turned off, I1 signal of L21) can be dropped out. If the switch control signal generated by the random signal generator 735 is a second logic (e.g., low logic), the first transistor T1 is turned on and the second transistor T2 is turned off, so that the SOP of the first node Signal) may be applied to the input of the voltage converter 741. [

또한 스위치(1243)는 라인 L22와 전압변환기(1253) 사이에 연결되는 제1 트랜지스터 T3과, 라인 L22과 접지단 사이에 연결되는 제2 트랜지스터T4를 포함할 수 있다. 스위치(1243)는 제2 노드의 SOP를 드롭아웃시킬 수 있다. 스위치(1243)는 스위치(124)의 동작과 동일한 방법으로 동작될 수 있다. The switch 1243 may also include a first transistor T3 connected between the line L22 and the voltage converter 1253 and a second transistor T4 connected between the line L22 and the ground. The switch 1243 may drop out the SOP of the second node. The switch 1243 may be operated in the same manner as the operation of the switch 124. [

제2 랜덤신호 발생부(1245)는 노드들 중 일부 노드들의 출력신호를 드롭아웃시키기 위한 스위치 제어신호를 발생할 수 있다. 제1 랜덤 신호 발생부(1225) 및 제2 랜덤 신호 발생부(1245)는 도 10a 및 도 10b와 같은 구성을 가지는 N비트 피보나치 LFSR을 사용할 수 있다.The second random signal generator 1245 may generate a switch control signal to drop out the output signal of some of the nodes. The first random signal generator 1225 and the second random signal generator 1245 may use an N-bit Fibonacci LFSR having a configuration as shown in FIGS. 10A and 10B.

도 12과 같은 구성을 가지는 신경망 장치의 동작을 구체적으로 살펴보면, 멤리스터(ReRAM)(1231 - 1234)는 각각 고유한 저항 값(R1 - R4)를 가질 수 있으며, 저항 값들은 웨이트값에 대응될 수 있다. 첫번째 루프에서 입력 Vin1 및 Vin2가 입력되면, 멤리스터(1231 - 1234)는 이전에 설정된 저항 값 R1 - R4에 기반하여 전류신호(입력신호 및 웨이트의 곱신호)를 발생하고, 이들 전류신호들은 라인 L21 및 라인 L22(즉, 제1 노드 및 제2 노드)에서 합성되어 전류 I1 및 I2(즉, SOP1 및 SOP2)로 생성될 수 있다. 이때 전류 I1은 R1 및 Vin1에 의해 멤리스터(1221)에서 생성되는 전류와, R2 및 Vin2에 의해 멤리스터(1232)에서 생성되는 전류의 합(sum of product)이 될 수 있다. 12, the memristor (ReRAM) 1231 to 1234 may have a unique resistance value (R1 to R4), and the resistance values may correspond to a weight value . When inputs Vin1 and Vin2 are input in the first loop, memristors 1231 to 1234 generate current signals (input signal and weight product signals) based on previously set resistance values R1 to R4, L21 and line L22 (i.e., the first node and the second node) and may be generated as currents I1 and I2 (i.e., SOP1 and SOP2). At this time, the current I1 may be the sum of the current generated in the memristor 1221 by R1 and Vin1 and the current generated in the memristor 1232 by R2 and Vin2.

신경망 장치의 제1 정규화 제어부(1120)는 연산부(1130)에 입력되는 신호들 중의 일부를 0로 만들어 드롭 커넥트 기능을 수행할 수 있다. 입력신호들의 선택은 제1 랜덤신호 발생부(1225)에 의해 결정될 수 있다. 제1 랜덤신호 발생부(1225)에서 생성되는 스위치 제어신호 sel1 - sel4는 각각 스위치(1221 - 1224)에 인가되어 멤리스터(1231 - 1234)에 인가되는 입력신호를 0로 만들 수 있다(drop-connect). 드롭 커넥트에 의해 입력신호가 해제되면, 대응되는 멤리스터는 해당 입력에 대한 연산 동작을 수행하지 않게 되며, 이로인해 연산 시간을 줄일 수 있게 된다.The first normalization control unit 1120 of the neural network apparatus may perform a drop connect function by making part of the signals input to the operation unit 1130 zero. The selection of the input signals may be determined by the first random signal generator 1225. The switch control signals sel1 to sel4 generated in the first random signal generator 1225 are respectively applied to the switches 1221 to 1224 so that the input signals applied to the memristors 1231 to 1234 can be set to zero, connect). When the input signal is released by the drop connection, the corresponding memristor will not perform the arithmetic operation on the input, thereby reducing the computation time.

신경망 장치의 제2 정규화 제어부(1140)는 연산부(1130)에 출력되는 SOP 신호들 중의 일부를 0로 만들어 드롭 아웃 기능을 수행할 수 있다. 드롭아웃할 노드의 선택은 제2 랜덤신호 발생부(1245)에 의해 결정될 수 있다. 제2 랜덤신호 발생부(1245)에서 생성되는 스위치 제어신호는 각각 스위치(1241, 1243)에 인가되어 전압비교기(1251 및 1253)에 인가되는 노드 L21 및 L22의 SOP를 드롭 아웃시킬 수 있다. 전압비교기(1251 및 1253)는 입력이 0로 인가되면, 해당 노드의 출력을 드롭아웃시킬 수 있다. 특정 노드의 출력이 드롭아웃되면, 다음 레이어의 연산 동작에서 특정 노드의 출력 신호에 대한 연산 동작을 수행하지 않게 되며, 이로인해 연산 시간을 줄일 수 있다.The second normalization control unit 1140 of the neural network apparatus may perform a dropout function by making some of the SOP signals output to the operation unit 1130 zero. The selection of the node to be dropped out may be determined by the second random signal generator 1245. The switch control signals generated by the second random signal generator 1245 may be applied to the switches 1241 and 1243 to drop out the SOP of the nodes L21 and L22 applied to the voltage comparators 1251 and 1253, respectively. The voltage comparators 1251 and 1253 can drop out the output of the node when the input is applied to zero. When the output of a specific node is dropped out, the calculation operation for the output signal of the specific node is not performed in the calculation operation of the next layer, thereby reducing the calculation time.

현재 레이어(예를들면, 첫번째 레이어)의 출력을 다음 레이어(예를들면 두번째 레이어)의 입력으로 인가하기 위하여, 전압변환기(1251 및 1253)은 각각 전류 I1과 전류 I2를 전압으로 변환할 수 있다. 이때 전압 변환기(1251 및 1253)는 전류를 전압으로 변환하는 OP amp를 이용하여 구성할 수 있다. 전압 변환부(1251 및 1253)의 출력은 비교기(1255 및 1257)의 비교 입력으로 인가될 수 있다. 비교기(1255 및 1257)의 Vref는 적정한 값으로 설정될 수 있다. 비교기(1235 및 1237)는 설정에 따라 Relu 활성함수로 나타낼 수 있으며, 시그모이드 함수로 나타낼 수도 있다. In order to apply the output of the current layer (e.g., the first layer) to the input of the next layer (e.g., the second layer), the voltage converters 1251 and 1253 may convert the currents I1 and I2, respectively, . At this time, the voltage converters 1251 and 1253 can be configured using an OP amp that converts a current into a voltage. The outputs of the voltage conversion units 1251 and 1253 may be applied as comparative inputs of the comparators 1255 and 1257. The Vref of the comparators 1255 and 1257 can be set to an appropriate value. The comparators 1235 and 1237 may be represented by a Relu activation function and a sigmoid function depending on the setting.

비교기(1255 및1257)에서 출력되는 출력 전압 Vout1 및 Vout2는 다음 레이어의 입력신호가 될 수 있으며, 입력부(예를들면 도 11의 입력부(1110))에 제2 입력신호로 인가될 수 있다. 그러면 입력부(1110)는 제2 입력신호를 선택하여 연산부(1230)의 제1 라인에 인가할 수 있다. 신경망 장치는 위와 같은 동작을 설정된 횟수만큼 반복 수행할 수 있으며, 설정된 횟수에 도달하면 최종 출력신호 Vout를 외부로 출력할 수 있다.The output voltages Vout1 and Vout2 output from the comparators 1255 and 1257 may be the input signals of the next layer and may be applied as the second input signals to the input unit (e.g., the input unit 1110 of Fig. 11). Then, the input unit 1110 may select the second input signal and apply the selected second input signal to the first line of the operation unit 1230. The neural network device can repeat the above-described operation by the set number of times, and can output the final output signal Vout to the outside when the preset number of times is reached.

도 12에서 드롭 아웃은 연산부(1130)의 출력단에 위치되어 선택되는 노드의 출력을 드롭아웃시키는 예를 도시하고 있다. 이때 입력부(1110)의 특정 선택기(또는 특정 제1 라인)과 연산부(1130) 사이에 스위치를 연결하고, 제2 랜덤신호발생부(1245)에 의해 스위치를 제어하는 구성으로 구현할 수도 있다. 즉, 선택부(1110)에서 특정 제1 라인에 인가하는 신호는 이전 레이어에서 특정 노드의 출력이 될 수 있다. 따라서 제1 라인들에 인가되는 입력신호들 중에서 특정 제1 라인의 입력신호의 연결을 해제하여도 드롭아웃 동작과 동일한 효과를 얻을 수 있다.In FIG. 12, the dropout is located at the output terminal of the operation unit 1130 and shows an example in which the output of the selected node is dropped out. At this time, a switch may be connected between a specific selector (or a specific first line) of the input unit 1110 and the operation unit 1130, and a switch may be controlled by the second random signal generation unit 1245. That is, the signal applied to the specific first line by the selector 1110 may be the output of the specific node in the previous layer. Therefore, even if the input signal of the first line is disconnected from the input signals applied to the first lines, the same effect as the dropout operation can be obtained.

도 11 및 도 12와 같은 구성을 가지는 신경망 장치는 드롭 커넥트 또는 드롭 아웃 중의 한가지를 선택하여 정규화 동작을 수행할 수 있다. 즉, 도시하지 않은 신경망 장치의 제어부는 신경망 장치를 구동할 때 드롭 커넥트 또는 드롭 아웃 기능을 선택할 수 있다. 드롭 커넥트 기능이 선택된 경우, 신경망 장치는 제1 정규화 제어부(1120)이 활성화되고 제2 정규화 제어부(1140)이 비활성화되어 연산부(1130)에 인가되는 입력신호의 연결을 해제(drop-connect)시킬 수 있다. 또한 드롭 아웃 기능이 선택된 경우, 신경망 장치는 제2 정규화 제어부(1140)이 활성화되고 제1 정규화 제어부(1120)이 비활성화되어 연산부(1130)에서 출력되는 노드의 출력(SOP신호)을 드롭아웃시킬 수 있다. 또한 도시하지 않은 제어부는 신경망 장치의 드롭 커넥트 및 드롭아웃 기능을 모두 선택할 수 있다. 이런 경우, 신경망 장치는 제1 정규화 제어부(1120) 및 제2 정규화 제어부(1140)이 모두 활성화되어 드롭 커넥트 및 드롭 아웃 동작을 수행할 수 있다. The neural network apparatus having the configuration as shown in Figs. 11 and 12 can perform the normalization operation by selecting one of the drop connect and the dropout. That is, a control unit of a neural network device, not shown, may select a drop connect or dropout function when driving a neural network device. When the drop connect function is selected, the neural network apparatus can activate the first normalization control unit 1120 and deactivate the second normalization control unit 1140 to drop-connect the input signal applied to the operation unit 1130 have. When the dropout function is selected, the neural network apparatus activates the second normalization control unit 1140 and deactivates the first normalization control unit 1120 to drop out the output (SOP signal) of the node output from the operation unit 1130 have. In addition, a control unit (not shown) can select both the drop connection and the dropout function of the neural network device. In this case, the first normalization controller 1120 and the second normalization controller 1140 are all activated in the neural network device to perform the drop connect and dropout operations.

본 발명의 다양한 실시예들에 따른 신경망 장치의 정규화 방법은, 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되고, 각각 웨이트 값에 대응되는 고유 저항값을 가지는 멤리스터 소자들의 상기 제1 라인들에 복수의 입력신호들을 인가하는 단계와, 제1 랜덤 신호에 의해 상기 제1라인과 상기 제2 메모리 소자들 사이에 연결되는 제1 스위치들 중에서 대응되는 일부의 제1스위치들이 스위칭 제어되어 상기 메모리 소자에 인가되는 입력 신호들의 연결을 해제하는 드롭 커넥트 단계와, 상기 멤리스터 소자들에서 대응되는 상기 입력 신호와 저항 값에 의해 생성되는 전류신호들을 상기 제2라인들에서 합성하여 노드의 SOP(sum of product) 신호를 생성하는 단계 및 제2 라인의 신호들을 활성함수에 의해 활성화시켜 상기 입력신호로 궤환시키는 출력 단계를 포함할 수 있다. A method of normalizing a neural network device according to various embodiments of the present invention includes the steps of: generating a plurality of first and second lines, each of which has a plurality of first lines and a plurality of second lines, Applying a plurality of input signals to the first lines and a corresponding one of the first switches connected between the first line and the second memory elements by a first random signal, A drop connect step of switching off the connection of the input signals to be applied to the memory element by switching control; and a second step of synthesizing the current signals generated by the corresponding input signal and resistance value in the memristor elements in the second lines Generating an SOP (sum of product) signal of the node and an output stage for activating signals of the second line by an activation function and feeding back the signals of the second line to the input signal It may contain.

신경망 장치의 정규화 방법에서 SOP를 생성하는 단계는, 복수의 제1 라인들과 복수의 제2 라인들에 교차 연결되며, 고유의 저항 값들을 가지는 멤리스터들에서 저항값에 기반하여 입력신호와 웨이트의 곱에 대응되는 전류를 생성하는 단계 및 상기 제2 라인에 연결된 멤리스터들에서 생성되는 전류들을 합성하여 해당 노드의 SOP를 생성하는 단계를 포함할 수 있다. Wherein the step of generating the SOP in the normalization method of the neural network device comprises the steps of: crossing the plurality of first lines and the plurality of second lines, wherein in the memristors having inherent resistance values, And generating an SOP of the corresponding node by synthesizing the currents generated in the memristors connected to the second line.

신경망 장치의 정규화 방법에서 드롭커넥트 단계는, 상기 멤리스터들에 인가되는 입력신호들 중에서 50%의 입력신호들의 연결을 해제할 수 있다. In the normalization method of the neural network device, the drop connect step may disconnect 50% of the input signals applied to the memristors.

신경망 장치의 정규화 방법에서, 출력 단계는, 상기 제2 라인에 연결되어 전류를 전압으로 변환하는 단계 및 설정된 바이어스 전압에 의해 상기 변환부의 출력신호의 활성 여부를 결정하는 단계를 포함할 수 있다. 활성 여부를 결정하는 단계는, 변환된 전압신호와 설정된 기준전압을 비교하여 활성 여부를 결정할 수 있다. In the normalization method of the neural network device, the output step may include a step of converting the current into a voltage, which is connected to the second line, and determining whether the output signal of the conversion unit is activated by the set bias voltage. The step of determining whether to be active may determine whether the voltage signal is active by comparing the converted voltage signal with a set reference voltage.

본 발명의 다양한 실시예들에 따른 신경망장치의 정규화 방법은, 제2 랜덤 신호에 의해 상기 제2 라인들과 출력부 사이에 연결되는 제2 스위치들 중에서 대응되는 방 일부의 제2 스위치들이 스위칭 제어되어 상기 출력부에 인가되는 SOP를 드롭아웃하는 단계를 더 포함할 수 있다. The method of normalizing a neural network device according to various embodiments of the present invention is characterized in that the second switches of the corresponding ones of the second switches connected between the second lines and the output unit by the second random signal are switched And dropping out the SOP applied to the output unit.

한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention. Therefore, the scope of the present invention should not be limited by the described embodiments, but should be determined by the scope of the appended claims, as well as the appended claims.

Claims (20)

복수의 입력 신호들을 각각 대응되는 복수의 제1 라인들에 인가하는 입력부;
상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 복수의 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호들을 생성하여 상기 복수의 제2 라인들 중 대응되는 제2 라인에 출력하는 연산부;
상기 제1라인과 상기 메모리 소자들 사이에 연결되는 스위치들을 포함하며, 랜덤 신호에 의해 상기 스위치가 스위칭 제어되어 대응되는 메모리 소자에 인가되는 입력 신호의 연결을 해제하는 드롭 커넥트 제어부; 및
상기 제2 라인에 연결되며, 상기 제2 라인의 신호들을 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 출력하는 출력부를 포함하는 신경망 장치.
An input unit for applying a plurality of input signals to corresponding first lines;
Each of the memory elements having a unique weight value, and each of the memory elements having a weight value corresponding to the input signal of the corresponding first line and a plurality of second An operation unit for generating product signals and outputting the product signals to corresponding second lines of the plurality of second lines;
A drop connect controller which switches between the first line and the memory devices and disconnects an input signal applied to the corresponding memory device by switching the switch by a random signal so as to disconnect the input signal; And
And an output unit connected to the second line for activating signals of the second line and applying the signals as an input signal to the input unit and outputting the result when the set number of operations is completed.
제1항에 있어서,
상기 연산부는
상기 스위치와 상기 제2 라인에 교차 연결되는 복수의 멤리스터들을 포함하며,
상기 멤리스터들은 각각 웨이트 값에 대응되는 저항값을 포함하며, 저항값에 기반하여 상기 입력신호와 웨이트의 곱에 대응되는 전류를 생성하여 제2 라인에 출력하며, 상기 제2 라인에서 합성되어 SOP(sum of product)로 생성되는 신경망 장치.
The method according to claim 1,
The operation unit
And a plurality of memristors crossing the switch and the second line,
Each of the memristors includes a resistance value corresponding to a weight value and generates a current corresponding to a product of the input signal and the weight based on the resistance value and outputs the current to the second line, a neural network device is generated as a sum of products.
제2항에 있어서,
상기 드롭 커넥트 제어부는
랜덤 신호를 발생하는 랜덤신호 발생부; 및
상기 제1라인과 상기 멤리스터 소자들 사이에 각각 연결되는 스위치들을 포함하며,
상기 랜덤신호에 기반하여 대응되는 스위치가 스위칭제어되어 상기 멤리스터들에 인가되는 입력신호의 연결을 해제하는 신경망 장치.
3. The method of claim 2,
The drop connect control unit
A random signal generator for generating a random signal; And
And switches connected between the first line and the memristor elements, respectively,
And a corresponding switch is switched and controlled based on the random signal to release a connection of an input signal applied to the memristors.
제3항에 있어서,
상기 랜덤 신호 발생부는
피보나치 선형 피드백 쉬프트 레지스터인 신경망 장치.
The method of claim 3,
The random signal generator
A neural network device that is a Fibonacci linear feedback shift register.
제4항에 있어서,
상기 드롭 커넥트 제어부는
상기 메모리 소자들에 인가되는 입력신호들의 50%를 연결 해제하는 신경망 장치.
5. The method of claim 4,
The drop connect control unit
And disconnects 50% of the input signals applied to the memory devices.
제3항에 있어서,
상기 출력부는
상기 제2 라인에 연결되어 전류를 전압으로 변환하는 변환부; 및
설정된 바이어스 전압에 의해 상기 변환부의 출력신호의 활성화 동작을 수행하는 활성화부를 포함하는 신경망 장치.
The method of claim 3,
The output
A converter connected to the second line to convert a current into a voltage; And
And an activation unit for performing an activation operation of an output signal of the conversion unit by a set bias voltage.
제6항에 있어서,
상기 활성화부는 비교기인 신경망 장치.
The method according to claim 6,
Wherein the activation unit is a comparator.
복수의 입력 신호들을 각각 대응되는 복수의 제1 라인들에 인가하는 입력부;
상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 복수의 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호들을 생성하여 상기 복수의 제2 라인들 중 대응되는 제2 라인에 출력하는 연산부;
상기 제1라인과 상기 메모리 소자들 사이에 연결되는 스위치들을 포함하며, 제1 랜덤 신호에 의해 상기 스위치가 스위칭 제어되어 대응되는 메모리 소자에 인가되는 입력 신호의 연결을 해제하는 드롭 커넥트 제어부;
상기 제2 라인들에 연결되는 스위치들을 포함하며, 제2 랜덤 신호에 의해 적어도 하나의 상기 제2 라인의 신호를 드롭아웃하는 드롭아웃 제어부; 및
상기 제2 라인에 연결되며, 상기 제2 라인의 신호들을 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 출력하는 출력부를 포함하는 신경망 장치.
An input unit for applying a plurality of input signals to corresponding first lines;
Each of the memory elements having a unique weight value, and each of the memory elements having a weight value corresponding to the input signal of the corresponding first line and a plurality of second An operation unit for generating product signals and outputting the product signals to corresponding second lines of the plurality of second lines;
A drop connect control unit which switches between the first line and the memory devices and disconnects an input signal applied to the corresponding memory device by switching the switch by a first random signal;
A dropout control unit including switches connected to the second lines, the dropout control unit dropping out at least one signal of the second line by a second random signal; And
And an output unit connected to the second line for activating signals of the second line and applying the signals as an input signal to the input unit and outputting the result when the set number of operations is completed.
제8항에 있어서,
상기 연산부는
복수의 제1 라인들과 복수의 제2 라인들에 교차 연결되는 복수의 멤리스터들을 포함하며,
상기 멤리스터들은 각각 웨이트 값에 대응되는 저항값을 포함하며, 저항값에 기반하여 상기 입력신호와 웨이트의 곱에 대응되는 전류를 생성하여 제2 라인에 출력하며, 상기 제2 라인에서 합성되어 SOP(sum of product)로 생성되는 신경망 장치.
9. The method of claim 8,
The operation unit
And a plurality of memristors cross-connected to the plurality of first lines and the plurality of second lines,
Each of the memristors includes a resistance value corresponding to a weight value and generates a current corresponding to a product of the input signal and the weight based on the resistance value and outputs the current to the second line, a neural network device is generated as a sum of products.
제9항에 있어서,
상기 드롭커넥트 제어부는
제1 랜덤 신호를 발생하는 제1 랜덤신호 발생부; 및
상기 제1라인과 상기 멤리스터 소자들 사이에 각각 연결되는 제1 스위치들을 포함하며,
상기 제1 랜덤신호에 기반하여 대응되는 제1 스위치가 스위칭제어되어 상기 멤리스터들에 인가되는 입력신호의 연결을 해제하는 신경망 장치.
10. The method of claim 9,
The drop connect control unit
A first random signal generator for generating a first random signal; And
And first switches connected between the first line and the memristor elements, respectively,
And a first switch corresponding to the first random signal is switched and controlled to release a connection of an input signal applied to the memristors.
제10항에 있어서,
상기 드롭아웃 제어부는
제2 랜덤신호를 발생하는 제2 랜덤신호 발생부; 및
상기 제2 라인들과 상기 출력부 사이에 각각 연결되는 제2 스위치들을 포함하며,
상기 제2 랜덤 신호에 의해 대응되는 상기 제2 스위치가 스위칭 제어되어 상기 출력부에 인가되는 상기 제2 라인의 SOP를 해제하는 신경망 장치.
11. The method of claim 10,
The dropout control unit
A second random signal generator for generating a second random signal; And
And second switches respectively connected between the second lines and the output unit,
And the second switch corresponding to the second random signal is switching controlled to release the SOP of the second line applied to the output unit.
제10항에 있어서,
상기 제1 랜덤신호 발생부 및 상기 제2 랜덤 신호 발생부는
피보나치 선형 피드백 쉬프트 레지스터인 신경망 장치.
11. The method of claim 10,
Wherein the first random signal generator and the second random signal generator
A neural network device that is a Fibonacci linear feedback shift register.
제12항에 있어서,
상기 출력부는
상기 제2 라인에 연결되어 전류를 전압으로 변환하는 변환부; 및
설정된 바이어스 전압에 의해 상기 변환부의 출력신호의 활성화 동작을 수행하는 활성화부를 포함하는 신경망 장치.
13. The method of claim 12,
The output
A converter connected to the second line to convert a current into a voltage; And
And an activation unit for performing an activation operation of an output signal of the conversion unit by a set bias voltage.
복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되고, 각각 웨이트 값에 대응되는 고유 저항값을 가지는 메모리 소자들의 상기 제1 라인들에 복수의 입력신호들을 인가하는 단계;
제1 랜덤 신호에 의해 상기 제1라인들과 상기 메모리 소자들 사이에 연결되는 제1 스위치들 중에서 대응되는 일부의 제1스위치들이 스위칭 제어되어 상기 메모리 소자들에 인가되는 입력 신호들의 연결을 해제하는 드롭 커넥트 단계;
상기 메모리 소자들에서 대응되는 상기 입력 신호와 저항 값에 의해 생성되는 전류신호들을 상기 제2라인들에서 합성하여 노드의 신호를 생성하는 단계; 및
상기 제2 라인들의 신호들을 활성함수에 의해 활성화시켜 상기 입력신호로 궤환시키는 출력 단계를 포함하는 신경망 장치의 정규화 방법.
Applying a plurality of input signals to the first lines of memory elements, each of the memory elements being located at a plurality of first lines and a plurality of second lines, each having an intrinsic resistance value corresponding to a respective weight value;
And a first part of the first switches connected between the first lines and the memory elements is switched by a first random signal to switch off the connection of the input signals applied to the memory elements Drop connect phase;
Synthesizing current signals generated by the input signal and the resistance value corresponding to the memory elements in the second lines to generate a signal of the node; And
And activating the signals of the second lines by an activation function to feed back the signals of the second lines to the input signal.
제14항에 있어서,
상기 노드의 신호를 생성하는 단계는
상기 복수의 제1 라인들과 상기 복수의 제2 라인들에 교차 연결되며, 고유의 저항 값들을 가지는 멤리스터들의 저항값에 기반하여 입력신호와 웨이트의 곱에 대응되는 전류를 생성하는 단계; 및
상기 제2 라인들에 연결된 멤리스터들에서 생성되는 전류들을 합성하여 해당 노드의 SOP(sum of product) 신호를 생성하는 단계를 포함하는 정규화 방법.
15. The method of claim 14,
The step of generating the signal of the node
Generating a current corresponding to a product of an input signal and a weight based on a resistance value of memristors crossing the plurality of first lines and the plurality of second lines and having resistances inherent thereto; And
And generating a sum of product (SOP) signal of a corresponding node by synthesizing currents generated in memristors connected to the second lines.
제15항에 있어서,
상기 드롭커넥트 단계는
상기 멤리스터들에 인가되는 입력신호들 중에서 50%의 입력신호들의 연결을 해제하는 정규화 방법.
16. The method of claim 15,
The drop connect step
And removing 50% of the input signals from the input signals applied to the memristors.
제16항에 있어서,
상기 출력 단계는
상기 제2 라인들에 연결되어 전류를 전압으로 변환하는 단계; 및
설정된 바이어스 전압에 의해 출력신호의 활성 여부를 결정하는 단계를 포함하는 정규화 방법.
17. The method of claim 16,
The output step
Converting the current into a voltage coupled to the second lines; And
And determining whether the output signal is active by the set bias voltage.
제17항에 있어서,
상기 활성 여부를 결정하는 단계는
상기 변환된 전압신호와 설정된 기준전압을 비교하여 활성 여부를 결정하는 정규화 방법.
18. The method of claim 17,
The step of determining whether to activate
And comparing the converted voltage signal with a set reference voltage to determine whether the voltage signal is active.
제15항에 있어서,
제2 랜덤 신호에 의해 상기 제2 라인들과 출력부 사이에 연결되는 제2 스위치들 중에서 대응되는 일부의 제2 스위치들이 스위칭 제어되어 상기 출력부에 인가되는 SOP를 드롭아웃하는 단계를 더 포함하는 정규화 방법.
16. The method of claim 15,
Further comprising the step of dropping out the SOP applied to the output unit by controlling switching of a corresponding part of the second switches among the second switches connected between the second lines and the output unit by the second random signal Normalization method.
제19항에 있어서,
상기 출력 단계는
상기 제2 라인들에 연결되어 전류를 전압으로 변환하는 단계; 및
설정된 바이어스 전압에 의해 출력신호의 활성 여부를 결정하는 단계를 포함하는 정규화 방법.
20. The method of claim 19,
The output step
Converting the current into a voltage coupled to the second lines; And
And determining whether the output signal is active by the set bias voltage.
KR1020160172594A 2016-12-16 2016-12-16 Apparatus and method for regularizating of neural network device KR20180070187A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160172594A KR20180070187A (en) 2016-12-16 2016-12-16 Apparatus and method for regularizating of neural network device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160172594A KR20180070187A (en) 2016-12-16 2016-12-16 Apparatus and method for regularizating of neural network device

Publications (1)

Publication Number Publication Date
KR20180070187A true KR20180070187A (en) 2018-06-26

Family

ID=62788508

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160172594A KR20180070187A (en) 2016-12-16 2016-12-16 Apparatus and method for regularizating of neural network device

Country Status (1)

Country Link
KR (1) KR20180070187A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111985607A (en) * 2019-05-22 2020-11-24 力旺电子股份有限公司 Correlation control circuit for product accumulation circuit of neural network system
CN112749796A (en) * 2019-10-31 2021-05-04 爱思开海力士有限公司 Computing device for neural networks
US11915125B2 (en) 2019-10-31 2024-02-27 SK Hynix Inc. Arithmetic devices for neural network

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111985607A (en) * 2019-05-22 2020-11-24 力旺电子股份有限公司 Correlation control circuit for product accumulation circuit of neural network system
CN111985607B (en) * 2019-05-22 2024-03-26 力旺电子股份有限公司 Correlation control circuit applied to product accumulation circuit of neural network-like system
CN112749796A (en) * 2019-10-31 2021-05-04 爱思开海力士有限公司 Computing device for neural networks
US11915125B2 (en) 2019-10-31 2024-02-27 SK Hynix Inc. Arithmetic devices for neural network

Similar Documents

Publication Publication Date Title
KR102578124B1 (en) Apparatus and method for regularizating of neural network device
CN107924227B (en) Resistance processing unit
US10708522B2 (en) Image sensor with analog sample and hold circuit control for analog neural networks
US9779355B1 (en) Back propagation gates and storage capacitor for neural networks
US9646243B1 (en) Convolutional neural networks using resistive processing unit array
US8930291B1 (en) Cortical neuromorphic network, system and method
US5056037A (en) Analog hardware for learning neural networks
Syed Ali et al. Finite time stability analysis of fractional-order complex-valued memristive neural networks with proportional delays
Hasan et al. On-chip training of memristor based deep neural networks
US5087826A (en) Multi-layer neural network employing multiplexed output neurons
US10970626B2 (en) Multi-memristive synapse with clock-arbitrated weight update
CN108268938B (en) Neural network, information processing method thereof and information processing system
JP2021507349A (en) A method for storing weights in a crosspoint device of a resistance processing unit array, its crosspoint device, a crosspoint array for performing a neural network, its system, and a method for performing a neural network. Method
US11087204B2 (en) Resistive processing unit with multiple weight readers
KR20180070187A (en) Apparatus and method for regularizating of neural network device
US20210342678A1 (en) Compute-in-memory architecture for neural networks
US9489617B2 (en) Neuromorphic system and method for operating the same
KR20200000686A (en) Weight matrix input circuit and weight matrix circuit
KR102514931B1 (en) Expandable neuromorphic circuit
JP2023502204A (en) Neuromorphic device with crossbar array structure
Ahamed et al. A study on neural network architectures
Parker et al. Distributed neural network: Dynamic learning via backpropagation with hardware neurons using arduino chips
CN110111234B (en) Image processing system architecture based on neural network
CA3178030A1 (en) Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference
US20220027712A1 (en) Neural mosaic logic unit