background image

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.  

 

 

 

 

 

 

 

background image

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: 

 

 

 

 

 

 

background image

 

 

 

 

 

 

 

 

 

 

background image

NEGACJA: 

 

 

 

 

 

 

 

background image

 

 

 

 

 

 

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 

background image

Wejście 

Wyjście HEBBA 

Wyjście Pseudo inwersja 

 

 

 

 

 

 

 

 

 

 

 

 

background image

 

 

 

 

 

 

 

 

 

 

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. 

 

 

 

 

 

 

background image

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 

 

 

 

 

 

 

 

 

 

 

 

 

background image

 

 

 

 

 

 

 

 

 

 

 

 

 

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. 

 

background image

SYGNAŁ ZANEGOWANY: wszystkie 0 zamieniamy na 1, wszystkie 1 zamieniamy na 0. 

Wejście 

Wyjście HEBBA 

Wyjście Pseudo inwersja 

 

 

 

 

 

 

 

 

 

 

 

 

background image

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

background image

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 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

background image

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 

 

 

 

 

 

Ś 

 

 

 

Ś 

 

 

 

background image

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.