Reduzieren Sie die Rechenzeit von einigen Jahren auf Minuten. Quantenmaschinelles Lernen verstehen

Ich habe mich schon lange für Quantencomputer interessiert und Programme für 5- und 14-Qubit-IBM Q Experience-Quantencomputer geschrieben. Heute werde ich über Technologien sprechen, die beim maschinellen Lernen angewendet werden können, nachdem das Quantencomputing die Welt erobert hat. Spoiler für die Wissenschaftler Datum: In Zukunft können Sie das Modell nicht mehr starten und einen halben Tag lang Kaffee trinken. Ein Quantencomputer klickt sofort auf maschinelle Lernaufgaben und Ausreden wie „Modelllernen“ funktionieren nicht mehr. Es wird notwendig sein, nicht ein Modell, sondern mindestens eine Million auf den Markt zu bringen.

Bild

Viele haben gehört, dass Cyberkriminelle mit Hilfe von Quantencomputern in moderne Verschlüsselungssysteme eindringen können. Im Gegensatz zu klassischen Computern, für die RSA und ähnliche kryptografische Algorithmen ein gutes Hindernis für Hacking darstellen, finden Quantencomputer in wenigen Minuten einfache Faktoren. Dies bedeutet, dass die von Hackern abgefangenen Informationen früher oder später entschlüsselt werden.

Natürlich schrecken einige dieser Anwendungen von Quantencomputern ab. In diesem Artikel werden wir uns auf die positive Seite konzentrieren und überlegen, welche Möglichkeiten das Quantencomputing für einen Bereich wie maschinelles Lernen bieten kann.

Was ist quantenmaschinelles Lernen und was ist der Unterschied zum konventionellen


In modernen Computern, auch für maschinelles Lernen, werden Berechnungen unter Verwendung klassischer Bits durchgeführt. In Quantencomputern, die in letzter Zeit an Popularität gewonnen haben und sich aktiv entwickeln, werden Bits einer besonderen Art verwendet - Quantenbits oder abgekürzte Qubits.

Für ein klassisches Bit gibt es zwei Zustände - 0 und 1, während für ein Qubit eine unendliche Anzahl von Kombinationen zweier Zustände möglich ist - dies ist die sogenannte Überlagerung. Wenn die Schrödinger-Katze aus einem bekannten Gedankenexperiment vor dem Öffnen gleichzeitig lebendig und tot ist, kann sich das Qubit, bevor es gemessen wird, überlagern, dh gleich Null und Eins im selben Moment.

Wenn mehrere Qubits verwendet werden, wächst die Anzahl der möglichen Zustände exponentiell: Für zwei Qubits, die sich überlagern, beträgt die Anzahl der Zustände vier:

|ψ rangle=k1|00 rangle+k2|01 rangle+k3|10 rangle+k4|11 rangle



Und für drei Qubits gibt es bereits acht Zustände:

|ψ rangle=k1|000 rangle+k2|001 rangle+k3|010 rangle+k4|011 rangle+k5|100 rangle+k6|101 rangle+k7|110 rangle+k8|111 rangle



Diese Zustände können nicht direkt gemessen werden, aber sie können gesteuert werden. In diesem Fall befindet sich die Quantenschaltung mit unterschiedlicher Wahrscheinlichkeit in mehreren Zuständen gleichzeitig, was für die parallele Berechnung verwendet werden kann.

Faktoren mit Qubit-Werten werden Amplituden genannt - dies sind komplexe Zahlen. Wenn wir den Amplitudenmodul berechnen und quadrieren, erhalten wir die Wahrscheinlichkeit des Zustands. Die Summe der Wahrscheinlichkeiten aller Kombinationen von Qubit-Zuständen sollte erwartungsgemäß letztendlich gleich Eins sein.

Bild

Als Beispiele für verschiedene Zustände eines Qubits kann man den Elektronenspin oder die Polarisation eines Photons angeben, aber es sind auch andere Optionen möglich. Hauptsache, in ihnen können auch Quanteneffekte beobachtet werden. Somit kann fast jedes Teilchen ein Qubit sein: ein Elektron, ein Photon, ein Ion und so weiter.

