Demistyfikacja algorytmu
Skontaktuj się z nami!

Ostatnio zauważa się wzrost popularności i nadziei wokół algorytmów. Ale co one mogą zrobić, a czego nie? Jak działają? Czy mogą czuć jak ludzie? Kasia Barczewska, Kierownik Działu Badań i Rozwoju w Cardiomatics, zabiera nas w fascynującą podróż przez sztuczną inteligencję, algorytmy i uczenie maszynowe.

Jak wyjaśnić dziecku, czym jest algorytm i czym jest AI?

Algorytm to rodzaj przepisu, który opisuje, jak rozwiązać problem lub osiągnąć cel. Cel jest kluczowy – dokładnie to, co chcemy zrobić. Jeśli chcemy upiec ciasto, przepis na ciasto jest algorytmem, który definiuje, jak to zrobić, zaczynając od listy składników, które musimy mieć, a kończąc na temperaturze piekarnika i czasie pieczenia. Jeśli będziemy postępować zgodnie z algorytmem, uzyskamy upieczone ciasto. Jeśli chcemy zbudować zamek z klocków, instrukcja, jak to zrobić, również jest algorytmem, który pozwala nam osiągnąć ten cel i uzyskać taki sam budynek, jaki był na obrazku z pudełka.

Co to jest AI? Jest to powszechny termin ale nadal na bardzo wysokim poziomie abstrakcji. To zdolność komputerów do nauki, uogólniania, stosowania wiedzy w praktyce i podejmowania decyzji. Za tym popularnym terminem kryją się po prostu statystyka i modelowanie matematyczne. Jak to można wyjaśnić dziecku? Powiedziałabym: „AI to sposób, w jaki mój laptop może się uczyć rzeczy tak jak Ty, moje drogie dziecko. Uczy się on znacznie wolniej i potrzebuje znacznie więcej przykładów niż Ty”.

Jak wygląda proces tworzenia algorytmu?

Czyli pytanie o algorytm algorytmu. W zasadzie jest to bardzo twórczy proces, podczas którego projektant algorytmu jest dzieckiem siedzącym z całym światem klocków i próbuje zrozumieć, jak zbudować zamek. Projektant musi zdecydować, które klocki należy użyć i jakie kroki należy podjąć, aby stworzyć ten budynek. Efektem jego pracy jest zarówno piękny zamek, jak i książka z instrukcjami dla innych, którzy chcieliby go zbudować w ten sam sposób.

Innym przykładem może być japoński mistrz origami, który zastanawia się, jak zrobić żurawia z kwadratowego kawałka papieru. Efektem jego wysiłków jest instrukcja dla innych miłośników origami, którzy mogą złożyć kartkę w ten sam sposób.

Generalnie istnieje kilka bardzo ważnych kroków w tym procesie:

  • Określenie celu. Na przykład „Chcę zbudować zamek/upiec ciasto”, „Chcę stworzyć żurawia”, „Chcę wykryć migotanie przedsionków”.
  • Zdefiniowanie zbioru założeń/narzędzi, które można wykorzystać: „Mam 200 klocków o określonych kształtach i kolorach/jajka, mąkę i jabłka”, „Mam jeden kwadratowy kawałek papieru”, „Mam bazę danych 24-godzinnych zapisów od 100 pacjentów.”
  • Zdefiniowanie dokładnie, jaki powinien być wynik algorytmu: „Zbuduję Ruchomy Zamek z klocków/Upieczemy szarlotkę”, „Zrobię żurawia z origami”, „Wynikiem będzie 0 lub 1 w zależności od tego, czy wykryto migotanie przedsionków w 24-godzinnym sygnale EKG.”
  • Badania: jak inni to robią?
  • Spisanie kroków, które należy podjąć, aby osiągnąć cel. Na przykład: spisanie przepisu, spisanie pseudokodu, jak sygnał będzie postępował, jakie modele zostaną użyte, jakie metody uczenia maszynowego zostaną użyte do nauczenia modeli odpowiednich statystyk, jakie metryki zostaną zastosowane w procesie oceny.
  • Określenie, jak wykonamy te kroki. „Będę budować mój zamek w moim pokoju, słuchając muzyki/gdzie jest forma do pieczenia?”, „Złożę papier ręcznie”, „Napiszę kod w Pythonie, nauczę modele na GPU i zapiszę najlepszy w pliku hdf5.”
  • Ocena/przejrzenie całego procesu. „Ups, zamek się zawalił”, „Muszę zmienić projekt”, „Zapomniałem dodać cukru! To żuraw, który wygląda jak pingwin.”
  • Przetestowanie modelu na nowych danych i obliczenie metryk oceny. Analiza nowych parametrów i próba zrozumienia, co one oznaczają. Porównanie z innymi modelami lub z nowoczesnymi metodami.

