Mateusz Gąsiorek 180514
Termin: Czwartek 11:15
SPRAWOZDANIE
Rozpoznawanie liter polskiego alfabetu
CZĘŚĆ TEORETYCZNA:
W modelu Hebba wykorzystuje się obserwacje neurobiologiczne,
"jeżeli akson komórki A bierze systematycznie udział w pobudzeniu komórki B powodującym
jej aktywację, to wywołuje to zmianę metaboliczną w jednej lub obu komórkach, prowadząca
do wzrostu skuteczności pobudzania B przez A" (Hebb 1949).
Zgodnie z tym waga powiązań między dwoma neuronami wzrasta przy jednoczesnym stanie
pobudzenia obu neuronów, w przeciwnym wypadku maleje.
Algorytm pseudo inwersji porównuje dane macierze „krok po kroku”, czyli przeszukuje bazę
danych wejściowych porównując elementy z testowaną macierzą. Algorytm ten uczy się
bazując na elementach poprzednich. Do wyznaczenia macierzy wag potrzebna jest
jednorazowa dekompozycja liniowa macierzy pseudo-odwrotnej. Algorytm ten zachowuje się
czysto liniowo, przez co jest przy większej ilości danych czasochłonny. Przekłada się to
jednak na otrzymywany wynik, który bardzo często okazuje się poprawnym.
Algorytm Hebba przeszukuje dane punkty macierzy testowej, nakładając odpowiednie wagi
na połączenia pomiędzy danymi punktami A i B (przykładowe dwa punkty na macierzy
10x10). Ilość punktów pomiędzy dwoma punktami stymuluje odpowiednią wagę danego
połączenia. Im większa ilość pikseli w na danej linii łączącej tym większa waga. Algorytm
ten uczy się na podstawie połączeń, jednak przy podobnych danych wejściowych łatwo się
myli. Sprawdzając wszystkie możliwe połączenia (każdy z każdym) tworzy macierz wag, w
której przypisane są odpowiednie elementy z odpowiednią wagą. Tak powstała macierz mówi
o tym, jaka dana wejściowa odpowiada naszemu testowi.
CZĘŚĆ EKSPERYMENTALNA:
Jako dane wejściowej podajemy do programu 26 liter zapisanych na macierzach o wielkościach
10x10. Litery powstają poprzez zapełnianie pól macierzy cyframi 1, natomiast pola „białe” pozostają
cyfrą 0.
Litery alfabetu podane do programu:
NEGACJA:
Algorytmem rozpoznawania zajmuje się program uczący wykorzystujący dwie metody:
Hebba
Pseudo inwersji
Na wejście podajemy jeden z pośród trzech sygnałów:
Sygnał czysty
Sygnał zaszumiony
Sygnał po negacji
Sygnał zanegowany obarczony szumem
Wejście
Wyjście HEBBA
Wyjście Pseudo inwersja
Podając sygnał czysty łatwo zauważyć, że metoda pseudo inwersji radzi sobie z każdym przypadkiem i
ze skutecznością 100% daje wynik poprawny. Metoda Hebba natomiast dla wszystkich badanych liter
nie dała nigdy poprawnego wyniku. Wynika to z faktu opisanego we wnioskach.
SYGNAŁ ZASZUMIONY: (dodawane losowo 8 lub 6 pikseli (jako cyfra „1”) w zależności od litery i ilości
wolnych pól)
Wejście
Wyjście HEBBA
Wyjście Pseudo inwersja
Na powyższych przykładach widać idealnie, że algorytm Hebba dla tylu danych nadal sobie nie radzi,
natomiast pseudo inwersja daje wyniki pozytywne, wynik końcowy da się rozpoznać, obarczony jest
jednak szumem zniwelowanym do minimum.
SYGNAŁ ZANEGOWANY: wszystkie 0 zamieniamy na 1, wszystkie 1 zamieniamy na 0.
Wejście
Wyjście HEBBA
Wyjście Pseudo inwersja
SYGNAŁ ZANEGOWANY z SZUMEM: wszystkie 0 zamieniamy na 1, wszystkie 1 zamieniamy na 0.
(dodawane losowo 8 lub 6 pikseli (jako cyfra „0”) w zależności od litery i ilości wolnych pól)
Wejście
Wyjście HEBBA
Wyjście Pseudo inwersja
Dla powyższych danych tj 26 liter + polskie litery alfabetu algorytm uczenia się Hebba nie zadziała
poprawnie. W dalszej części testów wykaże zależność działania algorytmu Hebba od ilości liter, oraz
ich podobieństwa:
LITERY Wejście
Wyjście HEBBA
N
S
V
N
S
V
K
A
A
Z
Ś
A
Z
Ś
P
WNIOSKI:
Powyższy przykład pozwala pokazać, iż metoda Hebba działa tylko i wyłącznie wtedy, kiedy litery
wejściowe zupełnie się od siebie różnią. Czym większa ilość liter wejściowych, tym ich podobieństwo
staje się większe, przez co nasz algorytm przestaje działać. Metoda Hebba jest bardzo mało intuicyjną
metodą i przez swój specyficzny sposób uczenia się staje się mało wydajna. Popełnia dużo błędów, a
poprawne rozpoznanie litery w 100% jest prawie niemożliwe dla większej ilości danych. Gdy
testujemy metodą Hebba podają dwie podobne litery, np. B i E, algorytm już przestaje działać.
Metoda pseudo inwersji działa poprawnie pomimo dołączenia do sygnału wejściowego szumu w
postaci dodatkowych losowych pikseli. Jest dokładna, dopiero przy większej ilości danych i „dobrze”
trafionych błędach zaczynała popełniać błędy. Metoda ta przy naszej ilości danych jest szybka
obliczeniowo, jednak dla dużej ilości danych, może pojawić się problem obliczeniowy.