Wie kann sich ein Teilchen gleichzeitig in zwei Zuständen befinden und warum gehen die Informationen über einen der Zustände bei der Messung eines Qubits vollständig verloren? Am häufigsten sind zwei Interpretationen:

Die Kopenhagener Interpretation behauptet, dass die Erklärung der Position eines Teilchens vor seiner Messung keinen Sinn macht, da die Physik eine Wissenschaft ist, die auf genauen Messungen basiert und nicht die Phänomene erklären sollte, die nicht beobachtet werden können. Wenn wir also die Kopenhagener Interpretation akzeptieren, können wir daraus schließen, dass es auf physikalischer Mikroebene keine objektive Realität gibt.

Einige Wissenschaftler halten an einer Multi-Welt-Interpretation fest , nach der es unendlich viele parallele Universen gibt, und in einem Bruchteil dieser Universen kann ein Teilchen den Nullzustand annehmen, und im Rest kann es einen einzelnen Zustand annehmen. Die detaillierteste Beschreibung und philosophische Begründung für eine Multi-World-Interpretation findet sich in David Deutschs Buch The Structure of Reality.

Unabhängig davon, welche dieser Interpretationen Sie bevorzugen, können wir in jedem Fall davon ausgehen, dass beim Messen eines Qubits die Wellenfunktion zusammenbricht (dh sich nicht mehr wie eine Welle verhält und die Eigenschaften eines Partikels aufweist), während das Qubit dann einen der Zustände annimmt es wird tatsächlich ein klassisches Stück.

Im Allgemeinen sind klassische Bits eine Teilmenge von Qubits, so dass die klassische Informatik als Teilmenge der Wissenschaft des Quantencomputers angesehen werden kann. Wie oben erwähnt, wird jedes Qubit nach der Messung zu einem klassischen Bit, das jedoch später in einen Überlagerungszustand überführt werden kann.

Um immer noch zumindest einige Informationen über die Qubit-Überlagerung zu erhalten, können Sie einen ziemlich einfachen Life-Hack verwenden: Erstellen Sie dieselbe Überlagerung viele Male (wirken Sie mit denselben Operatoren auf das Qubit ein) und messen Sie das Qubit jedes Mal. Aus der Verteilung von Nullen und Einsen, die während der Messungen erhalten werden, kann man sich ein Bild von Wahrscheinlichkeiten machen, dh herausfinden, wie die Amplitudenmodule von Qubit-Zuständen ungefähr gleich sein können.

Was sind die Vorteile des quantenmaschinellen Lernens?


Was sind die Vorteile der Überlagerung für das Rechnen? Wenn auf einem normalen Computer beim Ausführen von Multithread-Programmen ein logischer Prozessor für jeden Thread erforderlich ist, kann auf einem Quantencomputer die Anzahl der Threads exponentiell zunehmen, wenn die Anzahl der Qubits in der Schaltung zunimmt.

Wenn beispielsweise 1024 Streams in einem normalen Computer die gleiche Anzahl logischer Prozessoren erfordern, sind es in einem Quantencomputer nur 10. Richtig, Sie können diese Streams nur indirekt verwenden, dh Sie können ihre Arbeit nicht direkt überwachen.

Sie müssen auch verstehen, dass sich die Algorithmen, die ein Quantencomputer verwendet, von den Algorithmen unterscheiden, die in den Abschnitten Informatik auf klassischen Computern untersucht wurden. Natürlich können Sie den klassischen Algorithmus nicht auf einen Quantencomputer übertragen, ohne ihn vorher zu ändern. Darüber hinaus ist es unwahrscheinlich, dass vom ursprünglichen Algorithmus etwas Bedeutendes übrig bleibt. Höchstwahrscheinlich wird es gründlich geändert, so dass nur eine allgemeine Idee davon übrig bleibt (wenn überhaupt etwas übrig bleibt).

