Elementarne wprowadzenie do techniki sieci neuronowych 271
Jak już wyżej Ci napisałem, podczas konstruowania wzorców, które sieć ma zapamiętać powinieneś się posługiwać wartościami iloczynów skalarnych, żeby uzyskać zestaw wzorców mających możliwie mały stopień wzajemnego “przesłuchu”. Wiesz o tym, że przyzwoicie skonstruowany zestaw wzorców musi charakteryzować się jak najmniejszymi wartościami tych iloczynów (w układzie “każdy z każdym”). Ideałem są wzorce mające zerową wartość iloczynu skalarnego. Taki zestaw wzorców z zerowymi wartościami iloczynów skalarnych we wszystkich parach typu każdy z każdym nazywany jest w matematyce układem ortogonalnym. Układ ortogonalny ma cały szereg znakomitych właściwości teoretycznych, wprawiających matematyków w stan graniczący z ekstazą. Można o tym napisać kilka grubych tomów wyłącznie formulami i wzorami, przetykanych takimi słowami jak ortonormalna baza układu współrzędnych, inwariantność przekształcenia, dekorelacja zmiennych, transformacja składowych kanonicznych i diagonalizacja macierzy kowariancji (to wszystko naprawdę ma sens i ma głęboki związek z używanym tu programem), ale Ty teraz i tutaj naprawdę nie musisz tego wiedzieć. Natomiast musisz wiedzieć, że przy wzorcach zbliżających się (przynajmniej) do opisanego ideału proces uczenia sieci i proces jej eksploatacji - przebiegać będą w sposób maksymalnie korzystny.
Niestety własnoręczne skonstruowanie zestawu ortogonalnych wzorców jest praktycznie niemożliwe. Możesz próbować zbliżyć się do tego ideału, zawsze jednak obrazy znaków generowanych na klawiaturze komputera okazują się w jakimś stopniu skorelowane, czyli ich iloczyn skalarny będzie różny od zera. Możesz jednak powierzyć to zadanie programowi 12B.BAS. Program ten potrafi ustawić ortogonalne wzorce, dzięki czemu bardzo efektywnie wspomaga on Twoją pracę. Pisząc zamiast kolejnego znaku proponowanego w charakterze nowego wzorca - słowo “auto” startujesz automat, który wygeneruje gotowe wzorce. Po wybraniu opcji automatycznej1 generacji wzorców program 12B.BAS najpierw zapyta Cię, jak ma gene-
Powiem Ci coś w tajemnicy. Ten kawałek programu, który sam generuje ortogonalne wzorce, to małe arcydzieło. Naprawdę! Przemek Korohoda przeszedł w tym punkcie sam siebie. Jest to całkowicie oryginalny i bardzo skutecznie działający algorytm generowania ortogonalnych ciągów obrazów. W całej znanej mi literaturze nie widziałem czegoś podobnego! Taki algorytm może Ci się to jeszcze przydać do wielu rzeczy - na przykład w
znudzisz sięiieciami neuronowymiP Jeśli natomiast znasz i praktykujesz szlachetną sztukę programowania - zajrzyj do odpowiedniego fragmentu tekstu programu 12B.BAS
algorytm. Warto uczyć się od mistrzów!