Transformer (Maschinelles Lernen)

Was ist ein Transformer?

Transformer im Bereich des maschinellen Lernens sind eine Form von neuronalen Netzen, welche sich einen sogenannten Attention-Mechanismus (dt. Aufmerksamkeit) zunutze machen. Dabei wird ein Teil einer Eingangsgröße (beispielsweise ein Wort, eine Wortsilbe eines Satzes oder ein Pixel eines Bildes) mit den restlichen Teilen einer Eingangsgröße in Beziehung gestellt.

Ziel dieser Methode ist es, dass das jeweilige Wort oder Pixel durch die Kombination mit den restlichen Bestandteilen zum Verständnis der Gesamtdaten beiträgt. Beispielsweise ist bei Suchanfragen im Internet das Verständnis von Pronomen und Präpositionen in Zusammenhang mit Nomen elementar, da nur so eine Erfassung des Sinnes der Gesamtsuche möglich und zielführend ist.

Transformer finden sich vorwiegend bei Anwendung im Bereich des Deep Learning zur Texterkennung, -verarbeitung oder der Bilderkennung.

Architektur im Deep Learning

Die Struktur eines Transformer im maschinellen Lernen ist grundsätzlich in einen Encoder und einen Decoder unterteilt. Die Abfolge des Datendurchlaufs im Encoder und Decoder stellt sich wie folgt dar.

Im ersten Prozessschritt wird der Input durch das „Input Embedding“ in verarbeitbare Daten in Form von Vektoren transferiert. Im nächsten Schritt werden dem Transformer die Position der Vektoren (bzw. Wörter in einem Satz) durch das „Positional Encoding“ in Form einer Indexierung mitgeteilt. Daraufhin folgt das Durchlaufen des ersten Attention-Mechanismus. In dieser Multi-Head-Attention-Schicht vergleicht der Transformer die aktuell verarbeitenden Daten (z. B. ein Wort) mit allen anderen Daten (z. B. die restlichen Wörter einen Satzes) und ermittelt die Relevanz. Aufgrund dieses Selbstvergleichs wird diese Schicht auch „Self-Attention“ genannt.

Nun folgt der Schritt „Add & Norm“ in welchem die Ursprungsdaten vor Durchlaufen der Multi-Head-Attention-Schicht unverändert kopiert und mit den verarbeiteten Daten aus der Multi-Head-Attention-Schicht addiert und normiert werden. Die letzte Schicht des Encoders bildet die „Feed-Forward-Schicht“, welche durch ein neuronales Netz mit einer Input-, einer verdeckten und einer Output-Schicht dargestellt wird und die Werte durch eine nicht lineare Aktivierungsfunktion auf einen Bereich von 0 bis unendlich umwandelt. Abgeschlossen wird die Encoder-Verarbeitung mit einem abermaligem und zuvor beschriebenen „Add & Norm“-Schritt.

Im nächsten Prozessschritt startet der Decoder, indem eine Output-Sequenz initialisiert und positioniert wird. Dies erfolgt analog zum Encoder durch das „Output Embedding“ und „Positional Encoding“. Gefolgt wird dieser Schritt vom Durchlaufen der „Masked Multi-Head Attention“-Schicht, welche vor allem in der Trainingsphase des Modells von Relevanz ist. Hier lernt der Decoder aus einem Ist-Inputnden Trainingsdaten einen Soll-Output zu generieren bzw. sich diesen anzunähern. Aufgrund der parallelen Arbeitsweise des Transformers im maschinellen Lernen liegt dem Decoder bereits im Trainingsmodus die jeweilige Position der einzelnen Outputs-Sequenz vor, wodurch die zukünftige Position der Output-Sequenz maskiert bzw. verschleiert wird. Davon hat diese Schicht auch ihren Namen.

Nach dieser Schicht folgt wieder ein „Add & Norm“ Schritt, bevor die Daten an die Multi-Head-Attention-Schicht weitergegeben werden. Diese Schicht wird auch als „Encoder-Decoder Attention“ bezeichnet, da hierbei eine Verbindung zwischen dem Encoder und dem Decoder hergestellt wird. Sie verbindet somit die im Encoder durchlaufenen Input-Sequenzen mit den bisher generierten Output-Sequenzen und wird deshalb auch als „Cross-Attention“-Verbindung bezeichnet. Dieser Mechanismus wird benötigt, um beispielsweise im Rahmen der Übersetzung eines Textes in eine andere Sprache zu errechnen, welches Wort der Zielsprache als Nächstes im Satz gereiht werden sollte. Gefolgt wird diese Schicht wieder von einem „Add & Norm“ Schritt, einer „Feed-Forward-Schicht“, welche dem Vorgehen aus dem Encoder gleicht, sowie einem abermaligen „Add & Norm“ Schritt. Im vorletzten Schritt des Transformers im Deep Learning werden in der linearen Schicht die bis dato verarbeiteten Daten/Vektoren in einen größeren Vektor überführt, um so beispielsweise das gesamte Vokabular einer Zielsprache im Rahmen einer Übersetzung darstellen zu können. In der abschließenden Softmax-Funktion wird für jede Output-Sequenz eine Wahrscheinlichkeit zwischen 0 und 1 errechnet und so der wahrscheinlichste endgültige Output errechnet.

Temporal Difference Learning

Was ist Temporal Difference Learning?

Temporal Difference Learning (auch TD-Learning genannt) beschreibt eine Ausführung des sogenannten bestärkenden Lernen bzw. verstärkenden Lernen (engl. Reinforcement Learning), welches neben dem überwachten Lernen (engl. Supervised Learning) und dem unüberwachten Lernen (engl. Unsupervised Learning) eine der drei Lernmethoden des Machine Learnings darstellt.

Wie bei anderen Methoden des bestärkenden Lernens sind auch beim Temporal Difference Learning für den Lernalgorithmus keine Ausgangs- oder Trainingsdaten notwendig. Das System bzw. ein Software-Agent lernt anhand eines Trial-and-Error-Verfahrens, indem er für eine Folge von Entscheidungen/Aktionen eine Belohnung erhält und seine zukünftige Strategie entsprechend ausrichtet und anpasst. Das Modell des Algorithmus basiert auf dem Markow-Entscheidungsproblem, bei welchem sich der Nutzen für einen Software-Agenten aus einer Folge von Aktionen ergibt.

Im Gegensatz zu anderen Lernmethoden aktualisiert sich die Bewertungsfunktion beim TD-Learning mit der entsprechenden Belohnung nach jeder einzelnen Aktion und nicht erst nach Durchlaufen einer Sequenz von Aktionen. Dadurch nähert sich die Strategie iterativ an die Optimalfunktion an. Dieses Verfahren wird als Bootstrapping bzw. Bragging bezeichnet und hat das Ziel, die Varianz bei der Lösungsfindung zu verringern.

Welche Algorithmen existieren im TD-Learning?

Innerhalb des Temporal Difference Learning existieren mehrere Algorithmen zur Umsetzung der Methode.

Beim Q-Learning bewertet der Software-Agent statt des Nutzenniveaus eines Zustandes den Nutzen einer durchzuführenden Aktion und wählt jene Aktion mit dem größten Nutzenzuwachs auf Basis der aktuellen Bewertungsfunktion. Angesichts dessen spricht man beim Q-Learning von einer „action-value function“ anstatt einer „state-value function“.

Auch bei SARSA (Abkürzung für „state-action-reward-state-action“) handelt es sich um einen Algorithmus mit einer action-value function. Neben dieser Gemeinsamkeit mit Q-Learning unterscheidet sich SARSA von Q-Learning dahin gehend, dass es sich bei Q-Learning um einen off-policy-Algorithmus handelt, bei SARSA hingegen um einen on-policy-Algorithmus. Bei einer off-policy wird zur Aktionsfindung der nächste Zustand berücksichtigt, während bei on-policy der Algorithmus sowohl den nächsten Zustand als auch seine aktuelle Aktion berücksichtigt und der Agent somit zur Berechnung der Folgeaktion seiner Strategie treu bleibt. Die bisher betrachteten Algorithmen berücksichtigen lediglich die unmittelbare Belohnung der nächsten Aktion.