Gleiches gilt für maschinelles Lernen. Für Quantencomputer existieren bereits Analoga klassischer Algorithmen für maschinelles Lernen (z. B. Random Forest, KNN, neuronale Netze). Erstens werden sie jedoch auf andere Weise implementiert, und zweitens werden früher oder später völlig neue Algorithmen auftauchen, die die Vorteile des Quantencomputers voll ausnutzen.

Alle Spezialisten auf dem Gebiet von Big Data und künstlicher Intelligenz sind sich Situationen bewusst, in denen ein Wissenschaftler lange auf das Lernen eines Modells warten muss.

Natürlich gibt es einfache Modelle (wie die lineare Regression), die in Sekundenschnelle mit kleinen Daten trainieren. Bei komplexeren Modellen wie neuronalen Netzen kann das Training jedoch einige Minuten bis mehrere Wochen dauern. Um mehrere Varianten solcher Modelle zu sortieren, ist bemerkenswerte Geduld erforderlich.

Es gibt auch solche Modelle, deren Verwendung selbst das geduldigste Datum des Wissenschaftlers verweigern wird. Insbesondere Modelle mit einer großen Anzahl von Gewichten oder solche, die eine umfassende Suche nach einer exponentiell wachsenden Anzahl von Kombinationen erfordern. Die Verwendung von Quantencomputern ist für solche Aufgaben geeignet, wodurch die Rechenzeit von mehreren Jahren auf mehrere Minuten reduziert werden kann.

Warum künstliche Intelligenz Algorithmen beschleunigen muss


In den letzten zwei oder drei Jahren haben sich die Bildverarbeitungstechnologien rasant entwickelt, und im vergangenen Jahr wurde viel in der Verarbeitung natürlicher Sprache erfunden.

In diesem Fall dauert das Training komplexer Modelle sehr lange. Wenn wir jedoch davon ausgehen, dass Modelle gleicher oder noch größerer Komplexität eine Größenordnung weniger Zeit in Anspruch nehmen würden, wäre es möglich, Hypothesen und Modelle viel schneller zu testen.

Dementsprechend würden die Fortschritte in diesen Bereichen schneller erfolgen: Anstelle von ein oder zwei bemerkenswerten Entdeckungen pro Monat könnten wir täglich davon hören. Das doppelt exponentielle Wachstum des Fortschritts des Quantencomputers kann zu der gleichen Fortschrittsrate beim maschinellen Lernen führen.

Quantencomputer-Mechanismen


Ein Photon, Elektron, Ion oder ein anderes Teilchen kann als Qubit wirken. Wenn dies ein Elektron ist, kann man seinen Spin (richtigen Drehimpuls) messen und so 0 oder 1 erhalten. In der Dirac-Notation werden diese Zustände wie folgt bezeichnet:

|0 rangle,|1 rangle



Der Zustand eines Qubits kann auch unter Verwendung eines Vektors ausgedrückt werden. Dies ist der Zustandsvektor eines Qubits gleich 0:

|0 rangle= beginbmatrix10 endbmatrix



Und dies ist ein Qubit-Vektor gleich 1:

|1 rangle= beginbmatrix01 endbmatrix



Eine wichtige Rolle beim Quantencomputing spielt der Hadamard-Operator:

H_1 = \ frac {1} {\ sqrt {2}} \ begin {bmatrix} 1 & 1 \\ 1 & -1 \ end {bmatrix}



Eine Möglichkeit, eine Überlagerung zu erhalten, besteht darin, den Hadamard-Operator auf ein Qubit anzuwenden, das sich in einem von zwei Grundzuständen befindet. In diesem Fall erhalten wir einen Qubit-Zustand, wenn die Wahrscheinlichkeiten, nach der Messung 0 oder 1 zu erhalten, gleich sind. So wird die Überlagerung erhalten, wenn der Anfangszustand des Qubits Null ist:

\\ H_1 \ cdot | 0 \ rangle = \ frac {1} {\ sqrt {2}} \ begin {bmatrix} 1 & 1 \\ 1 & -1 \ end {bmatrix} \ cdot \ begin {bmatrix} 1 \\ 0 \ end {bmatrix} = \ frac {1} {\ sqrt {2}} (| 0 \ rangle + | 1 \ rangle)



