„Niektóre aspekty machine learning, czyli uczenia maszynowego, przypominają błędne koło. Przykładowo: istnieją modele do wykrywania falsyfikatów, ale im są lepsze – czyli im bliżsi jesteśmy wykrycia każdego falsyfikatu – tym bardziej twórcy tych falsyfikatów będą dążyć do ideału. Tak samo z jest z wykrywaniem oszustw finansowych. Nawet jeśli trenujemy model do zapobiegania takim oszustwom, to trenujemy również oszusta, choćby i nie bezpośrednio. No i ten nasz model wie, jak złodziej działa. A więc może być wykorzystany w złym celu” – o dylematach związanych z uczeniem maszynowym rozmawiamy dziś z inżynierem uczenia maszynowego Adamem Rajferem.
Machine learning, czyli uczenie maszynowe, to jedna z metod wpajania wiedzy sztucznej inteligencji (AI). Wiąże ze sobą takie dziedziny, jak informatyka oraz matematyka, a w szczególności statystyka. Głównym obszarem zadań w ramach machine learning jest stworzenie algorytmów, które byłyby odzwierciedleniem ludzkiej inteligencji. Algorytmy te uczą się poprzez doświadczenie i wykorzystanie danych. Dane są tak naprawdę „mięsem” napędzającym algorytmy machine learning. Nierzadko są to nasze prywatne dane.
Machine learning rozwiązuje większość problemów klasyfikacyjnych na świecie i powoli zacznie zajmować miejsce ludzi, którzy tym się zajmują. Identyfikuje użytkownika, rozpoznaje komórki rakowe, liczy słonie na planecie albo analizuje ryzyko wystąpienia burzy. Potrafi również analizować nagrania w taki sposób, aby wykryć ewentualne niebezpieczne zachowania u ludzi. Niestety nie zawsze działa to dobrze. Słynny jest przypadek z USA, gdzie zastosowanie machine learning wpakowałoby do więzienia szybciej osobę czarnoskórą niż białą.
Czy w tym przypadku życie ludzkie powinno być poddane ocenie maszyny? W innym przypadku panie “promujące” akcję pro-life, okazały się nie do końca żywe, po tym, jak zabrakło im kawałka ucha. Są i pozytywne przykłady. Warto wspomnieć obraz wygenerowany przez algorytm GAN, który został sprzedany za 500 tysięcy dolarów.
Machine learning ma za zadanie zastąpić człowieka zarówno w prostych zadaniach, jak i w tych, wymagających wiedzy eksperckiej. Tylko – no właśnie – najpierw trzeba ją wszystkiego nauczyć. Czy taka maszyna jest w takim razie obarczona już na starcie błędem ludzkim? A może jest w stanie się z niego wyzwolić?
Na Homodigital rozmawiamy dzisiaj na ten temat z inżynierem uczenia maszynowego Adamem Rajferem.
Weronika Tybora: Czy machine learning może rzeczywiście zastąpić człowieka?
Adam Rajfer: Z ludźmi jest taki problem, że… im się nie chce. Maszyna przeważnie nie będzie lepsza niż najlepszy ekspert w danej dziedzinie, ale z pewnością przewyższy dokładnością oraz jakością swojej pracy większość naukowców i badaczy. Wykona też znaczną liczbę prostych zadań w bardzo krótkim czasie, nie wymagając zaangażowania człowieka.
Ale czy jest możliwość, że algorytm machine learning będzie miał 100% skuteczności, a więc wyeliminujemy w ogóle ryzyko błędu? Jak wiemy, ryzyko wyeliminowania błędu ludzkiego jest nierealne. A w przypadku uczenia maszynowego?
Założeniem uczenia maszynowego jest to, że ważniejsza jest niepewność niż pewność wyniku. Chodzi o to, żeby maksymalizować prawdopodobieństwo sukcesu, ale nigdy nie zakładać, że coś jest w 100% pewne. W ten sposób możemy tworzyć poziom zaufania do modeli, które tworzymy. Daje nam to konkretny obraz algorytmów i możemy porównać sobie później, czy działają lepiej niż człowiek. Są przypadki, w których działają lepiej niż człowiek. W znacznej części przypadków działają gorzej. Zdarza się również, że człowiek w zestawieniu z maszyną nie będzie miał żadnych szans, głównie ze względu na ograniczone możliwości naszego mózgu (np. analizowanie danych o skomplikowanych strukturach).
Dane trzeba jednak skądś mieć. Jaka jest rola ludzi w „trenowaniu” algorytmów?
I tutaj ważna jest praca ludzi – analityków danych, którzy je gromadzą i oznaczają. To właśnie pracę tych ludzi ma zastąpić algorytm. Przykładowo: aby wytrenować model do klasyfikacji, który określi, czy na danym zdjęciu jest kot czy pies, najpierw ludzie muszą sami te zdjęcia przygotować i oznaczyć odpowiednimi etykietami (np. 0: pies, 1: kot, 2: inne zwierzę). Dzięki temu, że powstanie taki algorytm, będzie można lepiej wykorzystać kwalifikacje, czas i możliwości człowieka. Z drugiej strony może to się wiązać ze znaczną redukcją zatrudnienia i z koniecznością przebranżowienia się przez osoby wykonujące dziś proste, automatyczne zadania.
Czy model może być… głupi? Czy jeśli pokażemy mu zdjęcie komórki rakowej i zdjęcie psa, to on zawsze prawidłowo zidentyfikuje komórkę rakową?
Żeby nauczyć model rozróżniać między obiektami na obrazach, musimy mu przekazywać obrazy z obiektami pozytywnymi i negatywnymi. Jeżeli pokażemy modelowi wyłącznie komórki rakowe, to znajdzie na każdym zdjęciu komórki rakowe, ponieważ nie będzie znał w ogóle innej przestrzeni danych. Ale tak naprawdę nigdy nie wiadomo, czego model będzie się uczył. Bo jeżeli wszystko jest jedynką, to model wszystkiemu będzie przypisywał jedynkę. Musi być różnorodność: tu jest rak, a tu nie ma raka.
Chociaż to też nie jest takie proste. Załóżmy, że trenujemy model do wykrywania komórek rakowych, i przekazujemy mu wyłącznie zdjęcia rentgenowskie. Jeżeli wrzucimy potem do modelu zdjęcie psa na łące, to może się okazać, że nasz pies, według sztucznej inteligencji, jest rakiem.
Rozwiązaniem tego problemu mogłoby być wytrenowanie modelu z trzema klasami: rak, nie rak i w ogóle inny przedmiot. Wiadomo oczywiście, że nie ma sensu przekazywać modelowi zdjęć innych niż zdjęcia rentgenowskie komórek rakowych, jeśli właśnie do ich wykrywania służy ten model.
Ale istnieje przypadek, w którym mogłoby to być użyteczne. Załóżmy, że trenujemy model na zdjęciach rentgenowskich z konkretnej maszyny w danym szpitalu. Widzimy, że model fajnie działa i jakiś inny szpital chciałby go również wykorzystywać do analizy, a ma inną maszynę, która inaczej generuje zdjęcie. Jest wtedy możliwość, że model będzie przewidywał zupełnie losowo na zdjęciach z nowej maszyny.
Jakich modeli używa się w Machine Learningu?
Modeli jest mnóstwo. Z prostych stosuje się takie jak: regresja logistyczna i naive bayes. Z bardziej złożonych, tzw. modeli ensemblingowych: las losowy (random forest) czy XGBoost. Jednak w ostatnich czasach najpopularniejsze są sieci neuronowe.
No właśnie, często słyszymy o sieciach neuronowych. Co to takiego?
Mapują one dane na pewną bardzo złożoną przestrzeń cech i dokonują klasyfikacji. To, co jest najistotniejsze w sieciach neuronowych, to fakt, że potrafią one analizować różne rodzaje danych. Mamy dane numeryczne, ale mamy też obrazy. Sieć neuronowa bardzo dobrze radzi sobie z danymi sekwencyjnymi, czyli przebiegiem czasowym, gdzie drugi element zależy od pierwszego, trzeci od drugiego. Przydaje się to przy przewidywaniu rozwój sytuacji na giełdzie akcji.
Założeniem sieci neuronowych jest to, że mamy ciągłość (różniczkowalność) od początku do końca. Sieć neuronowa potrafi dzięki temu bardzo elastycznie dostosować się do danych. To daje nam strukturę, która komunikuje się ze sobą. Co ciekawe, przy całym swoim skomplikowaniu, na poziomie neuronu sieć to zaledwie funkcja liniowa: ax + b. Cała inteligencja zawarta jest w dodawaniu, mnożeniu i kilku prostych nieliniowych funkcjach aktywacji. Jako programiści możemy ustalić rozmiar sieci, czyli liczbę neuronów i warstw neuronowych, a także wszelkie inne jej parametry. Rozmiar sieci jest istotnym parametrem i będzie wpływać na to, czy model będzie overfittować.
Czym jest overfitting?
Overfitting wynika z tego, że model uczy się zbyt mocno rozkładu danych ze zbioru treningowego i potem nie potrafi poprawnie generalizować na zbiorze testowym (na którym nie był uczony). Czasami przekazujesz modelowi dane, które są zbyt mało różnorodne i model nie ma odpowiednich warunków żeby generalizować.
Aby uniknąć overfittingu, możemy zebrać bardziej różnorodny zbiór danych albo zastosować augmentację danych, czyli np. – w przypadku zdjęć – możemy zmienić ich kolor, zaszumić, przyciąć, zmienić perspektywę. Dzięki temu model zobaczy, że obraz czasem nie jest idealny. W dużej liczbie przypadków to pomaga, w szczególności w przypadku rozróżniania obrazów, literek albo cyferek lub analizie piśmie ręcznego.
Czy sieci neuronowe zostały stworzone na wzór naszego mózgu?
Można powiedzieć, że sieci neuronowe są inspirowane biologicznie, ale nie powiedzielibyśmy, że są realistyczne biologicznie. Co ciekawe, architektura sieci konwolucyjnych jest naprawdę skuteczna. Sieci konwolucyjne, te do rozpoznawania obrazu, spełniają rolę mózgu człowieka. Jeżeli chodzi o wykrywanie obrazów, to dobrze wytrenowany model jest już człowiekiem.
Co będzie, jeżeli wygenerujemy falsyfikat i każemy ocenić innej sieci neuronowej czy to jest podróbka? Da się nabrać?
W pewnym momencie jedna sieć powinna być mądrzejsza od drugiej. Analogia do policjant – złodziej. Mamy policjanta oraz beznadziejnego złodzieja. Ukradł coś i policjant go złapał. I dopóki złodziej nie nauczy się na własnych błędach, cały czas będzie łapany. A jeżeli umie się uczyć na własnych błędach? To następnym razem policjant go nie złapie. No dobrze, ale teraz policjant musi się nauczyć ponownie, jak złapać złodzieja. I tak w kółko, aż ktoś wygra. Tutaj chodzi ostatecznie, aby wygrał złodziej. I o to chodzi w generacji obrazów za pomocą sieci generatywnych – jak złodziej namaluje ten obraz i czy policjant wykryje, że to jest podróbka.
A odpowiadając na to pytanie wprost: istnieją modele do wykrywania falsyfikatów, ale to jest błędne koło. Im bliżsi jesteśmy wykrycia każdego falsyfikatu, tym bardziej zło będzie idealne. Tak samo z detekcją oszustw finansowych. Nawet jeśli trenujemy model do zapobiegania takim oszustwom, to trenujemy również oszusta, choćby i nie bezpośrednio.
No i nasz model wie, jak złodziej działa. A więc może być wykorzystany w złym celu.
Jak wykrywa się oszustwa finansowe za pomocą uczenia maszynowego?
Zacznijmy od tego, czym są oszustwa cyfrowe. To mogą być np. transakcje, które zostały wyłudzone. Albo sytuacje, kiedy ktoś obcy loguje się na nasze konto. Wtedy praca opiera się na tzw. anomaly detection, czyli – jak sama nazwa wskazuje – na wykrywaniu jakichkolwiek anomalii. Czyli np. gdy osoba mieszka w Polsce i nagle przeprowadza transakcję na Bali, albo wpisuje złe hasło za dużo razy.
Niestety, w tym obszarze praca z uczeniem maszynowym jest trochę ograniczona, bo to nie jest tak, że co chwilę ktoś coś kradnie. Oszustwa to zazwyczaj 0,5% transakcji. To są oszustwa, które zostały wykryte. Jeżeli uda nam się wytrenować model z sukcesem, to pojawia się kolejny problem – i to jeden z największych w tej branży. Co się stanie, jeśli uda nam się złapać wszystkie oszustwa? Wtedy oszuści nauczą się, że ich metody nie są skuteczne i wymyślą coś nowego. Będzie to skutkować koniecznością przetrenowywania modelu co jakiś czas. To błędne koło.
Jakie cechy wybiera się do uczenia maszyn służących do wykrywania oszustw?
W machine learningu się nie wybrzydza. Wszystko może się przydać, jednak warto jest unikać wyboru tzw. wrażliwych danych. Nie należy się skupiać na takich danych jak płeć, wyznanie lub kolor skóry, bo niestety model może okazać się rasistowski mimo, że takiego zamiaru nie mamy. Także to również jest historia o naszym sumieniu. Nikt nie chce, żeby model dyskryminował, dlatego powinno się wybierać jak najbardziej neutralne dane.
Skąd się biorą sytuacje, że algorytm staje się np. rasistowski? To błąd człowieka? Złe dane wsadowe?
Nawet po odrzuceniu danych wrażliwych możemy mieć sytuację, w której inne dane opisują sytuację w sposób implikujący problemy. Niestety, często okazuje się, że kobiety zarabiają mniej niż mężczyźni, mimo że tak nie powinno być. A z drugiej strony zarobki to jedna z najważniejszych zmiennych w wielu modelach. Nie chcemy, aby nasz model uczył się takich zależności, ale po prostu nie możemy odrzucić tej zmiennej. Jeżeli algorytm musi się wyuczyć, komu dać pożyczkę, a komu nie, to zarobki są konieczną zmienną.
Czytaj też: Siedem grzechów głównych sztucznej inteligencji
Przykładem nadużyć może być autoryzacja głosowa. Model prawdopodobnie nauczy się rozpoznawać głos męski i damski i przyrównywać go do płci wpisanej w dowód osobisty. I teraz możemy się zastanawiać, co z osobami transpłciowymi? Ktoś może być w trakcie terapii hormonalnej, mieć już zmieniony głos, a nie zdążył zmienić płci w dowodzie. I co wtedy? Dlaczego te osoby nie mają przejść autoryzacji głosowej, skoro są klientami banku tak, jak każdy?
Być może dobry model nauczy się, że to wcale nie jest oczywiste, że kobieta ma mieć kobiecy głos. Dzięki temu może w ogóle nauczy się ignorować tą zmienną i oprze weryfikację o intonację głosi. Albo o to, jak szybko dana osoba mówi. Każdy model będzie potrafił dyskryminować, jeśli mu na to pozwolimy. To jest bardzo trudny temat i ciężko jest zniwelować ten problem. Niestety, firmom zazwyczaj nie chodzi o to, żeby model nie był rasistą tylko o maksymalizację zysków. Lepiej jednak nieco ograniczyć skuteczność modelu, ale zadbać o to, żeby nie skrzywdzić człowieka.
Dziękuję za rozmowę!