KR102578124B1 - 신경망 장치의 정규화 장치 및 방법 - Google Patents

신경망 장치의 정규화 장치 및 방법 Download PDF

Info

Publication number
KR102578124B1
KR102578124B1 KR1020160172605A KR20160172605A KR102578124B1 KR 102578124 B1 KR102578124 B1 KR 102578124B1 KR 1020160172605 A KR1020160172605 A KR 1020160172605A KR 20160172605 A KR20160172605 A KR 20160172605A KR 102578124 B1 KR102578124 B1 KR 102578124B1
Authority
KR
South Korea
Prior art keywords
lines
signal
line
neural network
output
Prior art date
Application number
KR1020160172605A
Other languages
English (en)
Other versions
KR20180070194A (ko
Inventor
진영재
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020160172605A priority Critical patent/KR102578124B1/ko
Priority to TW106123959A priority patent/TW201824092A/zh
Priority to US15/655,101 priority patent/US10762416B2/en
Priority to CN201710946858.0A priority patent/CN108205705B/zh
Publication of KR20180070194A publication Critical patent/KR20180070194A/ko
Application granted granted Critical
Publication of KR102578124B1 publication Critical patent/KR102578124B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Image Analysis (AREA)
  • Semiconductor Memories (AREA)

Abstract

본 기술은 뉴로모픽 장치 및 동작 방법에 관한 것으로, 뉴로모픽 장치는 복수의 입력 신호들을 각각 대응되는 복수의 제1 라인들에 인가하는 입력부와, 상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 복수의 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호들을 생성하여 상기 복수의 제2 라인들 중 대응되는 제2 라인에 출력하는 연산부와, 상기 제1라인과 상기 메모리 소자들 사이에 연결되는 스위치들을 포함하며, 랜덤 신호에 의해 상기 스위치가 스위칭 제어되어 대응되는 메모리 소자에 인가되는 입력 신호의 연결을 해제하는 드롭 커넥트 제어부와, 상기 제2 라인에 연결되며, 상기 제2 라인의 신호들을 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 출력하는 출력부를 포함할 수 있다.

Description

신경망 장치의 정규화 장치 및 방법{APPARATUS AND METHOD FOR REGULARIZATING OF NEURAL NETWORK DEVICE}
본 발명은 드롭 커넥트 및/또는 드롭 아웃을 이용하여 신경망 장치의 정규화를 실행하는 장치 및 방법에 관한 것이다.
인간의 뇌에는 수천억 단위의 신경 세로로서 뉴런(neuron)이 있고, 이들은 복잡한 신경망을 이루고 있다. 뉴런은 수천 개 단위의 다른 뉴런과 시냅스(synapses)들을 통하여 신호를 주고 받음으로서 지적 능력을 발휘할 수 있다. 뉴런은 신경계의 구조적, 기능적 단위이며 정보 전달의 기본 단위가 될 수 있다. 시냅스는 뉴런 사이의 접합부가 될 수 있으며, 다른 뉴런과 시냅스로 접촉할 수 있다. 신경망 장치는 이런 신경망을 모사한 인공 신경계를 뉴런 수준으로 만들어지는 장치가 될 수 있다.
신경망 장치는 뉴런에 특정한 정보를 임의로 할당하고, 할당 정보를 해당하는 뉴런에 학습시키는 방법이 될 수 있다. 신경망 장치에서 뉴런은 다른 뉴런의 시냅스와 접촉되어 정보를 입력할 수 있으며, 또한 다른 뉴런의 입력 정보로 출력할 수 있다.
신경망 장치의 알고리듬은 복잡도가 높을 수 있다. 예를들면, 하나의 뉴런은 수많은 정보들을 입력할 수 있다. 입력된 정보들을 각각 대응되는 웨이트와 연산하는 동작을 수행할 수 있다. 따라서 신경망 장치의 복잡도를 개선하기 위하여 정규화(normalization) 및/또는 정제화(regularization)할 필요가 있다.
본 발명의 실시 예들은 신경망 장치의 연산을 정규화 및/또는 정제화할 수 있는 장치 및 방법을 제공할 수 있다.
본 발명의 실시예들은 멤리스터들을 이용하여 정보를 처리하는 신경망 장치에서 멤리스터에 입력되는 신호를 정규화(drop-connect)할 수 있는 장치 및 방법을 제공할 수 있다.
본 발명의 실시예들은 멤리스터들을 이용하여 정보를 처리하는 신경망 장치에서 멤리스터의 노드 출력을 드롭아웃할 수 있는 장치 및 방법을 제공할 수 있다.
본 발명의 실시예들은 멤리스터들을 이용하여 정보를 처리하는 신경망 장치에서 드롭 커넥트 및 드롭아웃 기능을 이용하여 정규화할 수 있는 장치 및 방법을 제공할 수 있다.
본 발명의 다양한 실시예들에 따른 신경망 장치는, 복수의 입력 신호들을 각각 대응되는 복수의 제1 라인들에 인가하는 입력부와, 상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 복수의 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호들을 생성하여 상기 복수의 제2 라인들 중 대응되는 제2 라인에 출력하는 연산부와, 상기 제1라인과 상기 메모리 소자들 사이에 연결되는 스위치들을 포함하며, 랜덤 신호에 의해 상기 스위치가 스위칭 제어되어 대응되는 메모리 소자에 인가되는 입력 신호의 연결을 해제하는 드롭 커넥트 제어부 및 상기 제2 라인에 연결되며, 상기 제2 라인의 신호들을 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 출력하는 출력부를 포함할 수 있다.
본 발명의 다양한 실시예들에 따른 신경망 장치는, 복수의 입력 신호들을 각각 대응되는 복수의 제1 라인들에 인가하는 입력부와, 상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 복수의 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호들을 생성하여 상기 복수의 제2 라인들 중 대응되는 제2 라인에 출력하는 연산부와, 상기 제1라인과 상기 메모리 소자들 사이에 연결되는 스위치들을 포함하며, 제1 랜덤 신호에 의해 상기 스위치가 스위칭 제어되어 대응되는 메모리 소자에 인가되는 입력 신호의 연결을 해제하는 드롭 커넥트 제어부와, 상기 제2 라인들에 연결되는 스위치들을 포함하며, 제2 랜덤 신호에 의해 적어도 하나의 상기 제2 라인의 신호를 드롭아웃하는 드롭아웃 제어부 및 상기 제2 라인에 연결되며, 상기 제2 라인의 신호들을 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 출력하는 출력부를 포함할 수 있다. .
본 발명의 다양한 실시예들에 따른 신경망 장치의 정규화 방법은, 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되고, 각각 웨이트 값에 대응되는 고유 저항값을 가지는 메모리 소자들의 상기 제1 라인들에 복수의 입력신호들을 인가하는 단계와, 제1 랜덤 신호에 의해 상기 제1라인들과 상기 메모리 소자들 사이에 연결되는 제1 스위치들 중에서 대응되는 일부의 제1스위치들이 스위칭 제어되어 상기 메모리 소자들에 인가되는 입력 신호들의 연결을 해제하는 드롭 커넥트 단계와, 상기 메모리 소자들에서 대응되는 상기 입력 신호와 저항 값에 의해 생성되는 전류신호들을 상기 제2라인들에서 합성하여 노드의 신호를 생성하는 단계 및 상기 제2 라인들의 신호들을 활성함수에 의해 활성화시켜 상기 입력신호로 궤환시키는 출력 단계를 포함할 수 있다.
본 발명의 다양한 실시예들에 따른 신경망 장치는: 복수의 제1 라인들에 각각 해당하는 입력 신호들을 인가하는 입력부; 상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호를 생성하여 상기 복수의 제2 라인들 중에 대응되는 제2라인에 출력하는 연산부; 랜덤 신호에 의해 선택되는 적어도 하나의 제2 라인의 신호를 드롭아웃하는 드롭아웃 제어부; 및 상기 제2 라인들에 연결되며, 각각 대응되는 제2 라인의 신호들을 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 출력하는 출력부를 포함한다.
본 발명의 다양한 실시예들에 따른 신경망 장치는: 복수의 제1 라인들의 신호들을 입력하는 입력부; 랜덤 신호에 의해 선택되는 적어도 하나의 제1라인의 신호를 드롭아웃하는 드롭아웃 제어부; 상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 메모리소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 각각 대응되는 입력 신호와 웨이트의 곱 신호를 생성하여 상기 복수의 제2 라인들 중 대응하는 제2 라인에 출력하는 연산부; 및 상기 제2 라인들에 연결되며, 대응되는 상기 제2 라인의 신호를 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 출력하는 출력부를 포함한다.
본 발명의 다양한 실시예들에 따른 신경망 장치의 정규화 방법은: 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되고, 각각 웨이트 값에 대응되는 고유 저항값을 가지는 메모리 소자들의 상기 제1 라인들에 복수의 입력신호들을 인가하는 단계; 상기 메모리 소자들에서 대응되는 상기 입력 신호와 저항 값에 의해 생성되는 전류신호들을 상기 제2라인들에서 합성하여 노드의 신호를 생성하는 단계; 상기 제2 라인들 중에서 랜덤 신호에 의해 선택되는 제2 라인의 신호를 드롭아웃하는 단계; 및 상기 제2 라인의 신호들을 활성함수에 의해 활성화시켜 상기 입력신호로 궤환시키는 출력 단계를 포함한다.
본 발명의 실시 예들에 따른, 메모리 소자(예; 멤리스터)를 기반으로 하는 신경망 장치에서 정보들의 일부를 드롭아웃하여 연산 동작을 정규화 및/또는 정제화할 수 있다.
도 1은 뉴런의 구조를 도시하는 도면이다.
도 2는 퍼셉트론(Perceptron) 구조를 도시하는 도면이다.
도 3은 다층 퍼셉트론(multi-layer Perceptron, MLP) 구조를 도시하는 도면이다.
도 4a 및 도 4b는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 정규화 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 다양한 실시예들에 따라 멤리스터들을 사용하는 신경망 장치에서 드롭 커넥트 기능을 구현하는 장치의 구성을 도시하는 도면이다.
도 6은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 7은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 8a - 도 8d는 본 발명의 다양한 실시예에 따른 신경망 장치에서 출력부의 동작을 설명하기 위한 도면이다.
도 9는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 출력신호를 궤환하여 다음 레이어로 입력하는 루프 동작을 설명하기 위한 도면이다.
도 10a 및 도 10b는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 랜덤신호 발생부의 구성을 도시하는 도면이다.
도 11은 본 발명의 다양한 실시예들에 따른 신경망 장치에서 정규화 동작을 수행하는 다른 실시예의 구성을 도시하는 도면이다.
도 12은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 13은 본 발명의 실시예에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 14는 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 15는 본 발명의 다양한 실시예들에 따른 도 14와 신경망 장치의 구성 예를 도시하는 도면이다.
도 16은 본 발명의 다양한 실시예들에 따른 다른 신경망 장치의 구성을 도시하는 도면이다.
도 17은 본 발명의 다양한 실시예들에 따른 도 16과 신경망 장치의 구성 예를 도시하는 도면이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.
이하, 도면들을 참조하여 본 발명의 실시 예들에 대해서 보다 구체적으로 설명하기로 한다.
도 1은 뉴런의 구조를 도시하는 도면이다.
도 1을 참조하면, 신경망 알고리듬(neural network algorithm)은 포유류 뇌를 수학적으로 모델링하여 만든 알고리듬이 될 수 있다. 포유류의 뇌는 수 많은 단위체가 그물처럼 얽혀서 이루어져 있으며, 이런 단위체는 도 1과 같은 구조를 가지는 뉴런이 될 수 있다. 뉴런에서 시냅스(101)는 다른 뉴런의 시냅스에 전기신호를 전달할 수 있다. 시냅스(101)이 전기신호를 전달하는 방법은 1:1 매칭이 아니라 N:N 매칭이 될 수 있다. 즉, 하나의 시냅스는 하나의 시냅스에 전기신호를 전달할 수 있으며, 또는 하나의 시냅스는 여러 개의 시냅스들에 전기신호를 전달할 수 있다.
도 2는 퍼셉트론(Perceptron) 구조를 도시하는 도면이며, 도 3은 다층 퍼셉트론(multi-layer Perceptron, MLP) 구조를 도시하는 도면이다.
도 2를 참조하면, 퍼셉트론은 뉴런 단위체를 모방한 수학 모델이 될 수 있으며, MLP는 퍼셉트론을 그물망으로 엮은 구조가 될 수 있다. 퍼셉트론 및 MLP는 신경망 회로의 기본 모델이 될 수 있다. 퍼셉트론(Perceptron)은 인간의 신경 세포인 뉴런을 계산 가능한 형태로 만든 알고리듬이 될 수 있다.
퍼셉트론은 복수의 입력들과 각 입력들에 대응되는 웨이트들을 각각 곱한 후, 곱셈 신호들을 가산(sum of product)한 결과 값을 생성할 수 있다. 도 2는 3개의 입력(x0 - x2)들과 이에 대응되는 3개의 웨이트(w0 - w2)들을 각각 곱하고, 가산기를 통해 곱 신호들을 가산(sum of product, vector multiplication)하는 구조의 예를 도시하고 있다. 도 2에서 b는 바이어스(bias)를 의미하며, 입력 데이터들의 활성화(activation) 여부를 결정하는 임계 값(threshold value)을 학습하는데 사용될 수 있다. 퍼셉트론은 선형 분리 가능(웨이트 합을 이용해 분리 가능) 문제를 해결할 수 있는 알고리듬이 될 수 있다. 도 2a와 같은 구조의 퍼셉트론은 선형 분리 기능을 수행할 수 있지만, 비선형 분리 기능을 수행할 수 없다.
퍼셉트론은 학습 벡터를 두 부류로 선형 분류하기 위한 선형 경계를 찾을 수 있다. 웨이트(weight)는 선형 경계의 방향성 또는 형태를 나타내는 값이 될 수 있다. 바이어스(bias)는 선형 경계의 절편을 나타내는 값이 될 수 있으며, 임계값은 어떤 값이 활성화되기 위한 최소값을 의미할 수 있다. 활성함수(activation function)은 SOP(sum of product)의 값을 특정 연산을 통해서 정규화하거나 트리거(trigger)를 하기 위해서 사용한다. 다양한 실시예들에 따르면, Sigmoid, step function, linear, ReLu 등의 함수가 활성 함수로서 사용될 수 있다. 각각의 함수는 SOP를 활성화시키며, 각각의 값은 함수마다 다르다. MLP에서는 다른 형태의 활성함수를 사용할 수 있다. 즉, 뉴런은 인경 신경망을 구성하는 가장 작은 단위체로서, SOP가 임계값보다 크면 활성화되면서 1을 출력하고 작으면 비활성화되면서 0을 출력할 수 있다. 도 2와 같은 퍼셉트론(single layer Perceptron)는 입력층(input layer)와 출력층(output layer)로 구성될 수 있다. 입력층은 학습 벡터 또는 입력 벡터가 입력되는 계층이 될 수 있다. 입력층의 데이터는 출력층 뉴런으로 전달되어 활성함수에 따른 값으로 출력될 수 있다.
도 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 매칭의 전기 신호들을 인가할 수 있다.
입력층은 받은 값을 그대로 은닉층에 전달할 수 있다. 은닉층은 다수의 노드(예를들면 도 2b에서 a0 - a2)들을 포함할 수 있으며, 각 노드는 다수의 입력신호들을 각각 웨이트들과 곱한 후, 곱신호들을 가산하는 신호 SOP를 출력할 수 있다. 은닉층은 합 계산 + 활성함수 계산을 수행하여 출력층에 전달할 수 있다. 출력층은 합계산 + 활성함수 계산을 수행하여 출력 신호를 발생할 수 있다. 즉, MLP의 원리는 왼쪽에서 출발하여 오른쪽으로만 진행하는 전방향 계산(forward computation)을 수행하며, 각 층(은닉층 및 출력층)은 웨이트 합 계산 및 활성함수 계산을 수행할 수 있다. 웨이트 합 계산은 입력층 또는 은닉층의 마디들을 결합하는 형태가 될 수 있다. 활성함수는 비선형 함수(시그모이드 함수)로서, 입력 변수 또는 은닉 마디의 결합을 변환하는 함수가 될 수 있다. 신경망 알고리듬의 복잡도는 매우 높을 수 있다. 이런 경우, 신경망은 오버피팅(overfitting)되어 연산 시간이 길어질 수 있다. 신경망 장치는 정규화 기법을 사용하여 신경망 장치의 복잡도를 해결할 수 있다. 신경망 장치의 정규화 방법은 드롭 커넥트(drop-connect) 및/또는 드롭아웃(dropout) 방법이 될 수 있다.
도 4a 및 도 4b는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 정규화(regulization, pruning) 방법을 설명하기 위한 도면이다. 도 4a는 드롭 커넥트 방법을 사용하여 정규화 기능을 수행하는 신경망 장치의 구조를 도시하는 도면이다. 도 4b는 드롭 아웃 방법을 사용하여 정규화 기능을 수행하는 신경망 장치의 구조를 도시하는 도면이다.
도 4a를 참조하면, 드롭커넥트는 은닉층의 노드에 인가되는 입력신호의 연결을 해제(drop-connect, pruning)하는 방법이 될 수 있다. 드롭 커넥트는 한 계층에서 다음 계층으로 가중치가 곱해져서 전달될 때, 일부의 값들의 인가되지 않도록 하는 방법이 될 수 있다. 도 4a에서 노드 x0(411) - x2(415)에서 출력되는 이전 계층(layer)의 노드 출력이 될 수 있다. 노드 a0(451) - a2(452)는 현재 노드가 될 수 있다. 도 4a는 노드 x0(411) - x(415)의 출력신호들 중에서 신호431, 433, 435들이 드롭 커넥트되는 예를 도시하고 있다.
도 4b를 참조하면, 드롭아웃(drop out) 또는 프루닝(pruning)은 한 계층의 노드들 중의 일부 노드들이 동작하지 않도록 하는 것을 의미할 수 있다. 즉, 드롭아웃은 이전 계층의 값을 받지 않으며, 다음 계층으로도 값을 넘기지 않는 동작을 의미할 수 있다. 드롭아웃은 트레이닝 예제(training example)에 대하여 무작위로 설정된 비율의 은닉 노드들을 제거하는 방법이고, 프루닝은 테스트 예제에 대하여 무작위로 설정된 비율의 은닉 노드들을 제거하는 방법이 될 수 있다. 이 2가지의 드롭아웃과 프루닝 방법은 동작상 차이가 없기 때문에 하나의 하드웨어로 2가지 기능 모두를 구현할 수 있다. 도 4b는 a0 노드(451) 및 a2 노드(455)가 드롭아웃되는 예를 도시하고 있다. 예를 들면, 멤리스터(예; ReRAM) 셀 어레이들을 이용하여 신경망 장치를 구현하는 경우, x0 - x2는 제1 라인에 입력되는 신호들이 될 수 있으며, 노드 a0 - a2는 제2 라인에 연결되는 멤리스터 셀들이 될 수 있다. 이런 경우, 도 4b와 같은 드롭아웃은 제2 라인들 중의 적어도 하나의 라인의 SOP를 드롭아웃하는 예가 될 수 있다. 드롭 아웃은 하나의 레이어만 드롭아웃하는 것 보다 모든 레이어들에 대하여 드롭아웃을 수행하고, 0.1 이나 0.9와 같이 극단적인 확률 보다 0.5의확률로 드롭 아웃하고, 입력은 0.5보다 더 많은 노드들을 남기는 방법으로 수행할 수 있다.
도 5는 본 발명의 다양한 실시예들에 따라 멤리스터들을 사용하는 신경망 장치에서 드롭 커넥트 기능을 구현하는 장치의 구성을 도시하는 도면이다. 도 5를 참조하면, 입력부(510)는 입력신호 또는 연산된 신호를 입력할 수 있다. 예를들면, 입력부(510)는 최초 동작시 외부의 입력신호를 수신할 수 있으며, 연산 구간에서는 출력부(540)에서 출력되는 연산신호를 수신할 수 있다. 입력부(510)은 입력 신호를 제1 라인에 인가할 수 있다.
연산부(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는 노드 출력이 될 수 있다.
정규화 제어부(520)는 연산부(530)의 특정 멤리스터에 인가되는 입력신호의 연결을 해제(drop-connect)시킬 수 있다. 예를들면, 정규화 제어부(520)은 제1 라인과 각 멤리스터들의 입력단 사이에 위치되는 스위치들과, 랜덤 신호 발생부를 포함할 수 있다. 정규화 제어부(520)는 랜덤 신호에 의해 선택되는 스위치들을 제어하여 대응되는 멤리스터에 인가되는 입력신호의 연결을 해제시킬 수 있다.
출력부(540)은 드롭아웃 제어부(520)에서 출력되는 연산부(530)의 노드 신호들을 임계치에 기반하여 활성화 여부를 결정하여 출력신호를 발생할 수 있다.
도 5에 도시된 신경망 장치에서 연산부(530)는 멤리스터에 기반하여 노드들의 SOP신호를 생성할 수 있으며, 정규화 제어부(520)는 연산부(530)에 입력되는 신호를랜덤신호에 의해 제어하여 드롭 커넥트 기능을 수행할 수 있다.
SRAM 기반의 시냅스 소자를 이용한 경우는 집적도 개선 및 아날로그 정보 저장에 어려움이 있을 수 있다. ReRAM은 소자 구조가 간단하고, 많은 정보를 저장할 수 있으며, 이로인해 ReRAM 기반의 시냅스에 대한 연구가 활발히 진행되고 있다. ReRAM은 저항을 이용한 메모리이다. ReRAM은 제1 라인과 제2 라인 사이에 교차 위치되는 셀들의 어레이들이 될 수 있으며, 셀은 저항 소자(resistance charging element)를 포함할 수 있다. 저항 소자의 저항 R 값은 웨이트 값이 될 수 있다.
연산부(530)는 멤리스터(예; ReRAM) 셀 어레이의 구성을 가질 수 있다. MLP를 구성할 때, 각 노드들은 복수의 제1 라인들 통해 신호를 입력하고, 하나의 제2 라인들을 통해 SOP를 생성하여 출력할 수 있다. 즉, 노드의 구성은 복수의 제1 라인들과 하나의 제1 라인에 교차 연결되는 복수의 멤리스터(예; ReRAM) 셀 어레이들이 될 수 있다. 이때 하나의 제2 라인들에 연결되는 멤리스터 셀 어레이의 저항소자(530)의 저항 값은 각각 다른 값(웨이트 값)으로 설정될 수 있다.
도 6은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 6을 참조하면, 입력부(510)는 최초 외부에서 입력되는 제1 입력신호 Vin을 제1 라인 L11 - L1N에 인가할 수 있으며, 연산 구간에서는 출력부(540)에서 궤환 입력되는 신호 Vout를 제1 라인 L11 - L1n에 제2 입력신호로 인가할 수 있다.
연산부(530)은 제1 라인 L11 - L1n과 제2 라인 L21 - L2n 사이에 교차 연결되는 N*N 멤리스터(예; ReRAM) 셀 R11 - Rnn들을 - 포함할 수 있다. 멤리스터 셀 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로 출력될 수 있다.
정규화 제어부(520)는 제1 입력라인 L11 - L1n들과 각각 대응되는 멤리스터(R11 - Rnn) 사이에 연결되는 스위치(S11 - Snn)들과, 스위치(S11 - Snn)들의 온/오프를 제어하기 위한 선택신호 Sel11 - Selnn을 발생하는 랜덤신호 발생부(630)을 포함할 수 있다. 랜덤 신호 발생부(635)는 스위치(S11 - Snn)들의 스위칭을 제어하여 입력신호들 중에서 일정 비율(예를들면 50%)의 입력신호들이 연산되지 않도록 제어할 수 있다.
출력부(540)는 변환부(640) 및 활성화부(645)를 포함할 수 있다. 변환부(640)는 스위치부(530)에서 출력되는 노드들의 SOP를 입력할 수 있다. 이때의 SOP는 전류 신호가 될 수 있다. 변환부(640)는 전류 신호를 전압으로 변환할 수 있다. 활성화부(645)는 설정된 임계값에 의해 변환부(640)에서 출력되는 노드의 SOP를 활성화 또는 비활성화시킬 수 있다. 상기 출력부(540)는 설정된 연산 구간에서 출력 신호를 입력부(510)의 제2 입력신호 Vout로 인가할 수 있으며, 연산이 종료되는 시점에서 출력될 수 있다.
도 7은 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 7을 참조하면, 선택기(711, 713)는 도 5의 입력부(510)의 구성이 될 수 있으며, 멤리스터(731 - 734)는 도 5의 연산부(530)의 구성이 될 수 있으며, 랜덤신호 발생부(725) 및 스위치(721 - 724)는 도 5의 정규화 제어부(520)의 구성이 될 수 있으며, 변환기(741, 743) 및 비교기(745, 747)는 도 5의 출력부(540)의 구성이 될 수 있다.
도 7에 도시된 연산부(예를들면 도 5의 연산부(530))는 하나의 노드가 2개의 멤리스터들을 포함된 예를 도시하고 있다. 멤리스터 (731 - 734)들은 각각 고유의 저항값을 가지며, 입력신호 및 저항 값에 기반하는 전류 신호를 생성할 수 있다. 멤리스터(731 - 734)에서 생성되는 전류(즉, 입력신호 및 웨이트의 곱 신호)는 대응되는 제2 라인에 인가할 수 있으며, 제2 라인에서 해당 노드들의 전류신호들이 합성되어 SOP로 생성될 수 있다. 예를들면, 도 7에서 제1 노드의 연산부는 각각 R1 및 R2의 저항 값을 가지는 멤리스터(731, 732)들 포함할 수 있으며, 제2 노드의 연산부는 각각 R3 및 R4 저항 값을 가지는 멤리스터(733, 734)를 포함할 수 있다.
본 발명의 다양한 실시예에 따른 신경망 장치는 멤리스터 소자를 이용하여 하드웨어 모델링을 할 수 있다. 도 7에서 멤리스터(731 및 732)는 제1 노드의 연산부 구성이 될 수 있으며, 멤리스터 (733 및 734)는 제2 노드의 연산부 구성이 될 수 있다. 선택기(711)는 Vin1 또는 Vout1들 중의 하나를 입력신호로 선택하여 라인 L11에 인가할 수 있으며, 선택기(713)는 Vin2 또는 Vout2들 중의 하나를 입력신호로 선택하여 라인 L12에 인가할 수 있다. 여기서 라인 L11 및 L12는 입력신호가 인가되는 제1 라인이 될 수 있다.
제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) 값에 대응될 수 있으며, 멤리스터들을 각각 고유의 저항 값으로 설정될 수 있다.
따라서 멤리스터(731 및 732)는 각각 대응되는 입력신호들에 웨이트 값(각각 설정된 고유의 저항값)을 곱하여 라인 L21에 출력할 수 있다. 이런 경우 라인 L21에 인가되는 제1 노드의 합성 전류를 하기 <수학식 1>과 같이 표시할 수 있다.
<수학식 1>에서 I1은 라인 21에서 생성되는 제1 노드의 SOP에 대응되는 전류 값이 될 수 있으며, Vin1 및 Vin은 입력신호, G1 및 G2는 각각 멤리스터(731 및 732) 저항 R1 및 R2에 기반하는 웨이트 값이 될 수 있다. 이와 같은 방법으로 제2 노드의 SOP인 I2를 생성할 수 있다. 본 발명의 다양한 실시예들에 따른 신경망 장치는 신경망 알고리듬의 기본 동작은 SOP를 멤리스터에 기반하여 생성할 수 있다.
멤리스터에서 생성되는 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)에 의해 결정될 수 있다.
도 8a - 도 8d는 본 발명의 다양한 실시예에 따른 신경망 장치에서 출력부의 동작을 설명하기 위한 도면이다.
도 8a - 도 8d를 참조하면, 활성화부는 도 8a와 같은 비교기를 이용하여 구성할 수 있다. 도 8b는 비교기의 동작 특성을 도시하고 있다. 비교기는 다음과 같은 출력 특성을 가질 수 있다.
Figure 112016123695951-pat00002
도 8b와 같은 비교기의 특성은 도 8c와 같은 시그모이드 함수(Sigmoid function)과 유사한 특성을 가질 수 있다. 신경망 장치는 입력 변호를 결합하는 합성 함수(combination function)과 입력 신호를 결합하여 변형하는 활성 함수(activation function)을 사용할 수 있다. 합성 함수는 입력신호를 하나의 정보로 만들기 위한 함수로써, 웨이트 데이터가 될 수 있다. 이때 활성 함수는 입력 신호의 합성값(예를들면 SOP)을 출력층 또는 은닉층에 전달하는 함수로써, SOP를 일정 범위의 값으로 전환해줄 수 있는 함수가 될 수 있다. 시그모이드 함수(Sigmoid function)는 활성 함수로 가장 많이 사용되는 함수가 될 수 있다. 시그모이드 함수는 출력 값들이 0에 가까울 때 선형 함수(linear function)에 매우 근사하게 되는 특성을 가질 수 있다. 신경망 장치에서 비교기(745 및 747)dml +VCC를 충분히 크게 잡고, -VCC를 0으로 설정하면, 도 8d에 도시된 바와 같이 활성 함수(ReLU activation function)과 유사함을 알 수 있다. 비교기의 운용에 따라 여러가지 활성함수를 구현할 수 있다.
비교기(745)에서 출력되는 출력신호 Vout1는 하기 <수학식 3>과 같이 표현할 수 있다. 그리고 하기 <수학식 3>과 같은 방법으로 출력신호 Vout2도 구할 수 있다.
비교기(745 및 747)에 출력되는 출력전압 Vout1 및 Vout2는 입력부인 선택기(711 및 713)의 제2 입력신호로 인가될 수 있다. 신경망 장치 연산 동작을 수행하는 시점에서는 외부로부터 입력되는 제1 입력신호 Vin 를 선택할 수 있으며, 이후 연산 구간에서는 연산된 신호인 제2 입력신호 Vout를 선택할 수 있다. 따라서 연산부는 제1 입력신호 Vin에 기반하여 연산동작을 수행할 수 있으며, 이후에는 출력신호인 제2 입력신호 Vout에 기반하여 연산동작을 수행할 수 있다. 그리고 설정된 횟수의 연산 동작을 수행하면 연산된 최종 출력신호를 발생할 수 있다.
도 9는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 출력신호를 궤환하여 다음 레이어로 입력하는 루프(loop) 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 최초 입력 Vin에 따른 신경망 장치의 첫번째 루프 (1st loop, 1st layer)의 출력은 하기 <수학식 4>와 같이 나타낼 수 있다.
따라서 신경망 장치의 출력 Vout은 하기 <수학식 5>와 표현할 수 있다.
이후 <수학식 4>와 같이 과정에서 생성된 출력신호 Vout1 및 Vout2을 입력으로 하는 신경망 장치의 두번째 루프(2nd loop, 2nd layer)의 출력은 하기 <수학식 6>과 같이 신경망 장치의 출력을 구할 수 있다.
상기 <수학식 4> 및 <수학식 6>에 도시된 바와 같이, 신경망 장치는 입력되는 신호들에 기반하여 SOP를 생성하고, 생성된 SOP를 활성화 여부를 판단하여 출력신호를 생성할 수 있다. 신경망 장치의 출력신호는 하기 <수학식 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)에 인가되는 입력신호의 연결을 해제시킬 수 있다.
랜덤신호 발생부(735)는 입력되는 신호들의 일부 신호들의 연결을 해제시킬 수있는 스위치 제어신호를 발생할 수 있다. 도 10a 및 도 10b는 본 발명의 다양한 실시예들에 따른 신경망 장치에서 랜덤신호 발생부의 구성을 도시하는 도면이다.
도 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%가 되도록 랜덤 신호를 발생할 수 있다.
도 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은 신경망 장치의 첫번째 레이어의 다른 노드 출력이 될 수 있다.
신경망 장치는 드롭커넥트(또는 pruning) 기능을 통해 알고리듬의 성능을 향상시킬 수 있다. 드롭 커넥트는 연산부에 입력되는 신호들 중의 일부는 0로 만드는 것이 될 수 있다. 본 발명의 다양한 실시예들에 따른 신경망 장치의 드롭 커넥트는 연산부(530)을 구성하는 멤리스터들의 일부에 입력되는 신호들을 0로 만드는 방법(입력신호의 연결을 해제하는 방법)을 사용할 수 있다. 입력신호들의 선택은 랜덤신호 발생부(725)에 의해 결정될 수 있다. 랜덤신호 발생부(725)는 도 10a 또는 도 10b와 같은 구성을 가지는 N 비트 피보나치 LFSR로 구현할 수 있다. 랜덤신호 발생부(725)에서 생성되는 스위치 제어신호는 스위치(721 및 723)에 인가되어 전압비교기(741 및 743)에 인가되는 노드 L21 및 L22의 SOP를 드롭 아웃시킬 수 있다. 전압비교기(741 및 743)는 입력이 0로 인가되면, 해당 노드의 출력을 드롭아웃시킬 수 있다.
현재 레이어(예를들면, 첫번째 레이어)의 출력을 다음 레이어(예를들면 두번째 레이어)의 입력으로 인가하기 위하여, 전압변환기(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 활성함수로 나타낼 수 있으며, 시그모이드 함수로 나타낼 수도 있다.
비교기(745 및 747)에서 출력되는 출력 전압 Vout1 및 Vout2는 다음 레이어의 입력신호가 될 수 있으며, 입력부(예를들면 도 4의 입력부(510))에 제2 입력신호로 인가될 수 있다. 그러면 입력부는 제2 입력신호를 선택하여 연산부의 제1 라인에 인가할 수 있다. 신경망 장치는 위와 같은 동작을 설정된 횟수만큼 반복 수행할 수 있으며, 설정된 횟수에 도달하면 최종 출력신호 Vout를 외부로 출력할 수 있다.
도 11은 본 발명의 다양한 실시예들에 따른 신경망 장치에서 정규화 동작을 수행하는 다른 실시예의 구성을 도시하는 도면이다.
도 11을 참조하면, 입력부(1110)는 입력신호 또는 연산된 신호를 입력할 수 있다. 예를들면, 입력부(1110)는 최초 동작시 외부의 입력신호를 수신할 수 있으며, 연산 구간에서는 출력부(1150)에서 출력되는 신호를 수신할 수 있다. 입력부(510)은 입력 신호를 제1 라인에 인가할 수 있다.
연산부(1130)는 입력신호들과 대응되는 웨이트들을 곱한 후 가산하는 다수의 노드들을 포함할 수 있다. 연산부(1130)는 멤리스터(예; ReRAM, resistance random access memory)를 사용할 수 있다. 연산부(1130)의 각 노드들은 복수의 입력신호들과 입력신호들에 대응되는 웨이트들의 곱 신호들을 발생한 후 가산된 신호 SOP들을 출력할 수 있다. 연산부(1130)은 제1 라인들과 제2 라인들에 교차 연결되는 복수의 멤리스터들을 포함할 수 있다.
제1 정규화 제어부(1120)는 연산부(530)의 특정 멤리스터에 인가되는 입력신호의 연결을 해제(drop-connect)시킬 수 있다. 예를들면, 제1 정규화 제어부(520)은 제1 라인과 각 멤리스터들의 입력단 사이에 위치되는 스위치들과, 제1 랜덤 신호 발생부를 포함할 수 있다. 제1 정규화 제어부(1120)는 랜덤 신호에 의해 선택되는 스위치들을 제어하여 대응되는 멤리스터에 인가되는 입력신호의 연결을 해제시킬 수 있다.
제2 정규화 제어부(1140)는 랜덤 제어신호에 의해 연산부(1130)의 복수 노드 신호들 중의 일부 노드 신호들을 드롭아웃시킬 수 있다. 예를들면, 제2 정규화 제어부(1140)는 제2 라인들에 연결되는 스위치들과 제2 랜덤 신호 발생부를 포함할 수 있다. 제1 정규화 제어부(1140)는 랜덤 신호에 의해 선택되는 특정 제2 라인의 신호를 드롭아웃 시킬 수 있다.
출력부(11500)은 연산부(1130)의 노드 신호들을 임계치에 기반하여 활성화 여부를 결정하여 출력신호를 발생할 수 있다.
도 11에 도시된 신경망 장치에서 연산부(1130)는 멤리스터에 기반하여 노드들의 SOP신호를 생성할 수 있으며, 제1 정규화 제어부(1120)는 연산부(1130)에 입력되는 신호를 제1 랜덤신호에 의해 드롭 커넥트시킬 수 있으며, 제2 정규화 제어부(1140)는 연산부(11130)에서 출력되는 노드 신호를 제2 랜덤신호에 의해 드롭 아웃 시킬 수 있다.
도 12는 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 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에 도시된 연산부(예를들면 도 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)를 포함할 수 있다.
선택기(1211)는 Vin1 또는 Vout1들 중의 하나를 입력신호로 선택하여 라인 L11에 인가할 수 있으며, 선택기(1213)는 Vin2 또는 Vout2들 중의 하나를 입력신호로 선택하여 라인 L12에 인가할 수 있다. 여기서 라인 L11 및 L12는 입력신호가 인가되는 제1 라인이 될 수 있다.
제1 노드의 연산부 구성을 살펴보면, 멤리스터(1231)는 라인 L11 및 라인 L21에 교차 위치되며, 저항 R1 값을 가질 수 있다. 멤리스터(1231)는 입력신호(Vin1 또는 Vout1)와 저항 R1에 기반하는 전류 신호를 생성할 수 있으며, 라인 L21에 인가할 수 있다. 멤리스터(1232)는 라인 L12 및 라인 L21에 교차 위치되며, 저항 R2 값을 가질 수 있다. 멤리스터(1232)는 입력신호(Vin2 또는 Vout2)와 저항 R2에 기반하는 전류 신호를 생성할 수 있으며, 라인 L21에 인가할 수 있다.
제2 노드의 연산부 구성을 살펴보면, 멤리스터(1233)는 라인 L11 및 라인 L22에 교차 위치되며, 저항 R3 값을 가질 수 있다. 멤리스터(1233)는 입력신호(Vin1 또는 Vout1)와 저항 R3에 기반하는 전류 신호를 생성할 수 있으며, 라인 L22에 인가할 수 있다. 멤리스터(1224)는 라인 L12 및 라인 L22에 교차 위치되며, 저항 R4 값을 가질 수 있다. 멤리스터(1234)는 입력신호(Vin2 또는 Vout2)와 저항 R4에 기반하는 전류 신호를 생성할 수 있으며, 라인 L23 인가할 수 있다. 여기서 저항 R1 - R4는 웨이트(G=1/R) 값에 대응될 수 있으며, 멤리스터들을 각각 고유의 저항 값으로 설정될 수 있다.
본 발명의 다양한 실시예들에 따른 신경망 장치는 정규화 및/또는 정제화 기능을 가질 수 있다. 정규화 및/또는 정제화 방법은 드롭커넥트 및 드롭 아웃이 될 수 있다. 드롭커넥트는 도 4a에 도시된 바와 같이 멤리스터들에 인가되는 입력신호의 연결을 해제(drop-connect)시키는 방법이 될 수 있다. 드롭아웃은 도 4b에 도시된 바와 같이 연산부(1120)에서 출력되는 노드들의 출력을 드롭아웃시킬 수 있다.
도 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에서 드롭 아웃은 연산부(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)의 입력으로 인가될 수 있다.
또한 스위치(1243)는 라인 L22와 전압변환기(1253) 사이에 연결되는 제1 트랜지스터 T3과, 라인 L22과 접지단 사이에 연결되는 제2 트랜지스터T4를 포함할 수 있다. 스위치(1243)는 제2 노드의 SOP를 드롭아웃시킬 수 있다. 스위치(1243)는 스위치(124)의 동작과 동일한 방법으로 동작될 수 있다.
제2 랜덤신호 발생부(1245)는 노드들 중 일부 노드들의 출력신호를 드롭아웃시키기 위한 스위치 제어신호를 발생할 수 있다. 제1 랜덤 신호 발생부(1225) 및 제2 랜덤 신호 발생부(1245)는 도 10a 및 도 10b와 같은 구성을 가지는 N비트 피보나치 LFSR을 사용할 수 있다.
도 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)이 될 수 있다.
신경망 장치의 제1 정규화 제어부(1120)는 연산부(1130)에 입력되는 신호들 중의 일부를 0로 만들어 드롭 커넥트 기능을 수행할 수 있다. 입력신호들의 선택은 제1 랜덤신호 발생부(1225)에 의해 결정될 수 있다. 제1 랜덤신호 발생부(1225)에서 생성되는 스위치 제어신호 sel1 - sel4는 각각 스위치(1221 - 1224)에 인가되어 멤리스터(1231 - 1234)에 인가되는 입력신호를 0로 만들 수 있다(drop-connect). 드롭 커넥트에 의해 입력신호가 해제되면, 대응되는 멤리스터는 해당 입력에 대한 연산 동작을 수행하지 않게 되며, 이로인해 연산 시간을 줄일 수 있게 된다.
신경망 장치의 제2 정규화 제어부(1140)는 연산부(1130)에 출력되는 SOP 신호들 중의 일부를 0로 만들어 드롭 아웃 기능을 수행할 수 있다. 드롭아웃할 노드의 선택은 제2 랜덤신호 발생부(1245)에 의해 결정될 수 있다. 제2 랜덤신호 발생부(1245)에서 생성되는 스위치 제어신호는 각각 스위치(1241, 1243)에 인가되어 전압비교기(1251 및 1253)에 인가되는 노드 L21 및 L22의 SOP를 드롭 아웃시킬 수 있다. 전압비교기(1251 및 1253)는 입력이 0로 인가되면, 해당 노드의 출력을 드롭아웃시킬 수 있다. 특정 노드의 출력이 드롭아웃되면, 다음 레이어의 연산 동작에서 특정 노드의 출력 신호에 대한 연산 동작을 수행하지 않게 되며, 이로인해 연산 시간을 줄일 수 있다.
현재 레이어(예를들면, 첫번째 레이어)의 출력을 다음 레이어(예를들면 두번째 레이어)의 입력으로 인가하기 위하여, 전압변환기(1251 및 1253)은 각각 전류 I1과 전류 I2를 전압으로 변환할 수 있다. 이때 전압 변환기(1251 및 1253)는 전류를 전압으로 변환하는 OP amp를 이용하여 구성할 수 있다. 전압 변환부(1251 및 1253)의 출력은 비교기(1255 및 1257)의 비교 입력으로 인가될 수 있다. 비교기(1255 및 1257)의 Vref는 적정한 값으로 설정될 수 있다. 비교기(1235 및 1237)는 설정에 따라 Relu 활성함수로 나타낼 수 있으며, 시그모이드 함수로 나타낼 수도 있다.
비교기(1255 및1257)에서 출력되는 출력 전압 Vout1 및 Vout2는 다음 레이어의 입력신호가 될 수 있으며, 입력부(예를들면 도 11의 입력부(1110))에 제2 입력신호로 인가될 수 있다. 그러면 입력부(1110)는 제2 입력신호를 선택하여 연산부(1230)의 제1 라인에 인가할 수 있다. 신경망 장치는 위와 같은 동작을 설정된 횟수만큼 반복 수행할 수 있으며, 설정된 횟수에 도달하면 최종 출력신호 Vout를 외부로 출력할 수 있다.
도 12에서 드롭 아웃은 연산부(1130)의 출력단에 위치되어 선택되는 노드의 출력을 드롭아웃시키는 예를 도시하고 있다. 이때 입력부(1110)의 특정 선택기(또는 특정 제1 라인)과 연산부(1130) 사이에 스위치를 연결하고, 제2 랜덤신호발생부(1245)에 의해 스위치를 제어하는 구성으로 구현할 수도 있다. 즉, 선택부(1110)에서 특정 제1 라인에 인가하는 신호는 이전 레이어에서 특정 노드의 출력이 될 수 있다. 따라서 제1 라인들에 인가되는 입력신호들 중에서 특정 제1 라인의 입력신호의 연결을 해제하여도 드롭아웃 동작과 동일한 효과를 얻을 수 있다.
도 11 및 도 12와 같은 구성을 가지는 신경망 장치는 드롭 커넥트 또는 드롭 아웃 중의 한가지를 선택하여 정규화 동작을 수행할 수 있다. 즉, 도시하지 않은 신경망 장치의 제어부는 신경망 장치를 구동할 때 드롭 커넥트 또는 드롭 아웃 기능을 선택할 수 있다. 드롭 커넥트 기능이 선택된 경우, 신경망 장치는 제1 정규화 제어부(1120)이 활성화되고 제2 정규화 제어부(1140)이 비활성화되어 연산부(1130)에 인가되는 입력신호의 연결을 해제(drop-connect)시킬 수 있다. 또한 드롭 아웃 기능이 선택된 경우, 신경망 장치는 제2 정규화 제어부(1140)이 활성화되고 제1 정규화 제어부(1120)이 비활성화되어 연산부(1130)에서 출력되는 노드의 출력(SOP신호)을 드롭아웃시킬 수 있다. 또한 도시하지 않은 제어부는 신경망 장치의 드롭 커넥트 및 드롭아웃 기능을 모두 선택할 수 있다. 이런 경우, 신경망 장치는 제1 정규화 제어부(1120) 및 제2 정규화 제어부(1140)이 모두 활성화되어 드롭 커넥트 및 드롭 아웃 동작을 수행할 수 있다.
본 발명의 다양한 실시예들에 따른 신경망 장치의 정규화 방법은, 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되고, 각각 웨이트 값에 대응되는 고유 저항값을 가지는 멤리스터 소자들의 상기 제1 라인들에 복수의 입력신호들을 인가하는 단계와, 제1 랜덤 신호에 의해 상기 제1라인과 상기 제2 메모리 소자들 사이에 연결되는 제1 스위치들 중에서 대응되는 일부의 제1스위치들이 스위칭 제어되어 상기 메모리 소자에 인가되는 입력 신호들의 연결을 해제하는 드롭 커넥트 단계와, 상기 멤리스터 소자들에서 대응되는 상기 입력 신호와 저항 값에 의해 생성되는 전류신호들을 상기 제2라인들에서 합성하여 노드의 SOP(sum of product) 신호를 생성하는 단계 및 제2 라인의 신호들을 활성함수에 의해 활성화시켜 상기 입력신호로 궤환시키는 출력 단계를 포함할 수 있다.
신경망 장치의 정규화 방법에서 SOP를 생성하는 단계는, 복수의 제1 라인들과 복수의 제2 라인들에 교차 연결되며, 고유의 저항 값들을 가지는 멤리스터들에서 저항값에 기반하여 입력신호와 웨이트의 곱에 대응되는 전류를 생성하는 단계 및 상기 제2 라인에 연결된 멤리스터들에서 생성되는 전류들을 합성하여 해당 노드의 SOP를 생성하는 단계를 포함할 수 있다.
신경망 장치의 정규화 방법에서 드롭커넥트 단계는, 상기 멤리스터들에 인가되는 입력신호들 중에서 50%의 입력신호들의 연결을 해제할 수 있다.
신경망 장치의 정규화 방법에서, 출력 단계는, 상기 제2 라인에 연결되어 전류를 전압으로 변환하는 단계 및 설정된 바이어스 전압에 의해 상기 변환부의 출력신호의 활성 여부를 결정하는 단계를 포함할 수 있다. 활성 여부를 결정하는 단계는, 변환된 전압신호와 설정된 기준전압을 비교하여 활성 여부를 결정할 수 있다.
본 발명의 다양한 실시예들에 따른 신경망장치의 정규화 방법은, 제2 랜덤 신호에 의해 상기 제2 라인들과 출력부 사이에 연결되는 제2 스위치들 중에서 대응되는 방 일부의 제2 스위치들이 스위칭 제어되어 상기 출력부에 인가되는 SOP를 드롭아웃하는 단계를 더 포함할 수 있다.
도 13은 본 발명의 실시예에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 13을 참조하면, 입력부(1310)는 입력신호 또는 연산된 신호를 입력할 수 있다. 예를들면, 입력부(1310)는 최초 동작시 외부의 입력신호를 수신할 수 있으며, 연산 구간에서는 출력부(1340)에서 출력되는 연산신호를 수신할 수 있다. 입력부(1310)은 입력 신호를 제1 라인에 인가할 수 있다.
연산부(1320)는 입력신호들과 대응되는 웨이트들을 곱한 후 가산하는 다수의 노드들을 포함할 수 있다. 연산부(1320)는 멤리스터(memristor)를 사용할 수 있다. 멤리스터는 ReRAM(resistive random access memory), PCRAM(phase change RAM), MRAM(magnetoresistive RAM) 등 전하와 자속과의 결합에 관련된 비선형 수동, 두 단자의 전기적 구성요소로 된 메모리 소자를 의미한다. 연산부(1320)의 각 노드들은 복수의 입력신호들과 입력신호들에 대응되는 웨이트들의 곱 신호들을 발생한 후 가산된 신호들을 출력할 수 있다. 멤리스터를 사용하는 경우, 입력신호와 웨이트의 곱은 전류 값으로 나타날 수 있으며, SOP 신호는 전류 값의 합으로 나타날 수 있다. 예를들면, 연산부(1320)는 제1 라인들과 제2 라인들 사이에 교차 위치되는 복수의 멤리스터들을 포함할 수 있다. 또한 제2 라인에 연결되는 멤리스터들은 각각 입력신호에 대응되는 웨이트 값을 곱한 신호들을 대응되는 제2 라인에 인가하며, 멤리스터들의 곱 신호들은 제2 라인에서 합성되어 SOP(sum of product, SOP)로 발생될 수 있다. 예를들면, 각 제2 메모리의 SOP는 노드 출력이 될 수 있다.
드롭아웃 제어부(1330)는 랜덤 제어신호에 의해 연산부(1320)의 복수 노드 신호들 중의 일부 노드 신호들을 드롭아웃시킬 수 있다. 예를들면, 드롭아웃 제어부(1330)은 제2 라인들에 연결되는 스위치들과 랜덤 신호 발생부를 포함할 수 있다. 드롭 아웃 제어부(1330)은 랜덤 신호에 의해 선택되는 특정 제2 라인의 신호를 드롭아웃 시킬 수 있다.
출력부(1340)은 드롭아웃 제어부(1330)에서 출력되는 연산부(1320)의 노드 신호들을 임계치에 기반하여 활성화 여부를 결정하여 출력신호를 발생할 수 있다.
도 13에 도시된 신경망 장치에서 연산부(1320)는 멤리스터에 기반하여 노드들의 SOP신호를 생성할 수 있으며, 드롭아웃 제어부(1330)는 연산부(1320)에서 출력되는 랜덤신호에 의해 각 노드들의 SOP들 중의 일부 노드들의 SOP를 드롭아웃(dropout, pruning)하여 출력할 수 있다.
SRAM 기반의 시냅스 소자를 이용한 경우는 집적도 개선 및 아날로그 정보 저장에 어려움이 있을 수 있다. ReRAM은 소자 구조가 간단하고, 많은 정보를 저장할 수 있으며, 이로인해 ReRAM 기반의 시냅스에 대한 연구가 활발히 진행되고 있다. ReRAM은 저항을 이용한 메모리이다. ReRAM은 제1 라인과 제2 라인 사이에 교차 위치되는 셀들의 어레이들이 될 수 있으며, 셀은 저항 소자(resistance charging element)를 포함할 수 있다. 저항 소자의 저항 R 값은 웨이트 값이 될 수 있다.
연산부(1320)는 멤리스터(예; ReRAM) 셀 어레이의 구성을 가질 수 있다. 도 3과 같은 MLP를 구성할 때, 각 노드들은 복수의 제1 라인들을 통해 신호를 입력하고, 하나의 제2 라인들에 SOP를 생성하여 출력할 수 있다. 즉, 노드의 구성은 복수의 제1 라인들과 하나의 제1 라인에 교차 연결되는 복수의 멤리스터 셀 어레이들이 될 수 있다. 이때 멤리스터 셀 어레이의 저항소자의 저항 값은 각각 다른 값(웨이트 값)으로 설정될 수 있다.
연산부(1320)에서 처리되는 신경망 알고리듬의 복잡도는 매우 높을 수 있다. 이런 경우, 신경망은 오버피팅(overfitting)되어 연산 시간이 길어질 수 있다. 드롭아웃은 신경망 알고리듬의 복잡도를 개선하기 위한 정규화 및/또는 정제화 작업이 될 수 있다.
도 14는 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 14를 참조하면, 입력부(1310)는 최초 외부에서 입력되는 제1 입력신호 Vin을 제1 라인 L11 - L1N에 인가할 수 있으며, 연산 구간에서는 출력부(1340)에서 궤환 입력되는 신호 Vout를 제1 라인 L11 - L1n에 인가할 수 있다.
연산부(1320)은 제1 라인 L11 - L1n과 제2 라인 L21 - L2n 사이에 교차 연결되는 N*N 멤리스터 셀 R11 - Rnn들을 - 포함할 수 있다. 멤리스터 셀 R11 - Rnn은 도 13과 같은 구조를 가질 수 있으며, 각각 고유의 저항 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로 출력될 수 있다. 드롭아웃 제어부(1330)은 제2 라인 L21 - L2n에 각각 연결되는 n 개의 스위치들을 포함하는 스위치부(1430) 및 스위치부(1430)에 스위치 제어신호들을 각각 공급하는 랜덤신호 발생부(1435)로 구성될 수 있다. 랜덤 신호 발생부(1435)는 제2 라인 L21 - L2n(노드 ND1 - NDn)들 중에서 50%의 노드 출력들을 드롭아웃시키기 위한 스위치 제어신호들을 랜덤하게 발생할 수 있으며, 랜덤신호 발생부(1435)에서 발생되는 스위치 제어신호에 의해 스위치부(1430)의 해당하는 스위치가 오프되어 출력부(1340)에 인가되는 노드 신호들을 드롭아웃시킬 수 있다.
출력부(1340)는 변환부(1440) 및 활성화부(1445)를 포함할 수 있다. 변환부(1440)는 스위치부(1430)에서 출력되는 노드들의 SOP를 입력할 수 있다. 이때의 SOP는 전류 신호가 될 수 있다. 변환부(1440)는 전류 신호를 전압으로 변환할 수 있다. 활성화부(1445)는 설정된 임계값에 의해 변환부(1440)에서 출력되는 노드의 SOP를 활성화 또는 비활성화시킬 수 있다. 출력부(1340)는 설정된 연산 구간에서 출력 신호를 입력부(1310)의 제2 입력신호 Vout로 인가할 수 있으며, 연산이 종료되는 시점에서 출력될 수 있다.
도 15는 본 발명의 다양한 실시예들에 따른 신경망 장치의 구성을 도시하는 도면이다.
도 15를 참조하면, 선택기(1511, 1513)는 도 13의 입력부(1310)의 구성이 될 수 있으며, 멤리스터(1521 - 1524)는 도 13의 연산부(1320)의 구성이 될 수 있으며, 랜덤신호 발생부(1535) 및 스위치(1531, 1533)는 도 13의 드롭아웃 제어부(1330)의 구성이 될 수 있으며, 변환기(1541, 1543) 및 비교기(1545, 1547)는 도 13의 출력부(1340)의 구성이 될 수 있다.
도 15에 도시된 연산부(예를들면 도 13의 연산부(1320))는 하나의 노드가 2개의 멤리스터들을 포함할 수 있으며, 멤리스터들은 각각 고유의 저항값을 가지며, 입력신호 및 저항 값에 기반하는 전류 신호를 생성하여 제2 라인에 인가할 수 있으며, 제2 라인에서 전류신호들이 합성되어 SOP로 생성될 수 있다. 예를들면, 도 15에서 제1 노드의 연산부는 각각 R1 및 R2의 저항 값을 가지는 멤리스터(721, 722)들 포함할 수 있으며, 제2 노드의 연산부는 각각 R3 및 R4 저항 값을 가지는 멤리스터(723, 724)를 포함할 수 있다.
본 발명의 다양한 실시예에 따른 신경망 장치는 멤리스터 소자를 이용하여 하드웨어 모델링을 할 수 있다. 도 15에서 멤리스터(1521 및 1522)는 제1 노드의 연산부 구성이 될 수 있으며, 멤리스터(1523 및 1524)는 제2 노드의 연산부 구성이 될 수 있다. 선택기(1511)는 Vin1 또는 Vout1들 중의 하나를 입력신호로 선택하여 라인 L11에 인가할 수 있으며, 선택기(1513)는 Vin2 또는 Vout2들 중의 하나를 입력신호로 선택하여 라인 L12에 인가할 수 있다. 여기서 라인 L11 및 L12는 입력신호가 인가되는 제1 라인이 될 수 있다.
제1 노드의 연산부 구성을 살펴보면, 멤리스터(1521)는 라인 L11 및 라인 L21에 교차 위치되며, 저항 R1 값을 가질 수 있다. 멤리스터(1521)는 입력신호(Vin1 또는 Vout1)와 저항 R1에 기반하여 전류 신호를 생성할 수 있으며, 라인 L21에 인가할 수 있다. 멤리스터(1522)는 라인 L12 및 라인 L21에 교차 위치되며, 저항 R2 값을 가질 수 있다. 멤리스터(1522)는 입력신호(Vin2 또는 Vout2)와 저항 R2에 기반하여 전류 신호를 생성할 수 있으며, 라인 L21에 인가할 수 있다. 제2 노드의 연산부 구성을 살펴보면, 멤리스터(1523)는 라인 L11 및 라인 L22에 교차 위치되며, 저항 R3 값을 가질 수 있다. 멤리스터(1523)는 입력신호(Vin1 또는 Vout1)와 저항 R3에 기반하여 전류 신호를 생성할 수 있으며, 라인 L22에 인가할 수 있다. 멤리스터(1524)는 라인 L12 및 라인 L22에 교차 위치되며, 저항 R4 값을 가질 수 있다. 멤리스터(1524)는 입력신호(Vin2 또는 Vout2)와 저항 R4에 기반하여 전류 신호를 생성할 수 있으며, 라인 L22 인가할 수 있다. 여기서 저항 R1 - R4는 웨이트(G=1/R) 값에 대응될 수 있으며, 멤리스터들을 각각 고유의 저항 값으로 설정될 수 있다.
따라서 멤리스터(1521 및 1522)는 각각 대응되는 입력신호들에 웨이트 값(각각 설정된 고유의 저항값)을 곱하여 라인 L21에 출력할 수 있다. 이런 경우 라인 L21에 인가되는 제1 노드의 합성 전류를 상기 <수학식 1>과 같이 표시할 수 있다.
상기 <수학식 1>에서 I1은 라인 21에서 생성되는 제1 노드의 SOP에 대응되는 전류 값이 될 수 있으며, Vin1 및 Vin은 입력신호, G1 및 G2는 각각 멤리스터(1521 및 1522)저항 R1 및 R2에 기반하는 웨이트 값이 될 수 있다. 이와 같은 방법으로 제2 노드의 SOP인 I2를 생성할 수 있다. 본 발명의 다양한 실시예들에 따른 신경망 장치는 신경망 알고리듬의 기본 동작은 SOP를 멤리스터(예; ReRAM)에 기반하여 생성할 수 있다.
멤리스터에서 생성되는 SOP는 전류(I1 및I2)로 나타낼 수 있으며, 전압변환기(1541 및 1543)는 각각 대응되는 제1 노드 및 제2 노드의 전류 i1 및 i2를 전압으로 변환할 수 있다. 그리고 활성화부인 비교기(1545 및 1547)는 각각 전압변환기(1541 및 1543)에서 변환된 전압의 활성화 여부를 판단하여 출력신호 Vout1 및 Vout2를 출력할 수 있다. 비교기(1545 및 1547)은 활성화 함수(activation function) 기능을 수행할 수 있다. 예를들면, 특정 Vref(reference voltage)보다 작으면 -Vcc(OP amp의 공급전압)을 출력하고, Vref 보다 크면 +VCC를 출력할 수 있다. 여기서 Vref는 도 2 및 도 3의 바이어스 전압(b 및 bx)에 의해 결정될 수 있다.
도 13 내지 도 15에 도시된 본 발명의 다양한 실시예에 따른 신경망 장치에서 출력부(1340)는 전술한 도 8a - 도 8d에 도시된 바와 같이 동작할 수 있다.
다시 도 8a - 도 8d를 참조하면, 활성화부는 도 8a와 같은 비교기를 이용하여 구성할 수 있다. 도 8b는 비교기의 동작 특성을 도시하고 있다. 비교기는 상기 <수학식 2>와 같은 출력 특성을 가질 수 있다.
도 8b와 같은 비교기의 특성은 도 8c와 같은 시그모이드 함수(Sigmoid function)과 유사한 특성을 가질 수 있다. 신경망 장치는 입력 변호를 결합하는 합성 함수(combination function)과 입력 신호를 결합하여 변형하는 활성 함수(activation function)을 사용할 수 있다. 합성 함수는 입력신호를 하나의 정보로 만들기 위한 함수로써, 웨이트 데이터가 될 수 있다. 이때 활성 함수는 입력 신호의 합성값(예를들면 SOP)을 출력층 또는 은닉층에 전달하는 함수로써, SOP를 일정 범위의 값으로 전환해줄 수 있는 함수가 될 수 있다. 시그모이드 함수(Sigmoid function)는 활성 함수로 가장 많이 사용되는 함수가 될 수 있다. 시그모이드 함수는 출력 값들이 0에 가까울 때 선형 함수(linear function)에 매우 근사하게 되는 특성을 가질 수 있다. 신경망 장치에서 비교기(1545 및 1547)의 +VCC를 충분히 크게 잡고, -VCC를 0으로 설정하면, 도 8d에 도시된 바와 같이 활성 함수(ReLU(rectified linear unit) activation function)과 유사함을 알 수 있다. 비교기의 운용에 따라 여러가지 활성함수를 구현할 수 있다.
비교기(1545)에서 출력되는 출력신호 Vout1는 상기 <수학식 3>과 같이 표현할 수 있다. 그리고 상기 <수학식 3>과 같은 방법으로 출력신호 Vout2도 구할 수 있다.
비교기(1545 및 1547)에 출력되는 출력전압 Vout1 및 Vout2는 입력부인 선택기(1511 및 1513)의 제2 입력신호로 인가될 수 있다. 신경망 장치 연산 동작을 수행하는 시점에서는 외부로부터 입력되는 제1 입력신호 Vin 를 선택할 수 있으며, 이후 연산 구간에서는 연산된 신호인 제2 입력신호 Vout를 선택할 수 있다. 따라서 연산부는 제1 입력신호 Vin에 기반하여 연산동작을 수행할 수 있으며, 이후에는 출력신호인 제2 입력신호 Vout에 기반하여 연산동작을 수행할 수 있다. 그리고 설정된 횟수의 연산 동작을 수행하면 연산된 최종 출력신호를 발생할 수 있다.
본 발명의 다양한 실시예들에 따른 신경망 장치에서 출력신호를 궤환하여 다음 레이어로 입력하는 루프(loop) 동작은 상기 도 9에 도시된 바와 같이 수행될 수 있다.
다시 도 9를 참조하면, 최초 입력 Vin에 따른 신경망 장치의 첫번째 루프 (1st loop, 1st layer)의 출력은 상기 <수학식 4>와 같이 나타낼 수 있다. 따라서 신경망 장치의 출력 Vout은 상기 <수학식 5>와 표현할 수 있다.
이후 <수학식 4>와 같이 과정에서 생성된 출력신호 Vout1 및 Vout2을 입력으로 하는 신경망 장치의 두번째 루프(2nd loop, 2nd layer)의 출력은 상기 <수학식 6>과 같이 신경망 장치의 출력을 구할 수 있다.
상기 <수학식 4> 및 <수학식 6>에 도시된 바와 같이, 신경망 장치는 입력되는 신호들에 기반하여 SOP를 생성하고, 생성된 SOP를 활성화 여부를 판단하여 출력신호를 생성할 수 있다. 신경망 장치의 출력신호는 상기 <수학식 7>과 같이 나타낼 수 있다.
도 15에 도시된 바와 같은 신경망 장치는 복잡도 높기 때문에 정규화 및/또는 정제화 기능을 추가할 수 있다. 정규화 및/또는 정제화 방법들 중의 한가지 방법이 드롭아웃이 될 수 있다. 드롭아웃은 도 4b에 도시된 바와 같이 한 계층의 노드들 중에서 일부분의 노드들을 동작시키지 않는 방법이 될 수 있다. 즉, 드롭아웃은 이전 계층의 값을 받지 않고, 다음 계층으로 값을 넘기지 않을 수 있다.
본 발명의 다양한 실시예들에 따른 신경망 장치는 연산부의 노드 출력을 드롭아웃시키는 방법을 사용할 수 있다. 도 15에서, 드롭아웃은 연산부(1320)의 노드 출력단에 노드 출력을 스위칭 출력할 수 있는 스위치(예를들면, 도 14의 스위치부(1430))를 연결하고, 랜덤신호 발생부(예를들면, 도 14의 랜덤신호 발생부(1435))에서 생성되는 랜덤신호에 의해 스위치의 온/오프 동작을 제어할 수 있다. 도 14의 스위치부(1430)는 도 15에서 스위치(1531) 및 스위치(1533)이 될 수 있으며, 도 14의 랜덤신호 발생부(1435)는 도 15에서 랜덤신호 발생부(1535)가 될 수 있다. 스위치(1531)는 라인 L21과 전압변환기(1541) 사이에 연결되는 제1 트랜지스터 T1과, 라인 L21과 접지단 사이에 연결되는 제2 트랜지스터T2를 포함할 수 있다. 스위치(1531)는 제1 노드의 SOP를 드롭아웃시킬 수 있다. 예를들면, 랜덤신호 발생부(1535)에서 발생되는 스위치 제어신호가 제1 논리(예를들면 하이 논리)이면 제2 트랜지스터 T2가 온되고 제1 트랜지스터 T1이 오프되어 제1 노드의 SOP(라인 L21의 I1 신호)는 드롭아웃될 수 있다. 또한 랜덤신호 발생부(1535)에서 발생되는 스위치 제어신호가 제2 논리(예를들면 로우 논리)이면 제1 트랜지스터 T1이 온되고 제2 트랜지스터 T2가 오프되어 제1 노드의 SOP(라인 L21의 I1 신호)는 전압변환기(1541)의 입력으로 인가될 수 있다.
또한 스위치(1533)는 라인 L22와 전압변환기(1543) 사이에 연결되는 제1 트랜지스터 T3과, 라인 L22과 접지단 사이에 연결되는 제2 트랜지스터T4를 포함할 수 있다. 스위치(1533)는 제2 노드의 SOP를 드롭아웃시킬 수 있다. 스위치(1533)는 스위치(1531)의 동작과 동일한 방법으로 동작될 수 있다.
랜덤신호 발생부(1535)는 노드들 중 일부 노드들의 출력신호를 드롭아웃시키기 위한 스위치 제어신호를 발생할 수 있다. 본 발명의 다양한 실시예들에 따른 신경망 장치에서 랜덤신호 발생부(1535)는 전술한 도 10a 및 도 10b에 도시된 바와 같이 구성될 수 있다.
다시 도 10a 및 도 10을 참조하면, 랜덤신호 발생부(1535)는 N 비트 피보나치 LFSR(N bit Fibonacci linear feedback shift register)를 사용할 수 있다. 피보나치 LFSR은 쉬프트 레지스터와 쉬프트 레지스터의 일부를 익스클루시브 오아(exclusive OR)연산하는 XOR 게이트로 구성할 수 있다. 도 10a 및 도 10b에서 XOR 게이트는 최종 출력 및 최종 출력의 전단에 위치되는 데이터를 익스클루시브 오아 연산하여 쉬프트레지스터의 입력으로 인가하는 구성예를 도시하고 있다. 랜덤신호 발생부(1535)는 도 10a와 같이 복수의 피보나치 LFSR들을 구비하여 각 노드들의 드롭아웃을 제어하기 위한 스위치 제어신호들을 생성할 수 있다. 또한 랜덤신호 발생부(1535)는 도 10b와 같이 하나의 피보나치 LFSR들을 구비하여 각 노드들의 롭아웃을 제어하기 위한 스위치 제어신호들을 생성할 수 있다. 도 10a 및 도 10b에서 스위치 제어신호가 1이면 드롭 아웃을 적용하고, 0이면 드롭아웃을 적용하지 않을 수 있다. 상기 랜덤함수 발생부(1535)는 드롭 아웃 비율(예를들면 1로 출력되는 신호의 비율)이 50%가 되도록 랜덤 신호를 발생할 수 있다.
도 15와 같은 구성을 가지는 신경망 장치의 동작을 구체적으로 살펴보면, 멤리스터(예; ReRAM)(1521 - 1524)는 각각 고유한 저항 값(R1 - R4)를 가질 수 있으며, 이들 저항값들은 변경시킬 수 있다. 그리고 멤리스터의 저항값들은 웨이트값에 대응될 수 있다. 첫번째 루프에서 입력 Vin1 및 Vin2가 입력되면, 멤리스터(1521 - 1524)는 이전에 설정된 저항 값 R1 - R4에 기반하여 전류신호를 발생하고, 이들 전류신호들은 라인 21 및 라인 22(즉, 제1 노드 및 제2 노드)에서 합성되어 전류 I1 및 I2(즉, SOP1 및 SOP2)로 생성될 수 있다. 이때 전류 I1은 R1 및 Vin1에 의해 멤리스터(1521)에서 생성되는 전류와, R2 및 Vin2에 의해 멤리스터(1522)에서 생성되는 전류의 합이 될 수 있다. 전류 I1은 신경망 장치의 첫번째 레이어의 한 노드 출력이 될 수 있다. 전류 I2는 R3 및 Vin1에 의해 멤리스터(1523)에서 생성되는 전류와, R4 및 Vin2에 의해 멤리스터(1522)에서 생성되는 전류의 합이 될 수 있다. 전류 I2은 신경망 장치의 첫번째 레이어의 다른 노드 출력이 될 수 있다.
신경망 장치는 드롭아웃(또는 pruning) 기능을 통해 알고리듬의 성능을 향상시킬 수 있다. 드롭아웃은 노드의 출력을 0로 만드는 것이 될 수 있다. 본 발명의 다양한 실시예들에 따른 신경망 장치의 드롭아웃은 출력부(예를들면 도 13의 출력부(1340))의 입력을 0로 인가하여 노드의 출력을 0로 만들 수 있다. 0로 출력되는 노드들의 선택은 랜덤신호 발생부(1535)에 의해 결정될 수 있다. 랜덤신호 발생부(1535)는 도 10a 또는 도 10b와 같은 구성을 가지는 N 비트 피보나치 LFSR로 구현할 수 있다. 랜던신호 발생부(1535)에서 생성되는 스위치 제어신호는 스위치(1531 및 1533)에 인가되어 전압비교기(1541 및 1543)에 인가되는 노드 L21 및 L22의 SOP를 드롭 아웃시킬 수 있다. 전압비교기(1541 및 1543)는 입력이 0로 인가되면, 해당 노드의 출력을 드롭아웃시킬 수 있다.
현재 레이어(예를들면, 첫번째 레이어)의 출력을 다음 레이어(예를들면 두번째 레이어)의 입력으로 인가하기 위하여, 전압변환기(1541 및 1543)은 각각 전류 I1과 전류 I2를 전압으로 변환할 수 있다. 이때 전압 변환기(1541 및 1543)는 전류를 전압으로 변환하는 OP amp를 이용하여 구성할 수 있다. 전압변환기(1541 및 1543)의 궤환 저항 Rf는 임의 적정 값을 사용할 수 있다. 전압 변환부(1541 및 1543)의 출력은 비교기(745 및 747)의 비교 입력으로 인가될 수 있다. 비교기(1545 및 1547)의 Vref는 적정한 값으로 설정될 수 있다. 비교기(1545 및 1547)는 전압변환기(1541 및 1543)에서 변환되는 전압과 +Vref를 비교하여 Vout1 및 Vout2를 각각 출력할 수 있다. 비교기(1545 및 1547)는 공급전압과 Vref의 설정 값을 변경할 수 있으며, 설정에 따라 Relu 활성함수로 나타낼 수 있으며, 시그모이드 함수로 나타낼 수도 있다.
비교기(1545 및 1547)에서 출력되는 출력 전압 Vout1 및 Vout2는 다음 레이어의 입력신호가 될 수 있으며, 입력부(예를들면 도 13의 입력부(1310))에 제2 입력신호로 인가될 수 있다. 그러면 입력부는 제2 입력신호를 선택하여 연산부의 제1 라인에 인가할 수 있다. 신경망 장치는 위와 같은 동작을 설정된 횟수만큼 반복 수행할 수 있으며, 설정된 횟수에 도달하면 최종 출력신호 Vout를 외부로 출력할 수 있다.
도 14 및 도 15에서, 드롭아웃은 연산부(1320)의 노드 출력단에 노드 출력을 스위칭 출력할 수 있는 스위치(예를들면, 도 14의 스위치부(1430))를 연결하고, 랜덤신호 발생부(예를들면, 도 14의 랜덤신호 발생부(1435))에서 생성되는 랜덤신호에 의해 스위치 동작을 제어하여 드롭아웃 기능을 구현하는 예를 도시하고 있다. 드롭아웃은 도 4b에 도시된 바와 같이 한 계층의 노드들 중에서 일부분의 노드들을 동작시키지 않는 방법이 될 수 있다. 즉, 드롭아웃은 이전 계층의 값을 받지 않고, 다음 계층으로 값을 넘기지 않을 수 있다. 다음 레이어의 입력신호는 이전 레이어의 출력부(1340)의 출력 신호 Vout가 될 수 있다. 따라서 다음 레이어의 연산 과정에서 이전 레이어의 출력신호Vout를 드롭아웃시켜도 동일한 드롭아웃 효과를 가질 수 있다.
도 16은 본 발명의 다양한 실시예들에 따른 신경망 장치의 다른 구성을 도시하는 도면이다.
도 16을 참조하면, 입력부(1310)는 최초 외부에서 입력되는 제1 입력신호 Vin을 제1 라인 L11 - L1N에 인가할 수 있으며, 연산 구간에서는 출력부(1340)에서 궤환 입력되는 신호 Vout를 제1 라인 L11 - L1n에 인가할 수 있다.
도 16에서 드롭아웃 제어부(1330)은 제1 라인 L11 - L1n에 각각 연결되는 n 개의 스위치 SW1 - SWn들을 포함하는 스위치부(1630) 및 스위치부(1630)에 스위치 제어신호들을 각각 공급하는 랜덤신호 발생부(1635)로 구성될 수 있다. 랜덤 신호 발생부(1635)는 제1 라인 L11 - L1n들 중에서 50%의 출력들을 드롭아웃시키기 위한 스위치 제어신호들을 랜덤하게 발생할 수 있으며, 랜덤신호 발생부(1635)에서 발생되는 스위치 제어신호에 의해 스위치부(1630)의 해당하는 스위치가 오프되어 연산부(1320)에 인가되는 입력 신호들을 드롭아웃시킬 수 있다.
연산부(1320)은 제1 라인 L11 - L1n과 제2 라인 L21 - L2n 사이에 교차 연결되는 N*N 멤리스터 셀 R11 - Rnn들을 - 포함할 수 있다. 멤리스터 셀 R11 - Rnn은 각각 고유의 저항 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로 출력될 수 있다.
출력부(1340)는 변환부(1640) 및 활성화부(1645)를 포함할 수 있다. 변환부(1640)는 스위치부(1330)에서 출력되는 노드들의 SOP를 입력할 수 있다. 이때의 SOP는 전류 신호가 될 수 있다. 변환부(1640)는 전류 신호를 전압으로 변환할 수 있다. 활성화부(1645)는 설정된 임계값에 의해 변환부(1640)에서 출력되는 노드의 SOP를 활성화 또는 비활성화시킬 수 있다. 출력부(1340)는 설정된 연산 구간에서 출력 신호를 입력부(1310)의 제2 입력신호 Vout로 인가할 수 있으며, 연산이 종료되는 시점에서 출력될 수 있다.
도 17은 도 16과 같은 신경망 장치의 한 예를 도시하는 도면이다.
도 17을 참조하면, 선택기(1711, 1713)는 도 13의 입력부(1310)의 구성이 될 수 있으며, 멤리스터(1721 - 1724)는 도 13의 연산부(1320)의 구성이 될 수 있으며, 랜덤신호 발생부(1735) 및 스위치(1731, 1733)는 도 13의 드롭아웃 제어부(1330)의 구성이 될 수 있으며, 변환기(1741, 1743) 및 비교기(1745, 1747)는 도 13의 출력부(1340)의 구성이 될 수 있다.
도 17에 도시된 연산부(예를들면 도 13의 연산부(1320))는 하나의 노드가 2개의 멤리스터들을 포함할 수 있으며, 멤리스터들은 각각 고유의 저항값을 가지며, 입력신호 및 저항 값에 기반하는 전류 신호를 생성하여 제2 라인에 인가할 수 있으며, 제2 라인에서 전류신호들이 합성되어 SOP로 생성될 수 있다. 예를들면, 도 17에서 제1 노드의 연산부는 각각 R1 및 R2의 저항 값을 가지는 멤리스터(1721, 1722)들 포함할 수 있으며, 제2 노드의 연산부는 각각 R3 및 R4 저항 값을 가지는 멤리스터(1723, 1724)를 포함할 수 있다.
선택기(1711)는 Vin1 또는 Vout1들 중의 하나를 입력신호로 선택하여 라인 L11에 인가할 수 있으며, 선택기(1713)는 Vin2 또는 Vout2들 중의 하나를 입력신호로 선택하여 라인 L12에 인가할 수 있다. 여기서 라인 L11 및 L12는 입력신호가 인가되는 제1 라인이 될 수 있다.
도 16의 스위치부(1630)는 도 17에서 스위치(1731) 및 스위치(1733)이 될 수 있으며, 도 16의 랜덤신호 발생부(1635)는 도 17에서 랜덤신호 발생부(1735)가 될 수 있다. 스위치(1731)는 선택기(1711)과 라인 L11사이에 연결되는 제1 트랜지스터 T1과, 라인 L21과 접지단 사이에 연결되는 제2 트랜지스터T2를 포함할 수 있다. 스위치(1731)는 이전 레이어의 제1 노드의 출력신호 Vout1을 드롭아웃시킬 수 있다. 예를들면, 랜덤신호 발생부(1735)에서 발생되는 스위치 제어신호가 제1 논리(예를들면 하이 논리)이면 제2 트랜지스터 T2가 온되고 제1 트랜지스터 T1이 오프되어 이전 레이어의 제1 노드의 Vout1 신호는 드롭아웃될 수 있다. 또한 랜덤신호 발생부(1735)에서 발생되는 스위치 제어신호가 제2 논리(예를들면 로우 논리)이면 제1 트랜지스터 T1이 온되고 제2 트랜지스터 T2가 오프되어 이전 레이어의 제1 노드의 Vout1 신호는 제1 라인 L11에 인가될 수 있다.
또한 스위치(1733)는 선택기(1713)과 라인 L12 사이에 연결되는 제1 트랜지스터 T3과, 라인 L12과 접지단 사이에 연결되는 제2 트랜지스터T4를 포함할 수 있다. 스위치(1733)는 이전 레이어의 제2 노드의 Vout2를 드롭아웃시킬 수 있다. 스위치(1733)는 스위치(1731)의 동작과 동일한 방법으로 동작될 수 있다.
랜덤신호 발생부(1735)는 노드들 중 일부 노드들의 출력신호를 드롭아웃시키기 위한 스위치 제어신호를 발생할 수 있다. 랜덤신호 발생부(1735)는 전술한 도 10a 및 도 10b와 같은 구성을 가질 수 있다.
제1 노드의 연산부 구성을 살펴보면, 멤리스터(1721)는 라인 L11 및 라인 L21에 교차 위치되며, 저항 R1 값을 가질 수 있다. 멤리스터(1721)는 입력신호(Vin1 또는 Vout1)와 저항 R1에 기반하여 전류 신호를 생성할 수 있으며, 라인 L21에 인가할 수 있다. 멤리스터(1722)는 라인 L12 및 라인 L21에 교차 위치되며, 저항 R2 값을 가질 수 있다. 멤리스터(1722)는 입력신호(Vin2 또는 Vout2)와 저항 R2에 기반하여 전류 신호를 생성할 수 있으며, 라인 L21에 인가할 수 있다. 제2 노드의 연산부 구성을 살펴보면, 멤리스터(1723)는 라인 L11 및 라인 L22에 교차 위치되며, 저항 R3 값을 가질 수 있다. 멤리스터(1723)는 입력신호(Vin1 또는 Vout1)와 저항 R3에 기반하여 전류 신호를 생성할 수 있으며, 라인 L22에 인가할 수 있다. 멤리스터(1724)는 라인 L12 및 라인 L22에 교차 위치되며, 저항 R4 값을 가질 수 있다. 멤리스터(1724)는 입력신호(Vin2 또는 Vout2)와 저항 R4에 기반하여 전류 신호를 생성할 수 있으며, 라인 L22 인가할 수 있다. 여기서 저항 R1 - R4는 웨이트(G=1/R) 값에 대응될 수 있으며, 멤리스터들을 각각 고유의 저항 값으로 설정될 수 있다.
멤리스터에서 생성되는 SOP는 전류(I1 및I2)로 나타낼 수 있으며, 전압변환기(1741 및 1743)는 각각 대응되는 제1 노드 및 제2 노드의 전류 i1 및 i2를 전압으로 변환할 수 있다. 그리고 활성화부인 비교기(1745 및 1747)는 각각 전압변환기(1741 및 1743)에서 변환된 전압의 활성화 여부를 판단하여 출력신호 Vout1 및 Vout2를 출력할 수 있다. 비교기(1745 및 1747)은 활성화 함수(activation function) 기능을 수행할 수 있다. 예를들면, 특정 Vref(reference voltage)보다 작으면 -Vcc(OP amp의 공급전압)을 출력하고, Vref 보다 크면 +VCC를 출력할 수 있다. 여기서 Vref는 도 2 및 도 3의 바이어스 전압(b 및 bx)에 의해 결정될 수 있다.
본 발명의 다양한 실시예들에 따른 신경망 장치의 드롭 아웃 방법은 다음과 같은 절차로 수행할 수 있다.
신경망 장치의 드롭아웃 방법은 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되고, 각각 웨이트 값에 대응되는 고유 저항값을 가지는 멤리스터 소자들의 상기 제1 라인들에 복수의 입력신호들을 인가하는 단계와, 멤리스터 소자들에서 대응되는 상기 입력 신호와 저항 값에 의해 생성되는 전류신호들을 상기 제2라인들에서 합성하여 노드의 SOP(sum of product) 신호를 생성하는 단계와, 상기 제2 라인들 중에서 랜덤 신호에 의해 선택되는 제2 라인의 SOP 신호를 드롭아웃시키는 단계와, 제2 라인의 신호들을 활성함수에 의해 활성화시켜 상기 입력신호로 궤환시키는 출력 단계를 포함할 수 있다.
상기 SOP를 생성하는 단계는, 복수의 제1 라인들과 복수의 제2 라인들에 교차 연결되며, 고유의 저항 값들을 가지는 멤리스터들에서 저항값에 기반하여 입력신호와 웨이트의 곱에 대응되는 전류를 생성하는 단계와, 상기 제2 라인에 연결된 멤리스터들에서 생성되는 전류들을 합성하여 해당 노드의 SOP를 생성하는 단계를 포함할 수 있다.
상기 드롭아웃 단계는, 랜덤 신호를 발생하는 단계와, 상기 랜덤신호에 의해 복수의 제2 라인 신호들 중에 일부를 드롭아웃시키는 단계를 포함할 수 있다. 여기서 상기 랜덤 신호는 피보나치 선형 피드백 쉬프트 레지스터를 이용하여생성시킬 수 있다. 상기 드로아웃 단계는 상기 제2 라인들 중에서 50%의 제2 라인들의 SOP 신호들을 드롭아웃시킬 수 있다.
상기 출력 단계는 상기 제2 라인에 연결되어 전류를 전압으로 변환하는 단계와, 설정된 바이어스 전압에 의해 상기 변환부의 출력신호의 활성 여부를 결정하는 단계를 포함할 수 있다. 상기 활성 여부를 결정하는 단계는 상기 변환된 전압신호와 설정된 기준전압을 비교하여 활성 여부를 결정할 수 있다.
상기 출력단계는, 상기 활성화된 출력 전압을 다음 레이어의 입력신호로 하여 상기 입력 단계로 진행하는 단계를 더 포함할 수 있다. 상기 출력단계는, 설정된 횟수의 출력신호 발생을 인식하면 활성화된 최종 출력신호를 외부로 출력하는 단계를 더 포함할 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (40)

  1. 복수의 입력 신호들을 각각 대응되는 복수의 제1 라인들에 인가하는 입력부;
    상기 복수의 제1 라인들과 복수의 제2 라인들 사이에 각각 교차 연결되는 복수의 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호들을 생성하여 상기 복수의 제2 라인들 중 대응되는 제2 라인에 출력하는 연산부;
    상기 제1라인과 상기 메모리 소자들 사이에 연결되는 스위치들을 포함하며, 랜덤 신호에 의해 상기 스위치가 스위칭 제어되어 대응되는 메모리 소자에 인가되는 입력 신호의 연결을 해제하는 드롭 커넥트 제어부; 및
    상기 제2 라인에 연결되며, 상기 제2 라인의 신호들을 활성화시켜 상기 입력부에 상기 복수의 입력신호들로 궤환 입력하며, 설정된 횟수의 연산이 종료되면 연산된 최종 출력신호를 외부로 출력하는 출력부를 포함하는 신경망 장치.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 연산부는
    상기 스위치와 상기 제2 라인에 교차 연결되는 복수의 멤리스터들을 포함하며,
    상기 멤리스터들은 각각 웨이트 값에 대응되는 저항값을 포함하며, 저항값에 기반하여 상기 입력신호와 웨이트의 곱에 대응되는 전류를 생성하여 제2 라인에 출력하며, 상기 제2 라인에서 합성되어 SOP(sum of product)로 생성되는 신경망 장치.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제2항에 있어서,
    상기 드롭 커넥트 제어부는
    랜덤 신호를 발생하는 랜덤신호 발생부; 및
    상기 제1라인과 상기 멤리스터 소자들 사이에 각각 연결되는 스위치들을 포함하며,
    상기 랜덤신호에 기반하여 대응되는 스위치가 스위칭제어되어 상기 멤리스터들에 인가되는 입력신호의 연결을 해제하는 신경망 장치.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제3항에 있어서,
    상기 랜덤 신호 발생부는
    피보나치 선형 피드백 쉬프트 레지스터인 신경망 장치.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제4항에 있어서,
    상기 드롭 커넥트 제어부는
    상기 메모리 소자들에 인가되는 입력신호들중에서 미리 설정된 비율의 입력신호들을 연결 해제하는 신경망 장치.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제3항에 있어서,
    상기 출력부는
    상기 제2 라인에 연결되어 전류를 전압으로 변환하는 변환부; 및
    설정된 바이어스 전압에 의해 상기 변환부의 출력신호의 활성화 동작을 수행하는 활성화부를 포함하는 신경망 장치.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 활성화부는 비교기인 신경망 장치.
  8. 복수의 입력 신호들을 각각 대응되는 복수의 제1 라인들에 인가하는 입력부;
    상기 복수의 제1 라인들과 복수의 제2 라인들 사이에 각각 교차 연결되는 복수의 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호들을 생성하여 상기 복수의 제2 라인들 중 대응되는 제2 라인에 출력하는 연산부;
    상기 제1라인과 상기 메모리 소자들 사이에 연결되는 스위치들을 포함하며, 제1 랜덤 신호에 의해 상기 스위치가 스위칭 제어되어 대응되는 메모리 소자에 인가되는 입력 신호의 연결을 해제하는 드롭 커넥트 제어부;
    상기 제2 라인들에 연결되는 스위치들을 포함하며, 제2 랜덤 신호에 의해 적어도 하나의 상기 제2 라인의 신호를 드롭아웃하는 드롭아웃 제어부; 및
    상기 스위치들에 연결되며, 상기 스위치들에서 출력되는 상기 제2 라인의 신호들을 활성화시켜 상기 입력부에 상기 복수의 입력신호로 궤환 입력하며, 설정된 횟수의 연산이 종료되면 연산된 최종 출력신호를 외부로 출력하는 출력부를 포함하는 신경망 장치.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제8항에 있어서,
    상기 연산부는
    복수의 제1 라인들과 복수의 제2 라인들에 교차 연결되는 복수의 멤리스터들을 포함하며,
    상기 멤리스터들은 각각 웨이트 값에 대응되는 저항값을 포함하며, 저항값에 기반하여 상기 입력신호와 웨이트의 곱에 대응되는 전류를 생성하여 제2 라인에 출력하며, 상기 제2 라인에서 합성되어 SOP(sum of product)로 생성되는 신경망 장치.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제9항에 있어서,
    상기 드롭커넥트 제어부는
    제1 랜덤 신호를 발생하는 제1 랜덤신호 발생부; 및
    상기 제1라인과 상기 멤리스터 소자들 사이에 각각 연결되는 제1 스위치들을 포함하며,
    상기 제1 랜덤신호에 기반하여 대응되는 제1 스위치가 스위칭제어되어 상기 멤리스터들에 인가되는 입력신호의 연결을 해제하는 신경망 장치.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 드롭아웃 제어부는
    제2 랜덤신호를 발생하는 제2 랜덤신호 발생부; 및
    상기 제2 라인들과 상기 출력부 사이에 각각 연결되는 제2 스위치들을 포함하며,
    상기 제2 랜덤 신호에 의해 대응되는 상기 제2 스위치가 스위칭 제어되어 상기 출력부에 인가되는 상기 제2 라인의 SOP를 해제하는 신경망 장치.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 제1 랜덤신호 발생부 및 상기 제2 랜덤 신호 발생부는
    피보나치 선형 피드백 쉬프트 레지스터인 신경망 장치.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 출력부는
    상기 제2 라인에 연결되어 전류를 전압으로 변환하는 변환부; 및
    설정된 바이어스 전압에 의해 상기 변환부의 출력신호의 활성화 동작을 수행하는 활성화부를 포함하는 신경망 장치.
  14. 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되고, 각각 웨이트 값에 대응되는 고유 저항값을 가지는 메모리 소자들의 상기 제1 라인들에 복수의 입력신호들을 인가하는 단계;
    제1 랜덤 신호에 의해 상기 제1라인들과 상기 메모리 소자들 사이에 연결되는 제1 스위치들 중에서 대응되는 일부의 제1스위치들이 스위칭 제어되어 상기 메모리 소자들에 인가되는 입력 신호들의 연결을 해제하는 드롭 커넥트 단계;
    상기 메모리 소자들에서 대응되는 상기 입력 신호와 저항 값에 의해 생성되는 전류신호들을 상기 제2라인들에서 합성하여 SOP(sum of product)를 생성하는 단계; 및
    상기 제2 라인들의 신호들을 활성함수에 의해 활성화시켜 상기 입력신호로 궤환시키는 출력 단계를 포함하는 신경망 장치의 정규화 방법.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서,
    상기 SOP를 생성하는 단계는
    상기 복수의 제1 라인들과 상기 복수의 제2 라인들에 교차 연결되며, 고유의 저항 값들을 가지는 멤리스터들의 저항값에 기반하여 입력신호와 웨이트의 곱에 대응되는 전류를 생성하는 단계; 및
    상기 제2 라인들에 연결된 멤리스터들에서 생성되는 전류들을 합성하여 해당 노드의 SOP(sum of product) 신호를 생성하는 단계를 포함하는 정규화 방법.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 드롭커넥트 단계는
    상기 멤리스터들에 인가되는 입력신호들 중에서 미리 설정된 비율의 입력신호들의 연결을 해제하는 정규화 방법.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서,
    상기 출력 단계는
    상기 제2 라인들에 연결되어 전류를 전압으로 변환하는 단계; 및
    설정된 바이어스 전압에 의해 출력신호의 활성 여부를 결정하는 단계를 포함하는 정규화 방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제17항에 있어서,
    상기 활성 여부를 결정하는 단계는
    상기 변환된 전압신호와 설정된 기준전압을 비교하여 활성 여부를 결정하는 정규화 방법.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    제2 랜덤 신호에 의해 상기 제2 라인들과 출력부 사이에 연결되는 제2 스위치들 중에서 대응되는 일부의 제2 스위치들이 스위칭 제어되어 상기 출력부에 인가되는 SOP를 드롭아웃하는 단계를 더 포함하는 정규화 방법.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제19항에 있어서,
    상기 출력 단계는
    상기 제2 라인들에 연결되어 전류를 전압으로 변환하는 단계; 및
    설정된 바이어스 전압에 의해 출력신호의 활성 여부를 결정하는 단계를 포함하는 정규화 방법.
  21. 복수의 제1 라인들에 각각 해당하는 입력 신호들을 인가하는 입력부;
    상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 메모리 소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 해당하는 제1 라인의 입력 신호와 웨이트의 곱 신호를 생성하여 상기 복수의 제2 라인들 중에 대응되는 제2라인에 출력하는 연산부;
    랜덤 신호에 의해 선택되는 적어도 하나의 제2 라인의 신호를 드롭아웃하는 드롭아웃 제어부; 및
    상기 제2 라인들에 연결되며, 각각 대응되는 제2 라인의 신호들을 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 연산된 최종 출력신호를 출력하는 출력부를 포함하는 신경망 장치.
  22. ◈청구항 22은(는) 설정등록료 납부시 포기되었습니다.◈
    제21항에 있어서,
    상기 연산부는
    상기 복수의 제1 라인들과 복수의 제2 라인들에 교차 연결되는 복수의 멤리스터들을 포함하며,
    상기 복수의 멤리스터들 각각은 웨이트 값에 대응되는 저항값을 포함하며, 저항값에 기반하여 상기 입력신호와 웨이트의 곱에 대응되는 전류를 생성하는 신경망 장치.
  23. ◈청구항 23은(는) 설정등록료 납부시 포기되었습니다.◈
    제22항에 있어서,
    상기 연산부는
    상기 제1 라인에 연결되는 복수의 멤리스터들의 전류신호들을 제2 라인에서 합성 곱 신호로 생성시키며,
    상기 제2 라인은 노드에 대응되는 신경망 장치.
  24. ◈청구항 24은(는) 설정등록료 납부시 포기되었습니다.◈
    제22항에 있어서,
    상기 드롭아웃 제어부는
    랜덤 신호를 발생하는 랜덤신호 발생부; 및
    상기 제2 라인들과 출력부들 사이에 각각 연결되는 스위치들을 포함하며,
    상기 랜덤신호는 복수의 제2 라인 신호들 중에 일부를 드롭아웃시키는 신경망 장치.
  25. ◈청구항 25은(는) 설정등록료 납부시 포기되었습니다.◈
    제24항에 있어서,
    상기 랜덤 신호 발생부는
    피보나치 선형 피드백 쉬프트 레지스터인 신경망 장치.
  26. ◈청구항 26은(는) 설정등록료 납부시 포기되었습니다.◈
    제24항에 있어서,
    상기 드롭아웃 제어부는
    상기 제2 라인들에 대응하는 노드들중에서 미리 설정된 비율의 노드들을 드롭아웃시키는 신경망 장치.
  27. ◈청구항 27은(는) 설정등록료 납부시 포기되었습니다.◈
    제24항에 있어서,
    상기 출력부는
    상기 제2 라인에 연결되어 전류를 전압으로 변환하는 변환부; 및
    설정된 바이어스 전압에 의해 상기 변환부의 출력신호의 활성화 동작을 수행하는 활성화부를 포함하는 신경망 장치.
  28. ◈청구항 28은(는) 설정등록료 납부시 포기되었습니다.◈
    제27항에 있어서,
    상기 활성화부는 비교기인 신경망 장치.
  29. 복수의 제1 라인들의 신호들을 입력하는 입력부;
    랜덤 신호에 의해 선택되는 적어도 하나의 제1라인의 신호를 드롭아웃하는 드롭아웃 제어부;
    상기 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되는 메모리소자들을 포함하며, 상기 메모리 소자들은 각각 고유의 웨이트 값을 가지며, 각각 대응되는 입력 신호와 웨이트의 곱 신호를 생성하여 상기 복수의 제2 라인들 중 대응하는 제2 라인에 출력하는 연산부; 및
    상기 제2 라인들에 연결되며, 대응되는 상기 제2 라인의 신호를 활성화시켜 상기 입력부에 입력신호로 인가하며, 설정된 횟수의 연산이 종료되면 연산된 최종 출력신호를 출력하는 출력부를 포함하는 신경망 장치.
  30. ◈청구항 30은(는) 설정등록료 납부시 포기되었습니다.◈
    제29항에 있어서,
    상기 연산부는
    상기 복수의 제1 라인들과 상기 복수의 제2 라인들에 교차 연결되는 복수의 멤리스터들을 포함하며,
    상기 멤리스터들 각각은 웨이트 값에 대응되는 저항값을 포함하며, 저항값에 기반하여 입력신호와 웨이트의 곱에 대응되는 전류를 생성하는 신경망 장치.
  31. 삭제
  32. ◈청구항 32은(는) 설정등록료 납부시 포기되었습니다.◈
    제30항에 있어서,
    상기 드롭아웃 제어부는
    랜덤 신호를 발생하는 랜덤신호 발생부; 및
    상기 입력부와 제1 라인들 사이에 각각 연결되는 스위치들을 포함하며,
    상기 랜덤신호는 복수의 제1 라인의 입력 신호들 중에 일부를 드롭아웃시키는 신경망 장치.
  33. ◈청구항 33은(는) 설정등록료 납부시 포기되었습니다.◈
    제32항에 있어서,
    상기 출력부는
    상기 제2 라인에 연결되어 전류를 전압으로 변환하는 변환부; 및
    설정된 바이어스 전압에 의해 상기 변환부의 출력신호의 활성화 동작을 수행하는 활성화부를 포함하는 신경망 장치.
  34. 복수의 제1 라인들과 복수의 제2 라인들에 각각 교차 위치되고, 각각 웨이트 값에 대응되는 고유 저항값을 가지는 메모리 소자들의 상기 제1 라인들에 복수의 입력신호들을 인가하는 단계;
    상기 메모리 소자들에서 대응되는 상기 입력 신호와 저항 값에 의해 생성되는 전류신호들을 상기 제2라인들에서 합성하여 노드의 신호를 생성하는 단계;
    상기 제2 라인들 중에서 랜덤 신호에 의해 선택되는 제2 라인의 신호를 드롭아웃하는 단계; 및
    상기 제2 라인의 신호들을 활성함수에 의해 활성화시켜 상기 입력신호로 궤환시키는 출력 단계를 포함하는 신경망 장치의 드롭아웃 제어 방법.
  35. ◈청구항 35은(는) 설정등록료 납부시 포기되었습니다.◈
    제34항에 있어서,
    상기 노드의 신호를 생성하는 단계는
    상기 복수의 제1 라인들과 상기 복수의 제2 라인들에 교차 연결되며, 고유의 저항 값들을 가지는 멤리스터들에서 저항값에 기반하여 입력신호와 웨이트의 곱에 대응되는 전류를 생성하는 단계; 및
    상기 제2 라인에 연결된 멤리스터들에서 생성되는 전류들을 합성하여 해당 노드의 SOP(sum of product) 신호를 생성하는 단계를 포함하는 신경망 장치의 드롭아웃 제어 방법.
  36. ◈청구항 36은(는) 설정등록료 납부시 포기되었습니다.◈
    제35항에 있어서,
    상기 드롭아웃하는 단계는
    랜덤 신호를 발생하는 단계; 및
    상기 랜덤신호에 의해 복수의 제2 라인 신호들 중에서 일부를 드롭아웃시키는 단계를 포함하는 신경망 장치의 드롭아웃 제어 방법.
  37. ◈청구항 37은(는) 설정등록료 납부시 포기되었습니다.◈
    제36항에 있어서,
    상기 랜덤 신호는 피보나치 선형 피드백 쉬프트 레지스터에서 생성되는 신경망 장치의 드롭아웃 제어 방법.
  38. ◈청구항 38은(는) 설정등록료 납부시 포기되었습니다.◈
    제37항에 있어서,
    상기 드롭아웃하는 단계는
    상기 제2 라인들 중에서 미리 설정된 비율의 제2 라인들의 SOP 신호들을 드롭아웃시키는 신경망 장치의 드롭아웃 제어 방법.
  39. ◈청구항 39은(는) 설정등록료 납부시 포기되었습니다.◈
    제37항에 있어서,
    상기 출력 단계는
    상기 제2 라인들에 연결되어 전류를 전압으로 변환하는 단계; 및
    설정된 바이어스 전압에 의해 출력신호의 활성 여부를 결정하는 단계를 포함하는 신경망 장치의 드롭아웃 제어 방법.
  40. ◈청구항 40은(는) 설정등록료 납부시 포기되었습니다.◈
    제39항에 있어서,
    상기 활성 여부를 결정하는 단계는
    상기 변환된 전압신호와 설정된 기준전압을 비교하여 활성 여부를 결정하는 신경망 장치의 드롭아웃 제어 방법.
KR1020160172605A 2016-12-16 2016-12-16 신경망 장치의 정규화 장치 및 방법 KR102578124B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160172605A KR102578124B1 (ko) 2016-12-16 2016-12-16 신경망 장치의 정규화 장치 및 방법
TW106123959A TW201824092A (zh) 2016-12-16 2017-07-18 用於標準化神經網路設備的裝置和方法
US15/655,101 US10762416B2 (en) 2016-12-16 2017-07-20 Apparatus and method for normalizing neural network device
CN201710946858.0A CN108205705B (zh) 2016-12-16 2017-10-12 用于归一化神经网络设备的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160172605A KR102578124B1 (ko) 2016-12-16 2016-12-16 신경망 장치의 정규화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180070194A KR20180070194A (ko) 2018-06-26
KR102578124B1 true KR102578124B1 (ko) 2023-09-14

Family

ID=62561809

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160172605A KR102578124B1 (ko) 2016-12-16 2016-12-16 신경망 장치의 정규화 장치 및 방법

Country Status (4)

Country Link
US (1) US10762416B2 (ko)
KR (1) KR102578124B1 (ko)
CN (1) CN108205705B (ko)
TW (1) TW201824092A (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180136202A (ko) * 2017-06-14 2018-12-24 에스케이하이닉스 주식회사 컨볼루션 신경망 및 컨볼루션 신경망을 가진 신경망 시스템
JP6724869B2 (ja) * 2017-06-19 2020-07-15 株式会社デンソー 多層ニューラルネットワークのニューロンの出力レベル調整方法
US11494619B2 (en) * 2017-11-30 2022-11-08 Taiwan Semiconductor Manufacturing Co., Ltd. Device and method for operating the same
JP2020035502A (ja) * 2018-08-28 2020-03-05 キオクシア株式会社 半導体集積回路
US11294763B2 (en) 2018-08-28 2022-04-05 Hewlett Packard Enterprise Development Lp Determining significance levels of error values in processes that include multiple layers
JP6702380B2 (ja) 2018-09-14 2020-06-03 トヨタ自動車株式会社 内燃機関の制御装置
CN109740744A (zh) * 2018-12-13 2019-05-10 南京邮电大学 基于忆阻器矩阵的指定元素权值运算方法
CN109816096B (zh) * 2019-01-23 2022-10-18 长安大学 一种基于忆阻器的感知器神经网络电路及其调节方法
US11615309B2 (en) * 2019-02-27 2023-03-28 Oracle International Corporation Forming an artificial neural network by generating and forming of tunnels
US10984860B2 (en) * 2019-03-26 2021-04-20 Hewlett Packard Enterprise Development Lp Self-healing dot-product engine
JP2022095999A (ja) * 2019-04-19 2022-06-29 国立大学法人北海道大学 ニューラル計算装置、および、ニューラル計算方法
US11295212B1 (en) 2019-04-23 2022-04-05 X Development Llc Deep neural networks via physical electromagnetics simulator
KR102356491B1 (ko) * 2019-04-24 2022-01-27 연세대학교 산학협력단 자성/비자성 다층 박막 메모리 기반 고속 인공 신경망 가속기 및 이의 운용 방법
US11514300B2 (en) 2019-06-14 2022-11-29 Macronix International Co., Ltd. Resistor circuit, artificial intelligence chip and method for manufacturing the same
US11233049B2 (en) 2019-06-14 2022-01-25 Macronix International Co., Ltd. Neuromorphic computing device
TWI698810B (zh) * 2019-06-14 2020-07-11 旺宏電子股份有限公司 類神經計算裝置
US10861562B1 (en) * 2019-06-24 2020-12-08 SK Hynix Inc. Deep learning based regression framework for read thresholds in a NAND flash memory
CN110515454B (zh) * 2019-07-24 2021-07-06 电子科技大学 一种基于内存计算的神经网络架构电子皮肤
US10915248B1 (en) 2019-08-07 2021-02-09 Macronix International Co., Ltd. Memory device
CN110619905A (zh) * 2019-08-09 2019-12-27 上海集成电路研发中心有限公司 一种基于rram忆阻器单元的集合模块及其形成方法
US20210125049A1 (en) * 2019-10-29 2021-04-29 Taiwan Semiconductor Manufacturing Co., Ltd. System for executing neural network
US20210158161A1 (en) * 2019-11-22 2021-05-27 Fraud.net, Inc. Methods and Systems for Detecting Spurious Data Patterns
KR102594829B1 (ko) * 2020-11-11 2023-10-27 한국과학기술연구원 안정적인 스파이크 신호를 제공하는 스파이크 레귤레이터를 포함하는 뉴로모픽 회로
CN113077091B (zh) * 2021-04-09 2024-04-23 中国石油大学(北京) 一种基于机器学习的漏速概率分布预测方法和系统
CN113159293B (zh) * 2021-04-27 2022-05-06 清华大学 一种用于存算融合架构的神经网络剪枝装置及方法
CN113392969B (zh) * 2021-05-14 2022-05-03 宁波物栖科技有限公司 一种降低基于ReRAM的CNN加速器功耗的模型剪枝方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120078827A1 (en) 2007-01-05 2012-03-29 Knowmtech Llc Hierarchical temporal memory methods and systems

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0466022A3 (en) * 1990-07-12 1993-08-25 Allen-Bradley Company, Inc. Teaching method for recurrent neural networks
CN103023839B (zh) * 2012-12-04 2016-12-28 温州大学 基于输出反馈偏置型复连续反馈神经网络结构的无线光通信系统盲均衡方法
KR102230784B1 (ko) * 2013-05-30 2021-03-23 삼성전자주식회사 Stdp 동작을 위한 시냅스 회로 및 시냅스 회로를 포함하는 뉴로모픽 시스템
KR20170078633A (ko) * 2014-10-30 2017-07-07 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 벡터 처리를 위한 더블 바이어스 멤리스티브 내적 엔진
US10181349B2 (en) * 2014-12-15 2019-01-15 Hewlett Packard Enterprise Development Lp Nonvolatile memory cross-bar array
KR102449837B1 (ko) * 2015-02-23 2022-09-30 삼성전자주식회사 신경망 학습 방법 및 장치, 및 인식 방법 및 장치
CN104679863B (zh) * 2015-02-28 2018-05-04 武汉烽火众智数字技术有限责任公司 一种基于深度学习的以图搜图方法和系统
CN105224986B (zh) * 2015-09-29 2018-01-23 清华大学 基于忆阻器件的深度神经网络系统
WO2017131651A1 (en) * 2016-01-27 2017-08-03 Hewlett Packard Enterprise Development Lp Memristive array with parallel reset control devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120078827A1 (en) 2007-01-05 2012-03-29 Knowmtech Llc Hierarchical temporal memory methods and systems

Also Published As

Publication number Publication date
TW201824092A (zh) 2018-07-01
US10762416B2 (en) 2020-09-01
CN108205705A (zh) 2018-06-26
US20180174025A1 (en) 2018-06-21
KR20180070194A (ko) 2018-06-26
CN108205705B (zh) 2022-10-11

Similar Documents

Publication Publication Date Title
KR102578124B1 (ko) 신경망 장치의 정규화 장치 및 방법
CN107924227B (zh) 电阻处理单元
US9646243B1 (en) Convolutional neural networks using resistive processing unit array
US8930291B1 (en) Cortical neuromorphic network, system and method
US5087826A (en) Multi-layer neural network employing multiplexed output neurons
US5056037A (en) Analog hardware for learning neural networks
KR20180028966A (ko) 신경망 하드웨어 가속기 아키텍처 및 그 동작 방법
Hasan et al. On-chip training of memristor based deep neural networks
KR20180070187A (ko) 신경망 장치의 정규화 장치 및 방법
WO2012015450A1 (en) Systems and methods for modeling binary synapses
US20190325291A1 (en) Resistive processing unit with multiple weight readers
KR20190114212A (ko) 이진값 기반 신경회로망을 위한 단일 컬럼 멤리스터 크로스바 및 cmos 활성화 함수 회로
Yakopcic et al. Efficacy of memristive crossbars for neuromorphic processors
KR102366783B1 (ko) 뉴로모픽 시스템 및 뉴로모픽 시스템의 동작방법
KR20200000686A (ko) 웨이트 행렬 입력 회로 및 웨이트 행렬 회로
Ahamed et al. A study on neural network architectures
Solovyeva Types of recurrent neural networks for non-linear dynamic system modelling
Pano-Azucena et al. Prediction of chaotic time series by using ANNs, ANFIS and SVMs
CN114429199A (zh) 可扩展的仿神经电路
Sharma et al. Study of artificial neural networks
Parker et al. Distributed neural network: Dynamic learning via backpropagation with hardware neurons using arduino chips
US11507819B2 (en) Apparatus and method for recognizing information of neuromorphic device with signal extracting circuits for selecting output nodes corresponding to recognition signal having maximum value
Sofatzis et al. The synaptic kernel adaptation network
US20220027712A1 (en) Neural mosaic logic unit
Samir et al. A new training method for solving the XOR problem

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right