Software Blog

Neue Funktionalitäten im BRAINER ab Version 4.2

von Daniel Lämmerhofer

Neben einigen Erweiterungen in Richtung Deep Learning (siehe Blog Deep Learning mit Matlab) bietet der BRAINER in der aktuellen Version noch weitere Funktionalitäten, die das Lösen von Machine-Learning Problemstellungen noch flexibler und effizienter machen.

Durch diese neuen Features sind im BRAINER nun einige neue Anwendungsfälle bzw. Untersuchungen machbar:

  • Training und (vergleichende) Bewertung unterschiedlicher Input-Parameter-Kombinationen (Featuresets) in einem einzigen Projektfile
  • Konfiguration von unterschiedlichen Input-Parameter-Transformationen für die selben Input-Featuresets
  • Direkter Performance-Vergleich von unterschiedlichen Modelltypen für die gegebene Problemstellung (z.B. traditionelle/analytische Modelle vs. Machine-Learning-Modelle)
  • Adaption von bereits trainierten Modellen beispielsweise mit neuen Anforderungen oder Trainingsdaten
  • Konfiguration, Training und Auswertung beliebiger hybrider Modelle bestehend aus:
    • mehreren Modellen gleichen Typs
    • diversen Modellen unterschiedlichen Typs
  • Vergleiche von Einzelmodellen mit hybriden Modellen und Komitees mit der gleichen Bewertungsfunktion
  • Flexiblere und umfangreichere Parametrierung der Modell-Trainingsverfahren

Zusätzlich wurde die Menü-Struktur verbessert und alle Auswertedarstellungen im Postprocessing vereinheitlicht. U.a. besitzen alle Plots nun eine einheitliche Fußzeile mit Informationen zur Performance und Art der ausgewerteten Modelle. Die nachfolgenden Abschnitte sollen einzelne neue Funktionalitäten inklusive Tool-Screenshots kurz beschreiben.

Konfiguration mehrerer Input-Featuresets

Die erste wesentliche Änderung in der neuen BRAINER Version betrifft die Verwaltung der Input-Parameter (Menü: Data > Parameters > Inputs...). Es ist nun möglich mehrere unterschiedliche Input-Parameter-Kombinationen zu konfigurieren und diese wahlweise als Input für das Modell-Training zu verwenden. Bisher konnte in einem Projektfile nur eine einzige, feste Input-Parameter-Kombination definiert werden. Durch diese Neuheit lassen sich nun schnell unterschiedliche Input-Parameter-Kombinationen (z.B. Default-Set, Features aus Optimierung(en), Feature-Empfehlungen von Experten) vergleichen.

Insbesondere ist das hilfreich, wenn man z.B. an die Modelle unterschiedliche Anforderungen an die Auswahl der Input-Parameter stellt. Bei Entscheidungsbäumen kann man etwa alle verfügbaren Input-Parameter sofort beim Training einbeziehen. Bei Neuronalen Netzen verwendet man erst eine erste, reduzierte Auswahl und erweitert diese dann systematisch mit entsprechenden Feature-Selection-Verfahren. Nun kann man beide derartigen Ansätze in einem Projekt kombiniert anwenden.

Konfiguration unterschiedlicher Input-Transformationen

Neben der Möglichkeit mehrere Input-Parameter-Kombinationen zu konfigurieren, kann man je Set nun auch individuell die Transformation pro Parameter einstellen (Data > Transformations...).

Damit kann beispielsweise die Auswirkung auf die Modell-Performance bei unterschiedlicher Transformation der Inputs in einem BRAINER-Projekt untersucht werden. Vor allem für Modelltypen, bei denen die "richtige" Input-Transformation wichtig für das Trainingsverfahren und die Modell-Performance ist (z.B. bei Künstlichen Neuronale Netzen), erleichtert und beschleunigt diese Erweiterung die passende Konfiguration der Transformationsparameter.

Unterschiedliche Modelltypen in einem Projektfile

Eine zweite wesentliche Neuerung ermöglicht es, dass unterschiedliche Modelltypen nun in einem Projektfile parametriert (Models > Training settings...), trainiert (Models > Training) sowie verglichen und ausgewertet (Postprocessing) werden können. Dadurch kann für Klassifikations- oder Regressionsprobleme schnell und einfach die Performance von z.B. konventionellen analytischen oder regelbasierten Modellen mit Machine-Learning-Modellen verglichen werden.

Zusätzlich wurden in diesem Zuge auch die Trainingsparameter der unterschiedlichen Modelltypen aus den Matlab-Toolboxen (u.a. diverse Arten von Machine-Learning-Modellen wie z.B. neuronale Netze mit Backpropagation, Stacked Autoencoders, Entscheidungsbäume oder Support Vektor Maschinen) erweitert und aktualisiert. Auch die Schnittstelle, um andere (z.B. WEKA) bzw. benutzerdefinierte Modellarten in den BRAINER zu integrieren, wurde verbessert und ist nun objektorientiert. Daher ist es auch viel einfacher möglich, dass man bestehende Algorithmen mit Machine-Learning-Modellen innerhalb des BRAINER's vergleicht und kombiniert.

Kombination von Einzelmodellen

Aufbauend auf der Möglichkeit unterschiedliche Arten von Modellen in einem Projektfile zu haben, wurden auch die Kombinationsmethoden von trainierten Einzelmodellen erweitert. Zur Konfiguration bzw. dem Training von Komitees und hybriden Modellen stehen u.a. folgende Modellarten/-klassen im BRAINER zur Verfügung:

  • FusionEnsemble: mehrere Methoden sind zur Fusion von Einzelmodelle bereits implementiert (u.a. Mehrheitsentschluss, gewichtete Kombination oder Stacking)
  • BoostingEnsemble: zur Aggregation der Einzelmodelle können alle in Matlab verfügbaren Algorithmen (u.a. AdaBoost, LogitBoost, RUSBoost) ausgewählt werden
  • RandomForests: Kombination und Training mehrerer Entscheidungsbäume (aufbauend auf die Matlab-Klasse TreeBagger)

Da ein solches Komitee selbst auch wieder ein eigenes Modell darstellt, kann dieses selbst wieder Teil einer weiteren hybriden Modellkombination sein. Somit können diverse Algorithmus-Komponenten in einem Projektfile konfiguriert, trainiert und ausgewertet werden. Einerseits können diese Komponenten diverse Machine-Learning-Modelle beinhalten, andererseits kann es sich zum Vergleich aber auch um ein einfaches analytisches Regelwerk handeln.

Mit dieser neuen Art der Bildung gemischter Komitees wird es auch möglich, dass man die Auswirkung einzelner Algorithmus-Komponenten für sich kalibriert und deren Wirkung im Gesamt-Algorithmus testet und bewertet.

Adaption trainierter Modelle

Ein anderer methodischer Aspekt, der in der neuen Version noch besser integriert ist, betrifft die Adaption von Modellen. Für trainierte Modelle bzw. Modelltypen, die Adaption unterstützen (z.B. Backpropagation Netze oder Entscheidungsbäume), können entsprechende Adaptionsparameter konfiguriert werden (Models > Adaption settings...). Das adaptierte Modell (Models > Adaption...) wird anstatt des initial trainierten Modells im Projektfile gespeichert.

Ein typischer Anwendungsfall für Adaption sind neue Daten bzw. geänderte Ausgänge (Anforderungen). Bei neuen Daten müssen nicht alle bisherigen Daten nochmals neu für das Training vorgegeben werden, sondern die Adaption erfolgt nur auf den neuen Daten. Dies ist u.a. speziell bei sehr großen Datenbeständen oder bei selbst-lernenden Applikationen hilfreich.

Die Änderung der Ausgänge ist eine spezieller Trick zur Verbesserung der Lernergebnisse. Unter support@andata.at bekommt man bei Interesse weitere Auskunft, wie das funktioniert und in welchen Anwendungen man hiermit die maximale Performance aus den jeweiligen Modellen herausholen kann.

Verwaltung und Austausch von Gruppen

Zur Vereinfachung von Analysen und der Selektion von Datensätze besteht nun die Möglichkeit erstellte Gruppen zwischen den ANDATA-Tools einfach auszutauschen (Data > Groups). So können zum Beispiel Datensätze mit durchwegs schlechter Modell-Performance einfach in einer Gruppe zusammengefasst werden und diese für weitere Signalanalysen in den STIPULATOR rück-importiert werden.

Damit lassen sich auch administrative Daten besser über die gesamte Prozesskette konsistent halten (vorwärts und rückwärts).

Zurück

Einen Kommentar schreiben