Welche Methoden gibt es zum Optimieren der SVM-Hyperparameter des Graphkerns?


10

Ich habe einige Daten, die in einem Graphen . Die Eckpunkte gehören zu einer von zwei Klassen , und ich bin daran interessiert, eine SVM zu trainieren, um zwischen den beiden Klassen zu unterscheiden. Ein geeigneter Kern hierfür ist der Diffusionskern , wobei ist die Laplace von und ist ein Tuning - Parameter.G=(V,E)K = exp ( - β L ) , L G βyi{1,1}K=exp(βL),LGβ

Das Einstellen der SVM erfordert die Auswahl von Hyperparametern, daher muss ichHerkömmlicherweise verwenden wir für dieses Problem eine Kreuzvalidierung, aber das scheint hier nicht angemessen zu sein, da das Weglassen eines Scheitelpunkts in den gesamten Graphen ändert und möglicherweise sogar die Anzahl der verbundenen Komponenten erhöht! Wenn sich die Anzahl der verbundenen Komponenten ändert, sind einige Scheitelpunkte für andere nicht mehr erreichbar, und wir sehen uns mit einem ganz anderen Datensatz konfrontiert als zu Beginn. Das heißt, wir vermissen nicht nur den entfernten Scheitelpunkt , sondern auch Informationen über alle anderen Scheitelpunkte im Diagramm, die diesem Scheitelpunkt benachbart waren.i G i jθ=(β,C).iGij

Der Grundbegriff der Kreuzvalidierung besteht darin, dass wir die Leistung des Modells bei der Präsentation neuer Daten approximieren möchten. Bei Standardproblemen ändert das Weglassen einiger Ihrer Daten zum Testen nicht die Werte der verbleibenden Trainingsdaten. Bei Diagrammdaten ist jedoch nicht klar, was es für das Modell bedeutet, "neue" Daten in der CV-Einstellung anzuzeigen. Das Weglassen von Scheitelpunkten oder Kanten kann die Daten vollständig ändern. Stellen Sie sich zum Beispiel einen Graphen der ein Stern-Graph ist, in dem ein Scheitelpunkt Kanten zu Scheitelpunkten hat und alle anderen Scheitelpunkte 1 Kante haben. Weglassen des zentralen Scheitelpunkts zum Erstellen der Trainingsdatenk k k S S S.S=(VS,ES)kkkSwird den Graphen vollständig trennen und die Kernelmatrix wird diagonal sein! Aber natürlich wird es möglich sein, ein Modell anhand dieser in bereitgestellten Trainingsdaten zu trainieren . Weniger klar ist, was es bedeutet, die Out-of-Sample-Leistung des resultierenden Modells zu testen. Muss man neu berechnet die Kernmatrix für , und sehen vor , dass die Prognosen zu machen?SS

Oder beginnt man alternativ damit, die Kernelmatrix von in ihrer Gesamtheit zu berechnen und Zeilen und Spalten wegzulassen, wenn dies zur Erzeugung der zur Schätzung der SVM verwendeten Kernelmatrix erforderlich ist? Dies stellt seine eigenen konzeptionellen Probleme dar, da die Einbeziehung des zentralen Knotens in bedeutet, dass jeder Scheitelpunkt von jedem anderen Scheitelpunkt aus erreichbar ist und die Kernelmatrix dicht ist. Bedeutet diese Einbeziehung, dass Informationen über mehrere Falten hinweg verloren gehen und die Kreuzvalidierungsausgabe verzerrt wird? Einerseits sind noch Daten über die ausgelassenen zentralen Knoten vorhanden, da der ausgelassene zentrale Knoten den Graphen verbindet. Andererseits wissen wir nichts über die BezeichnungenS ySS y von den ausgelassenen Knoten, so dass wir uns sicher sein können, dass wir durch die Durchführung von CV auf diese Weise einigermaßen unvoreingenommene Schätzungen außerhalb der Stichprobe erhalten.

Wie wählt man Hyperparameter für Probleme dieser Art aus? Ist der Lebenslauf unvollständig, aber akzeptabel, oder benötigen wir spezielle Methoden? Ist in meinem Kontext überhaupt eine Hyperparameter-Abstimmung möglich?


Suchen Sie nach einer Erweiterung außerhalb der Stichprobe für Spektralmethoden. Ich habe einige der Techniken zur Bildklassifizierung in meiner Arbeit angewendet (im Rückblick hätte ich das allerdings anders gemacht). Die Ergebnisse waren interessant, aber die Modelle selbst waren ziemlich spröde und nicht einfach zu stimmen.
Vladislavs Dovgalecs

@xeon Gibt es Empfehlungen, wo Sie diese Literatur lesen sollen?
Sycorax sagt Reinstate Monica

Antworten:


3

Haftungsausschluss: Ich bin mit Grafikkernen nicht sehr vertraut, daher könnte diese Antwort auf falschen Annahmen beruhen. Ich bin damit einverstanden, dass das Weglassen von Scheitelpunkten beim Berechnen der Kernelmatrix nicht optimal ist. Ich bin mir jedoch nicht sicher, ob eine Kreuzvalidierung unbedingt problematisch ist. Ist Ihr Lernkontext Transduktion oder Induktion?

Insgesamt bin ich nicht davon überzeugt, dass die Berechnung der Kernelmatrix für eine bestimmte basierend auf allen Daten (dh sowohl Zug als auch Test) notwendigerweise ein Informationsleck erzeugt. Wenn sich herausstellt, dass die Berechnung des Kernels basierend auf allen Daten in Ordnung ist, können Sie Modelle in einem typischen Lebenslauf-Setup trainieren, indem Sie die relevanten Blöcke der (vorberechneten) vollständigen Kernel-Matrix zum Trainieren / Testen verwenden.β

Dieser Ansatz würde es Ihnen ermöglichen, und gemeinsam zu optimieren , beispielsweise über Bibliotheken wie Optunity , wobei verwendet wird, um den Kernel basierend auf allen Daten zu berechnen, und verwendet wird, um Modelle ausschließlich auf den Trainingsfalten zu trainieren.C β C.βCβC


Marc, danke für deine Aufmerksamkeit. Mein Problem ist induktiv. Mein Instinkt ist, dass Sie korrekt sind und dass wir die vollständige Kernelmatrix für alle Daten berechnen und dann nach Bedarf Zeilen und Spalten weglassen, um den CV-Kernel zu erstellen. Wären Ihnen zufällig Hinweise auf diesen Effekt bekannt?
Sycorax sagt Reinstate Monica

Nicht sofort, aber ich habe einige Kollegen, die an vergleichbaren Problemen (Kernel Spectral Clustering) arbeiten, die ich fragen kann. Vielleicht haben sie Referenzen und / oder bessere Ideen. Wird aktualisiert, wenn ich mehr weiß.
Marc Claesen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.