Bei sogenannten TD n-step Methoden werden hingegen die Belohnungen der n nächsten Schritte einbezogen.

Bei TD-Lambda TD(λ) handelt es sich um eine Erweiterung des Temporal Difference Learning Algorithmus. Dabei besteht die Möglichkeit, dass nicht lediglich ein einziger Zustand zur Anpassung der Bewertungsfunktion führt, sondern innerhalb einer Sequenz die Werte mehrerer Zustände angepasst werden können. Die Zerfallsrate λ regelt für jeden einzelnen Zustand das Ausmaß der möglichen Änderung, wobei sich diese Größe mit jeder Iteration vom betrachteten Zustand entfernt und exponentiell abnimmt. TD-Lambda lässt sich auch auf die Methoden von Q-Learning und SARSA anwenden.

Wofür werden diese Algorithmen in der Praxis genutzt?

Die Anwendungsbereiche von Temporal Difference Learning im Rahmen der Reinforcement Learning Methoden sind vielfältig. Ein plakatives Nutzungsbeispiel ist dabei das Spiel TD-Gammon, welches sich am Spiel Backgammon orientiert und durch einen TD-Lambda-Algorithmus entwickelt wurde. Ähnliches gilt auch für das Spiel AlphaGo, welches auf dem japanischen Brettspiel Go basiert.

Ein Anwendungsfall von Q-Learning findet sich im Rahmen des autonomen Fahrens im Straßenverkehr, indem das System selbstständig kollisionsfreie Überholstrategien und Spurwechsel erlernt und anschließend eine konstante Geschwindigkeit beibehält.

SARSA lässt sich hingegen beispielsweise dafür einsetzen, Kreditkartenbetrug aufzudecken. Die SARSA-Methode errechnet den Algorithmus zur Erkennung von Betrug, während das Klassifizierungs- und Regressionsverfahren eines Random-Forest die Genauigkeit der Vorhersage von Kreditkartenausfällen optimiert.

Texterkennung (Optical Character Recognition)

Was ist Texterkennung?

Die optische Texterkennung (im Englischen Optical Character Recognition, kurz OCR) wandelt analogen Text in einen editierbaren, digitalen Text um. So wird zum Beispiel ein ausgedrucktes Formular eingescannt und von der OCR-Software in ein Textdokument am Computer umgewandelt, welches danach durchsucht, bearbeitet und gespeichert werden kann.

Mo­derne OCR-Texterkennung ist in der Lage, über 99 % der Textinformationen richtig zu erkennen. Wörter, die nicht erkannt werden, werden vom Programm gekennzeichnet und durch den Nutzer korrigiert.

Um die Ergebnisse weiter zu verbessern, wird OCR-Texterkennung oft mit Methoden der Kontextanalyse (im Englischen Intelligent Character Recognition, kurz ICR) ergänzt. Wenn die Texterkennungssoftware zum Beispiel „2immer“ erkannt hat, wird die „2“ zu einem „Z“ korrigiert, wodurch das im Kontext sinnhafte Wort „Zimmer“ ausgegeben wird.

Daneben gibt es auch Intelligent Word Recognition (IWR), welche die Probleme bei der Erkennung von Fließhandschriften lösen soll.

Einige Beispiele für kostenlose und kostenpflichtige Optical-Character-Recognition-Software (in alphabetischer Reihenfolge):

  • ABBYY FineReader PDF
  • ABBYY FlexiCapture
  • Adobe Acrobat Pro DC
  • Amazon Textract
  • Docparser
  • FineReader
  • Google Document AI
  • IBM Datacap
  • Klippa
  • Microsoft OneNote
  • Nanonets
  • OmniPage Ultimate
  • PDF Reader
  • Readiris
  • Rossum
  • SimpleOCR
  • Softworks OCR
  • Soda PDF
  • Veryfi

Eine OCR-Texterkennung mit Python oder C# selbst schreiben

Es ist möglich, mit den Programmiersprachen Python oder C# selbst Texterkennung in Skripte einzubauen. Dafür wird die kostenlose OCR-Bibliothek Tesseract benötigt, welche für Linux und Windows funktioniert.

