Krzysztof Olszewski

Dyrektor Technologii i Architektury Oprogramowania

Krzysztof Olszewski

Dyrektor Technologii i Architektury Oprogramowania

Pisałem kiedyś o wyższości funkcji nad wartościami skalarnymi. Od tamtego czasu stało się to moją, swoistą – nie zawaham się powiedzieć – obsesją. Wszędzie gdzie nie spojrzę, w każdym przejawie życia widzę, jak myślenie funkcyjne (szczególnie gdy dziedziną jest czas) daje ogromną przewagę w rozumieniu rzeczy i zjawisk.

Od pewnego czasu interesuję się także wpływem wiedzy na skuteczność działania. Czy to co wiemy, czego się nauczyliśmy, pomaga nam w dobrym robieniu tego, co mamy zrobić? Rozumiem, że pytanie, o wydawałoby się oczywistą prawdę, wydaje się kompletnie bez sensu. Przecież każdy wie, że posiadanie wiedzy zawsze ułatwia a wręcz czasem umożliwia wykonywanie zadań. Spróbuję zatem wybronić się i pokazać jak zasadne mogą być moje wątpliwości.

Komputer i algorytm Deep Blue, który w 1997 po raz pierwszy pokonał arcymistrza w grze w szachy, opierał się na wiedzy. Wiedzę tą stanowiła baza setek tysięcy partii rozegranych przez mistrzów, otwarć, końcówek, reguł i zasad, które odkrywano przez długie lata. Opracowanie systemu trwało kilka lat i było bardzo kosztowne.

Algorytm AlphaZero w 2018 roku, znając tylko zasady gry, nie posiadając żadnej wiedzy i żadnych doświadczeń, przystąpił do uczenia się poprzez granie z samym sobą. Po czterech godzinach, był w stanie pokonać następcę Deep Blue.

O ile Deep Blue „wiedział” co robi, używał bazy wiedzy i generalnie sprawdzał bardzo szybko, bardzo dużą ilość możliwych ruchów, wybierając najlepszy. O tyle AlphaZero to głównie sieć neuronowa, która nic nie „wie”. W trakcie „nauki” ustawia sobie liczby w macierzach, a w trakcie „myślenia” tylko przelicza te liczby. Deep Blue aby się „nauczyć” potrzebował wielu lat pracy dużej grupy ludzi, a aby działać ogromnej mocy obliczeniowej (11.38 GFLOPS). AlphaZero w trakcie „nauki” wymagał ogromnych zasobów (5000 TPU) a do samego działania wystarczył już zwykły PC.

Możemy w tym kontekście poczuć się dziwnie.

Mamy w głowach mózg

Mózg to ogromna sieć neuronowa (lub ich zbiór). Czy działa ona jak AlphaZero czy Deep Blue? Działa i tak i tak – o tym zaraz – oraz w jeszcze jeden sposób, poprzez świadomość. W zakresie, którego nie kontrolujmy werbalnie, np. odruchy, utrzymywanie równowagi czy widzenie, działamy jako sieć neuronowa, podobnie jak AlphaZero. Umiemy także, jak DeepBlue, pamiętać, analizować pewną ilość kroków do przodu, używać wiedzy, wnioskować, szukać jak najlepszych rozwiązań. Posiadamy jeszcze coś, coś co pozwala nam sobie to wszystko uświadomić. Świadomość to przedziwny twór. Jest strasznie powolna, większość z nas aby coś zdecydować świadomie, potrzebuje chwili namysłu. Po chwili namysłu często przychodzą wątpliwości, a czas płynie nieubłaganie. Ten sam mózg, który wytwarza nieudolną, powolną świadomość, potrafi w ułamku sekundy zamknąć powiekę gdy coś zbliża się do oka, lub szybko obliczyć ułożenie ręki przy uderzeniu piłki w tenisie, po którym piłka, z ogromną prędkością, trafia tam gdzie trafić miała. Dlaczego zatem, ewolucja (czy stwórca, jak ktoś woli), wyposażyła nas w te trzy (wrodzony automatyzm, wyuczone odruchy/intuicja, świadome decyzje) tak odmienne metody radzenia sobie z rzeczywistością?

O wszystkim decyduje funkcja zmiany warunków zewnętrznych z dziedziną odniesioną w czasie. Zamknięcie powieki jak coś zagraża oku, jest od setek tysięcy lat niezmiennie potrzebnym i wymaganym automatycznym mechanizmem, nie ma co o tym myśleć, ani sobie tego uświadamiać, ani tego uczyć, to trzeba robić zawsze. Dla odmiany, odruchów tenisisty nie możemy wbudować w nasz mózg już na starcie, przy urodzeniu. Nic by to nie dało. Zbyt zmienne są warunki zewnętrzne. Tenis powstał dopiero kilka tysięcy lat temu. Jego zasady zmieniały się wielokrotnie. Zmieniały się rakiety, naciągi, nawierzchnie, techniki gry. Jedynym rozsądnym działaniem jest tenisa się nauczyć. Nauczyć tak, aby w trakcie gry znaczna część ruchów (uderzenia, reakcje, odruchy) była „liczona” nieświadomie i błyskawicznie w sieci neuronowej, w mózgu lub nawet w rdzeniu kręgowym. Pozostała część, jak strategia, zachowanie, świadomość silnych i słabych stron przeciwnika, może być kontrolowana przez powolną i niewydajną świadomość. Dlaczego nie poprzez szybką sieć neuronową? W oczywisty sposób są to kwestie jednorazowe, nie dają one szansy na uczenie sieci, nie powtarzają się. Z tym tenisistą, przy takim słońcu, przy takiej mojej dyspozycji, na tym boisku, z dziwnym bólem w prawej łydce, itd. gram tylko raz. Muszę użyć doświadczeń, moich, lekarza i trenera, na spokojnie zastanowić się, jak dzisiaj będę grał, jaką strategię przyjąć. To potrwa kilka godzin ale to najskuteczniejsza metoda. Co ważne, aby nasza trójka opracowała dobrą strategię potrzebne są nam doświadczenia. Te doświadczenia muszą być „świeże”. Gdyby lekarz opierał się na wiedzy sprzed 20 lat, jego rady będą złe. Podobnie gdyby trener przez 10 lat nie śledził rozwoju tenisa, nie byłby w stanie doradzić nam dobrej strategii.

Co z tego wynika dla nas?

Warto uświadomić sobie jak wygląda zmienność funkcji wiedzy w dziedzinie którą się zajmujemy

Ta zmienność jest kluczowa. W zakresie świadomych decyzji, na którym chciałbym się skupić dalej, poznanie jej, oszacowanie jej parametrów, pozwala na zaplanowanie własnej ścieżki rozwoju i to w miarę optymalnie.

Zastanówmy się, jak z tą zmiennością wiedzy w czasie jest w IT? Jest różnie. O ile pojęcie liczby (zmiennej, stałej), jest obecnie od wielu lat i w zasadzie się nie zmienia, jak się to zrozumie raz, to powinno to już wystarczyć. O tyle np. architektury systemów średnio co 10 lat zaliczają znaczącą, istotną zmianę i wymagają od nas aktualizacji wiedzy przynajmniej z taką częstością.

Jak zatem ustalić, jak często trzeba zdobywać nową wiedzę, uczyć się, aby osiągać sukces? Zacznijmy od tego co to znaczy osiągać sukces. Wiele badań utwierdza nas w przekonaniu, że aby osiągnąć sukces należy osiągać wyniki powyżej średniej, z zaznaczeniem, że ta przewaga nie musi być duża, wystarczy aby wystąpiła. A sama częstość aktualizacji wiedzy? To proste. Szukajmy obszarów gdzie się coś zmienia. Tam gdzie zaobserwujemy zmiany, rozwój, tam trzeba zdobywać wiedzę. Ujmując to w jednym zdaniu, otrzymujemy

Sukces zapewnia nam ponadprzeciętna wiedza aktualizowana z częstością adekwatną do jej zmienności

Polecam uświadomienie sobie funkcji zmienności wiedzy w Waszych dziedzinach, aktualizację wiedzy w obszarach które tego wymagają z częstością która jest dopasowana do zmian i … życzę sukcesów.