In diesem Artikel werden wir uns einen der Ansätze zur automatischen Erkennung von handgeschriebenen Texten genauer ansehen: PyLaia. Es ist ein Nachfolger von Laia, der 2018 von Joan Puigcerver und Carlos Mocholí entwickelt wurde. In der einfachsten Beschreibung nimmt es ein Bild von Text als Eingabe und erzeugt die entsprechenden Zeichen als Ausgabe. Der Kern dieses Algorithmus ist ein tiefes neuronales Netz, dessen Komponenten jedoch etwas anspruchsvoller sind als die eines einfachen Perzeptrons (siehe unsere Einführung in neuronale Netze hier). Die gesamte Modellarchitektur ist in der nachstehenden Abbildung zusammengefasst, aber um sie zu verstehen, müssen wir uns zunächst einige der größten Fortschritte beim Deep Learning im letzten Jahrzehnt genauer ansehen.
Faltungsnetzwerke
Die erste Stufe besteht aus sogenannten Conv. Blöcken, oder Faltungsblöcken. Wir sprachen bereits über diese in einem anderen ArtikelAber lassen Sie uns einen genaueren Blick auf das werfen, was tatsächlich passiert. In einer Faltungsschicht wird das Eingabebild mit einer Kernel, die im Wesentlichen nur eine Zahlenmatrix ist. Da die rohen Bilddaten ebenfalls als eine Matrix numerischer Pixelwerte betrachtet werden können, läuft der gesamte Vorgang der Faltung auf eine riesige Anzahl von Matrixmultiplikationen hinaus, bei denen der Kernel über das gesamte Bild gleitet - Spalte für Spalte und Zeile für Zeile -, um einen neuen Satz von Pixelwerten zu erzeugen. In den alten Tagen der Bildverarbeitung wurden diese Kernel manuell entwickelt, um bestimmte Aufgaben zu erfüllen, z. B. die Kantenerkennung. Der folgende Kernel tut genau das: Er erkennt vertikale Kanten, indem er über alle 3×3-Pixel-Unterbilder des Originalbildes streicht. Traditionell könnte dies der erste Schritt in einem komplizierten, manuell kodierten Algorithmus sein, der versucht, Objekte in einem Bild zu finden. Früher war dies jedoch so schwierig, dass selbst die ausgefeiltesten Algorithmen nicht zuverlässig waren. differenzierte Bilder von Katzen und Hunden.
Bildquelle: Wikimedia
Dann, vor etwa 10 Jahren, änderte sich alles. Das ImageNet-Projekt, das einen der größten Bilderkennungswettbewerbe durchführt, verzeichnete plötzlich enorme Fortschritte bei seinen Spitzenkandidaten. Bei diesem Wettbewerb müssen die Algorithmen mehrere tausend Objektklassen in einem Datensatz erkennen, der Millionen von handbeschrifteten Bildern umfasst. Einer der berühmtesten Gewinner, AlexNetist ein tiefes neuronales Netz, das Wahrscheinlichkeitsschätzungen für jede einzelne Klasse liefert. Es hat es geschafft, 63% aller Bilder richtig zu klassifizieren (d. h. der richtigen Klasse die höchste Wahrscheinlichkeit zuzuordnen), und bei fast 85% aller Bilder war die richtige Klasse zumindest unter den Top 5 der AlexNet-Vorhersagen. Solche Zahlen wurden noch vor wenigen Jahren für völlig unmöglich gehalten. Wie war dies also möglich? Es stellte sich heraus, dass man Kernel als abstimmbare Parameter in einem neuronalen Netz festlegen kann, so dass das Modell bei ausreichenden Trainingsdaten einfach die richtigen Matrizen lernt.
Durch den Einsatz von GPU-beschleunigtem Rechnen konnten diese Art von neuronalen Netzen plötzlich in wenigen Stunden lernen, was Menschen in vielen Jahrzehnten nicht herausfinden konnten. In den nächsten Jahren wurden die Convnet-Architekturen immer weiter verfeinert. Einen großen Anteil daran hatte die Einführung der so genannten restliche Netze, bei denen die Ausgaben der Schichten manchmal die Schichten umgingen, um dann zu einem späteren Zeitpunkt wieder eingespeist zu werden. Dies verbesserte die Trainingseffizienz erheblich, da die Netze immer tiefer wurden, um höhere Abstraktionsebenen zu erfassen. Schließlich führten diese Entwicklungen zu Modellen, die den durchschnittlichen Menschen bei einer Vielzahl von Bilderkennungsaufgaben übertreffen konnten. Heute ist eine genaue Bildklassifizierung mit Hilfe von Faltungsnetzen fast trivial geworden. Dank moderner Softwarebibliotheken und GPU-Anbietern, die auf den Zug aufgesprungen sind, kann die Bildklassifizierung fast als gelöstes Problem betrachtet werden. Darüber hinaus ist es dank Konzepten wie Feinabstimmung und Transferlernen sogar möglich, Probleme mit vergleichsweise geringen Mengen an Trainingsdaten zu lösen. Was wollen wir also noch erreichen, wenn es um Texterkennung geht? Hätten wir es nur mit Bildern von einzelnen Buchstaben oder Zahlen zu tun, wäre unsere Geschichte hier zu Ende. Deren korrekte Kennzeichnung ist in der Tat trivial. Aber handgeschriebener Text ist komplizierter. Erstens gibt es fast unendlich viele Handschriften, und die Modelle lassen sich in der Regel nicht gut auf Texte verschiedener Autoren übertragen. Hinzu kommt, dass selbst für das geschulte menschliche Auge bestimmte Zeichen nur im Kontext eines Wortes oder vielleicht eines ganzen Satzes einen Sinn ergeben können. Um genauere HTR-Vorhersagen zu erhalten, müssen wir also über die reine Bildklassifizierung hinausgehen und auch die Verarbeitung natürlicher Sprache berücksichtigen. In Teil 2 dieser Serie werden wir einen genaueren Blick auf die anderen großen Fortschritte beim Deep Learning werfen: rekurrente neuronale Netze.