Diese Herangehensweise bietet eine individuell anpassbare Lösung zur Texterkennung, sowohl für Scans als auch für Fotos.

Wie funktioniert eine Optical-Character-Recognition-Software?

Die Grundlage bildet die Rastergrafik (Bildkopie des Texts), welche mithilfe eines Scanners oder einer Kamera vom physisch vorhanden Text, zum Beispiel einer Buchseite, erstellt wird. Die Texterkennung eines Fotos ist hierbei meist schwieriger, als bei einem Scan, bei dem die Bildkopie sehr ähnlich gute Voraussetzungen liefert. Bei einem Foto können Belichtung und Aufnahmewinkel des Dokuments Probleme bereiten, welche aber wiederum durch den Einsatz von KI berichtigt werden können.

Danach arbeitet die OCR-Software in 3 Schritten:

1. Erkennung der Seiten- und Gliederungsstruktur

Die eingescannte Grafik wird auf dunkle und helle Bereiche analysiert. Dabei werden im Normalfall die dunklen Bereiche als zu erkennende Zeichen und die hellen Bereiche als Hintergrund identifiziert.

2. Muster- oder Merkmalserkennung

Darauf folgt die Weiterverarbeitung der dunklen Bereiche, um alphabetische Buchstaben oder numerische Ziffern zu finden. Die Vorgehensweise der verschiedenen OCR-Lösungen unterscheidet sich dabei, ob jeweils nur ein Zeichen, ein Wort oder ein Textblock auf einmal erkannt wird. Die Zeichen werden mithilfe von Muster- oder Merkmalserkennung identifiziert:

Mustererkennung: Das OCR-Programm vergleicht die zu prüfenden Zeichen mit seiner Datenbank von Textbeispielen in verschiedenen Schriftarten und Formaten und erkennt dabei gleiche Muster.

Merkmalserkennung: Das OCR-Programm wendet Regeln bezüglich der Merkmale eines bestimmten Buchstabens oder einer Zahl an. Merkmale können beispielsweise die Anzahl der abgewinkelten Linien, gekreuzte Linien oder Kurven in einem Zeichen sein.

Zum Beispiel besteht die Information für den Buchstaben “F” aus einer langen Senkrechten und 2 kurzen, rechtwinkligen Linien.

3. Codierung in Ausgabeformat und Fehlerkontrolle

Je nach Anwendungsgebiet und genutzter Software wird das Dokument in unterschiedlichen Formaten gespeichert. Beispielsweise wird es als Word- oder PDF-Datei ausgegeben, oder direkt in einer Datenbank gespeichert.

Zudem erfolgt im letzten Schritt auch die Fehlerkontrolle durch den Anwender, um nicht erkannte Wörter oder Zeichen manuell zu korrigieren.

Wie unterstützt KI die Texterkennung?

Zum einen unterstützt Künstliche Intelligenz (KI) bei der Texterkennung schon bei der Optimierung der Rastergrafik, vor allem bei Fotos. Ist das einzulesende Dokument geknickt oder zerknittert, so ist der Text teilweise zu schräg oder verzerrt, wodurch die OCR-Software Probleme bei der Bearbeitung bekommt. Bei Fotos können auch eine schlechte Belichtung und ein unpassender Aufnahmewinkel zu schlechten Bedingungen für die OCR-Software führen.

Mithilfe von KI kann das Dokument in seiner Struktur „geglättet“, die Beleuchtung optimiert und der Winkel korrigiert werden und bietet damit wieder gute Voraussetzungen für die Texterkennung.

Zum anderen verbessert KI die Resultate der Texterkennung an sich. Mit jedem Text und jeden korrigierten Fehler lernt die Künstliche Intelligenz dazu. Damit minimieren sich immer weiter die Fehler bei der Texterkennung und die OCR-Software liefert stetig bessere Ergebnisse.

Technologische Singularität

Was ist eine Singularität?

Eine Singularität ist ein Begriff, der in unterschiedlichen Zusammenhängen Verwendung findet. Singularitätenereignisse sind vereinzelt auftretende Erscheinungen. Der Wortstamm singulus stammt aus dem Lateinischen und bedeutet einzeln.

