KR20180085422A - Sigmoid function circuit used in an artificial neural network - Google Patents
Sigmoid function circuit used in an artificial neural network Download PDFInfo
- Publication number
- KR20180085422A KR20180085422A KR1020170008872A KR20170008872A KR20180085422A KR 20180085422 A KR20180085422 A KR 20180085422A KR 1020170008872 A KR1020170008872 A KR 1020170008872A KR 20170008872 A KR20170008872 A KR 20170008872A KR 20180085422 A KR20180085422 A KR 20180085422A
- Authority
- KR
- South Korea
- Prior art keywords
- neural network
- sigmoid function
- artificial neural
- function circuit
- artificial
- 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
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/26—Arbitrary function generators
- G06G7/28—Arbitrary function generators for synthesising functions by piecewise approximation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Logic Circuits (AREA)
Abstract
Description
본 발명은 시그모이드 함수 회로에 관한 것으로, 좀 더 자세하게는 인공 신경망에서 사용되는 시그모이드 함수 회로에 관한 것이다.The present invention relates to a sigmoid function circuit, and more particularly to a sigmoid function circuit used in an artificial neural network.
인공 신경망(Artificial Neural Network; ANN)은 생물학의 신경망과 유사한 방식으로 데이터를 처리하는 통계학적인 망이다. 인공 신경망은 문자 인식, 이미지 인식, 음성 인식, 얼굴 인식과 같은 다양한 분야에서 사용될 수 있다. 인공 신경망은 초고밀도집적회로(Very large scale integrated circuit; VLSI)에서 구현될 수 있다. 생물학의 신경망과 유사하게 인공 신경망은 시냅스 및 인공 뉴런을 포함할 수 있다.Artificial Neural Network (ANN) is a statistical network that processes data in a manner similar to biological neural networks. Artificial neural networks can be used in various fields such as character recognition, image recognition, speech recognition, and face recognition. Artificial neural networks can be implemented in very large scale integrated circuits (VLSI). Similar to biological neural networks, artificial neural networks can include synapses and artificial neurons.
기술의 발전에 따라, 인공 신경망의 복잡도는 점점 증가할 수 있다. 좀 더 구체적으로, 인공 신경망의 시냅스들의 개수 및 인공 뉴런들의 개수가 증가할 수 있다. 이로 인해, 하드웨어로 구현된 인공 신경망의 면적 및 전력 소모가 증가하는 문제점이 있다.With the development of technology, the complexity of artificial neural networks can increase. More specifically, the number of synapses in the artificial neural network and the number of artificial neurons may be increased. As a result, the area and power consumption of the artificial neural network implemented by hardware increase.
본 발명은 상술한 기술적 과제를 해결하기 위한 것으로, 본 발명은 인공 신경망에서 사용되는 시그모이드 함수 회로를 제공할 수 있다.SUMMARY OF THE INVENTION The present invention provides a sigmoid function circuit used in an artificial neural network.
본 발명의 실시 예에 따른 인공 신경망에서 사용되는 시그모이드 함수 회로는 잡음 증폭기 및 복수의 비교기를 포함할 수 있다. 잡음 증폭기는 잡음 증폭기는 저항에서 발생하는 열잡음을 증폭할 수 있다. 복수의 비교기는 상기 증폭된 열잡음을 각각 수신할 수 있다. 상기 복수의 비교기 중 적어도 하나는 클럭의 상승 엣지 또는 하강 엣지에서 상기 증폭된 열잡음과 상기 인공 신경망의 인공 뉴런으로 입력되는 신호들이 합산된 결과를 비교할 수 있다.The sigmoid function circuit used in the artificial neural network according to the embodiment of the present invention may include a noise amplifier and a plurality of comparators. The noise amplifier can amplify the thermal noise generated by the resistor. The plurality of comparators may receive the amplified thermal noise, respectively. At least one of the plurality of comparators may compare the sum of the signals input to the artificial neuron of the artificial neural network and the amplified thermal noise at the rising edge or the falling edge of the clock.
본 발명의 실시 예에 따른 인공 신경망의 뉴런에서 사용되는 시그모이드 함수 회로는 1-bit ADC 역할을 수행하는 비교기를 포함할 수 있다. 따라서, 면적이 작은 시그모이드 함수 회로에 의해, 인공 신경망의 면적 및 전력 소모는 개선될 수 있다.The sigmoid function circuit used in the neuron of the artificial neural network according to the embodiment of the present invention may include a comparator performing a role of a 1-bit ADC. Therefore, the area and power consumption of the artificial neural network can be improved by the small-area sigmoid function circuit.
도 1은 본 발명의 실시 예에 따른 인공 신경망을 예시적으로 보여주는 도면이다.
도 2는 도 1에서 도시된 인공 뉴런을 예시적으로 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 시그모이드 함수 회로를 예시적으로 보여주는 블록도이다.
도 4는 도 3에서 도시된 시그모이드 함수 회로의 동작을 예시적으로 보여주는 타이밍도이다.
도 5는 도 4에서 도시된 시그모이드 함수 회로에 대한 스파이크의 평균을 예시적으로 보여주는 그래프이다.
도 6은 도 1에서 도시된 인공 신경망의 대한 구체적인 실시 예를 예시적으로 보여주는 블록도이다.
도 7 및 도 8은 본 발명의 실시 예에 따른 시그모이드 함수 회로의 측정 결과를 예시적으로 보여주는 도면들이다.1 is a diagram illustrating an artificial neural network according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating an exemplary artificial neuron shown in FIG. 1. FIG.
3 is a block diagram illustrating an exemplary sigmoid function circuit according to an embodiment of the present invention.
4 is a timing diagram illustrating an exemplary operation of the sigmoid function circuit shown in FIG.
5 is a graph illustrating an exemplary average of spikes for the sigmoid function circuit shown in Fig.
FIG. 6 is a block diagram illustrating an exemplary embodiment of the artificial neural network shown in FIG. 1. FIG.
FIGS. 7 and 8 illustrate exemplary measurement results of a sigmoid function circuit according to an embodiment of the present invention.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.In the following, embodiments of the present invention will be described in detail and in detail so that those skilled in the art can easily carry out the present invention.
도 1은 본 발명의 실시 예에 따른 인공 신경망을 예시적으로 보여주는 도면이다. 인공 신경망(Artificial neural network; ANN, 10)은 생물학의 신경망과 유사한 인공적으로 구성된 망을 의미한다. 도 1을 참조하면, 인공 신경망(10)은 입력층(Input layer, 11), 은닉층(Hidden layer, 12), 및 출력층(Output layer, 13)을 포함할 수 있다. 입력층(11), 은닉층(12), 및 출력층(13)은 시냅스(Synapse)를 통해 서로 연결될 수 있다. 생물학적으로, 시냅스는 신경세포와 다른 신경 세포 사이의 접합부를 의미할 수 있다. 유사하게, 인공 신경망(10)에서, 인공 뉴런과 다른 인공 뉴런은 시냅스를 통해 서로 결합될 수 있다. 1 is a diagram illustrating an artificial neural network according to an embodiment of the present invention. An artificial neural network (ANN, 10) is an artificially constructed network similar to a biological neural network. Referring to FIG. 1, the artificial
인공 신경망(10)은 복수의 인공 뉴런(100)을 포함할 수 있다. 복수의 인공 뉴런(100)은 외부로부터 입력 데이터(X1~XI)를 수신하는 입력 뉴런, 입력 뉴런으로부터 데이터를 수신하고 이를 처리하는 은닉 뉴런, 그리고 은닉 뉴런으로부터 데이터를 수신하고 출력 데이터(Y1~YJ)를 생성하는 출력 뉴런을 포함할 수 있다. 입력층(11)은 복수의 입력 뉴런을 포함할 수 있고, 은닉층(12)은 복수의 은닉 뉴런을 포함할 수 있고, 출력층(13)은 복수의 출력 뉴런을 포함할 수 있다. 여기서, 입력층(11), 은닉층(12), 그리고 출력층(13) 각각에 포함된 인공 뉴런들의 개수는 도시된 바에 한정되지 않는다. 은닉층(12)은 도 1에서 도시된 것보다 더 많은 층들을 포함할 수 있고, 상술한 층들의 개수는 인공 신경망(10)의 정확도나 학습 속도와 관련된다.The artificial
실시 예에 있어서, 입력 데이터는 사람의 얼굴 또는 필기체를 나타내는 이미지 데이터일 수 있다. 인공 신경망(10)은 이미지 데이터를 인식하고, 이미지가 무엇인지를 출력할 수 있다. 그러나 본 발명의 실시 예에서 입력 데이터는 상술한 이미지 데이터에 한정되지 않는다.In an embodiment, the input data may be image data representing a face or a handwriting of a person. The artificial
도 2는 도 1에서 도시된 인공 뉴런을 예시적으로 보여주는 블록도이다. 도 2를 참조하면, 인공 뉴런(100)은 합산 회로(Summation circuit, 110) 및 활성 함수 회로(Activation function circuit, 120)를 포함할 수 있다.FIG. 2 is a block diagram illustrating an exemplary artificial neuron shown in FIG. 1. FIG. Referring to FIG. 2, the
합산 회로(110)는 가중치들(W1~WK)을 이용하여 입력 신호들(A1~AK)을 합산할 수 있다. 입력 신호들(A1~AK) 각각은 임의의 인공 뉴런으로부터 생성된 출력 신호를 나타낼 수 있다. 가중치들(W1~WK) 각각은 시냅스의 강도(즉, 인공 뉴런과 다른 인공 뉴런과의 결합 정도)를 나타낼 수 있다. 좀 더 구체적으로, 합산 회로(110)는 가중치들(W1~WK)과 입력 신호들(A1~AK)을 각각 곱한 후, 곱셈 결과들을 합쳐서 합산 결과(B)를 생성할 수 있다. 따라서, 가중치가 낮으면 해당 입력 신호는 합산 결과(B)에서 비중이 낮아지고, 가중치가 높으면 해당 입력 신호는 합산 결과(B)에서 비중이 높아진다. 합산 결과(B)는 수학식 1로 나타낼 수 있다.The
활성 함수 회로(120)는 합산 결과(B) 및 활성 함수(Activation function, f)를 이용해 활성 결과(C)를 출력할 수 있다. 활성 결과(C)는 수학식 2로 나타낼 수 있다.The
수학식 2의 활성 함수(f)는 시그모이드(Sigmoid) 함수이다. 일반적으로, 인공 신경망(도 1 참조, 10)에서, 활성 함수는 시그모이드 함수일 수 있다. 시그모이드 함수는 비선형 함수이고, 모든 입력에 대해 0부터 1사이의 값을 출력할 수 있다. 활성 결과(C, 즉 시그모이드 함수의 출력)는 시냅스를 통해 다른 인공 뉴런으로 전달될 수 있다. 즉, 활성 결과(C)는 다른 인공 뉴런의 입력이 될 수 있다.The activation function (f) in Equation (2) is a sigmoid function. Generally, in an artificial neural network (see FIG. 1, 10), the activation function may be a sigmoid function. The sigmoid function is a nonlinear function and can output a value between 0 and 1 for all inputs. The activation result (C, ie, the output of the sigmoid function) can be transmitted through synapses to other artificial neurons. That is, the activation result (C) can be input to other artificial neurons.
좀 더 구체적으로, 합산 결과(B)가 음의 무한대로 수렴하면, 활성 결과(C)는 0으로 수렴하고, 합산 결과(B)가 양의 무한대로 수렴하면, 활성 결과(C)는 1로 수렴한다. 활성 결과(C)가 0으로 수렴한 경우, 활성 결과(C)는 다른 인공 뉴런의 합산 결과에서 무시될 수 있다. 반면에, 활성 결과(C)가 1로 수렴한 경우, 활성 결과(C)는 다른 인공 뉴런의 합산 결과에서 비중이 높을 수 있다. 이하, 인공 신경망의 뉴런에서 사용되는 시그모이드 함수 회로(즉, 활성 함수가 시그모이드 함수인 경우)의 구체적인 실시 예에 대해 설명한다.More specifically, if the summation result B converges to negative infinity, then the active result C converges to zero, and if the summation result B converges to positive infinity, Converge. When the activation result (C) converges to zero, the activation result (C) can be ignored in the result of summation of other artificial neurons. On the other hand, when the activation result (C) converges to 1, the activation result (C) may be higher in the result of summation of other artificial neurons. Hereinafter, a specific embodiment of the sigmoid function circuit (i.e., the case where the activation function is a sigmoid function) used in the neuron of the artificial neural network will be described.
도 3은 본 발명의 실시 예에 따른 시그모이드 함수 회로를 예시적으로 보여주는 블록도이다. 도 3을 참조하면, 시그모이드 함수 회로(200)는 잡음 증폭기(Noise amplifier, 210) 및 비교기(Comparator, 220)를 포함할 수 있다.3 is a block diagram illustrating an exemplary sigmoid function circuit according to an embodiment of the present invention. Referring to FIG. 3, the
잡음 증폭기(210)는 저항(Resistor; R) 및 증폭기(Amplifier, 211)를 포함할 수 있다. 저항(R)의 일단은 접지에 연결될 수 있고, 저항(R)의 타단은 증폭기(211)에 연결될 수 있다. 일반적으로, 저항(R)은 열교란에 의해 열잡음이 발생할 수 있다. 이러한 열잡음은 광대역의 스펙트럼 밀도를 가질 수 있다(즉, 백색 잡음(White noise)). 도시되진 않았지만, 저항(R)은 열잡음이 없는 이상적인 저항 및 열잡음 전압원으로 모델링될 수 있다. 유사하게, 저항(R)은 열잡음이 없는 이상적인 저항 및 열잡음 전류원으로 모델링될 수 있다.The
증폭기(211)는 저항(R)에서 생성된 열잡음을 증폭할 수 있다. 증폭된 열잡음(VN,COMP)은 비교기(220)로 전달될 수 있다. 증폭기(211)의 개루프(Open-loop) 이득은 A일 수 있다. 도 3을 참조하면, 잡음 증폭기(210)는 개루프 방식으로 구현될 수 있다. 도시되진 않았지만, 잡음 증폭기(210)는 폐루프(Closed-loop) 방식으로 구현될 수도 있다. 본 발명의 실시 예에 따른 시그모이드 함수 회로(200)는 개루프 방식 또는 폐루프 방식으로 증폭된 열잡음(VN,COMP)을 사용할 수 있다.The
비교기(220)는 입력 전압(VIN, 도 2의 입력 신호들(A1~AK)과 대응)과 증폭된 열잡음(VN,COMP)을 비교할 수 있다. 비교기(220)는 플러스 단자 및 마이너스 단자를 포함할 수 있다. 비교기(220)는 플러스 단자를 통해 입력 전압(VIN)을 수신할 수 있고, 마이너스 단자를 통해 증폭된 열잡음(VN,COMP)을 수신할 수 있다. 예시적으로, 비교기(220)는 차동 증폭기(Differential amplifier) 형태로 구현될 수 있다.The
실시 예에 있어서, 입력 전압(VIN)이 증폭된 열잡음(VN,COMP)보다 크거나 같은 경우, 비교 결과(DOUT)는 논리 1이 된다. 비교기(220)는 입력 전압(VIN)이 증폭된 열잡음(VN,COMP)보다 작은 경우, 비교 결과(DOUT)는 논리 0이 된다. 비교 결과(DOUT)는 수학식 3으로 나타낼 수 있다.In an embodiment, if the input voltage V IN is greater than or equal to the amplified thermal noise V N, COMP , then the comparison result D OUT is a logic one. The
비교기(220)는 클럭(Clock; CK)을 수신할 수 있다. 비교기(220)는 클럭의 상승 엣지(Rising edge) 또는 하강 엣지(Falling edge)에서 입력 전압(VIN)과 증폭된 열잡음(VN,COMP)을 비교할 수 있다. 클럭(CK)을 이용하는 비교기(220)의 동작이 도 4에 예시적으로 도시되었다.The
도 4는 도 3에서 도시된 시그모이드 함수 회로의 동작을 예시적으로 보여주는 타이밍도이다. 도 4에서 가로축은 시간에 해당한다. 시그모이드 함수 회로(도 3 참조, 200)는 클럭의 상승 엣지마다 입력 전압(VIN)과 증폭된 열잡음(VN,COMP)을 비교할 수 있다. 클럭이 하이(High)인 경우, 시그모이드 함수 회로(200)는 비교 결과(DOUT)를 출력할 수 있다. 클럭이 로우(Low)인 경우, 시그모이드 함수 회로(200)는 비교 결과(DOUT)를 셋(Set) 또는 리셋(Reset)할 수 있다. 그러나 본 발명의 실시 예에 따른 시그모이드 함수 회로(200)의 동작은 도 4에서 도시된 것에 한정되지 않는다.4 is a timing diagram illustrating an exemplary operation of the sigmoid function circuit shown in FIG. In Fig. 4, the horizontal axis corresponds to time. The sigmoid function circuit (see FIG. 3, 200) can compare the input voltage V IN and the amplified thermal noise V N, COMP for each rising edge of the clock. When the clock is high, the
만약 증폭된 열잡음(VN,COMP)이 가우스 확률 변수(Gaussian random variable)에 해당하고, 평균이 0이고 표준편차가 σN,COMP인 경우, 비교 결과(DOUT)가 1이 될 수 있는 확률(p)은 수학식 4로 나타낼 수 있다.If the amplified thermal noise (V N, COMP ) corresponds to a Gaussian random variable and the mean is zero and the standard deviation is σ N, COMP , then the probability that the comparison result (D OUT ) (p) can be expressed by Equation (4).
수학식 4에서, 에러 함수(erf(x))는 수학식 5로 나타낼 수 있다.In Equation (4), the error function erf (x) can be expressed by Equation (5).
비교기(도 3 참조, 220)는 클럭의 상승 엣지 또는 하강 엣지에서 증폭된 열잡음(VN,COMP)과 뉴런으로 입력되는 신호들이 합산된 결과(즉, 입력 전압(VIN))를 비교할 수 있다. 좀 더 구체적으로, 비교기(220)는 증폭된 열잡음(VN,COMP)과 입력 전압(VIN)을 N(N은 자연수)번 비교할 수 있다(즉, 반복 비교). 예시적으로, 도 4에서, 비교기(도 3 참조, 220)는 비교를 8번 수행하는 것으로 도시되었다. 총 8개의 비교 결과(DOUT)에서, 논리 1은 5번 출력되었고, 논리 0은 3번 출력되었다. 따라서, 비교 결과(DOUT)가 1이 될 수 있는 확률(p)은 0.625(=5/8)일 수 있다.The
스파이크(Spike, S)는 비교 횟수가 N인 경우에 비교 결과(DOUT)들의 합을 비교 횟수 N으로 나눈 값으로 정의할 수 있다. 즉, 스파이크(S)는 수학식 6으로 나타낼 수 있다.Spike (S) can be defined as a value obtained by dividing the sum of comparison results (D OUT ) by the number of comparisons N when the number of comparisons is N. [ That is, the spike S can be expressed by Equation (6).
여기서, N은 자연수이고, N은 인공 신경망(도 1 참조, 10)의 정확도, 타깃 에러율 등에 의해 결정될 수 있다. 스파이크(S)는 이항분포(Binomial distribution)를 따를 수 있다. 이항분포의 평균 정의 및 표준편차 정의를 이용하면, 스파이크의 평균(μS) 및 표준편차(σS)는 각각 수학식 7 및 수학식 8로 나타낼 수 있다.Here, N is a natural number, and N can be determined by the accuracy of the artificial neural network (see FIG. 1), the target error rate, and the like. The spike (S) may follow a binomial distribution. Using the mean and standard deviation definitions of binomial distributions, the mean (μ S ) and standard deviation (σ S ) of the spikes can be expressed by Equations (7) and (8), respectively.
도 5는 도 4에서 도시된 시그모이드 함수 회로에 대한 스파이크의 평균을 예시적으로 보여주는 그래프이다. 도 5를 참조하면, 가로축은 입력 전압(VIN)이고, 세로축은 상술한 스파이크의 평균(μS, 즉 시그모이드 함수)이다. 증폭된 열잡음(VN,COMP)의 표준편차(σN,COMP)가 증가할수록, 스파이크의 평균(μS)의 가파름(Steepness)이 감소할 수 있다. 반대로, 증폭된 열잡음(VN,COMP)의 표준편차(σN,COMP)가 0으로 수렴할수록, 스파이크의 평균(μS)은 단위 스텝 함수(Unit step function)의 형태가 될 수 있다.5 is a graph illustrating an exemplary average of spikes for the sigmoid function circuit shown in Fig. Referring to Figure 5, the horizontal axis is the input voltage (V IN ) and the vertical axis is the average of the above spikes (μ S , or sigmoid function). As the standard deviation of the amplified thermal noise (V N, COMP ) σ N, COMP increases, the steepness of the mean (μ S ) of the spikes may decrease. Conversely, the more the standard deviation (σ N, COMP) of the amplified thermal noise (N V, COMP) converges to zero, and the average (μ S) of the spikes may be in the form of a unit step function (step function Unit).
도 6은 도 1에서 도시된 인공 신경망의 대한 구체적인 실시 예를 예시적으로 보여주는 블록도이다. 도 6을 참조하면, 인공 신경망(1000)은 제 1 은닉층(1100), 제 2 은닉층(1200), 잡음 증폭기(1130), 및 클럭 발생기(1140)를 포함할 수 있다. 도시되진 않았지만, 인공 신경망(1000)은 도 1에서 도시된 입력층(11) 및 출력층(13)을 더 포함할 수 있다. 그리고 인공 신경망(1000)의 은닉층의 개수는 도시된 바에 한정되지 않는다.FIG. 6 is a block diagram illustrating an exemplary embodiment of the artificial neural network shown in FIG. 1. FIG. 6, the artificial
제 1 은닉층(1100)은 멤리스터 어레이(Memristor array, 1110), 인공 뉴런(1120), 잡음 증폭기(1130), 및 클럭 발생기(Clock generator, 1140)를 포함할 수 있다.The first hiding layer 1100 may include a
멤리스터 어레이(1110)는 복수의 멤리스터를 포함할 수 있다. 멤리스터는 전원 공급 끊어지기 직전에 통과한 전류의 방향과 양을 기억할 수 있다. 멤리스터는 제 1 배선 및 제 2 배선의 교차점에 배치될 수 있다. 유사한 방식으로 다른 멤리스터들도 제 1 배선 및 제 2 배선의 교차점에 배치될 수 있다. 멤리스터 어레이(1110)는 도 1에서 도시된 시냅스에 대응할 수 있다. 멤리스터, 제 1 배선, 및 제 2배선 각각의 개수는 도 6에서 도시된 바에 한정되지 않는다. 멤리스터 어레이(1110)는 제 1 배선을 통해 입력 데이터를 수신할 수 있다. 실시 예에 있어서, 입력 데이터는 펄스(Pulse) 형태로 제공될 수 있다. 또 다른 실시 예에 있어서, 입력 데이터는 도 1에서 도시된 입력층(11) 및 다른 은닉층을 통과한 후 멤리스터 어레이(1110)에 제공될 수도 있다.The
인공 뉴런(1120)은 도 1에서 도시된 인공 뉴런(100)과 대응될 수 있다. 인공 뉴런(1120)은 증폭기(1121), 커패시터(Capacitor; C), 및 비교기(1122)를 포함할 수 있다. 여기서, 비교기(1122)는 도 3에서 도시된 비교기(220)와 대체로 유사한 기능을 수행할 수 있다. 실시 예에 있어서, 인공 신경망(1000)은 복수의 인공 뉴런을 포함할 수 있다. 다만, 복수의 인공 뉴런의 개수는 도 6에서 도시된 바에 한정되지 않는다. 증폭기(1121) 및 커패시터(C)는 적분기(Integrator)로 동작할 수 있다. 커패시터(C)는 증폭기(1121)의 입력과 출력 사이에 연결될 수 있다. 따라서, 멤리스터 어레이(1110)의 출력은 적분기에 누적될 수 있다. 적분기는 도 2에서 도시된 합산 회로(110)에 대응할 수 있다. 적분기는 비교기(1122)에 입력 전압(VIN, 도 2의 B에 대응)을 제공할 수 있다.The
비교기(1122)는 적분기로부터 입력 전압(VIN)을 수신할 수 있고, 잡음 증폭기(1130)로부터 증폭된 열잡음(VN,COMP)을 수신할 수 있다. 비교기(1122)는 입력 전압(VIN) 및 증폭된 열잡음(VN,COMP)을 비교하고, 논리 1 또는 논리 0을 출력할 수 있다. 이 때, 입력 전압(VIN) 및 증폭된 열잡음(VN,COMP)은 아날로그 신호들이므로, 본 발명의 실시 예에 따른 비교기(1122)는 1-bit ADC(Analog-digital converter)일 수 있다. 일반적으로, 인공 뉴런에서 활성 함수(예를 들면, 시그모이드 함수)를 구현하기 위해 디지털 논리 회로들(예를 들면, INV, AND, NAND, OR, NOR, XOR, XNOR 등)이 사용될 수 있다. 이 경우, 멤리스터 어레이(1110)에서 출력되는 아날로그 신호들을 디지털로 변환하기 위한 ADC들이 필요할 수 있다. 특히, 인공 신경망(1000)의 복잡도가 증가하는 경우(즉, 시냅스 연결이 많거나 인공 뉴런들의 개수가 증가하는 경우), 상술한 ADC들의 개수 및 면적은 증가될 수 있다. 그러나, 본 발명의 실시 예에 따르면, 시그모이드 함수 회로는 1-bit ADC이므로, 상술한 ADC는 필요하지 않을 수 있다.The
잡음 증폭기(1130)는 저항(R) 및 증폭기(1131)를 포함할 수 있다. 잡음 증폭기(1130)는 도 3에서 전술한 잡음 증폭기(210)와 대체로 유사하다. 실시 예에 있어서, 잡음 증폭기(1130)에 의해 증폭된 열잡음(VN,COMP)은 비교기(1122) 및 다른 비교기들에도 제공될 수 있다. 즉, 복수의 인공 뉴런은 하나의 잡음 증폭기(1130)를 공유할 수 있다. 따라서, 복수의 인공 뉴런의 개수가 증가해도, 잡음 증폭기(1130)의 개수는 하나일 수 있다. The
실시 예에 있어서, 복수의 인공 뉴런의 복수의 비교기 각각은 잡음 증폭기(1130)로부터 증폭된 열잡음(VN,COMP)을 수신할 수 있다. 복수의 비교기 중 적어도 하나는 입력 전압(VIN) 및 증폭된 열잡음(VN,COMP)을 비교할 수 있다. 전술한대로, 입력 전압(VIN)은 복수의 인공 뉴런으로 입력되는 신호들이 합산된 결과를 의미할 수 있다.클럭 발생기(1140)는 클럭(CK)을 비교기(1122)에 제공할 수 있다. 실시 예에 있어서, 클럭 발생기(1140)는 PLL(Phase locked loop) 또는 DLL(Delay locked loop)일 수 있다. 다른 실시 예에 있어서, 인공 신경망(1000)은 외부에서 클럭(CK)을 수신할 수 있다. 이 경우, 인공 신경망(1000)은 클럭 발생기(1140)는 포함하지 않을 수도 있다. In an embodiment, each of a plurality of comparators of a plurality of artificial neurons may receive amplified thermal noise V N, COMP from
다른 실시 예에 있어서, 클럭 발생기(1140)는 다른 은닉층에 포함된 인공 뉴런들에 클럭(CK)을 제공할 수 있다. 유사하게, 잡음 증폭기(1130)는 다른 은닉층에 포함된 인공 뉴런들에 증폭된 열잡음(VN,COMP)을 제공할 수 있다.In another embodiment,
제 2 은닉층(1200)은 인공 뉴런(1120)으로부터 비교 결과(DOUT)를 수신할 수 있다. 제 2 은닉층(1200)은 제 1 은닉층(1100)과 유사하게 구현될 수 있다. 도시되진 않았지만, 제 2 은닉층(1200)은 다른 은닉층 또는 출력층(도 1 참조, 13)과 연결될 수 있다. 인공 신경망(1000)에 입력된 입력 데이터는 제 1 및 제 2 은닉층들(1100, 1200)을 통과한 후, 외부로 출력될 수 있다.The second hidden layer 1200 may receive the comparison result (D OUT ) from the
도 7 및 도 8은 본 발명의 실시 예에 따른 시그모이드 함수 회로의 측정 결과를 예시적으로 보여주는 도면들이다. 도 7 및 도 8에서, 가로축은 입력 전압(VIN)이다. 도 7에서, 입력 전압(VIN)에 대한 이상적인 시그모이드 함수(Ideal sigmoid function)에 대한 그래프(실선으로 도시)가 도시되었다. 상술한 그래프는 수학식 2와 대응될 수 있다. 또한, 도 7에서, 비교 횟수(N)가 1024인 경우, 시그모이드 함수 회로(도 3 참조, 120)를 통해 구현된 시그모이드 함수가 이상적인 시그모이드 함수와 함께 도시될 수 있다(즉, 측정 결과, 사각형으로 도시). 도 7을 참조하면, 시그모이드 함수 회로(200)를 통해 구현된 시그모이드 함수와 이상적인 시그모이드 함수가 거의 일치하는 것을 확인할 수 있다. FIGS. 7 and 8 illustrate exemplary measurement results of a sigmoid function circuit according to an embodiment of the present invention. 7 and 8, the horizontal axis represents the input voltage V IN . In FIG. 7, a graph (shown by solid lines) for an ideal sigmoid function for the input voltage V IN is shown. The above-described graph can be matched with equation (2). 7, when the number of comparisons N is 1024, a sigmoid function implemented through a sigmoid function circuit (see Fig. 3, 120) can be shown together with an ideal sigmoid function , Measurement results, squares). Referring to FIG. 7, it can be seen that the sigmoid function implemented through the
도 8은 시그모이드 함수 회로(200)를 통해 구현된 시그모이드 함수와 이상적인 시그모이드 함수의 차이(즉, 에러)를 나타낼 수 있다. 도 8을 참조하면, 에러의 크기는 0.05보다 작은 것을 확인할 수 있다. 도 7 및 도 8은 비교 횟수(N)가 1024인 경우에 대해 도시되었다. 비교 횟수(N)가 증가되는 경우, 도 8에서 도시된 에러의 크기는 감소할 수 있다.8 illustrates the difference (i.e., error) between the sigmoid function implemented through the
본 발명의 실시 예에 따른 인공 신경망에서 사용되는 시그모이드 함수 회로는 잡음 증폭기 및 복수의 비교기를 포함할 수 있다. 잡음 증폭기는 잡음 증폭기는 저항에서 발생하는 열잡음을 증폭할 수 있다. 복수의 비교기는 증폭된 열잡음을 각각 수신할 수 있다. 복수의 비교기 중 적어도 하나는 클럭의 상승 엣지 또는 하강 엣지에서 증폭된 열잡음과 인공 신경망의 인공 뉴런으로 입력되는 신호들이 합산된 결과를 비교할 수 있다.The sigmoid function circuit used in the artificial neural network according to the embodiment of the present invention may include a noise amplifier and a plurality of comparators. The noise amplifier can amplify the thermal noise generated by the resistor. The plurality of comparators can each receive the amplified thermal noise. At least one of the plurality of comparators can compare the sum of the thermal noise amplified in the rising edge or the falling edge of the clock and the signals input to the artificial neuron of the artificial neural network.
실시 예에 있어서, 반복 횟수는 인공 신경망의 타깃 에러율에 의해 결정될 수 있다.In an embodiment, the number of iterations may be determined by the target error rate of the artificial neural network.
실시 예에 있어서, 잡음 증폭기는 개루프(Open-loop) 방식 또는 폐루프(Closed-loop) 방식으로 구현될 수 있다.In an embodiment, the noise amplifier may be implemented in an open-loop or closed-loop fashion.
실시 예에 있어서, 비교기는 플러스 단자 및 마이너스 단자를 포함하고, 플러스 단자를 통해 뉴런으로 입력되는 신호들이 합산된 결과를 수신하고, 마이너스 단자를 통해 증폭된 열잡음을 수신할 수 있다.In an embodiment, the comparator includes a plus terminal and a minus terminal, receives the summed result of the signals input to the neuron through the plus terminal, and receives the amplified thermal noise through the minus terminal.
실시 예에 있어서, 비교기의 개수는 하나 이상이고, 복수의 비교기들은 잡음 증폭기를 공유할 수 있다.In an embodiment, the number of comparators is one or more, and the plurality of comparators may share a noise amplifier.
실시 예에 있어서, 인공 뉴런은 복수의 비교기 중 하나를 포함할 수 있다.In an embodiment, the artificial neuron may comprise one of a plurality of comparators.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.The above description is a concrete example for carrying out the present invention. The present invention includes not only the above-described embodiments, but also embodiments that can be simply modified or easily changed. In addition, the present invention includes techniques that can be easily modified by using the above-described embodiments.
10, 1000: 인공 신경망
11: 입력층
12: 은닉층
13: 출력층
100: 인공 뉴런
110: 합산 회로
120: 활성 함수 회로
200: 시그모이드 함수 회로
210: 잡음 증폭기
220: 비교기10, 1000: artificial neural network
11: input layer
12: Hiding layer
13: Output layer
100: artificial neuron
110: summing circuit
120: active function circuit
200: sigmoid function circuit
210: Noise Amplifier
220: comparator
Claims (1)
저항에서 발생하는 열잡음을 증폭하는 잡음 증폭기; 및
상기 증폭된 열잡음을 각각 수신하는 복수의 비교기를 포함하되,
상기 복수의 비교기 중 적어도 하나는 클럭의 상승 엣지 또는 하강 엣지에서 상기 증폭된 열잡음과 상기 인공 신경망의 인공 뉴런으로 입력되는 신호들이 합산된 결과를 비교하는 시그모이드 함수 회로.In a sigmoid function circuit used in an artificial neural network,
A noise amplifier for amplifying thermal noise generated in the resistor; And
And a plurality of comparators each receiving the amplified thermal noise,
Wherein at least one of the plurality of comparators compares the summed result of the signals input to the artificial neuron of the artificial neural network with the amplified thermal noise at a rising edge or a falling edge of the clock.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170008872A KR20180085422A (en) | 2017-01-18 | 2017-01-18 | Sigmoid function circuit used in an artificial neural network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170008872A KR20180085422A (en) | 2017-01-18 | 2017-01-18 | Sigmoid function circuit used in an artificial neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180085422A true KR20180085422A (en) | 2018-07-27 |
Family
ID=63078402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170008872A KR20180085422A (en) | 2017-01-18 | 2017-01-18 | Sigmoid function circuit used in an artificial neural network |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20180085422A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324503A (en) * | 2018-08-28 | 2019-02-12 | 南京理工大学 | Multilayer neural network electric system control method based on robust integral |
KR20210141090A (en) * | 2020-05-15 | 2021-11-23 | 연세대학교 산학협력단 | Artificial neural network system using phase change material |
-
2017
- 2017-01-18 KR KR1020170008872A patent/KR20180085422A/en unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324503A (en) * | 2018-08-28 | 2019-02-12 | 南京理工大学 | Multilayer neural network electric system control method based on robust integral |
KR20210141090A (en) * | 2020-05-15 | 2021-11-23 | 연세대학교 산학협력단 | Artificial neural network system using phase change material |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6995131B2 (en) | Method for forming resistance type processing unit array, resistance type processing unit array and hysteresis operation | |
US9779355B1 (en) | Back propagation gates and storage capacitor for neural networks | |
JP6477924B2 (en) | Memristor neuromorphological circuit and method for training memristor neuromorphological circuit | |
US20200053299A1 (en) | Image sensor with analog sample and hold circuit control for analog neural networks | |
US8959040B1 (en) | Spike timing dependent plasticity apparatus, system and method | |
US20200012924A1 (en) | Pipelining to improve neural network inference accuracy | |
Rosenthal et al. | A fully analog memristor-based neural network with online gradient training | |
JP6647429B2 (en) | Analog electronic neural network | |
US9721332B2 (en) | Spike domain convolution circuit | |
KR101965850B1 (en) | A stochastic implementation method of an activation function for an artificial neural network and a system including the same | |
Tang et al. | A multilayer neural network merging image preprocessing and pattern recognition by integrating diffusion and drift memristors | |
RoyChowdhury et al. | Dynamic tunneling technique for efficient training of multilayer perceptrons | |
Yeo et al. | Stochastic implementation of the activation function for artificial neural networks | |
KR20180085422A (en) | Sigmoid function circuit used in an artificial neural network | |
Bertuletti et al. | A multilayer neural accelerator with binary activations based on phase-change memory | |
Xue et al. | Hybrid neuromorphic hardware with sparing 2D synapse and CMOS neuron for character recognition | |
Tripathi et al. | Analog neuromorphic system based on multi input floating gate mos neuron model | |
US11574176B2 (en) | Artificial neural networks | |
Yanguas-Gil et al. | The insect brain as a model system for low power electronics and edge processing applications | |
Yeo et al. | A power and area efficient CMOS stochastic neuron for neural networks employing resistive crossbar array | |
Gi et al. | A ReRAM-based convolutional neural network accelerator using the analog layer normalization technique | |
James et al. | Inference dropouts in binary weighted analog memristive crossbar | |
Lu et al. | An on-chip BP learning neural network with ideal neuron characteristics and learning rate adaptation | |
Li et al. | A 0.7 v low-power fully programmable gaussian function generator for brain-inspired gaussian correlation associative memory | |
KR20180070196A (en) | Apparatus and method for recognizing an input information of neromorphic device |