Deep Lattice Netzwerke (DLN)
- Von Björn Piepenburg
- binär, Deep Lattice Netz, Klassifizierung, Monotonie, Tensorflow
Beitrag teilen:
Häufige Problemstellungen, mit denen wir konfrontiert werden, lassen sich auf eine (mehrdimensionale) Regression oder eine Klassifizierung zurückführen. Ausgehend von einer Menge von Merkmalen versucht man bei der Regression, die Abhängigkeit zwischen den Merkmalen und einer Zielgröße als Funktion darzustellen. Ein Beispiel wäre die Abhängigkeit des Umsatzes von den Ausgaben für Forschung sowie von der Mitarbeiter-Zufriedenheit in einem Unternehmen. Bei einer Klassifizierung werden Wahrscheinlichkeiten dafür geschätzt, dass ein Objekt zu einer vordefinierten Klasse gehört. Ein bekanntes Beispiel ist die Klassifizierung von Bildinhalten (Hund, Katze, LKW, …).
Die Komplexität von Regressions- und Klassifizierungsproblemen hängt von der Menge der Merkmale sowie vom Grad des Zusammenhanges zwischen den Merkmalen und der Zielgröße ab. Ein weiterer Aspekt ist die Abhängigkeit der Merkmale untereinander. Einfache Probleme lassen sich durch klassische statische Verfahren lösen, welche den Vorteil haben, dass man die Ergebnisse gut interpretieren kann. Praxisrelevante Problemstellungen sind im Allgemeinen durch mehrere Merkmale beschrieben, welche sich untereinander beeinflussen. Ein bekanntes und häufig verwendetes Verfahren zur Lösung solcher Problemstellungen ist ein künstliches neuronales Netz, welches sehr leistungsstark bei der Lösung der genannten Problemstellungen ist.
Deep Lattice Netzwerke erweitern die Eigenschaften eines künstlichen neuronalen Netzes um Monotoniebedingungen zwischen einzelnen Merkmalen und der Zielgröße. Ein Beispiel für die Notwendigkeit ist ein Preismodell, bei dem sich der Preis einer Einheit mit der Bestellquantität reduzieren soll. Das unter der Initiative und Mitarbeit von Google entwickelte Verfahren besteht im Kern aus nn-dimensionalen Hyperwürfeln der Kantenlänge 11, wobei nn die Anzahl der Merkmale beschreibt. Es wird also durch jede Dimension des Würfels ein Merkmal abgebildet. In den Würfel legt man eine (mehrdimensionale) Funktion, welche den Zusammenhang zwischen den Merkmalen und der Zielgröße beschreibt. Dazu werden für die Eckpunkte des Würfels, welche die variablen Parameter des Modells darstellen, Funktionswerte auf Basis von Trainingsdaten berechnet. Zwischen den Eckpunkten wird die Zielfunktion linear interpoliert. Zur Erhöhung der Detaillierung der Funktion können die Kanten des Würfels unterteilt werden. Durch die Teilungspunkte wird ein Gitter (Lattice) gelegt, dessen Schnittpunkte als zusätzliche Parameter des Modells mit Funktionswerten belegt werden.
In der folgenden Abbildung ist ein Lattice mit zwei Merkmalen (also ein Quadrat) dargestellt. Für die vier Eckpunkte θ[i]θ[i] als Parameter des Modells wurden Werte aus einer Menge aus Trainingsdaten abgeleitet. Die darzustellende Funktion f(x)f(x) wird durch lineare Interpolation zwischen den vier Eckpunkten approximiert. Weitere Stützstellen zwischen den Eckpunkten zur Verdichtung des Gitters und zur Erhöhung des Detailierungsgrades der approximierten Funktion wurden nicht verwendet.
Das Training erfolgt ähnlich wie bei einem künstlichen neuronalen Netz durch eine iterative Anpassung der Parameter mit dem Ziel, den Fehler zwischen der Modellausgabe und der beobachteten Ausprägungen der Zielgröße zu minimieren. Das Vorgehen wird als überwachtes Lernen bezeichnet. Nach dem Training können für (unbekannte) Merkmalskombinationen Werte für die Zielgröße bestimmt werden. In einem weiteren Post in diesem Blog beschreibe ich die Anwendung eines Deep Lattice Netzwerkes zur Bestimmung der Annahmewahrscheinlichkeiten für Transportaufträge. Dies ist Teil eines durch den mFund geförderten Forschungsprojektes, welches wir erfolgreich umgesetzt haben.