siec neuronowa kompresujaca dane

0

Pisze w c++ sieć neuronową która kompresuje dane a nastepnie je dekompresuje. jest to sieć jednokierunkowa autoasocjacyjna o strukturze typu X-A-X gdzie A<X;

moja sieć niestety nie działa do końca prawidłowo. Potrafi nauczyć się tylko jednego wektora wejściowego. przy większej ich liczbie odpowiedzi neuronow zawsze sa bardzo zblizone do zera. Skoro jednak uczy się jednego wektora to znaczy, ze algorytm uczenia jest napisany poprawnie. Neuron ma funkcje aktywacji:
wyjscie = 1/(1+exp(-beta*wejscie)); współczynnik beta w tym wzorze byl zmieniany od 0.05 do 0.99. bez rezultatow

wszystkie wagi losowane sa z przedzialu (0;1)
wektor wejsciowy to liczby naturalne, dlatego na poczatku jest on normalizowany poprzez podzielenie pojedynczego wejscia przez sumę wszystkich wejsc.

nie mam w sieci biasu i stosuje algorytm backpropagation.
co może powodować błąd? będe wdzięczny za wszelkie wskazówki bo brakuje mi na razie pomysłów.

0

A skąd mamy to widzieć nie mamy kryształowej kuli?
Teraz to mogę ci jedynie doradzić: napisz testy sprawdzające czy twój neuron spełnia wszystkie założenia.

0

głupi błąd :) z rozpędu zrobiłem założenie że wektor wejściowy to liczby naturalne. okazało się, że całkowite, przez co przy większej ilości danych uczących wartości dążyły do 0 :) po lekkiej modyfikacji funkcji aktywacji wszystko działa ;]
pozdrawiam

0

off top: http://cs.fit.edu/~mmahoney/compression/#paq tu jestfajny archiwizator uzywajacy siecie neuronowych

1 użytkowników online, w tym zalogowanych: 0, gości: 1