Zwei Modellfamilien, zwei Sichtweisen
RNN auf Strichen oder CNN auf Bildern?
Eine Zeichnung lässt sich auf zwei Arten verstehen: als Bewegung oder als
Bild. Rekurrente Netze lesen die zeitliche Folge der Stiftpunkte,
CNNs betrachten die daraus gerasterte Form. Beide Wege sind gangbar, und
welcher der richtige ist, hängt weniger von der Genauigkeit ab als von der
Frage, die man dem Modell eigentlich stellt.
RNN / Sketch-RNN
Ein rekurrentes Netz liest eine Sequenz: Punkt für Punkt, Strich für
Strich. Reihenfolge, Richtung, Stiftheben und Tempo bleiben als
Information erhalten. Sketch-RNN nutzt diese Repräsentation, um Skizzen
zu modellieren und neue Zeichnungen zu erzeugen.
CNN / Bildklassifikation
Ein CNN bekommt ein gerastertes Bild, in DrawLa 96 × 96 Pixel. Es
lernt lokale Muster wie Kanten und Bögen und setzt sie zu Formen
zusammen. Robust, schnell und passend, wenn nur eine Frage zählt:
Welcher Begriff ist am wahrscheinlichsten?
Was in den Rohdaten steckt
Quick Draw liefert weit mehr, als ein Bild zeigen kann. Jede Zeichnung
ist eine Folge von Zuständen, in der Trainingsvorbereitung als Vektor
mit vier Merkmalen pro Punkt kodiert:
dx, dy, pen_down, pen_up # relative Bewegung + Stiftzustand
SEQ_LEN = 256 # auf feste Länge gepolstert
dx und dy sind relative Bewegungen,
keine absoluten Koordinaten — dadurch ist die Sequenz von vornherein
unabhängig davon, wo auf der Leinwand gezeichnet wurde. Aus dieser
Darstellung lässt sich ablesen, in welcher Reihenfolge jemand vorgegangen
ist, wo der Stift abgesetzt wurde und wie schnell sich die Hand bewegt
hat.
Beim Rastern in ein Bild geht all das verloren. Übrig bleibt die
Silhouette. Ob das ein Verlust oder eine Befreiung ist, ist genau die
Frage, um die es hier geht.
Direkter Vergleich
| Kriterium |
RNN-basierte Erkennung |
CNN-basierte Erkennung |
| Eingabeformat |
Sequenz von Stiftpunkten mit Pen-up/Pen-down-Zuständen, variabel lang. |
Gerastertes Graustufenbild fester Größe. |
| Gelerntes Signal |
Bewegungsrichtung, Reihenfolge, zeitlicher Aufbau, Strichstruktur. |
Form, Kontur, lokale Bildmuster, räumliche Anordnung. |
| Typische Modelle |
LSTM, GRU, Sequenz-Encoder, Transformer, Sketch-RNN. |
CNN, ResNet-artige Netze, leichte Echtzeit-Klassifikatoren. |
| Zeichenreihenfolge |
Wird gelernt — hilft, wenn sie aussagekräftig ist, schadet, wenn sie beliebig ist. |
Vollständig unerheblich: Kopf zuerst oder Ohren zuerst ergibt dasselbe Bild. |
| Live-Vorhersage |
Kann inkrementell weiterrechnen, nur neue Punkte verarbeiten. |
Rechnet jedes Mal das ganze Bild neu — bei kleinen Modellen belanglos. |
| Latenz |
Wächst mit der Sequenzlänge; lange Zeichnungen kosten mehr. |
Konstant, unabhängig von der Zahl der Striche. |
| Deployment |
Rekurrente Zustände erschweren Export und Quantisierung. |
Fester Graph, sauber nach ONNX exportierbar, gut quantisierbar. |
| Stärken |
Generative Modelle, Analyse des Zeichenprozesses, Stilfragen. |
Schnelle, stabile Klassifikation; einfach zu betreiben. |
| Schwächen |
Empfindlich gegenüber Sequenznormalisierung und Ausreißern. |
Verliert Reihenfolge, Richtung und Tempo beim Rastern. |
Warum DrawLa den CNN-Weg geht
Drei Gründe gaben den Ausschlag, und der erste ist kein technischer.
Die Zeichenreihenfolge ist bei uns Rauschen, kein Signal.
Im Datensatz zeichnen Menschen dieselbe Katze in völlig verschiedenen
Reihenfolgen: manche beginnen mit dem Kopfumriss, manche mit den Ohren,
manche mit den Augen. Ein Sequenzmodell muss lernen, diese Varianz zu
ignorieren — Kapazität, die es für die eigentliche Aufgabe nicht mehr
hat. Das CNN bekommt diese Invarianz geschenkt, weil sie beim Rastern
einfach entsteht.
Konstante Latenz ist im Spiel wichtiger als letzte Prozente.
Der Client schickt achtmal pro Sekunde den aktuellen Stand. Bei einem
rekurrenten Modell würde eine ausführliche Zeichnung mit vielen Strichen
länger brauchen als eine sparsame — ausgerechnet dann, wenn ohnehin die
Zeit knapp wird. Das feste 96 × 96-Raster macht jede Vorhersage gleich
teuer, egal ob drei oder dreißig Striche auf der Leinwand liegen.
Der Betrieb ist schlicht einfacher. Ein CNN mit fester
Eingabe lässt sich als statischer Graph nach ONNX exportieren und ohne
PyTorch ausliefern. Rekurrente Netze bringen Zustände über Zeitschritte
mit, was Export, Quantisierung und Fehlersuche spürbar verkompliziert.
Der Preis ist echt: Das Modell kann nicht wissen, dass jemand gerade erst
angefangen hat oder ob ein Strich zögerlich gesetzt wurde. Für die Frage
„Was ist das?" spielt das keine Rolle. Für die Frage „Wie ist das
entstanden?" wäre es der entscheidende Teil.
Wann ein RNN die bessere Wahl wäre
Der Vergleich fällt anders aus, sobald der Zeichenprozess selbst zum
Gegenstand wird. Ein Modell, das selbst zeichnen soll, muss
Striche erzeugen, nicht Pixel — Sketch-RNN tut genau das und wäre mit
einer Bilddarstellung gar nicht formulierbar.
Ähnliches gilt für Handschrifterkennung, wo Reihenfolge und Richtung
einen großen Teil der Information tragen: Ein „O" und ein im Uhrzeigersinn
gezeichneter Kreis sehen als Bild identisch aus. Auch bei der
Unterscheidung von Zeichenstilen oder beim Erkennen von Zögern und
Korrekturen ist die Sequenz das eigentliche Signal.
Ein dritter Fall ist die frühe Vorhersage: Wer nach den ersten
Millisekunden raten will, profitiert davon, dass ein rekurrentes Modell
seinen Zustand fortschreibt, statt jedes Mal bei null anzufangen. Bei
einem Modell unserer Größe fällt dieser Vorteil allerdings nicht ins
Gewicht — die vollständige Neuberechnung kostet ohnehin nur wenige
Millisekunden.
Der dritte Weg: beides
In der Forschung sind Hybride verbreitet. Ein Zweig verarbeitet die
Sequenz, ein zweiter das gerasterte Bild, und ihre Repräsentationen
werden vor dem Klassifikator zusammengeführt. Das nutzt beide
Informationsquellen und liegt bei Vergleichsmessungen regelmäßig vorn.
Für ein Spiel lohnt sich das kaum: Man betreibt zwei Modelle, hat zwei
Vorverarbeitungspfade, die konsistent bleiben müssen, und gewinnt einige
Prozentpunkte in einer Anwendung, in der ohnehin die Top-5-Liste zählt.
Der Aufwand steht in keinem Verhältnis — bei einer Anwendung, die
Skizzen auswertet statt sie zu erraten, kann die Rechnung anders
ausfallen.
Einordnung von Sketch-RNN
Sketch-RNN bleibt der wichtigste Bezugspunkt für strichbasierte
Repräsentationen. Das Modell lernt nicht nur, zu welcher Klasse eine
Skizze gehören könnte, sondern auch, wie plausible Strichfolgen überhaupt
aussehen. Es kann eine angefangene Zeichnung fortsetzen oder zwischen
zwei Skizzen interpolieren — Fähigkeiten, die ein Klassifikator
prinzipiell nicht hat, weil er Formen nur bewertet und nie erzeugt.
Wie der CNN-Weg konkret aussieht, zeigt
QuickDraw mit PyTorch anhand der
tatsächlichen Pipeline. Die Datengrundlage erklärt der
Quick-Draw-Datensatz, und die
Originalarbeiten sind unter Papers & Quellen
verlinkt.