poniedziałek, 17 listopada 2008

Podstawy do zmiany siebie

Wielu ludzi sądzi, że nie ma wpływu na swoje życie. Poddają się biegowi wydarzeń, zmiany traktują jak wychylenie od trendu, który zawsze powraca. Z zazdrością patrzą na ludzi sukcesu i doszukują się w ich powodzeniu oszustwa. Nie potrafią zrozumieć, że sukces jest wynikiem ciężkiej pracy i uświadamiania sobie życiowych prawd. Pisząc ludzie sukcesu nie mam na myśli przeciętnej telewizyjnej gwiazdy czy prezesa spółki. Ludzie ci często błyszczą warsztatowo, jednak cierpią na ciągłe depresje i nie mogą pogodzić się z życiem. Zabrakło im pokory, niczym dzieci próbują przerobić świat na swoją zachciankę i obrażają się z każdą porażką.

Istnieje pogląd, że każdy rodzi się geniuszem, jednak sposób w jaki zostaje uformowany i skłonność do wybierania łatwych rozwiązań, powodują, że pędzi żywot nieświadomie i bezbarwnie. Możliwości naszego mózgu są praktycznie nieznane. Owszem, potrafimy obserwować jego wpływ na odruchy, statystycznie badać zachowania w prostych sytuacjach czy testować aktywność płatów podczas rozwiązywania zadań. Jednak posiadając takie informacje nie potrafimy przewidzieć zachowania pojedynczego człowieka. Możemy z dużym prawdopodobieństwem przewidywać, że człowiek zaplątany w matni swoich nałogów czy fobii, będzie wokół nich krążył i powtarzał błędy. Nie wiemy natomiast czy i kiedy z nich się uwolni, ani tym bardziej w jakim kierunku wówczas podąży.

Informatycy obserwując działanie ludzkiego mózgu, stworzyli tzw. sieci neuronowe. Kiedy słyszymy termin "sztuczna inteligencja", wydaje nam się, że mamy do czynienia z symulacją prawdziwego myślenia. Tymczasem jest to zbiór wielu obiektów ("neuronów"), opisanych prostymi logicznymi zależnościami i matematycznych powiązań między tymi neuronami. Niektóre zastosowania sieci budzą zdumienie, jednak ich działanie nigdy nie jest twórcze. Sieci potrafią rozpoznawać, kojarzyć pewne fakty, których wcześniej je uczono. W praktyce wygląda to tak, że buduje się sieć neuronów, następnie zamienia obiekty, które ta sieć ma badać na liczby (pojedynczy obiekt opisany jest wieloma liczbami jako wektor) i wprowadza te wektory do sieci. Jest to tzw. etap uczenia sieci. Neurony przyjmują wówczas pewne wartości, tworzą się połączenia między nimi. Kiedy sieć zostaje "nauczona", podaje jej się wektory na wejście, sieć dokonuje porównań i klasyfikuje te wektory. Np. stwierdza: obraz z kamery, który został do mnie wprowadzony, jest podobny do danej grupy obrazów, które wprowadzono w trakcie uczenia.

Dlaczego piszę najpierw o wielkich możliwościach mózgu, a potem o sposobach symulowania niektórych jego zachowań. Otóż wyuczone mechanizmy niezwykle silnie wpływają na to, jak postrzegamy i interpretujemy otoczenie. Podobnie jak informatyk nie zna struktury sieci neuronowej, która formuje się podczas podawania tysięcy wektorów uczących, nie jesteśmy świadomi w jaki sposób podejmujemy nasze decyzje, bo ukształtowały nas lata doświadczeń i wydarzenia, które dawno zapomnieliśmy lub wyparliśmy z pamięci. Jednak nasza "sieć" jest dynamiczna - cały czas się uczymy. Jeśli powiążemy ten fakt z wiedzą o procesie uczenia sztucznych sieci neuronowych, możemy z dużą dozą prawdopodobieństwa założyć, że jesteśmy w stanie "zaprogramować się" na zmianę.

Od razu zaznaczam, że nie jestem żadnym propagatorem technik NLP czy tym podobnych, swoje przemyślenia formułuję na podstawie obserwacji, nauk filozoficzno-matematycznych i wykonywanego zawodu (informatyk). Uważam, że zmienianie siebie nie ma sensu, jeśli nie idzie za tym powiększanie świadomości o ludzkiej naturze, swoich ograniczeniach i potrzebach. Za proces programowania siebie, uznamy powtarzanie pewnych prawd, które często determinują sukces (pracuj wytrwale, dziel problemy na mniejsze, nie odkładaj zadań itd.), czyli w żargonie informatycznym podajemy sobie na wejście sieci neuronowej wektory uczące. Jednak te "wektory" muszą być pełne, tzn. musi towarzyszyć im ciągłe rozmyślanie o istocie tych prawd.

Dla rozjaśnienia podam przykład sieci neuronowej, rozpoznającej jabłka i ogórki. Programista postanowił, że sieć będzie pobierać dwuliczbowe wektory: [kolor, kształt]. Oczywiście każdy wektor będzie liczbą, załóżmy że program komputerowy odbiera sygnały z kamery i podaje wartości: 0-zielony, 0.1-zielonkawy, 0.5-żółty, 0.7-pomarańczowy 1-czerwony (dopuszczalne są wartości 0.135 itd. , podaję przykładowe interpretacje liczb koloru). Kształt zapisany będzie również od 0 do 1, np. 0 - koło (obraz z kamery jest dwuwymiarowy), 0.2 - elipsa przypominająca koło, 0.5-owal, 1-długi prostokąt. Wektory uczące wyglądałyby tak: ogórek[0.15, 0.65], ogórek[0.2, 0.8], jabłko[0.65, 0.15], jabłko[0.9, 0.05] itd. Po nauczeniu, sieć zaczyna pracę w przetwórni - kamera podaje obrazy do komputera, program zamienia je na wektory i wprowadza je do sieci, która na otrzymany wektor [0.8, 0.2] odpowiada: jabłko, kiedy otrzyma [0.2,0.8] wypisuje: ogórek. Nagle pojawia się pomidor, program zapisuje go jako [0.9, 0.25]. Co odpowie sieć neuronowa? Jabłko.

Aby sieć poprawnie rozpoznawała nowy rodzaj warzywa, musi zostać zaprogramowana na nowo, a wektor powinien być opisany w taki sposób, żeby wektor dla jabłka różnił się znacznie od wektora dla pomidora. Zazwyczaj dodaje się nowe cechy (np. ciężar, gęstość). Tak samo jest z nami - nie wystarczy wmawiać sobie prawd, postanowień, bo taki wektor uczący jest zbyt ubogi. Musimy go rozszerzać o ciągłe przemyślenia, aby zmieniał ukryte współczynniki, które zawsze ściągają nas do poziomu. Tylko wtedy będziemy mogli kierować trend naszych decyzji na inne tory, a zmiana okaże się trwała.

1 komentarz:

Dziękuję za komentarz. Ze względu na ataki spamerskie musiałem wprowadzić moderację, ale postaram się przeczytać go i odpisać jak najszybciej.

Pozdrawiam,
podtworca

LinkWithin

Related Posts with Thumbnails