[go: up one dir, main page]

KR20160136381A - 신경 네트워크들에서의 차분 인코딩 - Google Patents

신경 네트워크들에서의 차분 인코딩 Download PDF

Info

Publication number
KR20160136381A
KR20160136381A KR1020167029200A KR20167029200A KR20160136381A KR 20160136381 A KR20160136381 A KR 20160136381A KR 1020167029200 A KR1020167029200 A KR 1020167029200A KR 20167029200 A KR20167029200 A KR 20167029200A KR 20160136381 A KR20160136381 A KR 20160136381A
Authority
KR
South Korea
Prior art keywords
value
neuron
neural network
activation value
input
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
KR1020167029200A
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 KR20160136381A publication Critical patent/KR20160136381A/ko
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • G06N3/0445
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • G06N3/0481
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

신경 네트워크에서의 차분 인코딩은, 뉴런에 대한 적어도 하나의 이전의 활성화 값에 적어도 부분적으로 기초하여 신경 네트워크에서의 뉴런에 대한 활성화 값을 예측하는 것을 포함한다. 인코딩은, 신경 네트워크에서의 뉴런에 대한 활성화 값과 예측된 활성화 값 사이의 차이에 기초하여 값을 인코딩하는 것을 더 포함한다.

Description

신경 네트워크들에서의 차분 인코딩{DIFFERENTIAL ENCODING IN NEURAL NETWORKS}
관련 출원에 대한 상호 참조
이 출원은 2014년 3월 24일 출원된 "DIFFERENTIAL ENCODING IN NEURAL NETWORKS" 라는 제목의 미국 가특허출원 제 61/969,747 호에 대해 35 U.S.C. § 119(e) 의 이익을 주장하고, 그것의 개시는 참조에 의해 그 전체가 본원에 명시적으로 통합된다.
기술 분야
본 개시물의 특정 양태들은 일반적으로 신경 시스템 엔지니어링에 관한 것이고, 보다 구체적으로는, 신경 네트워크들에서 차분 인코딩하기 위한 시스템들 및 방법들에 관한 것이다.
상호연결된 인공 뉴런들의 그룹 (즉, 뉴런 모델들) 을 포함할 수도 있는 인공 신경 네트워크는 계산 디바이스이거나 계산 디바이스에 의해 수행될 방법을 표현한다. 인공 신경 네트워크들은 생물학적 신경 네트워크들에 대응하는 구조 및/또는 기능을 가질 수도 있다. 그러나, 인공 신경 네트워크들은 소정의 애플리케이션들에 대해 혁신적이고 유용한 계산 기법들을 제공할 수도 있는데, 종래의 계산 기법들은 복잡하거나, 비현실적이거나, 부적합하다. 인공 신경 네트워크들은, 관찰들로부터 함수를 추론할 수 있기 때문에, 이러한 네트워크들은, 종래의 기법들에 의한 태스크 (task) 또는 데이터의 복잡성이 함수의 설계를 힘들게 만드는 애플리케이션들에서 특히 유용하다.
본 개시의 일 양태에 따라 신경 네트워크에서 차분 인코딩을 수행하는 방법은, 뉴런에 대한 적어도 하나의 이전의 활성화 값 (activation value) 에 기초하여 신경 네트워크에서 뉴런에 대한 활성화 값을 예측하는 단계를 포함한다. 이러한 방법은, 신경 네트워크에서 뉴런에 대한 예측된 활성화 값과 활성화 값 사이의 차이에 기초하여 값을 인코딩하는 단계를 더 포함한다.
본 개시의 일 양태에 따라 신경 네트워크에서 차분 인코딩을 수행하기 위한 장치는 메모리 및 메모리에 커플링된 적어도 하나의 프로세서를 포함하다. 프로세서(들)는, 뉴런에 대한 적어도 하나의 이전의 활성화 값에 기초하여 신경 네트워크에서의 뉴런에 대한 활성화 값을 예측하도록 구성된다. 프로세서(들)는 또한, 신경 네트워크에서의 뉴런에 대한 예측된 활성화 값과 활성화 값 사이의 차이에 기초하여 값을 인코딩하도록 구성된다.
본 개시의 다른 양태에 따라 스파이킹 신경 네트워크 (spiking neural network) 에서 차분 인코딩을 수행하기 위한 장치는, 뉴런에 대한 적어도 하나의 이전의 활성화 값에 기초하여 신경 네트워크에서의 뉴런에 대한 활성화 값을 예측하는 수단을 포함한다. 이러한 장치는, 신경 네트워크에서의 뉴런에 대한 예측된 활성화 값과 활성화 값 사이의 차이에 기초하여 값을 인코딩하는 수단을 더 포함한다.
본 개시의 다른 양태에 따라 스파이킹 신경 네트워크에서 차분 인코딩을 수행하기 위한 컴퓨터 프로그램 제품은 프로그램 코드를 그 위에 인코딩한 비-일시적 컴퓨터 판독가능 매체를 포함한다. 프로그램 코드는, 뉴런에 대한 적어도 하나의 이전의 활성화 값에 기초하여 신경 네트워크에서의 뉴런에 대한 활성화 값을 예측하기 위한 프로그램 코드를 포함한다. 프로그램 코드는 또한, 신경 네트워크에서의 뉴런에 대한 예측된 활성화 값과 활성화 값 사이의 차이에 기초하여 값을 인코딩하기 위한 프로그램 코드를 포함한다.
이것은 이하의 상세한 설명이 더 잘 이해되도록 하기 위해 본 개시물의 특징들 및 기술적 이점들을 다소 넓게 개괄하였다. 본 개시의 추가적인 특징들 및 이점들은 이하 설명될 것이다. 본 개시는 본 개시의 동일한 목적들을 수행하기 위해 다른 구조들을 변형 또는 설계하기 위한 기초로서 쉽게 이용될 수도 있음이 당해 기술분야에서 통상의 지식을 가진 자 (이하, '통상의 기술자' 라 함) 에 의해 이해되어야 한다. 이러한 균등적 구성들은 첨부된 청구항들에서 전개되는 바와 같은 본 개시의 교시들로부터 벗어나지 않음이 통상의 기술자에 의해 또한 인식되어야 한다. 본 개시의 특징인 것으로 믿어지는 창의적인 특징들은, 추가적인 목적들 및 이점들과 함께, 그것의 조직 및 동작 방법 양자로서, 첨부 도면들과 관련되어 고려될 때 이하의 설명으로부터 더 잘 이해될 것이다. 하지만, 도면들의 각각은 오직 예시 및 설명의 목적을 위해 제공되고, 본 개시의 제한들의 정의로서 의도되지 아니함이 분명하게 이해되어야 한다.
본 개시물의 특징들, 속성, 및 이점들은, 도면들과 연계하여 보는 경우, 하기에 제시된 상세한 설명으로부터 보다 분명해질 것이며, 도면들에서, 유사한 도면 부호들은 그에 대응하는 것을 식별한다.
도 1 은 본 개시의 특정 양태들에 따른 일 예시적인 뉴런들의 네트워크를 예시한다.
도 2 는 본 개시의 특정 양태들에 따른 계산 네트워크 (신경 시스템 또는 신경 네트워크) 의 프로세싱 유닛 (뉴런) 의 일 예를 예시한다.
도 3 은 본 개시의 특정 양태들에 따른 스파이크-타이밍 종속 가소성 (STDP) 곡선의 일 예를 예시한다.
도 4 는 본 개시의 특정 양태들에 따른 뉴런 모델의 거동을 정의하기 위한 양의 체제 및 음의 체제의 일 예를 예시한다.
도 5 는 본 개시의 특정 양태들에 따른 범용 프로세서를 이용하여 신경 네트워크를 설계하는 일 예시적인 구현을 예시한다.
도 6 은 본 개시의 특정 양태들에 따른, 메모리가 개별 분산된 프로세싱 유닛들과 인터페이싱될 수도 있는, 신경 네트워크를 설계하는 일 예시적인 구현을 예시한다.
도 7 은 본 개시의 특정 양태들에 따른, 분산된 메모리들 및 분산된 프로세싱 유닛들에 기초하여 신경 네트워크를 설계하는 일 예시적인 구현을 예시한다.
도 8 은 본 개시의 특정 양태들에 따른 신경 네트워크의 일 예시적인 구현을 예시한다.
도 9 는 본 개시의 양태들에 따라 차분 인코딩을 수행하는 방법을 나타낸다.
첨부된 도면들과 연계하여 하기에 설명되는 상세한 설명은, 여러 구성들의 설명으로서 의도된 것이며 본원에서 설명되는 개념들이 실시될 수도 있는 구성들만을 나타내도록 의도된 것은 아니다. 상세한 설명은 여러 개념들의 완전한 이해를 제공하기 위한 목적으로 특정 세부사항들을 포함한다. 그러나, 이들 개념들이 이들 특정 세부사항들 없이 실시될 수도 있음이 통상의 기술자에게는 명백할 것이다. 일부 사례들에서, 이러한 개념들을 모호하게 하는 것을 방지하기 위해 공지의 구조들 및 컴포넌트들이 블록도의 형태로 도시된다.
독립적으로 또는 본 개시물의 임의의 다른 양태들과 결합하여 구현되는지 여부에 따라, 본 사상들에 기초하여, 통상의 기술자는 본 개시물의 범위가 본원에 개시된 개시물들의 임의의 양태를 커버하고자 함을 이해해야할 것이다. 예를 들어, 제시된 임의의 개수의 양태들을 이용하여 장치가 구현될 수도 있거나 방법이 실시될 수도 있다. 또한, 본 개시물의 범위는 본원에 제시된 개시의 다양한 양태들에 더해 또는 그 외에 다른 구조, 기능성, 또는 구조와 기능성을 이용하여 실시되는 그러한 장치 또는 방법을 커버하고자 한다. 개시된 개시물의 임의의 양태는 청구항의 하나 이상의 요소들에 의해 구체화될 수도 있다.
단어 "예시적인" 은 본원에서 "일 예, 사례, 또는 실례의 역할을 하는" 것을 의미하기 위해 사용된다. "예시적" 으로 본원에서 설명된 임의의 실시형태는 반드시 다른 실시형태들보다 바람직하거나 이로운 것으로 해석될 필요는 없다.
특정 양태들이 본원에서 설명되지만, 이러한 양태들의 많은 변형예들 및 치환예들이 본 개시물의 범위 내에 속한다. 바람직한 양태들의 일부 이익들 및 이점들이 언급되었지만, 본 개시물의 범위는 특정 이익들, 이용들, 또는 목적들로 제한되고자 하지 않는다. 오히려, 본 개시의 양태들은 상이한 기술들, 시스템 구성들, 네트워크들, 및 프로토콜들에 널리 적용되고자 하며, 본 개시의 양태들 중 일부는 도면들에서 그리고 다음의 바람직한 양태들의 설명에서 예로서 예시된다. 상세한 설명 및 도면들은 제한하는 것이기 보다는 단지 본 개시물의 예시일 뿐이며, 본 개시물의 범위는 첨부된 청구항들 및 그의 등가물들에 의해 정의된다.
예시적인 신경 시스템, 트레이닝, 및 동작
도 1 은 본 개시물의 특정 양태들에 따른 다수의 레벨들의 뉴런 (neuron) 들을 갖는 일 예시적인 인공 신경 시스템 (100) 을 도시한다. 신경 시스템 (100) 은 시냅스 연결들 (104) (즉, 피드-포워드 연결들) 의 네트워크를 통해 다른 레벨의 뉴런들 (106) 에 접속되는 일 레벨의 뉴런들 (102) 을 가질 수도 있다. 단순함을 위해, 오직 2 개의 레벨들의 뉴런들만이 도 1 에 도시되나, 보다 적거나 보다 많은 레벨들의 뉴런들이 신경 시스템에 존재할 수도 있다. 뉴런들 중 일부 뉴런은 측면 연결들을 통해 동일한 계층의 다른 뉴런들에 연결될 수도 있음에 유의해야 한다. 또한, 뉴런들 중 일부는 피드백 연결들을 통해 이전 계층의 뉴런에 다시 연결될 수도 있다.
도 1 에 도시된 바와 같이, 레벨 (102) 에서의 각각의 뉴런은 이전 레벨의 뉴런들 (도 1 에 도시 생략) 에 의해 생성될 수도 있는 입력 신호 (108) 를 수신할 수도 있다. 신호 (108) 는 레벨 (102) 의 뉴런의 입력 전류를 나타낼 수도 있다. 이러한 전류는 뉴런 막에 축적되어 막 전위 (membrane potential) 를 충전할 수도 있다. 막 전위가 임계 값에 도달하는 경우, 뉴런은 다음 레벨의 뉴런들 (예를 들어, 레벨 106) 로 전달되도록 발화되어 출력 스파이크를 생성할 수도 있다. 일부 모델링 접근법들에서, 뉴런은 다음 레벨의 뉴런들로 신호를 계속 전달할 수도 있다. 이러한 신호는 통상적으로 막 전위의 함수이다. 그러한 거동은 하기에 설명된 것들과 같은 아날로그 및 디지털 구현들을 포함하여, 하드웨어 및/또는 소프트웨어로 에뮬레이션 또는 시뮬레이션될 수 있다.
생물학적 뉴런들에서, 뉴런이 발화하는 경우에 생성된 출력 스파이크는 활동 전위라고 지칭된다. 이러한 전기 신호는 상대적으로 빠르고, 과도하고, 신경 자극적이며, 100 mV 의 진폭 및 약 1 ms 의 지속기간을 갖는다. 일련의 연결된 뉴런들을 갖는 신경 시스템의 특정 실시형태 (예를 들어, 도 1 에서 일 레벨의 뉴런들에서 다른 레벨의 뉴런들로의 스파이크들의 전달) 에서, 모든 활동 전위는 기본적으로 동일한 진폭 및 지속기간을 가지고, 따라서, 신호에서의 정보는 진폭에 의해서 보다는, 주파수 및 스파이크들의 수, 또는 스파이크들의 시간에 의해서만 나타내어질 수도 있다. 활동 전위에 의해 이송되는 정보는 스파이크, 스파이킹된 뉴런, 및 다른 스파이크나 스파이크들에 대한 스파이크의 시간에 의해 결정될 수도 있다. 스파이크의 중요성은, 하기에 설명된 바와 같이, 뉴런들 사이의 연결에 적용된 가중치에 의해 결정될 수도 있다.
일 레벨의 뉴런들로부터 다른 레벨의 뉴런들로의 스파이크들의 전달은, 도 1 에 도시된 바와 같이, 시냅스 연결들 (또는 간략하게 "시냅스들 (synapses)") 의 네트워크 (104) 를 통해 달성될 수도 있다. 시냅스들 (104) 에 대해, 레벨 102 의 뉴런들은 시냅스-전 뉴런들이라고 여겨질 수도 있고, 레벨 106 의 뉴런들은 시냅스-후 뉴런들로 여겨질 수도 있다. 시냅스들 (104) 은 레벨 102 뉴런들로부터 출력 신호들 (즉, 스파이크들) 을 수신하며, 조정가능한 시냅스 가중치들 (
Figure pct00001
) 에 따라 그러한 신호들을 스케일링할 수도 있으며, 여기서 P 는 레벨 102 와 레벨 106 의 뉴런들 사이의 시냅스 연결들의 전체 개수이고, i 는 뉴런 레벨의 표시자이다. 도 1 의 예에서, i 는 뉴런 레벨 102 를 나타내고 i+1 은 뉴런 레벨 106 을 나타낸다. 또한, 스케일링된 신호들은 레벨 106 에서의 각각의 뉴런의 입력 신호로서 결합될 수도 있다. 레벨 106 에서의 매 뉴런은 대응하는 결합된 입력 신호에 기초하여 출력 스파이크들 (110) 을 생성할 수도 있다. 출력 스파이크들 (110) 은 다른 시냅스 연결들의 네트워크 (도 1 에 도시 생략) 를 이용하여 다른 레벨의 뉴런들로 전달될 수도 있다.
생물학적 시냅스들은 시냅스-후 뉴런들에서 흥분성 또는 억제성 (과분극) 활동들을 중재할 수 있고 또한 신경 신호들을 증폭시키는 역할을 할 수 있다. 흥분성 신호들은 막 전위를 탈분극한다 (즉, 휴지 전위에 대해 막 전위를 증가시킨다). 임계치 위로 막 전위를 탈분극하도록 소정의 시간 기간 내에 충분한 흥분성 신호들이 수신되면, 활동 전위가 시냅스-후 뉴런에서 발생한다. 반면에, 억제 신호들은 일반적으로 막 전위를 과분극한다 (즉, 낮춘다). 억제 신호들은, 충분히 강하다면, 흥분성 신호들의 합에 반대로 작용하여 막 전위가 임계치에 도달하는 것을 방지할 수 있다. 시냅스 흥분에 반대로 작용하는 것에 더해, 시냅스 억제는 자발적 활성 뉴런들에 대해 강력한 제어를 발휘할 수 있다. 자발적 활성 뉴런은, 예를 들어, 그것의 동역학 또는 피드백으로 인해, 추가적인 입력 없이 스파이크하는 뉴런을 지칭한다. 이러한 뉴런들에서 활동 전위들의 자발적 생성을 억압함으로써, 시냅스 억제는 뉴런에서 발화하는 패턴을 형성할 수 있으며, 이는 일반적으로 조각 (sculpturing) 이라고 지칭된다. 다양한 시냅스들 (104) 은, 원하는 거동에 따라, 흥분성 시냅스 또는 억제 시냅스의 임의의 조합으로 작용할 수도 있다.
신경 시스템 (100) 은 범용 프로세서, 디지털 신호 프로세서 (digital signal processor; DSP), 주문형 반도체 (application specific integrated circuit; ASIC), 필드 프로그램가능 게이트 어레이 (field programmable gate array; FPGA) 혹은 다른 프로그램가능한 로직 디바이스 (programmable logic device; PLD), 이산 게이트 혹은 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 그것들의 임의의 조합에 의해 에뮬레이션될 수도 있다. 신경 시스템 (100) 은 전기 회로에 의해 에뮬레이션되고, 이미지 및 패턴 인식, 머신 러닝, 모터 제어 등과 같은 광범위한 애플리케이션들에 활용될 수도 있다. 신경 시스템 (100) 에서 각각의 뉴런은 뉴런 회로로서 구현될 수도 있다. 출력 스파이크를 개시하는 임계 값으로 충전되는 뉴런 막은, 예를 들어, 뉴런 막을 통해 흐르는 전류를 통합하는 커패시터로서 구현될 수도 있다.
일 양태에서, 커패시터는 뉴런 회로의 전류 통합 디바이스로서 제거될 수도 있고, 보다 작은 멤리스터 (memristor) 소자가 커패시터 대신에 이용될 수도 있다. 이러한 접근법은 뉴런 회로들, 뿐만 아니라 전류 통합기들로서 대형 커패시터들이 활용되는 다양한 다른 애플리케이션들에 적용될 수도 있다. 또한, 시냅스들 (104) 의 각각은 멤리스터 소자에 기초하여 구현될 수도 있으며, 여기서 시냅스 가중치 변화들은 멤리스터 저항의 변화들과 관련될 수도 있다. 나노미터 피처 크기의 멤리스터들로, 뉴런 회로 및 시냅스들의 영역이 실질적으로 감소될 수도 있으며, 이는 매우 큰 크기의 신경 시스템 하드웨어 구현예의 구현을 보다 실현가능하게 할 수도 있다.
신경 시스템 (100) 을 에뮬레이션하는 신경 프로세서의 기능은 시냅스 연결들의 가중치들에 의존할 수도 있으며, 이는 뉴런들 사이의 연결들의 강도들을 제어할 수도 있다. 시냅스 가중치들은 전력 다운된 후에 프로세서의 기능을 보호하기 위해 비휘발성 메모리에 저장될 수도 있다. 일 양태에서, 시냅스 가중치 메모리는 메인 신경 프로세서 칩과는 별도인 외부 칩에 구현될 수도 있다. 시냅스 가중치 메모리는 대체가능한 메모리 카드로서 신경 프로세서 칩과는 별도로 패키징될 수도 있다. 이는 신경 프로세서에 다양한 기능들을 제공할 수도 있으며, 여기서 특정 기능은 신경 프로세서에 현재 접속된 메모리 카드에 저장된 시냅스 가중치들에 기초할 수도 있다.
도 2 는 본 개시물의 특정 양태들에 따른 계산 네트워크 (예를 들어, 신경 시스템, 또는 신경 네트워크) 의 프로세싱 유닛 (예를 들어, 뉴런 또는 뉴런 회로) (202) 의 일 예시적인 도면 (200) 을 도시한다. 예를 들어, 뉴런 (202) 은 도 1 로부터의 레벨 102 및 레벨 106 의 뉴런들 중 임의의 뉴런에 대응할 수도 있다. 뉴런 (102) 은 다수의 입력 신호들 (2041-204N) 을 수신할 수도 있으며, 다수의 입력 신호들은 신경 시스템의 외부의 신호들, 또는 동일한 신경 시스템의 다른 뉴런들에 의해 생성된 신호들, 또는 양자 모두일 수도 있다. 입력 신호는 전류, 컨덕턴스, 전압, 실수값 및/또는 복소수 값일 수도 있다. 입력 신호는 고정-소수점 또는 부동-소수점 표현을 갖는 수치 값을 포함할 수도 있다. 이러한 입력 신호들은 조정가능한 시냅스 가중치들 (2061-206N(W1-WN)) 에 따라 신호들을 스케일링하는 시냅스 연결들을 통해 뉴런 (202) 에 전달될 수도 있으며, 여기서 N 은 뉴런 (202) 의 입력 연결들의 전체 개수일 수도 있다.
뉴런 (202) 은 스케일링된 입력 신호들을 결합하고 결합되어진 스케일링된 입력들을 이용해 출력 신호 (208) (즉, 신호 Y) 를 생성할 수도 있다. 출력 신호 (208) 는 전류, 컨덕턴스, 전압, 실수값 및/또는 복소수 값일 수도 있다. 출력 신호는 고정-소수점 또는 부동-소수점 표현을 갖는 수치 값일 수도 있다. 출력 신호 (208) 는 그 다음에 동일한 신경 시스템의 다른 뉴런들에 입력 신호로서, 또는 동일한 뉴런 (202) 에 입력 신호로서, 또는 신경 시스템의 출력으로서 전달될 수도 있다.
프로세싱 유닛 (뉴런) (202) 은 전기 회로에 의해 에뮬레이션될 수도 있고, 프로세싱 유닛의 입력 및 출력 연결들은 시냅스 회로들을 갖는 전기 연결부들에 의해 에뮬레이션될 수도 있다. 프로세싱 유닛 (202) 및 프로세싱 유닛의 입력 및 출력 연결들은 또한 소프트웨어 코드에 의해 에뮬레이션될 수도 있다. 프로세싱 유닛 (202) 이 또한 전기 회로에 의해 에뮬레이션될 수도 있는 반면, 프로세싱 유닛의 입력 및 출력 연결들은 소프트웨어 코드에 의해 에뮬레이션될 수도 있다. 일 양태에서, 계산 네트워크에서 프로세싱 유닛 (202) 은 아날로그 전기 회로일 수도 있다. 다른 양태에서, 프로세싱 유닛 (202) 은 디지털 전기 회로일 수도 있다. 또 다른 양태에서, 프로세싱 유닛 (202) 은 아날로그 및 디지털 컴포넌트들 양자 모두를 갖는 혼합-신호 전기 회로를 포함할 수도 있다. 계산 네트워크는 앞서 언급된 형태들 중 임의의 형태로 프로세싱 유닛들을 포함할 수도 있다. 그러한 프로세싱 유닛들을 이용하는 계산 네트워크 (신경 시스템 또는 신경 네트워크) 는 광범위한 애플리케이션들, 예컨대, 이미지 및 패턴 인식, 머신 러닝, 모터 제어 등에 활용될 수도 있다.
신경 네트워크를 트레이닝하는 과정 중에, 시냅스 가중치들 (예를 들어, 도 1 로부터의 가중치들 (
Figure pct00002
) 및/또는 도 2 로부터의 가중치들 (2061-206N)) 은 랜덤 값들로 초기화되고 학습 규칙에 따라 증가되거나 감소될 수도 있다. 학습 규칙의 예들은, 이로 제한되지는 않으나, 스파이크-타이밍-종속-가소성 (spike-timing-dependent plasticity; STDP) 학습 규칙, Hebb 규칙, Oja 규칙, BCM (Bienenstock-Copper-Munro) 규칙 등을 포함한다는 것을 통상의 기술자는 이해할 것이다. 특정 양태들에서, 가중치들은 2 개의 값들 중 하나로 결정하거나 수렴할 수도 있다 (즉, 가중치들의 양봉 분배). 이러한 결과는 각각의 시냅스 가중치에 대한 비트들의 수를 감소시키고, 시냅스 가중치들을 저장하는 메모리로부터의/메모리로의 판독 및 기록의 속도를 증가시키고, 시냅스 메모리의 전력 및/또는 프로세서 소비를 감소시키는데 활용될 수도 있다.
시냅스 유형
신경 네트워크들의 하드웨어 및 소프트웨어 모델들에서, 시냅스 관련 함수들의 프로세싱은 시냅스 유형에 기초할 수 있다. 시냅스 유형들은 비소성 시냅스들 (가중치 및 지연의 변화 없음), 가소성 시냅스들 (가중치가 변할 수도 있다), 구조적 지연 가소성 시냅스들 (가중치 및 지연이 변할 수도 있다), 완전 가소성 시냅스들 (가중치, 지연, 및 연결성이 변할 수도 있다), 및 그들의 변형들 (예를 들어, 지연은 변할 수도 있으나, 가중치 또는 입력에서는 변화가 없을 수도 있다) 일 수도 있다. 다수의 유형들의 이점은 프로세싱이 세분될 수 있다는 것이다. 예를 들어, 비소성 시냅스들은 가소성 기능들이 실행되는 것 (또는 그러한 기능들이 완료되기를 기다리는 것) 을 이용하지 않을 수도 있다. 유사하게, 지연 및 가중치 가소성은, 차례 차례로 또는 병렬로, 함께 또는 별도로 동작할 수도 있는 동작들로 세분될 수도 있다. 상이한 유형들의 시냅스들은 적용되는 상이한 가소성 유형들의 각각에 대해 상이한 룩업 테이블들 또는 공식들 및 파라미터들을 가질 수도 있다. 따라서, 방법들은 시냅스의 유형에 대한 관련 테이블들, 공식들, 또는 파라미터들에 액세스할 것이다.
스파이크-타이밍 종속 구조 가소성이 시냅스 가소성과 독립적으로 실행될 수도 있다는 사실의 추가적인 의미들이 있다. 구조 가소성 (즉, 지연 변화의 양) 이 전-후 스파이크 시간 차이의 직접적인 함수일 수도 있기 때문에, 구조적 가소성은 가중치 크기에 변화가 없는 경우 (예를 들어, 가중치가 최소 또는 최대 값에 도달한 경우, 또는 일부 다른 이유로 인해 변하지 않은 경우) 일지라도 구조 가소성이 실행될 수도 있다. 대안으로, 구조적 가소성은 가중치 변화 양의 함수로 또는 가중치들 혹은 가중치 변화들의 한계들과 관련되는 조건들에 기초하여 설정될 수도 있다. 예를 들어, 시냅스 지연은 가중치 변화가 발생하는 경우에만, 또는 가중치가 제로에 도달하나 최고 값에 있지 않은 경우에만 변할 수도 있다. 그러나, 이러한 프로세스들이 병렬로 되어 메모리 액세스들의 수 및 중첩을 감소시킬 수 있도록 독립적인 기능들을 가지는 것이 이로울 수 있다.
시냅스 가소성의 결정
신경 가소성 (또는 간단하게 "가소성") 은 새로운 정보, 감각 자극, 개발, 손상, 또는 장애에 응답하여 시냅스 연결들 및 거동을 변화시키는 뇌에서의 뉴런들 및 신경 네트워크들의 능력이다. 가소성은 생물학 뿐만 아니라 컴퓨터 신경 과학 및 신경 네트워크들에서의 학습 및 기억에 있어 중요하다. (예를 들어, Hebb 의 이론에 따른) 시냅스 가소성, 스파이크-타이밍-종속 가소성 (STDP), 비-시냅스 가소성, 활동-종속 가소성, 구조 가소성, 및 항상성 가소성과 같은 다양한 형태들의 가소성이 연구되었다.
STDP 는 뉴런들 사이의 시냅스 연결들의 강도를 조정하는 학습 프로세스이다. 연결 강도들은 특정 뉴런의 출력 및 수신된 입력 스파이크들의 상대적 타이밍 (즉, 활동 전위) 에 기초하여 조정된다. STDP 프로세스 하에서, 장기 강화 (long-term potentiation; LTP) 는 소정의 뉴런에 대한 입력 스파이크가, 평균적으로, 그 뉴런의 출력 스파이크 바로 전에 발생하려고 하면 발생할 수도 있다. 그 다음에, 그 특정 입력은 다소 더 강하게 된다. 반면에, 입력 스파이크가, 평균적으로, 출력 스파이크 바로 후에 발생하려고 하면, 장기 저하 (long-term depression; LTD) 가 발생할 수도 있다. 그 다음에, 그 특정 입력은 다소 약하게 되고, 따라서, 명칭이 "스파이크-타이밍-종속 가소성" 이다. 결과적으로, 시냅스-후 뉴런의 흥분을 야기할 수도 있는 입력들은 장래에 기여할 가능성이 더 크게 되고, 한편 시냅스-후 스파이크를 야기하지 않는 입력들은 장래에 기여할 가능성이 더 작아지게 된다. 프로세스는 연결들의 초기 셋트의 서브셋트가 남아있을 때까지 계속되고, 한편 모든 다른 것들의 영향은 사소한 레벨로 감소된다.
뉴런은 일반적으로 그것의 입력들 중 많은 입력이 짧은 기간 내에 발생하는 경우에 출력 스파이크를 생성하기 때문에 (즉, 출력을 야기하기에 충분하게 누적된다), 통상적으로 남아있는 입력들의 서브셋트는 시간에 상관되는 경향이 있는 것들을 포함한다. 또한, 출력 스파이크 전에 발생하는 입력들이 강화되기 때문에, 가장 빠른 충분한 상관의 누적 표시를 제공하는 입력들이 결국 뉴런에 대한 최종 입력이 될 수도 있다.
STDP 학습 규칙은 시냅스-전 뉴런의 스파이크 시간 (t pre ) 과 시냅스-후 뉴런의 스파이크 시간 (t post ) 사이의 시간 차이의 함수 (즉, t = t post - t pre ) 로서 시냅스-전 뉴런을 시냅스-후 뉴런에 연결하는 시냅스의 시냅스 가중치에 효과적으로 적응될 수도 있다. 통상적인 STDP 의 공식은 시간 차이가 양 (positive) 이면 (시냅스-전 뉴런이 시냅스-후 뉴런 전에 발화한다) 시냅스 가중치를 증가시키고 (즉, 시냅스를 강력하게 하고), 시간 차이가 음 (negative) 이면 (시냅스-후 뉴런이 시냅스-전 뉴런 전에 발화한다) 시냅스 가중치를 감소시키는 (즉, 시냅스를 억제하는) 것이다.
STDP 프로세스에서, 시간 경과에 따른 시냅스 가중치의 변화는 통상적으로 다음에서 주어진 지수함수형 감쇠 (exponential decay) 를 이용하여 달성된다:
Figure pct00003
, (1)
여기서
Figure pct00004
Figure pct00005
은 각각 양 및 음의 시간 차이에 대한 시간 상수들이고,
Figure pct00006
Figure pct00007
은 대응하는 스케일링 크기들이고,
Figure pct00008
는 양의 시간 차이 및/또는 음의 시간 차이에 적용될 수도 있는 오프셋이다.
도 3 은 STDP 에 따른 시냅스-전 스파이크와 시냅스-후 스파이크의 상대적 타이밍의 함수로서 시냅스 가중치 변화의 일 예시적인 도면 (300) 을 도시한다. 시냅스-전 뉴런이 시냅스-후 뉴런 전에 발화하면, 그래프 (300) 의 302 부분에서 도시된 바와 같이, 대응하는 시냅스 가중치가 증가될 수도 있다. 이러한 가중치 증가는 시냅스의 LTP 라고 지칭될 수 있다. LTP 의 양이 시냅스-전 스파이크 시간과 시냅스-후 스파이크 시간 사이의 차이의 함수로서 거의 기하급수적으로 감소할 수도 있다는 것이 그래프 부분 302 로부터 관찰될 수 있다. 그래프 (300) 의 부분 304 에 도시된 바와 같이, 역순 (reverse order) 의 발화는 시냅스 가중치를 감소시켜, 시냅스의 LTD 를 야기할 수도 있다.
도 3 에서의 그래프 (300) 에 도시된 바와 같이, 음의 오프셋 (
Figure pct00009
) 이 STDP 그래프의 LTP (원인) 부분 302 에 적용될 수도 있다. x-축의 교차 지점 (306) (y=0) 은 계층 i-1 로부터의 원인 입력들에 대한 상관관계를 고려하여 최대 시간 지연과 일치하게 구성될 수도 있다. 프레임-기반 입력 (즉, 스파이크들 또는 펄스들을 포함하는 특정 지속기간의 프레임의 형태인 입력) 의 경우에, 오프셋 값 (
Figure pct00010
) 은 프레임 경계를 반영하도록 계산될 수 있다. 프레임에서의 제 1 입력 스파이크 (펄스) 는 직접적으로 시냅스-후 전위에 의해 모델링됨으로써 또는 신경 상태에 대한 영향의 관점에서 시간이 경과함에 따라 감쇠하는 것으로 고려될 수도 있다. 프레임에서의 제 2 입력 스파이크 (펄스) 가 특정 시간 프레임과 상관되거나 관련있다고 고려되면, 관련 시간들에서의 값이 상이할 수도 있도록 (일 프레임보다 큰 것에 대해서는 음, 그리고 일 프레임보다 작은 것에 대해서는 양) 프레임 전후의 관련 시간들은 해당 시간 프레임 경계에서 분리되고 STDP 곡선의 하나 이상의 부분들을 오프셋함으로써 가소성의 면에서 상이하게 취급될 수도 있다. 예를 들어, 음의 오프셋 (
Figure pct00011
) 은 프레임보다 큰 전-후 시간에서 곡선이 실제로 제로 아래로 가고 따라서 LTP 대신에 LTD 의 부분이도록 LTP 를 오프셋하도록 설정될 수도 있다.
뉴런 모델들 및 동작
유용한 스파이킹 뉴런 모델을 설계하기 위한 몇몇 일반적인 원리들이 있다. 훌륭한 뉴런 모델은 2 개의 계산 체제들: 일치 검출 및 함수적 계산의 측면에서 풍부한 잠재적 거동을 가질 수도 있다. 또한, 훌륭한 뉴런 모델은 시간 코딩을 가능하게 하도록 2 개의 요소들을 가져야 한다: 입력들의 도착 시간은 출력 시간에 영향을 주고 일치 검출은 좁은 시간 윈도우를 가질 수 있다. 마지막으로, 계산상으로 매력있도록, 훌륭한 뉴런 모델은 연속적인 시간에서의 폐쇄형 솔루션 및 근처의 어트랙터들 및 안장 점들을 포함하는 안정적인 거동을 가질 수도 있다. 다시 말해서, 유용한 뉴런 모델은 실용적이고, 풍부하고, 사실적이고, 생물학적으로-일정한 거동들을 모델링하는데 이용되는 것뿐만 아니라 엔지니어 및 역 엔지니어 신경 회로들에서 이용될 수 있는 것이다.
뉴런 모델은 입력 도착, 출력 스파이크와 같은 이벤트들, 또는 내부적이거나 외부적인 다른 이벤트에 의존할 수도 있다. 풍부한 거동 레퍼토리를 달성하기 위해서는, 복잡한 거동들을 보일 수 있는 상태 머신이 바람직할 수도 있다. (만약 있다면) 입력 기여와 별도인, 이벤트 자체의 발생이 상태 머신에 영향을 주고 이벤트에 후속하는 동역학을 제약할 수 있다면, 시스템의 장래 상태는 상태 및 입력의 함수일 뿐만 아니라, 상태, 이벤트, 및 입력의 함수이다.
일 양태에서, 뉴런 (n) 은 다음의 동역학에 의해 통제되는 막 전압 (
Figure pct00012
) 을 갖는 스파이킹 누출-통합-및-발화 뉴런으로 모델링될 수도 있다:
Figure pct00013
, (2)
여기서
Figure pct00014
Figure pct00015
는 파라미터들이고,
Figure pct00016
은 시냅스-전 뉴런 (m) 을 시냅스-후 뉴런 (n) 에 연결하는 시냅스에 대한 시냅스 가중치이고,
Figure pct00017
은 뉴런 (n) 의 세포체 (soma) 에 도착할 때까지
Figure pct00018
에 따라 수지상 (dendritic) 또는 축삭 (axonal) 지연될 수도 있는 뉴런 (m) 의 스파이킹 출력이다.
시냅스-후 뉴런에 대한 충분한 입력이 확립된 때로부터 시냅스-후 뉴런이 실제로 발화할 때까지 지연이 있다는 것에 유의해야 한다. Izhikevich 의 단순 모델과 같은 동적 스파이크 뉴런 모델에서, 탈분극화 임계치 (
Figure pct00019
) 와 피크 스파이크 전압 (
Figure pct00020
) 사이에 차이가 있으면 시간 지연이 초래될 수도 있다. 예를 들어, 단순 모델에서, 전압 및 복구에 대한 미분 방정식들의 쌍에 의해 뉴런 세포체 동역학들이 통제될 수 있다, 즉:
Figure pct00021
, (3)
Figure pct00022
, (4)
여기서, v 는 막 전위이고, u 는 막 복구 변수이고, k 는 막 전위 (v) 의 시간 스케일을 설명하는 파라미터이고, a 는 복구 변수 u 의 시간 스케일을 설명하는 파라미터이고, b 는 막 전위 (v) 의 하위-임계 변동들에 대한 복구 변수 u 의 민감도를 설명하는 파라미터이고, v r 은 막 휴지상태 전위이고, I 는 시냅스 전류이고, C 는 막의 커패시턴스이다. 이러한 모델에 따르면, 뉴런은
Figure pct00023
인 경우에 스파이킹하는 것으로 정의된다.
Hunzinger 콜드 (Cold) 모델
Hunzinger 콜드 뉴런 모델은 풍부하며 다양한 신경 거동들을 복제할 수 있는 최소 이중-체제 스파이킹 선형 동적 모델이다. 모델의 1- 또는 2-차원 선형 동역학은 2 개의 체제들을 가질 수 있으며, 여기서 시간 상수 (및 연결) 는 체제에 의존할 수 있다. 하위-임계 체제에서, 규칙에 의해 음인 시간 상수는 일반적으로 생물학적으로-일관성있는 선형 방식으로 휴지상태로 셀을 반환하도록 작동하는 누설 채널 동역학을 나타낸다. 규칙에 의해 양인 상위-임계 체제에서 시간 상수는 일반적으로 셀이 스파이킹하도록 구동하나 스파이크-생성에서 지연을 초래하는 누설 방지 채널 동역학을 반영한다.
도 4 에 도시된 바와 같이, 모델 (400) 의 동역학은 2 개 (또는 그 보다 많은) 체제들로 나누어질 수도 있다. 이러한 체제들은 (LIF 뉴런 모델과 혼동되지 않게, 누설-통합-및-발화 (leaky-integrate-and-fire; LIF) 체제라고도 상호교환가능하게 지칭되는) 임의 체제 (402) 및 (ALIF 뉴런 모델과 혼동되지 않게, 누설-방지-통합-및-발화 (anti-leaky-integrate-and-fire; ALIF) 체제라고도 상호교환가능하게 지칭되는) 양의 체제 (404) 라고 불릴 수도 있다. 음의 체제 (402) 에서, 상태는 장래 이벤트 시에 휴지상태 (v _ ) 쪽으로 향하는 경향이 있다. 이러한 음의 체제에서, 모델은 일반적으로 시간 입력 검출 속성들 및 다른 하위-임계 거동을 보인다. 양의 체제 (404) 에서, 상태는 스파이킹 이벤트 (v s ) 쪽으로 향하는 경향이 있다. 이러한 양의 체제에서, 모델은 후속하는 입력 이벤트들에 따라 스파이킹하는데 지연을 초래하는 것과 같은 계산 속성들을 보인다. 이러한 2 개의 체제들로의 동역학의 이벤트들 및 분리의 면에서의 동역학의 공식은 모델의 기본적인 특성들이다.
(상태들 (vu) 에 대한) 선형 이중-체제 양방향-차원 동역학은 다음과 같은 규칙에 의해 정의될 수도 있다:
Figure pct00024
(5)
Figure pct00025
(6)
여기서
Figure pct00026
r 은 연결에 대한 선형 변환 변수들이다.
심볼
Figure pct00027
는, 특정 체제에 대한 관계를 논의하거나 표현하는 경우, 각각 음의 체제 및 양의 체제에 대해 부호 "-" 또는 "+" 를 갖는 심볼
Figure pct00028
를 대체하도록 규칙에 따라 동역학 체제를 지칭하기 위해 본원에서 이용된다.
모델 상태는 막 전위 (전압) v 및 복구 전류 (recovery current) u 에 의해 정의된다. 기본 형태에서, 체제는 기본적으로 모델 상태에 의해 결정된다. 미묘하지만 중요한 정확도 및 일반 정의의 양태들이 있으나, 지금은, 전압 (v) 이 임계치 (v + ) 보다 높은 경우 양의 체제 (404) 에 있고 그렇지 않으면 음의 체제 (402) 에 있는 모델을 고려한다.
체제-의존적인 시간 상수는 음의 체제 시간 상수인
Figure pct00029
및 양의 체제 시간 상수인
Figure pct00030
를 포함한다. 복구 전류 시간 상수 (
Figure pct00031
) 는 통상적으로 체제와 독립적이다. 편의를 위해, 음의 체제 시간 상수 (
Figure pct00032
) 는 통상적으로 감쇠를 반영하도록 음의 양 (negative quantity) 으로 명시되어 전압 진전에 대한 동일한 표현이 양의 체제에 대해 이용될 수도 있으며, 여기서 지수 및
Figure pct00033
는 일반적으로 양이며
Figure pct00034
도 그럴 것이다.
2 개의 상태 엘리먼트들의 동역학은 무연속변이 (null-cline) 들로부터 상태들을 오프셋하는 변환들에 의한 이벤트들에서 연결될 수도 있으며, 여기서 변환 변수들은 다음과 같다:
Figure pct00035
(7)
Figure pct00036
(8)
여기서
Figure pct00037
은 파라미터들이다.
Figure pct00039
에 대한 2 개의 값들은 2 개의 체제들에 대한 기준 전압들에 대한 베이스이다. 파라미터
Figure pct00040
는 베이스 전압이고, 막 전위는 일반적으로 음의 체제에서
Figure pct00041
쪽으로 감쇠한다. 파라미터
Figure pct00042
는 음의 체제에 대한 베이스 전압이고, 막 전위는 양의 체제에서 일반적으로
Figure pct00043
로부터 멀어지는 경향이 있다.
vu 에 대한 무연속변이들은 각각 변환 변수들
Figure pct00044
r 의 음으로 주어진다. 파라미터
Figure pct00045
u 무연속변이의 경사도를 제어하는 스케일 인자이다. 파라미터
Figure pct00046
은 통상적으로
Figure pct00047
와 동일하게 설정된다. 파라미터 는 양 체제들에서 v 무연속변이들의 경사도를 제어하는 저항 값이다.
Figure pct00049
시간-상수 파라미터들은 각각의 체제에서 별도로 기하급수적 감쇠들 뿐만 아니라 무연속변이 경사도들도 제어한다.
모델은 전압 (v) 이 값 (
Figure pct00050
) 에 도달하는 경우에 스파이킹하도록 정의될 수도 있다. 후속하여, 상태는 (스파이크 이벤트와 동일한 것일 수도 있는) 리셋 이벤트에서 리셋될 수도 있다:
Figure pct00051
(9)
Figure pct00052
(10)
여기서
Figure pct00053
Figure pct00054
는 파라미터들이다. 리셋 전압 (
Figure pct00055
) 은 통상적으로
Figure pct00056
로 설정된다.
순간적인 연결의 원리에 의해, (단일 지수 항을 갖는) 상태 뿐만 아니라 특정 상태에 도달하기 위해 시간에 대해 폐쇄 형태 해가 가능하다. 폐쇄 형태 상태 해들은 다음과 같다:
Figure pct00057
(11)
Figure pct00058
(12)
따라서, 모델 상태는 입력 (시냅스-전 스파이크) 또는 출력 (시냅스-후 스파이크) 과 같은 이벤트들 시에만 업데이트될 수도 있다. 동작들은 또한 (입력 또는 출력이 있는지 여부에 상관없이) 임의의 특정 시간에 수행될 수도 있다.
또한, 순간적인 연결 원리에 의해, 반복적 기법들 또는 수치 방법들 (예를 들어, Euler 수치 방법) 없이도 특정 상태에 도달하기 위한 시간이 미리 결정될 수도 있도록 시냅스-후 스파이크의 시간이 예상될 수도 있다. 이전 전압 상태 (
Figure pct00059
) 를 고려하면, 전압 상태 (
Figure pct00060
) 에 도달되기까지의 시간 지연은 다음과 같이 주어진다:
Figure pct00061
(13)
전압 상태 (
Figure pct00062
) 가
Figure pct00063
에 도달하는 시점에 스파이크가 발생하는 것으로 정의되면, 전압이 주어진 상태 (
Figure pct00064
) 에 있는 시간에서부터 측정된 바와 같은 스파이크가 발생하기 전까지의 시간의 양 또는 상대적 지연에 대한 폐쇄형 해는 다음과 같다:
Figure pct00065
(14)
여기서
Figure pct00066
은 통상적으로 파라미터
Figure pct00067
로 설정되나, 다른 변형들이 가능할 수도 있다.
모델 동역학의 위의 정의들은 모델이 양의 체제 또는 음의 체제에 있는지 여부에 의존한다. 언급된 바와 같이, 연결 및 체제 (
Figure pct00068
) 는 이벤트들 시에 계산될 수도 있다. 상태 전파의 목적으로, 체제 및 연결 (변환) 변수들은 마지막 (이전) 이벤트의 시점에서의 상태에 기초하여 정의될 수도 있다. 스파이크 출력 시간을 후속하여 예상하기 위한 목적으로, 체제 및 연결 변수는 다음 (현재) 이벤트 시점에서의 상태에 기초하여 정의될 수도 있다.
콜드 모델, 및 시뮬레이션, 에뮬레이션, 시간 모델을 실행하는 여러 가지의 가능한 구현들이 있다. 이는, 예를 들어, 이벤트-업데이트, 단계-이벤트 업데이트, 및 단계-업데이트 모드들을 포함한다. 이벤트 업데이트는 (특정 순간들에서) 이벤트들 또는 "이벤트 업데이트" 에 기초하여 상태들이 업데이트되는 업데이트이다. 단계 업데이트는 모델이 간격들 (예를 들어, 1 ms) 에서 업데이트되는 경우의 업데이트이다. 이는 반드시 반복적인 방법들 또는 수치 방법들을 이용할 필요는 없다. 이벤트-기반 구현이 또한 오직 단계들에서 또는 단계들 사이에서 이벤트가 발생하는 경우에만 모델을 업데이트함으로써 또는 "단계-이벤트" 업데이트에 의해 단계-기반 시뮬레이터에서 제한된 시간 분해능에서 가능하다.
신경 네트워크들에서의 차분 인코딩
본 개시의 양태들은 신경 네트워크들에서의 차분 인코딩에 지향된다.
일부 양태들에서, 신경 네트워크들은 오브젝트 분류, 스피치 인식, 및 수기 인식을 포함하는 많은 추론 태스크들 (tasks) 을 학습하거나 해결한다. 많은 애플리케이션들에서, 신경 네트워크들은 감각 정보의 연속적인 스트림으로부터 "감각 (sense)" 을 만든다. 예를 들어, 비제한적인 방식으로, 로봇 (또는 스마트폰) 은 이미지들 (즉, 이미지 분류) 의 시퀀스에 대해 하이-레벨 피처들 (features) 또는 카테고리 라벨들을 추출하기 위해 신경 네트워크를 이용할 수도 있다. 이러한 시나리오들에서, 신경 네트워크는 입력 데이터 스트림의 시간적 구조를 이용할 수 있다. 데이터 스트림은 인스턴스별로 많이 변화하지 않거나 예측가능한 방식들로, 예컨대, 모션 예측들로 변화하기 때문에, 본 개시는 각 인스턴스에서 모든 데이터 값을 전송하기 보다는 차분적 또는 차이 결과들을 전송할 수도 있다. 본 개시는 또한 머신 학습 네트워크들을 위한 차분 인코딩에 적용될 수도 있다. 예를 들어, 이미지에 대해 SIFT (Scale-Invariant Feature Transform) 피처들을 계산하는 것은 전의 이미지들에 대한 차이들에 기초하여 SIFT 값들 및 로케이션들의 차분 인코딩을 이용할 수 있거나 모션 기반 순방향 추정치들에 기초할 수도 있다.
신경 네트워크들은 뉴런들의 계층들을 가지고, 여기서, 하부 계층은 원시 데이터를 나타내고, 상위 계층은 피처들을 나타낸다. 하부 계층은 네트워크에서 더 낮은 계층일 수도 있고, 하부 계층으로부터 출력들을 수신하는 계층은 네트워크에서 더 높은 계층일 수도 있다. 예를 들어, "하부 (bottom)" 계층은 일부 사전-처리 또는 초기 피처 추출을 가졌던 중간의 숨겨진 레벨일 수도 있고, "상부 (upper)" 계층은 "하부" 계층으로부터 입력들을 수신하는 계층일 수도 있다. 시간적 구조를 갖는 감각 스트림을 추론할 때, 각각의 뉴런은 그 뉴런에 대한 활성화들의 이력 (history) 에 기초하여 활성화를 예측할 수도 있다. 이러한 경우들에서, 활성화 값을 다른 뉴런들로 전파하는 것은 이력에 기초한 예측된 값과 실제 활성화 값 사이의 차이 (또는 에러) 를 전송하는 것보다 덜 효율적이다.
예측이 얼마나 양호한지에 의존하여, 신경 네트워크의 레벨들 사이의 통신은 감소된다. 뉴런들 사이의 통신이 바이너리 (즉, 스파이크 또는 비-스파이크) 인 경우에는, 본 개시에 따른 차이/에러 근사는 차분 인코딩을 통해 더 적은 스파이크들을 전파시킨다. 예측된 값들이 뉴런들의 계층에서 100% 정확도에 접근함에 따라, 더 높은 계층들에서의 뉴런들에서의 계산을 위한 더 적은 필요성이 존재한다. 뉴런들이 비-바이너리인 경우에는, 차분 인코딩은 활성화 값들의 풀 셋트를 전송하는 것에 비교될 때 동일한 레벨의 정밀도를 달성하기 위해 더 적은 비트들을 이용한다.
본 개시는 예측된 활성화 값과 활성화 값 사이, 신경 네트워크에서의 계층들 사이의 차이일 수도 있는 인코딩된 값들을 전송할 수도 있다. 또한, 신경 네트워크에서의 계층들 사이에서 전송되고 있는 정보를 변경하기 위한 본 개시의 일 양태에서의 경우가 존재할 수도 있다. 활성화 값은 차이 값일 수도 있고, 또는, 활성화 값 그 자체일 수도 있고, 또는, 다른 데이터일 수도 있다. 활성화 값, 활성화 값에서의 차이, 또는 값이 무엇인지에 대한 결정은 일반적으로 다수의 팩터들 (factors) 에 기초할 수도 있다. 이들 팩터들은, 활성화 값 또는 활성화 값들에서의 차이의 비트들의 수, 신경 네트워크의 계층들 사이에 임의의 데이터가 전송되는지 여부를 결정하기 위해 사용되는 임계 값, 활성화 값을 결정하기 위해 사용되는 활성화 함수, 입력 뉴런에 대한 입력의 수신, 활성화 값의 비트 폭, 또는 다른 팩터들을 포함한다. 예를 들어, 임계치는 비트들의 수에 기초하여 설정될 수 있다. 즉, 특정 뉴런에 대한 통신을 위해 이용가능한 비트들의 수에 의존하는 특정 값을 차이가 초과할 때 그 차이가 전송된다.
활성화 값, 및 예측된 활성화 값은 하나 이상의 활성화 함수들을 이용하여 결정될 수도 있다. 활성화 함수들의 하나 이상은 비-선형 함수일 수도 있다. 활성화 함수는 필터를 이용하여 구현될 수도 있고, 이 필터는 또한 활성화 값의 인코딩 및/또는 차분적으로 인코딩된 활성화 값을 결정할 수도 있다.
신경 네트워크 내의 데이터의 전송 또는 다른 분배는 연속적으로, 주기적으로, 또는 간헐적으로 이루어질 수도 있다. 즉, 상태 정보는 네트워크에 걸쳐 주기적으로 (간헐적으로) 동기화될 수도 있다. 또한, 활성화 값의 인코딩 및/또는 차분적으로 인코딩된 활성화 값은 입력 데이터의 수신으로부터 지연될 수도 있다.
비록 차분 인코딩은 신경 네트워크 내에서 송신되는 데이터의 양을 감소시킬 수도 있지만, 본 개시는 또한, 설계 옵션들이 전송될 데이터를 인코딩 또는 결정하기 위한 계산들을 감소시키는 한편 네트워크 내에서 보다 많은 데이터를 전송하는 것을 포함할 수도 있는 것을 생각한다. 예를 들어, 활성화 값에 대한 어떤 예측들도 전송되지 않고, 데이터가 수신됨에 따라 시스템을 통해 실제 데이터가 단지 포워딩될 수도 있다. 이러한 접근법은 큰 데이터 스루풋 및 적은 계산을 초래한다. 다양한 신경 네트워크 설계들을 만족시키기 위해 신경 네트워크 내에서 데이터 송신과 데이터 계산 사이에 설계 트레이드-오프들이 이루어질 수도 있다.
신경 네트워크 내에서, 일부 뉴런들에 대한 활성화 함수의 일부는 신경 네트워크의 동작 동안 "모드 (mode)" 를 변경할 수도 있다. 또한, 일부 뉴런들은 항상 하나의 모드에서 동작할 수도 있는 한편, 다른 뉴런들은 또 다른 모드에서 동작한다. 예를 들어, 일부 뉴런들은 오직 차분적으로 인코딩된 데이터를 전송할 수도 있는 한편, 다른 뉴런들은 전체 활성화 값을 전송할 수도 있다. 일부 뉴런들은 동작 동안 모드들을 스위칭할 수도 있다, 예컨대, 소정 포인트까지 전체 활성화 값을 전송하고, 그 다음에, 그 포인트 후에 차분적으로 인코딩된 활성화 값들을 전송한다. 신경 네트워크 내에서 송신되고 있는 데이터에서의 변화는, 신경 네트워크 내의 데이터의 분류, 또는, 이용가능한 계산 전력, 송신 신뢰도, 신경 네트워크의 사이즈, 또는 다른 제약들을 포함하는 다른 팩터들에 기초할 수도 있다.
도 5 는 본 개시의 특정 양태들에 따라 범용 프로세서 (502) 를 이용하는 전술한 차분 인코딩의 예시의 구현 (500) 을 나타낸다. 변수들 (신경 신호들), 시냅스 가중치들, 계산 네트워크 (신경 네트워크) 와 연관된 시스템 파라미터들, 지연들, 및 주파수 빈 정보 노드 상태 정보, 바이어스 가중치 정보, 접속 가중치 정보, 및/또는 발화 레이트 정보는 메모리 블록 (504) 에 저장될 수도 있고, 한편 범용 프로세서 (502) 에서 실행되는 명령들은 프로그램 메모리 (506) 로부터 로딩될 수도 있다. 본 개시의 일 양태에서, 범용 프로세서 (502) 내로 로딩된 명령들은, 노드에서 입력 이벤트들을 수신하는 것, 중간 값들을 획득하기 위해 입력 이벤트들에 바이어스 가중치들 및 접속 가중치들을 적용하는 것, 중간 값들에 기초하여 노드 상태를 결정하는 것, 및 확률적 포인트 프로세스에 따라 출력 이벤트들을 생성하기 위해 노드 상태에 기초하여 사후 확률 (posterior probability) 을 나타내는 출력 이벤트 레이트를 계산하는 것을 위한 코드를 포함할 수도 있다.
도 6 은 상술한 차분 인코딩의 예시적인 구현예 (600) 를 예시하며, 여기서 메모리 (602) 는 본 개시물의 특정 양태들에 따라 계산 네트워크 (신경 네트워크) 의 개개의 (분산된) 프로세싱 유닛들 (신경 프로세서들) (606) 과 상호접속 네트워크 (604) 를 통해 인터페이싱될 수 있다. 변수들 (신경 신호들), 시냅스 가중치들, 계산 네트워크 (신경 네트워크) 지연들과 연관된 시스템 파라미터들, 주파수 빈 정보, 노드 상태 정보, 바이어스 가중치 정보, 접속 가중치 정보, 및/또는 발화 레이트 정보는 메모리 (602) 에 저장될 수도 있고, 상호접속 네트워크 (604) 의 접속(들)을 통해 메모리 (602) 로부터 각각의 프로세싱 유닛 (신경 프로세서) (606) 으로 로딩될 수도 있다. 본 개시의 일 양태에서, 프로세싱 유닛 (606) 은, 노드에서 입력 이벤트들을 수신하고, 중간 값들을 획득하기 위해 입력 이벤트들에 바이어스 가중치들 및 접속 가중치들을 적용하며, 중간 값들에 적어도 부분적으로 기초하여 노드 상태를 결정하고, 그리고 확률적 포인트 프로세스에 따라 출력 이벤트들을 생성하기 위해 노드 상태에 기초하여 사후 확률을 나타내는 출력 이벤트 레이트를 계산하도록 구성될 수도 있다.
도 7 은 상술한 차분 인코딩의 예시적인 구현예 (700) 를 예시한다. 도 7 에 도시된 바와 같이, 하나의 메모리 뱅크 (702) 는 계산 네트워크 (신경 네트워크) 의 하나의 프로세싱 유닛 (704) 과 직접적으로 인터페이싱될 수도 있다. 각각의 메모리 뱅크 (702) 는 변수들 (신경 신호들), 시냅스 가중치들, 및/또는 대응하는 프로세싱 유닛 (신경 프로세서) (704) 지연들과 연관된 시스템 파라미터들, 주파수 빈 정보, 노드 상태 정보, 바이어스 가중치 정보, 접속 가중치 정보, 및/또는 발화 레이트 정보를 저장할 수도 있다. 본 개시의 일 양태에서, 프로세싱 유닛 (704) 은, 노드에서 입력 이벤트들을 수신하고, 중간 값들을 획득하기 위해 입력 이벤트들에 바이어스 가중치들 및 접속 가중치들을 적용하며, 중간 값들에 적어도 부분적으로 기초하여 노드 상태를 결정하고, 그리고 확률적 포인트 프로세스에 따라 출력 이벤트들을 생성하기 위해 노드 상태에 기초하여 사후 확률을 나타내는 출력 이벤트 레이트를 계산하도록 구성될 수도 있다.
도 8 은 본 개시의 특정 양태들에 따른 신경 네트워크 (800) 의 일 예시적인 구현을 도시한다. 도 8 에 도시된 바와 같이, 신경 네트워크 (800) 는 본원에서 설명된 방법들의 다양한 동작들을 수행할 수도 있는 다수의 로컬 프로세싱 유닛들 (802) 을 가질 수도 있다. 각각의 로컬 프로세싱 유닛 (802) 은 로컬 상태 메모리 (804) 및 신경 네트워크의 파라미터들을 저장하는 로컬 파라미터 메모리 (806) 를 포함할 수도 있다. 또한, 로컬 프로세싱 유닛 (802) 은 로컬 모델 프로그램을 저장하기 위한 로컬 (뉴런) 모델 프로그램 (local model program; LMP) 메모리 (808), 로컬 학습 프로그램을 저장하기 위한 로컬 학습 프로그램 (local learning program; LLP) 메모리 (810), 및 로컬 접속 메모리 (813) 를 가질 수도 있다. 또한, 도 8 에 도시된 바와 같이, 각각의 로컬 프로세싱 유닛 (802) 은 로컬 프로세싱 유닛 (802) 의 로컬 메모리들에 대한 구성들을 제공하기 위한 구성 프로세서 유닛 (814) 과, 그리고 로컬 프로세싱 유닛들 (802) 사이의 라우팅을 제공하는 라우팅 접속 프로세싱 유닛 (816) 과 인터페이싱될 수도 있다.
본 개시물의 특정 양태들에 따르면, 각각의 로컬 프로세싱 유닛 (802) 은 원하는 신경 네트워크의 하나 이상의 기능적 피처들에 기초하여 신경 네트워크의 파라미터들을 결정하고, 결정된 파라미터들이 더 적응되고, 튜닝되고, 업데이트됨으로써 원하는 기능적 특징들을 향해 하나 이상의 기능적 특징들을 개발하도록 구성될 수도 있다.
본 개시의 일 양태에서, 신경 네트워크들에서의 예측적 차분 인코딩을 위한 일반적인 프레임워크는 다음과 같다. 인공 뉴런은 입력 x(t) 을 수신하고 출력 y(t) 을 방출하며, 여기서 t 는 시간을 나타낸다. 출력 y(t) 는 시그모이드 함수와 같은, x(t) 의 비-선형 함수일 수도 있다:
y(t) = σ(x(t)) = ex/(1 + ex). (15a)
또는 정류기 비선형성 함수
y(t) = max(0, x(t)) (15b)
뉴런은, 출력 y(t) 이 1 인 확률로서, 시그모이드 표현, 또는 다른 표현을 이용함으로써 확률적으로 바이너리 출력 y(t) 을 방출할 수도 있다.
입력 x(t) 은 다른 뉴런들의 출력의 가중된 선형 결합일 수도 있다:
xi(t) = Σwijyj(t) (16)
여기서, wij 는 i 번째 및 j 번째 뉴런들에 대한 가중치를 나타내고, j 는 i 번째 뉴런에 연결된 모든 뉴런들의 인덱스이다.
본 개시의 일 양태는 예측적 차분 인코딩 프레임워크로 하여금 임의의 인공 뉴런 모델로 작업하는 것을 허용한다. 인공 뉴런들에 상태 변수를 부가하는 것은 뉴런으로 하여금 이력 로그를 유지하는 것을 허용한다. 함수 s(t) 는 상태-변수 또는 상태-변수들을 표시한다. 각각의 뉴런은 상태 변수들을 통한 이력을 파악하고 있고, 그것이 막 수신하려고 하는 입력 x^(t) 및 그것이 막 방출하려고 하는 출력
Figure pct00069
을 예측한다. 예측들은 뉴런들 사이의 통신의 양을 감소시킨다 (즉, 각 뉴런은 이제 오직 예측
Figure pct00070
에서의 에러만을 방출하고 실제 출력 y(t) 은 방출하지 않는다). 상태 변수는 결정론적 모델들에 대해 입력 이력을 또한 확률적 모델들의 경우에 출력 이력을 저장한다.
뉴런들은 예측에서의 에러를 방출하기 때문에, 그들은 이제 식 (16) 에서와 같이 x(t) 대신에 예측 z(t) 에서의 에러들의 가중된 결합을 수신한다:
Figure pct00071
z(t) 가 입력 x(t) 의 예측에서의 에러와 정확하게 동일한 경우에는, x(t) 는 정확히
Figure pct00072
에 의해 재구성된다.
Figure pct00073
를 만족시키기 위한 조건은
Figure pct00074
이다.
식 (16) 에서, z(t) 는 뉴런이 무엇을 수신하는 것인지인 반면에 δx(t) 는 우리가 뉴런이 무엇을 수신하기를 원하는지이다. 식 (19) 가 만족되는 경우에는, 예측적 차분 인코딩 방법은 정확하지만 실제 출력 값들을 방출하는 표준 방법에 비해 대안적인 구현이다. 비록 식 (19) 가 만족되지 않는 경우에도, 예측적 차분 인코딩 방법은 근사적인 구현을 제공한다.
동일한 선형 함수들이 x(t) 및 y(t) 를 예측하기 위해 사용되는 경우에는, 식 (19) 가 만족된다. 본 개시의 예측적 차분 인코딩 방법은 대안적이지만 정확한 구현 방법이 된다. 예측이 선형적인 경우에는, 근사는 정확해야 한다. 예측이 비-선형적인 경우에, 근사는 정확하지 않을 수도 있다.
뉴런은 전체 이력 또는 오직 부분적인 이력을 저장할 수 있다. L 이 뉴런이 저장하는 이력의 양을 나타내도록 한다 (즉, 뉴런은 과거 L 시간 단계들에 걸쳐 입력들 및 출력들을 파악하고 있다). 이것은 상태 변수 함수를 만든다:
Figure pct00075
뉴런 입력-출력 관계가 결정론적인 경우에 (즉, y(t) 가 x(t) 의 결정론적 함수인 경우에), 오직 입력 이력만을 저장하는 것으로 충분하다. 결정론적 알고리즘은 임의의 주어진 입력에 대해 고유 출력 값을 갖는 수학적 함수를 계산하고, 그 알고리즘은 이 특정 값을 출력으로서 생성한다.
입력-출력 관계가 RBMs (Restricted Boltzmann Machines) 또는 DBNs (Deep Belief Nets) 에서와 같이 확률적인 경우에, 출력 이력이 또한 저장된다. 결정론적 프로세스와는 달리 확률적 프로세스는 다소 불확실성을 갖는다: 비록 초기 조건 (또는 시작 포인트) 이 알려진 경우에도, 프로세스가 전개될 수도 있는 수개의 (종종 무한히 많은) 방향들이 존재한다.
본 개시는 또한 지역적 및/또는 글로벌 레벨로 차분 인코딩 프레임워크를 이용하는 것을 고려한다. 예를 들어, 이미지의 모션 벡터 추정은 전체 이미지에 대해 또는 이미지의 지역적 부분들에 대해 평균 벡터 변화를 결정하기 위해 사용될 수 있다. 글로벌 또는 로컬 정보는 뉴런들의 전부에 제공될 수도 있고, 그 다음, 시냅스 전 및 시냅스 후 뉴런 양자는 더 나은 예측들을 만들기 위해 이들 지역적/글로벌 차이들을 이용할 수 있을 것이다. 또한, 시냅스 후 뉴런들은 차분 피드백을 제공할 수도 있다. 이러한 양태에서, 시냅스 전 뉴런들은 상태 추정을 위해 시냅스-후 뉴런 차분 출력들을 이용할 수도 있다. 이것은 신경 네트워크에서의 계층들 사이의 통신의 양을 감소시킬 수도 있다.
이력 s(t) 이 주어지면, 각 뉴런은 선형 필터를 이용하여 시간 t 에서 입력 및 출력을 예측한다:
Figure pct00076
이 예측적 프레임워크 내에서, 식 (19) 가 만족된다. 필터 계수들 α1, α2, ... , αL 은 시간에 걸쳐 학습되거나 선험적으로 선택될 수 있다. 예를 들어, 그리고 비제한적 방식으로, L 이 1 이고 α1=1 (즉, 각 뉴런은 최선의 예측들로서 이전 시간 주기 입력 및 출력을 이용) 인 경우에, 그러면:
Figure pct00077
다른 예로서, L=2, α1=2, α2=-1 (즉, 각 뉴런은 입력이 선형적 방식으로 변화하고 있다고 가정) 인 경우에, 그러면:
Figure pct00078
Figure pct00079
식 (19) 는 상이한 뉴런들이 상이한 예측 필터들을 이용하는 경우에 만족되지 않는다. 본 개시의 차분 인코딩 방법으로 정확한 예측에 도달하기 위해, 전체 신경 네트워크에 걸쳐 동일한 필터를 이용하는 것이 바람직할 수도 있다.
각 뉴런이 x^(t) 및 y^(t) 를 각각 예측하기 위해 상이한 x-필터들 및 y-필터들을 이용할 수도 있다. 이들 예측 필터들은 상이한 뉴런들에 대해 동일하거나 상이할 수 있다. '실제 입력 (actual input)' 의 뉴런의 재구성이 정확하기 위해서는, x-필터는 모든 팬-인 (fan-in) 뉴런들의 모든 y-필터들과 매칭하여야 한다. 매치를 보장하기 위한 한 가지 방법은 네트워크 전체에 걸쳐 동일한 예측 필터를 이용하는 것이다. 계층화된 신경 네트워크에서, 매칭을 달성하기 위한 다른 방법은 하나의 계층에서 모든 뉴런들에 대해 동일한 x-필터를 이용하고 이전 계층에서의 모든 뉴런들에 대해 동일한 y-필터를 이용하는 것이다.
이들 예측 필터들은 고정되거나 적응적일 수 있고, 선형 또는 비-선형적일 수 있다. 비-선형 필터들의 경우에, 각 입력 시냅스에 대한 예측이 소망된다. 선형적 필터들에 대해, 조인트 (joint) 예측들이 제공될 수 있다. 하나의 구성에서, 베이스라인 솔루션은 모든 뉴런들에 대해 단일의 고정된 필터를 포함한다. 또 다른 솔루션은 필터 계수 값들을 온라인으로 추정한다. 또 다른 양태에서, 필터들은, 실내 대 실외 또는 정적 대 이동에 대한 필터들의 셋트와 같이, 상이한 환경들에 대해 구성되거나 심지어 최적화될 수도 있다. 이들 필터들은 사전-정의된 필터들의 코드북을 가지는 것, 환경을 결정하기 위한 방법, 및 환경에 기초하여 특정 필터를 선택하는 것에 의해 결정될 수도 있다. 또 다른 양태에서, 필터들은 분류기 (즉, 신경 네트워크) 의 출력에 기초하여 선택된다.
하나의 구성에서, 사전-정의된 필터들은 형상이 지수적이다. 지수적 형상은 감쇠 팩터를 가지고, 이에 의해, 보다 많은 델타 업데이트들을 강제한다. 하나의 예에서, a.9 계수가 공급된다. 지수적 형상은 불안정성 및 장기 에러 전파를 감소시키거나 심지어 제거할 수도 있다. 지수적 형상은 또한, 비-제로 입력들이 수신될 때에민 업데이트들이 발생하도록 미래 값에 대한 원-스텝 (one-step) 업데이트들을 허용한다. 감쇠 팩터와 비트 레이트 간에 트레이드오프가 존재함에 유의하여야 한다. 즉, 더 높은 감쇠 팩터는 보다 많은 통신들을 초래할 것인 반면, 더 낮은 감쇠 레이트는 더 적은 송신들을 초래한다. 하나의 양태에서, 상이한 뉴런들은 지수적 분포에 대해 상이한 감쇠 팩터들을 이용할 수도 있다. 다른 양태에서, 필터들은 온라인으로 학습된다. 예를 들어, 로봇은 그것이 빠르게 이동하고 있는 경우에 높은 감쇠 팩터를 이용하고 그것이 정지하여 서있거나 느리게 이동하고 있는 경우에 낮은 감쇠 팩터를 이용할 수도 있다.
차분 인코딩은 뉴런들 사이의 통신을 위한 자원들에 대해 절약한다. 하지만, 차분 인코딩은 오버헤드를 또한 부가한다. 추가적인 메모리는 상태 변수 또는 입력/출력 값들의 이력을 저장한다. 추가적인 계산은 예측들 및 예측들에서의 에러를 계산한다. 증가의 양은 지수적 필터 형상을 이용함으로써 다소 감소될 수도 있다. 따라서, 차분 인코딩의 혜택들 대 추가적인 오버헤드 사이에 트레이드-오프가 존재한다.
차분 인코딩은 오직 뉴런들의 서브셋트에 대해 채용될 수도 있다. 예를 들어, 신경 네트워크가 다수의 코어들 (또는 머신들) 을 이용하여 시뮬레이션되고, 상이한 코어들은 상이한 뉴런들을 시뮬레이션하는 시나리오를 고려하자. 통신의 비용은 코어들 또는 머신들에 걸쳐 통신하는 그들 뉴런들 (즉, 이들 뉴런들은 다른 코어들에서의 뉴런들을 접속하는 입력 출력 시냅스들을 갖는다) 에 대해 더 높다. 이 시나리오에서, 차분 인코딩은 오직 코어들 또는 머신들을 가로질러 통신하고 있는 뉴런들에 대해서만 채용될 수 있다. 더욱이, 자주 변화하는 뉴런들은 차분 인코딩을 위한 좋은 후보들이 아닐 수도 있다. 상이한 뉴런들은 또한 통신을 위해 상이한 비트 폭들 또는 심지어 상이한 필터들을 이용할 수 있다. 또 다른 양태에서, 뉴런들은 모드들을 변경할 수 있고, 여기서, 하나의 모드에서 그들은 차분적 업데이트들을 전송하는 반면 다른 모드에서 그들은 실제 결과들을 전송한다. 모드 변경은 트리거에 기초, 예를 들어, 분류 결과들 (즉, 신경 네트워크로부터의 출력) 이 만족적인지 여부에 기초할 수 있다.
각 뉴런이 입력 및 출력을 예츨하는 대신에, 뉴런들의 집합이 함께 그들의 집합적인 입력들 및 출력들을 예측할 수 있다. 구체적으로, 계층화된 신경 네트워크에서, 뉴런들의 각각의 계층은 함께 벡터들 입력들 및 출력들의 그들의 조인트 이력에 기초하여 벡터 입력 및 벡터 출력을 예측할 수 있다. 선형적 예측적 프레임워크는 스칼라 필터 계수들을 매트릭스들로 대체함으로써, 벡터 입력/출력 시나리오로 자연스럽게 확장된다, 즉, α1, α2, ... , αL 은 이제 매트릭스들이다.
조인트 예측이 개별 예측에 비해 이점을 갖는 예시적인 애플리케이션은 비디오에 대한 추론의 비젼 애플리케이션이다. 사람 또는 물체가 그렇지 않으면 정적인 환경에서 이동하고 있는 시나리오를 고려하자. DCN (Deep Convolutional Network) 와 같은 계층화된 신경 네트워크가 사용되고, 여기서, 계층에서의 뉴런들의 집합은 공간적 응답 맵을 나타낸다. 이 경우에, 필터 매트릭스들은 이미지마다 모션 벡터들에 기초하여 선택된다. 이들 모션 벡터들은 비디오 압축 문헌으로부터 이용가능한 표준 모션 추정 기법들로부터 상향식으로 획득될 수 있다. 또는 모션 벡터들은 DCN 으로부터 하향식으로 획득될 수 있다. DCN 은 오브젝트들 및 이미지들에서의 그들의 로케이션들을 예측하기 위해 훈련될 수 있다. 뉴런은 모션 벡터들과 같은 추가적인 글로벌 입력들, 및 그것이 정보를 전송하고 있는 뉴런들로부터의 피드백에 기초하여 예측할 수 있다.
도 9 는 본 개시의 양태들에 따라, 신경 네트워크에서 차분 인코딩을 수행하는 방법 (900) 을 나타낸다. 블록 (902) 에서, 뉴런에 대한 적어도 하나의 이전의 활성화 값에 기초하여 신경 네트워크에서의 뉴런에 대해 활성화 값이 예측된다. 블록 (904) 에서, 신경 네트워크에서의 뉴런에 대해 예측된 활성화 값과 활성화 값 사이의 차이에 기초한 값이 인코딩된다.
하나의 구성에서, 차분 인코딩을 위한 방법은 뉴런에 대해 활성화 값을 예측하는 수단 및 에러를 인코딩하는 수단을 포함한다. 하나의 양태에서, 예측 수단 및/또는 인코딩 수단은 범용 프로세서 (502), 프로그램 메모리 (506), 메모리 블록 (504), 메모리 (602), 상호접속 네트워크 (604), 프로세싱 유닛 (704), 로컬 프로세싱 유닛들 (802), 및 인용된 기능들을 수행하도록 구성된 라우팅 접속 프로세싱 유닛들 (816) 일 수도 있다. 다른 구성에서, 전술한 수단은 전술한 수단에 의해 인용된 기능들을 수행하도록 구성된 임의의 모듈 또는 임의의 장치일 수도 있다.
본 개시물에서 설명된 신경 네트워크는 다중-계층 퍼셉트론 네트워크, 딥 컨볼루셔널 네트워크, 딥 빌리프 네트워크, 순환형 신경 네트워크 등을 포함하는 임의의 유형의 신경 네트워크일 수도 있다. 또한, 비록 이력에 기초하여 그 자신에 대해 입력들 및 출력들을 예측하고 그 뉴런의 출력들에서 에러들만 전파하는 뉴런에 대해 설명되었지만, 뉴런은 그 자신의 입력들 및 출력들을 예측하기 위해 다른 뉴런들의 에러들 및 예측들을 이용할 수도 있다.
상술된 방법들의 다양한 동작들은 대응하는 기능들을 수행할 수 있는 임의의 적합한 수단으로 수행될 수도 있다. 수단은 주문형 집적 회로 (ASIC), 또는 프로세서를 포함하여 다양한 하드웨어 및/또는 소프트웨어 컴포넌트(들) 및/또는 모듈(들)을 포함하나, 이로 제한되지는 않는다. 일반적으로, 도면들에 대응하는 동작들이 있는 경우, 이러한 동작들은 대응하는 상대 수단 플러스 동일한 번호를 갖는 기능 컴포넌트들을 가질 수도 있다.
본원에서 이용되는 바와 같이, 용어 "결정하기" 는 매우 다양한 액션들을 포괄한다. 예를 들어, "결정하기" 는 산출하기, 계산하기, 프로세싱하기, 도출하기, 조사하기, 검색하기 (예를 들어, 테이블, 데이터베이스, 또는 다른 데이터 구조에서 검색하기), 확인하기 등을 포함할 수도 있다. 또한, "결정하기" 는 수신하기 (예를 들어, 정보 수신하기), 액세스하기 (예를 들어, 메모리 내의 데이터에 액세스하기) 등을 포함할 수도 있다. 또한, "결정하기" 는 해결하기, 선택하기, 고르기, 설정하기 등을 포함할 수도 있다.
본원에서 이용되는 바와 같이, 아이템들의 리스트 중 "그 중 적어도 하나" 를 지칭하는 구절은 단일 구성부를 포함하여, 이러한 아이템들의 임의의 조합을 지칭한다. 예로서, "a, b, 또는 c" 중의 적어도 하나" 는 a, b, c, a-b, a-c, b-c, 및 a-b-c 를 포함하고자 한다.
본원 개시물과 연계하여 설명된 다양한 예증적인 논리 블록들, 모듈들, 및 회로들은 본원에서 개시된 기능들을 수행하도록 디자인된 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 반도체 (ASIC), 필드 프로그램가능한 게이트 어레이 (FPGA) 또는 다른 프로그램가능한 로직 디바이스 (PLD), 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 이들의 임의의 조합에 의해 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있으나, 대안으로, 프로세서는 임의의 상업적으로 이용가능한 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로 구현될 수도 있다.
본 개시물과 연계하여 설명된 방법의 단계들 또는 알고리즘은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들 양자의 조합에서 직접적으로 구현될 수도 있다. 소프트웨어 모듈은 공지된 임의의 형태의 저장 매체 내에 있을 수도 있다. 이용될 수도 저장 매체들의 일부 예들은, 랜덤 액세스 메모리 (random access memory; RAM), 판독 전용 메모리 (read only memory; ROM), 플래시 메모리, 소거가능한 프로그램가능 판독 전용 메모리 (erasable programmable read-only memory; EPROM), 전기적으로 소거가능한 프로그램가능 판독 전용 메모리 (electrically erasable programmable read-only memory; EEPROM), 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM 등을 포함한다. 소프트웨어 모듈은 단일 명령 또는 많은 명령들을 포함할 수도 있고, 상이한 프로그램들 사이에서 여러 상이한 코드 세그먼트들에 걸쳐, 그리고 다수의 저장 매체들에 걸쳐 분배될 수도 있다. 저장 매체는 프로세서에 연결되어, 프로세서가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있다. 대안에서, 저장 매체는 프로세서에 통합될 수도 있다.
본원에 개시된 방법들은 설명된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법 단계들 및/또는 액션들은 청구항들의 범위를 벗어나지 않으면서 서로 상호 교환될 수도 있다. 다시 말해, 단계들 또는 액션들에 대한 특정 순서가 명시되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 이용은 청구항들의 범위로부터 벗어남이 없이 수정될 수도 있다.
설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 하드웨어에서 구현된다면, 일 예시적인 하드웨어 구성은 디바이스에서의 프로세싱 시스템을 포함할 수도 있다. 프로세싱 시스템은 버스 아키텍쳐로 구현될 수도 있다. 버스는 프로세싱 시스템 및 전체 설계 제약들의 특정 애플리케이션들에 따라 임의의 개수의 상호접속하는 버스들 및 브리지들을 포함할 수도 있다. 버스는 프로세서, 머신-판독가능 매체들, 및 버스 인터페이스를 포함하여 다양한 회로들을 함께 링크할 수도 있다. 버스 인터페이스는 다른 것들 중에서 네트워크 어댑터를 버스를 통해 프로세싱 시스템에 연결하는데 이용될 수도 있다. 네트워크 어댑터는 신호 프로세싱 기능들을 구현하는데 이용될 수도 있다. 특정 양태들에서, 사용자 인터페이스 (예를 들어, 키보드, 디스플레이, 마우스, 조이스틱 등) 가 또한 버스에 연결될 수도 있다. 버스는 또한 다양한 다른 회로들, 예컨대, 타이밍 소스들, 주변기기들, 전압 조절기들, 전력 관리 회로들 등을 링크할 수도 있으며, 이는 공지되어 있으므로, 더 이상 설명되지 않을 것이다.
프로세서는 컴퓨터 판독가능 매체 상에 저장된 소프트웨어의 실행을 포함하여 버스 및 범용 프로세싱을 관리하는 역할을 할 수도 있다. 프로세서는 하나 이상의 범용 및/또는 특수-목적용 프로세서들로 구현될 수도 있다. 예들은 마이크로프로세서들, 마이크로제어기들, DSP 제어기들, 및 소프트웨어를 실행할 수 있는 다른 회로부를 포함한다. 소프트웨어는 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 서술 언어, 또는 다른 것으로 지칭되더라도, 명령들, 데이터, 또는 이들의 임의의 조합을 의미하는 것으로 광범위하게 해석될 수 있다. 머신-판독가능 매체들은, 예로서, 랜덤 액세스 메모리 (RAM), 플래시 메모리, 판독 전용 메모리 (ROM), 프로그램가능한 판독 전용 메모리 (PROM), 소거가능한 프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능한 프로그램가능 판독 전용 메모리 (EEPROM), 레지스터들, 자기 디스크들, 광학 디스크들, 하드 드라이브들, 또는 임의의 다른 적합한 저장 매체, 또는 이들의 임의의 조합을 포함할 수도 있다. 머신-판독가능 매체들은 컴퓨터-프로그램 제품으로 구체화될 수도 있다. 컴퓨터-프로그램 제품은 패키징 재료들을 포함할 수도 있다.
하드웨어 구현에서, 머신-판독가능 매체들은 프로세서와 별개인 프로세싱 시스템의 일부일 수도 있다. 그러나, 머신-판독가능 매체들, 또는 이의 임의의 부분은 프로세싱 시스템의 외부에 있을 수도 있음을 통상의 기술자는 쉽게 이해할 것이다. 예로서, 머신-판독가능 매체들은 송신 라인, 데이터에 의해 변조된 반송파, 및/또는 디바이스와 별도인 컴퓨터 제품을 포함할 수도 있으며, 이 모두는 버스 인터페이스를 통해 프로세서에 의해 액세스가능하게 될 수도 있다. 대안으로, 또는 이에 더해, 머신-판독가능 매체들, 또는 이들의 임의의 부분은 프로세서에 통합될 수도 있으며, 그러한 경우에는 캐시 및/또는 범용 레지스터 파일들과 함께 있을 수도 있다. 논의된 다양한 컴포넌트들이 로컬 컴포넌트와 같이 특정 위치를 갖는 것으로 설명되었으나, 그것들은 또한 소정의 컴포넌트들이 분산 컴퓨팅 시스템의 일부로서 구성되는 것과 같이 다양한 방식들로 구성될 수도 있다.
프로세싱 시스템은 프로세서 기능성을 제공하는 하나 이상의 마이크로프로세서들 및 적어도 일부분의 머신-판독가능 매체들을 제공하는 외부 메모리로 구현될 수도 있으며, 모두 외부 버스 아키텍쳐를 통해 다른 지원하는 회로부와 함께 링크된다. 대안으로, 프로세싱 시스템은 뉴런 모델들 및 본원에서 설명된 신경 시스템들의 모델들을 구현하기 위한 하나 이상의 뉴로모픽 프로세서들을 포함할 수도 있다. 다른 대안으로서, 프로세싱 시스템은 프로세서를 갖는 주문형 반도체 (ASIC), 버스 인터페이스, 사용자 인터페이스, 지원 회로부, 및 단일 칩 내에 통합되는 적어도 일부분의 머신-판독가능 매체들로, 또는 하나 이상의 필드 프로그램가능 게이트 어레이 (FPGA) 들, 프로그램가능 로직 디바이스 (PLD) 들, 제어기들, 상태 머신들, 게이트 로직, 이상 하드웨어 컴포넌트들, 또는 임의의 다른 적합한 회로부, 또는 본 개시물을 통해 설명된 다양한 기능성을 수행할 수 있는 회로들의 임의의 조합으로 구현될 수도 있다. 특정 응용 및 전체 시스템에 부과되는 전체 설계 제약들에 따라 본 개시물에 걸쳐 제시된 설명된 기능성을 가장 잘 구현하기 위한 방법을 통상의 기술자는 인지할 것이다.
머신-판독가능 매체들은 다수의 소프트웨어 모듈들을 포함할 수도 있다. 소프트웨어 모듈들은, 프로세서에 의해 실행되는 경우, 프로세싱 시스템으로 하여금 다양한 기능들을 수행하게 하는 명령들을 포함한다. 소프트웨어 모듈들은 송신 모듈 및 수신 모듈을 포함할 수도 있다. 각각의 소프트웨어 모듈은 단일 저장 디바이스에 있을 수도 있거나 다수의 저장 디바이스들에 걸쳐 분산될 수도 있다. 예로서, 소프트웨어 모듈은 트리거링 이벤트가 발생하는 경우 하드웨어 드라이브로부터 RAM 으로 로딩될 수도 있다. 소프트웨어 모듈의 실행 중에, 프로세서는 액세스 속도를 증가시키기 위해 명령들의 일부를 캐시 내로 로딩할 수도 있다. 하나 이상의 캐시 라인들은 그러면 프로세서에 의한 실행을 위해 범용 레지스터 파일 내로 로딩될 수도 있다. 하기에서 소프트웨어 모듈의 기능성을 언급하는 경우, 그러한 기능성은 해당 소프트웨어 모듈로부터 명령들을 실행하는 경우 프로세서에 의해 구현된다는 것이 이해될 것이다.
소프트웨어로 구현된다면, 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 전송될 수도 있다. 컴퓨터-판독가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 가능하게 하는 임의의 매체를 포함하여 컴퓨터 저장 매체들 및 통신 매체들 양자 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터-판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 요구되는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결부는 컴퓨터-판독가능 매체라고 적절히 지칭된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선 (IR), 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 전송된다면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 본원에서 사용된 디스크 (disk) 와 디스크 (disc) 는, 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피디스크 및 블루레이® 디스크를 포함하며, 여기서 디스크 (disk) 는 통상 자기적으로 데이터를 재생하고, 디스크 (disc) 는 레이저를 이용하여 광학적으로 데이터를 재생한다. 따라서, 일부 양태들에서, 컴퓨터-판독가능 매체들은 비일시적 컴퓨터-판독가능 매체들 (예를 들어, 유형의 매체들) 을 포함할 수도 있다. 또한, 다른 양태들에 있어서, 컴퓨터-판독가능 매체들은 일시적 컴퓨터-판독가능 매체들 (예를 들어, 신호) 을 포함할 수도 있다. 위의 조합들도 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
따라서, 특정 양태들은 본원에 제시된 동작들을 수행하는 컴퓨터 프로그램 제품을 포함할 수도 있다. 예를 들어, 이러한 컴퓨터 프로그램 제품은 저장된 (및/또는 인코딩된) 명령들을 갖는 컴퓨터 판독가능 매체를 포함할 수도 있으며, 명령들은 본원에 설명된 동작들을 수행하기 위해 하나 이상의 프로세서들에 의해 실행가능할 수도 있다. 특정 양태들에 있어서, 컴퓨터 프로그램 제품은 패키징 재료를 포함할 수도 있다.
또한, 본원에 설명된 방법들 및 기법들을 수행하는 모듈들 및/또는 다른 적절한 수단은 다운로드될 수도 있고/있거나, 그렇지 않으면 가능한 적용가능한 사용자 단말 및/또는 기지국에 의해 획득될 수도 있다. 예를 들어, 본원에서 설명된 방법들을 수행하기 위한 수단의 전송을 용이하게 하기 위한 서버에 디바이스가 연결될 수도 있다. 대안으로, 본원에 설명된 다양한 방법들이 저장 수단 (예를 들어, RAM, ROM, 물리적 컴팩트 디스크 (CD) 나 플로피 디스크와 같은 물리적 저장 매체 등) 을 통해 제공될 수도 있어, 사용자 단말 및/또는 기지국은 디바이스에 연결할 시에 또는 디바이스에 저장 수단을 제공할 시에 다양한 방법들을 획득할 수 있다. 또한, 본원에서 설명된 방법들 및 기술들을 디바이스에 제공하기 위해 임의의 다른 적절한 기술들이 활용될 수 있다.
청구항들은 위에서 예시된 정확한 구성 및 컴포넌트들로 제한되지 않는 것으로 이해되어야 한다. 청구항의 범위를 벗어나지 않으면서, 본원에서 설명된 시스템들, 방법들, 및 장치들의 배치, 동작 및 세부사항들에서 다양한 수정예들, 변경예들, 및 변형예들이 이루어질 수도 있다.

