KR20220110297A - 인공 순환 신경 네트워크 구성 및 운영 - Google Patents

인공 순환 신경 네트워크 구성 및 운영 Download PDF

Info

Publication number
KR20220110297A
KR20220110297A KR1020227023826A KR20227023826A KR20220110297A KR 20220110297 A KR20220110297 A KR 20220110297A KR 1020227023826 A KR1020227023826 A KR 1020227023826A KR 20227023826 A KR20227023826 A KR 20227023826A KR 20220110297 A KR20220110297 A KR 20220110297A
Authority
KR
South Korea
Prior art keywords
elements
neural network
topological
topology
recurrent neural
Prior art date
Application number
KR1020227023826A
Other languages
English (en)
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 이나이트 에스아
Publication of KR20220110297A publication Critical patent/KR20220110297A/ko

Links

Images

Classifications

    • G06N3/0445
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • G06N3/0472
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • 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)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

순환 인공 신경 네트워크를 구성하고 운영하기 위해 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함하는 방법, 시스템 및 디바이스. 일 양태에서, 방법은 복수의 노드들 및 그 노드들을 연결하는 에지들을 포함하는 인공 순환 신경 네트워크의 출력을 판독하기 위한 것이다. 이 방법은 상기 인공 순환 신경 네트워크 내 노드들 및 에지들의 부분집합을 각각 포함하는 하나 이상의 상대적으로 복잡한 루트 토폴로지 요소들을 식별하는 단계, 상기 인공 순환 신경 네트워크 내 상기 노드들 및 에지들의 부분집합을 각각이 포함하는 복수의 상대적으로 단순한 토폴로지 요소들을 식별하는 단계로, 여기에서 상기 식별된 상대적으로 단순한 토폴로지 요소들은 상기 상대적으로 복잡한 루트 토폴로지 요소들 중 적어도 하나에 대해 계층적 관계에 있는, 식별 단계, 숫자들의 컬렉션을 생성하는 단계로서, 여기에서 상기 숫자들 각각은 상기 상대적으로 복잡한 루트 토폴로지 요소들 및 상기 상대적으로 단순한 토폴로지 요소들 각자가 윈도우 동안 활성인지의 여부를 나타내는, 생성 단계, 그리고 상기 숫자들의 컬렉션을 출력하는 단계를 포함한다.

Description

인공 순환 신경 네트워크 구성 및 운영
우선권 주장
본 출원은 2019년 12월 11일에 출원된 미국 특허 출원 번호 62/946,733에 대한 우선권을 주장하며, 이 출원은 그 전체가 본원에 참조로서 포함된다.
기술분야
본 명세서는 "신경시냅스 컴퓨터 (neurosynaptic computer)"로 작동하는 순환 인공 신경 네트워크를 구성하고 운영하기 위한 방법 및 프로세스에 관한 것이다.
신경시냅스 컴퓨터는 두뇌에서의 컴퓨팅을 모방한 컴퓨팅 패러다임을 기반으로 한다. 신경시냅스 컴퓨터는 정보를 결정들의 계층적 집합으로 구성된 인지 알고리즘으로서 처리하는 기호적 컴퓨터 언어(symbolic computer language)를 사용할 수 있다. 신경시냅스 컴퓨터는 넓은 범위의 데이터 유형들을 입력하고, 그 데이터를 입력용 이진 코드로 변환하고, 그 이진 코드를 감각 코드로 인코딩하고, 뇌 처리 유닛을 사용하여 감각 입력에 대한 응답을 시뮬레이션하여 상기 감각 코드를 처리하며, 신경 코드에서 내려진 결정을 인코딩하며, 그리고 상기 신경 코드를 디코딩하여 목표 출력을 생성할 수 있다. 순환 인공 신경 네트워크의 구성 및 운영을 위해 이 새로운 패러다임을 적용하기 위한 방법 및 프로세스와 함께 컴퓨팅을 위한 패러다임이 설명된다. 상기 컴퓨팅 패러다임은 기호적인 컴퓨터 언어인 신경 코드를 기반으로 한다. 상기 신경 코드는 뇌 처리 유닛에서 내린 결정들의 집합을 인코딩하며 인지 알고리즘의 결과를 나타내기 위해 사용될 수 있다. 신경시냅스 컴퓨터는 종래의 디지털 컴퓨터에서 작동하는 소프트웨어에서 구현될 수 있고 뉴로모픽 (neuromorphic) 컴퓨팅 아키텍처에서 실행되는 하드웨어에서 구현될 수 있다. 신경시냅스 컴퓨터는 컴퓨팅, 저장 및 통신에 사용될 수 있으며 광범위한 과학, 공학 및 상업적 애플리케이션들의 개발에 적용 가능하다.
본 발명은 인공 순환 신경 네트워크 구성 및 운영을 위한 방안들을 제공한다.
본 명세서에는 순환 인공신경 네트워크 구성 및 운용에 관한 기술들을 설명한다.
일반적으로, 본 명세서에 설명된 주제의 한 혁신적인 측면은 복수의 노드들 및 상기 노드들을 연결하는 에지(edge)들을 포함하는 인공 순환 신경 네트워크의 출력을 판독하는 방법들에서 구현될 수 있으며, 상기 방법은, 상기 인공 순환 신경 네트워크 내 상기 노드들 및 상기 에지들의 부분집합을 각각 포함하는 하나 이상의 상대적으로 복잡한 루트 토폴로지 요소들을 식별하는 단계, 상기 인공 순환 신경 네트워크 내 상기 노드들 및 에지들의 부분집합을 각각이 포함하는 복수의 상대적으로 단순한 토폴로지 요소들을 식별하는 단계로, 여기에서 상기 식별된 상대적으로 단순한 토폴로지 요소들은 상기 상대적으로 복잡한 루트 토폴로지 요소들 중 적어도 하나에 대해 계층적 관계에 있는, 식별 단계, 숫자들의 컬렉션을 생성하는 단계로서, 여기에서 상기 숫자들 각각은 상기 상대적으로 복잡한 루트 토폴로지 요소들 및 상기 상대적으로 단순한 토폴로지 요소들 각자가 윈도우 동안 활성인지의 여부를 나타내는, 생성 단계, 그리고 상기 숫자들의 컬렉션을 출력하는 단계를 포함한다.
이 방법과 기타 일반적인 방법 및 시스템은 다음 특징들 중 하나 이상을 포함할 수 있다. 상기 상대적으로 복잡한 루트 토폴로지 요소들을 식별하는 단계는 상기 순환 신경 네트워크가 입력에 응답할 때 상기 상대적으로 복잡한 루트 토폴로지 요소들이 활성인지 판별하는 단계를 포함할 수 있다. 상기 상대적으로 복잡한 루트 토폴로지 요소들에 대해 계층적 관계에 있는 상기 상대적으로 단순한 토폴로지 요소를 식별하는 단계는 상기 순환 신경 네트워크에 입력들의 데이터세트를 입력하는 단계, 그리고 상기 상대적으로 단순한 토폴로지 요소들의 활성 또는 비활성이 상기 상대적으로 복잡한 루트 토폴로지 요소들의 활성과 상관관계가 있는지 판별하는 단계를 포함할 수 있다. 상기 방법은 토폴로지 요소가 활성인지를 판별하기 위한 기준을 정의하는 단계를 또한 포함할 수 있다. 상기 토폴로지 요소가 활성인지를 판별하기 위한 상기 기준은 상기 토폴로지 요소에 포함된 노드들 또는 에지들의 활성에 기초할 수 있다. 상기 방법은 상기 인공 순환 신경 네트워크 내 에지들이 활성인지를 판별하기 위한 기준을 정의하는 단계를 또한 포함할 수 있다. 상기 상대적으로 복잡한 루트 토폴로지 요소들에 대해 계층적 관계에 있는 상기 상대적으로 단순한 토폴로지 요소를 식별하는 단계는 상기 상대적으로 복잡한 루트 토폴로지 요소들을 토폴로지 요소들의 컬렉션으로 분해하는 단계를 포함할 수 있다. 상기 상대적으로 복잡한 루트 토폴로지 요소들에 대해 계층적 관계에 있는 상기 상대적으로 단순한 토폴로지 요소를 식별하는 단계는, 상기 상대적으로 복잡한 루트 토폴로지 요소들이 분해된 토폴로지 요소들의 목록을 형성하는 단계, 가장 복잡한 토폴로지 요소들로부터 가장 덜 복잡한 토폴로지 요소들까지 상기 목록을 정렬하는 단계, 그리고 상기 가장 복잡한 토폴로지 요소들에서 시작하여, 상기 상대적으로 복잡한 루트 토폴로지 요소들에 관한 정보 내용을 기반으로 숫자들의 컬렉션에서의 표현을 위해 상기 목록으로부터 상기 상대적으로 단순한 토폴로지 요소들을 선택하는 단계를 포함할 수 있다.
상기 숫자들의 컬렉션 내 표현을 위해 상기 목록으로부터 더 복잡한 토폴로지 요소들을 선택하는 단계는, 상기 목록으로부터 선택된 상기 상대적으로 단순한 토폴로지 요소들이 상기 상대적으로 복잡한 루트 토폴로지 요소들을 판별하기에 충분한지 여부를 판별하는 단계; 그리고 상기 목록으로부터 선택된 상기 상대적으로 단순한 토폴로지 요소들이 상기 상대적으로 복잡한 루트 토폴로지 요소들을 판별하기에 충분하다는 판별에 응답하여, 상기 목록으로부터 어떤 추가의 상대적으로 단순한 토폴로지 요소들도 선택하지 않는 단계를 포함할 수 있다.
일반적으로, 본 명세서에 기술된 주제의 또 다른 혁신적인 측면은 복수의 노드들 및 상기 노드들 사이의 연결들을 형성하는 에지들을 포함하는 인공 순환 신경 네트워크의 출력을 판독하는 방법들에서 구현될 수 있다. 상기 방법은 상기 인공 순환 신경 네트워크로부터 판독될 계산 결과들을 정의하는 단계를 포함할 수 있다. 상기 계산 결과를 정의하는 단계는 상기 인공 순환 신경 네트워크 내 에지들이 활성인지를 판별하기 위한 기준을 정의하는 단계, 그리고 상기 인공 순환 신경 네트워크 내 상기 에지들의 진부분집합을 각각 포함하는 복수의 토폴로지 요소들을 정의하는 단계를 포함할 수 있다. 상기 정의된 토폴로지 요소들 각각이 활성인지를 판별하기 위한 상기 기준은 상기 정의된 토폴로지 요소들 각자에 포함된 에지들의 활동에 기초한다. 활성 토폴로지 요소는 대응하는 계산 결과가 완료되었음을 나타낸다.
이 방법과 기타 일반적인 방법 및 시스템은 다음 특징들 중 하나 이상을 포함할 수 있다. 상기 방법은 상기 인공 순환 신경 네트워크로부터 상기 완료된 계산 결과를 판독하는 단계를 또한 포함할 수 있다. 상기 방법은 상기 인공 순환 신경 네트워크로부터 불완전한 계산 결과들을 판독하는 단계를 또한 포함할 수 있다. 상기 불완전한 계산 결과들을 판독하는 단계는 상기 토폴로지 요소들 중 대응하는 것에 포함된 에지들의 활동을 판독하는 단계를 포함하며, 여기에서 상기 에지들의 활동은 상기 토폴로지 요소들이 활성인지를 판별하기 위한 기준을 충족시키지 않는다. 상기 방법은 계산 결과의 완료율을 추정하는 단계를 또한 포함할 수 있으며, 상기 완료율을 추정하는 단계는 상기 토폴로지 요소들 중 대응하는 것에 포함된 에지들의 활성 부분을 판별하는 단계를 포함할 수 있다. 상기 인공 순환 신경 네트워크 내 에지들이 활성인지를 판별하기 위한 상기 기준은, 주어진 에지에 대해: 그 에지에 연결된 노드에 의해 스파이크가 생성되며, 상기 스파이크는 상기 에지에 의해 수신 노드로 전송되며, 그리고 상기 수신 노드는 상기 전송된 스파이크에 대한 응답을 생성할 것을 요청하는 것을 포함한다.
상기 인공 순환 신경 네트워크 내 에지들이 활성인지 판별하는 기준은, 상기 스파이크가 생성되어 전송되고 상기 수신 노드가 응답을 생성하는 시간 윈도우를 포함한다. 상기 인공 순환 신경 네트워크 내 에지들이 활성인지 판별하는 기준은, 에지 스파이크들에 의해 연결된 두 노드들의 시간 윈도우를, 그 두 노드들이 먼저 스파이크를 발생하는지 여부와 상관없이 포함한다. 상기 인공 순환 신경 네트워크 내 에지들이 활성인지를 판별하기 위한 상이한 기준이 상이한 에지들에 적용될 수 있다. 상기 인공 순환 신경 네트워크로부터 판독될 계산 결과를 정의하는 단계는 상기 인공 순환 신경 네트워크의 기능적 그래프들을 구성하는 단계를 또한 포함할 수 있으며, 시간 빈(bin)들의 컬렉션을 정의하는 단계, 상기 인공 순환 신경 네트워크의 복수의 기능적 그래프들을 생성하는 단계로, 각 기능적 그래프는 상기 시간 빈들 각자 내에서 활성인 노드들만을 포함하는, 생성 단계, 그리고 상기 인공 순환 신경 네트워크의 기능적 그래프들 내 상기 에지들의 활성에 기초하여 상기 복수의 토폴로지 요소들을 정의하는 단계를 포함한다.
상기 방법은 상기 기능적 그래프들 중 제1 기능 그래프에 정의된 제1 토폴로지 요소를 상기 기능적 그래프들 중 제2 기능 그래프에 정의된 제2 토폴로지 요소와 결합하는 단계를 또한 포함한다. 상기 기능적 그래프들 상기 중 제1 및 제2 기능 그래프들은 상이한 시간 빈들 내에서 활성인 노드들을 포함할 수 있다. 상기 방법은 상기 계산 결과들 내에 하나 이상의 글로벌 그래프 메트릭들 또는 메타 정보를 포함하는 단계를 또한 포함할 수 있다. 상기 인공 순환 신경 네트워크로부터 판독될 계산 결과들을 정의하는 단계는 단일 입력의 처리 동안 그리고 입력들의 데이터세트에 걸쳐 각 토폴로지 요소가 활성인 횟수에 기초하여 상기 인공 순환 신경 네트워크로부터 판독될 복수의 토폴로지 요소들의 진부분집합을 선택하는 단계를 포함할 수 있다. 상기 복수의 토폴로지 요소들의 진부분집합을 선택하는 단계는 입력들의 상기 데이터세트의 작은 부분에 대해서만 활성인 토폴로지 요소들 중 제1 토폴로지 요소를 선택하고 상기 토폴로지 요소들 중 상기 제1 토폴로지 요소를 비정상을 표시하는 것으로 지정하는 단계를 포함할 수 있다. 상기 복수의 토폴로지 요소들의 진부분집합을 선택하는 단계는 상기 진부분집합이 입력들의 상기 데이터세트의 상이한 부분들에 대해 활성인 토폴로지 요소들의 미리 정의된 분포를 포함하는 것을 보장하기 위해 토폴로지 요소들을 선택하는 단계를 포함할 수 있다. 상기 인공 순환 신경 네트워크로부터 판독될 계산 결과들을 정의하는 단계는 상기 토폴로지 요소들의 계층적 배열에 기초하여 상기 인공 순환 신경 네트워크로부터 판독될 복수의 토폴로지 요소들의 진부분집합을 선택하는 단계를 또한 포함할 수 있으며, 여기에서 상기 토폴로지 요소들 중 제1 토폴로지 요소는 루트 토폴로지 요소로서 식별되며 그리고 상기 루트 토폴로지 요소에 기여하는 토폴로지 요소들은 상기 진부분집합을 위해 선택한다. 상기 방법은 상기 복수의 루트 토폴로지 요소를 식별하는 단계 그리고 상기 진부분집합을 위해 상기 루트 토폴로지 요소들에 기여하는 토폴로지 요소를 선택하는 단계를 또한 포함할 수 있다.
일반적으로, 본 명세서에 기술된 주제의 또 다른 혁신적인 측면은 순환 신경 네트워크에서 인지 과정을 형성하는 요소들의 집합을 선택하는 과정에서 구현될 수 있다. 이 방법들은 상대적으로 단순한 토폴로지 패턴들에 부합하는 순환 신경 네트워크 내 활동을 식별하는 단계, 상기 식별된 상대적으로 단순한 토폴로지 패턴들을 상기 순환 신경 네트워크 내 활동의 상대적으로 복잡한 토폴로지 패턴들을 식별하기 위한 제약으로서 사용하는 단계, 상기 식별된 상대적으로 복잡한 토폴로지 패턴들을 상기 순환 신경 네트워크 내 활동의 상대적으로 더 복잡한 토폴로지 패턴들을 식별하기 위한 제약으로서 사용하는 단계, 그리고 상기 순환 신경 네트워크에서 발생한 활동의 토폴로지 패턴들의 신원들을 출력하는 단계를 포함할 수 있다.
이 방법과 기타 일반적인 방법 및 시스템은 다음 특징들 중 하나 이상을 포함할 수 있다. 상기 순환 신경 네트워크 내 상기 식별된 활동은 결정이 내려졌을 확률을 반영할 수 있다. 상기 확률들에 대한 설명들이 출력될 수 있다. 상기 확률은 스파이크하는 뉴런들의 그룹 내 뉴런들의 일부에 기초하여 결정될 수 있다. 상기 방븝은 상기 활동의 토폴로지 패턴들이 식별될 때에 상기 순환 신경 네트워크의 상태를 설명하는 메타데이터를 출력하는 단계를 또한 포함할 수 있다.
일반적으로, 본 명세서에 기술된 주제의 또 다른 혁신적인 측면은 인공 신경 네트워크 시스템에서 구현될 수 있으며, 상기 인공 신경 네트워크 시스템은, 데이터 환경을 생성하는 수단으로, 데이터 환경을 생성하는 상기 수단은 순환 신경 네트워크로의 입력을 위해 데이터를 선택하도록 구성되는, 생성 수단, 인공 순환 신경 네트워크로의 입력을 위해 상기 데이터 환경을 생성하는 수단에 의해 선택된 데이터를 인코딩하는 수단, 상기 인코딩하는 수단으로부터 상기 인코딩된 데이터를 수신하도록 결합된 인공 순환 신경 네트워크로, 상기 인공 순환 신경 네트워크는 생물학적 뇌의 구조의 어느 정도를 모델링한, 인공 순환 신경 네트워크, 상기 인공 순환 신경 네트워크에 의해 내려진 결정들을 식별하고 그 결정들을 출력 코드로 컴파일하기 위해 결합된 출력 인코더, 그리고 상기 출력 코드를 동작들로 변환하는 수단을 포함한다.
이 방법과 기타 일반적인 방법 및 시스템은 다음 특징들 중 하나 이상을 포함할 수 있다. 상기 인공 신경 네트워크 시스템은, 상기 인공 신경 네트워크 시스템 내 파라미터들을 변경하도록 구성되어 원하는 결과를 달성하는 학습 수단을 또한 포함할 수 있다. 상기 데이터 환경을 생성하기 위한 수단은, 하나 이상의 데이터베이스들을 검색하고 검색 결과들을 출력하도록 구성된 검색 엔진, 상기 검색 엔진으로부터 출력된 결과들의 부분집합을 선택하도록 구성된 데이터 선택 관리자, 그리고 상기 검색 엔진으로부터 출력된 결과들의 선택된 부분집합를 전처리하도록 구성된 데이터 전처리기 중 하나 이상을 또한 포함할 수 있다.
상기 데이터 전처리기는, 상기 결과들의 상기 선택된 부분집합의 크기 또는 치수들을 조정하며 또는 상기 결과들의 상기 선택된 부분집합의 해상도 버전들의 계층을 생성하며 또는 상기 결과들의 상기 선택된 부분집합을 필터링하며, 상기 결과들의 상기 선택된 부분집합의 통계적 변형들을 생성하도록 구성될 수 있다.
상기 데이터 전처리기는 통계적 노이즈를 도입하거나, 이미지의 방향을 변경하거나, 이미지를 자르거나, 또는 이미지에 클립 마스크를 적용함으로써 상기 결과들의 상기 선택된 부분집합의 통계적 변형들을 생성하도록 구성될 수 있다. 상기 데이터 전처리기는 복수의 상이한 필터 기능들을 이미지에 적용하여 복수의 상이하게 필터링된 이미지들을 생성하도록 구성될 수 있다. 상기 인공 순환 신경 네트워크는 상기 상이하게 필터링된 이미지들을 동시에 수신하기 위해 결합될 수 있다.
상기 데이터 전처리기는 문맥적으로 필터링된 (contextually-filtered) 이미지를 형성하기 위해 기계 학습 모델을 통해 이미지의 배경을 처리함으로써 이미지를 문맥적으로 필터링하도록 구성될 수 있다. 상기 상기 데이터 전처리기는 물체의 특징들 획득하고 지각적으로 필터링된 (perceptually-filtered) 이미지를 형성하기 위해 상기 이미지를 분할함으로써 상기 이미지를 지각적으로 필터링하도록 구성될 수 있다. 상기 데이터 전처리기는 상기 이미지에서 두드러진 (salient) 정보를 식별하고 주의 필터링된 (attention-filtered) 이미지를 형성하기 위해 상기 이미지를 주의 필터링하도록 구성될 수 있다. 상기 인공 순환 신경 네트워크는 상기 문맥적으로 필터링된 이미지, 상기 지각적으로 필터링된 이미지 및 주의 필터링된 이미지를 동시에 수신하기 위해 결합될 수 있다.
상기 데이터를 인코딩하는 수단은, 상기 인공 순환 신경 네트워크 내 뉴런들 및/또는 시냅스들로의 입력을 위한 펄스 위치 변조 신호 내 선택된 데이터를 인코딩하도록 구성된 타이밍 인코더, 또는 상기 인공 순환 신경 네트워크 내 뉴런들 및/또는 시냅스들의 활성화의 통계적 확률들에서 상기 선택된 데이터를 인코딩하도록 구성된 통계 인코더, 또는 상기 인공 순환 신경 네트워크 내 뉴런들 및/또는 시냅스들의 비례 교란들에서 상기 선택된 데이터를 인코딩하도록 구성된 바이트 진폭 인코더, 또는 상기 인공 순환 신경 네트워크 내 뉴런들 및/또는 시냅스들의 활성화의 빈도들에서 상기 선택된 데이터를 인코딩하도록 구성된 주파수 인코더, 또는 상기 인공 순환 신경 네트워크 내 뉴런들 및/또는 시냅스들에서 확률적 프로세스들의 노이즈 수준의 비례 교란들에서 상기 선택된 데이터를 인코딩하도록 구성된 노이즈 인코더, 또는 상기 인공 순환 신경 네트워크 내 뉴런들 및/또는 시냅스들에서 자발적 이벤트들의 설정 빈도 또는 확률 중 어느 하나에서 상기 선택된 데이터를 인코딩하도록 구성된 바이트 시냅스 자발적 이벤트 인코더 중 하나 이상을 포함할 수 있다.
상기 인코딩하는 수단은 ON 비트들이 상기 인공 순환 신경 네트워크 내 뉴런들 및/또는 시냅스들의 긍정적인 (positive) 활성화를 생성하며 그리고 OFF 비트들은 상기 인공 순환 신경 네트워크 내 뉴런들 및/또는 시냅스들의 활성화를 생성하지 않는 이벤트들의 시계열들 내 순차적인 시점으로 바이트 내 비트들의 시퀀스를 매핑하도록 구성될 수 있다. 뉴런들 및/또는 시냅스들의 상기 긍정적인 활성화는 상기 뉴런들 및/또는 시냅스들에서의 이벤트들의 빈도 또는 확률을 증가시킬 수 있다.
상기 인코딩하는 수단은, ON 비트들이 뉴런들 및/또는 시냅스들의 긍정적인 활성화를 생성하며 그리고 OFF 비트들은 상기 인공 순환 신경 네트워크 내 뉴런들 및/또는 시냅스들의 부정적인 (negative) 활성화를 생성하는 이벤트들의 시계열 내 순차적인 시점으로 바이트 내 비트들의 시퀀스를 매핑하도록 구성될 수 있다. 뉴런들 및/또는 시냅스들의 상기 긍정적인 활성화는 상기 뉴런들 및/또는 시냅스들에서의 이벤트들의 빈도 또는 확률을 증가시키며 뉴런들 및/또는 시냅스들의 상기 부정적인 활성화는 상기 뉴런들 및/또는 시냅스들에서의 이벤트들의 빈도 또는 확률을 감소시킨다. 상기 인코딩하는 수단은, ON 비트들은 흥분성 뉴런들 및/또는 시냅스들을 활성화하며 그리고 OFF 비트들은 상기 인공 순환 신경 네트워크 내 억제성 뉴런들 및/또는 시냅스들을 활성화하는 이벤트들의 시계열 내 순차적인 시점으로 바이트 내 비트들의 시퀀스를 매핑하도록 구성될 수 있다. 상기 인공 신경 네트워크 시스템에서 상기 인코딩하는 수단은 상기 인공 순환 신경 네트워크 내 어느 뉴런들 및/또는 시냅스들이 상기 선택된 데이터 중 적어도 일부를 수신할 것인지를 결정하도록 구성된 타겟 생성기를 포함할 수 있다. 상기 타겟 생성기는 어느 뉴런들 및/또는 시냅스들이 상기 선택된 데이터를 수신할 것인지를, 상기 인공 순환 신경 네트워크의 영역 또는 상기 인공 순환 신경 네트워크의 영역 내의 계층 또는 클러스터 또는 상기 인공 순환 신경 네트워크의 영역 내의 뉴런들 및/또는 시냅스들의 특정 복셀 (voxel) 위치 또는 상기 인공 순환 신경 네트워크 내의 뉴런들 및/또는 시냅스들의 유형 중 하나 이상에 기초하여 결정할 수 있다. 상기 인공 순환 신경 네트워크는 스파이킹 순환 신경 네트워크일 수 있다.
일반적으로, 본 명세서에 기술된 주제의 또 다른 혁신적인 측면은 표적 뇌 조직을 모방하는 인공 순환 신경 네트워크의 노드를 구성하는 방법에서 구현될 수 있다. 상기 방법은, 상기 인공 순환 신경 네트워크 내 노드들의 총 수를 설정하는 단계, 상기 인공 순환 신경 네트워크 내 노드들의 클래스들 및 서브클래스들의 수를 설정하는 단계, 각 클래스 및 서브클래스 내 노드들의 구조적 속성들을 설정하는 단계로, 여기에서 상기 구조적 속성들은 상기 노드가 입력들을 결합할 때 시간의 함수로서 계산의 시간적 및 공간적 통합을 결정하는, 단계, 각 클래스 및 서브클래스 내 노드들의 기능적 속성들을 설정하는 단계로, 여기에서 상기 기능적 속성들은 활성화, 통합 및 응답 기능들을 시간의 함수로서 결정하는, 단계, 노드들의 각 클래스 및 서브클래스 내 노드들 수를 설정하는 단계, 노드들의 각 클래스 및 서브클래스 내 각 노드의 구조적 다양성의 수준 그리고 노드들의 각 클래스 및 서브클래스 내 각 노드의 기능적 다양성의 수준을 설정하는 단계, 각 노드의 방향을 설정하는 단계, 그리고 상기 인공 순환 신경 네트워크 내 각 노드의 공간 배열을 설정하는 단계를 포함할 수 있으며, 여기에서 상기 공간 배열은 어느 노드가 상기 인공 순환 신경 네트워크에서 통신 중인가를 판별한다.
이 방법과 기타 일반적인 방법 및 시스템은 다음 특징들 중 하나 이상을 포함할 수 있다. 상기 인공 순환 신경 네트워크 내 노드들 및 연결들의 총 수는 상기 표적 뇌 조직의 비슷한 크기 부분의 뉴런들의 총 수를 모방한다. 노드들의 상기 구조적 속성들은 상기 노드들의 분기 형태 및 상기 노드들 내의 신호들의 진폭들 및 모양들을 포함하며, 여기에서 신호들의 진폭들 및 모양들은 상기 분기 형태에서 수용 시냅스의 위치에 따라 설정된다. 노드들의 상기 기능적 속성들은 상기 노드들의 하위 임계값 및 상위 임계값 스파이크 동작을 포함할 수 있다. 상기 인공 순환 신경 네트워크 내 노드들의 클래스들 및 서브클래스들의 수는 상기 표적 뇌 조직 내 뉴런들의 클래스들 및 서브클래스들의 수를 모방할 수 있다.
상기 인공 순환 신경 네트워크 내 노드들의 각 클래스 및 서브클래스 내 노드들의 수는 상기 표적 뇌 조직의 뉴런들의 클래스들 및 서브클래스들의 비율을 모방할 수 있다. 상기 인공 순환 신경 네트워크 내 각 노드의 구조적 다양성의 수준 및 기능적 다양성의 수준은 상기 표적 뇌 조직 내 뉴런들의 다양성을 모방할 수 있다. 상기 인공 순환 신경 네트워크 내 각 노드의 방향은 상기 표적 뇌 조직 내 뉴런들의 방향을 모방할 수 있다. 상기 인공 순환 신경 네트워크 내 각 노드의 공간적 배열은 상기 표적 뇌 조직 내 뉴런들의 공간적 배열을 모방할 수 있다.
상기 공간 배열을 설정하는 단계는 노드들의 계층들을 설정하는 단계 및/또는 노드들의 상이한 클래스들 또는 서브클래스들의 클러스터링을 설정하는 단계를 포함할 수 있다. 상기 공간 배열을 설정하는 단계는 상기 인공 순환 신경 네트워크의 상이한 영역들 간의 통신을 위해 노드들을 설정하는 단계를 포함할 수 있다. 상기 영역들 중 제1 영역은 문맥 데이터(contextual data)의 입력을 위해 지정될 수 있으며, 상기 영역들 중 제2 영역은 직접 입력을 위해 지정될 수 있으며, 그리고 상기 영역들 중 제3 영역은 주의 입력(attention input)을 위해 지정될 수 있다.
일반적으로, 본 명세서에 기술된 주제의 또 다른 혁신적인 측면은 표적 뇌 조직을 모방하는 인공 순환 신경 네트워크의 노드들 사이의 연결들을 구성하는 방법에서 구현될 수 있다. 상기 방법은, 상기 인공 순환 신경 네트워크 내 노드들 간의 연결들의 총 수를 설정하는 단계, 상기 인공 순환 신경 네트워크 내 다수의 하위 연결들을 설정하는 단계로, 하위 연결들의 컬렉션은 상이한 유형의 노드들 간에 단일 연결을 형성하는, 단계, 상기 인공 순환 신경 네트워크 내 노드들 간의 연결성의 수준을 설정하는 단계, 상기 인공 순환 신경 네트워크 내 노드들 간의 정보 전달의 방향을 설정하는 단계, 상기 인공 순환 신경 네트워크 내 노드들 간의 연결들의 가중치를 설정하는 단계, 상기 노드들 간의 연결들 내 응답 파형들을 설정하는 단계로, 상기 응답들은 송신 노드 내 단일 스파이크에 의해 유도된, 단계, 상기 노드들 간의 연결들에서 전달 역학을 설정하는 단계로, 상기 전달 역학은 송신 노드로부터의 스파이크들의 시퀀스 동안 개별 연결의 변화하는 응답 진폭들을 특성화하는, 단계, 상기 노드들 간의 연결들 내 전달 확률들을 설정하는 단계로, 상기 전달 확률들은 송신 뉴런 내 스파이크가 주어지면 주어진 연결을 형성하는 하위 연결들에 의해 응답이 생성될 가능성을 특성화하는, 단계; 그리고 상기 노드들 간의 연결들에서 자발적인 전달 확률들을 설정하는 단계를 포함할 수 있다.
이 방법과 기타 일반적인 방법 및 시스템은 다음 특징들 중 하나 이상을 포함할 수 있다. 상기 인공 순환 신경 네트워크 내 연결들의 총 수는 상기 표적 뇌 조직의 비슷한 크기 부분의 시냅스들의 총 수를 모방할 수 있다. 하위 연결들의 수는 상기 표적 뇌 조직 내 상이한 유형들 사이에 단일 연결들을 형성하기 위해 사용되는 시냅스들의 수를 모방할 수 있다. 상기 인공 순환 신경 네트워크 내 노드들 간의 연결성의 수준은 상기 표적 뇌 조직 내 뉴런들 간의 특정 시냅스 연결성을 모방할 수 있다. 상기 방법에서 상기 인공 순환 신경 네트워크 내 노드들 사이의 정보 전달 방향은 상기 표적 뇌 조직의 시냅스 연결들에 의한 시냅스 전달 방향을 모방할 수 있다. 상기 노드들 간의 연결들의 가중치들의 분포는 상기 표적 뇌 조직 내 노드들 간의 시냅스 연결들의 가중치 분포를 모방할 수 있다. 상기 방법은 상기 노드들 중 선택된 노드들 간의 연결들 중 선택된 연결의 가중치를 변경하는 단계를 포함할 수 있다. 상기 방법은 상기 노드들 간의 연결들의 가중치들의 전체 분포를 일시적으로 시프트하거나 변경하는 단계를 포함할 수 있다. 상기 응답 파형들은 상기 표적 뇌 조직의 대응하는 유형의 뉴런에서 생성된 시냅스 반응들의 위치 의존적 형태들을 모방할 수 있다. 상기 방법은 상기 노드들 중 선택된 노드들 사이의 연결들 중 선택된 연결에서 상기 응답 파형을 변경하는 단계를 더 포함할 수 있다. 상기 방법은 노드들 사이의 연결들 내 상기 응답 파형들의 분포를 일시적으로 변경하는 단계를 포함할 수 있다. 상기 방법은 상기 노드들 중 선택된 노드들 사이의 연결들 중 선택된 연결에서 상기 전달 역학을 결정하는 함수의 파라미터들을 변경하는 단계를 포함할 수 있다. 상기 방법은 상기 노드들 사이의 연결들에서 상기 전달 역학을 결정하는 함수들의 파라미터들의 분포를 일시적으로 변경하는 단계를 포함할 수 있다. 상기 방법은 상기 노드들 간의 연결들 중 선택된 연결에서 상기 전달 확률들 중 선택된 전달 확률을 변경하는 단계를 포함할 수 있다. 상기 방법은 상기 노드들 간의 연결들에서 상기 전달 확률들을 일시적으로 변경하는 단계를 포함할 수 있다. 상기 방법은 상기 노드들 간의 연결들 중 선택된 연결에서 상기 자발적 전달 확률들 중 선택된 것을 변경하는 단계를 포함할 수 있다. 상기 방법은 상기 노드들 간의 연결들에서 상기 자발적인 전달 확률들을 일시적으로 변경하는 단계를 포함할 수 있다.
일반적으로, 본 명세서에서 설명하는 주제의 또 다른 혁신적인 측면은 인공 순환 신경 네트워크의 응답을 개선하는 방법에서 구현될 수 있다. 상기 방법은 입력 동안에 상기 인공 순환 신경 네트워크 내 모든 노드들의 전체 응답을 증가시키기 위해 상기 인공 순환 신경 네트워크를 훈련시키는 단계를 포함할 수 있다.
일반적으로, 본 명세서에서 설명하는 주제의 또 다른 혁신적인 측면은 인공 순환 신경 네트워크의 응답을 개선하는 방법에서 구현될 수 있다. 상기 방법은 활동의 토폴로지 패턴들에 부합하는 상기 인공 순환 신경 네트워크의 응답들을 증가시키기 위해 상기 인공 순환 신경 네트워크를 훈련시키는 단계를 포함할 수 있다.
일반적으로, 본 명세서에서 설명하는 주제의 또 다른 혁신적인 측면은 인공 순환 신경 네트워크의 응답을 개선하는 방법에서 구현될 수 있다. 상기 방법은 상기 인공 순환 신경 네트워크에 저장된 정보의 양을 증가시키기 위해 상기 인공 순환 신경 네트워크를 훈련시키는 단계를 포함하며, 여기에서 상기 저장된 정보는 상기 인공 순환 신경 네트워크에 이전에 입력된 데이터 파일 또는 시계열 내 시점들을 특성화한다.
일반적으로, 본 명세서에서 설명하는 주제의 또 다른 혁신적인 측면은 인공 순환 신경 네트워크의 응답을 개선하는 방법에서 구현될 수 있다. 상기 방법은 상기 인공 순환 신경 네트워크의 후속 입력들이 정확하게 예측될 가능성을 증가시키기 위해 상기 인공 순환 신경 네트워크를 훈련시키는 단계를 포함하며, 상기 후속 입력들은 데이터 파일들 또는 시계열 내 시점들일 수 있다.
적어도 하나의 컴퓨터 판독가능 저장 매체는 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금 상기 방법들 중 어느 하나를 포함하는 동작들을 수행하게 하는 실행 가능한 명령어들로 인코딩될 수 있다.
본 명세서에 기술된 주제의 특정 실시예는 다음 이점 중 하나 이상을 실현하도록 구현될 수 있다. 정보 처리 시스템은 데이터의 상이한 유형들 및 조합을 동시에 처리하고, 데이터에 대해 임의적으로 복잡한 수학적 연산을 실행하고, 뇌 작업들을 신경 코드 형태로 인코딩하며, 그리고 신경 코드들을 디코딩하여 임의적으로 복잡한 출력을 생성할 수 있다. 상기 신경 코드는 임의적으로 복잡한 정보의 표현 및 계산 조작을 단순화하는 기호적 컴퓨터 언어를 구성하는 값들(이진 및/또는 아날로그)의 집합을 포함한다. 그런 순환 인공 신경 네트워크로 생성된 신경 코드는 데이터 저장, 통신 및 컴퓨팅을 위한 새로운 부류의 기술을 제공한다.
그런 순환 인공 신경 네트워크는 매우 다양한 방식으로 사용될 수 있다. 예를 들어, 신경 코드들은 암호화되기도 한 고도로 압축된(손실 및 무손실) 형식으로 데이터를 인코딩하도록 설계될 수 있다. 신경 코드들 내 데이터를 암호화함으로써, 데이터를 먼저 해독할 필요 없이 그 데이터는 안전하게 분석될 수 있다. 신경 코드들은, 고도로 압축되고 암호화될 뿐만 아니라 홀로그램 속성들을 디스플레이하여 강력하고 신속하며 매우 안전한 데이터 전송을 허용하는 원거리 통신 신호들을 인코딩하도록 설계될 수 있다. 신경 코드들은 데이터에 대한 임의적인 복잡한 수학적 및/또는 논리적 연산들의 시퀀스를 실행하는 인지 기능들의 시퀀스를 나타내도록 설계될 수 있으며, 그래서 범용 컴퓨팅을 제공한다. 신경 코드들은 인공 지능 및 인공 일반 지능을 위한 새로운 클래스의 기술을 제공하는 임의적인 복잡한 인지 기능들의 임의적인 복잡한 결정들의 집합을 나타내도록 설계될 수도 있다.
임의적으로 복잡한 인지 알고리즘을 생성하기 위해 얽힌 결정들의 계층들을 구성 및 해체하여 정보가 처리될 수 있다. 이것은 이진 및/또는 아날로그 심볼들을 채택하여 두뇌 모델에 의해 만들어진 결정들의 완전성의 상태를 표현함으로써 고전적인 디지털 및/또는 뉴로모픽 컴퓨팅 아키텍처에서 작동하도록 조정할 수 있다. 일부 구현에서, 컴퓨팅 능력은 다른 신경 네트워크보다 더 밀접하게 두뇌를 모델링함으로써 증가될 수 있다. 다시 말해, 여기에 설명된 반복적인 인공 신경 네트워크는 뇌의 구조 및 기능 아키텍처의 세부 사항과 복잡성으로 이동함으로써 현대의 디지털 컴퓨터 및 AI 시스템과 비교하여 개발의 반대 경로에 컴퓨터 및 AI 시스템을 놓아둔다. 이 컴퓨팅 아키텍처는 고전적인 디지털 컴퓨터, 아날로그 뉴로모픽 컴퓨팅 시스템에서 작동하도록 조정될 수 있으며, 그리고 양자 상태를 정보에 매핑하는 새로운 방법을 양자 컴퓨터에 제공할 수 있다.
본 명세서에서 설명된 주제의 하나 이상의 실시예의 세부사항은 첨부 도면 및 아래의 설명에 제시된다. 상기 주제의 다른 특징, 측면 및 이점은 설명, 도면 및 청구범위로부터 명백해질 것이다.
도 1은 신경시냅스 컴퓨터 시스템의 개략도이다.
도 2는 도 1에 도시된 데이터 환경 생성기와 같은 데이터 환경 생성기의 개략도이다.
도 3은 도 1에 도시된 감각 인코더와 같은 감각 인코더의 개략도이다.
도 4는 도 1에 도시된 뇌 처리 유닛와 같은 뇌 처리 유닛을 구성하기 위한 과정의 흐름도이다.
도 5는 도 1에 도시된 뇌 처리 유닛와 같은 뇌 처리 유닛의 노드들을 구성하는 과정을 도시한 흐름도이다.
도 6은 도 1에 도시된 뇌 처리 유닛와 같은 뇌 처리 유닛의 노드들의 연결을 구성하는 과정의 흐름도이다.
도 7은 도 1에 도시된 뇌 처리 유닛와 같은 뇌 처리 유닛를 업그레이드하기 위한 프로세스의 개략도이다.
도 8은 도 1에 도시된 인지 인코더와 같은 인지 인코더를 구성하는 과정의 흐름도이다.
도 9는 신경 네트워크 내 노드 및 노드들의 조합으로부터 구성된 신경위상학적 (neurotopological) 요소들의 개략도이다.
도 10은 신경 네트워크의 상이한 컴포넌트들의 조합으로부터 구성된 신경위상학적 요소들의 개략도이다.
도 11은 토폴로지 요소들을 정의하고 토폴로지 유닛들을 계산과 연관시키기 위한 프로세스의 흐름도이다.
도 12는 인지 내의 결정들의 계층적 조직의 개략도이다.
도 13은 신경 코드를 구성하기 위한 과정의 흐름도이다.
도 14는 계층적 신경 코드들을 구성하기 위한 프로세스의 개략도이다.
도 15는 신경 코드들을 그 신경 코드들의 목표 출력들로 디코딩하기 위한 프로세스의 예이다.
도 16은 도 1에 도시된 학습 어댑터와 같은 학습 어댑터의 개략도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
신경시냅스 컴퓨터는 뇌가 어떻게 작동하는지에 따라 모델링된 인지 컴퓨팅 패러다임에 따라 정보를 인코딩, 처리 및 디코딩한다. 이 패러다임은 인지가 뇌 내의 임의 요소들의 임의 조합에 의해 만들어지고 서로 얽혀 있는 결정들의 임의의 복잡한 계층들로부터 발생한다는 핵심 개념에 기반한다. 신경시냅스 컴퓨터 시스템의 중앙 처리 유닛(CPU)은 일부 구현에서 뇌 조직의 구조적 및 기능적 아키텍처의 측면들을 모방할 수 있는 스파이크 순환 신경 네트워크(spiking recurrent neural network)이다.
이 컴퓨팅 패러다임의 다른 주요 기능들은 다음의 것들을 포함한다.
1. 다양한 결정들과 동의어인 다양한 계산들을 생성하는 순환 신경 네트워크 또는 동등한 구현.
2. 인지 컴퓨팅 기능은 입력에 반응할 때 두뇌의 요소들의 임의 개수 및 유형에 의해 내려지는 결정들의 상이한 조합의 임의로 복잡한 계층들을 설립하는 능력에서 발생한다.
3. 인지 컴퓨팅은 결정에 도달하기 위해 신경 요소들에 의해 수행되는 특정 계산에 대한 지식을 필요로 하지 않는다; 오히려 각 계산의 스테이지들의 표현을 결정의 상태들로서 표현할 것만을 필요로 한다.
4. 인지 컴퓨팅은 결정들의 세계에서 결정들의 부분집합의 상태들의 얽힘을 이용한다.
5. 인지 컴퓨팅은 뇌의 요소들이 내릴 수 있는 결정들의 범위의 특성에 의해서만 근본적으로 제한된다.
이 패러다임에서, 인지 컴퓨터의 뇌 처리 유닛은, 광범위한 결정을 구성하고 이러한 결정을 다중-레벨 계층에서 구성함으로써 입력에 관해 작동한다. 결정들은 뇌 처리에서의 요소들에 의해 수행되는 계산으로서 식별된다. 상기 계산들의 정확한 특성을 이해하는 것은 필요하지 않다. 대신 계산 완료의 스테이지가 결정들의 상태를 인코딩하기 위해 사용된다. 수학적으로 정확하게 표현될 수 있는 계산을 수행하는 요소들은 위상 요소들로 언급된다. 상이한 인지 알고리즘들은 결정들의 상이한 조합들 및 이러한 결정들이 계층들에서 함께 네트워크로 연결되는 방식으로부터 발생한다. 상기 출력은 결정들의 집합으로 구성된 기호적 컴퓨터 언어이다.
도 1은 신경시냅스 컴퓨터 시스템의 개략도이다. 예시된 구현에서, 신경시냅스 컴퓨터 시스템(100)은 데이터 환경 생성기(105), 감각 인코더(110), 순환 인공 신경 네트워크 뇌 처리 유닛(brain processing unit, BPU)(115), 인지 인코더(120), 동작 생성기(125), 및 이 컴포넌트들 각각 내에서 그리고 전체에서 학습 및 최적화를 통제하는 학습 어댑터(130)를 포함한다.
데이터 환경 생성기(105)는 BPU(115)와 같은 뇌 처리 유닛에 의한 처리를 위해 데이터를 수집하고 조직화한다. 데이터 환경 생성기(105)는 데이터 및/또는 데이터 스트림 검색 엔진, 데이터 선택 관리자, 데이터를 로드하기 위한 모듈 (컴퓨터 사이언스에서 고전적인 추출, 변환, 로드(즉, ETL) 프로세스로서 함께 작동함), 데이터의 환경을 구성하는 생성기 및/또는 컴퓨팅 요구 사항에 따라 데이터 증강을 수행하는 전처리기와ㅘ 같은 프로세싱 컴포넌트들을 포함할 수 있다.
감각 인코더(110)는 순환 인공 신경 네트워크 뇌 처리 유닛이 처리할 수 있는 형식으로 데이터를 인코딩한다. 감각 인코더(110)는 감각 전처리기, 감각 인코더, 감각 분해기, 시간 관리자 및 입력 관리자를 포함할 수 있다.
순환 인공 신경 네트워크 뇌 처리 유닛 (BPU)(115)은 입력에 대한 네트워크 응답을 시뮬레이션하여 데이터를 처리한다. BPU(115)는 특정 구조적 및 기능적 아키텍처 요구사항의 최소 집합을 갖는 스파이크 인공 순환 신경 네트워크를 포함할 수 있다. 일부 구현에서, BPU의 목표 아키텍처는 정확한 세부 사항으로 캡처된 실제 두뇌의 아키텍처를 모방할 수 있다.
인지 인코더(120)는 BPU(115)에서의 활동을 해석하고 상기 활동을 신경 코드에서 인코딩한다. 인지 인코더(120)는 BPU에 의해 이루어진 단일 결정들로 식별된 서브-컴포넌트들의 집합을 포함하고, 이 결정들으로부터의 신경 코드를 컴파일하며, 그리고 신경 코드들을 결합하여 임의로 복잡한 인지 프로세스를 형성한다.
아래에서 더 논의되는 바와 같이, 신경시냅스 컴퓨터 시스템은 임의의 복잡한 인지 알고리즘을 구성하기 위해 상이한 수준에서 결정들을 조직화한다. 즉, 기본적 결정들은 단일결정, 인지 연산, 인지 기능으로 조직화되어 인지 알고리즘을 생성할 수 있다. 기본적 결정은 신경시냅스 컴퓨터 시스템에 의해 수행된 계산의 복잡성의 범위를 포착하기 위해 얽혀 있다. 예를 들어, 기본적 결정들은 단일 결정들을 구성하기 위해 얽혀 있다. 단일 결정들은 결정들의 계층에서의 더 높은 수준 및 임의로 복잡한 인지 알고리즘을 연속적으로 구성하기 위해 얽혀 있다. 인지 인코더(120)는 신경 코드에서 계층의 상이한 레벨들에서 이러한 결정들을 식별하고 인코딩할 수 있다.
동작 생성기(125)는 신경 코드를 그 신경 코드들의 목표 출력들로 디코딩하도록 설계된 디코더들을 포함한다. 상기 디코더들은 신경 코드들을 읽고 번역하여 자신들이 인코딩하는 인지 기능들을 수행한다.
학습 어댑터(130)는 이러한 컴포넌트 각각 내에서 그리고 각 컴포넌트에 걸쳐 학습 및 최적화를 통제한다. 학습 어댑터(130)는 시스템의 각 컴포넌트의 하이퍼파라미터들의 최적화 및 학습을 위한 프로세스를 설정하도록 구성된다. 학습 어댑터(130)는 피드포워드 학습 어댑터(135) 및 피드백 학습 어댑터를 포함할 수 있다. 피드포워드 학습 어댑터(135)는, 예를 들면, 데이터 환경 생성기(105)로부터의 감독 또는 다른 신호(145), 감각 인코더(110)로부터의 신호(150), BPU(115)로부터의 신호(155), 및/또는 인지 인코더(120)로부터의 신호(160)에 기초하여 하이퍼파라미터들을 최적화하여 감각 인코더(110), BPU(115), 인지 인코더(120), 및/또는 동작 생성기(125) 중 하나 이상의 동작들을 개선할 수 있다. 피드백 학습 어댑터(135)는, 예를 들면, 동작 생성기(125)로부터의 보상 또는 기타 신호(165), 인지 인코더(120)로부터의 신호(170), BPU(115)로부터의 신호(175), 및/또는 감각 인코더(110)로부터의 신호(180)에 기초하여 하이퍼파라미터들을 최적화하여 환경 생성기(105), 감각 인코더(110), BPU(115), 및/또는 인지 인코더(120) 중 하나 이상의 동작들을 개선할 수 있다.
작동 시, 신경시냅스 컴퓨터 시스템(100)은 각 컴포넌트의 일련의 작동 및 컴포넌트들 간의 적응적 학습 상호작용에 따라 작동한다. 신경시냅스 컴퓨터의 프로그래밍 패러다임은 각 컴포넌트의 매개 변수 구성을 위해 상이한 모델들을 허용한다. 상이한 프로그래밍 모델들은 결정들의 기호적 표현을 활용하기 위해 상이한 방식들을 허용한다. 그러므로 다양한 프로그래밍 모델을 구현하여 특정 유형의 컴퓨팅 작업에 대해 신경시냅스 컴퓨터를 조정할 수 있다. 신경시냅스 컴퓨터는 컴퓨팅 작업의 목표 클래스와 일치하도록 최적의 프로그래밍 모델을 자체 최적화하고 학습할 수도 있다. 신경시냅스 컴퓨터로 소프트웨어 및 하드웨어 애플리케이션을 설계하는 것은 상기 시스템의 각 컴포넌트의 파라미터들을 세팅하고 컴포넌트들이 샘플 입력 데이터를 최적화하여 원하는 컴퓨팅 기능을 생성하는 것을 가능하게 하는 것을 포함한다.
도 2는 데이터 환경 생성기(105)(도 1)와 같은 데이터 환경 생성기의 개략도이다. 위에서 논의된 바와 같이, 데이터 환경 생성기는 BPU에 의한 처리를 위해 데이터 및/또는 데이터 스트림의 환경을 준비한다. 데이터 환경 생성기(105)의 예시된 실시예는 검색 엔진(205), 데이터 선택 관리자(210), 데이터 전처리기(215), 및 데이터 프레임워크 생성기(220)를 포함한다.
검색 엔진(205)은 수동으로 입력되거나 자동화된 쿼리들을 수신하고 데이터를 검색하도록 구성된다. 예를 들어, 온라인(인터넷) 또는 오프라인(로컬 데이터베이스)의 의미 검색이 수행될 수 있다. 검색 엔진(205)은 검색 결과를 또한 리턴할 수 있다.
데이터 선택 관리자(210)는 신경시냅스 컴퓨터 시스템으로 개발 중인 애플리케이션의 요구사항에 기초하여 검색 질의를 처리하고 관련 검색 결과를 선택하도록 구성된다. 데이터 선택 관리자(210)는 검색 결과에서 참조되는 데이터를 검색하도록 또한 구성될 수 있다.
데이터 전처리기(215)는 데이터를 전처리하도록 구성된다. 예를 들어, 일부 구현에서, 데이터 전처리기(215)는 데이터의 크기 및 치수를 변경하고, 데이터의 해상도 버전의 계층을 생성하고, 신경시냅스 컴퓨터 시스템으로 개발되고 있는 애플리케이션의 요구사항에 따라 데이터의 통계적 변형을 생성할 수 있다. 예시의 데이터 증강 기술은 통계 및 수학적 필터링 그리고 기계 학습 작업을 포함한다. 데이터의 통계적 변형을 생성하는 예시의 기술은 통계적 노이즈 도입, 방위에서의 변환, 자르기, 클립 마스크 적용 등을 포함한다. 데이터의 여러 해상도 버전을 생성하는 예시의 기술은 다운 샘플링 및 차원 축소를 위한 다양한 수학적 방법을 포함한다.
일부 구현들에서, 데이터 전처리기(215)에 의해 수행되는 전처리는 필터링 동작들을 포함할 수 있다. 예를 들어, 전처리는 특정 입력의 여러 상이한 버전들이 동시에 제시되는 동시 필터링을 포함할 수 있다. 예를 들어, 여러 필터 기능들은 이미지에 적용되고 기계 학습 모델에서 찾은 필터들의 출력과 함께 제시될 수 있다. 이것은 다른 기계 학습 접근 방식이 신경시냅스 컴퓨팅을 위한 시작점이 되는 것을 가능하게 한다.
다른 예로서, 상기 전처리는 인지 필터링을 포함할 수 있다. 예를 들어, 이미지의 배경은 기계 학습 모델을 통해 처리되어 그 이미지의 컨텍스트(즉, 컨텍스트 필터)와 관련된 특징을 획득할 수 있다. 다른 기계 학습 모델은 이미지를 분할하고 지각 필터(perceptual filter)로 표시될 수 있는 객체의 특징을 얻을 수 있다. 추가로, 상기 이미지는 주의(attention) 필터를 구성하기 위해 이미지에서 가장 두드러진 정보에 대해 사전 처리될 수 있다. 지각 (Perceptual), 문맥 (Contextual) 및 주의 (Attention) 필터링 이미지들은 동시에 처리될 수 있다. 인지 필터링의 결과들은 신경시냅스 컴퓨터 시스템에 의해 동시에 처리될 수 있다.
다른 예로서, 상기 전처리는 통계적 필터링을 포함할 수 있다. 예를 들어, 이미지의 픽셀 값들은 이미지의 통계적 측정값(예: 다양한 분포)과 함께 처리될 수 있다. 원시 데이터와 그 원시 데이터의 통계 분석 결과 두 가지 모두는 신경시냅스 컴퓨터 시스템에 의해 동시에 표시되고 처리될 수 있다.
데이터 프레임워크 생성기(220)는 신경시냅스 컴퓨터 시스템으로 개발되고 있는 애플리케이션의 컴퓨팅 요구사항에 기초하여 데이터, 데이터세트 또는 데이터 스트림에 대한 조직적 프레임워크를 결정하도록 구성된다. 프레임워크 생성기(220)는 1D 벡터, 2D 매트릭스, 3D 이상의 차원 매트릭스, 및 지식 그래프와 같은 다양한 조직적 프레임워크로부터 선택하여 데이터가 처리될 공간을 생성하도록 구성될 수 있다.
학습 어댑터(130)의 일부와 같은 학습 어댑터는 데이터 환경 생성기(105)의 컴포넌트 내에서 그리고 그 컴포넌트에 걸쳐 학습 및 최적화를 또한 통제할 수 있다. 예를 들어, 상기 부분 학습 어댑터(130)는, 예를 들면, 다음과 같은 것들에 기반하여, 데이터 환경 생성기(105)의 각 컴포넌트의 하이퍼파라미터들의 최적화 및 학습을 위한 프로세스를 설정하도록 구성될 수 있다:
- 외부 데이터 환경 생성기(105)로부터의 (예를 들어, 감각 인코더(110), BPU(115), 및/또는 인지 인코더(120)로부터의) 감독, 보상 또는 기타 신호 또는
- 데이터 환경 생성기(105) 내에서 감독, 보상 또는 기타 신호.
예를 들어, 학습 어댑터(130)는 피드포워드 학습 어댑터(135) 및 피드백 학습 어댑터를 포함할 수 있다. 피드포워드 학습 어댑터(135)는 예를 들어, 검색 엔진(205)으로부터의 감독 또는 다른 신호(225), 데이터 선택 관리자(210)로부터의 신호(230), 및/또는 데이터 전처리기(215)로부터의 신호(235)에 기초하여 하이퍼파라미터를 최적화하여 데이터 선택 관리자(210), 데이터 전처리기(215), 및 데이터 프레임워크 생성기(220) 중 하나 이상의 동작을 개선할 수 있다. 피드백 학습 어댑터(135)는 예를 들어 데이터 프레임워크 생성기(220)로부터의 보상 또는 다른 신호(245), 데이터 전처리기(215)로부터의 신호(245), 및/또는 데이터 선택 관리자(210)로부터의 신호(250)에 기초하여 하이퍼파라미터를 최적화하여 검색 엔진(205), 데이터 선택 관리자(210), 및 데이터 전처리기(215) 중 하나 이상의 동작을 개선할 수 있다.
도 3은 감각 인코더(110)(도 1)와 같은 감각 인코더의 개략도이다. 위에서 논의한 바와 같이, 감각 인코더는 데이터 파일을 BPU에 입력하기 위한 감각 코드로 변환한다. 감각 인코더(110)의 예시된 실시예는 감각 전처리기(305), 감지 인코더(310), 패킷 생성기(315), 타겟 생성기(320), 및 시간 관리자(325)를 포함한다.
감각 전처리기(305)는 데이터 파일을 이진 코드 형식으로 변환하도록 구성된다.
감지 인코더(310)는 감각 전처리기(305)로부터의 이진 코드를 판독하고 BPU에 의한 처리를 위해 비트 및/또는 바이트를 감각 입력 신호로 변환하기 위해 인코딩 방식들 중 하나 또는 조합을 적용하도록 구성된다. 감지 인코더(310)는 예를 들어 다음의 것들에 의해 이진 코드 내 각 바이트 값을 변환하도록 구성된다:
- BPU 내 뉴런 및/또는 시냅스를 활성화하기 위해 각 바이트 값을 상이한 시점으로 변환(바이트 시간 인코딩),
- 각 바이트 값을 BPU 내 뉴런 및/또는 시냅스의 활성화에 대한 통계적 확률로 변환(바이트 확률 인코딩),
- 각 바이트 값을 BPU 내 상이한 뉴런 및/또는 시냅스의 비례 교란으로 변환(바이트 진폭 인코딩),
- 각 바이트 값을 뉴런 및/또는 시냅스 수의 비례 교란으로 변환(바이트 모집단 인코딩 방식),
- 각 바이트 값을 뉴런 및/또는 시냅스의 활성화의 주파수로 변환하여(바이트 주파수 인코딩) 일련의 활성화들을 직접 주파수 또는 표준화된 진동파 입력의 진폭 및/또는 주파수 변조로서 적용(바이트 주파수 인코딩),
- 각 바이트 값을 뉴런 및/또는 시냅스 내 확률적 프로세스의 노이즈 레벨의 비례 교란으로 변환(바이트 노이즈 인코딩),
- 각 바이트 값을 자발적인 시냅스 이벤트의 설정 빈도 또는 확률로서 자발적인 시냅스 이벤트로 변환(바이트 시냅스 자발적 이벤트 인코딩),
- 바이트 내 비트의 시퀀스를 이벤트의 시계열 내 순차적인 시점으로 매핑. 바이트 내 비트의 상기 시퀀스는, 예를 들면, 다음의 것들을 포함하는 다양한 방식으로 이벤트의 시계열 내 순차적인 시점으로 매핑될 수 있다:
- ON 비트는 뉴런 및/또는 시냅스의 긍정적인 활성화를 마킹하며 그리고 OFF 비트는 활성화를 일으키지 않는다,
- ON 비트는 뉴런의 긍정적인 활성화(양의 진폭 적용) 및/또는 시냅스를 마킹하며 (시냅스 이벤트의 빈도 또는 확률 증가) OFF 비트는 뉴런(음의 진폭 적용) 및/또는 시냅스의 부정적인 활성화를 마킹하며 (시냅스 이벤트의 빈도 또는 확률 감소), 또는
- ON 비트는 BPU 내 흥분성 노드를 활성화하고 OFF 비트는 BPU 내 억제성 노드를 활성화하며, 여기에서 상기 흥분성 및 억제성 노드는 랜덤으로 선택되거나 네트워크에서 서로 연결된 방식에 따라 선택된다.
패킷 생성기(315)는 감각 신호를 BPU의 처리 용량과 일치시키기 위해 필요한 크기의 패킷으로 분리하도록 구성된다.
타겟 생성기(320)는 BPU의 어떤 컴포넌트가 감각 입력의 어떤 양태를 수신할지를 결정하도록 구성된다. 예를 들어, 이미지 내 픽셀은, 파일 내 각 픽셀/바이트/비트 위치에 대한 모드 및/또는 에지에 대한 선택이 예를 들어 BPU의 영역, 영역 내의 레이어 또는 클러스터, 영역, 레이어 또는 클러스터 내의 뉴런 및/또는 시냅스의 특정 XYZ 복셀 위치, 특정 유형의 뉴런 및/또는 시냅스, 특정 뉴런 및 시냅스, 또는 이들의 조합에 기반하는 특정 노드 또는 에지에 매핑될 수 있다.
시간 관리자(325)는 패킷들의 시계열 또는 시퀀스 내 데이터의 패킷들 사이의 시간 간격을 판별하도록 구성된다.
도 4는 예를 들어 BPU(115)(도 1)와 같은 뇌 처리 유닛을 구성하기 위한 프로세스(400)의 흐름도이다. 프로세스(400)는 데이터 처리 활동을 수행하는 하나 이상의 데이터 처리 디바이스에 의해 수행될 수 있다. 프로세스(400)의 활동은 기계 판독 가능 명령어들의 집합, 하드웨어 어셈블리, 또는 이들 및/또는 다른 명령어의 조합의 논리에 따라 수행될 수 있다.
405에서, 프로세스(400)를 수행하는 상기 디바이스는 뇌 처리 유닛의 노드를 구성한다. 410에서, 프로세스(400)를 수행하는 상기 디바이스는 뇌 처리 유닛의 노드들 사이의 연결을 구성한다. 옵션으로, 415에서, 프로세스(400)를 수행하는 상기 디바이스는 주어진 애플리케이션에서 수행될 계산에 맞추어 상기 뇌 처리 유닛을 조정한다.
보다 상세하게는, 신경시냅스 컴퓨터의 구현에서, 상기 뇌 처리 유닛은 뇌 조직, 즉 모든 동물 종의 뇌의 일부 또는 전체의 해부학적 및 생리학적 구조에 따라 모델링된 스파이크 순환 신경 네트워크이다. 두뇌 처리 유닛이 두뇌 구조를 모방하는 정도는 수행되어야 하는 계산의 복잡성에 따라 선택될 수 있다. 일반적인 원칙으로서, 네트워크 노드의 구조적 및 기능적 특성에 대한 모든 변경은 뇌 처리 유닛의 단일 계산(클래스, 서브-클래스 및 변형)의 수와 다양성에 영향을 미친다. 연결의 구조적 및 기능적 속성에 대한 모든 변경은 계산의 얽힘 상태(클래스, 서브-클래스 및 변형)의 수와 다양성에 영향을 미친다. 구조적 속성에 대한 모든 변경은 뇌 처리 유닛에 대해 가능한 단일 계산 및 얽힘 상태의 수와 다양성을 결정하는 반면, 기능적 속성에 대한 변경은 입력 시뮬레이션 동안에 실현되는 단일 계산 및 얽힘의 수와 다양성에 영향을 미친다. 그러나, 노드 또는 연결의 기능적 속성에 대한 변경은 단일 계산의 수와 다양성 및 얽힘 상태를 변경할 수도 있다.
또한, 뇌 처리 유닛은 주어진 애플리케이션에서 수행될 계산에 맞추어 옵션으로 조정되거나 "업그레이드"될 수 있다. 예를 들어 모방된 표적 뇌 조직의 (재)선택, 표적 뇌 조직의 상태의 (재)선택 및 뇌 처리 디바이스의 반응 특성의 (재)선택을 포함하여 이를 수행하는 여러 가지 방식들이 존재한다. 그 예들은 아래에서 더 자세히 설명된다.
도 5는 예를 들어 BPU(115)(도 1)와 같은 뇌 처리 유닛의 노드들을 구성하기 위한 프로세스(500)의 흐름도이다. 프로세스(500)는 기계 판독 가능 명령어 집합, 하드웨어 어셈블리, 또는 이들 및/또는 다른 명령어의 조합의 논리에 임의적으로 따르는 하나 이상의 데이터 처리 디바이스들에 의해 수행될 수 있다. 프로세스(500)는, 예를 들어, 프로세스(400)(도 4)의 405에서 수행될 수 있다.
505에서, 프로세스(500)를 수행하는 디바이스는 노드의 수를 세팅한다. 뇌 처리 유닛에서 사용될 노드의 총 수는 일부 구현에서 표적 뇌 조직의 뉴런의 총 수를 모방할 수 있다. 또한, 노드의 수는 뇌 처리 유닛이 시간 상 어느 순간에 수행할 수 있는 단일 계산의 클래스 및 서브-클래스 수의 상한을 결정할 수 있다.
510에서, 프로세스(500)를 수행하는 디바이스는 노드의 구조적 속성을 설정한다. 상기 노드의 구조적 속성은 그 노드가 입력을 결합할 때 노드 계산의 시간적 및 공간적 통합을 시간의 함수로서 결정한다. 이것은 그 노드에 의해 수행되는 단일 계산의 클래스를 결정한다. 노드의 구조적 속성은 그 노드의 컴포넌트와 그 컴포넌트의 상호 작용의 특성을 또한 포함한다. 상기 구조적 특성은 일부 구현에서 표적 뇌 조직의 뉴런의 형태학적 클래스들의 효과를 모방할 수 있다. 예를 들어, 분기형 형태는 상기 네트워크 내 다른 노드로부터 입력을 수신할 때에 그리고 상기 분기형 형태 내 수용 시냅스의 위치에 따라 상기 노드 내 신호의 진폭과 형상을 세팅함으로써 다른 노드로부터 수신된 정보에 적용되는 전달 함수의 결정자(determinant)이다.
515에서, 프로세스(500)를 수행하는 디바이스는 노드의 기능적 속성을 설정한다. 상기 노드의 기능적 속성은 활성화, 통합 및 응답 기능을 시간의 함수로 결정하며, 그래서 노드에서 가능한 단일 계산을 결정한다. 뇌 처리 유닛의 구성에 사용되는 노드의 기능적 특성은 일부 구현에서 표적 뇌 조직의 상이한 클래스들의 뉴런의 생리학적 거동 (즉, 이들의 하위 임계값 및 임계값 초과 스파이크 거동)의 유형을 모방할 수 있다.
520에서, 프로세스(500)를 수행하는 디바이스는 노드의 클래스 및 서브클래스의 수를 설정한다. 상기 구조적 기능적인 다양성은 단일 계산의 클래스와 서브-클래스의 수를 결정한다. 뇌 처리 유닛의 구성에 사용된 특성의 구조적-기능적 유형의 조합의 수는 일부 구현에서 표적 뇌 조직의 뉴런의 형태학적-생리학적 조합의 수를 모방할 수 있다.
525에서, 프로세스(500)를 수행하는 디바이스는 노드의 각 유형(클래스 및 서브클래스) 내 노드의 사본의 수를 세팅한다. 주어진 유형의 노드 수는 동일한 클래스의 사본 수와 동일한 유형의 단일 계산을 수행하는 노드 수를 결정한다. 뇌 처리 유닛에서 동일한 구조적 및 기능적 특성을 갖는 노드의 수는 일부 구현에서 표적 뇌 조직 내 각 형태적-생리학적 유형을 형성하는 뉴런의 수를 모방할 수 있다.
530에서, 프로세스(500)를 수행하는 디바이스는 각 노드의 구조적 및 기능적 다양성을 세팅한다. 노드의 구조적 및 기능적 다양성은 노드의 각 클래스 및 서브-클래스 내에서 단일 계산의 변형들의 유사 연속체를 결정한다. 주어진 유형의 각 노드가 동일한 사본들로부터 분기하는 정도는 일부 구현에서 표적 뇌 조직 내 주어진 유형의 뉴런 내 뉴런들의 형태학적-생리학적 다양성을 모방할 수 있다.
535에서, 프로세스(500)를 수행하는 디바이스는 노드의 방향를 세팅한다. 각 노드의 방향은 노드 컴포넌트의 공간적 배열을 포함할 수 있으며, 노드 방향은 뇌 처리 유닛의 얽힌 상태의 잠재적 클래스를 결정한다. 뇌 처리 유닛의 구성에서 사용되는 각 노드의 방향은 일부 구현에서 표적 뇌 조직에서 뉴런의 형태학적 유형의 분기 구조의 방향을 모방할 수 있다. 상기 형태학적 방향은 어느 뉴런이 한 뉴런으로부터 다른 뉴런으로 정보를 보내고 받을 수 있는가에 대한 결정 요인이며 그래서 네트워크 내 연결성을 결정한다.
540에서, 프로세스(500)를 수행하는 디바이스는 노드의 공간적 배열을 세팅한다. 상기 공간적 배열은 어떤 뉴런이 한 뉴런에서 다른 뉴런으로 정보를 보내고 받을 수 있는지를 결정하므로 네트워크 내 연결성을 결정하고 그래서 뇌 처리 유닛의 얽힌 상태의 다양성을 결정한다. 상기 노드의 공간적 배열은 상이한 유형의 노드의 레이어링 및/또는 클러스터링을 포함할 수 있다. 뇌 처리 유닛을 구성하기 위해 사용되는 각 유형의 노드의 공간적 배열은 일부 구현에서 표적 뇌 조직의 뉴런의 각 형태적-생리적 유형의 공간적 배열을 모방할 수 있다.
상기 공간적 배열은 또한 뇌 처리 유닛의 하위 영역이 다른 하위 영역으로부터의 판독값을 이용하여 주소 지정될 수 있도록 하여, 상이한 영역들 간에 입력-출력 주소 지정 시스템을 정의한다. 상기 주소 지정 시스템은 예를 들어 데이터를 한 하위 영역에 입력하고 다른 하위 영역에서 샘플링하기 위해 사용될 수 있다. 예를 들어, 문맥(contextual) (기억) 데이터와 같은 다수 유형의 이데이터가 하나의 하위 영역에 입력될 수 있고, 직접 입력(지각(perception))이 다른 하위 영역으로 주소 지정될 수 있으며, 그리고 뇌 처리 유닛이 더 주의를 기울여야 하는 입력(주의(attention))이 상이한 하위 지역으로 주소 지정될 수 있다. 이것은, 각각이 상이한 인지 프로세스에 맞게 조정되는 뇌 처리 하위 유닛들이 네트워크 연결되는 것을 가능하게 한다. 일부 구현에서, 이것은 뇌의 신경 회로와 뇌 영역이 함께 연결되는 방식을 모방할 수 있다.
도 6은 예를 들어 BPU(115)(도 1)와 같은 뇌 처리 유닛의 노드들의 연결을 구성하기 위한 프로세스(600)의 흐름도이다. 프로세스(600)는 기계 판독 가능 명령어 집합, 하드웨어 어셈블리, 또는 이들 및/또는 다른 명령어의 조합의 논리에 임의적으로 따르는 하나 이상의 데이터 처리 디바이스들에 의해 수행될 수 있다. 프로세스(600)는, 예를 들어, 프로세스(400)(도 4) 내 410에서 수행될 수 있다.
605에서, 프로세스(600)를 수행하는 디바이스는 연결의 수를 세팅한다. 연결의 수는 뇌 처리 유닛의 얽힌 상태의 가능한 클래스 의 수를 결정한다. 노드들 사이의 총 연결 수는 일부 구현에서 표적 뇌 조직의 시냅스의 총 개수를 모방할 수 있다.
610에서, 프로세스(600)를 수행하는 디바이스는 하위 연결의 수를 세팅한다. 연결을 형성하는 하위 연결의 수는 얽힌 상태의 각 클래스 내에서의 변동을 결정한다. 상이한 유형의 노드들 사이에 단일 연결을 형성하는 병렬 하위 연결의 수는 일부 구현에서 상이한 유형의 뉴런들 간에 단일 연결을 형성하는 데 사용되는 시냅스의 수를 모방할 수 있다.
615에서, 프로세스(600)를 수행하는 디바이스는 모든 노드 사이의 연결을 세팅한다. 노드들 간의 연결은 노드들의 그래프의 구조적 토폴로지를 결정한다. 상기 구조적 토폴로지는 뇌 처리 유닛이 생성할 수 있는 얽힌 상태의 수와 다양성을 설정한다. 상이한 노드 유형들 사이 및 개별 노드들 사이의 연결성은 일부 구현에서 표적 뇌 조직의 뉴런 유형과 개별 뉴런 간의 특정 시냅스 연결성 또는 상기 연결성의 적어도 핵심 특성을 모방할 수 있다.
620에서, 프로세스(600)를 수행하는 디바이스는 정보 전달 방향을 설정한다. 연결의 방향성은 정보 흐름의 방향을 결정하고 따라서 입력을 처리하는 동안 기능적 토폴로지를 결정한다. 상기 기능적 토폴로지는 신경 토폴로지 구조의 수와 다양성을 결정하므로, 활성 토폴로지 요소의 수와 다양성을 결정하고, 결과적으로는 단일 계산의 수와 다양성 그리고 그것들의 얽힌 상태의 수와 다양성을 결정한다. 연결들에서 정보 흐름의 방향성은 일부 구현에서 표적 뇌 조직의 시냅스 연결에 의한 시냅스 전달의 방향성을 모방할 수 있다.
625에서, 프로세스(600)를 수행하는 디바이스는 연결 가중치를 세팅한다. (두 유형의 노드들 사이에서) 시냅스 연결의 각 유형에 대한 가중치 설정은 단일 계산을 위한 입력 변수와 입력 동안에 활성화된 신경 위상학적 구조의 수 및 다양성을 결정하며, 결과적으로 입력 동안에 활성인 단일 계산의 수 및 다양성 그리고 그것들의 얽힌 상태들의 수 및 다양성을 결정한다. 노드들 사이의 상이한 유형의 연결에 의해 매개되는 노드들 내 스파이크에 대한 응답의 진폭을 결정하기 위해 사용되는 가중치 설정의 분포는 몇몇 구현에서 표적 뇌 조직에서 상이한 유형의 뉴런들 사이의 시냅스 연결의 가중치 분포를 모방할 수 있다.
일부 구현에서, 프로세스(600)를 수행하는 디바이스는 뇌 처리 유닛들 내 개별 연결에서 가중치를 변경하기 위한 메커니즘을 추가한다. 연결에서 가중치를 변경하는 것은 뇌 처리 유닛이 생성된 단일 계산 클래스와 특정 얽힌 상태를 학습하는 것을 가능하게 하며, 그래서 주어진 입력에 대한 목표 출력 기능을 학습할 수 있도록 한다. 개별 연결에서 가중치를 변경하기 위해 상기 추가된 메커니즘은 일부 구현에서 표적 뇌 조직의 시냅스 가소성 (plasticity)의 메커니즘을 모방할 수 있다.
일부 구현들에서, 프로세스(600)를 수행하는 디바이스는 구성되는 뇌 처리 유닛에 대한 상이한 유형들의 연결들의 가중치들의 전체 분포를 일시적으로 이동시키거나 변경하기 위한 메커니즘을 추가한다. 가중치 분포에서의 일시적인 변화는 단일 계산 클래스와 얽힘 상태 클래스를 일시적으로 변경한다. 상이한 유형의 연결의 가중치의 전체 분포를 일시적으로 이동하거나 변경하기 위한 메커니즘은 몇몇 구현에서 표적 뇌 조직의 신경화학물질에 의한 상이한 유형의 시냅스 연결의 신경조절 메커니즘을 모방할 수 있다.
630에서, 프로세스(600)를 수행하는 디바이스는 노드 응답 파형을 세팅한다. 송신 노드에서 단일 스파이크에 의해 유도된 응답의 특정 파형은 몇몇 구현에서 표적 뇌 조직 내 주어진 막 저항 및 커패시턴스를 갖는 대응하는 유형의 뉴런에서 생성된 시냅스 응답의 위치 의존적 형태를 모방할 수 있다.
일부 구현에서, 프로세스(600)를 수행하는 디바이스는 개별 연결에 의해 발생된 응답 파형을 변경하기 위한 메커니즘을 추가하여, 구성된 뇌 처리 유닛에 추가할 수 있다. 개별 연결에 의해 초래된 응답 파형을 변경하기 위한 메커니즘은 몇몇 구현에서 표적 뇌 조직의 노드의 기능적 특성(노드 내 막 저항 및/또는 정전용량 및/또는 활성 메커니즘)을 변경하는 메커니즘을 모방할 수 있다.
일부 구현에서, 프로세스(600)를 수행하는 디바이스는 구성된 뇌 처리 유닛에 대한 시냅스 응답의 파형 분포를 일시적으로 변경하기 위한 메커니즘을 추가한다. 시냅스 응답의 파형 분포를 일시적으로 변경하기 위한 메커니즘은 몇몇 구현에서 표적 뇌 조직의 신경화학물질에 의한 다양한 유형의 뉴런의 신경조절 메커니즘을 모방할 수 있다.
635에서, 프로세스(600)를 수행하는 디바이스는 전달 역학(transmission dynamics)을 세팅한다. 송신 노드로부터의 일련의 스파이크들 동안에 개별 연결의 동적으로 변하는 응답 진폭은 몇몇 구현에서 표적 뇌 조직의 시냅스 연결의 동적으로 변하는 시냅스 진폭을 모방할 수 있다.
일부 구현들에서, 프로세스(600)를 수행하는 디바이스는 상이한 유형들의 전달 역학을 세팅한다. 스파이크 시퀀스 동안에 연결에서의 역학 유형은 몇몇 구현에서 표적 뇌 조직의 상이한 유형의 뉴런들 사이의 시냅스 연결에서의 동적 시냅스 전달 유형을 모방할 수 있다.
일부 구현들에서, 프로세스(600)를 수행하는 디바이스는 전달 역학의 유형들을 결정하는 기능의 파라미터들을 변경하기 위한 메커니즘을 추가한다. 전달 역학의 유형을 결정하는 기능의 파라미터를 변경하기 위한 메커니즘은 몇몇 구현에서 표적 뇌 조직의 시냅스의 시냅스 가소성의 메커니즘을 모방할 수 있다.
일부 구현들에서, 프로세스(600)를 수행하는 디바이스는 전달 역학의 각각의 유형의 각각의 파라미터의 분포를 일시적으로 변경하기 위한 메커니즘을 추가한다. 전달 역학의 각 유형의 각 파라미터의 분포를 일시적으로 변경하기 위한 메커니즘은 일부 구현에서 표적 뇌 조직의 신경화학물질에 의한 상이한 유형의 시냅스 연결의 신경조절 메커니즘을 모방할 수 있다.
640에서, 프로세스(600)를 수행하는 디바이스는 전달 확률을 세팅한다. 전달 확률은 연결에서 정보 흐름의 확률을 구체화할 수 있으며, 예를 들어 뇌 처리 유닛에서 확률적 및 베이지안 (Bayesian) 계산을 허용하는 것과 같은 단일 계산의 클래스를 결정할 수 있다. 송신 노드에서 스파이크가 주어지면 임의의 단일 연결을 형성하는 하위 연결에 의해 응답이 생성될 확률은 몇몇 구현에서 표적 뇌 조직의 송신 뉴런으로부터의 스파이크에 응답하여 시냅스에 의해 해제된 신경전달물질의 확률을 모방할 수 있다.
일부 구현에서, 프로세스(600)를 수행하는 디바이스는 단일 개별 연결에서 전달 확률을 변경하기 위한 메커니즘을 추가한다. 단일 연결에서 전달 확률을 변경하는 메커니즘은 표적 뇌 조직의 시냅스 연결의 시냅스 가소성 메커니즘을 모방한다.
몇몇 구현에서, 프로세스(600)를 수행하는 디바이스는 상이한 유형의 연결의 확률 분포를 변경하기 위한 메커니즘을 추가한다. 상이한 유형의 연결의 확률 분포를 변경하기 위한 메커니즘은 일부 구현에서 표적 뇌 조직의 신경화학물질에 의한 상이한 유형의 시냅스 연결의 신경조절 메커니즘을 모방할 수 있다.
645에서, 프로세스(600)를 수행하는 디바이스는 연결에 대한 자발적 전달 통계를 세팅한다. 자발적 전달은 연결을 통한 정보의 자발적(즉, 스파이크 유도되지 않음) 흐름이다. 자발적 전달은 뇌 처리 유닛 내 연결 고유의 랜덤 프로세스로서 구현될 수 있으며 계산에 노이즈를 추가한다. 자발적 전달은 뇌 처리 유닛이 수행하는 작업의 중요성을 확인하기 위해 극복해야 하는 정보 처리에 장애물이 될 수 있으며, 그래서 뇌 처리 유닛이 입력에서의 노이즈에 강한 불변 정보 처리를 수행하는 것을 가능하게 한다. 연결에서 자발적인 비스파이크 유도된 정보 흐름에 대한 세팅은 몇몇 구현에서 표적 뇌 조직의 시냅스에서 신경전달물질 해제의 자발적 해제 통계를 모방할 수 있다.
일부 구현에서, 프로세스(600)를 수행하는 디바이스는 개별 연결에서 자발적 전달 통계를 변경하기 위한 메커니즘을 추가한다. 개별 연결에서 자발적인 전달 통계를 변경하는 메커니즘은 표적 뇌 조직의 시냅스 연결의 시냅스 가소성 메커니즘을 모방한다. 개별 연결에서 자발적 전달 통계를 변경하는 것은 뇌 처리 유닛의 연결이 그 연결에 의해 처리되는 정보의 신호 대 잡음을 개별적으로 조정하는 것을 가능하게 한다.
일부 구현들에서, 프로세스(600)를 수행하는 디바이스는 각각의 연결 유형에서 자발적 전달 통계의 분포를 변경하기 위한 메커니즘을 추가한다. 상이한 연결 유형에서 자발적 전달 분포의 일시적이고 차동적인 변화는 상기 뇌 처리 유닛이 그 뇌 처리 유닛의 각 연결 유형에 의해 정보 처리의 신호 대 잡음비를 동적으로 조정하는 것을 허용한다. 각 유형의 연결에서 자발적 전달 통계의 분포를 변경하는 메커니즘은 몇몇 구현에서 표적 뇌 조직의 신경화학물질에 의한 상이한 유형의 시냅스 연결의 신경조절 메커니즘을 모방할 수 있다.
도 7은 뇌 처리 유닛을 업그레이드하기 위한 프로세스(700)의 개략도이다. 위에서 논의된 바와 같이, 뇌 처리 유닛은 주어진 애플리케이션에서 수행될 계산에 맞춰 조정되거나 업그레이드될 수 있다.
프로세스(500)는 기계 판독 가능 명령어 집합, 하드웨어 어셈블리, 또는 이들 및/또는 다른 명령어의 조합의 논리에 임의적으로 따르는 하나 이상의 데이터 처리 디바이스들에 의해 수행될 수 있다. 일정 시간 뇌 처리 유닛의 작동 직후 또는 이후에 프로세스(700)는 예를 들어 프로세스(400)(도 4)와 함께 수행될 수 있다.
705에서, 프로세스(700)를 수행하는 디바이스는 주어진 애플리케이션의 계산 요구사항에 대한 설명을 수신한다. 애플리케이션의 계산 요구 사항은 예를 들어 수행될 계산의 복잡성, 계산이 수행될 속도, 및 특정 데이터에 대한 계산의 민감도를 포함하는 다양한 방식으로 특성화될 수 있다. 또한 어떤 경우에는 상기 계산 요구 사항은 시간이 지남에 따라 달라질 수 있다. 예를 들어, 진행 중인 프로세스에 상당히 안정적인 계산 요구 사항이 있더라도, 그런 계산 요구 사항은 특정 시간들에서 또는 특정 이벤트가 발생할 때 변경될 수 있다. 이러한 경우, 두뇌 처리 유닛은 수요를 충족하기 위해 일시적으로 업그레이드된 다음 수요가 감소한 후 돌아올 수 있다.
710에서, 프로세스(700)를 수행하는 디바이스는 뇌 처리 유닛의 현재 상태가 계산 요구사항을 충족하는지를 판별한다. 불일치는 계산의 하나 이상의 특성(예: 복잡성, 속도 또는 민감도)에 따라 어느 방향으로든 발생할 수 있다 (즉, 뇌 처리 유닛이 충분하지 않거나 과도한 계산 능력을 가질 수 있음).
계산 요구 사항이 충족되었다는 판별에 응답하여, 715에서 뇌 처리 유닛이 현재 조건에서 작동될 수 있다. 계산 요건이 충족되지 않는다는 판별에 응답하여, 프로세스(700)를 수행하는 디바이스는 수행될 계산에 맞추어 뇌 처리 유닛을 조정하거나 업그레이드할 수 있다.
예를 들어, 일부 구현에서, 프로세스(700)를 수행하는 디바이스는 720에서 모방된 표적 뇌 조직을 (재)선택함으로써 뇌 처리 유닛을 조정하거나 업그레이드할 수 있다. 예를 들어, 일부 구현에서, 다른 동물 또는 다른 발달 스테이지의 뇌 조직이 (재)선택될 수 있다. 뇌의 인지 컴퓨팅 능력은 그 뇌의 종류와 나이에 종속한다. 상이한 동물의 다양한 발달 스테이지에서 두뇌를 모방하고 신경 네트워크를 선택하여, 원하는 인지 컴퓨팅 기능을 달성할 수 있다.
다른 예로서, 일부 구현에서, 뇌의 다른 부분의 뇌 조직이 (재)선택될 수 있다. 뇌의 다른 부분의 인지 컴퓨팅 능력은 다른 인지 기능에 특화되어 있다. 원하는 인지 컴퓨팅 기능을 달성하기 위해 뇌의 다른 부분을 모방하는 신경 네트워크가 선택될 수 있다.
또 다른 예로서, 일부 구현에서, 뇌의 일부의 뇌 조직의 양이 (재)선택될 수 있다. 뇌 영역의 인지 컴퓨팅 능력은 얼마나 많은 하위 회로가 사용되고 그 하위 회로가 어떻게 상호 연결되는지에 달려 있다. 점차적으로 뇌의 더 큰 부분을 모방하는 신경 네트워크를 선택하여, 원하는 인지 컴퓨팅 기능이 달성될 수 있다.
다른 예로서, 일부 구현들에서, 프로세스(700)를 수행하는 디바이스는 725에서 뇌 처리 유닛의 상태를 (재)선택함으로써 뇌 처리 유닛을 조정하거나 업그레이드할 수 있다. 뇌 처리 유닛의 신경 네트워크 상태의 여러 측면들이 (재)선택될 수 있다. 예를 들어, 네트워크가 자발적으로 표시하는 새로운 속성이 (재)선택될 수 있다. 다른 예로, 네트워크가 입력에 대한 응답으로 표시하는 신생 속성을 (재)선택될 수 있다. 뇌 처리 유닛의 신경 네트워크 상태의 (재)선택은 그 뇌 처리 유닛의 작동에 다양한 영향을 미칠 수 있다. 예를 들어, 상기 네트워크는 입력에 응답하여 약하게 또는 매우 강하게 응답할 수 있다. 다른 예로, 상기 네트워크는 상태에 따라 특정 주파수의 진동으로 응답할 수 있다. 네트워크가 수행할 수 있는 계산 범위는 네트워크 상태에 따라 달라질 수도 있다.
예를 들어, 일부 구현에서, 프로세스(700)를 수행하는 디바이스는 시냅스 연결의 진폭 및 역학을 결정하는 파라미터를 변조함으로써 뇌 처리 유닛의 상태를 (재)선택할 수 있다. 네트워크의 특정 유형의 노드들 간의 시냅스 연결의 진폭과 역학을 결정하는 시냅스 파라미터는 아세틸콜린, 노르아드레날린, 도파민, 히스타민, 세로토닌 등과 같은 신경 조절제에 의해 뇌의 시냅스 변조를 모방하도록 차등적으로 변경될 수 있다. 이러한 제어 메커니즘들은 경고, 주의, 보상, 처벌 및 기타 뇌 상태와 같은 상태가 모방되는 것을 가능하게 한다. 각 상태는 뇌 처리 유닛이 특정 속성을 가진 계산을 생성하도록 한다. 각 속성 집합은 상이한 클래스의 인지 컴퓨팅을 허용한다.
다른 예로서, 일부 구현에서, 프로세스(700)를 수행하는 디바이스는 상이한 유형의 뉴런의 응답 활동을 차등적으로 변경함으로써 뇌 처리 유닛의 상태를 (재)선택할 수 있다. 이것은 네트워크의 상태를 변조하고 인지 컴퓨팅의 클래스를 제어할 수 있다.
또 다른 예로서, 일부 구현들에서, 프로세스(700)를 수행하는 디바이스는 730에서 뇌 처리 유닛의 응답을 조정함으로써 뇌 처리 유닛의 상태를 (재)선택할 수 있다. 뇌 처리 유닛의 노드와 시냅스는 정보를 처리할 때 자극에 반응한다. 일반적인 응답은 많은 작업에 충분할 수 있다. 그러나 특수 작업은 모든 노드와 시냅스가 활성화되는 특정 형태의 진동 또는 상이한 정도와 같은 특별한 응답을 필요로 할 수 있다.
뇌 처리 유닛의 응답 속성은 예를 들어:
- 최적화 기능이 입력 동안에 모든 뉴런의 총 반응이 되도록 모집단 수준에서,
- 최적화 기능이 인지 인코더(예를 들어, 인지 인코더(120)(도 1))가 신경 코드를 구성하기 위해 필요한 특정 계산 클래스를 최대화하려고 하는 위상 수준에서,
- 최적화 기능이 동작 발생기(예를 들어, 동작 발생기(125)(도 1))로부터의 피드백 신호를 사용하여 인지 인코더에 의해 생성되는 인지 알고리즘의 성능이 되도록 하는 특정 작업에,
- 최적화 기능이 임의의 이전 입력들(예: 이전 데이터 파일 또는 시계열의 이전 시점)에 관해 시스템이 메모리에 보유하는 정보의 양을 최대화하도록 메모리 내 정보 저장에, 그리고/또는
- 최적화 기능이 올바르게 예측된 후속 입력(예: 입력의 시계열 또는 후속 데이터 파일 내 후속 입력)에 대한 응답을 최대화하는 것과 같은 예측에 최적화될 수 있다.
뇌 처리 유닛를 수행할 계산에 맞게 조정하거나 업그레이드한 후, 프로세스(700)를 수행하는 디바이스는 710으로 돌아가 뇌 처리 유닛의 현재 상태가 계산 요구 사항을 충족하는지 핀"u할 수 있다. 계산 요구 사항이 충족되었다는 판별에 응답하여, 715에서 뇌 처리 유닛이 현재 조건에서 작동될 수 있다. 계산 요건이 충족되지 않는다는 판별에 응답하여, 프로세스(700)를 수행하는 디바이스는 뇌 처리 유닛을 추가로 조정하거나 업그레이드할 수 있다.
도 8은 예를 들어, 인지 인코더(120)(도 1)와 같은 인지 인코더를 구성하기 위한 프로세스(800)의 흐름도이다. 프로세스(800)는 데이터 처리 활동을 수행하는 하나 이상의 데이터 처리 디바이스에 의해 수행될 수 있다. 프로세스(800)의 활동은 기계 판독 가능 명령어들의 집합, 하드웨어 어셈블리, 또는 이들 및/또는 다른 명령어의 조합의 논리에 따라 수행될 수 있다.
위에서 설명된 바와 같이, 신경시냅스 컴퓨터 시스템은 임의의 복잡한 인지 알고리즘을 구성하기 위해 상이한 계층적 수준에서 결정들을 조직화한다. 인지 인코더는 신경 코드에서 상이한 레벨들에서 이러한 결정들을 식별하고 인코딩할 수 있다.
보다 상세하게는, 뇌 처리 유닛은 각각의 계산의 파라미터들 중 임의의 하나 또는 모든 파라미터를 통해 각각이 얽히게 되는 임의적인 복잡한 계산의 다양성에 입력을 종속시킨다. 이것은 다차원 상호의존성이 있는 계산 범위의 결과를 가져온다. 인지 인코더는 토폴로지 요소에 의해 수행되는 계산의 원하는 속성을 설정하여 인지 프로세스를 구성하고 얽힌 계산의 부분 집합을 찾아 목표 인지 알고리즘을 나타내는 계층적 신경 코드를 형성한다. 계산의 다차원적인 범위는 기본, 단일 및 고차 계산을 수행하는 토폴로지 요소에 의해 - 그리고 이러한 계산을 평가하기 위한 기준을 세팅함으로써 - 정의된다. 계산의 영역에서 인지 기능을 수행하는 얽힌 계산의 부분 집합을 찾는 것은 뇌 처리 유닛의 순환 네트워크에 의해 수행되는 얽힘 프로세스를 모방하여 달성된다. 얽힌 계산의 부분 집합은 데이터 저장, 전달 및 계산에 사용될 수 있는 계층적 신경 코드로 형식이 지정된다. 프로세스(800)는 이러한 인지 인코더를 구성하기 위한 프로세스이다.
805에서, 프로세스(800)를 수행하는 디바이스는 인지 인코더의 토폴로지 요소를 정의한다. 본 명세서에 사용된 바와 같이, 토폴로지 요소는 계산을 수행하는 뇌 처리 유닛의 선택된 개별 컴포넌트이다. 이러한 계산은 요소들 간의 위상 관계에 의해 수학적으로 정밀하게 표현될 수 있다. 다소 환원적인 사례들에서, 토폴로지 요소는 단일 요소, 예를 들어 단일 분자 또는 세포이다. 상기 단일 분자 또는 세포는 수학적으로 표현될 수 있는 계산을 수행할 수 있다. 예를 들어, 분자는 특정 위치에서 해제될 수 있으며 또는 세포는 탈분극될 수 있다. 해제 또는 탈분극은 계산 완료를 나타낼 수 있으며 결정의 상태를 인코딩하기 위해 사용될 수 있다.
그러나, 일반적으로, 토폴로지 요소는 컴포넌트들의 그룹들이며, 예를 들어 분자 네트워크, 셀의 선택된 하위 그룹, 셀 네트워크 및 이러한 그룹들의 그룹이다. 예를 들어, 서로에 대해 정의된 토폴로지 관계가 있는 셀들의 다중 네트워크들은 토폴로지 요소를 형성할 수 있다. 다시 한번 그러한 그룹에 의해 수행된 계산은 요소들 간의 위상 관계에 의해 수학적으로 표현될 수 있다. 예를 들어, 분자 네트워크의 패턴이 해제될 수 있으며 도는 세포 네트워크가 토폴로지 패턴에 부합하는 패턴에서 탈분극될 수 있다. 해제 또는 탈분극은 계산 완료를 나타낼 수 있으며 결정의 상태를 인코딩하기 위해 사용될 수 있다.
도 9는 신경 네트워크 내 노드 및 노드들의 조합으로부터 구성된 신경위상학적 요소들의 개략도이다. 특히, 가장 단순한 경우에, 단일 노드(905)는 신경 위상학적 요소(930)로서 정의된다. 노드(905)의 출력(예를 들어, 탈분극 이벤트) - 그래서 신경 위상학 요소(930)의 출력 - 은 단일의 결정이다.
다른 경우에, 다중 노드들의 그룹들(910, 915, 920, 925)은 각자의 신경 위상학적 요소들(935, 940, 945.950)로서 정의된다. 각 그룹(910, 915, 920, 925) 내 노드들은 토폴로지 패턴에 부합하는 활동(예를 들어, 탈분극 이벤트)을 보여줄 수 있다. 이러한 활동의 발생은 단일 결정이며 계산 결과를 나타낸다.
일부 경우에, 계산 결과(즉, 신경 위상학적 요소들(930, 935, 940, 945, 950)의 출력)는, 결정에 도달했거나 도달하지 않았음을 나타내는 이진 값이다. 다른 경우에, 상기 출력은 결정이 불완전함을 나타내는 중간 값을 가질 수 있다. 예를 들어, 부분적인 값은 토폴로지 패턴과 부합하는 활동의 일부가 발생했지만 다른 부분은 발생하지 않았음을 나타낼 수 있다. 활동의 일부만이 발생하는 것은 신경 위상학적 요소에 의해 표현된 계산이 불완전하다는 것을 나타낼 수 있다.
도 10은 신경 네트워크의 상이한 컴포넌트들의 조합으로부터 구성된 신경위상학적 요소들의 개략도이다. 개략도에서, 컴포넌트(1005)는 신경 네트워크의 하나 이상의 분자들의 개략적 표현이다. 컴포넌트(1010)는 신경 네트워크의 하나 이상의 시냅스의 개략도이다. 컴포넌트(1015)는 신경 네트워크의 하나 이상의 노드의 개략도이다. 컴포넌트(1020)는 신경 네트워크의 하나 이상의 노드 회로의 개략도이다.
신경 위상학 요소(1025)는 분자 컴포넌트(들)(1005)만을 포함하도록 정의되었다. 대조적으로, 신경 위상학 요소(1030)는 분자 컴포넌트(들)(1005) 및 시냅스 컴포넌트(들)(1010) 모두를 포함하도록 정의되었다. 신경 위상학적 요소(1035)는 시냅스 컴포넌트(들)(1010), 노드 컴포넌트(들)(1015), 및 노드 회로 컴포넌트(들)(1020)를 포함하도록 정의되었다. 신경 위상학적 요소(1040)는 분자 컴포넌트(들)(1005), 시냅스 컴포넌트(들)(1010), 노드 컴포넌트(들)(1015), 및 노드 회로 컴포넌트(들)(1020)를 포함하도록 정의되었다.
그것들이 어떻게 정의되는지에 관계없이, 각각의 신경 위상학 요소(1025, 1030, 1035, 1040)는 상기 신경 위상학 요소의 컴포넌트 요소들에 의해 만들어진 계층적으로 포함된 결정들에 의해 정해진 단일 결정을 출력한다. 컴포넌트의 계층적으로 포함된 결정은 예를 들어 위치로의 해제, 시냅스에서의 억제 또는 여기, 뉴런에서의 활성, 또는 회로에서의 활성 패턴에 의해 입증될 수 있다. 이러한 결정을 입증하는 활동은 토폴로지 패턴에 부합할 수 있다. 이러한 활동의 발생은 단일 결정이며 계산 결과를 나타낸다. 신경위상학적 요소 내 컴포넌트들의 복잡성이 증가함에 따라, 신경위상학적 요소의 복잡성이 증가하고 상기 결정이 우연히 또는 부주의하게(예: 자발적인 전달로 인해) 도달되었을 가능성은 감소한다. 예를 들어, 노드 회로 컴포넌트(1020)를 포함하는 신경위상학적 요소는 단일 노드 컴포넌트(1020)를 포함하는 신경위상학적 요소보다 부주의할 가능성이 적은 더 복잡한 결정 및 계산을 나타낸다.
이전과 마찬가지로, 어떤 경우, 계산 결과는, 결정에 도달했거나 도달하지 않았음을 나타내는 이진 값이다. 다른 경우에, 상기 출력은 결정이 불완전함을 나타내는 중간 값을 가질 수 있다.
프로세스(800)(도 8)의 805로 돌아가서, 토폴로지 요소를 정의할 때, 프로세스(800)를 수행하는 디바이스는 그 토폴로지 요소에 대한 뇌 처리 유닛의 컴포넌트들을 선택할 수 있다. 신경시냅스 컴퓨터 구현의 예로서, 뇌 처리 유닛은 그 뇌 처리 유닛에서와 같이 뉴런 및 시냅스 연결과 동일한 수의 노드 및 에지를 갖는 그래프와 연관된다. 그 그래프의 에지는 두 노드들 사이에 시냅스 연결이 존재하는 경우 구조적 에지라고 불린다. 에지의 방향은 한 노드로부터 다음 노드로의 시냅스 전달 방향에 의해 주어진다. 주어진 기준에 따라 송신 노드가 수신 노드에 정보를 전달하는 경우 에지를 활성 에지라고 한다. 아래에서 더 자세히 설명하는 바와 같이, 상기 기준은 주어진 애플리케이션에 대한 활성 에지의 중간 범위를 식별하도록 맞춤화될 수 있다. 임의의 순간에 네트워크 내 활성 에지의 부분 집합은 기능적 그래프의 시계열을 형성하기 위해 함께 고려된다. 개별 에지 또는 둘 이상의 에지의 조합은 단일 토폴로지 요소를 구성할 수 있다. 토폴로지 요소의 토폴로지 구조는 에지들의 그래프 관계로 설명된다. 토폴로지 요소는 활성 에지를 식별하기 위한 기준에 따라 그 요소의 구성 에지가 활성일 때 활성이라고 불린다. 아래에서 더 자세히 설명하는 바와 같이, 토폴로지 요소의 토폴로지 구조는 주어진 애플리케이션에 대한 계산의 복잡성에 맞춰질 수 있다.
810에서, 프로세스(800)를 수행하는 디바이스는 이러한 토폴로지 유닛을 계산과 연관시킨다. 위에서 설명한 것처럼, 기본 계산의 유형과 해상도는 활성 에지와 토폴로지 구조가 정의되는 방식에 종속한다. 이러한 위상 구조들에 의해 정의된 위상 유닛들은 기호적 표현, 예를 들어 일련의 0, 1 및 중간 값에서 위상 구조의 활동을 특성화함으로써 상이한 계산과 연관될 수 있다.
도 11은 (예를 들어, 도 8의 805에서) 토폴로지 요소를 정의하고 (예를 들어, 도 8의 810에서) 토폴로지 유닛을 계산과 연관시키기 위한 프로세스(1100)의 흐름도이다. 프로세스(1100)는 데이터 처리 활동을 수행하는 하나 이상의 데이터 처리 디바이스에 의해 수행될 수 있다. 프로세스(1100)의 활동은 기계 판독 가능 명령어들의 집합, 하드웨어 어셈블리, 또는 이들 및/또는 다른 명령어의 조합의 논리에 따라 수행될 수 있다.
1105에서, 프로세스(1100)를 수행하는 디바이스는 활성 에지를 식별하기 위한 기준을 설정한다. 활성 에지는 임의적으로 복잡한 기본 계산의 완료와 그 결과를 특정 대상 노드에 전달하는 것을 반영한다.
활성 에지는 네트워크 내 다른 노드들로부터의 다중 입력에 대한 응답으로 전달 노드에 의해 생성되며 - 그리고 다른 노드들로부터의 이 입력은 차례로 또 다른 노드들 (등)으로부터의 입력에 대한 응답이기 때문에, 모든 활성 에지에 의해 수행되는 모든 기본 계산은 원칙적으로 전체 네트워크를 통한 활동의 기능이다.
위에서 논의한 바와 같이, 송신 노드로부터 수신 노드로의 정보 전달이 하나 이상의 기준을 충족하는 경우 에지가 활성이라고 불린다. 활성 에지의 중간 수가 식별되도록 상기 기준은 조정될 수 있다. 더 자세하게는, 활성 에지를 식별하는 기준이 너무 엄격하면 활성으로 식별되는 에지가 없을 것이다. 반대로, 활성 에지를 식별하는 기준이 너무 느슨하면 너무 많은 에지들이 활성으로 식별될 것이다. 그래서 상기 기준은 뇌 처리 유닛의 다른 파라미터 및 수행될 작업에 맞춰질 수 있다. 실제로, 일부 구현에서, 기준 설정은 대화식 프로세스이다. 예를 들어, 상기 기준은, 너무 적거나 너무 많은 에지들이 활성으로 식별되었음을 나타내는 피드백에 응답하여 시간이 지남에 따라 조정될 수 있다.
1110에서, 프로세스(1100)를 수행하는 디바이스는 토폴로지 요소를 위한 토폴로지 구조를 설정한다. 단일 토폴로지 요소를 형성하는 모든 에지가 활성화될 때에, 그 토폴로지 요소에 의해 수행되는 단일 계산이 완료된다. 그러나, 토폴로지 요소를 구성하는 에지의 일부만 활성화되면, 단일 계산은 부분적으로 완료된다. 토폴로지 요소의 에지들 중 어느 것도 활성화되지 않는다면, 단일 계산이 시작되지 않은 것이다. 그러므로 입력에 응답하여 활성화될 수 있는 설정된 토폴로지 요소의 에지들의 특정 조합은 완료, 부분 완료 및 시작되지 않은 단일 계산의 범위를 정의한다. 그래서 단일 계산은 에지에 의해 수행되는 기본 계산의 기능이며, 위에서 논의된 바와 같이 단위 계산의 해상도는 에지를 활성으로 정의하기 위한 기준을 조정함으로써 제어된다.
다양한 토폴로지 구조들이 정의될 수 있다. 단일 계산의 유형은 토폴로지 요소를 구성하는 토폴로지 구조(들)를 선택함으로써 제어될 수 있다. 예를 들어, 단일 활성 에지로 정의된 토폴로지 요소는 최소한의 복잡한 단일 계산을 생성한다. 대조적으로, 토폴로지 요소를 다중 활성 에지가 있는 노드 네트워크로 구성된 토폴로지 구조로 정의하면 더 복잡한 단일 계산이 생성된다. 토폴로지 요소를 다중 노드 네트워크로 구성된 토폴로지 구조로 정의하면 훨씬 더 복잡한 단일 계산이 생성된다.
또한, 정의된 토폴로지 구조의 다양성은 뇌 처리 유닛으로부터 판독될 수 있는 단일 계산의 다양성을 제어한다. 예를 들어, 모든 토폴로지 요소가 단일 에지로 정의되면, 가능한 단일 계산은 균일하게 최소의 복잡성인 경향이 있다. 반면, 위상 요소가 상이한 위상 구조의 혼합으로 정의되면, 단위 계산의 범위은 더욱 다양해지고 이질적인 유형의 단위 계산을 포함한다.
1115에서, 프로세스(1100)를 수행하는 디바이스는 뇌 처리 유닛의 에지들로부터 신호를 수신한다. 1120에서, 프로세스(1100)를 수행하는 디바이스는 상기 에지들 중 어느 것도 활성이 아닌 또는 일부 또는 전부가 활성인 토폴로지 요소들을 식별한다. 1125에서, 디바이스 수행 프로세스(1100)는 토폴로지 요소의 계산을 완료됨, 부분적으로 완료됨 또는 시작되지 않음으로 지정한다. 1130에서, 프로세스(1100)를 수행하는 디바이스는 단일 계산의 완료 상태에 대한 기호적 설명을 출력한다.
일부 구현들에서, 프로세스(1100)를 수행하는 디바이스는 토폴로지 요소들의 목록 및 그 요소들 각자의 단일 계산의 완료 상태에 대한 연관된 설명들을 출력할 수 있다. 예를 들어, 완성된 단일 계산은 "1"에 매핑될 수 있고, 부분적으로 완료된 단일 계산은 토폴로지 요소를 형성하는 활성 에지의 비율에 따라 "1"과 "0" 사이의 값에 매핑될 수 있으며, 그리고 수행되지 않은 단일 계산은 "0"으로 매핑될 수 있다. 이 예시의 매핑 규칙에 따르면, 두뇌 처리에 대한 입력은 단일 계산의 세계를 생성하고 이러한 계산들 중 선택된 것은 "0"에서 "1" 범위의 값으로 표현된다.
다른 기호들은 계산 완료 상태로 매핑될 수 있다. 예를 들어, 위상 요소를 정의하는 데 사용되는 에지들의 특정 조합으로 정의된 각 유형의 단일 계산 완료를 개별적으로 추적하기 위해 상이한 기호 체계가 사용될 수 있다. 어떤 경우든, 위상 유닛들의 계산과의 연관은 신경시냅스 컴퓨터가 입력 데이터의 집합에 대한 위상 요소들의 집합에 의해 수행된 단일 계산의 완료 상태를 추적할 수 있도록 한다.
815에서, 프로세스(800)를 수행하는 디바이스는 이러한 계산을 인지와 연관시킨다. 상이한 인지 알고리즘들은 결정들의 상이한 조합 및 이러한 결들정의 얽힘에서 발생한다. 그래서, 상이한 토폴로지 유닛과 연관된 계산을 사용하여 결정들의 상이한 조합들을 어셈블하고 임의적으로 복잡한 계층을 만들 수 있다. 또한, 이러한 결정의 결과는 결정들의 집합을 포함하는 기호적인 컴퓨터 언어로서 출력될 수 있다.
단일 인지 작업을 형성하는 단일 결정들의 집합에서의 단일 결정은 상호 의존적이다. 각 단일 결정은 활성 에지들의 특정 조합의 함수이다. 상기 활성 에지들은 각각 뇌 처리 유닛의 전체 네트워크 활동의 고유한 기능이다. 능동 에지에 의해 수행되는 기본 계산과 토폴로지 요소에 의해 수행되는 단일 계산은 임의의 복잡성을 가지므로, 단일 인지 동작을 구성하는 단일 결정들 간에 임의적인 많은 수의 종속성들이 존재한다. 입력 처리 동안 나타나는 특정 종속성은 단일 결정이 얽힌 특정 상태를 정의한다. 아래에서 더 논의되는 바와 같이, 결정들의 다중 조합 또는 계층적 수준도 가능한다. 한 수준의 결정들 사이에서 입력을 처리하는 동안 나타나는 종속성은 더 높은 수준의 결정을 정의하는 얽힘 상태를 갖는다.
활성 에지에 의해 수행되는 기본 계산의 정확한 특성이나 토폴로지 요소에 의해 수행되는 단일 계산이 알려질 필요는 없다. 오히려 기본 계산과 위상 요소의 단일 계산 완료 상태를 추적하는 것으로 충분하다. 그러므로 입력에 대해 수행되는 계산은 단일 계산들의 완료 상태들의 특정 조합이다. 또한, 단일 계산의 완료 상태는 인지 계산의 완료 상태에 매핑될 수 있다. 토폴로지 요소의 단일 계산은 다음 설계 논리를 사용하여 인지 계산과 연관될 수 있다.
기본 계산을 정의하는 활성 에지는 뇌 처리 유닛 내 네트워크가 도달하는 기본 결정도 정의한다. 기본 결정은 결정의 기본 유닛인 것으로 간주된다. 단일 계산을 정의하는 토폴로지 요소의 활성 에지들의 특정 조합은 단일 결정도 정의한다. 그래서 단일 결정은 기본 결정들의 집합으로 구성된다.
기본 결정의 상태는, 에지가 활성 상태이거나 아닌 어느 하나의 상태이기 때문에 이진 상태이다. 그러나, 다중 컴포넌트들을 포함하는 신경 위상학적 요소와 연관된 단일 결정의 상태는 0에서 1까지의 범위이며, 이는 그 상태가 신경 위상학 요소의 컴포넌트의 기본 이진 상태들 (즉, "0"들과 "1"들의 집합)의 조합 및 부분에 종속하기 때문이다.
인지의 유닛 또는 단일 인지 동작은 단일 결정들의 집합, 즉 위상 요소들의 집합과 연관된 단일 계산들의 집합으로 정의된다. 단일 인지 작업의 유형은 그것의 구성 단일 결정들의 수와 조합에 의해 정의된다. 예를 들어, 단일 결정이 토폴로지 요소들의 목록과 해당 단일 계산의 완료 상태에 대한 연관된 설명에서 캡처되는 경우, 단일 인지 연산은 상기 구성 단일 결정들의 0 내지 1 범위의 값들의 집합에 의해 알려질 수 있다.
어떤 경우에는, 단일 인지 작업들은 양자화되고 완전하거나 불완전한 것 중 은 하나로 특성화될 수 있다. 특히, 불완전한 단위 계산(즉, 그렇지 않으면 0과 1 사이의 값을 특징으로 하는 단위 계산)은 "0"으로 설정될 수 있다 (예를 들어, 시작되지 않은 것으로 처리됨). 완료된 단일 계산(즉, 독점적으로 "1")을 독점적으로 포함하는 인지 작업만이 완료된 것으로 간주될 수 있다.
또한, 결정들의 추가적인 조합 또는 계층적 수준도 가능하다. 예를 들어, 단일 인지 작업의 집합은 인지 기능을 정의할 수 있으며 인지 기능들의 집합은 시스템 인지를 정의할 수 있다. 사실상, 단일 인지 연산들 사이에 설계된 관계는 인지 기능들의 유형을 정의하고 그 인지 기능들 사이에 설계된 관계는 인지 컴퓨팅의 유형을 정의한다. 추가적인 조합들 또는 계층적 수준들도 가능한다.
도 12는 인지 내의 결정들의 계층적 조직(1200)의 개략도이다. 계층적 조직(1200)이 하나의 예라는 것이 강조된다. 더 많거나 더 적은 수준이 가능한다. 또한, 계산은 여러 수준에 걸쳐 얽힐 수 있다. 그럼에도 불구하고, 계층적 조직(1200)은 인지 내의 결정 수준의 예시적인 예이다.
계층적 조직(1200)은 기본 결정(1205), 단일 결정(1210), 기본 인지 작업(1215), 단일 인지 작업(1220), 기본 인지 기능(1225), 단일 인지 기능(1230), 및 인지 알고리즘(1235)을 포함한다.
위에서 논의한 바와 같이, 인지 인코더는 신경 코드 내 상이한 수준들에서 결정들을 식별하고 인코딩할 수 있다. 신경 코드의 설계 로직은 (예를 들어, 활성 에지에 의해 만들어진) 기본 결정들(1205) 사이에서의 종속성을 생성하여 단일 결정들(1210)(능동 토폴로지 요소들에 의해 만들어짐)을 형성한다. 기본 결정들(1205) 간의 종속성은 단일 결정(1210)을 정의하는 얽힘 상태로 지칭될 수 있다. 다른 얽힘 상태들은 단일 결정들(1210) 간의 종속성을 정의한다. 이러한 얽힘의 상태들은 기본 인지 작업(1215)을 형성한다. 다른 얽힘 상태는 기본 인지 작업들 (1215) 간의 종속성을 정의한다. 이러한 얽힘 상태는 단일 인지 작업들(1220)을 형성한다. 얽힘의 또 다른 상태는 단일 인지 작업들(1220) 간의 종속성을 정의할 수 있다. 이러한 얽힘 상태는 기본 인지 기능(1225)을 형성한다. 얽힘의 또 다른 상태는 기본 인지 기능들(1225) 간의 종속성을 정의할 수 있다. 이러한 얽힘 상태는 단일 인지 기능(1230)을 형성한다 . 얽힘의 또 다른 상태는 단일 인지 기능들(1230) 간의 종속성을 정의할 수 있다. 이러한 얽힘 상태는 인지 알고리즘(1235)을 형성한다. 계층의 상위로 올라갈수록 도달된 결정들의 복잡성이 증가한다.
그래서, 신경시냅스 컴퓨팅에서, 얽힘은 각 수준에서 종속성을, 즉, 처리의 바로 하위의 레벨에 대한 직접적인 의존성 및 모든 다른 하위 레벨에 대한 간접적인 의존성을 생성한다. 예를 들어, 단일 인지 기능(1230)은 기본 인지 기능(1225)에 대한 직접적 의존성과 단일 인지 작업(1220), 기본 인지 작업(1215), 단일 결정(1210)에 대한 간접 의존성에 의해 형성되며, 가장 낮은 수준에서는, 활성 에지에 의해 이루어진 기본 결정들(1205) 사이에서 형성된다.
단일 결정(1210)이 양자화되어 "1"이 완료된 결정을 알리고 "0"이 부분적 및/또는 결정 부재를 알리는 경우, "0" 및 "1"의 단일 집합은 완전한 인지 알고리즘(1235)을 나타낼 수 있다. 그런 "0"과 "1"의 단일 집합은 여러 수준 내에서 그리고 여러 수준에 걸쳐 계산의 완료 및 얽힘 상태를 나타내는 신경 코드 기호 언어를 형성한다.
도 13은 신경 코드를 구성하기 위한 과정(1300)의 흐름도이다. 프로세스(1300)는 데이터 처리 활동을 수행하는 하나 이상의 데이터 처리 디바이스에 의해 수행될 수 있다. 프로세스(1300)의 활동은 기계 판독 가능 명령어들의 집합, 하드웨어 어셈블리, 또는 이들 및/또는 다른 명령어의 조합의 논리에 따라 수행될 수 있다.
1305에서, 프로세스(1300)를 수행하는 디바이스는 뇌 처리 유닛의 구조를 나타내는 구조적 그래프를 계산하고 분석한다. 예를 들어, 무방향성 그래프는 뇌 처리 유닛에서 상호 연결된 두 노드들 사이에 양방향 에지를 할당하여 구성될 수 있다. 방향성 그래프는 에지의 방향을 두 노드들 간의 전달 방향으로 취하여 구성될 수 있다. 입력이 없을 때, 뇌 처리 유닛 내 모든 에지들이 고려되며 상기 그래프는 구조적 그래프로 불린다. 상기 구조적 그래프는 구조적 방향성 그래프에 존재하는 모든 방향성 단순체들(simplices)과 구조적 방향성 그래프의 단순성 복합체를 계산하기 위해 분석될 수 있다. 필요한 경우, 다른 토폴로지 구조, 토폴로지 메트릭 및 일반 그래프 메트릭이 계산될 수 있다. 토폴로지 구조의 예는 최대 단순체, 주기, 큐브 등을 포함한다. 토폴로지 메트릭의 예는 오일러 특성을 포함한다. 일반적인 그래프 메트릭의 예는 내/외 차수 (in- and out-degree), 클러스터링, 허브, 커뮤니티 등을 포함한다.
1310에서, 프로세스(1300)를 수행하는 디바이스는 활성 에지들을 정의한다. 위에서 논의한 바와 같이, 활성 에지를 정의하는 데 사용되는 특정 기준은 기본 결정을 형성하는 계산의 유형과 정밀도를 세팅한다. 이것은 차례로 신경 코드가 구성되는 계산에 포함된 계산 유형을 설정한다.
활성 에지를 정의하는 데 사용할 수 있는 기준들의 중 하나의 클래스는 인과성 기준(causality criteria)이다. 인과성 기준의 한 가지 예는 - 활성으로 간주될 에지에 대해 - 노드에 의해 스파이크가 생성되어야 하고, 신호가 수신 노드로 전달되어야 하며, 그리고 그 수신 노드에서 응답이 성공적으로 생성될 것을 필요로 한다. 수신 노드에서 생성된 응답은 예를 들어, 스파이크를 생성하지 않는 하위 임계값 응답 및/또는 스파이크를 생성하는 상위 임계값 응답의 존재일 수 있다. 그런 인과성 기준에는 추가 요구 사항이 있을 수 있다. 예를 들어, 응답이 발생해야 하는 시간 윈도우가 세팅될 수 있다. 이러한 시간 윈도우는 활성 에지에 의해 시그널링되는 기본 결정에 포함된 계산의 복잡성을 제어한다. 인과성에 대한 시간 윈도우가 감소하면, 수신 노드가 수행하는 계산은 수신 노드가 자신의 계산을 수행하는 더 짧은 시간으로 제한된다. 반대로, 더 긴 시간 윈도우는 상기 노드가 다른 송신 노드로부터 더 많은 입력을 수신 및 처리할 수 있게 하고 입력에 대한 계산을 수행하기 위한 더 많은 시간을 허용한다. 그러므로 더 긴 시간 윈도우에서 계산 및 도달된 결정은 그 시간 윈도우가 길어질수록 더 복잡해지는 경향이 있다.
활성 에지를 정의하는 데 사용할 수 있는 기준의 다른 클래스는 일치 기준(coincidence criteria)이다. 일치 기준의 한 가지 예는 - 활성으로 간주될 에지에 대해 - 송신 노드와 수신 노드 모두가, 먼저 노드가 급증하는(spike) 것을 제한하지 않으면서 주어진 시간 윈도우 내에서 급증해야 한다는 것을 필요로 한다. 일치하는 수신 노드 스파이크를 인식하기 위한 시간 윈도우의 타이밍과 지속 시간은 상기 일치 기준의 엄격성을 세팅한다. 송신 노드의 스파이크 직후에 발생하는 짧은 시간 윈도우는 스파이크들이 일치하는 것으로 간주하기 위한 비교적 엄격한 조건을 나타낸다. 실제로, 일치 기준을 만족하는 활성 에지는 네트워크가 시간 윈도우의 지속 시간에 의해 주어진 주파수 대역 내에서 진동하고 있음을 표시한다.
활성 에지를 정의하기 위해 사용할 수 있는 기준의 다른 클래스는 진동 기준(oscillation criteria)이다. 진동 기준의 한 예는 - 활성으로 간주될 에지에 대해 - 상이한 에지들이나 상이한 유형의 에지들에 의해 여러 일치 기준이 충족되어야 할 것을 필요로 한다. 활성 에지들 간의 이러한 결합 동작은 네트워크가 시간 윈도우에 의해 정의된 주파수 대역으로 진동하고 있음을 나타낸다.
일부 구현에서, 상이한 인과관계, 일치, 및 진동 기준이 상이한 에지들 및/또는 상이한 클래스 및 유형의 에지들에 적용될 수 있다.
1315에서, 프로세스(1300)를 수행하는 디바이스는 활성 토폴로지 요소를 나타내기 위해 심볼들을 할당한다. 예를 들어, 토폴로지 요소의 모든 에지가 활성이면 "1"이 위상 요소에 할당될 수 있고, 어떤 에지도 활성화되지 않은 경우 "0"이 할당될 수 있으며, 1과 0 사이의 분수가 활성인 에지들의 비율을 나타내기 위해 할당될 수 있다. 대안으로, 부분적으로 활성인 토폴로지 요소들의 경우, 활성인 에지들의 특정 조합을 나타내는 숫자가 할당될 수 있다. 예를 들어, 활성/비활성 에지들의 시퀀스(예: "01101011")에 이진 시스템을 사용하여 값이 할당될 수 있다.
일부 구현에서, 활성 토폴로지 요소들의 표현은 양자화될 수 있다. 예를 들어, 토폴로지 요소 내 모든 컴포넌트들이 활성인 경우에만 그 토폴로지 요소에 "1"이 할당될 수 있다. 컴포넌트가 없거나 일부 컴포넌트들만 활성화된 경우에는 "0"이 할당된다.
1320에서, 프로세스(1300)를 수행하는 디바이스는 뇌 처리 유닛의 기능적 그래프를 구성한다. 예를 들어, 기능적 그래프는 입력에 대한 응답으로 두뇌 처리 유닛의 작업들을 시간 빈(bin)들로 분할함으로써 구성될 수 있다. 구조적 그래프를 사용하면, 각 시간 빈에서 활성 에지들이 있는 노드들만이 연결될 수 있으며, 그에 의해 기능적 그래프들의 시계열이 생성된다. 그런 각 기능적 그래프에 대해, 구조 그래프상에서 1305에서 수행되었던 것과 동일한 토폴로지 분석이 수행될 수 있다. 일부 구현에서, 토폴로지 요소들은 시간에 따라 통합될 수 있다. 일부 구현에서, 위의 스키마를 사용하여 계산을 안내하는 데 유용할 수 있는 글로벌 그래프 메트릭 또는 메타 정보가 상기 기능적 그래프와 연관될 수 있다.
어떤 경우든, 그런 기능적 그래프를 사용하여, 활성 및 비활성 신경위상학적 구조를 나타내는 심볼들의 컬렉션(예: "1" 및 "0" - 부분적으로 활성인 신경위상학적 구조를 나타내는 중간 실수가 있거나 없음)이 출력될 수 있다. 일부 구현에서, 상기 출력은 그래프 토폴로지의 글로벌 메트릭 및 상기 기능적 그래프가 구성되었던 방식에 관한 메타 데이터를 포함할 수도 있다.
1325에서, 프로세스(1300)를 수행하는 디바이스는 뇌 처리 유닛의 단일 결정을 얽히게 할 수 있다. 일반적으로, 뇌 처리 유닛은 너무 커서 수많은 결정들에 도달한다. 그런 결정들에 대한 개별적인 고려는 일반적으로 다루기 힘든 것으로 판명될 것이다. 상기 결정들의 얽힘은 입력 데이터 처리에 가장 많이 관련된 결정들의 부분 집합을 선택한다.
일반적으로, 프로세스(1300)를 수행하는 디바이스는 얽힘에 대한 결정들의 부분집합을 선택할 것이다. 선택된 부분 집합은 특정 입력 데이터세트의 처리 및 달성해야 하는 인지와 가장 관련이 있는 결정들을 포함한다. 데이터세트 내 각 파일의 입력 동안에 상기 관련 결정들의 활성화 패턴에 따라 그 관련 결정들이 선택될 수 있다. 예를 들어, 토폴로지 요소가 단일 입력을 처리하는 동안 그리고 입력들의 데이터세트에 걸쳐 활성화된 횟수는 그 토폴로지 요소의 관련성에 대한 표시이다. 상이한 결정들의 활성화 빈도들에 대한 히스토그램이 구성되고 그 빈도들을 기반으로 결정들이 선택될 수 있다. 예를 들어, 상기 데이터세트의 작은 부분에 대해서만 활성인 결정들이 비정상 검출을 위한 인지 알고리즘 구성에 사용될 수 있다.
다른 예로서, 결정들은 활성화 빈도의 계층 또는 비닝(binning)을 기반으로 선택될 수 있다. 예를 들어, 데이터세트 전체의 빈도들의 빈에서 활성화되는 결정들(예: 단일 결정의 10%는 입력 데이터세트의 입력들의 95%에 대해 활성이고, 단일 결정의 20%는 70%의 입력 데이터세트의 입력들의 70%에 대해 활성이고, 단일 결정의 50%는 입력 데이터세트의 입력들의 50%에 대해 활성임)이 선택될 수 있다.
또 다른 예로, 글로벌 그래프 메트릭을 기반으로 결정들이 선택될 수 있다. 예를 들어, 상기 선택이 엔트로피 최적화 대상에 의해 구동되는 경우, 입력 전체에서 50% 활성인 결정들만이 선택된다. 또 다른 예로, 베티 (Betti) 수들의 패턴과 같은 특정 패턴의 특정 순간에 활성인 결정들이 검출되고 선택될 수 있다.
얽힘에 대한 결정들의 부분집합의 선택 후에, 프로세스(1300)를 수행하는 디바이스는 상기 결정들을 얽히게 할 수 있다. 특히, 상기 선택된 결정들의 추가의 부분집합들이 상기 계층 내 각 수준에서 선택될 수 있다.
예를 들어, 일부 구현에서, 상기 얽힘은 인지 알고리즘을 가장 높은 수준으로부터 가장 낮은 수준으로 기능 및 작업의 계층으로 분해할 수 있다. 각 기능과 작업은 하위 기능과 하위 작업의 계층으로 더 분해될 수 있다. 특정 수준의 세부 사항에 관계없이, 단일 결정들의 분해는 계층의 최상위 수준에서 시작하여 그 계층의 가장 낮은 수준까지 작동한다.
인지 알고리즘을 분해하기 위해, 프로세스(1300)를 수행하는 디바이스는 결정들의 계층에서 가장 높은 목표 수준을 선택할 수 있다. 예를 들어, 상기 계층이 도 12에서 보이는 바와 같이 조직될 때에, 인지 알고리즘(예를 들어, 1235, 도 12)의 완료된 결정들이 선택될 수 있다. 다음의 아래 수준의 각 단일 결정(예를 들어, 도 12의 각 인지 기능(1230))은 상기 계층에서 가장 높은 목표 레벨에서 이 결정에 관한 정보 내용에 대해 개별적으로 평가된다. 결정들의 목록은 가장 높은 정보 내용으로부터 가장 낮은 정보 내용으로 구성되고 정렬될 수 있다. 다른 정렬된 목록들은 가장 높은 목표 수준에서의 다른 결정들을 위해 구성될 수 있다.
그 다음, 프로세스(1300)를 수행하는 디바이스는 상기 목록(들)으로부터 단일 결정을 선택하고 상기 계층에서 가장 높은 목표 수준의 결정에 대한 집합적 성능을 테스트함으로써 다음 하위 수준의 단일 결정들을 추가의 부분집합에 추가할 수 있다. 다음 하위 수준의 단일 결정 당 성능 증가가 하위 수준으로 감소할 때 (즉, 추가 단일 결정 당 성능에서의 변화가 감소할 때), 상기 부분 집합에 더 이상의 단일 결정들이 추가될 필요가 없다.
결정들의 상기 계층에서 이 첫 번째 가장 높은 목표 수준에 대해 발견된 다음 하위 수준의 단일 결정들은, 다음 하위 수준에서 결정들의 추가 선택을 제한하고 상기 계층의 두 번째 목표 수준을 구성하기 위한 입력으로서 제공될 수 있다. 이 두 번째 목표 수준에 관한 정보 내용에 대한 평가 후, 두 번째 목표 수준으로부터 추가적인 단일 결정들이 선택될 수 있다. 그래서, 상기 계층의 첫 번째 및 두 번째 목표 수준에 대해 발견된 단일 결정들의 부분 집합들은 상기 계층의 세 번째 수준에 대한 단일 결정들의 추가 부분 집합의 선택을 제한하는 초기 부분 집합으로서 사용된다. 이것은 결정들의 계층의 모든 수준들에 대해 단일 결정들이 선택될 때까지 계속된다.
도 12의 계층의 맥락에서, 단일 결정들을 얽히게 하는 과정은 기본 인지 기능(1225), 단일 인지 작업(1220), 기본 인지 작업(1215), 및 단일 결정(1210)을 얽히게 하도록 반복될 수 있다. 단일 결정들이 이진수인 경우, 상기 계층의 각 수준에서 단일 결정들의 부분 집합은 상기 인지 알고리즘을 형성하기 위해 숫자가 증가하는 비트들의 집합이다. 결정들의 부분 집합은 신경 코드로 언급된다.
일부 구현에서, 상기 부분집합의 시퀀스에 대한 이진 결정은 상기 인지 알고리즘을 인코딩하는 비트들의 더 작은 최종 부분집합을 생성하기 위해 각 수준에서 이루어질 수 있다.
도 14는 도 12에 도시된 계층적 조직(1200)의 맥락에서 계층적 신경 코드를 구성하기 위한 프로세스의 개략도이다. 인지 알고리즘(1235)은 초기의 최고 목표 레벨로 선택된다. 단일 인지 기능(1230)의 수준에서의 단일 결정들은 상기 선택된 인지 알고리즘(1235)에 대한 자신들의 정보 내용에 기초하여 선택된다. 단일 인지 기능(1230) 수준에서의 이러한 단일 결정들은 목표 수준을 형성하고, 기본 인지 기능(1225)의 수준에서 단일 결정들은 단일 인지 기능들(1230)의 수준에서의 단일 결정에 대한 정보 내용에 기초하여 선택된다. 이 프로세스는 단일 결정들(1210)의 수준에서 단일 결정들이 선택될 때까지 계속된다.
도 15는 신경 코드들을 그 신경 코드들의 목표 출력들로 디코딩하기 위한 프로세스(1500)의 예이다. 프로세스(1500)는 데이터 처리 활동을 수행하는 하나 이상의 데이터 처리 디바이스에 의해 수행될 수 있다. 프로세스(1500)의 활동은 기계 판독 가능 명령어들의 집합, 하드웨어 어셈블리, 또는 이들 및/또는 다른 명령어의 조합의 논리에 따라 수행될 수 있다. 예를 들어, 프로세스(1500)는 신경 코드에 의해 인코딩된 인지 기능들이 수행될 수 있도록 신경 코드를 판독하고 번역하기 위한 동작 생성기(125)(도 1)로서의 동작 생성기에 의해 수행될 수 있다.
프로세스(1500)를 수행하는 동작 생성기 또는 다른 디바이스는, 상기 계층적 신경 코드를 구성하기 위해 사용되는 얽힘 알고리즘을 역전시키고 상기 뇌 처리 유닛에 의해 만들어진 결정들의 얽힘을 해제하도록 구성된다. 얽힘 해제에서의 각 단계는 여러 기계 학습 모델 또는 경우에 따라 분석 공식에 의해 수행될 수 있다.
도시된 바와 같이, 신경 코드(1505)가 수신되어, 상기 신경 코드의 관련 계층적 레벨 H1, H2, H3, H4의 심볼을 처리하도록 각각 훈련된 기계 학습 모델들(1515, 1520, 1525, 1530, 1535)에 1510에서 입력된다. 계층적 조직(1200)(도 12)의 맥락에서, 각 기계 학습 모델(1515, 1520, 1525, 1530, 1535)은 단일 결정들(1210), 기본 인지 작업들(1215), 단일 인지 작업들(1220), 기본 인지 기능들(1225), 단일 인지 기능들(1230), 또는 인지 알고리즘(1235) 중의 각각을 처리하도록 훈련될 수 있다. 일부 구현에서, 하나의 계층적 수준(예를 들어, 더 낮은 수준)에서 기계 학습 모델들로부터의 출력은 다른 계층적 수준(예를 들어, 더 높은 수준)에서 기계 학습 모델에 입력을 제공할 수 있다. 이러한 입력은 1515, 1520, 1525, 1530, 1535를 연결하는 점선들로 개략적으로 표현된다.
예시된 구현에서, 신경 코드(1505)는 신경 위상학적 구조가 활성 및 비활성인지 여부를 각각 나타내는 이진수 "1"들 및 "0"들의 컬렉션으로 도시된다. 다른 구현에서, 심볼들 또는 실수가 사용될 수 있다.
또한, 기계 학습 모델의 컬렉션이 아니라, 뇌 처리 유닛들의 네트워크기 사용되어 신경 코드들을 그 신경 코드들의 목표 출력들로 디코딩할 수 있다.
또 다른 구현에서, 상기 신경 코드의 계층적 요소들은 그래프로 매핑될 수 있으며 그리고 그래프 신호 처리 접근방식들은 상기 신경 코드를 그 신경 코드의 목표 출력으로 디코딩하기 위해 적용될 수 있다. 이러한 그래프 신호 처리 방식의 예는 그래프 컨볼루션 신경 네트워크를 포함한다. 예를 들어, 얽힘 해제는 노드들이 기계 학습 모델이고 상기 에지들이 다른 기계 학습 모델로부터 수신한 입력들인 그래프로 구현될 수 있다.
상기 동작 생성기 또는 프로세스(1500)를 수행하는 다른 디바이스에 의해 제공된 디코딩은 원래 입력 데이터의 무손실 재구성 또는 원하는 압축 레벨의 손실성 재구성일 수 있다. 상기 디코딩은 또한 다양한 정도의 암호화를 제공할 수 있으며, 여기에서 보안 수준은 출력에서의 충돌의 확률에 의해 정량화될 수 있다. 이러한 동작 생성기 또는 기타 디바이스는 입력 데이터에 대해 임의적으로 복잡한 수학적 연산을 수행하고 인공 지능 애플리케이션을 위한 다양한 인지 출력을 제공하도록 설계될 수도 있다.
도 16은 학습 어댑터(130)(도 1)와 같은 학습 어댑터(1600)의 개략도이다. 위에서 논의한 바와 같이, 학습 어댑터 생성기는 신경시냅스 컴퓨터의 각 컴포넌트의 하이퍼파라미터를 최적화하도록 구성된다. 학습 어댑터는 각 컴포넌트로부터 하이퍼파라미터들을 수신하고, 컴포넌트-특정 학습 알고리즘을 사용하여 상기 하이퍼파라미터들을 최적화하며, 그리고 상기 컴포넌트에 항기 하이퍼파라미터들을 반환한다.
학습 어댑터(1600)의 예시된 실시예는 데이터 학습기(1605), 감각 학습기(1610), 뇌 처리 유닛 학습기(1615), 인지 학습기(1620), 및 행동 학습기(1625)를 포함한다. 데이터 학습기(1605)는 데이터가 감각 인코더로 송신되기 전에 환경 생성기에 의한 데이터의 검색, 전처리 및 조직화를 최적화하도록 구성된다. 감각 학습기(1610)는 계산 작업에 적합하도록 데이터의 인코딩을 변경하고 일부 입력 채널을 약화시키고 다른 채널을 강화하도록 감각 인코더를 가르치도록 구성된다. 뇌 처리 유닛 학습기(1615)는 입력에 최적으로 응답하도록 시냅스를 안내함으로써 뇌 처리 유닛이 계산 작업을 수행하는 것을 학습할 수 있게 하도록 구성된다. 뇌 처리 유닛 학습기(1615)는 뇌 처리 유닛의 미래 입력 예측을 개선하기 위해 상기 뇌 처리 유닛의 시냅스 및 뉴런 설정을 내부적으로 또한 보정할 수 있다. 예를 들어, 뇌 처리 유닛 학습기(1615)는 뇌 처리 유닛에 의해 수행될 원하는 계산의 범위를 구성할 수 있다. 인지 학습기(1620)는 인지 알고리즘에 필요한 가장 적절한 계산/결정 집합을 제공하는 알고리즘을 적용함으로써 뇌 처리 유닛이 계산 작업을 수행하는 것을 학습할 수 있도록 구성된다. 동작 학습기(1625)는 인지 알고리즘에 대한 계산/결정을 얽히기 위한 새로운 그래프 구성을 동작 생성기가 자동으로 검색하는 것을 허용하도록 구성된다. 데이터 학습기(1605), 감각 학습기(1610), 뇌 처리 유닛 학습기(1615), 인지 학습기(1620), 행동 학습기(1625) 각각의 중심 설계 속성은 미래 결과에 대한 예측을 생성하는 능력이다.
데이터 학습기(1605), 감각 학습기(1610), 뇌 처리 유닛 학습기(1615), 인지 학습기(1620) 및 행동 학습기(1625) 각각은 신경시냅스 컴퓨터의 관련 컴포넌트들의 하이퍼파라미터들을 최적화하기 위한 각자의 신호(1630)를 출력한다. 데이터 학습기(1605), 감각 학습기(1610), 뇌 처리 유닛 학습기(1615), 인지 학습기(1620) 및 행동 학습기(1625) 각각은 관련 컴포넌트의 하이퍼파라미터를 최적화하기 위해 다른 컴포넌트들로부터 상기 하이퍼파라미터(1635)를 입력받는다.
동작시, 학습 어댑터(1600)는 예를 들어 최적의 데이터 압축을 위한 신경 코드의 비트들의 수 최소화, 높은 수준의 암호화 달성, 무손실 압축 달성, 데이터의 특정 수학적 변환 달성, 또는 특정 인지 목표 출력 달성과 같은 다양한 목표 기능들을 제공받을 수 있다.
그래서 상기 신경시냅스 컴퓨터의 작동은 그 신경시냅스 컴퓨터의 각 컴포넌트의 하이퍼파라미터를 설정하는 것을 포함할 수 있다. 하이퍼파라미터들에 대한 그런 설정은 기존 컴퓨팅에서 프로그래밍 패러다임 및 모델에 의해 수행되는 기능과 유사한 신경시냅스 컴퓨터에서의 기능을 수행한다. 또한, 하드웨어 인프라 및 소프트웨어는 신경시냅스 컴퓨터를 작동하기 위해 수행될 필요가 있는 다양한 계산에 맞추어 특별히 최적화될 수 있다.
위에서 논의한 바와 같이 일련의 단계들 및 컴포넌트들은 신경시냅스 컴퓨터의 일부일 수 있다. 이것들은 신경시냅스 컴퓨터(감각 시스템과 유사)에 데이터를 입력하기 위한 인코딩 체계, 계산의 크고 다양한 세계를 생성할 수 있는 아키텍처(예: 순환 인공 신경 네트워크 (BPU)), 인지 프로세스를 구성하기 위한 이러한 계산들의 부분 집합을 선택하고 연결하는 프로세스(인지 시스템), 인코딩된 인지 프로세스를 해석하는 프로세스(동작 시스템) 및 최적화 및 자가 학습을 제공하는 시스템(학습 시스템)으로 데이터를 진입하게 하기 위한 인코딩 방식을 포함한다. 순환 인공 신경 네트워크 뇌 처리 유닛은 입력에 대한 신경 네트워크의 응답 동안에 다양한 계산들을 생성한다. 뇌 처리 유닛은 스파이크 또는 비-스파이크 순환 신경 네트워크일 수 있으며 디지털 컴퓨터에서 구현하거나 특수 하드웨어에서 구현할 수 있다. 원칙적으로, 신경시냅스 컴퓨터는 범용 컴퓨터로 사용되거나 인공 지능(Artificial Intelligence, AI) 컴퓨터 또는 인공 일반 지능(Artificial General Intelligence, AGI) 컴퓨터와 같은 임의 개수의 상이한 특수 목적 컴퓨터로 사용될 수 있다.
신경시냅스 컴퓨터의 컴퓨팅 패러다임은 단일 결정의 계층, 인지 작업의 계층, 인지 기능의 계층으로 조직화된 기본 결정의 계층을 사용하여 인지 알고리즘을 생성한다. 상기 프로세스는 토폴로지 요소에 의해 수행되는 기본 계산을 캡처하기 위해 얽혀진 기본 결정들로 시작된다. 기본 결정은 단일 결정을 구성하기 위해 얽혀 있다. 단일 결정은 임의적인 복잡한 인지 알고리즘을 구성하기 위해 연속적인 계층에서 얽혀 있다.
원칙적으로, 단일 결정은, 토폴로지 요소가 뇌 컴퓨팅 단위의 가장 작은 컴포넌트(예: 분자)로부터 더 큰 컴포넌트(예: 뉴런, 뉴런들의 작은 그룹)까지, 심지어 더 큰 컴포넌트(예: 예를 들어, 뇌 컴퓨팅 유닛의 영역을 형성하는 뉴런들의 큰 그룹, 뇌 컴퓨팅 유닛의 영역, 또는 완전한 뇌 컴퓨팅 유닛)까지 정의될 수 있는 어떤 레벨에서도 만들어질 수 있다. 컴퓨팅 패러다임의 가장 간단한 버전은 토폴로지 요소가 동일한 유형의 컴포넌트(예: 뉴런)의 네트워크로 정의되는 경우이며 그리고 가장 복잡한 버전의 패러다임은 토폴로지 요소들이 상이한 컴포넌트들의 네트워크로 정의되는 경우이다 (예를 들어, 분자, 뉴런, 뉴런들의 그룹, 상이한 다양한 크기의 뉴런들의 그룹). 토폴로지 요소들 간의 연결은 얽힘이라는 프로세스를 구동하는 연관을 허용한다. 토폴로지 요소들 사이의 순환적인 연결(예: 가장 단순한 경우에는 뉴런들 사이, 보다 복잡한 경우에는 분자들, 뉴런들 및 뉴런들의 그룹들 사이)은 이들의 연관성을 규정하며 그래서 단일 결정이 인지 과정을 형성하기 위해 어떻게 얽힐 수 있으며 이러한 단일 인지 과정이 어떻게 얽힐 수 있는가를 규정한다.
단일 결정은 토폴로지 요소에 의해 수행된 계산의 측정 가능한 출력이다. 예를 들어, 다중 하위 임계값 입력(예: 시냅스 응답)의 통합 후에 생성된 임계값 초과 이진 스파이크(즉, 활동 전위)는 측정 가능한 출력이다. 그러므로 스파이크는 단일 결정으로 간주될 수 있다. 뉴런들의 임의 그룹에 의한 스파이크들의 임의 조합도 단일 결정으로 간주될 수 있다.
(입력에 의해 직접 및/또는 다른 응답 토폴로지 요소에 의해 간접적으로 활성화된) 토폴로지 요소들은 상기 입력을 처리할 때 시간의 함수로 계산의 범위를 생성한다. 상기 계산 범위의 최대 크기는 토폴로지 요소들의 수에 의해 결정된다. 모든 신경 네트워크는 균일한 것에서 최대한 다양한 범위인 계산의 범위를 생성한다. 토폴로지 요소에 의해 수행되는 계산이 동일하면, 계산 범위가 균일하다고 불린다. 반면에, 토폴로지 요소마다 수행하는 계산이 다르면, 상기 범위가 다양하다고 불린다. 토폴로지 요소에 의해 수행되는 계산의 복잡성은 그 구조적 요소의 구조적 및 기능적 속성의 복잡성에 의해 결정된다. 예를 들어, 정교한 수상돌기분지 (dendritic arborization) 및 해당 아버(arbor)에 주어진 비선형 이온 채널들의 조합을 구비한 신경 노드는 비교적 복잡한 계산을 수행한다. 반면에, 최소한의 수상돌기분지 및 스파이크를 생성하는 데 필요한 비선형 이온 채널만을 구비한 뉴런 노드는 더 간단한 계산을 수행한다.
토폴로지 요소에 의해 수행된 계산의 복잡성 또한 시간에 종속한다. 일반적으로, 단일 계산의 복잡성은 토폴로지 요소의 컴포넌트가 상호 작용하기 위해 허용된 시간의 함수로서 최대 복잡성으로 진화한다고 말해지며, 이는 결국 상기 요소의 컴포넌트 유형, 상기 요소의 상호 작용의 특성 및 상기 요소의 상호 작용의 시간 상수의 함수이다. 상기 계산 복잡성 진화의 임의 스테이지에서 결정이 내려질 수 있으며, 단일 결정을 형성하는 데 관련된 계산 복잡성의 추가 진화를 종료시킨다.
토폴로지 요소들의 구조적 및 기능적 특성이 양적으로 변하는 경우, 그것들은 계산들의 동일한 클래스 내에서 계산의 변형을 생성한다고 한다. 반면에, 구조적 및 기능적 특성이 질적으로 변하는 토폴로지 요소들은 계산의 상이한 클래스들을 생성한다고 한다. 계산들의 범위의 특성은, 질적으로 다른 구조적 및 기능적 특성을 가진 토폴로지 요소를 선택하여 계산들의 클래스의 수를 선택하고, 토폴로지 요소들의 동일한 클래스의 다중 표현을 도입하여 각 클래스의 크기를 설정하며, 동일한 클래스 내 토폴로지 요소들의 변형을 선택하여 계산의 클래스 내의 계산들에 변형을 도입하며, 그리고 각 클래스 내 토폴로지 요소들의 여러 대표들을 선택하여 클래스 내 다양성을 설정하는 것을 포함하는 프로세스에서 설계될 수 있다.
신경시냅스 컴퓨팅은 지식이나 심지어는 토폴로지 요소에 의해 수행되는 계산의 특성을 도출하는 능력에 의존하지 않는다. 대신, 신경시냅스 컴퓨팅은 이러한 방식으로 정의된 계산이 단일 결정을 형성하기에 충분히 정확하다는 전제에 기반한다. 그래서 계산의 범위는 입력에 대한 응답으로 이루어진 단일 결정의 범위와 동등하다.
단일 결정의 특성은 다른 단일 결정과의 연관성을 통해서만 정의된다. 토폴로지 요소, 단일 계산 및 단일 결정은 네트워크의 순환적 연결을 통해 연관된다. 상기 연관은 토폴로지 요소에 의해 수행된 계산이 다른 토폴로지 요소에 의해 수행된 다른 계산과 얽힐 수 있는 모든 방식을, 즉, 토폴로지 요소의 가능한 얽힌 상태들의 수를 정의한다. 얽히게 되는 것은 다른 토폴로지 요소에 의해 수행된 계산으로부터 종속 변수 입력을 개발하는 것에 해당한다. 상기 종속성은 임의적으로 복잡할 수 있다. 어떤 하나의 토폴로지 요소의 얽힘의 상태는 입력 처리 중에 결정이 내려지는 매 순간마다 정의되며 그리고 얽힘의 상태는 정의되지 않고, 결정들 간에 불확실하다. 어떤 하나의 토폴로지 요소의 상이한 얽힌 상태들의 수는, 순환 네트워크의 특성인 루프들 내에 많은 수의 루프들이 존재하기 때문에 매우 많다. 얽힘 상태들의 수는 단일 결정에 도달하는 데 필요한 시간 (예: 토폴로지 요소가 단일 뉴런으로 정의된 경우 입력 후 뉴런이 스파이크하는 데 걸린 시간 또는 토폴로지 요소가 뉴런들의 그룹으로 정의되는 경우 스파이크들의 특정 시퀀스가 발생하는데 걸린 시간)의 함수이기도 하다.
토폴로지 요소가 일단 결정을 내리면, 상기 계산은 완료되었다고 한다. 계산이 완료에 도달하는 시각을 단일 결정 순간으로 언급된다. 입력에 응답하는 뇌 처리 유닛은 단일 결정들의 집합이 만들어질 시점에 통합 결정을 내린다. 단일 결정들의 집합이 만들어지는 그런 시점은 단일 인지 순간이라고 지칭될 수 있다. 인지 순간은 신경 네트워크 시뮬레이션 중 입력에 대한 인지 처리를 정의한다.
단일 결정이 내려질 때에 토폴로지 요소의 얽힌 상태가 정의된다. 토폴로지 요소에 대한 가능한 얽힌 상태들의 클래스는 네트워크 내 토폴로지 요소의 위치에 의해 또한 제한되며, 여기에서 상기 위치는 상기 네트워크 내 다른 모든 토폴로지 요소들로의 토폴로지 요소의 연결에 의해 정의된다. 토폴로지 요소의 위치들은 - 그래서 토폴로지 요소들에 대한 얽힌 상태들의 클래스들은 - 각 토폴로지 요소가 다른 모든 토폴로지 요소들에 고유하게 연결되어 있으면 최대로 다양하다고 한다. 그러므로 연결이 균일성을 지향하는 단순한 네트워크 토폴로지는 균일성을 지향하는 얽힌 상태들의 클래스들을 구비한 토폴로지 요소들을 생성하는 반면, 더 복잡한 네트워크 토폴로지는 얽힌 상태들의 더 다양한 클래스들을 구비한 네트워크들을 생성한다.
계산 범위의 크기와 다양성 그리고 얽힌 상태들의 클래스들 수는 신경시냅스 컴퓨터의 계산 용량을 결정한다. 계산 범위가 충분히 크고 계산 클래스와 얽힌 상태가 충분히 다양하다면, 임의 인지 프로세스를 모방할 수 있는 계산들의 부분 집합과 얽힘 상태가 존재하며, 그래서 보편적인 인지 컴퓨팅이 가능하다.
인지 프로세스를 형성하는 토폴로지 요소들의 집합을 선택하는 프로세스는 상기 인지 프로세스에 수반된 결정들의 작은 부분집합을 찾는 최적화 기능이다. 상기 최적화 기능은 단일 인지 프로세스를 형성한다고 내려진 결정들의 작은 부분집합을 찾는 것으로 시작한다. 발견된 토폴로지 요소들은 인지 프로세스를 구성하기 위한 추가 토폴로지 요소들 선택에서의 계층적 제약으로 그 후에 사용되며, 토폴로지 요소들의 이 집합은 인지 프로세스를 에뮬레이트하는 토폴로지 요소들의 추가의 부분집합을 선택하기 위한 제약으로 결국 사용된다. 이러한 얽힘 과정을 토폴로지 얽힘 알고리즘이라고 할 수 있다.
이 이론을 컴퓨팅에 실제로 활용하기 위해, 토폴로지 요소들에 의한 단일 결정에는 기호적 값이 할당된다. 가장 간단한 구현에서, 단일 비트는 단일 결정이 이루어졌는지("1") 또는 그렇지 않은지("0")를 표시하기 위해 사용된다. 이러한 비트들은 신경 비트(nBits)로 지칭될 수 있다. 단일 인지 프로세스를 나타내기 위해 nBits의 세계로부터 nBits의 집합이 선택될 수 있다. nBits의 최종 계층 집합을 인지를 위한 신경 코드라고 언급된다. 다른 구현에서, 상기 단일 결정들은 토폴로지 요소들에 의해 이루어지는 결정들에서의 신뢰도 및/또는 정도를 나타내기 위해 실수(nNums)로 표현된다. 예를 들어, 토폴로지 요소로서 선택된 뉴런들의 그룹에서 급증하는 (spiking) 뉴런들의 비율은, 결정이 내려질 확률을 반영하도록 할당될 수 있다. 다른 구현에서, 상기 신경 코드는 내려진 상기 결정을 나타내는 nBits 및 nNums의 혼합으로 구성된다. 그리고 또 다른 구현에서, 네트워크 전반에서의 의사 결정의 글로벌 기능을 반영하는 글로벌 그래프 속성을 설명하는 것과 같은 메타데이터 값들의 세트는 관련 결정들을 내리는 토폴로지 요소들의 계층적 선택을 안내하는 제한으로 사용되며 그래서 상기 신경 코드의 구성에서의 제약으로 사용된다. 인지 프로세스, 단일 인지 프로세스 및 단일 결정들의 집합의 얽힘을 쉽게 풀기 위해 상기 신경 코드에 메타데이터가 추가될 수도 있다.
출력 또는 동작을 생성하기 위해 신경 코드의 얽힘을 푸는 것은 얽힘 알고리즘을 요약하여 달성될 수 있다. 한 구현에서, 기계 학습 모델들(첫 번째 수준 모델들)의 집합이 신경 코드에 적용되고 단일 인지 프로세스를 디코딩하도록 훈련된 다음, 기계 학습 모델(두 번째 수준 모델들)의 집합이 신경 코드에 적용되며 그리고 첫 번째 수준 모델들의 출력은 인지 과정을 디코딩하기 위해서도 사용되며, 그런 다음 기계 학습 모델들(세 번째 수준 모델들)의 다른 세트가 상기 신경 코드에 적용되고, 첫 번째 및 두 번째 수준 모델들의 출력들은 상기 인지 과정을 디코딩하기 위해 추가로 사용된다. 이 얽힘 해제는 노드들이 기계 학습 모델이고 상기 에지들이 다른 기계 학습 모델로부터 수신한 입력들인 그래프로 구현될 수 있다. 이것은 임의적으로 복잡한 풀림 알고리즘을 허용한다. 다른 구현은 신경 코드의 얽힘을 푸는 데 사용되는 그래프를 학습하는 것이다. 또 다른 구현은 분석 공식이 얽힘 해제의 각 스페이지에 적용되는 경우이다. 상기 출력은 동작으로 언급되며 그리고 원래 입력의 재구성, 원래 입력의 수학적 변환 함수들의 임의 개수의 구성 및 인지 출력들의 임의 수로 구성된다.
본 명세서에 설명된 주제 및 동작의 실시예들은 아날로그, 디지털, 또는 혼합 신호 전자 회로로, 또는 본 명세서에 개시된 구조들 및 그 구조들의 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로, 또는 그것들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예들은 하나 이상의 컴퓨터 프로그램, 즉, 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 디바이스의 동작을 제어하기 위해 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 대안으로 또는 추가로, 상기 프로그램 명령어들은, 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하도록 생성된 인공적으로 생성된 전파된 신호, 예를 들어 기계-생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체가 전파되는 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파된 신호에서 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지가 될 수 있다. 상기 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트들 또는 매체(예: 다수의 CD들, 디스크들 또는 기타 저장 디바이스들)일 수 있거나 이에 포함될 수 있다.
본 명세서에서 설명된 동작들은 컴퓨터 판독 가능한 하나 이상의 저장 디바이스들에 저장되거나 다른 소스로부터 수신된 데이터에 관해 데이터 처리 장치가 수행하는 동작들로서 구현될 수 있다.
"데이터 처리 장치"라는 용어는 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함하며, 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터, 칩 상의 시스템, 또는 전술한 것들의 다수 또는 조합을 포함한다. 상기 장치는 아날로그 회로, 혼합 신호 회로, 또는 특수 목적 논리 회로, 예를 들어 FPGA (field programmable gate array) 또는 ASIC (application-specific integrated circuit)을 포함할 수 있다. 상기 장치는 하드웨어에 추가하여 해당 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 플랫폼 간 런타임 환경, 가상 머신, 또는 이들 중 하나 이상의 조합을 구축하는 코드를 또한 포함할 수 있다. 상기 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 상이한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일된 또는 인터프리트된 언어, 선언적 또는 절차적 언어를 비롯한 임의 형태의 프로그래밍 언어로 작성될 수 있으며, 그리고 그것은 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하는 임의 형식으로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템 내 파일에 대응할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램이나 데이터(예: 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일 내에, 해당 프로그램 전용인 단일 파일 내에 또는 다수의 조정돤 파일들 (예: 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트들에 걸쳐서 분산되어 있으며 통신 네트워크에 의해 상호 연결된 여러 컴퓨터들에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 작동하고 출력을 생성함으로써 행동들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래밍 가능한 프로세서들에 의해 수행될 수 있다. 상기 프로세스들 및 논리 흐름들은 특수 목적 논리 회로, 예를 들어 FPGA (field programmable gate array) 또는 ASIC (application specific integrated circuit)에 의해 또한 수행될 수 있고 장치들 또한 상기 특수 목적 논리 회로로서 또한 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 마이크로프로세서 및 특수 목적 마이크로프로세서 모두, 그리고 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들과 데이터를 수신할 것이다. 컴퓨터의 필수적인 요소들은 명령에 따라 행동들을 수행하기 위한 프로세서 그리고 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 또한 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크, 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 모두를 하기 위해 작동 가능하게 연결되거나 또는 이들을 포함할 것이다. 그러나, 컴퓨터는 그런 디바이스들을 구비하는 것이 필요하지 않다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어, 몇 가지만 예를 들면, 이동 전화기, 개인 휴대 정보 단말기 (PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS (Global Positioning System) 수신기 또는 휴대용 저장 디바이스 (예: USB (Universal Serial Bus) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스인 반도체 메모리 디바이스를 예로서 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크; 자기 광 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함한다. 상기 프로세서와 상기 메모리는 특수 목적 논리 회로에 의해 보완되거나 특수 목적 논리 회로에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 설명된 주제의 실시예는 컴퓨터에서 구현될 수 있으며, 그 컴퓨터는 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예를 들어 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터 그리고 상기 컴퓨터에 사용자가 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예를 들면, 마우스나 트랙볼을 구비한다. 다른 종류의 디바이스들을 사용하여 사용자와의 상호 작용도 제공할 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 임의 유형의 시각적 피드백, 예를 들면, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있으며; 그리고 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 임의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자가 사용하는 디바이스로 문서를 보내고 그 디바이스로부터 문서를 수신하여 사용자와 상호 작용할 수 있다; 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에게 웹 페이지를 전송한다.
비록 본 명세서는 많은 특정한 구현 세부사항들을 포함하지만, 이것들은 임의의 발명 또는 청구될 수 있는 것의 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정한 실시예에 특정한 특징들에 대한 설명으로 해석되어야 한다. 별도의 실시예들의 맥락에서 설명된 특정 특징들은 단일 실시예에서 조합하여 또한 구현될 수 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 하위 조합으로 다중 실시예에서 구현될 수 있다. 더욱이, 특징들이 특정 조합에서 작용하는 것으로 위에서 설명될 수 있고 심지어 초기에 그렇게 청구될 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징들이 일부 경우에는 그 조합에서 제거될 수 있으며, 그 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에 특정 순서로 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작들이 보이는 특정 순서로 또는 순차적인 순서로 수행되거나 예시된 모든 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹과 병렬 처리가 유리할 수 있다. 더욱이, 위에서 설명된 실시예에서 다양한 시스템 컴포넌트들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 되며, 그것은 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품들로 패키킹될 될 수 있음을 이해되어야 한다.
그래서, 상기 주제의 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구항의 범위 내에 존재한다.

Claims (25)

  1. 복수의 노드들 및 상기 노드들을 연결하는 에지(edge)들을 포함하는 인공 순환 신경 네트워크의 출력을 판독하는 방법으로서, 상기 방법은:
    상기 인공 순환 신경 네트워크 내 상기 노드들 및 상기 에지들의 부분집합을 각각 포함하는 하나 이상의 상대적으로 복잡한 루트 토폴로지 요소들을 식별하는 단계;
    상기 인공 순환 신경 네트워크 내 상기 노드들 및 에지들의 부분집합을 각각이 포함하는 복수의 상대적으로 단순한 토폴로지 요소들을 식별하는 단계로, 여기에서 상기 식별된 상대적으로 단순한 토폴로지 요소들은 상기 상대적으로 복잡한 루트 토폴로지 요소들 중 적어도 하나에 대해 계층적 관계에 있는, 식별 단계;
    숫자들의 컬렉션을 생성하는 단계로서, 여기에서 상기 숫자들 각각은 상기 상대적으로 복잡한 루트 토폴로지 요소들 및 상기 상대적으로 단순한 토폴로지 요소들 각자가 윈도우 동안 활성인지의 여부를 나타내는, 생성 단계; 그리고
    상기 숫자들의 컬렉션을 출력하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 상대적으로 복잡한 루트 토폴로지 요소들을 식별하는 단계는:
    상기 순환 신경 네트워크가 입력에 응답할 때 상기 상대적으로 복잡한 루트 토폴로지 요소들이 활성인지 판별하는 단계를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 상대적으로 복잡한 루트 토폴로지 요소들에 대해 계층적 관계에 있는 상기 상대적으로 단순한 토폴로지 요소를 식별하는 단계는:
    상기 순환 신경 네트워크에 입력들의 데이터세트를 입력하는 단계; 그리고
    상기 상대적으로 단순한 토폴로지 요소들의 활성 또는 비활성이 상기 상대적으로 복잡한 루트 토폴로지 요소들의 활성과 상관관계가 있는지 판별하는 단계를 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 방법은 토폴로지 요소가 활성인지를 판별하기 위한 기준을 정의하는 단계를 더 포함하고, 여기에서 상기 토폴로지 요소가 활성인지를 판별하기 위한 기준은 상기 토폴로지 요소에 포함된 노드들 또는 에지들의 활성에 기초하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 방법은 상기 인공 순환 신경 네트워크 내 에지들이 활성인지를 판별하기 위한 기준을 정의하는 단계를 더 포함하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 상대적으로 복잡한 루트 토폴로지 요소들에 대해 계층적 관계에 있는 상기 상대적으로 단순한 토폴로지 요소를 식별하는 단계는 상기 상대적으로 복잡한 루트 토폴로지 요소들을 토폴로지 요소들의 컬렉션으로 분해하는 단계를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 상대적으로 복잡한 루트 토폴로지 요소들에 대해 계층적 관계에 있는 상기 상대적으로 단순한 토폴로지 요소를 식별하는 단계는:
    상기 상대적으로 복잡한 루트 토폴로지 요소들이 분해된 토폴로지 요소들의 목록을 형성하는 단계; 그리고
    가장 복잡한 토폴로지 요소들로부터 가장 덜 복잡한 토폴로지 요소들까지 상기 목록을 정렬하는 단계; 그리고
    상기 가장 복잡한 토폴로지 요소들에서 시작하여, 상기 상대적으로 복잡한 루트 토폴로지 요소들에 관한 정보 내용을 기반으로 숫자들의 컬렉션에서의 표현을 위해 상기 목록으로부터 상기 상대적으로 단순한 토폴로지 요소들을 선택하는 단계를 포함하는, 방법.
  8. 제7항에 있어서,
    상기 숫자들의 컬렉션 내 표현을 위해 상기 목록으로부터 더 복잡한 토폴로지 요소들을 선택하는 단계는:
    상기 목록으로부터 선택된 상기 상대적으로 단순한 토폴로지 요소들이 상기 상대적으로 복잡한 루트 토폴로지 요소들을 판별하기에 충분한지 여부를 판별하는 단계; 그리고
    상기 목록으로부터 선택된 상기 상대적으로 단순한 토폴로지 요소들이 상기 상대적으로 복잡한 루트 토폴로지 요소들을 판별하기에 충분하다는 판별에 응답하여, 상기 목록으로부터 어떤 추가의 상대적으로 단순한 토폴로지 요소들도 선택하지 않는 단계를 포함하는, 방법.
  9. 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제8항 중 어느 한 항의 방법을 포함하는 동작들을 수행하게 하는 실행 가능한 명령어들로 인코딩된, 적어도 하나의 컴퓨터 판독가능 저장 매체.
  10. 복수의 노드들 및 상기 노드들 사이의 연결들을 형성하는 에지들을 포함하는 인공 순환 신경 네트워크의 출력을 판독하는 방법으로서, 상기 방법은:
    상기 인공 순환 신경 네트워크로부터 판독될 계산 결과들을 정의하는 단계로서, 상기 계산 결과를 정의하는 단계는
    상기 인공 순환 신경 네트워크 내 에지들이 활성인지를 판별하기 위한 기준을 정의하는 단계, 그리고
    상기 인공 순환 신경 네트워크 내 상기 에지들의 진부분집합을 각각 포함하는 복수의 토폴로지 요소들을 정의하는 단계를 포함하는, 정의 단계; 그리고
    상기 정의된 토폴로지 요소들 각각이 활성인지를 판별하기 위한 기준을 정의하는 단계를 포함하며, 여기에서 상기 정의된 토폴로지 요소들 각각이 활성인지를 판별하기 위한 기준은 상기 정의된 토폴로지 요소들 각자에 포함된 에지들의 활동에 기초하며,
    활성 토폴로지 요소는 대응하는 계산 결과가 완료되었음을 나타내는, 방법.
  11. 제10항에 있어서,
    상기 방법은 상기 인공 순환 신경 네트워크로부터 상기 완료된 계산 결과를 판독하는 단계를 더 포함하는, 방법.
  12. 제11항에 있어서,
    상기 방법은 상기 인공 순환 신경 네트워크로부터 불완전한 계산 결과들을 판독하는 단계를 더 포함하고, 상기 불완전한 계산 결과들을 판독하는 단계는 상기 토폴로지 요소들 중 대응하는 것에 포함된 에지들의 활동을 판독하는 단계를 포함하며, 여기에서 상기 에지들의 활동은 상기 토폴로지 요소들이 활성인지를 판별하기 위한 기준을 충족시키지 않는, 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 방법은 계산 결과의 완료율을 추정하는 단계를 더 포함하고, 상기 완료율을 추정하는 단계는 상기 토폴로지 요소들 중 대응하는 것에 포함된 에지들의 활성 부분을 판별하는 단계를 포함하는, 방법.
  14. 제10항 내지 제13항 중 어느 한 항에 있어서,
    상기 인공 순환 신경 네트워크 내 에지들이 활성인지를 판별하기 위한 기준은, 주어진 에지에 대해:
    그 에지에 연결된 노드에 의해 스파이크가 생성되며;
    상기 스파이크는 상기 에지에 의해 수신 노드로 전송되며; 그리고
    상기 수신 노드는 상기 전송된 스파이크에 대한 응답을 생성할 것을 요청하는 것을 포함하는, 방법.
  15. 제14항에 있어서,
    상기 인공 순환 신경 네트워크 내 에지들이 활성인지 판별하는 기준은, 상기 스파이크가 생성되어 전송되고 상기 수신 노드가 응답을 생성하는 시간 윈도우를 포함하는, 방법.
  16. 제10항 내지 제13항 중 어느 한 항에 있어서,
    상기 인공 순환 신경 네트워크 내 에지들이 활성인지 판별하는 기준은, 에지 스파이크들에 의해 연결된 두 노드들의 시간 윈도우를, 그 두 노드들이 먼저 스파이크를 발생하는지 여부와 상관없이 포함하는, 방법.
  17. 제10항 내지 제16항 중 어느 한 항에 있어서,
    상기 인공 순환 신경 네트워크 내 에지들이 활성인지를 판별하기 위한 상이한 기준이 상이한 에지들에 적용되는, 방법.
  18. 제10항 내지 제17항 중 어느 한 항에 있어서,
    상기 인공 순환 신경 네트워크로부터 판독될 계산 결과를 정의하는 단계는 상기 인공 순환 신경 네트워크의 기능적 그래프들을 구성하는 단계를 포함하며,
    시간 빈(bin)들의 컬렉션을 정의하는 단계;
    상기 인공 순환 신경 네트워크의 복수의 기능적 그래프들을 생성하는 단계로, 각 기능적 그래프는 상기 시간 빈들 각자 내에서 활성인 노드들만을 포함하는, 생성 단계;
    상기 인공 순환 신경 네트워크의 기능적 그래프들 내 상기 에지들의 활성에 기초하여 상기 복수의 토폴로지 요소들을 정의하는 단계를 포함하는, 방법.
  19. 제18항에 있어서,
    상기 방법은 상기 기능적 그래프들 중 제1 기능 그래프에 정의된 제1 토폴로지 요소를 상기 기능적 그래프들 중 제2 기능 그래프에 정의된 제2 토폴로지 요소와 결합하는 단계를 더 포함하고, 상기 기능적 그래프들 상기 중 제1 및 제2 기능 그래프들은 상이한 시간 빈들 내에서 활성인 노드들을 포함하는, 방법.
  20. 제18항 또는 제19항에 있어서,
    상기 방법은 상기 계산 결과들 내에 하나 이상의 글로벌 그래프 메트릭들 또는 메타 정보를 포함하는 단계를 더 포함하는, 방법.
  21. 제10항 내지 제20항 중 어느 한 항에 있어서,
    상기 인공 순환 신경 네트워크로부터 판독될 계산 결과들을 정의하는 단계는:
    단일 입력의 처리 동안 그리고 입력들의 데이터세트에 걸쳐 각 토폴로지 요소가 활성인 횟수에 기초하여 상기 인공 순환 신경 네트워크로부터 판독될 복수의 토폴로지 요소들의 진부분집합을 선택하는 단계를 포함하는, 방법.
  22. 제21항에 있어서,
    상기 복수의 토폴로지 요소들의 진부분집합을 선택하는 단계는 입력들의 상기 데이터세트의 작은 부분에 대해서만 활성인 토폴로지 요소들 중 제1 토폴로지 요소를 선택하고 상기 토폴로지 요소들 중 상기 제1 토폴로지 요소를 비정상을 표시하는 것으로 지정하는 단계를 포함하는, 방법.
  23. 제21항에 있어서,
    상기 복수의 토폴로지 요소들의 진부분집합을 선택하는 단계는 상기 진부분집합이 입력들의 상기 데이터세트의 상이한 부분들에 대해 활성인 토폴로지 요소들의 미리 정의된 분포를 포함하는 것을 보장하기 위해 토폴로지 요소들을 선택하는 단계를 포함하는, 방법.
  24. 제10항 내지 제20항 중 어느 한 항에 있어서,
    상기 인공 순환 신경 네트워크로부터 판독될 계산 결과들을 정의하는 단계는:
    상기 토폴로지 요소들의 계층적 배열에 기초하여 상기 인공 순환 신경 네트워크로부터 판독될 복수의 토폴로지 요소들의 진부분집합을 선택하는 단계를 포함하며, 여기에서 상기 토폴로지 요소들 중 제1 토폴로지 요소는 루트 토폴로지 요소로서 식별되며 그리고 상기 루트 토폴로지 요소에 기여하는 토폴로지 요소들은 상기 진부분집합을 위해 선택하는, 방법.
  25. 제24항에 있어서,
    상기 방법은 상기 복수의 루트 토폴로지 요소를 식별하는 단계 그리고 상기 진부분집합을 위해 상기 루트 토폴로지 요소들에 기여하는 토폴로지 요소를 선택하는 단계를 더 포함하는, 방법.
KR1020227023826A 2019-12-11 2020-12-11 인공 순환 신경 네트워크 구성 및 운영 KR20220110297A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962946733P 2019-12-11 2019-12-11
US62/946,733 2019-12-11
PCT/EP2020/085716 WO2021116379A1 (en) 2019-12-11 2020-12-11 Constructing and operating an artificial recurrent neural network

Publications (1)

Publication Number Publication Date
KR20220110297A true KR20220110297A (ko) 2022-08-05

Family

ID=73835604

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020227023826A KR20220110297A (ko) 2019-12-11 2020-12-11 인공 순환 신경 네트워크 구성 및 운영
KR1020227023871A KR20220107300A (ko) 2019-12-11 2020-12-11 인공 순환 신경 네트워크 구성 및 운영
KR1020227023875A KR20220107303A (ko) 2019-12-11 2020-12-11 인공 순환 신경 네트워크 구성 및 운영
KR1020227023872A KR20220107301A (ko) 2019-12-11 2020-12-11 인공 순환 신경 네트워크 구성 및 운영

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020227023871A KR20220107300A (ko) 2019-12-11 2020-12-11 인공 순환 신경 네트워크 구성 및 운영
KR1020227023875A KR20220107303A (ko) 2019-12-11 2020-12-11 인공 순환 신경 네트워크 구성 및 운영
KR1020227023872A KR20220107301A (ko) 2019-12-11 2020-12-11 인공 순환 신경 네트워크 구성 및 운영

Country Status (6)

Country Link
US (4) US20230019839A1 (ko)
EP (4) EP4073716A1 (ko)
KR (4) KR20220110297A (ko)
CN (4) CN115066696A (ko)
TW (1) TWI779418B (ko)
WO (4) WO2021116407A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11615285B2 (en) 2017-01-06 2023-03-28 Ecole Polytechnique Federale De Lausanne (Epfl) Generating and identifying functional subnetworks within structural networks
US11663478B2 (en) 2018-06-11 2023-05-30 Inait Sa Characterizing activity in a recurrent artificial neural network
US11893471B2 (en) 2018-06-11 2024-02-06 Inait Sa Encoding and decoding information and artificial neural networks
US11972343B2 (en) 2018-06-11 2024-04-30 Inait Sa Encoding and decoding information
US11652603B2 (en) 2019-03-18 2023-05-16 Inait Sa Homomorphic encryption
US11569978B2 (en) 2019-03-18 2023-01-31 Inait Sa Encrypting and decrypting information
US11651210B2 (en) 2019-12-11 2023-05-16 Inait Sa Interpreting and improving the processing results of recurrent neural networks
US11816553B2 (en) 2019-12-11 2023-11-14 Inait Sa Output from a recurrent neural network
US11797827B2 (en) 2019-12-11 2023-10-24 Inait Sa Input into a neural network
US11580401B2 (en) 2019-12-11 2023-02-14 Inait Sa Distance metrics and clustering in recurrent neural networks
US20220202348A1 (en) * 2020-12-31 2022-06-30 X Development Llc Implementing brain emulation neural networks on user devices
US20220207354A1 (en) * 2020-12-31 2022-06-30 X Development Llc Analog circuits for implementing brain emulation neural networks
US20220358348A1 (en) * 2021-05-04 2022-11-10 X Development Llc Processing images captured by drones using brain emulation neural networks
US20230196541A1 (en) * 2021-12-22 2023-06-22 X Development Llc Defect detection using neural networks based on biological connectivity

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AR097974A1 (es) * 2013-10-11 2016-04-20 Element Inc Sistema y método para autenticación biométrica en conexión con dispositivos equipados con cámara
US9195903B2 (en) * 2014-04-29 2015-11-24 International Business Machines Corporation Extracting salient features from video using a neurosynaptic system
US9373058B2 (en) * 2014-05-29 2016-06-21 International Business Machines Corporation Scene understanding using a neurosynaptic system
JP6725547B2 (ja) * 2015-03-20 2020-07-22 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 人工ニューラルネットワークの関連性スコア割当て
US10885425B2 (en) * 2016-12-20 2021-01-05 Intel Corporation Network traversal using neuromorphic instantiations of spike-time-dependent plasticity
TWI640933B (zh) * 2017-12-26 2018-11-11 中華電信股份有限公司 基於類神經網路之兩段式特徵抽取系統及其方法
US20190378000A1 (en) * 2018-06-11 2019-12-12 Inait Sa Characterizing activity in a recurrent artificial neural network

Also Published As

Publication number Publication date
EP4073710A1 (en) 2022-10-19
EP4073716A1 (en) 2022-10-19
KR20220107301A (ko) 2022-08-02
TWI779418B (zh) 2022-10-01
US20230024152A1 (en) 2023-01-26
CN115136153A (zh) 2022-09-30
KR20220107303A (ko) 2022-08-02
EP4073709A1 (en) 2022-10-19
WO2021116407A1 (en) 2021-06-17
WO2021116379A1 (en) 2021-06-17
KR20220107300A (ko) 2022-08-02
CN115104107A (zh) 2022-09-23
WO2021116402A1 (en) 2021-06-17
US20230028511A1 (en) 2023-01-26
CN115104106A (zh) 2022-09-23
CN115066696A (zh) 2022-09-16
US20230019839A1 (en) 2023-01-19
US20230024925A1 (en) 2023-01-26
EP4073717A1 (en) 2022-10-19
WO2021116404A1 (en) 2021-06-17
TW202137072A (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
KR20220110297A (ko) 인공 순환 신경 네트워크 구성 및 운영
Zhang et al. Machine learning and software engineering
Mohanty et al. Web-services classification using intelligent techniques
Al-Helali et al. A new imputation method based on genetic programming and weighted KNN for symbolic regression with incomplete data
US11651216B2 (en) Automatic XAI (autoXAI) with evolutionary NAS techniques and model discovery and refinement
US20140324747A1 (en) Artificial continuously recombinant neural fiber network
US11232357B2 (en) Method for injecting human knowledge into AI models
WO2022096577A1 (en) Interpretable neural network
Mohan et al. Structure in reinforcement learning: A survey and open problems
Jones et al. Perceptually grounded self-diagnosis and self-repair of domain knowledge
Kinneer et al. Building reusable repertoires for stochastic self-* planners
Ceravolo et al. Tailoring Machine Learning for Process Mining
Vaidhyanathan Data-driven self-adaptive architecting using machine learning
Merkle et al. Context-aware composition of agent policies by Markov decision process entity embeddings and agent ensembles
Sabella Green Federated Learning: a data-centric approach in the cloud continuum
Mohan et al. Structure in Deep Reinforcement Learning: A Survey and Open Problems
US20210056440A1 (en) Synthetic genius machine and knowledge creation system
Varsou The DeepProbCEP system for Neuro-Symbolic Complex Event Recognition
조형헌 (A) study on hyperparameter optimization strategy utilizing training time in deep neural networks
Rayes A Visualization Technique for Multiagent Systems
Alqahtani Efficient Deep Learning for Plant Disease Classification in Resource Constrained Environment
Jones Compositional Classification