SVM mittels Gradienten-Abstieg

Neue Frage »

daim Auf diesen Beitrag antworten »
SVM mittels Gradienten-Abstieg
Hallo zusammen,

hier mal eine "Knobelaufgabe" Augenzwinkern

Es geht um folgendes Problem. Gegeben ist eine Punktemenge und zugehörige Labels . Ausserdem haben wir eine Funktion

nun sollen wir mittels Gradienten Abstiegsverfahren dieses Optimierungsproblem lösen. Dabei haben wir eine konstante Lernrateund ein festes gegeben.

Die Richtungs-Ableitungen bekomme ich noch hin:
(für den Fall, dass obiges Maximum > 0, ansonsten ist die Ableitung = w.

für
(ebenso für den Fall, dass obiges Maximum > 0, ansonsten ist die Ableitung = 0

da w ein Vektor ist, der die Hyperebene beschreibt, ist die erste Ableitung nach \deltaw genau genommen eine Ableitung nach und.

Mein Algorithmus sieht bisher wie folgt aus:

1. berechne Gradienten in Richtung und
2. überprüfe, in welcher Richtung der Funktionswert von L am stärksten minimiert wurde ( c ist eine Konstante)
3. gehe ein Schritt in die entsprechende Richtung
4. tue dies solange der Funktionswert, im vergleich zum vorherigen Schritt, noch mimiert wurde.

Schritt 3 gestaltet sich jedoch sehr schwierig, da ich das b nicht wirklich aus oder berechnen kann. Also müsste ich alle Schritte auf einmal machen und das auch unter Umständen in eine Richtung, die eine Kombination aus den drei Richtungen ist.

Meine Frage ist also:
1. Darf man überhaupt den Abstieg so "stückeln" oder muss man die drei Richtungen doch kombinieren?
2. Wie genau kann ich aus den 3 Richtungsableitungen das neue und das neue in jedem Schritt berechnen?

ich bin für jeden Hinweis sehr dankbar! Im Moment macht meine Hyperebene sehr komische sachen und passt sich nicht der Punkteverteilung korrekt an ...

Vielen Dank!

Vielleicht helfen die Bilder im Anhang ja zum Verständnis. Das ist hier das Quadrat über das Maximum in der Summe, d.h.

https://cg2010studio.files.wordpress.com/2012/05/e694afe68c81e59091e9878fe6a99fe599a8-support-vector-machine.png
http://ars.sciencedirect.com/content/image/1-s2.0-S0957417408005095-gr1.jpg
frank09 Auf diesen Beitrag antworten »

Zitat:
2. überprüfe, in welcher Richtung der Funktionswert von L am stärksten minimiert wurde ( c ist eine Konstante)


Die Richtung wird dir doch eigentlich mit dem Gradienten vorgegeben, oder nicht?
Du hast einen Startwert .
Wenn ich dich richtig verstehe, willst du einen Schritt in Richtung gehen also berechnen. Anschließend einen Schritt in Richtung , berechnen. Zuletzt noch Den Wert, wo L am meisten abfällt, willst du dann als neuen Startwert übernehmen?
Wenn dein Gradient am Startpunkt z.B. wäre, müsstest du einen Schritt in Richtung gehen.
Dein neuer Startwert wäre also Vorausgesetzt natürlich, L ist dort kleiner als zuvor.
Weil der Gradient aus den 3 Richtungsableitungen besteht, machst du auch "3 Schritte auf einmal", wenn du in dessen Gegenrichtung gehst.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »