Do niedawna upatrywano w informatyce głównie zagrożeń związanych ze zbieraniem i rozpowszechnianiem danych. Obecnie coraz więcej mówi się o algorytmach – o przetwarzaniu danych i wyciąganiu z nich wniosków. Często obawy dotyczą profilowania użytkowników, przy czym profilowanie to może być użyteczne (Amazon sugeruje książki, które mnie faktycznie interesują), niemiłe (bank wykrywa, że źle spłacam kredyty) lub błędne (czytam Averroesa w arabskim oryginale, więc służby identyfikują mnie jako terrorystę).
Ale czym w ogóle są algorytmy? Najprościej mówiąc, algorytm to definicja ciągu obliczeń. Dane wejściowe są przetwarzane i dają wynik.
Na tym etapie nie ma tu niczego tajemniczego ani demonicznego. Ze szkoły znamy (i pamiętamy?) metodę rozwiązywania równań kwadratowych. Rozwiązaniami równania: x2 – x – 6 = 0 są x1 = 3, x2 = -2. Algorytm wyznacza ruch windy w zależności od naciśniętych klawiszów. Inny dokonuje kompresji obrazu, wylicza spójny rozkład jazdy pociągów lub gra w szachy.
Sprawy się komplikują, gdy algorytm się uczy. Przetwarzane dane modyfikują sam algorytm. Uczenie może być nadzorowane lub nie. W uczeniu nadzorowanym algorytm próbuje znaleźć rozwiązanie, po czym otrzymuje informację, jakie rozwiązanie było poprawne.
Perceptron rozpoznający litery na podstawie tablicy białych i czarnych punktów dostaje od uczącego sprzężenie zwrotne. Na tej podstawie adaptuje swoje parametry, by zbliżyć się do poprawnego wyniku. W przykładzie powyżej niezbyt równa litera zostaje rozpoznana jako prawdopodobnie „C”.
W uczeniu nienadzorowanym algorytm próbuje sam znaleźć regularności w danych, grupować je oraz próbować wiązać przyczyny ze skutkami. Oczywiście korelacja to nie kauzacja – zależności mogą być pozorne. Do tego, gdy algorytm modyfikuje się sam, tracimy nad nim kontrolę. Efektywny algorytm jest zależny od danych treningowych. Jeżeli algorytm grający na giełdzie będzie trenowany w okresie ciągłej hossy, będzie miał skłonność do nadmiernego optymizmu i zaniedbywania ryzyka. W przypadku spadku kursu doprowadzi do katastrofy. Problem polega na tym, że w bardziej złożonym algorytmie nie są widoczne części składowe. Podobnie nie jesteśmy w stanie stwierdzić, które neurony w mózgu pamiętają określoną informację. Ich zespół pozwala na inteligentne zachowanie, ale to wszystko.
Uczenie algorytmów przypomina wychowywanie dzieci. Mamy pewną wizję pożądanego ich zachowania, ale chcemy je też poprowadzić do samodzielności, by umiały rozwiązywać bez pomocy nowe, nieznane nam problemy. Jeżeli jednak dojdą do wniosku, że najlepszym sposobem na łatwe, dostatnie życie jest sprzedawanie w klasie marihuany, to mamy problem. Nawiasem mówiąc, jest to faktycznie optimum, tyle że lokalne, do wizyty policji w klasie. Doświadczony rodzic posiada korygującą informację. Problem polega na jej przekazaniu i przyjęciu.
W przypadku rozpoznawania czysto napisanych liter korygowanie algorytmu jest łatwe. Ale gdy litery są zamazane, napisane innym charakterem pisma, o nierównej wysokości, i niezbyt równo, poprawna odpowiedź jest mniej oczywista. Podobnie przy wykrawaniu początków raka w obrazach medycznych oczekujemy, że algorytm nie tylko dorówna lekarzowi, ale i go przewyższy. Algorytm optymalizujący sterowanie sygnalizacją świetlną w mieście dodatkowo działa w czasie uniemożliwiającym kontrolę na bieżąco. Intuicyjnie możemy mieć zastrzeżenia, zwłaszcza gdy to my stoimy dłużej na czerwonym świetle, ale może globalny cel realizowany jest dobrze.
Podsumowując: nad samoadaptowalnym algorytmem tracimy kontrolę i gdy jego złożoność przekroczy pewien poziom, trudno jest nam zweryfikować, czy naprawdę realizuje on nasze cele. Do tego po czasie nasze cele i nasze oceny moralne mogą się zmienić.
Nie zapominajmy o tym, że wynikiem algorytmu nie są tylko dane i wizualizacje. Dane prowadzą do wniosków, wnioski do decyzji. Decyzje te mogą być wykonywane automatycznie (blokada bramki w metrze) lub poprzez ludzi (zalecenia szczepień ochronnych). Dlatego zbieranie statystycznie znaczących danych i przetwarzanie ich przez algorytmy jest odpowiedzialnym zadaniem.
W ocenie zagrożeń na ogół myśli się o złych ludziach, pragnących nas wykorzystać lub nam zaszkodzić. Jako programista za najgroźniejsze uważam błędy programowania. Wyobraźmy sobie młodego programistę, siedzącego późno w nocy dwa tygodnie po terminie oddania programu. Napotyka na sytuację, gdzie program ma podjąć decyzję. Dla programisty to tekst na ekranie:
if (warunek)
then {akcja1}
else {akcja2}
Czy na pewno tak sformułowany warunek precyzyjnie rozdziela obie sytuacje? Czy zastosowana akcja nie jest zbyt brutalna? Może potrzebne jest sprawdzenie dodatkowych parametrów? Można by kogoś zapytać, ale kogo o tej porze? Do tego presja czasowa powoduje pomijanie sytuacji awaryjnych. Łączymy się z innym urządzeniem, otwieramy plik na dysku. Co zrobić, gdy go nie ma? E tam, przecież będzie…
W praktyce jednak podjęta akcja może mieć dla kogoś skutki katastrofalne. Dlatego też musi być ona precyzyjnie zdefiniowana, a zwłaszcza warunek musi być poprawnie sprawdzony. W prywatnym życiu możemy na przykład zobaczyć dwóch bijących się i chcieć wkroczyć do akcji. Zależnie od poziomu agresji najwłaściwsza może być perswazja, wejście w bijatykę lub nawet strzał. Dalej – jeszcze trzeba wiedzieć, któremu pomóc. Jeżeli jeden leży powalony, to nie znaczy, że jest niewinną ofiarą. Podobnie w piłce – zawodnik się zwija z bólu na murawie. Jeżeli został brutalnie sfaulowany, faulującemu należy się czerwona kartka. Jeżeli jednak symuluje, sam powinien dostać żółtą. Po zamachach z 11 września Amerykanie próbowali zbudować system wykrywający bad guys. Problem polega na tym, że jest ich mało, ale są niebezpieczni, więc nie chcemy żadnego przeoczyć. Z drugiej strony zbyt swobodne kryteria prowadzą do false positives. Załóżmy, że w stumilionowym narodzie szukamy tysiąca bojowników Państwa Islamskiego. Jeżeli algorytm jest poprawny w 99% przypadków – co brzmi dobrze – to 1% populacji zostanie uznany za terrorystów, a to jest milion! W ten sposób cała akcja staje się bezwartościowa. No, może nie do końca. Jeżeli temu milionowi przyjrzymy się bliżej, oczywiście automatycznie, to może coś to da. Z tym że 1% z miliona to dalej 10 tysięcy, dziesięć razy więcej, niż faktycznie szukamy.
Obecnie ze względu na nowe źródła danych problem się pogłębia. Duża część naszego życia rozgrywa się w Internecie, gdzie rejestrowane jest wszystko. Gdy w jednej zakładce poszukam informacji o Hawajach, w drugiej pojawi się reklama hoteli w Honolulu. I choć na moim ekranie informacja ta przeskakuje 20 centymetrów, gromadzona jest na farmie serwerów gdzieś w USA. Jeżeli mój smartfon liczy moje kroki i porównuje moje wyniki z moją grupą wiekową, to znaczy, że Samsung ma te dane u siebie. Jest cool widzieć moje trajektorie na mapce, ale zna je też Samsung – i kto wie, kto jeszcze. Modnym trendem jest quantified self – gromadzenie danych fizjologicznych. Gromadzenie implikuje udostępnianie, więc nie należy się dziwić, gdy nadejdą reklamy sprzętu medycznego do leczenia chorób, o których ja nie wiem, ale oni wiedzą. Ale spójrzmy na to z drugiej strony – jeżeli Nieznany Obserwator ostrzeże mnie w porę o ryzyku choroby, to chyba dobrze?
Widzimy, że i ten kij ma dwa końce, jeżeli nie więcej. Algorytm steruje samolotami w powietrzu i na lotnisku. Ruch wind w wieżowcu optymalizuje przepustowość. Algorytmy łączą oferujących przejazdy na Uberze z pasażerami i ułatwiają wynajmowanie mieszkań na Airbnb. W gąszczu informacji podsuwana mi jest potencjalnie interesująca – z ryzykiem zamknięcia mnie w bańce informacyjnej. Nawet przetwarzanie moich danych coś mi daje, choćby przez pogłębianie wiedzy medycznej dotyczącej mojej choroby.
Ale są też zagrożenia. Podsumujmy je:
- Algorytmy są zbyt złożone, zbyt szybkie
- Algorytmy uczące się wymykają się spod kontroli
- Zależą też od danych treningowych
- Są naszpikowane błędami, jak każdy program
- Równocześnie oddajemy algorytmom kolejne dziedziny życia
Nie idealizujmy jednak dawnych dobrych czasów. Dziś mogę się obawiać, że np. nie dostanę wizy na podstawie analizy moich kontaktów i lajków na Facebooku, domyślnego stanu zdrowia i czego tam jeszcze. Ale jak było przedtem? Groźny pan mógł spojrzeć w oczy i stwierdzić, że jako Polak pewnie będę nielegalnie pracować, byłem na trekkingu w Hindukuszu, a ogólnie to student jest elementem niepewnym, a on nie lubi długowłosych. Efekt jest ten sam.
Nie straszmy więc Cyfrowym Piekłem. Może problem polega raczej na tym, że oczekiwaliśmy Cyfrowego Nieba – a takie nie istnieje.
Jan Śliwa
Polecam:
John MacCormick „Nine algorithms that changed the future” Wytłumaczenie pojęcia algorytmu na dobrych przykładach
Pedro Domingos „The master algorithm” Algorytmy uczące się
Ken Hillis, Michael Petit, Kylie Jarrett „Google and the culture of search” Algorytmy wyszukiwania i ich efekty
Ariel Ezrachi, Maurice E. Stucke „Virtual competition” Ekonomia sterowana algorytmami
Frank Pasquale „The black box society” Wpływ algorytmów na codzienne życie
Yvonne Hofstetter „Das Ende der Demokratie” Demoniczna wizja sztucznej inteligencji
Luciano Floridi, Phyllis Illari „The philosophy of information quality” Jakość informacji jako podstawa algorytmów