{{위키데이터 속성 추적}}
'''초차원 컴퓨팅''' 또는 '''하이퍼디멘셔널 컴퓨팅'''({{llang|en|Hyperdimensional Computing 또는 HDC}})은 [[인공지능|인공 지능]]을 구현하기 위한 접근법 중 하나다. HDC는 [[소뇌|소뇌 겉질]]이 고차원의 데이터 표현을 사용하여 작동한다는 관찰에서 영감을 얻은 알고리즘이다.<ref>{{인용|last=Zou|first=Zhuowen|title=Spiking Hyperdimensional Network: Neuromorphic Models Integrated with Memory-Inspired Framework|date=2021-10-01|url=http://arxiv.org/abs/2110.00214|access-date=2024-02-16|doi=10.48550/arXiv.2110.00214|last2=Alimohamadi|first2=Haleh|last3=Imani|first3=Farhad|last4=Kim|first4=Yeseong|last5=Imani|first5=Mohsen}}</ref> 그러므로, HDC는 정보를 숫자 배열과 같은 초차원(긴 고차원) [[벡터 공간|벡터]]로 표현한다. 수천개의 숫자들로 표현될 수 있는 벡터를 초차원 벡터(하이퍼벡터)라고 하며, 이는 고차원 공간상의 하나의 점을 나타낸다.<ref name=":02">{{웹 인용|url=https://www.quantamagazine.org/a-new-approach-to-computation-reimagines-artificial-intelligence-20230413/?mc_cid=ad9a93c472&mc_eid=506130a407|제목=A New Approach to Computation Reimagines Artificial Intelligence|성=Ananthaswamy|이름=Anan|날짜=April 13, 2023|웹사이트=Quanta Magazine}}</ref> 이러한 접근법은 VSA(Vector Symbolic Architectures)으로부터 파생되었다.<ref name=":02" />

== 프로세스 ==
데이터는 인코딩 함수 φ : X → H에 따라 입력 공간에서 희소 HD 공간으로 매핑된다. HD 표현은 노이즈/하드웨어 오류로 인해 손상될 수 있는 데이터 구조에 저장된다. 하드웨어 노이즈에 의해 손상된 HD 표현은 여전히 학습, 분류 등을 위해 사용될 수 있다. 또한 입력 데이터를 복구하기 위해 디코딩할 수도 있다. H는 일반적으로 범위가 제한된 정수(-v-v)로 제한된다.<ref name=":12">{{저널 인용|제목=A Theoretical Perspective on Hyperdimensional Computing|저널=Journal of Artificial Intelligence Research|성=Thomas|이름=Anthony|성2=Dasgupta|이름2=Sanjoy|url=https://redwood.berkeley.edu/wp-content/uploads/2021/08/Thomas2021.pdf|날짜=2021-10-05|권=72|쪽=215–249|언어=en|doi=10.1613/jair.1.12664|issn=1076-9757|성3=Rosing|이름3=Tajana}}</ref>

이는 [[초파리]]의 후각 시스템이 수행하는 학습 과정과 유사하다. 냄새 수용체 뉴런에서 입력받은 대략 50차원의 벡터를 약 2,000차원의 HD 표현으로 나타낸다.<ref name=":12" />

== 모델 투명성 ==
HDC 대수는 [[인공 신경망]]과 달리 시스템이 결정을 내리는 방법과 이유에 대한 논리를 보여줄 수 있다. 물리적 세계에 존재하는 객체는 HDC 대수에 의해 처리되어 하이퍼벡터로 매핑될 수 있다.<ref name=":02" />

== 성능 ==
HDC는 단일 칩에서 데이터를 계산하고 보관하여 데이터 전송 지연을 방지하는 "지능형 메모리 시스템 (in-memory computing systems)"에 적합하다. 아날로그 장치는 저전압에서 작동하여 에너지 효율적이지만, 오류를 발생시키는 노이즈가 발생하기 쉽다. HDC는 이러한 오류를 허용할 수 있다.<ref name=":02" />

지금까지 다양한 연구팀에서 저전력 HDC 하드웨어 가속기를 개발해오고 있다.<ref name=":12" />

나노규모의 [[멤리스터]] 장치를 활용하여 계산을 수행할 수 있다. 지능형 메모리 초차원 컴퓨팅 시스템은 주변 디지털 [[CMOS]] 회로와 함께 두 개의 멤리스터 크로스바 엔진을 이용하여 연산을 구현할 수 있다. 아날로그 지능형 메모리 컴퓨팅을 수행하는 760,000개의 상변화 메모리 장치를 사용한 실험에서는 소프트웨어 구현에 필적하는 정확도를 달성했다.<ref name=":2">{{저널 인용|제목=In-memory hyperdimensional computing|저널=Nature Electronics|성=Karunaratne|이름=Geethan|성2=Le Gallo|이름2=Manuel|url=https://www.nature.com/articles/s41928-020-0410-3|날짜=June 2020|권=3|호=6|쪽=327–337|언어=en|arxiv=1906.01548|doi=10.1038/s41928-020-0410-3|issn=2520-1131|성3=Cherubini|이름3=Giovanni|성4=Benini|이름4=Luca|성5=Rahimi|이름5=Abbas|성6=Sebastian|이름6=Abu}}</ref>

== 오류 ==
HDC는 오류 수정 메커니즘에서 놓친 개별 비트 오류 (0이 1로 바뀌거나 그 반대)와 같은 오류에 강력하다. 이러한 오류 수정 메커니즘을 제거하면 컴퓨팅 비용을 최대 25% 절약할 수 있다. 이는 이러한 오류로 인해 결과가 올바른 벡터에 "가까워"지며 벡터를 이용한 추론에 영향을 미치지 않기 때문에 가능하다. HDC는 이미 전통적인 컴퓨팅 기법보다 오류에 크게 강한 [[인공 신경망]]보다 오류 허용성이 최소 10배 더 높다.<ref name=":02" />

== 예시 ==
검은색 원과 흰색 사각형이 포함된 이미지를 간단한 예시로 들어보자. 하이퍼벡터를 이용하여 SHAPE (모양) 및 COLOR (색) 변수를 나타낼 수 있으며 CIRCLE, SQUARE, BLACK 및 WHITE와 같은 해당 값을 보유할 수 있다. 해당 이미지를 나타내는 하이퍼벡터는 BLACK과 CIRCLE 등의 쌍을 보유할 수 있다.<ref name=":02" />

== 직교성 ==
고차원 공간에서는 [[직교|상호 직교하는]] 벡터가 쉽게 허용된다. 그러나 벡터가 ''유사 직교 (nearly orthogonal)'' 하도록 허용하면 고차원 공간에서 해당되는 벡터의 수가 훨씬 더 많아진다.<ref name=":02" />

HDC는 객체/관찰이 단일 상수가 아닌 여러 차원에 걸친 값의 패턴으로 표현되는 분산 표현 개념을 사용한다.<ref name=":12" />

== 연산 ==
HDC는 잘 정의된 [[벡터 공간]] 연산을 사용하여 여러 하이퍼벡터를 새로운 하이퍼벡터로 결합할 수 있다.

하이퍼벡터에 대한 [[군 (수학)|그룹]], [[환 (수학)|링]] 및 [[체 (수학)|필드는]] 기본 컴퓨팅 작업으로 덧셈, 곱셈, 순열, 매핑 및 역을 사용하여 기본 컴퓨팅 구조를 만든다.<ref name=":2" /> 모든 계산 작업은 성분별(element-wise) 합 및 [[스칼라곱|내적]] 과 같은 간단한 연산을 사용하여 고차원 공간에서 수행된다.<ref name=":12" />

바인딩 연산은 정렬된 포인트 튜플을 생성하며 다음의 함수로 표현된다: ⊗ : H × H → H. 입력은 {{Var|H}}의 두 지점이며 입력 지점과 먼 거리의 출력 지점을 생성한다. SHAPE 벡터에 CIRCLE을 곱하면 두 벡터가 ''바인딩(결합)되어'' "SHAPE는 CIRCLE이다"라는 개념을 표현할 수 있다. 이 벡터는 SHAPE 및 CIRCLE과 "유사 직교"한다. 각 구성 요소는 바인딩된 벡터에서 복구할 수 있다 (예: 바인딩된 벡터를 이용하여 "모양이 원인가?"라는 질문에 대답하는 과정을 HDC연산을 사용하여 구현할 수 있다).<ref name=":12" />

덧셈 연산은 개념을 결합하는 벡터를 생성한다. 예를 들어, "COLOR는 RED"에 "SHAPE은 CIRCLE"을 더하면 빨간색 원을 나타내는 벡터가 생성된다.

순열 연산은 벡터 요소를 재배열한다. 예를 들어 ''x'', ''y'' 및 ''z'' 값으로 3차원 벡터를 치환하면 ''x를'' ''y'' 로, ''y를'' ''z'' 로, ''z를'' ''x'' 로 바꿀 수 있다. 사건을 표현하는 하이퍼벡터 A와 B를 덧셈 연산을 사용하여 하나의 벡터로 표현할 수 있지만 이 경우 사건 순서에 대한 정보가 손실된다. 이러한 경우 덧셈 연산과 순열 연산을 결합하여 하나의 벡터로 표현하면 순서를 유지시킬 수 있다. 각 사건은 순열 연산을 반대로 적용하여 구할 수 있다.

번들링 연산은 H에 속하는 요소들의 집합을 함수 ⊕ : H ×H → H로 결합한다. 입력은 H의 두 지점이고 출력은 두 지점과 유사한 세 번째 지점이다.<ref name=":12" />

== 역사 ==
VSA(벡터 기호 아키텍처)는 관계 설정과 같은 작업을 지원하기 위해 고차원 기호 표현에 대한 체계적인 접근 방식을 제공했다. 초기 예제로는 홀로그램 축소 표현, 이진 스패터 코드 및 덧셈항의 매트릭스 바인딩이 있다. HD 컴퓨팅은 특히 하드웨어 효율성을 강조하면서 이러한 모델들을 발전시켰다.<ref name=":12" />

2018년 Eric Weiss는 이미지를 하이퍼벡터로 완전히 표현하는 방법을 보였다. 벡터에는 색상, 위치, 크기 등의 속성을 포함하여 이미지의 모든 개체에 대한 정보가 포함될 수 있다.<ref name=":02" />

2023년에 Abbas Rahimi 등은 신경망과 함께 HDC를 사용하여 [[레이븐 지능검사|Raven의 진보적 행렬을]] 해결했다.<ref name=":02" />

== 응용 ==

=== 이미지 인식 ===
HDC 알고리즘은 이미지 분류와 같이 [[딥 러닝|심층 신경망]]에서 오랫동안 연구된 작업을 모방할 수 있다.<ref name=":02" />

레이블된 손글씨 숫자 데이터셋을 분류하는 작업을 수행할 때, 먼저 각 이미지의 특징을 추출하는 알고리즘을 사용하여 이미지당 하이퍼벡터를 생성한다. 그런 다음 예를 들어 숫자 0이라는 개념에 대한 원형 하이퍼벡터를 생성하기 위해 모든 숫자 "0" 레이블이 지정된 이미지에 대한 하이퍼벡터를 더하고 이를 다른 숫자에 대해 반복할 수 있다.<ref name=":02" />

레이블이 지정되지 않은 새 이미지를 분류할때에는 해당 이미지에 대한 하이퍼벡터를 이전과 동일한 방식으로 생성하고 이를 참조 하이퍼벡터와 비교해야 한다. 이 비교를 통해 새 이미지와 가장 유사한 숫자를 식별할 수 있다.<ref name=":02" />

예를 들어, 레이블된 집합 <math>S = \{(x_{i}, y_{i})\}_{i=1}^N, \ {\scriptstyle\text{where}} \ x_{i} \in X \ {\scriptstyle\text{and}} \ y_{i} \in \{c_{i}\}_{i=1}^K</math> 이 주어졌다고 하자.<ref name=":12" />

주어진 쿼리 x<sub>q</sub> ∈ X에서 가장 유사한 프로토타입을 <math>k^* = _{k \in 1,...,K}^{argmax} \ p(\phi(x_{q})), \phi(c_{k}))</math> 와 같이 찾을 수 있다. 유사도 측정을 위한 함수 ρ으로는 일반적으로 내적을 사용한다.<ref name=":12" />

=== 추론 ===
하이퍼벡터는 추론에도 사용될 수 있다. Raven의 프로그레시브 매트릭스는 객체의 이미지를 그리드로 표시한다. 해당 그리드에는 한 위치가 비어 있으며, 테스트는 후보 이미지 중에서 가장 적합한 이미지를 선택하는 문제다.<ref name=":02" />

하이퍼벡터 사전은 개별 개체를 나타낸다. 각 하이퍼벡터는 해당 속성과 함께 개체 개념을 나타낸다. 각 테스트 이미지에 대해 신경망은 일부 사전 하이퍼벡터 세트에 최대한 가까운 이진 하이퍼벡터(+1 또는 -1값만을 가지는)를 생성한다. 따라서 생성된 하이퍼벡터는 이미지의 모든 객체와 해당 속성을 나타낸다.<ref name=":02" />

또 다른 알고리즘은 각 이미지 안의 개체 수와 해당 특성에 대한 확률 분포를 생성한다. 이러한 확률 분포는 컨텍스트와 후보 이미지로써 가능한 특성을 나타낸다. 이러한 분포 또한 하이퍼벡터로 변환된 후 HD 대수를 이용하여 빈 그리드에 채워져야할 가능성이 가장 높은 후보 이미지를 예측하는데에 사용된다.<ref name=":02" />

이러한 접근 방식을 사용하여 하나의 문제 세트에서 88%의 정확도를 달성하여 61%의 정확도를 보인 인공 신경망만을 이용한 방식을 능가한 성능을 보였다. 3x3 그리드의 경우, 관련 규칙서(rulebook)의 크기로 인해 [[수리 논리학|기호 논리를]] 사용하여 추론하는 방법보다 250배 더 빠른 속도를 보여주었다.<ref name=":02" />

=== 기타 ===
다른 응용 분야로는 생체 신호 처리, 자연어 처리, 로봇 공학 등이 있다.<ref name=":12" />

== 같이 보기 ==
* [[서포트 벡터 머신]]
== 각주 ==
{{각주}}

[[분류:딥 러닝]]
[[분류:인공신경망]]