78
6. Metody aproksymacyjne
error - zmienna logiczna ustawiana w momencie stwierdzenia pomyłki przy próbie rozpoznawania,
linrec(sampl[k]) - funkcja dostarczająca numeru klasy rozpoznanej dla aktualnie rozważanego obiektu przez algorytm funkcji liniowych (może to być algorytm wprowadzony w poprzednim podrozdziale),
fail - procedura wywoływana w przypadku niepowodzenia,
success - procedura wywoływana w wyniku nauczenia procedury poprawnego rozpoznawania.
Zakładamy też, że tablica sampl (zawierająca ciąg uczący) została rozszerzona w ten sposób, że zawiera także zerowe składowe wektorów x (wszystkie równe 1). Tablica ma wymiary sampl[l.. num][0 .. dim + 1].
procedurę learnig;
begin
weight := 0; {wyzerowanie całej tablicy)
count := 0;
repeat
error := FALSE;
for k := 1 to num do
begin
rec := linrec(sampl[k]); ident := sampl[k][dim + 1]; error := rec <> ident; if error then for n := 0 to dim do begin
weight[ident][n] := weight [ident] [n] + sampl[k][n]; weight [rec] [n] := weight[rec)[n] — sampl[k][n]; end;
end
count := count + 1; until not error or count > limit; if error then fail else success;
end
Warto zwrócić uwagę na fakt, że zbieżność procesu uczenia można ocenić bezpośrednio z obserwacji przebiegu zmian wartości V*(k) w funkcji kolejnych pokazów k. Jeśli klasy są liniowo rozdzielne i proces uczenia jest zbieżny, to wówczas wartości wag asymptotycznie dążą do swych wartości ustalonych (rys. 6.5), w przeciwnym razie obserwuje się silne oscylacje