KR20200001377A - 뉴로모픽 프로세서 및 그것의 동작 방법 - Google Patents

뉴로모픽 프로세서 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20200001377A
KR20200001377A KR1020180074265A KR20180074265A KR20200001377A KR 20200001377 A KR20200001377 A KR 20200001377A KR 1020180074265 A KR1020180074265 A KR 1020180074265A KR 20180074265 A KR20180074265 A KR 20180074265A KR 20200001377 A KR20200001377 A KR 20200001377A
Authority
KR
South Korea
Prior art keywords
weights
synaptic
postsynaptic
weight
presynaptic
Prior art date
Application number
KR1020180074265A
Other languages
English (en)
Other versions
KR102675781B1 (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 KR1020180074265A priority Critical patent/KR102675781B1/ko
Priority to US16/451,586 priority patent/US11694067B2/en
Publication of KR20200001377A publication Critical patent/KR20200001377A/ko
Priority to US18/197,093 priority patent/US20230281436A1/en
Application granted granted Critical
Publication of KR102675781B1 publication Critical patent/KR102675781B1/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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/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/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Semiconductor Memories (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명의 하나의 실시 예에 따르면, 액손(axon)들을 포함하는 제1 레이어 및 뉴런(neuron)들을 포함하는 제2 레이어를 포함하는 뉴럴 네트워크를 기반으로 데이터를 처리하는 뉴로모픽 프로세서의 동작 방법은 제1 레이어 및 제2 레이어 사이의 시냅틱 가중치들을 수신하는 단계, 시냅틱 가중치들을 액손들의 개수와 동일한 개수의 프리시냅틱(presynaptic) 가중치들과 시냅틱 가중치들의 개수와 동일한 개수의 포스트시냅틱(postsynaptic) 가중치들로 분해하는 단계 및 프리시냅틱 가중치들과 포스트시냅틱 가중치들을 저장하는 단계를 포함하고, 시냅틱 가중치들 각각의 정밀도는 제1 비트 수, 프리시냅틱 가중치들 각각의 정밀도는 제2 비트 수, 포스트시냅틱 가중치들 각각의 정밀도는 제3 비트 수 이고, 제3 비트 수는 제1 비트 수보다 작다.

Description

뉴로모픽 프로세서 및 그것의 동작 방법{NEUROMORPHIC PROCESSOR AND OPERATING METHOD THEREOF}
본 발명은 뉴로모픽 프로세서에 관한 것으로써, 좀 더 상세하게는 액손과 뉴런 사이의 시냅틱 가중치를 분해하는 뉴로모픽 프로세서 및 그것의 동작 방법에 관한 것이다.
뇌는 수천억 개의 신경 세포, 즉 뉴런(neuron)을 포함하고, 뉴런은 시냅스(synapse)를 통해 다른 뉴런과 신호를 주고 받으면서 정보를 학습하고, 기억할 수 있다. 뉴런은 수상돌기를 통해 입력된 시냅스 전위들의 합이 임계 전위보다 크면, 활동 전위를 발생시켜 액손(axon)을 통해 다른 뉴런으로 신호를 전달할 수 있다. 이를 뉴런의 스파이킹(spiking)이라 일컫는다. 뉴런의 스파이킹이 발생되는 경우, 뉴런과 다른 뉴런 사이의 시냅스의 연결 강도에 따라 뉴런으로부터 전달되는 신호의 세기가 달라질 수 있다. 즉, 시냅스의 연결 강도가 조절되면 뉴런으로 전달되는 신호의 세기가 달라질 수 있고, 이로부터 정보의 학습 및 기억이 이루어질 수 있다.
뉴로모픽 프로세서는 생물학적 신경 세포의 정보 전달 및 처리 과정을 모방하여 구성된 반도체 회로이다. 뉴로모픽 프로세서는 시냅스의 연결 강도에 대응하는 값인 시냅틱 가중치(synaptic weight)를 메모리에 저장하고, 저장된 가중치에 기초하여 신호 처리를 수행할 수 있다. 즉, 뉴로모픽 프로세서는 인간의 뇌를 모방하여 지능화된 시스템을 구현하기 위해 활용될 수 있다. 따라서, 뉴로모픽 프로세서는 문자 인식, 음성 인식, 위험 인지, 실시간 고속 신호처리 등에 활용될 수 있다.
그러나, 뉴런을 연결하는 시냅스의 개수가 매우 많기 때문에, 뉴로모픽 프로세서는 각각의 시냅스에 대한 가중치 값을 저장하기 위해 매우 큰 메모리 사용량을 필요로 할 수 있다. 따라서, 뉴로모픽 프로세서에 포함된 메모리의 크기가 커질 수 있으며, 이에 따라 뉴로모픽 프로세서의 칩 면적이 증가할 수 있다.
본 발명은 상술된 기술적 과제를 해결하기 위한 것으로써, 본 발명의 목적은 시냅틱 가중치를 저장하기 위해 이용되는 메모리 사용량을 감소시킬 수 있는 뉴로모픽 프로세서 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 하나의 실시 예에 따르면, 액손(axon)들을 포함하는 제1 레이어 및 뉴런(neuron)들을 포함하는 제2 레이어를 포함하는 뉴럴 네트워크를 기반으로 데이터를 처리하는 뉴로모픽 프로세서의 동작 방법은 상기 제1 레이어 및 상기 제2 레이어 사이의 시냅틱 가중치들을 수신하는 단계, 상기 시냅틱 가중치들을 상기 액손들의 개수와 동일한 개수의 프리시냅틱(presynaptic) 가중치들과 상기 시냅틱 가중치들의 개수와 동일한 개수의 포스트시냅틱(postsynaptic) 가중치들로 분해하는 단계 및 상기 프리시냅틱 가중치들과 상기 포스트시냅틱 가중치들을 저장하는 단계를 포함하고, 상기 시냅틱 가중치들 각각의 정밀도는 제1 비트 수, 상기 프리시냅틱 가중치들 각각의 정밀도는 제2 비트 수, 상기 포스트시냅틱 가중치들 각각의 정밀도는 제3 비트 수 이고, 상기 제3 비트 수는 상기 제1 비트 수보다 작다.
하나의 실시 예에 있어서, 상기 시냅틱 가중치들은 M X N 가중치 매트릭스(matrix)를 형성하고, 상기 프리시냅틱 가중치들은 M X 1 제1 서브 가중치 매트릭스를 형성하고, 상기 포스트시냅틱 가중치들은 M X N 제2 서브 가중치 매트릭스를 형성하고, 상기 M은 상기 액손들의 개수에 대응하는 자연수이고, 상기 N은 상기 뉴런들의 개수에 대응하는 자연수일 수 있다.
하나의 실시 예에 있어서, 상기 시냅틱 가중치들을 상기 프리시냅틱 가중치들 및 상기 포스트시냅틱 가중치들로 분해하는 단계는 상기 시냅틱 가중치들 중 0 이 아닌 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 절대값을 대응하는 시냅틱 가중치의 절대값 이하로 생성하고, 상기 시냅틱 가중치들 중 0 인 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 값을 0 으로 생성하는 단계 및 상기 액손들 각각과 상기 뉴런들 사이의 시냅틱 가중치들의 값들에 기초하여 각각의 액손에 대응하는 프리시냅틱 가중치를 생성하는 단계를 포함할 수 있다.
하나의 실시 예에 있어서, 상기 0 이 아닌 시냅틱 가중치들에 대응하는 상기 포스트시냅틱 가중치들 각각의 절대값이 1 로 생성될 수 있다.
하나의 실시 예에 있어서, 상기 액손들 각각과 상기 뉴런들 사이의 상기 시냅틱 가중치들의 상기 값들에 대하여 제곱평균제곱근(root-mean-square)을 수행한 값에 비례하는 값으로 상기 각각의 액손에 대응하는 상기 프리시냅틱 가중치가 생성될 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 프로세서의 동작 방법은 상기 프리시냅틱 가중치들 중 하나와 이에 대응하는 포스트시냅틱 가중치들을 곱하여 결합 가중치들을 생성하는 단계 및 상기 결합 가중치들에 기초하여 스파이크(spike)를 출력하는 단계를 더 포함할 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 프로세서의 동작 방법은 상기 스파이크의 출력에 기초하여 상기 분해된 포스트시냅틱 가중치들을 업데이트하는 단계를 더 포함할 수 있다.
하나의 실시 예에 있어서, 상기 분해된 포스트시냅틱 가중치들에 대한 업데이트 값은 상기 스파이크의 출력 시간에 기초하여 결정될 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 프로세서의 동작 방법은 상기 업데이트된 포스트시냅틱 가중치들의 값들에 기초하여 상기 분해된 프리시냅틱 가중치들을 업데이트하는 단계를 더 포함할 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 프로세서는 액손(axon)들을 포함하는 제1 레이어 및 뉴런(neuron)들을 포함하는 제2 레이어 사이의 시냅틱 가중치들을 상기 액손들의 개수와 동일한 개수의 프리시냅틱(presynaptic) 가중치들과 상기 시냅틱 가중치들의 개수와 동일한 개수의 포스트시냅틱(postsynaptic) 가중치들로 분해하도록 구성된 시냅틱 가중치 분해 모듈, 상기 프리시냅틱 가중치들을 저장하도록 구성된 제1 시냅스 메모리 및 상기 포스트시냅틱 가중치들을 저장하도록 구성된 제2 시냅스 메모리를 포함하고, 상기 시냅틱 가중치들 각각의 정밀도는 제1 비트 수, 상기 프리시냅틱 가중치들 각각의 정밀도는 제2 비트 수, 상기 포스트시냅틱 가중치들 각각의 정밀도는 제3 비트 수 이고, 상기 제3 비트 수는 상기 제1 비트 수보다 작다.
하나의 실시 예에 있어서, 상기 시냅틱 가중치 분해 모듈은 상기 시냅틱 가중치들 중 0 이 아닌 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 절대값을 대응하는 시냅틱 가중치들의 절대값 이하로 생성하고, 상기 시냅틱 가중치들 중 0 인 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 값을 0 으로 생성하도록 구성될 수 있다.
하나의 실시 예에 있어서, 상기 시냅틱 가중치 분해 모듈은 상기 0 이 아닌 시냅틱 가중치들에 대응하는 상기 포스트시냅틱 가중치들 각각의 절대값을 1 로 생성하도록 구성될 수 있다.
하나의 실시 예에 있어서, 상기 시냅틱 가중치 분해 모듈은 상기 액손들 중 특정 액손과 상기 뉴런들 사이의 시냅틱 가중치들의 값들에 기초하여 상기 특정 액손에 대응하는 프리시냅틱 가중치를 생성하도록 구성될 수 있다.
하나의 실시 예에 있어서, 상기 시냅틱 가중치 분해 듈은 상기 특정 액손과 상기 뉴런들 사이의 상기 시냅틱 가중치들의 상기 값들에 대하여 제곱평균제곱근(root-mean-square)을 수행한 값에 비례하는 값으로 상기 특정 액손에 대응하는 상기 프리시냅틱 가중치를 생성하도록 구성될 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 프로세서는 상기 액손들 중 특정 액손에 대응하는 스파이크(spike)를 출력하도록 구성된 액손 모듈을 더 포함하고, 상기 제1 시냅스 메모리는 상기 스파이크에 응답하여 상기 특정 액손에 대응하는 프리시냅틱 가중치를 출력하고, 상기 제2 시냅스 메모리는 상기 스파이크에 응답하여 상기 특정 액손에 대응하는 포스트시냅틱 가중치들을 출력하도록 구성될 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 프로세서는 상기 특정 액손에 대응하는 프리시냅틱 가중치와 상기 특정 액손에 대응하는 포스트시냅틱 가중치들을 곱하여 결합 가중치들을 생성하도록 구성된 분해 가중치 결합 모듈을 더 포함할 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 프로세서는 상기 결합 가중치들을 수신하고, 상기 뉴런들 각각에 대응하는 결합 가중치에 기반하여 각각의 뉴런에 대응하는 스파이크를 출력하도록 구성된 뉴런 모듈을 더 포함할 수 있다.
하나의 실시 예에 있어서, 상기 뉴런 모듈은 상기 각각의 뉴런에 대응하는 상기 스파이크의 출력에 기초하여 상기 제2 시냅스 메모리에 저장된 상기 포스트시냅틱 가중치들을 업데이트하도록 더 구성될 수 있다.
하나의 실시 예에 있어서, 상기 뉴런 모듈은 상기 포스트시냅틱 가중치들 대한 업데이트 값을 상기 스파이크의 출력 시간에 기초하여 결정하도록 구성될 수 있다.
하나의 실시 예에 있어서, 상기 뉴런 모듈은 상기 업데이트된 포스트시냅틱 가중치들의 값들에 기초하여 상기 제1 시냅스 메모리에 저장된 상기 프리시냅틱 가중치들을 업데이트하도록 더 구성될 수 있다.
본 발명의 실시 예에 따르면, 뉴로모픽 프로세서의 메모리 사용량을 감소시킬 수 있다.
또한, 본 발명의 실시 예에 따른 뉴로모픽 프로세서는 메모리를 적게 사용하면서 데이터 연산 및 처리에 대한 정확도를 유지할 수 있다.
도 1은 본 발명의 실시 예에 따른 뉴럴 네트워크의 예시를 나타내는 도면이다.
도 2는 도 1의 뉴럴 네트워크의 시냅스들의 연결 상태를 어레이(array) 형태로 나타낸 도면이다.
도 3은 본 발명의 하나의 실시 예에 따른 뉴로모픽 프로세서를 나타내는 블록도이다.
도 4는 도 3의 뉴로모픽 프로세서의 상세 블록도이다.
도 5는 본 발명의 하나의 실시 예에 따른 뉴럴 네트워크의 예시를 보여주는 도면이다.
도 6은 도 4의 시냅틱 가중치 분해 모듈의 동작을 나타내는 도면이다.
도 7은 도 4의 액손 모듈의 동작을 나타내는 도면이다.
도 8은 도 4의 분해 가중치 결합 모듈 및 뉴런 모듈의 동작을 나타내는 도면이다.
도 9는 도 4의 뉴런 모듈의 업데이트 동작을 나타내는 도면이다.
도 10은 도 3의 뉴로모픽 프로세서의 시냅틱 가중치 분해 동작을 나타내는 순서도이다.
도 11은 도 3의 뉴로모픽 프로세서의 학습 동작을 나타내는 블록도이다.
도 12는 도 3의 뉴로모픽 프로세서의 추론 동작을 나타내는 순서도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시 예들이 상세하게 설명된다. 이하의 설명에서, 상세한 구성들 및 구조들과 같은 세부적인 사항들은 단순히 본 발명의 실시 예들의 전반적인 이해를 돕기 위하여 제공된다. 그러므로 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 본문에 기재된 실시 예들의 변형들은 통상의 기술자 의해 수행될 수 있다. 더욱이, 명확성 및 간결성을 위하여 잘 알려진 기능들 및 구조들에 대한 설명들은 생략된다. 본 명세서에서 사용된 용어들은 본 발명의 기능들을 고려하여 정의된 용어들이며, 특정 기능에 한정되지 않는다. 용어들의 정의는 상세한 설명에 기재된 사항을 기반으로 결정될 수 있다.
이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 직접적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.
상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module), 계층(layer), 로직(logic) 등의 용어를 참조하여 설명되는 구성 요소들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 애플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈(Micro Electro Mechanical System; MEMS), 수동 소자, 또는 그것들의 조합을 포함할 수 있다.
다르게 정의되지 않는 한, 본문에서 사용되는 기술적 또는 과학적인 의미를 포함하는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자에 의해 이해될 수 있는 의미를 갖는다. 일반적으로 사전에서 정의된 용어들은 관련된 기술 분야에서의 맥락적 의미와 동등한 의미를 갖도록 해석되며, 본문에서 명확하게 정의되지 않는 한, 이상적 또는 과도하게 형식적인 의미를 갖도록 해석되지 않는다.
도 1은 본 발명의 실시 예에 따른 뉴럴 네트워크의 예시를 나타내는 도면이다. 도 1을 참조하면, 뉴럴 네트워크는 액손들(A1~Am), 뉴런들(N1~Nn) 및 시냅스들(S)을 포함할 수 있다. 시냅스들(S)은 액손들(A1~Am)과 뉴런들(N1~Nn)을 연결할 수 있다. 액손들(A1~Am)은 뉴럴 네트워크의 제1 레이어(layer)(L1)에 포함되고, 뉴런들(N1~Nn)은 뉴럴 네트워크의 제2 레이어(L2)에 포함될 수 있다. 제1 레이어(L1)는 m 개의 액손들(A1~Am)을 포함할 수 있고, 제2 레이어(L2)는 n 개의 뉴런들(N1~Nn)을 포함할 수 있다. 여기서, m 및 n은 임의의 자연수일 수 있으며, m과 n은 서로 다른 수 또는 서로 같은 수일 수 있다.
제1 레이어(L1)의 액손들(A1~Am) 각각은 액손 스파이크(spike)를 출력할 수 있다. 시냅스들(S)은 출력된 액손 스파이크에 기초하여 제2 레이어(L2)의 뉴런들(N1~Nn)로 신호를 전달할 수 있다. 하나의 액손으로부터 액손 스파이크가 출력되더라도, 시냅스들(S) 각각의 연결 강도인 시냅틱 가중치에 따라 시냅스들(S) 각각으로부터 뉴런들(N1~Nn)로 전달되는 신호는 달라질 수 있다. 예를 들어, 제1 시냅스의 시냅틱 가중치가 제2 시냅스의 시냅틱 가중치보다 큰 경우, 제1 시냅스와 연결된 뉴런은 제2 시냅스와 연결된 뉴런보다 더 큰 값의 신호를 수신할 수 있다.
제2 레이어(L2)의 뉴런들(N1~Nn) 각각은 시냅스들(S)로부터 전달된 신호를 수신하고, 수신된 신호에 기초하여 뉴런 스파이크를 출력할 수 있다. 예시적으로, 뉴런들(N1~Nn) 각각은 수신된 신호의 누적 값이 임계 값보다 커지는 경우, 뉴런 스파이크를 출력할 수 있다.
예를 들어, 도 1에 도시된 바와 같이, 제2 액손(A2)이 액손 스파이크를 출력하는 경우, 제2 액손(A2)과 연결된 시냅스들(S)은 뉴런들(N1~Nn)로 신호를 전달할 수 있다. 전달되는 신호는 제2 액손(A2)과 연결된 시냅스들(S) 각각의 시냅틱 가중치에 따라 다를 수 있다. 제2 액손(A2)과 제2 뉴런(N2)을 연결하는 시냅스(S22)로부터 제2 뉴런(N2)으로 신호가 전달되고, 전달된 신호에 따라 제2 뉴런(N2)의 누적 신호 값이 임계 값보다 커지는 경우, 제2 뉴런(N2)은 뉴런 스파이크를 출력할 수 있다.
도 1에 도시된 바와 같이, 본 발명의 실시 예들에 있어서, 액손들(A1~Am)이 포함된 레이어는 뉴런들(N1~Nn)이 포함된 레이어보다 이전 레이어일 수 있다. 또한, 뉴런들(N1~Nn)이 포함된 레이어는 액손들(A1~Am)이 포함된 레이어보다 이후 레이어일 수 있다. 따라서, 액손들(A1~Am)로부터 출력되는 액손 스파이크에 따라 다음 레이어의 뉴런들(N1~Nn)로 신호가 전달되고, 뉴런들(N1~Nn)은 전달된 신호에 기초하여 뉴런 스파이크를 출력할 수 있다. 즉, 액손들(A1~Am)은 다음 레이어의 뉴런들(N1~Nn)로 신호를 전달하는 역할을 수행하고, 뉴런들(N1~Nn)은 전달된 신호에 기초하여 뉴런 스파이크를 출력하는 역할을 수행할 수 있다.
도 1에는 도시되지 않았지만, 제2 레이어(L2)에서의 뉴런 스파이크의 출력에 따라 그 다음 레이어(즉, 제3 레이어)의 뉴런들로 신호가 전달될 수 있다. 이 경우, 뉴런 스파이크의 출력에 따라 제2 레이어(L2)의 액손들이 액손 스파이크를 출력하고, 출력된 액손 스파이크에 기초하여 제3 레이어의 뉴런들로 신호가 전달될 수 있다. 제3 레이어의 뉴런들은 전달된 신호에 기초하여 뉴런 스파이크를 출력할 수 있다. 즉, 하나의 레이어는 액손들 및 뉴런들을 모두 포함할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 하나의 레이어는 액손들 또는 뉴런들 중 하나를 포함할 수 있다.
도 1의 뉴럴 네트워크는 제1 레이어(L1) 및 제2 레이어(L2)를 포함하는 것으로 도시되어 있지만, 본 발명은 이에 한정되지 않으며, 뉴럴 네트워크는 다양한 개수의 레이어들을 포함할 수 있다. 다양한 개수의 레이어들이 존재하더라도 각각의 레이어들의 동작은 도 1에서 설명된 것과 유사하게 동작할 수 있다. 따라서, 도 1의 뉴럴 네트워크는 다양한 계층의 뉴럴 네트워크로 확장될 수 있다.
도 2는 도 1의 뉴럴 네트워크의 시냅스들의 연결 상태를 어레이(array) 형태로 나타낸 도면이다. 도 2를 참조하면, 뉴럴 네트워크는 액손들(A1~Am), 뉴런들(N1~Nn) 및 시냅스들(S11~Smn)을 포함할 수 있다. 제1 액손(A1)은 시냅스들(S11~S1n)을 통해 뉴런들(N1~Nn)과 연결되고, 제2 액손(A2)은 시냅스들(S21~S2n)을 통해 뉴런들(N1~Nn)과 연결될 수 있다. 마찬가지로, 제m 액손(Am)은 시냅스들(Sm1~Smn)을 통해 뉴런들(N1~Nn)과 연결될 수 있다.
제1 액손(A1)은 제1 수평 라인(PL1)을 통해 시냅스들(S11~S1n)과 연결되고, 제2 액손(A2)은 제2 수평 라인(PL2)을 통해 시냅스들(S21~S2n)과 연결될 수 있다. 마찬가지로, 제m 액손(Am)은 제m 수평 라인(PLm)을 통해 시냅스들(Sm1~Smn)과 연결될 수 있다. 제1 뉴런(N1)은 제1 수직 라인(VL1)을 통해 시냅스들(S11~Sm1)과 연결되고, 제2 뉴런(N2)은 제2 수직 라인(VL2)을 통해 시냅스들(S12~Sm2)과 연결될 수 있다. 마찬가지로, 제n 뉴런(Nn)은 제n 수직 라인(VLn)을 통해 시냅스들(S1n~Smn)과 연결될 수 있다. 각각의 수평 라인은 하나의 액손이 액손 스파이크를 전달하는 신호 라인일 수 있고, 각각의 수직 라인은 시냅스들이 액손 스파이크에 응답하여 시냅틱 가중치에 따른 신호를 하나의 뉴런으로 전달하는 신호 라인일 수 있다.
도 2의 m X n 개의 시냅스들(S11~Smn)은 각각 시냅틱 가중치를 포함할 수 있다. 도 2에는 각각의 시냅스들(S11~Smn)에 대응하는 시냅틱 가중치들(w11~wmn)이 도시되고, 가중치 매트릭스(W)는 m X n 개의 시냅틱 가중치들(w11~wmn)을 포함할 수 있다. 즉, 가중치 매트릭스(W)는 m X n 매트릭스일 수 있다.
도 2에 도시된 바와 같이, 제2 액손(A2)이 액손 스파이크를 출력하는 경우, 제2 수평 라인(PL2)을 통해 액손 스파이크가 시냅스들(S21~S2n)로 전달될 수 있다. 수신된 액손 스파이크에 응답하여 시냅스들(S21~S2n)은 각각의 시냅틱 가중치에 따라 뉴런들(N1~Nn)로 신호를 전달할 수 있다. 뉴런들(N1~Nn)로 전달되는 신호는 각각의 시냅틱 가중치에 대응하는 신호일 수 있다. 예를 들어, 제2 액손(A2)과 제2 뉴런(N2)을 연결하는 시냅스(S22)는 시냅틱 가중치(w22)에 대응하는 신호를 제2 뉴런(N2)으로 전달할 수 있다. 제2 뉴런(N2)은 전달된 신호에 따라 누적된 신호 값이 미리 저장된 임계 값보다 큰 경우, 뉴런 스파이크를 출력할 수 있다.
도 2의 시냅틱 가중치들(w11~wmn)을 메모리에 저장하는 경우, 필요한 전체 메모리 용량은 시냅틱 가중치들의 개수와 시냅틱 가중치의 정밀도(precision)를 곱한 값일 수 있다. 시냅틱 가중치의 정밀도는 시냅틱 가중치 값의 범위를 가리킬 수 있으며, 시냅틱 가중치의 정밀도가 높을수록 시냅틱 가중치를 표현하는 비트 수가 클 수 있다. 즉, 비트 수는 각각의 시냅틱 가중치의 값을 나타내는 비트들의 개수이다. 예를 들어, 시냅틱 가중치들(w11~wmn)의 개수가 m X n 이고, 각각의 시냅틱 가중치의 정밀도가 p-비트(bit)인 경우, 시냅틱 가중치들(w11~wmn)을 저장하기 위해 필요한 메모리 용량은 m X n X p 일 수 있다. 일반적으로, 시냅틱 가중치들(w11~wmn)의 개수가 크기 때문에, 시냅틱 가중치의 정밀도가 높은 경우, 시냅틱 가중치들(w11~wmn)을 저장하기 위해 필요한 메모리 용량이 매우 클 수 있다. 따라서, 도 2의 시냅틱 가중치들(w11~wmn)을 그대로 저장하는 경우, 메모리의 사용량이 커질 수 있다.
도 3은 본 발명의 하나의 실시 예에 따른 뉴로모픽 프로세서를 나타내는 블록도이다. 도 3을 참조하면, 뉴로모픽 프로세서(100)는 입력 데이터를 수신하고, 수신된 입력 데이터를 처리할 수 있다. 뉴로모픽 프로세서(100)는 입력 데이터의 처리에 따라 생성된 결과 데이터를 출력할 수 있다. 예를 들어, 문자 인식을 위해 뉴로모픽 프로세서(100)가 이용되는 경우, 입력 데이터는 이미지 데이터, 시냅틱 가중치 및 뉴럴 네트워크의 토폴로지(topology) 데이터 등을 포함할 수 있고, 결과 데이터는 이미지 데이터 및 시냅틱 가중치 등으로부터 판별된 특정 문자를 나타내는 데이터를 포함할 수 있다. 즉, 뉴로모픽 프로세서(100)는 입력 데이터에 기초하여 학습(learning)을 수행하고, 입력 데이터에 대하여 원하는 결과 데이터를 판별하기 위한 추론(inference)을 수행할 수 있다.
뉴로모픽 프로세서(100) 또는 뉴로모픽 프로세서(100)의 구성 요소들은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 하드웨어, 소프트웨어, 펌웨어의 조합을 활용하여 구현될 수 있다. 예를 들어, 뉴로모픽 프로세서(100) 또는 뉴로모픽 프로세서(100)의 구성 요소들은 하나의 집적 회로(IC; integrated circuit) 칩 또는 별도의 IC 칩들 상에 구현될 수 있다. 뉴로모픽 프로세서(100)는 사물인터넷(IoT) 센서, 스마트폰, 데스크탑, 서버 등에 탑재될 수 있다. 또한, 뉴로모픽 프로세서(100)는 중앙 처리 장치(CPU), 애플리케이션 프로세서(AP), 마이크로 컨트롤러(MCU) 또는 가속기 등에 포함될 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 뉴로모픽 프로세서(100)는 별도의 칩 형태로 존재할 수 있다.
뉴로모픽 프로세서(100)는 시냅틱 가중치 분해 모듈(110), 제1 시냅스 메모리(120-1) 및 제2 시냅스 메모리(120-2)를 포함할 수 있다. 시냅틱 가중치 분해 모듈(110)은 시냅틱 가중치들을 프리시냅틱 가중치(presynaptic weight)들과 포스트시냅틱 가중치(postsynaptic weight)들로 분해할 수 있다. 시냅틱 가중치들은 입력 데이터에 포함되어 뉴로모픽 프로세서(100)로 제공되는 데이터일 수 있다. 예시적으로, 각각의 시냅틱 가중치의 정밀도(즉, 비트 수)는 p-비트, 각각의 프리시냅틱 가중치의 정밀도(즉, 비트 수)는 k-비트, 각각의 포스트시냅틱 가중치의 정밀도(즉, 비트 수)는 q-비트일 수 있다. 이 경우, 포스트시냅틱 가중치의 정밀도는 시냅틱 가중치의 정밀도보다 낮을 수 있다. 즉, q 는 p 보다 작을 수 있고, 포스트시냅틱 가중치는 시냅틱 가중치보다 더 적은 비트 수로 표현될 수 있다.
또는, 시냅틱 가중치들 각각이 서로 다른 비트 수로 표현되는 경우, 시냅스 가중치 분해 모듈(110)은 포스트시냅틱 가중치들 각각의 비트 수가 시냅틱 가중치들을 표현하는 비트 수 중 가장 큰 비트 수보다 작은 비트 수로 표현되도록 시냅틱 가중치들을 분해할 수 있다.
도 2에 도시된 바와 같이, 시냅틱 가중치들(w11~wmn)이 제공되는 경우, 시냅틱 가중치 분해 모듈(110)은 시냅틱 가중치들(w11~wmn)을 프리시냅틱 가중치들 및 포스트시냅틱 가중치들로 분해할 수 있다. 분해 결과로 생성되는 프리시냅틱 가중치들의 개수는 액손들(A1~Am)의 개수와 동일한 m 개일 수 있고, 포스트시냅틱 가중치들의 개수는 시냅틱 가중치들(w11~wmn)의 개수와 동일한 m X n 개일 수 있다. 즉, 도 2의 m X n 가중치 매트릭스(W)가 제공되는 경우, 시냅틱 가중치 분해 모듈(110)은 가중치 매트릭스(W)를 m X 1 제1 서브 가중치 매트릭스와 m X n 제2 서브 가중치 매트릭스로 분해할 수 있다.
시냅틱 가중치 분해 모듈(110)로부터 생성된 프리시냅틱 가중치들은 제1 시냅스 메모리(120-1)에 저장되고, 포스트시냅틱 가중치들은 제2 시냅스 메모리(120-2)에 저장될 수 있다.
시냅틱 가중치 분해 모듈(110)이 m X n 개의 시냅틱 가중치들을 분해하여 k-비트로 표현되는 m 개의 프리시냅틱 가중치들과 q-비트로 표현되는 m X n 개의 포스트시냅틱 가중치들을 생성하는 경우, 프리시냅틱 가중치들을 저장하기 위해 필요한 제1 시냅스 메모리(120-1)의 용량은 m X k 이고, 포스트시냅틱 가중치들을 저장하기 위해 필요한 제2 시냅스 메모리(120-2)의 용량은 m X n X q 일 수 있다. 따라서, 제1 시냅스 메모리(120-1)와 제2 시냅스 메모리(120-2) 전체에서 사용되는 메모리 용량은 m X k + m X n X q 일 수 있다. 일반적으로 뉴럴 네트워크를 구성하는 액손들 및 뉴런들의 개수(즉, m 및 n)는 비트의 개수를 나타내는 수(즉, p, k, 및 q)에 비해 훨씬 크기 때문에, 전체 메모리 용량(m X k + m X n X q)에서 제1 시냅스 메모리(120-1)의 용량(m X k)은 무시될 수 있고, 사용되는 전체 메모리 용량은 약 m X n X q 일 수 있다.
도 2에서 설명한 바와 같이, p-비트로 표현되는 m X n 개의 시냅틱 가중치들을 저장하기 위해 필요한 메모리의 용량은 m X n X p 일 수 있다. 포스트시냅틱 가중치의 비트 수인 q 가 시냅틱 가중치의 비트 수인 p 보다 작으므로, m X n X q 은 m X n X p 보다 작다. 따라서, 시냅틱 가중치들이 분해되기 전에 사용되는 메모리 용량보다 시냅틱 가중치들이 분해된 후에 사용되는 메모리 용량이 작아질 수 있다. 또한, 포스트시냅틱 가중치의 낮은 정밀도를 프리시냅틱 가중치의 정밀도가 보상해 주기 때문에 시냅틱 가중치들이 분해되어도 뉴로모픽 프로세서(100)의 정확도는 감소되지 않을 수 있다. 즉, 본 발명의 실시 예들에 따른 뉴로모픽 프로세서(100)는 시냅틱 가중치들을 프리시냅틱 가중치들 및 포스트시냅틱 가중치들로 분해함으로써 메모리 사용량을 감소시킬 수 있고, 데이터 연산 및 처리에 대한 정확도를 유지할 수 있다.
도 4는 도 3의 뉴로모픽 프로세서의 상세 블록도이다. 도 4를 참조하면, 뉴로모픽 프로세서(100)는 시냅틱 가중치 분해 모듈(110), 제1 시냅스 메모리(120-1), 제2 시냅스 메모리(120-2), 액손 모듈(130), 분해 가중치 결합 모듈(140) 및 뉴런 모듈(150)을 포함할 수 있다. 도 4의 시냅틱 가중치 분해 모듈(110), 제1 시냅스 메모리(120-1) 및 제2 시냅스 메모리(120-2)의 동작은 도 3의 시냅틱 가중치 분해 모듈(110), 제1 시냅스 메모리(120-1) 및 제2 시냅스 메모리(120-2)의 동작과 유사하므로 상세한 설명은 생략될 수 있다.
시냅틱 가중치 분해 모듈(110)은 p-비트로 표현되는 시냅틱 가중치들을 k-비트로 표현되는 프리시냅틱 사중치들과 q-비트로 표현되는 포스트시냅틱 가중치들로 분해할 수 있다. 액손들은 포함하는 제1 레이어 및 뉴런들을 포함하는 제2 레이어 사이의 시냅틱 가중치들이 분해되는 경우, 프리시냅틱 가중치들의 개수는 액손들의 개수와 동일할 수 있고, 포스트시냅틱 가중치들의 개수는 시냅틱 가중치들의 개수(즉, 시냅스의 개수)와 동일할 수 있다. 또한, 포스트시냅틱 가중치의 비트 수인 q 는 시냅틱 가중치의 비트 수인 p 보다 작을 수 있다.
제1 시냅스 메모리(120-1)는 시냅틱 가중치 분해 모듈(110)로부터 제공되는 프리시냅틱 가중치들을 저장할 수 있다. 제2 시냅스 메모리(120-2)는 시냅틱 가중치 분해 모듈(110)로부터 제공되는 포스트시냅틱 가중치들을 저장할 수 있다.
제1 시냅스 메모리(120-1) 및 제2 시냅스 메모리(120-2)는 각각 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같은 휘발성 메모리 장치 및 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM), 플래시 메모리 등과 같은 불휘발성 메모리 장치 중 하나로 구현될 수 있다. 도 4에 도시된 바와 같이, 제1 시냅스 메모리(120-1) 및 제2 시냅스 메모리(120-2)는 하나의 시냅스 메모리(120)에 포함될 수 있지만, 본 발명이 이에 한정되는 것은 아니며, 각각 별도의 메모리로 구현될 수 있다.
액손 모듈(130)은 액손들 중 특정 액손에 대응하는 액손 스파이크를 출력하여 시냅스 메모리(120)로 제공할 수 있다. 시냅스 메모리(120)는 액손 스파이크에 응답하여 제1 시냅스 메모리(120-1)로부터 특정 액손에 대응하는 프리시냅틱 가중치를 출력하고, 제2 시냅스 메모리(120-2)로부터 특정 액손에 대응하는 포스트시냅틱 가중치들을 출력할 수 있다. 제1 시냅스 메모리(120-1)에 저장된 프리시냅틱 가중치들 각각은 액손들 각각과 대응할 수 있으며, 이에 따라 특정 액손에 대응하는 한 개의 프리시냅틱 가중치가 출력될 수 있다.
제2 시냅스 메모리(120-2)에 저장된 포스트시냅틱 가중치들 각각은 액손들 및 뉴런들을 연결하는 시냅스들 각각과 대응할 수 있다. 이에 따라, 특정 액손과 대응하는 포스트시냅틱 가중치들은 특정 액손과 뉴런들을 연결하는 시냅스들의 개수만큼 존재할 수 있다. 예를 들어, 제2 시냅스 메모리(120-2)에 m X n 개의 포스트시냅틱 가중치들이 저장된 경우, 특정 액손에 대응하는 포스트시냅틱 가중치들의 개수는 n 개일 수 있다.
액손 모듈(130)은 뉴런 모듈(150)로부터 출력되는 뉴런 스파이크를 수신할 수 있다. 액손 모듈(130)은 뉴런 스파이크에 응답하여 액손들 중 적어도 하나 이상의 액손에 대응하는 액손 스파이크를 출력할 수 있다. 예를 들어, 뉴런들과 액손들의 개수가 동일하고, 특정 뉴런으로부터 뉴런 스파이크가 출력된 경우, 액손 모듈(130)은 특정 뉴런에 대응하는 액손을 판별하고, 판별된 액손에 대응하는 액손 스파이크를 출력할 수 있다. 즉, 액손 모듈(130)은 하나의 뉴런과 대응하는 액손에 대한 대응 정보를 미리 저장할 수 있고, 뉴런 스파이크에 따라 저장된 대응 정보에 기초하여 액손 스파이크를 출력할 수 있다.
분해 가중치 결합 모듈(140)은 제1 시냅스 메모리(120-1)로부터 출력되는 프리시냅틱 가중치와 제2 시냅스 메모리(120-2)로부터 출력되는 포스트시냅틱 가중치들을 수신할 수 있다. 분해 가중치 결합 모듈(140)은 프리시냅틱 가중치와 포스트시냅틱 가중치들을 곱하여 결합 가중치들을 생성할 수 있다. 결합 가중치는 프리시냅틱 가중치와 각각의 포스트시냅틱 가중치를 곱한 값일 수 있다. 이에 따라, 생성되는 결합 가중치들의 개수는 포스트시냅틱 가중치들의 개수와 동일할 수 있고, 각각의 결합 가중치들은 뉴런들 각각에 대응할 수 있다.
결합 가중치는 프리시냅틱 가중치와 포스트시냅틱 가중치가 곱해진 값이기 때문에 결합 가중치의 비트 수는 프리시냅틱 가중치의 비트 수 또는 포스트시냅틱 가중치의 비트 수보다 클 수 있다. 예를 들어, 프리시냅틱 가중치의 비트 수가 k-비트 이고, 포스트시냅틱 가중치의 비트 수가 q-비트 인 경우, 결합 가중치의 비트 수는 (k + q)-비트 일 수 있다. 생성된 결합 가중치는 뉴런 모듈(150)로 제공되고, 이에 따라 뉴런 모듈(150)은 높은 정밀도의 결합 가중치에 기초하여 동작을 수행할 수 있다. 뉴런 모듈(150)이 높은 정밀도의 결합 가중치에 기초하여 동작하므로, 뉴로모픽 프로세서(100)는 데이터의 연산 및 처리에 있어서 정확도를 유지할 수 있다.
뉴런 모듈(150)은 결합 가중치들을 수신할 수 있다. 뉴런 모듈(150)은 뉴런들 각각에 대응하는 결합 가중치에 기반하여 각각의 뉴런에 대응하는 뉴런 스파이크를 출력할 수 있다. 예를 들어, 뉴런 모듈(150)은 결합 가중치에 기초하여 특정 뉴런에 대응하는 신호 값을 증가시키거나 감소시킬 수 있다. 신호 값이 미리 저장된 임계 값보다 커지는 경우, 뉴런 모듈(150)은 특정 뉴런에 대응하는 뉴런 스파이크를 출력할 수 있다. 뉴런 모듈(150)은 출력된 뉴런 스파이크를 액손 모듈(130)로 제공할 수 있다.
뉴런 모듈(150)은 뉴런 스파이크의 출력 여부에 기초하여 업데이트 신호를 출력할 수 있다. 제2 시냅스 메모리(120-2)는 업데이트 신호에 응답하여 저장된 포스트시냅틱 가중치들의 값을 업데이트할 수 있다. 예를 들어, 특정 뉴런에 대응하는 뉴런 스파이크가 출력된 경우, 뉴런 모듈(150)은 특정 뉴런에 연결된 시냅스들에 대응하는 가중치들을 업데이트하기 위한 업데이트 신호를 출력할 수 있다. 제2 시냅스 메모리(120-2)는 업데이트 신호에 응답하여 특정 뉴런에 연결된 시냅스들에 대응하는 포스트시냅틱 가중치들을 업데이트할 수 있다. m X n 개의 포스트시냅틱 가중치들이 저장된 경우, 제2 시냅스 메모리(120-2)는 특정 뉴런과 대응하는 m 개의 포스트시냅틱 가중치들을 업데이트할 수 있다.
또는 뉴런 모듈(150)의 업데이트 신호에 응답하여 제1 시냅스 메모리(120-1)는 프리시냅틱 가중치들을 업데이트할 수 있다. 예를 들어, 뉴런 모듈(150)은 업데이트된 포스트시냅틱 가중치들 중 미리 설정된 값보다 큰 가중치들의 개수를 판별할 수 있다. 미리 설정된 값보다 큰 포스트시냅틱 가중치들의 개수가 미리 설정된 개수보다 커지는 경우, 뉴런 모듈(150)은 프리시냅틱 가중치들과 포스트시냅틱 가중치들을 업데이트할 수 있다. 여기서, 미리 설정된 값은 포스트시냅틱 가중치의 정밀도(즉, 비트 수)에 따라 달라질 수 있고, 미리 설정된 개수는 포스트시냅틱 가중치들의 전체 개수(즉, 시냅틱 가중치들의 전체 개수)에 따라 달라질 수 있다. 따라서, 프리시냅틱 가중치들에 대한 업데이트 횟수는 포스트시냅틱 가중치들에 대한 업데이트 횟수보다 적을 수 있다.
뉴로모픽 프로세서(100)가 입력 데이터에 대하여 학습을 수행하는 경우, 뉴런 모듈(150)로부터의 업데이트 신호에 따라 포스트시냅틱 가중치들이 업데이트 될 수 있다. 학습 동작에서 포스트시냅틱 가중치들만이 업데이트 되는 경우, 시냅스 메모리(120)에 대한 전체 접근 횟수가 감소될 수 있고, 이에 따라 업데이트 동작이 빠르게 수행될 수 있다.
뉴로모픽 프로세서(100)가 입력 데이터에 대하여 추론을 수행하는 경우, 뉴런 모듈(150)은 업데이트 신호를 출력하지 않을 수 있다. 뉴로모픽 프로세서(100)는 뉴런 모듈(150)로부터 출력되는 뉴런 스파이크에 기초하여 결과 데이터를 출력할 수 있다.
도 5는 본 발명의 하나의 실시 예에 따른 뉴럴 네트워크의 예시를 보여주는 도면이다. 도 5를 참조하면, 뉴럴 네트워크는 제1 및 제2 액손들(A1, A2), 제1 내지 제3 뉴런들(N1~N3) 및 시냅스들(S11~S23)을 포함할 수 있다. 제1 액손(A1)은 시냅스들(S11~S13)을 통해 제1 내지 제3 뉴런들(N1~N3)과 연결되고, 제2 액손(A2)은 시냅스들(S21~S23)을 통해 제1 내지 제3 뉴런들(N1~N3)과 연결될 수 있다. 가중치 매트릭스(W)의 시냅틱 가중치들(w11~w23)은 시냅스들(S11~S23)의 연결 강도를 나타낼 수 있다. 즉, 도 5의 뉴럴 네트워크는 2 X 3 개의 시냅틱 가중치들(w11~w23)을 포함할 수 있다.
이하에서는 도 5의 뉴럴 네트워크를 기준으로 도 4의 뉴로모픽 프로세서(100)의 동작을 상세하게 설명할 것이다. 그러나, 본 발명이 도 5의 뉴럴 네트워크에 한정되는 것이 아니며, 본 발명의 뉴로모픽 프로세서(100)는 다양한 뉴럴 네트워크에 대하여 동작할 수 있다.
도 6은 도 4의 시냅틱 가중치 분해 모듈의 동작을 나타내는 도면이다. 시냅틱 가중치 분해 모듈(110)은 6 개의 시냅틱 가중치들(w11~w23)을 2 개의 프리시냅틱 가중치들(prw1, prw2)과 6 개의 포스트시냅틱 가중치들(pow11~pow23)로 분해할 수 있다. 즉, 시냅틱 가중치 분해 모듈(110)은 2 X 3 가중치 매트릭스(W)를 2 X 1 제1 서브 가중치 매트릭스(SW1)와 2 X 3 제2 서브 가중치 매트릭스(SW2)로 분해할 수 있다.
시냅틱 가중치들(w11~w23) 각각은 p-비트로 표현되고, 프리시냅틱 가중치들(prw1, prw2) 각각은 k-비트로 표현되고, 포스트시냅틱 가중치들(pow11~pow23) 각각은 q-비트로 표현될 수 있다. 포스트시냅틱 가중치의 비트 수를 나타내는 q 는 시냅틱 가중치의 비트 수를 나타내는 p 보다 작을 수 있다.
시냅틱 가중치 분해 모듈(110)은 도 5의 액손들(A1, A2)의 개수와 동일한 개수(즉, 2 개)로 프리시냅틱 가중치들(prw1, prw2)을 생성할 수 있다. 이에 따라, 프리시냅틱 가중치(prw1)는 제1 액손(A1)에 대응하고, 프리시냅틱 가중치(prw2)는 제2 액손(A2)에 대응할 수 있다.
시냅틱 가중치 분해 모듈(110)은 시냅틱 가중치들(w11~w23) 또는 도 5의 시냅스들(S11~S23)의 개수와 동일한 개수(즉, 6 개)로 포스트시냅틱 가중치들(pow11~pow23)을 생성할 수 있다. 제2 서브 가중치 매트릭스(SW2)의 첫 번째 행의 포스트시냅틱 가중치들(pow11~pow13)은 제1 액손(A1)과 대응하고, 제2 서브 가중치 매트릭스(SW2)의 두 번째 행의 포스트시냅틱 가중치들(pow21~pow23)은 제2 액손(A2)과 대응할 수 있다.
예를 들어, 가중치 매트릭스(W)가 아래와 같은 경우,
Figure pat00001
시냅틱 가중치 분해 모듈(110)은 위의 가중치 매트릭스(W)를 아래와 같이 제1 서브 가중치 매트릭스(SW1)와 제2 서브 가중치 매트릭스(SW2)로 분해할 수 있다.
Figure pat00002
Figure pat00003
이 경우, 각각의 시냅틱 가중치는 3-비트로 표현되고, 각각의 프리시냅틱 가중치는 2-비트로 표현되고, 각각의 포스트시냅틱 가중치는 1-비트로 표현될 수 있다. 포스트시냅틱 가중치의 비트 수(즉, 2)는 시냅틱 가중치의 비트 수(즉, 3)보다 작을 수 있다.
시냅틱 가중치 분해 모듈(110)은 시냅틱 가중치들 중 0 이 아닌 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 절대값을 대응하는 시냅틱 가중치의 절대값 이하로 생성하고, 시냅틱 가중치들 중 0 인 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 값을 0 으로 생성할 수 있다. 예를 들어, 시냅틱 가중치 분해 모듈(110)은 0 이 아닌 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 절대값을 1 로 생성할 수 있다.
시냅틱 가중치 분해 모듈(110)은 하나의 액손과 뉴런들 사이의 시냅틱 가중치들의 값들에 기초하여 하나의 액손에 대응하는 프리시냅틱 가중치를 생성할 수 있다. 예를 들어, 시냅틱 가중치 분해 모듈(110)은 제1 액손(A1)과 뉴런들(N1~N3) 사이의 시냅틱 가중치들(w11, w12, w13)의 값들(즉, 0, 1, 2)에 대하여 제곱평균제곱근(root-mean-square)을 수행한 값에 비례하는 값으로 제1 액손(A1)에 대응하는 프리시냅틱 가중치(prw1)의 값(즉, 1)을 생성할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 시냅틱 가중치 분해 모듈(110)은 다양한 방법에 기초하여 프리시냅틱 가중치를 생성할 수 있다.
위의 가중치 매트릭스(W)는 양의 값의 시냅틱 가중치들을 포함하지만, 본 발명은 이에 제한되지 않는다. 예를 들어, 가중치 매트릭스(W)는 음의 값의 시냅틱 가중치를 포함할 수 있고, 이에 따라, 음의 값의 프리시냅틱 가중치와 음의 값의 포스트시냅틱 가중치가 생성될 수 있다.
도 7은 도 4의 액손 모듈의 동작을 나타내는 도면이다. 도 7을 참조하면, 액손 모듈(130)은 제1 서브 액손 모듈(131) 및 제2 서브 액손 모듈(132)을 포함할 수 있다. 제1 서브 액손 모듈(131)은 도 5의 제1 액손(A1)에 대응하고, 제2 서브 액손 모듈(132)은 도 5의 제2 액손(A2)에 대응할 수 있다. 제1 서브 액손 모듈(131)은 제1 액손 스파이크를 출력하고, 제2 서브 액손 모듈(132)은 제2 액손 스파이크를 출력할 수 있다. 액손 모듈(130)로부터 출력된 액손 스파이크는 시냅스 메모리(120)로 제공될 수 있다.
시냅스 메모리(120)는 제1 시냅스 메모리(120-1) 및 제2 시냅스 메모리(120-2)를 포함할 수 있다. 제1 시냅스 메모리(120-1)는 제1 프리시냅틱 메모리 블록 및 제2 프리시냅틱 메모리 블록을 포함할 수 있다. 각각의 프리시냅틱 메모리 블록은 하나 이상의 메모리 셀들을 포함할 수 있다. 제1 프리시냅틱 메모리 블록은 프리시냅틱 가중치(prw1)를 저장하고, 제2 프리시냅틱 메모리 블록은 프리시냅틱 가중치(prw2)를 저장할 수 있다. 프리시냅틱 가중치들(prw1, prw2)은 도 6의 시냅틱 가중치 분해 모듈(110)로부터 제공될 수 있다. 제1 프리시냅틱 메모리 블록에 저장된 프리시냅틱 가중치(prw1)는 도 5의 제1 액손(A1)에 대응하고, 제2 프리시냅틱 메모리 블록에 저장된 프리시냅틱 가중치(prw2)는 도 5의 제2 액손(A2)에 대응할 수 있다.
제2 시냅스 메모리(120-2)는 제1 내지 제6 포스트시냅틱 메모리 블록들을 포함할 수 있다. 각각의 포스트시냅틱 메모리 블록은 하나 이상의 메모리 셀들을 포함할 수 있다. 제1 포스트시냅틱 메모리 블록은 포스트시냅틱 가중치(pow11)를 저장할 수 있다. 마찬가지로, 제2 내지 제6 포스트시냅틱 메모리 블록들은 각각 대응하는 포스트시냅틱 가중치를 저장할 수 있다. 제1 내지 제3 포스트시냅틱 메모리 블록들에 저장된 포스트시냅틱 가중치들(pow11~pow13)은 도 5의 제1 액손(A1)에 대응하고, 제4 내지 제6 포스트시냅틱 메모리 블록들에 저장된 포스트시냅틱 가중치들(pow21~pow23)은 도 5의 제2 액손(A2)에 대응할 수 있다.
제1 시냅스 메모리(120-1)는 액손 모듈(130)로부터 제공된 액손 스파이크에 응답하여 대응하는 프리시냅틱 가중치를 출력할 수 있다. 예를 들어, 제1 시냅스 메모리(120-1)는 제1 액손 스파이크에 응답하여 제1 프리시냅틱 메모리 블록에 저장된 프리시냅틱 가중치(prw1)를 출력할 수 있다. 또는, 제1 시냅스 메모리(120-1)는 제2 액손 스파이크에 응답하여 제2 프리시냅틱 메모리 블록에 저장된 프리시냅틱 가중치(prw2)를 출력할 수 있다.
제2 시냅스 메모리(120-2)는 액손 모듈(130)로부터 제공된 액손 스파이크에 응답하여 대응하는 포스트시냅틱 가중치들을 출력할 수 있다. 예를 들어, 제2 시냅스 메모리(120-2)는 제1 액손 스파이크에 응답하여 제1 내지 제3 프리시냅틱 메모리 블록들에 저장된 포스트시냅틱 가중치들(pow11~pow13)을 출력할 수 있다. 또는, 제2 시냅스 메모리(120-2)는 제2 액손 스파이크에 응답하여 제4 내지 제6 프리시냅틱 메모리 블록들에 저장된 포스트시냅틱 가중치들(pow21~pow23)을 출력할 수 있다.
상술한 바와 같이, 제1 시냅스 메모리(120-1) 및 제2 시냅스 메모리(120-2)는 액손들 중 특정 액손(즉, 특정 서브 액손 모듈)으로부터 출력된 액손 스파이크에 응답하여 특정 액손에 대응하는 프리시냅틱 가중치 및 포스트시냅틱 가중치들을 출력할 수 있다.
도 8은 도 4의 분해 가중치 결합 모듈 및 뉴런 모듈의 동작을 나타내는 도면이다. 도 8을 참조하면, 분해 가중치 결합 모듈(140)은 도 7의 시냅스 메모리(120)로부터 프리시냅틱 가중치 및 포스트시냅틱 가중치들을 수신할 수 있다. 예를 들어, 시냅스 메모리(120)가 제1 액손 스파이크에 응답하여 프리시냅틱 가중치(prw1) 및 포스트시냅틱 가중치들(pow11, pow12, pow13)을 출력하는 경우, 분해 가중치 결합 모듈(140)은 프리시냅틱 가중치(prw1) 및 포스트시냅틱 가중치들(pow11, pow12, pow13)을 수신할 수 있다. 그러나, 본 발명은 이에 한정되는 것은 아니며, 분해 가중치 결합 모듈(140)은 프리시냅틱 가중치(prw2) 및 포스트시냅틱 가중치들(pow21, pow22, pow23)을 수신할 수 있다. 이하에서는, 설명의 편의를 위해 프리시냅틱 가중치(prw1) 및 포스트시냅틱 가중치들(pow11, pow12, pow13)이 수신되는 예시를 통해 분해 가중치 결합 모듈(140)의 동작을 설명한다.
분해 가중치 결합 모듈(140)은 제1 곱셈기(141), 제2 곱셈기(142) 및 제3 곱셈기(143)를 포함할 수 있다. 분해 가중치 결합 모듈(140)은 제1 내지 제3 곱셈기들(141~143)을 이용하여 결합 가중치들(cw1, cw2, cw3)을 생성할 수 있다. 제1 곱셈기(141)는 프리시냅틱 가중치(prw1) 및 포스트시냅틱 가중치(pow11)를 곱하여 결합 가중치(cw1)를 생성할 수 있다. 제2 곱셈기(142)는 프리시냅틱 가중치(prw1) 및 포스트시냅틱 가중치(pow12)를 곱하여 결합 가중치(cw2)를 생성할 수 있다. 제3 곱셈기(143)는 프리시냅틱 가중치(prw1) 및 포스트시냅틱 가중치(pow13)를 곱하여 결합 가중치(cw3)를 생성할 수 있다. 예를 들어, 프리시냅틱 가중치(prw1)가 3 이고, 포스트시냅틱 가중치들(pow11, pow12, pow13)이 각각 1, 1, 0 인 경우, 결합 가중치들(cw1, cw2, cw3)은 각각 3, 3, 0 일 수 있다. 분해 가중치 결합 모듈(140)은 생성된 결합 가중치들(cw1, cw2, cw3)을 뉴런 모듈(150)로 제공할 수 있다.
프리시냅틱 가중치(prw1) 및 포스트시냅틱 가중치들(pow11, pow12, pow13)에 기초하여 생성된 결합 가중치들(cw1, cw2, cw3)은 도 5의 제1 액손(A1)에 대응할 수 있다. 결합 가중치(cw1)는 도 5의 제1 액손(A1)과 제1 뉴런(N1) 사이의 시냅틱 가중치(w11)에 대응할 수 있다. 결합 가중치(cw2)는 도 5의 제1 액손(A1)과 제2 뉴런(N2) 사이의 시냅틱 가중치(w12)에 대응할 수 있다. 결합 가중치(cw3)는 도 5의 제1 액손(A1)과 제3 뉴런(N3) 사이의 시냅틱 가중치(w13)에 대응할 수 있다. 결합 가중치들(cw1, cw2, cw3)은 대응하는 시냅틱 가중치들(w11, w12, w13)과 각각 같은 값이거나 다른 값일 수 있다. 즉, 생성된 결합 가중치는 대응하는 시냅틱 가중치와 다른 값일 수 있지만, 값의 차이는 미리 설정된 범위 이내일 수 있다. 이에 따라, 뉴로모픽 프로세서(100)가 결합 가중치에 따라 동작하더라도, 뉴로모픽 프로세서(100)의 동작은 시냅틱 가중치에 따른 동작과 유사할 수 있다.
뉴런 모듈(150)은 결합 가중치들(cw1, cw2, cw3)에 기초하여 뉴런 스파이크를 출력할 수 있다. 뉴런 모듈(150)은 제1 서브 뉴런 모듈(151), 제2 서브 뉴런 모듈(152) 및 제3 서브 뉴런 모듈(153)을 포함할 수 있다. 제1 내지 제3 서브 뉴런 모듈들(151~153)은 도 5의 제1 내지 제3 뉴런들(N1~N3)과 대응할 수 있다.
제1 내지 제3 서브 뉴런 모듈들(151~153)은 대응하는 결합 가중치들(cw1, cw2, cw3)을 수신하고, 결합 가중치들(cw1, cw2, cw3)에 기초하여 뉴런 스파이크를 출력할 수 있다. 예를 들어, 제1 서브 뉴런 모듈(151)은 결합 가중치(cw1)에 기초하여 제1 뉴런 스파이크를 출력할 수 있다. 마찬가지로, 제2 서브 뉴런 모듈(152) 및 제3 서브 뉴런 모듈(153)은 각각 제2 뉴런 스파이크 또는 제3 뉴런 스파이크를 출력할 수 있다. 뉴런 모듈(150)로부터 출력되는 뉴런 스파이크는 제1 내지 제3 뉴런 스파이크들 중 적어도 하나를 포함할 수 있다.
제1 내지 제3 서브 뉴런 모듈들(151~153) 각각은 대응하는 결합 가중치를 수신하고, 결합 가중치에 대응하는 신호 값을 누적하여 저장할 수 있다. 즉, 제1 내지 제3 서브 뉴런 모듈들(151~153)은 대응하는 결합 가중치를 순차적으로 수신하고, 각각의 결합 가중치에 대응하는 신호 값을 누적하여 저장할 수 있다. 예를 들어, 결합 가중치(cw1)를 수신하기 전에, 제1 서브 뉴런 모듈(151)은 수신된 결합 가중치들에 대응하는 누적 신호 값을 포함할 수 있다. 제1 서브 뉴런 모듈(151)은 결합 가중치(cw1)가 수신되는 경우, 기존의 누적 신호 값에 결합 가중치(cw1)에 대응하는 신호 값을 누적할 수 있다.
제1 내지 제3 서브 뉴런 모듈들(151~153) 각각은 수신된 결합 가중치에 따라 누적된 신호 값이 임계 값보다 커지는 경우, 뉴런 스파이크를 출력할 수 있다. 예를 들어, 제1 서브 뉴런 모듈(151)은 수신된 결합 가중치(cw1)에 대응하는 신호 값을 누적하고, 누적된 신호 값이 임계 값보다 커지는 경우, 제1 뉴런 스파이크를 출력할 수 있다. 제1 서브 뉴런 모듈(151)은 제1 뉴런 스파이크를 출력한 후, 누적된 신호 값을 초기화할 수 있다.
상술한 바와 같이, 뉴런 모듈(150)은 결합 가중치들에 기초하여 뉴런 스파이크를 출력할 수 있다. 뉴런 모듈(150)로부터 출력되는 뉴런 스파이크에 기초하여 뉴로모픽 프로세서(100)의 학습 또는 추론 동작이 수행될 수 있다. 예를 들어, 뉴로모픽 프로세서(100)는 출력되는 뉴런 스파이크에 기초하여 문자 인식에 대한 판별 결과를 결과 데이터로서 출력할 수 있다.
도 9는 도 4의 뉴런 모듈의 업데이트 동작을 나타내는 도면이다. 도 9를 참조하면, 시냅스 메모리(120)는 제1 시냅스 메모리(120-1) 및 제2 시냅스 메모리(120-2)를 포함할 수 있다. 제1 시냅스 메모리(120-1)는 제1 및 제2 프리시냅틱 메모리 블록들을 포함하고, 제2 시냅스 메모리(120-2)는 제1 내지 제6 포스트시냅틱 메모리 블록들을 포함할 수 있다. 프리시냅틱 가중치들(prw1, prw2)은 각각 대응하는 프리시냅틱 메모리 블록에 저장되고, 포스트시냅틱 가중치들(pow11~pow23)은 각각 대응하는 포스트시냅틱 메모리 블록에 저장될 수 있다.
뉴런 모듈(150)은 제1 내지 제3 서브 뉴런 모듈들(151~153)을 포함할 수 있다. 제1 내지 제3 서브 뉴런 모듈들(151-~153)은, 도 8에서 설명한 바와 같이, 대응하는 결합 가중치에 기초하여 각각 뉴런 스파이크를 출력할 수 있다. 예를 들어, 제1 서브 뉴런 모듈(151)은 결합 가중치(cw1)에 기초하여 제1 뉴런 스파이크를 출력할 수 있다.
학습 동작에서, 뉴런 모듈(150)은 뉴런 스파이크의 출력에 따라 업데이트 신호를 시냅스 메모리(120)로 제공할 수 있다. 시냅스 메모리(120)는 업데이트 신호에 응답하여 저장된 가중치의 값을 업데이트할 수 있다. 예시적으로, 시냅스 메모리(120)는 업데이트 신호에 응답하여 제2 시냅스 메모리(120-2)에 저장된 포스트시냅틱 가중치를 업데이트할 수 있다. 프리시냅틱 가중치는 업데이트하지 않고, 포스트시냅틱 가중치만을 업데이트하는 경우, 가중치에 대한 업데이트 동작이 빠르게 수행될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 시냅스 메모리(120)는 제1 시냅스 메모리(120-1)에 저장된 프리시냅틱 가중치를 업데이트할 수 있다.
예를 들어, 뉴런 모듈(150)은 업데이트된 포스트시냅틱 가중치들 중 미리 설정된 값보다 큰 가중치들의 개수를 판별할 수 있다. 미리 설정된 값보다 큰 포스트시냅틱 가중치들의 개수가 미리 설정된 개수보다 커지는 경우, 뉴런 모듈(150)은 프리시냅틱 가중치들과 포스트시냅틱 가중치들을 업데이트할 수 있다. 여기서, 미리 설정된 값은 포스트시냅틱 가중치의 정밀도(즉, 비트 수)에 따라 달라질 수 있고, 미리 설정된 개수는 포스트시냅틱 가중치들의 전체 개수(즉, 시냅틱 가중치들의 전체 개수)에 따라 달라질 수 있다. 따라서, 프리시냅틱 가중치들에 대한 업데이트 횟수는 포스트시냅틱 가중치들에 대한 업데이트 횟수보다 적을 수 있다.
예를 들어, 뉴런 모듈(150)은 제1 뉴런 스파이크의 출력에 따라 업데이트 신호를 출력할 수 있다. 제1 뉴런 스파이크의 출력에 따른 업데이트 신호는 제1 및 제4 포스트시냅틱 메모리 블록들에 저장된 포스트시냅틱 가중치들(pow11, pow21)에 대한 업데이트 신호일 수 있다. 마찬가지로, 뉴런 모듈(150)은 제2 뉴런 스파이크의 출력에 따라 제2 및 제5 포스트시냅틱 메모리 블록들에 저장된 포스트시냅틱 가중치들(pow12, pow22)에 대한 업데이트 신호를 출력할 수 있고, 제3 뉴런 스파이크의 출력에 따라 제3 및 제6 포스트시냅틱 메모리 블록들에 저장된 포스트시냅틱 가중치들(pow13, pow23)에 대한 업데이트 신호를 출력할 수 있다. 즉, 특정 뉴런에 대응하는 뉴런 스파이크의 출력에 따라 특정 뉴런에 대응하는 포스트시냅틱 가중치들이 업데이트될 수 있다.
예시적으로, 뉴런 모듈(150)은 업데이트될 가중치가 저장된 어드레스(address)와 업데이트될 가중치의 값을 시냅스 메모리(120)로 제공할 수 있다. 업데이트될 가중치의 값은 스파이크 타이밍 의존 가소성(STDP; spike timing dependent plasticity)에 따라 결정될 수 있다. STDP는 뉴런들이 출력하는 스파이크의 시간을 고려하여 가중치의 값을 증가시키거나 감소시키는 알고리즘이다. 즉, 뉴런 모듈(150)은 제1 내지 제3 서브 뉴런 모듈들(151~153)로부터 출력되는 스파이크의 시간을 고려하여 업데이트될 가중치의 값을 결정할 수 있다.
도 10은 도 3의 뉴로모픽 프로세서의 시냅틱 가중치 분해 동작을 나타내는 순서도이다. 도 3 및 도 10을 참조하면, S101 단계에서, 뉴로모픽 프로세서(100)는 제1 비트 수로 표현되는 시냅틱 가중치들을 수신할 수 있다. 시냅틱 가중치들은 액손들을 포함하는 제1 레이어 및 뉴런들을 포함하는 제2 레이어 사이의 시냅스들의 연결 강도를 나타낼 수 있다.
S102 단계에서, 뉴로모픽 프로세서(100)는 시냅틱 가중치들을 제2 비트 수로 표현되는 프리시냅틱 가중치들과 제3 비트 수로 표현되는 포스트시냅틱 가중치들로 분해할 수 있다. 포스트시냅틱 가중치의 정밀도를 나타내는 제3 비트 수는 시냅틱 가중치의 정밀도를 나타내는 제1 비트 수보다 작을 수 있다. 분해 결과로 생성되는 프리시냅틱 가중치들의 개수는 제1 레이어의 액손들의 개수와 동일할 수 있다. 분해 결과로 생성되는 포스트시냅틱 가중치들의 개수는 시냅틱 가중치들(즉, 제1 레이어 및 제2 레이어 사이의 시냅스들)의 개수와 동일할 수 있다.
S103 단계에서, 뉴로모픽 프로세서(100)는 분해 결과로 생성된 프리시냅틱 가중치들과 포스트시냅틱 가중치들을 저장할 수 있다. 뉴로모픽 프로세서(100)는 프리시냅틱 가중치들과 포스트시냅틱 가중치들을 내부 메모리에 저장할 수 있다. 또는 뉴로모픽 프로세서(100)는 프리시냅틱 가중치들과 포스트시냅틱 가중치들을 뉴로모픽 프로세서(100) 외부 메모리에 저장할 수 있다.
예시적으로, S102 단계에서, 뉴로모픽 프로세서(100)는 시냅틱 가중치들 중 0 이 아닌 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 절대값을 대응하는 시냅틱 가중치의 절대값 이하로 생성할 수 있다. 예를 들어, 뉴로모픽 프로세서(100)는 0 이 아닌 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 절대값을 1 로 생성할 수 있다. 뉴로모픽 프로세서(100)는 시냅틱 가중치들 중 0 인 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 값을 0 으로 생성할 수 있다. 뉴로모픽 프로세서(100)는 제1 레이어의 액손들 각각과 제2 레이어의 뉴런들 사이의 시냅틱 가중치들의 값들에 기초하여 각각의 액손에 대응하는 프리시냅틱 가중치를 생성할 수 있다.
도 11은 도 3의 뉴로모픽 프로세서의 학습 동작을 나타내는 블록도이다. 도 3 및 도 11을 참조하면, S111 단계에서, 뉴로모픽 프로세서(100)는 제1 비트 수로 표현되는 시냅틱 가중치들을 수신하고, S112 단계에서, 뉴로모픽 프로세서(100)는 시냅틱 가중치들을 제2 비트 수로 표현되는 프리시냅틱 가중치들과 제3 비트 수로 표현되는 포스트시냅틱 가중치들로 분해할 수 있다. 도 11의 S111 및 S112 단계의 동작은 도 10의 S101 및 S102 단계의 동작과 유사하므로, 상세한 설명은 생략된다.
S113 단계에서, 뉴로모픽 프로세서(100)는 프리시냅틱 가중치들 중 하나와 이에 대응하는 포스트시냅틱 가중치들을 곱하여 결합 가중치들을 생성할 수 있다. 생성되는 결합 가중치들은 제1 레이어의 액손들 중 특정 액손에 대응할 수 있다. S114 단계에서, 뉴로모픽 프로세서(100)는 생성된 결합 가중치들에 기초하여 스파이크를 출력할 수 있다. 뉴로모픽 프로세서(100)는 제2 레이어의 뉴런들 각각에 대응하는 결합 가중치에 따라 각각의 뉴런에 대응하는 스파이크를 출력할 수 있다. S115 단계에서, 뉴로모픽 프로세서(100)는 스파이크의 출력에 기초하여 포스트시냅틱 가중치들을 업데이트할 수 있다. 뉴로모픽 프로세서(100)는 뉴런들 각각에 대응하는 스파이크의 출력 시간에 기초하여 업데이트할 포스트시냅틱 가중치의 값을 결정할 수 있다.
도 11에 도시된 바와 같이, 뉴로모픽 프로세서(100)는 S111 내지 S115 단계들의 동작을 수행하여 학습을 수행할 수 있지만, 본 발명은 이에 한정되지 않는다. 예를 들어, 뉴로모픽 프로세서(100)는 S113 내지 S115 단계들을 반복적으로 수행하여 포스트시냅틱 가중치들을 계속하여 업데이트함으로써 학습을 수행할 수 있다.
도 12는 도 3의 뉴로모픽 프로세서의 추론 동작을 나타내는 순서도이다. 도 3 및 도 12를 참조하면, S121 단계에서, 뉴로모픽 프로세서(100)는 제1 비트 수로 표현되는 시냅틱 가중치들을 수신할 수 있다. S122 단계에서, 뉴로모픽 프로세서(100)는 시냅틱 가중치들을 제2 비트 수로 표현되는 프리시냅틱 가중치들과 제3 비트 수로 표현되는 포스트시냅틱 가중치들로 분해할 수 있다. S123 단계에서, 뉴로모픽 프로세서(100)는 프리시냅틱 가중치들 중 하나와 이에 대응하는 포스트시냅틱 가중치들을 곱하여 결합 가중치들을 생성할 수 있다. S124 단계에서, 뉴로모픽 프로세서(100)는 결합 가중치들에 기초하여 스파이크를 출력할 수 있다. 도 12의 S121 및 S122 단계들의 동작은 도 10의 S101 및 S102 단계들의 동작과 유사하므로 상세한 설명은 생략된다. 도 12의 S123 및 S124 단계들의 동작은 도 11의 S113 및 S114 단계들의 동작과 유사하므로 상세한 설명은 생략된다.
S125 단계에서, 뉴로모픽 프로세서(100)는 스파이크의 출력에 기초하여 추론 결과를 출력할 수 있다. 예를 들어, 뉴로모픽 프로세서(100)가 문자 인식을 수행하는 경우, 입력 데이터로서 이미지 데이터를 수신하고, 수신된 이미지 데이터가 나타내는 문자를 추론 결과로서 출력할 수 있다. 제2 레이어의 뉴런들 각각이 서로 다른 문자와 대응하는 경우, 뉴로모픽 프로세서(100)는 뉴런들 중 특정 뉴런으로부터 출력되는 스파이크에 기초하여 문자를 출력할 수 있다. 즉, 뉴로모픽 프로세서(100)는 스파이크를 출력한 특정 뉴런에 대응하는 문자를 추론 결과로서 출력할 수 있다.
상술한 바와 같이, 본 발명의 실시 예들에 따른 뉴로모픽 프로세서(100)는 메모리 사용량이 감소되도록 시냅틱 가중치들로부터 분해되는 프리시냅틱 가중치들과 포스트시냅틱 가중치들의 비트 수를 결정할 수 있다. 뉴로모픽 프로세서(100)는 프리시냅틱 가중치들과 포스트시냅틱 가중치들로부터 생성된 결합 가중치들에 기초하여 학습 및 추론을 수행할 수 있다. 이에 따라, 뉴로모픽 프로세서(100)의 메모리 사용량은 감소될 수 있고, 연산 및 데이터 처리에 대한 정확도가 유지될 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 뉴로모픽 프로세서
110: 시냅틱 가중치 분해 모듈
120-1: 제1 시냅스 메모리
120-2: 제2 시냅스 메모리
130: 액손 모듈
140: 분해 가중치 결합 모듈
150: 뉴런 모듈

Claims (20)

  1. 액손(axon)들을 포함하는 제1 레이어 및 뉴런(neuron)들을 포함하는 제2 레이어를 포함하는 뉴럴 네트워크를 기반으로 데이터를 처리하는 뉴로모픽 프로세서의 동작 방법에 있어서,
    상기 제1 레이어 및 상기 제2 레이어 사이의 시냅틱 가중치들을 수신하는 단계;
    상기 시냅틱 가중치들을 상기 액손들의 개수와 동일한 개수의 프리시냅틱(presynaptic) 가중치들과 상기 시냅틱 가중치들의 개수와 동일한 개수의 포스트시냅틱(postsynaptic) 가중치들로 분해하는 단계; 및
    상기 프리시냅틱 가중치들과 상기 포스트시냅틱 가중치들을 저장하는 단계를 포함하고,
    상기 시냅틱 가중치들 각각의 정밀도는 제1 비트 수, 상기 프리시냅틱 가중치들 각각의 정밀도는 제2 비트 수, 상기 포스트시냅틱 가중치들 각각의 정밀도는 제3 비트 수 이고, 상기 제3 비트 수는 상기 제1 비트 수보다 작은 동작 방법.
  2. 제 1 항에 있어서,
    상기 시냅틱 가중치들은 M X N 가중치 매트릭스(matrix)를 형성하고, 상기 프리시냅틱 가중치들은 M X 1 제1 서브 가중치 매트릭스를 형성하고, 상기 포스트시냅틱 가중치들은 M X N 제2 서브 가중치 매트릭스를 형성하고, 상기 M은 상기 액손들의 개수에 대응하는 자연수이고, 상기 N은 상기 뉴런들의 개수에 대응하는 자연수인 동작 방법.
  3. 제 1 항에 있어서,
    상기 시냅틱 가중치들을 상기 프리시냅틱 가중치들 및 상기 포스트시냅틱 가중치들로 분해하는 단계는,
    상기 시냅틱 가중치들 중 0 이 아닌 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 절대값을 대응하는 시냅틱 가중치의 절대값 이하로 생성하고, 상기 시냅틱 가중치들 중 0 인 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 값을 0 으로 생성하는 단계; 및
    상기 액손들 각각과 상기 뉴런들 사이의 시냅틱 가중치들의 값들에 기초하여 각각의 액손에 대응하는 프리시냅틱 가중치를 생성하는 단계를 포함하는 동작 방법.
  4. 제 3 항에 있어서,
    상기 0 이 아닌 시냅틱 가중치들에 대응하는 상기 포스트시냅틱 가중치들 각각의 절대값이 1 로 생성되는 동작 방법.
  5. 제 3 항에 있어서,
    상기 액손들 각각과 상기 뉴런들 사이의 상기 시냅틱 가중치들의 상기 값들에 대하여 제곱평균제곱근(root-mean-square)을 수행한 값에 비례하는 값으로 상기 각각의 액손에 대응하는 상기 프리시냅틱 가중치가 생성되는 동작 방법.
  6. 제 1 항에 있어서,
    상기 프리시냅틱 가중치들 중 하나와 이에 대응하는 포스트시냅틱 가중치들을 곱하여 결합 가중치들을 생성하는 단계; 및
    상기 결합 가중치들에 기초하여 스파이크(spike)를 출력하는 단계를 더 포함하는 동작 방법.
  7. 제 6 항에 있어서,
    상기 스파이크의 출력에 기초하여 상기 분해된 포스트시냅틱 가중치들을 업데이트하는 단계를 더 포함하는 동작 방법.
  8. 제 7 항에 있어서,
    상기 분해된 포스트시냅틱 가중치들에 대한 업데이트 값은 상기 스파이크의 출력 시간에 기초하여 결정되는 동작 방법.
  9. 제 7 항에 있어서,
    상기 업데이트된 포스트시냅틱 가중치들의 값들에 기초하여 상기 분해된 프리시냅틱 가중치들을 업데이트하는 단계를 더 포함하는 동작 방법.
  10. 액손(axon)들을 포함하는 제1 레이어 및 뉴런(neuron)들을 포함하는 제2 레이어 사이의 시냅틱 가중치들을 상기 액손들의 개수와 동일한 개수의 프리시냅틱(presynaptic) 가중치들과 상기 시냅틱 가중치들의 개수와 동일한 개수의 포스트시냅틱(postsynaptic) 가중치들로 분해하도록 구성된 시냅틱 가중치 분해 모듈;
    상기 프리시냅틱 가중치들을 저장하도록 구성된 제1 시냅스 메모리; 및
    상기 포스트시냅틱 가중치들을 저장하도록 구성된 제2 시냅스 메모리를 포함하고,
    상기 시냅틱 가중치들 각각의 정밀도는 제1 비트 수, 상기 프리시냅틱 가중치들 각각의 정밀도는 제2 비트 수, 상기 포스트시냅틱 가중치들 각각의 정밀도는 제3 비트 수 이고, 상기 제3 비트 수는 상기 제1 비트 수보다 작은 뉴로모픽 프로세서.
  11. 제 10 항에 있어서,
    상기 시냅틱 가중치 분해 모듈은 상기 시냅틱 가중치들 중 0 이 아닌 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 절대값을 대응하는 시냅틱 가중치들의 절대값 이하로 생성하고, 상기 시냅틱 가중치들 중 0 인 시냅틱 가중치들에 대응하는 포스트시냅틱 가중치들 각각의 값을 0 으로 생성하도록 구성된 뉴로모픽 프로세서.
  12. 제 11 항에 있어서,
    상기 시냅틱 가중치 분해 모듈은 상기 0 이 아닌 시냅틱 가중치들에 대응하는 상기 포스트시냅틱 가중치들 각각의 절대값을 1 로 생성하도록 구성된 뉴로모픽 프로세서.
  13. 제 10 항에 있어서,
    상기 시냅틱 가중치 분해 모듈은 상기 액손들 중 특정 액손과 상기 뉴런들 사이의 시냅틱 가중치들의 값들에 기초하여 상기 특정 액손에 대응하는 프리시냅틱 가중치를 생성하도록 구성된 뉴로모픽 프로세서.
  14. 제 13 항에 있어서,
    상기 시냅틱 가중치 분해 모듈은 상기 특정 액손과 상기 뉴런들 사이의 상기 시냅틱 가중치들의 상기 값들에 대하여 제곱평균제곱근(root-mean-square)을 수행한 값에 비례하는 값으로 상기 특정 액손에 대응하는 상기 프리시냅틱 가중치를 생성하도록 구성된 뉴로모픽 프로세서.
  15. 제 10 항에 있어서,
    상기 액손들 중 특정 액손에 대응하는 스파이크(spike)를 출력하도록 구성된 액손 모듈을 더 포함하고,
    상기 제1 시냅스 메모리는 상기 스파이크에 응답하여 상기 특정 액손에 대응하는 프리시냅틱 가중치를 출력하고, 상기 제2 시냅스 메모리는 상기 스파이크에 응답하여 상기 특정 액손에 대응하는 포스트시냅틱 가중치들을 출력하도록 구성된 뉴로모픽 프로세서.
  16. 제 15 항에 있어서,
    상기 특정 액손에 대응하는 프리시냅틱 가중치와 상기 특정 액손에 대응하는 포스트시냅틱 가중치들을 곱하여 결합 가중치들을 생성하도록 구성된 분해 가중치 결합 모듈을 더 포함하는 뉴로모픽 프로세서.
  17. 제 16 항에 있어서,
    상기 결합 가중치들을 수신하고, 상기 뉴런들 각각에 대응하는 결합 가중치에 기반하여 각각의 뉴런에 대응하는 스파이크를 출력하도록 구성된 뉴런 모듈을 더 포함하는 뉴로모픽 프로세서.
  18. 제 17 항에 있어서,
    상기 뉴런 모듈은 상기 각각의 뉴런에 대응하는 상기 스파이크의 출력에 기초하여 상기 제2 시냅스 메모리에 저장된 상기 포스트시냅틱 가중치들을 업데이트하도록 더 구성된 뉴로모픽 프로세서.
  19. 제 18 항에 있어서,
    상기 뉴런 모듈은 상기 포스트시냅틱 가중치들 대한 업데이트 값을 상기 스파이크의 출력 시간에 기초하여 결정하도록 구성된 뉴로모픽 프로세서.
  20. 제 18 항에 있어서,
    상기 뉴런 모듈은 상기 업데이트된 포스트시냅틱 가중치들의 값들에 기초하여 상기 제1 시냅스 메모리에 저장된 상기 프리시냅틱 가중치들을 업데이트하도록 더 구성된 뉴로모픽 프로세서.