Kiedy algorytm jest gotowy, karmisz go danymi, i co się dzieje dalej?

Komputer może zacząć się uczyć. Komputery przetwarzają bajty danych, aby znajdować wzorce i otrzymywać parametry statystyczne, w których ich wiedza będzie przechowywana. Mogę obserwować proces nauki, patrząc na krzywe uczenia się, relaksując się przy kawie i czekając, aż się skończy. Czasami model jest gotowy, zanim ekspres do kawy zmieli kawę. Ale w niektórych przypadkach gigabajty danych i skomplikowane strategie nauki sprawiają, że proces uczenia się trwa kilka dni lub tygodni.

Gdy model jest gotowy, musi być oceniony na danych, które nie były używane w procesie uczenia. Muszę ocenić, czy robi to, do czego został zaprojektowany. A jeśli nie, muszę przejrzeć cały proces nauki.

Czy znamy krok po kroku, jak algorytm wyciąga wnioski lub transformuje dane?

Tak, znamy. Wszystko zależy od naszych decyzji: od danych, które przygotowaliśmy do jego karmienia, od modelu, który wybraliśmy, i od strategii uczenia, którą zdecydowaliśmy się zastosować na początku procesu. Wiedza komputera jest przechowywana w parametrach statystycznych, które możemy wizualizować na każdym etapie procesu uczenia się. Oczywiście, im prostsze są algorytmy, tym łatwiej. Im bardziej zaawansowane algorytmy, tym staje się to bardziej skomplikowane.

Czym jest uczenie maszynowe?

To najlepsze praktyki dotyczące tego, jak szkolić swoje modele, aby skutecznie przewidywały w realnych przypadkach. Można sobie wyobrazić uczenie maszynowe jak zestaw narzędzi, które inżynierowie mają, aby nauczyć komputer i ocenić jego proces uczenia się. Te narzędzia są używane w kilku krokach: na początku do przygotowania materiału, który będzie używany do nauki, następnie do szkolenia i oceny algorytmu. Wśród „narzędzi przetwarzania wstępnego” inżynier ma metody eksploracji danych, metody augmentacji danych, podział danych na zestawy treningowe i testowe, metody selekcji do pokazania/ujawnienia tylko najważniejszych cech w danych algorytmu i ułatwienia procesu uczenia. Następnie może wybierać spośród szerokiej gamy modeli lub architektur modeli, które są centralną częścią algorytmu. W zależności od modelu należy wybrać odpowiednią strategię uczenia: Co ma minimalizować lub maksymalizować algorytm podczas procesu uczenia się? Jak szybko powinien się uczyć? Inżynier może używać kilku różnych modeli i porównywać ich wyniki za pomocą metryk oceny. Podstawą wszystkich tych narzędzi są statystyka i matematyka. Wszystkie są przechowywane w bibliotekach open source i podręcznikach, dzięki czemu każdy inżynier na świecie może ich używać do szkolenia swojego modelu lub ich poprawiania.

Kiedy maszyny uczą się, czy pomnażają błędy w danych, których używają?

Algorytmy są tak dobre, jak dane, które wykorzystują w procesie uczenia się. Jeśli w etykietowaniu danych występują systematyczne błędy, algorytm nauczy się ich i będzie popełniał te same błędy w rzeczywistości. Dlatego też, zwłaszcza w aplikacjach medycznych, ważne jest skonsultowanie odpowiednich etykiet (diagnostyki) z wieloma specjalistami oraz zdobycie szerokiej wiedzy z materiałów szkoleniowych.

Problem przezroczystości jest problemem wielopoziomowym. Na wyższym poziomie ludzie mogą personifikować „algorytmy AI”, nie wiedząc, czym są, kiedy są to po prostu zbiory modeli statystycznych i matematycznych. Na niższym poziomie, najbardziej popularne algorytmy obecnie są krytykowane za brak przejrzystości z powodu milionów parametrów, które posiadają, a także za ich całkowicie oparty na danych sposób uczenia się, bez stosowania jasnych reguł czy praw, co jest zupełnie innym podejściem do uczenia się niż mają ludzie. Ta krytyka jest dobra, ponieważ zmusza badaczy do poszukiwania nowych rozwiązań i opracowywania różnych metod.

Czy AI może robić rzeczy bez naszej kontroli, które mogą być niebezpieczne dla pacjentów?

Algorytmy są tylko narzędziami w ludzkich rękach. O ile są używane w dobrej wierze, mogą wspierać pracę lekarza. Oczywiście nawet w dobrej wierze istnieje miejsce na błędy ludzkie: na przykład w przypadku źle przygotowanych danych podanych algorytmowi w procesie szkoleniowym. Na szczęście w dobrej praktyce ostatecznym punktem opracowania modelu/algorytmu jest ocena, która powinna być przeprowadzona bardzo ostrożnie. Na tym etapie możemy ocenić, czy nasza metoda działa tak, jak powinna, i jeśli nie, musimy przejrzeć cały proces.

Jak precyzyjne są algorytmy? Czy mogą zapominać tak jak ludzie?

Rola inżyniera polega na dokładnym przygotowaniu danych i wyborze najlepszych narzędzi uczenia maszynowego dla modelowanego zjawiska. Jeśli zapomni o czymś w procesie nauki, dane używane w szkoleniu będą nieodpowiednie dla zjawisk i algorytm nie będzie działał dobrze w rzeczywistości. Nie zapomni, ale nie będzie wiedział, że istnieją inne dystrybucje tego zjawiska. Algorytmy modelują wiedzę tylko w sposób, w jaki była pokazana w procesie uczenia się.

Czego algorytmy nigdy nie będą w stanie zrobić?

Zakochać się, posiadać rodzinę, spotkać się z przyjaciółmi, być ciekawym świata i mieć hobby, relaksować się i pić kawę. Ale dzięki algorytmom ludzie będą mieli więcej czasu na robienie tych miłych rzeczy.

W jaki sposób algorytmy zmienią medycynę?

Drastycznie! Dadzą lekarzom możliwość dokonania holistycznej diagnozy opartej na automatycznie przetworzonych danych z różnych badań. Znajdą zależności między danymi pacjentów i pokażą te zależności lekarzom. Skrócą czas między badaniem a diagnozą. Dadzą lekarzom czas na rozmowę z pacjentem i zastanowienie się nad terapią. Zredukują czas oczekiwania na specjalistów. Pozwolą na zwiększenie liczby wykrytych przypadków danej choroby, umożliwiając szybką analizę sygnałów długoterminowych. Ułatwią badania w miejscach na świecie, gdzie brakuje lekarzy.

Jak przygotować dane do algorytmów stosowanych w opiece zdrowotnej?

Przygotowanie danych to kluczowy krok, szczególnie w aplikacjach medycznych, i musi być wykonane bardzo starannie. Model będzie tak dobry, jak dane, które zostały użyte do jego szkolenia. Pary próbek danych z odpowiednimi etykietami (prawidłową diagnozą) są kluczem do sukcesu. Idealnie byłoby, gdyby były one przeglądane przez kilku niezależnych specjalistów. W tym momencie niezbędna jest bardzo bliska współpraca z lekarzami.

Czy AI może robić coś bez naszej zgody lub kontroli?

Jeśli cały proces opracowania algorytmu został wykonany dobrze, a algorytm został przetestowany na reprezentatywnym zestawie danych, to wiemy dokładnie, czego możemy się spodziewać od tego algorytmu i jak będzie działać w rzeczywistości. Jeśli nie zwróciliśmy wystarczającej uwagi na testowanie, wtedy różne rzeczy mogą się zdarzyć w rzeczywistej aplikacji, i nie będziemy rozumieć, dlaczego się zdarzyły.

Jeśli zapytasz mnie jako inżyniera, czy dobrze zaprojektowany i przetestowany algorytm AI może coś zrobić samodzielnie bez naszej zgody lub kontroli, odpowiedź brzmi „nie”. Jeśli pozwolimy mu działać samodzielnie, wtedy tak. Ale wtedy jest pod naszą kontrolą, ponieważ oczekiwaliśmy tego wyniku.

Czy możliwe jest zbudowanie systemu AI, który nauczy się ludzkich uczuć, takich jak empatia, współczucie, sympatia, itp.?

Wykrywania emocji, zdecydowanie tak. Czy odczuwania emocji jak ludzie? Co oznacza „uczucie w kontekście komputera”? Podejmowanie decyzji w określony sposób, w zależności od zebranych danych? Wzbudzanie procesów chemicznych? Czy symulowanie wyrazów twarzy? Pytanie brzmi: jeśli rozumiemy ludzkie emocje w ten sposób, czy moglibyśmy je opisać algorytmowi? Nawet jeśli tak, będą to tylko matematyczne modele emocji.

Czy AI może stać się bardziej inteligentna niż ludzie?

Co to znaczy „bardziej inteligentna”? Istnieją różne rodzaje inteligencji i różne zadania, w których możemy porównywać ludzi i komputery. I oczywiście są przypadki, w których inżynierowie opracowali algorytmy, które przewyższyły ludzi. Takie przykłady to stare gry planszowe takie jak „Go” i szachy, w których algorytmy mogą pokonać mistrzów ludzi. W przypadku szachów były mistrz szachowy, Kasparov, podziwiał nietypowy styl, w jakim grał algorytm i zauważył, że ludzie mogą uczyć się nowych strategii proponowanych przez komputer.

Oczywiście algorytmy zdołały osiągnąć takie poziomy, ponieważ przetwarzały miliony przykładów szkoleniowych, które składały się z gier między ludźmi. Są także publikacje, w których badacze pokazali, że algorytmy prześcigają pojedynczych lekarzy w porównaniu z diagnozami opracowanymi przez grupę specjalistów. Było to także dzięki temu, że algorytm uczył się z milionów odpowiednio przygotowanych przykładów szkoleniowych.

Z drugiej strony ludzie potrzebują tylko kilku przykładów szkoleniowych, aby zdobyć wiedzę wystarczającą do zrozumienia nowego zjawiska. Ludzie mogą uogólniać swoje umiejętności w o wiele lepszy sposób lub wnioskować wiedzę tylko z krótkiego określenia nowego terminu. Mogą łączyć fakty z wielu różnych dziedzin, nie mając tylu przykładów szkoleniowych, ile obecnie potrzebują algorytmy, aby pokonać mistrza szachowego.

Od autora: Kasia (Ph.D. w inżynierii biomedycznej i medycznej) ma niezwykłą zdolność do wyjaśniania nawet najbardziej skomplikowanych rzeczy. Po wywiadzie z nią wreszcie zrozumiałem problemy, które od dłuższego czasu mnie dręczyły. Jest pasjonatką badawczą w Cardiomatics – narzędziu AI w chmurze do analizy EKG.

Skontaktuj się z nami!