Sowohl in der Mathematik als auch in der Physik und der Astrophysik gibt es Singularitäten, die als ein Ort unendlicher Krümmung der Raumzeit beschrieben. In der Systemtheorie hingegen gilt Singularität als der Zusammenhang, in dem praktisch eine kleine Ursache eine große Wirkung hervorruft. Die Geografie beschreibt diese als ein Objekt, welches sich deutlich von der Umgebung unterscheidet, jedoch nicht wesentlich ist für die Landschaft. Darüber hinaus beschreibt die technologische Singularität Theorien der Zukunftsforschung.

Wann tritt technologische Singularität ein?

Interessant ist in der technologischen beziehungsweise technischen Singularität der Zeitpunkt, ab wann die Künstliche Intelligenz die menschliche Intelligenz übertrifft. Ab diesem Zeitpunkt wird mit rasanten technologischen Verbesserungen gerechnet, bis hin zur Selbstreproduktion von Technik.

Dadurch kann der technische Fortschritt irreversibel und absolut beschleunigt fortschreiten. Technologische Durchbrüche werden dabei in der Computerindustrie, bei Nanomaterialien (Graphen), bei optischen Computern und Quantencomputern erwartet. Es wird exponentielles Wachstum in der IT erwartet. Auch die Singularität in der Robotik ist gleichbedeutend mit einer rapiden Weiterentwicklung von Industrie und Maschinen. Roboter könnten die Arbeit in vielen Branchen und Bereichen erleichtern oder sogar vollständig übernehmen.

Die weitere Zukunft der Menschheit wäre nach dem Eintritt einer technologischen Singularität nicht mehr vorhersehbar. Tritt eine technische Singularität bei Künstlicher Intelligenz auf, könnte sich diese nicht nur reproduzieren und optimieren, sondern wäre durchaus in der Lage ein eigenes Bewusstsein zu entwickeln. Eine höhere Intelligenz ist demzufolge die letzte Erfindung der Menschheit, da spätere Erfindungen weitestgehend durch Maschinen hervorgebracht würden.

Viele Zukunftsforscher haben bislang Schätzungen zur technischen Singularität prognostiziert und mussten diese mehrfach um Jahrzehnte in die Zukunft verschieben. Wahrscheinlich ist, dass die technologische Singularität ganz überraschend eintritt und selbst für die an der Entwicklung Beteiligten nicht vollständig vorhergesehen werden kann. Eng verbunden ist der Begriff der technologischen Singularität mit den Theorien und Ideen des Transhumanismus und Posthumanismus. Es wird davon ausgegangen, dass durch die technologische Entwicklung die Dauer der menschlichen Lebenserwartung sich maßgeblich steigern lässt und praktisch biologische Unsterblichkeit verwirklichen lässt.

Was sind Singularitäten in einer FEM-Simulation?

Eine FEM-Singularität tritt dann auf, wenn numerische Gleichungen gelöst werden sollen. Das zu berechnende Gebilde ist dabei durch unzureichende Randbedingungen definiert, das Gleichungssystem kann nicht gelöst werden und es werden keine technisch sinnvollen Ergebnisse durch die Berechnung erbracht. Die FEM-Singularität kann vermieden werden, indem die Teile so konstruiert werden, wie sie auch gefertigt wurden.

Trainingsdaten

Was sind Trainingsdaten?

Trainingsdaten sind im Rahmen von Künstlicher Intelligenz und für Maschinelles Lernen unerlässlich, um das System zu trainieren. Beim Unüberwachten Lernen benötigt man keinerlei Beispiele und es kann das KI-System direkt mit entsprechenden Eingabedaten trainiert werden. Beim Überwachten Lernen hingegen werden Beispieldaten benötigt. Bei diesen Daten wird die Zielvariable vorgegeben. Der Datensatz wird Beispieldatensatz genannt.

Beim Überwachten Lernen wird der Datensatz in verschiedene Datensätze unterteilt: in Trainings-, Validierungs- und Testdaten. Diese drei Datensätze werden dann aus dem „Machine Learning Flatfile“ (dem Beispieldatensatz) erstellt. So ist die mögliche Aufteilung wie folgt:

  • 70% Trainingsdatensatz
  • 10% Testdatensatz
  • 20% Validierungsdatensatz

Der Trainingsdatensatz ist ein Datensatz, der mit Beispielen gefüllt ist. Diese werden auch Zielvariablen genannt. Der Datensatz wird für das Lernen von Mustern und Zusammenhängen herangezogen. Eine Anpassung von Gewichten des Algorithmus wird über einen Trainingsdatensatz antrainiert. Der Algorithmus lernt also aus solchen Daten. Die Trainingsdaten mit den entsprechenden Beispielen werden dann für Regressions- und Klassifikationsprobleme benötigt. Algorithmen tendieren dazu, sich an gelernte Muster aus den Trainingsdaten übermäßig anzupassen. Zusammenhänge und Beziehungen können dann aus den Trainingsdaten zu stark verinnerlicht werden und als Konsequenz funktionieren diese Regeln dann in ihrer Gesamtheit nicht mehr mit einer hohen Genauigkeit.

Testdaten sind unabhängig von Trainingsdaten und sollten die gleiche Wahrscheinlichkeitsverteilung wie die Trainingsdaten aufweisen. Beim Training werden die Testdaten nicht genutzt und der Algorithmus kennt solche Daten also nicht. Bei den Testdaten sind Beispiele und Zielvariablen vorhanden und daran kann im Anschluss die entsprechende Qualität des Modells gemessen werden. Sobald das trainierte Modell richtig zu den Testdaten zu passen scheint und die Beispieldaten in einer guten Qualität vorhergesagt werden, so wird das Modell auf unbekannte und zu bewertende Daten angewandt.

Der Validierungsdatensatz kann ebenfalls als Beispieldatensatz angesehen werden. Solche Daten werden für eine Abstimmung mit Hyperparametern eines Modells eingesetzt. Vor allem die Überanpassung des Modells auf Trainingsdaten soll damit vermieden werden.

Wozu benötigt man Trainingsdaten?

Allgemein werden Trainingsdaten benötigt, um maschinelles Lernen und Künstliche Intelligenz korrekt aufzusetzen. Das Training von Systemen wird mit anforderungsspezifischen Trainingsdatensätzen unterstützt. Die benötigten Datensätze können neu und individuell bereitgestellt werden und die Daten werden gekennzeichnet und annotiert. Auch werden vorhandene Trainingsdaten und Systemergebnisse validiert.

Eine der schwierigsten Aufgaben bei einer Entwicklung von einem System zum maschinellen Lernen ist das Sammeln von großen Mengen an qualitativ hochwertigen KI-Trainingsdaten. Dienstleister bieten für jedes Ihrer Projekte einzigartige und neu erstellte KI-Trainingsdaten an. So werden Fotos, Audio- und Videoaufnahmen und auch Texte geliefert und diese unterstützen dann bei der Programmierung von lernbasierten Algorithmen.

Welche Trainingsdaten benötigen Künstliche Intelligenz und Maschinelles Lernen?

Künstliche Intelligenz wird eingesetzt bei der Routenplanung, bei Qualitäts-Kontrollen in der Produktion und bei der Analyse von Röntgenbildern. Zunehmende Bedeutung haben vor allem Trainingsdaten für das maschinelle Lernen.

KI-Systeme werden mit geeigneten Daten trainiert. Die in den Trainingsdaten erkannten Muster und die Informationen können dann die Systeme nach dem Abschluss des Trainingsprozesses auf unbekannte Datenbestände übertragen. Der Bedarf von solchen Trainingsdaten wird in den vor uns liegenden kommenden Jahren stark zunehmen.

Bei Unternehmen, die KI entwickeln oder auch einsetzen, werden häufig auch Datensätze mit personenbezogenen Daten referenziert. Dabei sind stets rechtliche Vorgaben bei der Arbeit mit Trainingsdaten in Systemen des maschinellen Lernens zu beachten und einzuhalten. Es ist so, dass Datensouveränität und Datensorgfalt die Datensparsamkeit als Leitmotiv ablösen müssen, um den großen Zukunftsherausforderungen begegnen zu können.