Approximative Verfahren zur Evaluation von Bedingungen #226
Labels
approximate conditions
Affects the approximate condition finding algorithm
boosting
Affects the subproject "boosting"
enhancement
New feature or request
seco
Affects the subproject "seco"
Ziel ist es, approximative Verfahren zur Evaluation der Bedingungen, die zu einer Regel hinzugefügt werden können, verwenden zu können. Dabei werden statt jeder möglichen Bedingung nur eine bestimmte Untermenge dieser Bedingungen getestet. Die Auswahl der relevanten Bedingungen, bzw. der Thresholds, die diese verwenden, resultiert von einer Einteilung der Trainingsbeispiele in sogenannte "Bins". Die Statistiken (z.B. Gradienten und Hessians) der Trainingsbeispiele innerhalb jedes Bins werden jeweils aggregiert um ein sogenanntes Histogramm zu erhalten. Die Einteilung der Beispiele in die Bins kann mit Hilfe eines der folgenden Binning-Verfahren erfolgen.
Unsupervised:
Methoden, die keine Informationen über die Ground-Truth Labels, bzw. übeer die aktuellen Vorhersagen des Modells für die diese Labels, berücksichtigen. Da die zu verwendenden Thresholds lediglich von den Feature-Werten der Trainingsbeispiele abhängen, bleiben die möglichen Bedingungen während des kompletten Trainings die selben.
Supervised:
Methoden, die Informationen über die Ground-Truth-Labels, bzw. über die aktuellen Vorhersagen für diese Labels, berücksichtigen. Da die Vorhersagen sich ändern sobald eine neue Regel zum Modell hinzugefügt wurde, ändern sich auch die möglichen Bedingungen in jeder Trainingsiteration.
Um die Unterstützung solcher approximativer Verfahren vollständig umzusetzen, müssen eine Reihe von Voraussetzungen geschaffen werden. Es bietet sich an, die Implementierung schrittweise umzusetzen.
Das korrekte Zusammenspiel der approximativen Verfahren mit einigen der bestehenden Funktionen des Algorithmus erfordern außerdem zusätzlichen Aufwand. Um diesen anfangs zu vermeiden sollte der Algorithmus so konfiguriert werden, dass die Verwendung von sparsen Feature-Matrizen und das Sampling von Trainingsbeispielen deaktiviert wird. Das ist über die folgenden Konfigurationsparameter möglich:
Schritt 1: Unsupervised-Methoden implementieren (siehe #227)
Schritt 2: Lernen einer einzigen Bedingung
Die Integration in den Regellernalgorithmus erfordert einige Anpassungen des bestehenden Codes. Um diese Anpassungen schrittweise durchführen zu können, sollte es zunächst das Ziel sein eine der oben genannten approximativen Methoden verwenden zu können um eine einzelne Regel mit einer einzelnen Bedingung zu lernen. Um den Algorithmus so zu konfiguren, dass nur die Default-Rule, sowie eine weitere Regel mit exakt einer Bedingung gelernt wird, müssen die folgenden Parameter gesetzt werden:
HeadRefinement
und ihrer Unterklassen nach C++AbstractRuleRefinement
und Portierung des bisherigen Implementierung in neue UnterklasseExactRuleRefinementImpl
(Teil von Abstraktionen um approximative Evaluation von Bedingungen zu ermöglichen #237)ApproximateRuleRefinementImpl
(siehe Suche nach Refinements auf der Basis von Bins #252)FeatureMatrix
und ihrer Unterklassen nach C++ (siehe Portierung der Klasse FeatureMatrix nach C++ #235)AbstractThresholds
und Portierung der bisherigen Implementierung in neue UnterklasseExactThresholdsImpl
(Teil von Abstraktionen um approximative Evaluation von Bedingungen zu ermöglichen #237)ApproximateThresholdsImpl
(siehe Bereitstellung von Thresholds auf der Basis von Bins #256)Schritt 3: Lernen einer kompletten Regel
AbstractThresholds
auslagern__filter_current_indices
und__filter_any_indices
ausrule_induction.pyx
in die KlasseExactThresholdsImpl
übernehmen (Teil von Abstraktionen um approximative Evaluation von Bedingungen zu ermöglichen #237)ApproximateThresholds::ThresholdsSubset
implementierenfilterThresholds(Refinement)
implementieren (siehe Filterung der von einem Refinement abgedeckten Bins #295)Callback::get
Bins filtern, falls notwendig (siehe Filterung beliebiger Bins #302)Schritt 4: Lernen beliebig vieler Regeln
AbstractThresholds
aufnehmenExactThresholdsImpl
müssen lediglich die Statistiken aktualisiert werden (Teil von Abstraktionen um approximative Evaluation von Bedingungen zu ermöglichen #237)ApproximateThresholdsImpl
müssen die originalen Statistiken und die Histograme aktualisiert werdenapplyPrediction
die originalen Statistiken aktualisieren (siehe Statistiken nach Lernen einer Regel mit Hilfe des approximativen Algorithmus aktualisieren #332)Callback::get
Histogramme neu aufbauen, falls notwendig (siehe Histogramme bei Bedarf neu aufbauen #333)Schritt 5: Weighted Quantile Sketch
Out of scope
Weitere offene Punkte
Weitere optionale Punkte
The text was updated successfully, but these errors were encountered: