KR20180070187A - Apparatus and method for regularizating of neural network device - Google Patents
Apparatus and method for regularizating of neural network device Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
Description
본 발명은 드롭 커넥트 및/또는 드롭 아웃을 이용하여 신경망 장치의 정규화를 실행하는 장치 및 방법에 관한 것이다.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,
도 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
입력층은 받은 값을 그대로 은닉층에 전달할 수 있다. 은닉층은 다수의 노드(예를들면 도 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
도 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
도 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
연산부(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
정규화 제어부(520)는 연산부(530)의 특정 멤리스터에 인가되는 입력신호의 연결을 해제(drop-connect)시킬 수 있다. 예를들면, 정규화 제어부(520)은 제1 라인과 각 멤리스터들의 입력단 사이에 위치되는 스위치들과, 랜덤 신호 발생부를 포함할 수 있다. 정규화 제어부(520)는 랜덤 신호에 의해 선택되는 스위치들을 제어하여 대응되는 멤리스터에 인가되는 입력신호의 연결을 해제시킬 수 있다. The
출력부(540)은 드롭아웃 제어부(520)에서 출력되는 연산부(530)의 노드 신호들을 임계치에 기반하여 활성화 여부를 결정하여 출력신호를 발생할 수 있다.The
도 5에 도시된 신경망 장치에서 연산부(530)는 멤리스터에 기반하여 노드들의 SOP신호를 생성할 수 있으며, 정규화 제어부(520)는 연산부(530)에 입력되는 신호를랜덤신호에 의해 제어하여 드롭 커넥트 기능을 수행할 수 있다. 5, the
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
도 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
연산부(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
정규화 제어부(520)는 제1 입력라인 L11 - L1n들과 각각 대응되는 멤리스터(R11 - Rnn) 사이에 연결되는 스위치(S11 - Snn)들과, 스위치(S11 - Snn)들의 온/오프를 제어하기 위한 선택신호 Sel11 - Selnn을 발생하는 랜덤신호 발생부(630)을 포함할 수 있다. 랜덤 신호 발생부(635)는 스위치(S11 - Snn)들의 스위칭을 제어하여 입력신호들 중에서 일정 비율(예를들면 50%)의 입력신호들이 연산되지 않도록 제어할 수 있다. The
출력부(540)는 변환부(640) 및 활성화부(645)를 포함할 수 있다. 변환부(640)는 스위치부(530)에서 출력되는 노드들의 SOP를 입력할 수 있다. 이때의 SOP는 전류 신호가 될 수 있다. 변환부(640)는 전류 신호를 전압으로 변환할 수 있다. 활성화부(645)는 설정된 임계값에 의해 변환부(640)에서 출력되는 노드의 SOP를 활성화 또는 비활성화시킬 수 있다. 상기 출력부(540)는 설정된 연산 구간에서 출력 신호를 입력부(510)의 제2 입력신호 Vout로 인가할 수 있으며, 연산이 종료되는 시점에서 출력될 수 있다. The
도 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
도 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
본 발명의 다양한 실시예에 따른 신경망 장치는 멤리스터 소자를 이용하여 하드웨어 모델링을 할 수 있다. 도 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
제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
따라서 멤리스터(731 및 732)는 각각 대응되는 입력신호들에 웨이트 값(각각 설정된 고유의 저항값)을 곱하여 라인 L21에 출력할 수 있다. 이런 경우 라인 L21에 인가되는 제1 노드의 합성 전류를 하기 <수학식 1>과 같이 표시할 수 있다. Thus, the
<수학식 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
멤리스터에서 생성되는 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
도 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.
도 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
비교기(745)에서 출력되는 출력신호 Vout1는 하기 <수학식 3>과 같이 표현할 수 있다. 그리고 하기 <수학식 3>과 같은 방법으로 출력신호 Vout2도 구할 수 있다.The output signal Vout1 output from the
비교기(745 및 747)에 출력되는 출력전압 Vout1 및 Vout2는 입력부인 선택기(711 및 713)의 제2 입력신호로 인가될 수 있다. 신경망 장치 연산 동작을 수행하는 시점에서는 외부로부터 입력되는 제1 입력신호 Vin 를 선택할 수 있으며, 이후 연산 구간에서는 연산된 신호인 제2 입력신호 Vout를 선택할 수 있다. 따라서 연산부는 제1 입력신호 Vin에 기반하여 연산동작을 수행할 수 있으며, 이후에는 출력신호인 제2 입력신호 Vout에 기반하여 연산동작을 수행할 수 있다. 그리고 설정된 횟수의 연산 동작을 수행하면 연산된 최종 출력신호를 발생할 수 있다.The output voltages Vout1 and Vout2 output to the
도 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).
따라서 신경망 장치의 출력 Vout은 하기 <수학식 5>와 표현할 수 있다.Therefore, the output Vout of the neural network apparatus can be expressed by Equation (5).
이후 <수학식 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.
상기 <수학식 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).
도 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
랜덤신호 발생부(735)는 입력되는 신호들의 일부 신호들의 연결을 해제시킬 수있는 스위치 제어신호를 발생할 수 있다. 도 10a 및 도 10b는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 랜덤신호 발생부의 구성을 도시하는 도면이다.The
도 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
신경망 장치는 드롭커넥트(또는 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
현재 레이어(예를들면, 첫번째 레이어)의 출력을 다음 레이어(예를들면 두번째 레이어)의 입력으로 인가하기 위하여, 전압변환기(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
비교기(745 및 747)에서 출력되는 출력 전압 Vout1 및 Vout2는 다음 레이어의 입력신호가 될 수 있으며, 입력부(예를들면 도 4의 입력부(510))에 제2 입력신호로 인가될 수 있다. 그러면 입력부는 제2 입력신호를 선택하여 연산부의 제1 라인에 인가할 수 있다. 신경망 장치는 위와 같은 동작을 설정된 횟수만큼 반복 수행할 수 있으며, 설정된 횟수에 도달하면 최종 출력신호 Vout를 외부로 출력할 수 있다.The output voltages Vout1 and Vout2 output from the
도 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
연산부(1130)는 입력신호들과 대응되는 웨이트들을 곱한 후 가산하는 다수의 노드들을 포함할 수 있다. 연산부(1130)는 멤리스터(ReRAM, resistance random access memory)를 사용할 수 있다. 연산부(1130)의 각 노드들은 복수의 입력신호들과 입력신호들에 대응되는 웨이트들의 곱 신호들을 발생한 후 가산된 신호 SOP들을 출력할 수 있다. 연산부(1130)은 제1 라인들과 제2 라인들에 교차 연결되는 복수의 멤리스터들을 포함할 수 있다.The
제1 정규화 제어부(1120)는 연산부(530)의 특정 멤리스터에 인가되는 입력신호의 연결을 해제(drop-connect)시킬 수 있다. 예를들면, 제1 정규화 제어부(520)은 제1 라인과 각 멤리스터들의 입력단 사이에 위치되는 스위치들과, 제1 랜덤 신호 발생부를 포함할 수 있다. 제1 정규화 제어부(1120)는 랜덤 신호에 의해 선택되는 스위치들을 제어하여 대응되는 멤리스터에 인가되는 입력신호의 연결을 해제시킬 수 있다. The first
제2 정규화 제어부(1140)는 랜덤 제어신호에 의해 연산부(1130)의 복수 노드 신호들 중의 일부 노드 신호들을 드롭아웃시킬 수 있다. 예를들면, 제2 정규화 제어부(1140)는 제2 라인들에 연결되는 스위치들과 제2 랜덤 신호 발생부를 포함할 수 있다. 제1 정규화 제어부(1140)는 랜덤 신호에 의해 선택되는 특정 제2 라인의 신호를 드롭아웃 시킬 수 있다. The
출력부(11500)은 연산부(1130)의 노드 신호들을 임계치에 기반하여 활성화 여부를 결정하여 출력신호를 발생할 수 있다.The output unit 11500 can generate an output signal by determining whether to activate the node signals of the
도 11에 도시된 신경망 장치에서 연산부(1130)는 멤리스터에 기반하여 노드들의 SOP신호를 생성할 수 있으며, 제1 정규화 제어부(1120)는 연산부(1130)에 입력되는 신호를 제1 랜덤신호에 의해 드롭 커넥트시킬 수 있으며, 제2 정규화 제어부(1140)는 연산부(11130)에서 출력되는 노드 신호를 제2 랜덤신호에 의해 드롭 아웃 시킬 수 있다. 11, the
도 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
도 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
선택기(1211)는 Vin1 또는 Vout1들 중의 하나를 입력신호로 선택하여 라인 L11에 인가할 수 있으며, 선택기(1213)는 Vin2 또는 Vout2들 중의 하나를 입력신호로 선택하여 라인 L12에 인가할 수 있다. 여기서 라인 L11 및 L12는 입력신호가 인가되는 제1 라인이 될 수 있다. The
제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
제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
본 발명의 다양한 실시예들에 따른 신경망 장치는 정규화 및/또는 정제화 기능을 가질 수 있다. 정규화 및/또는 정제화 방법은 드롭커넥트 및 드롭 아웃이 될 수 있다. 드롭커넥트는 도 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
도 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
도 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
또한 스위치(1243)는 라인 L22와 전압변환기(1253) 사이에 연결되는 제1 트랜지스터 T3과, 라인 L22과 접지단 사이에 연결되는 제2 트랜지스터T4를 포함할 수 있다. 스위치(1243)는 제2 노드의 SOP를 드롭아웃시킬 수 있다. 스위치(1243)는 스위치(124)의 동작과 동일한 방법으로 동작될 수 있다. The
제2 랜덤신호 발생부(1245)는 노드들 중 일부 노드들의 출력신호를 드롭아웃시키기 위한 스위치 제어신호를 발생할 수 있다. 제1 랜덤 신호 발생부(1225) 및 제2 랜덤 신호 발생부(1245)는 도 10a 및 도 10b와 같은 구성을 가지는 N비트 피보나치 LFSR을 사용할 수 있다.The second
도 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,
신경망 장치의 제1 정규화 제어부(1120)는 연산부(1130)에 입력되는 신호들 중의 일부를 0로 만들어 드롭 커넥트 기능을 수행할 수 있다. 입력신호들의 선택은 제1 랜덤신호 발생부(1225)에 의해 결정될 수 있다. 제1 랜덤신호 발생부(1225)에서 생성되는 스위치 제어신호 sel1 - sel4는 각각 스위치(1221 - 1224)에 인가되어 멤리스터(1231 - 1234)에 인가되는 입력신호를 0로 만들 수 있다(drop-connect). 드롭 커넥트에 의해 입력신호가 해제되면, 대응되는 멤리스터는 해당 입력에 대한 연산 동작을 수행하지 않게 되며, 이로인해 연산 시간을 줄일 수 있게 된다.The first
신경망 장치의 제2 정규화 제어부(1140)는 연산부(1130)에 출력되는 SOP 신호들 중의 일부를 0로 만들어 드롭 아웃 기능을 수행할 수 있다. 드롭아웃할 노드의 선택은 제2 랜덤신호 발생부(1245)에 의해 결정될 수 있다. 제2 랜덤신호 발생부(1245)에서 생성되는 스위치 제어신호는 각각 스위치(1241, 1243)에 인가되어 전압비교기(1251 및 1253)에 인가되는 노드 L21 및 L22의 SOP를 드롭 아웃시킬 수 있다. 전압비교기(1251 및 1253)는 입력이 0로 인가되면, 해당 노드의 출력을 드롭아웃시킬 수 있다. 특정 노드의 출력이 드롭아웃되면, 다음 레이어의 연산 동작에서 특정 노드의 출력 신호에 대한 연산 동작을 수행하지 않게 되며, 이로인해 연산 시간을 줄일 수 있다.The second
현재 레이어(예를들면, 첫번째 레이어)의 출력을 다음 레이어(예를들면 두번째 레이어)의 입력으로 인가하기 위하여, 전압변환기(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
비교기(1255 및1257)에서 출력되는 출력 전압 Vout1 및 Vout2는 다음 레이어의 입력신호가 될 수 있으며, 입력부(예를들면 도 11의 입력부(1110))에 제2 입력신호로 인가될 수 있다. 그러면 입력부(1110)는 제2 입력신호를 선택하여 연산부(1230)의 제1 라인에 인가할 수 있다. 신경망 장치는 위와 같은 동작을 설정된 횟수만큼 반복 수행할 수 있으며, 설정된 횟수에 도달하면 최종 출력신호 Vout를 외부로 출력할 수 있다.The output voltages Vout1 and Vout2 output from the
도 12에서 드롭 아웃은 연산부(1130)의 출력단에 위치되어 선택되는 노드의 출력을 드롭아웃시키는 예를 도시하고 있다. 이때 입력부(1110)의 특정 선택기(또는 특정 제1 라인)과 연산부(1130) 사이에 스위치를 연결하고, 제2 랜덤신호발생부(1245)에 의해 스위치를 제어하는 구성으로 구현할 수도 있다. 즉, 선택부(1110)에서 특정 제1 라인에 인가하는 신호는 이전 레이어에서 특정 노드의 출력이 될 수 있다. 따라서 제1 라인들에 인가되는 입력신호들 중에서 특정 제1 라인의 입력신호의 연결을 해제하여도 드롭아웃 동작과 동일한 효과를 얻을 수 있다.In FIG. 12, the dropout is located at the output terminal of the
도 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
본 발명의 다양한 실시예들에 따른 신경망 장치의 정규화 방법은, 복수의 제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 라인들과 복수의 제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.
상기 연산부는
상기 스위치와 상기 제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.
상기 드롭 커넥트 제어부는
랜덤 신호를 발생하는 랜덤신호 발생부; 및
상기 제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.
상기 랜덤 신호 발생부는
피보나치 선형 피드백 쉬프트 레지스터인 신경망 장치.
The method of claim 3,
The random signal generator
A neural network device that is a Fibonacci linear feedback shift register.
상기 드롭 커넥트 제어부는
상기 메모리 소자들에 인가되는 입력신호들의 50%를 연결 해제하는 신경망 장치.
5. The method of claim 4,
The drop connect control unit
And disconnects 50% of the input signals applied to the memory devices.
상기 출력부는
상기 제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.
상기 활성화부는 비교기인 신경망 장치.
The method according to claim 6,
Wherein the activation unit is a comparator.
상기 복수의 제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.
상기 연산부는
복수의 제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.
상기 드롭커넥트 제어부는
제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.
상기 드롭아웃 제어부는
제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.
상기 제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.
상기 출력부는
상기 제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 랜덤 신호에 의해 상기 제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.
상기 노드의 신호를 생성하는 단계는
상기 복수의 제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.
상기 드롭커넥트 단계는
상기 멤리스터들에 인가되는 입력신호들 중에서 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.
상기 출력 단계는
상기 제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.
상기 활성 여부를 결정하는 단계는
상기 변환된 전압신호와 설정된 기준전압을 비교하여 활성 여부를 결정하는 정규화 방법.
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.
제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.
상기 출력 단계는
상기 제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.
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)
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 |
-
2016
- 2016-12-16 KR KR1020160172594A patent/KR20180070187A/en unknown
Cited By (4)
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 |