Claims (27)

  1. 신경 네트워크에서 차분 인코딩을 수행하는 방법으로서,
    뉴런에 대한 적어도 하나의 이전의 활성화 값에 적어도 부분적으로 기초하여 상기 신경 네트워크에서의 상기 뉴런에 대한 활성화 값을 예측하는 단계; 및
    상기 신경 네트워크에서의 상기 뉴런에 대한 활성화 값과 예측된 상기 활성화 값 사이의 차이에 적어도 부분적으로 기초하여 값을 인코딩하는 단계를 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  2. 제 1 항에 있어서,
    상기 신경 네트워크의 계층들 사이의 인코딩된 상기 값을 전송하는 단계를 더 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  3. 제 2 항에 있어서,
    전송된 상기 인코딩된 값은 상기 활성화 값과 상기 예측된 활성화 값 사이의 차이 및 상기 활성화 값과 상기 예측된 활성화 값 사이의 임계 차이 중 적어도 하나인, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  4. 제 3 항에 있어서,
    전송된 상기 인코딩된 값은 상기 인코딩된 값의 비트들의 수에 적어도 부분적으로 기초하여 선택되는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  5. 제 1 항에 있어서,
    상기 활성화 값은 비선형 함수에 적어도 부분적으로 기초하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  6. 제 1 항에 있어서,
    상기 활성화 값을 예측하는 단계는, 입력의 수신에 적어도 부분적으로 기초하여 수행되는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  7. 제 1 항에 있어서,
    상기 값의 비트 폭에 적어도 부분적으로 기초하여 상기 값을 인코딩하는 단계를 더 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  8. 제 1 항에 있어서,
    상기 인코딩은 신경 네트워크 출력 기반 트리거에 적어도 부분적으로 기초하여 수행되는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  9. 제 1 항에 있어서,
    상기 인코딩은 간헐적으로 수행되는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  10. 제 1 항에 있어서,
    상기 인코딩은 상기 신경 네트워크에 대한 입력에 대해 지연되는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  11. 제 1 항에 있어서,
    상기 인코딩은 상기 신경 네트워크의 출력에 적어도 부분적으로 더 기초하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  12. 제 1 항에 있어서,
    상기 적어도 하나의 이전의 활성화 값은 입력-출력 관계가 결정론적인 경우에 입력 이력을 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  13. 제 1 항에 있어서,
    상기 적어도 하나의 이전의 활성화 값은 입력-출력 관계가 확률적인 경우에 입력 이력 및 출력 이력을 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  14. 제 1 항에 있어서,
    예측된 입력 값에 적어도 부분적으로 기초하여 상기 예측된 활성화 값을 계산하는 단계를 더 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  15. 제 14 항에 있어서,
    인코딩된 상기 값을 상기 예측된 입력 값과 결합함으로써 실제 입력 값을 계산하는 단계를 더 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  16. 제 14 항에 있어서,
    상기 예측된 입력 값 및 상기 예측된 활성화 값을 계산하는 것은 상기 뉴런에 대한 복수의 이전의 활성화 값들 및 복수의 이전의 입력 값들의 선형적 결합을 이용하는 것을 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  17. 제 1 항에 있어서,
    상기 뉴런에 대한 상기 예측된 활성화 값은 상기 뉴런에 대한 상태 및 상기 뉴런에의 입력에 적어도 부분적으로 기초하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  18. 제 17 항에 있어서,
    상기 뉴런에 대한 상기 상태는 이전의 상태, 입력 값, 출력 값, 예측된 활성화 값, 및 목표된 활성화 값 중 적어도 하나에 기초하여 업데이트되는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  19. 제 17 항에 있어서,
    상기 뉴런에 대한 상기 상태는 입력 이력, 출력 이력, 예측된 활성화 값 이력, 및 목표된 활성화 값 이력 중 적어도 하나를 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  20. 제 19 항에 있어서,
    상기 예측하는 단계는 다른 뉴런의 상태에 적어도 부분적으로 기초하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  21. 제 1 항에 있어서,
    상기 예측된 활성화 값은 복수의 이전의 실제 활성화 값들의 선형적 결합 또는 이전의 입력 값들의 선형적 결합에 적어도 부분적으로 기초하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  22. 제 1 항에 있어서,
    상기 활성화 값을 예측하는 단계는, 상기 뉴런에 제공된 추가적인 값을 이용하는 단계를 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  23. 제 22 항에 있어서,
    이미지 모션 추정에 적어도 부분적으로 기초하여 상기 추가적인 값을 계산하는 단계를 더 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  24. 제 22 항에 있어서,
    상기 추가적인 값은 다른 뉴런으로부터의 피드백 신호를 포함하는, 신경 네트워크에서 차분 인코딩을 수행하는 방법.
  25. 신경 네트워크에서 차분 인코딩을 수행하기 위한 장치로서,
    메모리; 및
    상기 메모리에 커플링된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    뉴런에 대한 적어도 하나의 이전의 활성화 값에 적어도 부분적으로 기초하여 상기 신경 네트워크에서의 상기 뉴런에 대한 활성화 값을 예측하고; 그리고
    상기 신경 네트워크에서의 상기 뉴런에 대한 활성화 값과 예측된 상기 활성화 값 사이의 차이에 적어도 부분적으로 기초하여 값을 인코딩하도록 구성되는, 신경 네트워크에서 차분 인코딩을 수행하기 위한 장치.
  26. 스파이킹 신경 네트워크에서 차분 인코딩을 수행하기 위한 장치로서,
    뉴런에 대한 적어도 하나의 이전의 활성화 값에 적어도 부분적으로 기초하여 상기 신경 네트워크에서의 상기 뉴런에 대한 활성화 값을 예측하는 수단; 및
    상기 신경 네트워크에서의 상기 뉴런에 대한 활성화 값과 예측된 상기 활성화 값 사이의 차이에 적어도 부분적으로 기초하여 값을 인코딩하는 수단을 포함하는, 스파이킹 신경 네트워크에서 차분 인코딩을 수행하기 위한 장치.
  27. 스파이킹 신경 네트워크에서 차분 인코딩을 수행하기 위한 컴퓨터 프로그램 제품으로서,
    프로그램 코드를 인코딩한 비-일시적 컴퓨터 판독가능 매체를 포함하고,
    상기 프로그램 코드는,
    뉴런에 대한 적어도 하나의 이전의 활성화 값에 적어도 부분적으로 기초하여 상기 신경 네트워크에서의 상기 뉴런에 대한 활성화 값을 예측하기 위한 프로그램 코드; 및
    상기 신경 네트워크에서의 상기 뉴런에 대한 활성화 값과 예측된 상기 활성화 값 사이의 차이에 적어도 부분적으로 기초하여 값을 인코딩하기 위한 프로그램 코드를 포함하는, 비-일시적 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