Eine solche Überlagerung wird sich jedoch herausstellen, wenn der Ausgangszustand einfach ist:

\\ H_1 \ cdot | 1 \ rangle = \ frac {1} {\ sqrt {2}} \ begin {bmatrix} 1 & 1 \\ 1 & -1 \ end {bmatrix} \ cdot \ begin {bmatrix} 0 \\ 1 \ end {bmatrix} = \ frac {1} {\ sqrt {2}} (| 0 \ rangle - | 1 \ rangle)



Eine weitere häufige Option für die Arbeit mit Qubits ist die Verwendung der Quantenverschränkung - eine solche Verbindung zwischen zwei Qubits, wenn sie selbst dann, wenn sie über eine große Entfernung voneinander getrennt sind, eine 100-prozentige Korrelation aufweisen. Wenn in direkter Korrelation eines der Qubits nach einer Messung einen bestimmten Zustand annimmt, erhält das andere Qubit genau den gleichen Zustand. Bei einer umgekehrten Beziehung nehmen Qubits nach der Messung entgegengesetzte Zustände an.

Welche Möglichkeiten bietet Quantencomputer und quantenmaschinelles Lernen?


Alle Spezialisten, die Zeit sparen möchten, können Quantencomputer für maschinelles Lernen verwenden. Operationen wie die schnelle Fourier-Transformation, das Finden der inversen Matrix, das Berechnen der Eigenwerte und Matrixvektoren auf einem Quantencomputer erfolgen mit exponentieller Beschleunigung.

Natürlich kann die Arbeit, die nicht sehr ressourcenintensiv ist (zum Beispiel Datenvisualisierung), auf einem normalen Computer fortgesetzt werden, aber Algorithmen für maschinelles Lernen oder zumindest diejenigen Teile, die mit Qubits beschleunigt werden können, können einem Quantencomputer übergeben werden.

Eine der Fragen, die Spezialisten stört: Wie arbeitet man mit Daten im Quantencomputer? Stellen Sie sich die Situation vor, dass wir ein Bild haben (um es einfacher zu machen, lassen Sie es schwarzweiß sein), das wir der Eingabe eines quantenneuralen Netzwerks unterwerfen möchten. Das Bild hat eine Größe von 256 x 256 Pixel - eine Standardgröße für die Bilderkennung.