KR1020180074265A 2018-06-27 2018-06-27 뉴로모픽 프로세서 및 그것의 동작 방법 KR102675781B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180074265A KR102675781B1 (ko) 2018-06-27 2018-06-27 뉴로모픽 프로세서 및 그것의 동작 방법
US16/451,586 US11694067B2 (en) 2018-06-27 2019-06-25 Neuromorphic processor and operating method thereof
US18/197,093 US20230281436A1 (en) 2018-06-27 2023-05-14 Neuromorphic processor and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180074265A KR102675781B1 (ko) 2018-06-27 2018-06-27 뉴로모픽 프로세서 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200001377A true KR20200001377A (ko) 2020-01-06
KR102675781B1 KR102675781B1 (ko) 2024-06-18

Family

ID=69055176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180074265A KR102675781B1 (ko) 2018-06-27 2018-06-27 뉴로모픽 프로세서 및 그것의 동작 방법

Country Status (2)

Country Link
US (2) US11694067B2 (ko)
KR (1) KR102675781B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210088444A (ko) * 2020-01-06 2021-07-14 서울대학교산학협력단 온칩 학습이 가능한 뉴로모픽 아키텍쳐
KR20230054136A (ko) 2021-10-15 2023-04-24 광주과학기술원 뉴로모픽 하드웨어

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230027250A (ko) * 2020-06-29 2023-02-27 마이크론 테크놀로지, 인크 포지트를 사용하는 뉴로모픽 연산
CN112784972B (zh) * 2021-01-15 2022-10-11 之江实验室 一种面向片上神经网络的突触实现架构

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120259804A1 (en) * 2011-04-08 2012-10-11 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
KR20170080452A (ko) * 2015-12-30 2017-07-10 에스케이하이닉스 주식회사 시냅스 및 이를 포함하는 뉴로모픽 장치
KR20180028966A (ko) * 2016-09-09 2018-03-19 에스케이하이닉스 주식회사 신경망 하드웨어 가속기 아키텍처 및 그 동작 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812414B2 (en) * 2011-05-31 2014-08-19 International Business Machines Corporation Low-power event-driven neural computing architecture in neural networks
US8843425B2 (en) * 2011-07-29 2014-09-23 International Business Machines Corporation Hierarchical routing for two-way information flow and structural plasticity in neural networks
US8909576B2 (en) * 2011-09-16 2014-12-09 International Business Machines Corporation Neuromorphic event-driven neural computing architecture in a scalable neural network
US9218564B2 (en) * 2012-07-30 2015-12-22 International Business Machines Corporation Providing transposable access to a synapse array using a recursive array layout
US9798751B2 (en) * 2013-10-16 2017-10-24 University Of Tennessee Research Foundation Method and apparatus for constructing a neuroscience-inspired artificial neural network
KR101686827B1 (ko) 2015-03-17 2016-12-16 인천대학교 산학협력단 인공 신경망의 뉴로모픽 하드웨어 구현 방법
US10679121B2 (en) 2015-12-30 2020-06-09 SK Hynix Inc. Synapse and a neuromorphic device including the same
US10482929B2 (en) * 2017-07-13 2019-11-19 Qualcomm Incorporated Non-volative (NV) memory (NVM) matrix circuits employing NVM matrix circuits for performing matrix computations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120259804A1 (en) * 2011-04-08 2012-10-11 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
KR20170080452A (ko) * 2015-12-30 2017-07-10 에스케이하이닉스 주식회사 시냅스 및 이를 포함하는 뉴로모픽 장치
KR20180028966A (ko) * 2016-09-09 2018-03-19 에스케이하이닉스 주식회사 신경망 하드웨어 가속기 아키텍처 및 그 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210088444A (ko) * 2020-01-06 2021-07-14 서울대학교산학협력단 온칩 학습이 가능한 뉴로모픽 아키텍쳐
KR20230054136A (ko) 2021-10-15 2023-04-24 광주과학기술원 뉴로모픽 하드웨어

