Hyperdimensional Computing
Hyperdimensional Computing (englisch für Hyperdimensionales Rechnen, kurz HDC) unterscheidet sich vom klassischen Rechnen dadurch, dass es nicht mit einzelnen Bits arbeitet, sondern mit hyperdimensionalen Vektoren, auch Hypervektoren genannt, als Datenrepräsentationen. Hypervektoren sind Vektoren, welche eine Dimensionalität von mehreren Tausend haben.[1][2]
Dieser Ansatz geht ursprünglich auf das kognitive Modell von Kanerva[3] zurück. Es basiert auf der Annahme, dass alle möglichen Zustände des Gehirns mit seinen 100 Milliarden Neuronen durch einen Hypervektor repräsentiert werden können.[2] Das Gehirn arbeitet energieeffizient, ist robust gegenüber Datenkorruption und kann gut mit ungenauen Daten umgehen.[1]
Durch diese, vom Gehirn inspirierten Hypervektoren kann HDC im Vergleich zum klassischen Rechnen zwar weniger akkurat, dafür aber deutlich schneller und energieeffizienter sein. Es zeigt vor allem im Umgang mit Schrift, Symbolen oder Bildern Potenzial und könnte im Internet der Dinge klassische Algorithmen als effizienterer Klassifizierer ersetzen.[2]
Technische Grundlagen
[Bearbeiten | Quelltext bearbeiten]Hypervektoren können prinzipiell in zwei Kategorien eingeteilt werden: binär und nicht-binär. Nicht-binäre Repräsentationen wie bipolare und ganzzahlige Hypervektoren sind oft akkurater, dafür aber nicht so effizient wie binäre Hypervektoren.[2]
Orthogonalität
[Bearbeiten | Quelltext bearbeiten]Damit Hypervektoren bestimmte Konzepte repräsentieren können, muss definiert werden, wie unterschiedlich oder ähnlich sich zwei Hypervektoren zueinander verhalten.
Bei nicht-binären Hypervektoren wird dies mit der Kosinus-Ähnlichkeit gemessen. Ein Wert von 1 bedeutet, dass die beiden Hypervektoren identisch sind, während ein Wert von 0 bedeutet, dass sie orthogonal zueinander sind. Für binäre Hypervektoren wird die normalisierte Hamming-Distanz verwendet. Bei einer Hamming-Distanz von 0 sind zwei Hypervektoren identisch, bei 0,5 orthogonal und bei 1 gegensätzlich.[2][4]
Ein wichtiges Konzept des HDC ist die Orthogonalität und wie diese mit der hohen Anzahl an Dimensionen zusammenspielt. Bei höherer Dimensionalität weisen zwei zufällig generierte Vektoren mit nahezu absoluter Wahrscheinlichkeit eine Hamming-Distanz von ungefähr 0,5 auf und sind damit orthogonal zueinander. Mit abnehmender Dimensionalität wird die Wahrscheinlichkeit für eine Hamming-Distanz nahe 0,5 geringer, und die Vektoren können ähnlicher oder konträrer zueinander werden. Somit können verschiedene Vektoren addiert oder multipliziert werden, ohne dass die Gefahr besteht, dass die jeweiligen Ergebnisse bereits einer bestehenden Bedeutung bzw. einem vorhandenen Konzept zugeordnet sind.[2]
Transformation
[Bearbeiten | Quelltext bearbeiten]Zu jeder Rechendisziplin gehört die Transformation von Daten, um daraus neue Erkenntnisse zu ziehen. Während beim klassischen Rechnen die vier arithmetischen Operationen, Addition, Multiplikation, Subtraktion und Division, mithilfe von ALUs verwendet werden, arbeitet HDC mit drei Operationen: Addition, Multiplikation und Permutation. Hierbei werden mehrere Hypervektoren zu einem neuen Hypervektor transformiert.[1][2]
Diese Konzepte werden im Folgenden anhand von binären Hypervektoren demonstriert, wobei die Konzepte grundsätzlich auf nicht-binäre Hypervektoren übertragbar sind, diese jedoch hardware- bzw. softwaretechnisch komplizierter in der Umsetzung sind.[1][2]
Addition
[Bearbeiten | Quelltext bearbeiten]Addition, auch Bundling (englisch für Bündeln) genannt, berechnet einen Hypervektor anhand mehrerer Hypervektoren . ist dann maximal ähnlich zu allen addierten Vektoren mit und hat somit eine minimale Hamming-Distanz zu ihnen. Mit dieser Operation lassen sich beliebig viele Konzepte zu einem neuen Konzept zusammenfassen.[1][2][4]
Um dies zu erreichen, wird jedes Bit von bitweise nach der Mehrheitsregel auf 0 oder 1 gesetzt:
Das bedeutet, für jede Bitposition wird ausgezählt, wie oft eine 1 bzw. eine 0 vorkommt. Das häufigere Bit wird für an dieser Position übernommen. Am einfachsten lässt sich dies anhand einer bitweisen Addition von drei 8-Bit-Vektoren demonstrieren:
Hierbei ist zu beachten, dass die Addition einer geraden Anzahl an Hypervektoren einen Bias aufweist. Gleichstände bei der Mehrheitsbildung müssen entweder durch einen Bias zu 0 oder 1 oder durch die zusätzliche Addition eines zufällig generierten Hypervektors aufgelöst werden. Je mehr Elemente addiert werden, desto geringer fällt der Einfluss dieses Bias aus und kann letztendlich bei großen Additionen vernachlässigt werden.[2]
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ a b c d e Anthony Thomas, Sanjoy Dasgupta, Tajana Rosing: A Theoretical Perspective on Hyperdimensional Computing. In: Journal of Artificial Intelligence Research. 72. Jahrgang, 2021, S. 215–249, doi:10.48550/arXiv.2010.07426 (englisch).
- ↑ a b c d e f g h i j Lulu Ge, Keshab K Parhi: Classification using hyperdimensional computing: A review. In: IEEE Circuits and Systems Magazine. 20. Jahrgang, Nr. 2. IEEE, 2020, S. 30–47, doi:10.48550/arXiv.2004.11204 (englisch).
- ↑ Pentti Kanerva: Sparse Distributed Memory. MIT Press, 1988, ISBN 978-0-262-51469-9 (englisch).
- ↑ a b Michiel Stock, Dimitri Boeckaerts, Pieter Dewulf, Steff Taelman, Maxime Van Haeverbeke, Wim Van Criekinge, Bernard De Baets: Hyperdimensional computing: a fast, robust and interpretable paradigm for biological data. 2024, doi:10.48550/arXiv.2402.17572 (englisch).