Um dieses Bild als Zahlen darzustellen, codieren wir jedes Pixel mit einer 64-Bit-Gleitkommazahl (tatsächlich würde eine 8-Bit-Ganzzahl ausreichen, aber in der Praxis wird die Matrix mit Pixelwerten skaliert, bevor sie auf den Eingang des neuronalen Netzwerks angewendet wird Die Matrix ist mit 32- oder 64-Bit-Zahlen gefüllt. Ein solches Bild kann in Form einer Matrix von 65536 Zahlen dargestellt werden, die 512 Kilobyte wiegt (das neuronale Netzwerk empfängt ein unkomprimiertes Bild als Eingabe), d. H. 4194304 Bits werden benötigt.

Wenn dieses Bild mit Qubits codiert wird, ist ihre Anzahl erheblich kleiner: Wir übersetzen n Qubits in eine Überlagerung, und der Wert jedes Pixels kann als Amplitude für jeden der möglichen Zustände dargestellt werden. Die Anzahl solcher Zustände beträgt zwei in Grad n. Um n zu finden, finden wir den binären Logarithmus der Anzahl der Pixel.

Wie Sie sehen, sind die Aktionen recht einfach, sodass Sie nicht einmal Formeln schreiben müssen. Infolgedessen stellt sich heraus, dass die Zahl n 16 ist. So viele Qubits werden benötigt, um dieses Bild zu codieren, dh 262144-mal weniger als bei Verwendung klassischer Bits.

Wenn wir 66 Qubits haben und diese dann in eine Überlagerung übersetzen, können Sie mehr als eine Billion Farbbilder im 4K-Format codieren.

Somit ermöglicht die Quantencodierung das Erreichen einer logarithmischen Komprimierung von Informationen. Dementsprechend kann die Beschleunigung von Methoden des maschinellen Lernens beim Arbeiten mit solchen Daten exponentiell sein.

Spezialisierte Programmiersprachen und Bibliotheken


Heutzutage haben viele Programmiersprachen Bibliotheken für Quantencomputer. Einige dieser Bibliotheken arbeiten nur mit der Simulation von Quantencomputern, aber viele unterstützen echte Quantencomputer, einschließlich Cloud-Computer, als Backend.

Wenn Sie direkt mit Qubits arbeiten, entspricht dies dem Schreiben von Assembler-Code auf niedriger Ebene auf klassischen Computern. Seltsamerweise ist Python eine dieser „Low-Level“ -Programmiersprachen, mit denen Berechnungen auf Quantencomputern programmiert werden.

Eine der Bibliotheken für diese Sprache - Qiskit - funktioniert sowohl im Simulator als auch im Quanten-Backend und ermöglicht auch die Ausführung von Operationen mit Qubits auf niedriger Ebene. Für die Programmierung auf höherer Ebene ist es bequem, PennyLane zu verwenden, eine Bibliothek für quantenmaschinelles Lernen. Das Repository dieser Bibliothek enthält Beispiele für die Implementierung von Algorithmen für maschinelles Lernen, einschließlich eines quantenneuralen Netzwerks.

Perspektiven für Quantum Computing


Im Januar 2019 wurde der erste kommerzielle Quantencomputer veröffentlicht - der IBM Q System One. Für das Quantencomputing können Sie jetzt Cloud-Systeme sowohl für Forscher als auch für kommerzielle Unternehmen verwenden.

Jeder kann seinen Quantenalgorithmus auf der IBM Q Experience Cloud-Plattform ausführen, und Sie müssen nicht einmal Programmiersprachen kennen, um ein Quantenschema zu erstellen, da Sie neben der Eingabe von Befehlen auch die grafische Oberfläche namens Circuit Composer verwenden können.

Im September 2019 wurde inoffiziell bekannt, dass Google eine Quantenüberlegenheit erreicht hatte, indem eines der Probleme auf einem Quantencomputer mit einer Geschwindigkeit gelöst wurde, die selbst dem leistungsstärksten Supercomputer nicht zur Verfügung stand. Selbst wenn die Nachrichten verfrüht sind, deuten solche Berichte darauf hin, dass die Quantenüberlegenheit nahe ist.

Mehrere IT-Giganten suchen sofort nach den besten Lösungen für Quantencomputer. Einige Forscher sagen voraus, dass ein ähnliches Gesetz wie das von Moore für Quantencomputer gelten wird.

Zwar ist die Entwicklungsgeschwindigkeit im Gegensatz zu klassischen Computern höchstwahrscheinlich kein gewöhnlicher einzelner Exponent, sondern ein doppelter Exponent, sodass Programmierer, die mit Quantencomputern arbeiten, in naher Zukunft eine große Anzahl von Programmen erstellen müssen.

In der Sphäre der Werbung und des Marketings, in der ich derzeit arbeite, müssen die angewandten Modelle des maschinellen Lernens eine vollständige Transformation erfahren. Was auf klassischen Computern funktioniert, wird in Bezug auf Geschwindigkeit und Qualität den Modellen der Zukunft deutlich unterlegen sein.

Die neuesten Technologien werden den Scanprozess der Zielgruppen nicht weniger verändern. Schwer fassbare Bots, die von Quantencomputern gesteuert werden, pflügen offene Räume sozialer Netzwerke und erfassen die kleinsten Veränderungen im Geschmack und in der Stimmung des Publikums. Wer weiß, vielleicht können Werbekampagnen selbst nur gestartet werden, indem dem Computer allgemeine Wünsche zu ihren Zielen geäußert werden.

Source: https://habr.com/ru/post/de472760/


All Articles