Start
Sieci jednokierunkowe
Sieci rekurencyjne
Słowniczek
Linki
O autorach
***
Jednym zdaniem... -
Rozpoznawanie -
Kojarzenie -
Przewidywanie -
Sterowanie
***
Do czego służy sieć neuronowa
... do wszelkiego rodzaju rozpoznawania, kojarzenia, przewidywania, sterowania... Jednak trudno
zmieścić to wszystko w jednym zdaniu! A zatem po kolei:
Czy zastanawiałeś się kiedyś nad tym, w jaki sposób błyskawicznie rozpoznajesz
twarze znanych ci osób? Przeważnie dzieje się to tak szybko i jest dla nas tak naturalne,
że nie widzimy w tym nic dziwnego - po prostu rozpoznajemy twarze (budynki, litery, głosy...) i już.
Cudów jednak nie ma. Nie możemy rozpoznać twarzy, której nasz mózg się nie nauczył.
Musi ona być już gdzieś zapamiętana, aby nie została uznana za obcą.
W klasycznym komputerze wzorce poszczególnych twarzy wypełniałyby jakąś
bazę danych,
a algorytm
porównywałby każdą ujrzaną twarz z tymi, które są mu znane. Oczywiście przy takiej
ilości twarzy, jaką pamięta przeciętny człowiek, praca owego algorytmu
trwałaby bardzo długo, ale nie w tym rzecz. Otóż komputer zapamiętuje obraz w ten sposób, że
zamienia go na ciąg liczb. W uproszczeniu: obraz jest dzielony na małe punkciki
(pixele)
i każdemu z nich zostaje przyporządkowana liczba zależna od jego koloru (mam nadzieję,
że graficy zechcą mi wybaczyć te nieścisłości). Co się zatem dzieje, gdy wprowadzimy
do bazy danych dwa zdjęcia tej samej twarzy wykonane pod nieco innym kątem i przy innym oświetleniu?
Mówiąc slangiem, w tym momencie program się wykłada - nie potrafi dostrzec podobieństwa
między owymi zdjęciami. Podobieństwa, które my, za pomocą naszej "sieci neuronowej", dostrzegamy
w ułamku sekundy. Zobaczywszy kogoś potrafimy go później rozpoznać mimo makijażu, innej fryzury,
innej pory dnia i innych niedogodności. Dla klasycznego algorytmu jest to niezmiernie trudne.
Jest ono w zasadzie bardzo zbliżone do rozpoznawania. Czym jest bowiem rozpoznawanie?
Niczym innym, jak kojarzeniem tego, co próbujemy rozpoznać z tym, co już znamy.
I znowu: dwa obiekty (obrazki, dźwięki) mogą dla człowieka być podobne, natomiast
klasyczny algorytm nie stwierdzi między nimi podobieństwa. Dla niego są to dwa różne
ciągi znaków. Można oczywiście programowo "obejść" to utrudnienie - "powiedzieć"
komputerowi, jakie cechy obiektu są najbardziej znaczące i mogą zaważyć na podobieństwie
(lub niepodobieństwie) dwóch (lub więcej) obiektów. Jest to jednak dla programisty
wysoce trudne zadanie. Natomiast w przypadku SSN nie ma potrzeby nakazywania sieci
brania pod uwagę tej czy innej cechy - odnajdzie je sama. Więcej - może zauważyć
takie zależności, o których programista nawet nie wie. Ciekawy jest fakt, iż
potrafimy zaprojektować skomplikowaną sieć, skutecznie jej użyć, ale nie mamy
pewności co do tego, w jaki sposób dokładnie działa, co się dzieje w jej głębi.
Jeśli znasz dobrze jakieś zjawisko, to wiedząc, jaki jest jego stan w danej chwili,
potrafisz mniej więcej określić, jak się będzie zachowywać w najbliższej przyszłości,
nieprawdaż? Otóż SSN mogą służyć do tego samego. Stosuje się je głównie do opracowywania
prognoz ruchów na giełdzie i do przewidywania pogody. Tak, nawet, zdawałoby się, tak
przypadkowe zmiany, jak zmiany giełdowe, podlegają jakimś prawom. Doświadczony
gracz potrafi przewidzieć, czy dana operacja zakończy się powodzeniem. Nazywamy to
przeczuciem, szóstym zmysłem, lecz jest to jedynie podświadome korzystanie z wiedzy
nabytej również nieświadomie przez lata obserwacji procesów giełdowych. A trzeba
pamiętać, że mózg człowieka, choć ogromny (w porównaniu z SSN), zajmuje się przecież
niezliczoną ilością innych zadań, jak choćby utrzymywanie ciała w równowadze, itd. itp.
Sieć natomiast jest przeznaczona wyłącznie do jednego zadania i jemu poświęca cały swój
potencjał. Podobnie, jak dobry gracz, sieć potrafi trafnie prognozować ruchy giełdowe,
choć nie wiemy dokładnie, w jaki sposób to robi (tak, jak nie wiemy, na czym polega
intuicja gracza).
Naukowcy próbujący stworzyć robota o postawie humanoidalnej borykają się głównie
z problemem jego ruchu. Dość trudno jest zaprojektować i oprogramować robota
w taki sposób, by utrzymywał równowagę. Niedoścignionym wzorem w tej dziedzinie
jest mózg. Człowiek, pies, kot, mogą wyczyniać najprzeróżniejsze ewolucje nie
tracąc przy tym równowagi. Aby obliczyć wielkości i kierunki sił, z jakimi balansować
musi organizm podczas gwałtownego ruchu, potrzeba matematyki na dość wysokim poziomie.
Mózg zaś daje sobie radę z tymi obliczeniami w ułamku sekundy wykonując w tym czasie
dziesiątki innych czynności. Odpowiednio zaawansowana sieć neuronowa mogłaby
czynić to samo. Właśnie SSN są wykorzystywane do sterowania robotami przeznaczonymi
do pracy w najtrudniejszych warunkach. Ach, te sieci neuronowe! Same zalety... Nie,
tak różowo nie jest. Zapraszam do następnego rozdziału opisującego
zalety i wady SSN.
Start
Sieci jednokierunkowe
Sieci rekurencyjne
Słowniczek
Linki
O autorach
|