Also Published As

Publication number Publication date
US20200005126A1 (en) 2020-01-02
US11694067B2 (en) 2023-07-04
KR102675781B1 (ko) 2024-06-18
US20230281436A1 (en) 2023-09-07

Similar Documents

Publication Publication Date Title
KR102675781B1 (ko) 뉴로모픽 프로세서 및 그것의 동작 방법
KR102672586B1 (ko) 인공신경망의 훈련 방법 및 장치
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
US10339041B2 (en) Shared memory architecture for a neural simulator
US11386319B2 (en) Training of artificial neural networks
CN106934457B (zh) 一种可灵活时分复用的脉冲神经元实现架构
WO2014189970A2 (en) Efficient hardware implementation of spiking networks
US9672464B2 (en) Method and apparatus for efficient implementation of common neuron models
WO2015112261A1 (en) Configuring neural network for low spiking rate
WO2015167765A2 (en) Temporal spike encoding for temporal learning
KR102603287B1 (ko) 뉴로모픽 시스템 및 그것의 동작 방법
EP3050004A2 (en) Methods and apparatus for implementation of group tags for neural models
WO2015127130A2 (en) Dynamic spatial target selection
EP3058518A2 (en) Congestion avoidance in networks of spiking neurons
WO2015148044A1 (en) Conversion of neuron types to hardware
EP3108411A1 (en) Phase-coding for coordinate transformation
CN105659260B (zh) 动态地指派和检查突触延迟
US9542645B2 (en) Plastic synapse management
WO2015112718A1 (en) Method for converting values into spikes
WO2015127106A1 (en) Stochastic delay plasticity
US11556765B2 (en) Neuromorphic system and operating method thereof
WO2014197175A2 (en) Efficient implementation of neural population diversity in neural system
JP2023530755A (ja) 振動性ニューラル・ネットワークのトレーニング
US20210295144A1 (en) Variable sensitivity node
WO2015148060A2 (en) Time synchronization of spiking neuron models on multiple nodes

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant