Gradientenabstiegsverfahren bei Online-Lernen

Neue Frage »

yiiit Auf diesen Beitrag antworten »
Gradientenabstiegsverfahren bei Online-Lernen
Meine Frage:
Hallo,

ich habe folgendes Problem:

ich kriege eine bisher approximierte Funktion, einen neuen Datenpunkt (x,y) sowie meine zuletzt vorhergesagten y-Wert rein. Ziel ist es nun, die Funktion mittels online Lernen durch den neu hinzugekommenen Punkt upzudaten. Im einfachsten Fall handelt es sich dabei um eine Regression.

Meine Ideen:

Mein Gedankengang ist der folgende:

Ich stelle zunächst die Fehlerfunktion auf:



Dabei sind x,y die Koordinaten des neuen Punktes und alpha sind die Parameter der (hier linearen) Funktion (also b und m).

Dann leite ich diese Funktion nach den Parametern ab und erhalte:



Wie komme ich jetzt zu dem Schluss wie meine Parameter geupdated werden müssen? Ich gehe beim Gradientenabstiegsverfahren in Richtung des negativen Gradienten und da diese Ableitung doch eben diesen darstellt, ergeben sich die neuen Parameter doch wie folgt:



, wobei Eta die Schrittweite festlegt.

In Code sieht es dann so aus:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
% Learn the approximation with one data semple
%
% @input ILS - structure describing the learning system
% @input x - input point
% @input y - true label
% @input yp - predicted label
% @input mode - operating mode (regression=1, classification=2)
%
% @return ILS - adapted structure describing the learning system
function ILS = icl_learn(ILS, x, y, yp, mode)

learn = 0.1;   % step size
precision = 0.0001; % precision
param = [1;x];

tmp = ILS.alpha * param;
yp;

E = 0.5 * (yp - y).^2;
dev = x * (ILS.alpha * x - y);

ILS.alpha = ILS.alpha - dev * learn;
Neue Frage »
Antworten »



Verwandte Themen

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