KR1020167029200A 2014-03-24 2015-03-17 신경 네트워크들에서의 차분 인코딩 Withdrawn KR20160136381A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461969747P 2014-03-24 2014-03-24
US61/969,747 2014-03-24
US14/513,155 2014-10-13
US14/513,155 US20150269481A1 (en) 2014-03-24 2014-10-13 Differential encoding in neural networks
PCT/US2015/021077 WO2015148189A2 (en) 2014-03-24 2015-03-17 Differential encoding in neural networks

Publications (1)

Publication Number Publication Date
KR20160136381A true KR20160136381A (ko) 2016-11-29

Family

ID=54142454

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167029200A Withdrawn KR20160136381A (ko) 2014-03-24 2015-03-17 신경 네트워크들에서의 차분 인코딩

Country Status (7)

Country Link
US (1) US20150269481A1 (ko)
EP (1) EP3123404A2 (ko)
JP (1) JP2017516192A (ko)
KR (1) KR20160136381A (ko)
CN (1) CN107077637B (ko)
BR (1) BR112016022195A2 (ko)
WO (1) WO2015148189A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180007657A (ko) * 2016-07-13 2018-01-23 삼성전자주식회사 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치
US10504506B2 (en) 2017-08-14 2019-12-10 Samsung Electronics Co., Ltd. Neural network method and apparatus
KR20190140276A (ko) * 2018-06-11 2019-12-19 고려대학교 산학협력단 비지도 학습장치 및 그 학습방법
KR102593930B1 (ko) 2023-04-18 2023-10-25 주식회사 한국스크랩 친환경 폐 알루미늄 박리 자동화 시스템

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150379397A1 (en) 2014-06-28 2015-12-31 Brainchip, Inc. Secure voice signature communications system
US10262259B2 (en) * 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
US11126913B2 (en) * 2015-07-23 2021-09-21 Applied Brain Research Inc Methods and systems for implementing deep spiking neural networks
US20170118479A1 (en) * 2015-10-23 2017-04-27 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and electronic device
EP3380992B1 (en) * 2016-01-25 2022-04-27 Deepmind Technologies Limited Generating images using neural networks
US10528863B2 (en) * 2016-04-01 2020-01-07 Numenta, Inc. Feedback mechanisms in sequence learning systems with temporal processing capability
US10949737B2 (en) 2016-07-13 2021-03-16 Samsung Electronics Co., Ltd. Method for neural network and apparatus performing same method
US11238337B2 (en) * 2016-08-22 2022-02-01 Applied Brain Research Inc. Methods and systems for implementing dynamic neural networks
US20180121791A1 (en) * 2016-11-03 2018-05-03 Qualcomm Incorporated Temporal difference estimation in an artificial neural network
CN108268939B (zh) * 2016-12-30 2021-09-07 上海寒武纪信息科技有限公司 用于执行lstm神经网络运算的装置和运算方法
WO2018120082A1 (en) * 2016-12-30 2018-07-05 Nokia Technologies Oy Apparatus, method and computer program product for deep learning
CN108345939B (zh) * 2017-01-25 2022-05-24 微软技术许可有限责任公司 基于定点运算的神经网络
US10311339B2 (en) 2017-02-14 2019-06-04 Google Llc Unsupervised learning techniques for temporal difference models
JP7019138B2 (ja) * 2017-02-28 2022-02-15 国立大学法人電気通信大学 符号化装置、符号化方法およびプログラム
JP6898778B2 (ja) * 2017-06-02 2021-07-07 株式会社日立製作所 機械学習システム及び機械学習方法
WO2019040672A1 (en) * 2017-08-22 2019-02-28 Syntiant SYSTEMS AND METHODS FOR DETERMINING EFFECTS AT A CIRCUIT LEVEL ON THE PRECISION OF A CLASSIFIER
US20190102669A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Global and local time-step determination schemes for neural networks
WO2019074532A1 (en) * 2017-10-09 2019-04-18 Intel Corporation METHOD, APPARATUS AND SYSTEM FOR PERFORMING ACTION RECOGNITION USING AN IMPULSE NEURAL NETWORK
CN109961133B (zh) * 2017-12-14 2020-04-24 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN111164615A (zh) * 2017-12-15 2020-05-15 英特尔公司 在尖峰神经网络中使用尖峰波进行基于上下文的搜索
US11568241B2 (en) 2017-12-19 2023-01-31 Intel Corporation Device, system and method for varying a synaptic weight with a phase differential of a spiking neural network
US10607484B2 (en) 2017-12-28 2020-03-31 Intel Corporation Privacy-preserving distributed visual data processing
KR102656864B1 (ko) * 2017-12-28 2024-04-17 인텔 코포레이션 비주얼 포그
US10825201B2 (en) * 2018-02-20 2020-11-03 Lyft, Inc. Deep direct localization from ground imagery and location readings
US11030518B2 (en) * 2018-06-13 2021-06-08 United States Of America As Represented By The Secretary Of The Navy Asynchronous artificial neural network architecture
US11200484B2 (en) * 2018-09-06 2021-12-14 International Business Machines Corporation Probability propagation over factor graphs
JP7021052B2 (ja) * 2018-11-06 2022-02-16 株式会社東芝 製品状態推定装置
US11568248B2 (en) * 2020-03-31 2023-01-31 Ati Technologies Ulc Feature reordering based on similarity for improved memory compression transfers during machine learning jobs
EP3917087B1 (en) * 2020-05-26 2023-04-19 Nxp B.V. Controller and transceiver
SE544261C2 (en) 2020-06-16 2022-03-15 IntuiCell AB A computer-implemented or hardware-implemented method of entity identification, a computer program product and an apparatus for entity identification
US12165046B2 (en) * 2021-03-16 2024-12-10 International Business Machines Corporation Enabling hierarchical data loading in a resistive processing unit (RPU) array for reduced communication cost
CN113762487B (zh) * 2021-08-17 2023-11-10 西北大学 基于神经架构搜索及dbn网络的脑功能网络生成方法及系统
WO2023167623A1 (en) * 2022-03-02 2023-09-07 IntuiCell AB A method of providing a representation of temporal dynamics of a first system, middleware systems, a controller system, computer program products and non-transitory computer-readable storage media
US20240118923A1 (en) * 2022-09-28 2024-04-11 Qualcomm Incorporated Robust scheduling with generative flow networks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1272417B (it) * 1993-04-29 1997-06-23 Alcatel Italia Metodo per la codifica e decodifica differenziale e relativi circuiti
US6185548B1 (en) * 1998-06-19 2001-02-06 Albert Einstein College Of Medicine Of Yeshiva University Neural network methods to predict enzyme inhibitor or receptor ligand potency
US20010025232A1 (en) * 1998-10-02 2001-09-27 Klimasauskas Casimir C. Hybrid linear-neural network process control
US7430546B1 (en) * 2003-06-07 2008-09-30 Roland Erwin Suri Applications of an algorithm that mimics cortical processing
CN1622129A (zh) * 2004-12-13 2005-06-01 中国科学院长春光学精密机械与物理研究所 人工神经网络的优化方法
WO2007056803A1 (en) * 2005-11-15 2007-05-24 Bernadette Garner Method for training neural networks
JP4840494B2 (ja) * 2009-09-16 2011-12-21 沖電気工業株式会社 時系列データ予測ニューラルネットワーク装置
CN101824807A (zh) * 2010-04-16 2010-09-08 同济大学 一种潮汐河流地区取水口咸潮短期预测方法
CN104346801B (zh) * 2013-08-02 2018-07-20 佳能株式会社 图像构图评估装置、信息处理装置及其方法
CN103559538A (zh) * 2013-11-12 2014-02-05 上海电机学院 Bp神经网络结构优化方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180007657A (ko) * 2016-07-13 2018-01-23 삼성전자주식회사 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치
US10504506B2 (en) 2017-08-14 2019-12-10 Samsung Electronics Co., Ltd. Neural network method and apparatus
KR20190140276A (ko) * 2018-06-11 2019-12-19 고려대학교 산학협력단 비지도 학습장치 및 그 학습방법
KR102593930B1 (ko) 2023-04-18 2023-10-25 주식회사 한국스크랩 친환경 폐 알루미늄 박리 자동화 시스템

Also Published As

Publication number Publication date
EP3123404A2 (en) 2017-02-01
JP2017516192A (ja) 2017-06-15
BR112016022195A2 (pt) 2017-08-15
CN107077637B (zh) 2021-07-20
WO2015148189A3 (en) 2015-12-17
CN107077637A (zh) 2017-08-18
WO2015148189A2 (en) 2015-10-01
US20150269481A1 (en) 2015-09-24

Similar Documents

Publication Publication Date Title
KR20160136381A (ko) 신경 네트워크들에서의 차분 인코딩
US10339447B2 (en) Configuring sparse neuronal networks
US9558442B2 (en) Monitoring neural networks with shadow networks
KR101700145B1 (ko) 뉴럴 역학을 수정하기 위한 자동화 방법
US20150242741A1 (en) In situ neural network co-processing
US20150269482A1 (en) Artificial neural network and perceptron learning using spiking neurons
US20150278680A1 (en) Training, recognition, and generation in a spiking deep belief network (dbn)
KR20170031695A (ko) 신경망들에서의 콘볼루션 동작의 분해
US20150212861A1 (en) Value synchronization across neural processors
KR20160136364A (ko) 콜드 뉴런 스파이크 타이밍 역 전파
US10552734B2 (en) Dynamic spatial target selection
US20150278685A1 (en) Probabilistic representation of large sequences using spiking neural network
KR101825937B1 (ko) 가소성 시냅스 관리
US20150213356A1 (en) Method for converting values into spikes
US20150112909A1 (en) Congestion avoidance in networks of spiking neurons
US9342782B2 (en) Stochastic delay plasticity
US20150242742A1 (en) Imbalanced cross-inhibitory mechanism for spatial target selection

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20161019

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination