Janusz Marecki
Podcast

Prowadzący naukowiec z DeepMind o rozwoju sztucznej inteligencji

W tym odcinku dowiesz się:

  • Czym zajmuje się Janusz Marecki oraz jak działa DeepMind?
  • Co Januszowi udało się osiągnąć pracując w IBM Research
  • Czym są problemy w całości obserwowalne?
  • Jakie są przeszkody w procesie konstrukcji sztucznego mózgu?
  • Czym jest system wieloagentowy (multi-agents system)?
  • Jaką wartość biznesową możesz uzyskać wdrażając system wieloagentowy do swojej firmy?
  • Czym jest efektywność Pareto?
  • Na czym polega „dylemat więźnia” oraz „dylemat społeczny”?
  • Jak problemy sztucznej inteligencji przekładają się na otaczającą nas rzeczywistość?
  • Czy w przyszłości będziemy w stanie kontrolować sztuczną inteligencję?
  • Czym dokładnie jest AGI oraz czy jesteśmy w stanie go osiągnąć?
  • W jak szybkim tempie technika posuwa się do przodu?
  • Jakich błędów unikać podczas wyciągania wniosków z „udanych” eksperymentów?
  • Które dziedziny nauki lub medycyny rozwiną się najbardziej w ciągu kolejnych 5-10 lat?

Na początek szybkie ogłoszenie. Pewnie jak już wiesz, 29 października ruszył mój autorski kurs praktycznego uczenia maszynowego. Natomiast 12 listopada, rusza już drugi, też autorski kurs online w 100%: “Praktyczne prognozy szeregów czasowych”. Czym są szeregi czasowe, opowiedziałem w odcinku 39, który nosi tytuł: “10 przykładów jak uczenie maszynowe może pomóc Twojemu biznesowi”. W skrócie chodziło o to: jeżeli chcesz się nauczyć robić prognozy, na przykład popytu, różnych wartości i innych wymiernych czynników w czasie, to bardzo gorąco Cię zapraszam na ten kurs, gdyż może okazać się, że nagle jesteś w stanie zoptymalizować swój biznes i przedstawić wymierne korzyści, dlaczego uczenie maszynowe działa. To tyle jeśli chodzi o ogłoszenie.

Tu możesz zobaczyć kawałek nagrania z kursu…

Teraz przechodzimy do dzisiejszego gościa, którym jest Janusz Marecki. Pracuje on w DeepMind. Wcześniej pracował w IBM, bardzo ciekawa osoba, z bardzo fajnym, przyjacielskim podejściem do życia. Kiedy już go lepiej poznasz, to bardzo przyjemnie się z nim współpracuje. Osobom, które mniej siedzą w temacie może się wydawać, że Janusz posiada czasem kontrowersyjne poglądy. Z drugiej strony jest to spojrzenie pragmatyczne. Tak, jak to widzi naukowiec pracujący w DeepMind. 


Cześć Janusz, przedstaw się: kim jesteś, czym się zajmujesz, gdzie mieszkasz?

Obecnie mieszkam w Londynie. Przedtem mieszkałem przez 10 lat w Stanach Zjednoczonych, w Nowym Jorku i w Los Angeles. Jestem naukowcem prowadzącym w DeepMind. To jest taki startup, który wyrósł już do ponad 1000 ludzi. Jest on częścią Google.

Słyszeliśmy o tym startupie :). A powiedz, co ostatnio ciekawego przeczytałeś?

Ostatnio natknąłem się na taką ciekawą książkę jednego ze słynnych naukowców z dziedziny sztucznej inteligencji, autorstwa Judea Pearl. To była książka zatytułowana “The Book of Why”. W tej książce autor podaje swoje doświadczenia przez całe życie kariery naukowej i argumentował dlaczego powinniśmy budować systemy sztucznej inteligencji, które rozumują nie tylko na podstawie danych. Czyli żeby ten system miał wbudowany algorytm rozumowania a nie tylko żeby próbował z danych te algorytmy wywnioskować. Bardzo ciekawa książka, dość obszerna. Jeszcze jej nie skończyłem, ale polecam.

Akurat tej książki jeszcze nie przeczytałem, ale też mam ją na uwadze. Czytałem o niej artykuł. W ogóle, autor tej książki jest bardzo ciekawą osobą i cała jego biografia też jest inspirująca.

Już wspomniałeś, że mieszkałeś przedtem w New Yorku, Los Angeles i pracowałeś w IBM Watson Research. Domyślam się, że przez 7 lat kiedy tam pracowałeś udało się zrobić wiele ciekawych rzeczy. Widziałem, że między innymi napisałeś książkę Allocation of Continuous Resources in Agent Systems. Proszę, powiedz coś więcej. Co udało się stworzyć właśnie pracując w IBM Research? Oczywiście tyle na ile możesz.

Miałem bardzo fajną okazję pracować z bardzo ciekawymi ludźmi. Jedną z osób z którymi między innymi tam pracowałem był Murray Campbell. Był on szefem tego zespołu Deep Blue, który grał z Kasparowem w szachy. Podobnie, miałem szansę jeszcze pracować z Gerry Tesauro. Jest on jednym z ojców sztucznej inteligencji, gdyż jako pierwszy w 1994 roku zaproponował taki system, mianowicie sieć neuronową, która sama nauczyła się grając ze sobą, grać w Backgammon na poziomie lepszym niż najlepszy człowiek. Te doświadczenia były o tyle ciekawe, że ci właśnie ludzie skierowali mnie na pewną taką dziedzinę. Czym się zajmować, czym się nie zajmować.

Na przykład Murray powiedział, żeby się już nie zajmować systemami, które są tak zwane complete information problemsczyli w całości obserwowalne. Na przykład gra w szachy jest czymś takim. To, co widzimy na szachownicy, na podstawie tego podejmujemy optymalne decyzje, bo tego typu problemy, jak on już kiedyś sugerował będą rozwiązane, i widzieliśmy to na przykład w DeepMindzie kiedy nasz system wygrał w jeszcze trudniejszą grę “Go” z mistrzem świata. Podobnie Gerry powiedział mi żeby się nie zajmować systemami, które są “model free”, czyli bez modelu, ponieważ są to rzeczy, które już teraz da się zrobić przez co to nie będzie przyszłościowe.

Tych właśnie dwóch naukowców skierowało mnie na taką fajną drogę, żeby zajmować się problemami, które są tylko częściowo obserwowalne i żeby się uczyć modelu. Właśnie dlatego zacząłem wtedy pracować nad modelami sztucznego mózgu. To są bardzo ciekawe modele, które wywodzą się z zupełnie nowego podejścia w AI i tym się bawiłem przez przez wiele, wiele lat. Byliśmy finansowani przez Department of Homeland Security. Bardzo dobrze ten czas wspominam, a już szczególnie to, że Ci sławni ludzie z AI powiedzieli mi czym się warto zajmować, więc od tego czasu przez ostatnie 10 lat zajmuje się taką generalną sztuczną inteligencją, która zakłada, że musimy nauczyć się modelu świata, że zajmujemy się problemami które są tylko częściowo obserwowalne, i tak dalej. Bardzo ciekawe rzeczy.

Sztuczna inteligencja sama w sobie jest popularnym hasłem. Sztuczny mózg, chyba niekoniecznie. Czy mógłbyś troszkę dodać, co chciałeś osiągnąć stwarzając sztuczny mózg? Jak to próbowałeś sam sobie tłumaczyć?

Jest to o tyle ciekawe, że obecnie jeśli ludzie używają tego “termu” sztuczna inteligencja – AI, to prawie zawsze mają na myśli sztuczne sieci neuronowe. Nawet nie biologiczne, ale sztuczne sieci neuronowe, które są pewnego rodzaju aproksymatorami funkcji. To jest fantastyczne narzędzie, które nadaje się do wielu problemów. Natomiast to co teraz właśnie opisuję w mojej publikacji która będzie za niedługo dostępna to jest to, że to narzędzie niestety ma pewne ograniczenia w przypadku, gdy próbujemy je stosować do rozwiązania problemu generalnej sztucznej inteligencji.

Oczywiście, nie każdy naukowiec się z każdym zgadza, więc są naukowcy którzy uważają, że wszystko rozwiążemy sieciami neuronowymi. Ja uważam, że nie dlatego że są właśnie te ograniczenia i te ograniczenia próbuję już od ponad 10 lat rozwiązać właśnie przy pomocy sztucznego mózgu, który tak naprawdę wzoruje się na cortexie (korze mózgowej) człowieka. Więc są to bardzo zaawansowane badania, ale tak jak wspomniałeś, one nie są mainstreamowe. Aktualnie, jeśli chodzi o badania mainstreamowe mamy do czynienia ze sztucznymi sieciami neuronowymi. One są bardzo popularne, więc budowanie sztucznego mózgu to jest rzecz na następne 5-10 lat, ale nie na jutro.

Brzmi to bardzo interesująco. Wspomniałeś, że jesteś prowadzącym naukowcem w DeepMind i pracujesz już od ponad 3 lat. Powiedz w skrócie, czym się zajmujesz?

W DeepMindzie zajmuję się między innymi systemami wieloagentowymi. Ciekawą rzeczą jest to, że nawet jak znajdziemy kiedyś rozwiązanie do generalnej sztucznej inteligencji, to podejrzewam, że będziemy mieli wielu takich właśnie agentów, którzy będą ze sobą współegzystować. Pojawia się pytanie, co należy zrobić, żeby ci agenci którzy mogą mieć o wiele większą zdolność rozumowania, planowania, i tak dalej, w jaki sposób mają oni ze sobą współdziałać? Czy to będą takie egoistyczne jednostki, tacy “dyktatorzy”, którzy wszystko przejmą, czy też stworzymy takie jakby środowisko, takie society agentów. To czym się próbuję zajmować w DeepMindzie, to z jednej strony właśnie próba zbudowania tego, tak zwanego master algorithm, czyli, tak zwanej sztucznej inteligencji na podstawie sztucznego mózgu, a drugą rzeczą jest, co zrobić żeby ci agenci którzy już są inteligentni mogli ze sobą współegzystować. Nie jest trywialne zagadnienie. Mamy na ten temat kilka ciekawych publikacji.

Kilka pytań mi od razu przyszło do głowy, ale może najpierw wyjaśnijmy czym jest system wieloagentowy, ang. (multi-agents system). Co to takiego jest?

Spróbuję podać przykład. Weźmiesz system, który rozwiązuje równania liniowe. To jest system jednoagentowy. Jest to jeden agent, algorytm, który rozwiązuje układ wielu równań i on ma dostęp do wszystkich możliwych danych. Komunikuje się sam ze sobą i sam rozwiązuje dany problem. W systemie wieloagentowym mamy do czynienia z rozproszeniem danych. Dane należą prywatnie do agentów z rozproszenia tego systemu, który rozumuje pomiędzy danymi i to samo rozwiązanie w sobie nie musi być skupione. One może też być rozproszone. Dobrym przykładem jest mrowisko. Kiedy mamy mrowisko w którym są dziesiątki tysięcy mrówek to jest to system wieloagentowy, ponieważ tam nie ma centralnego mózgu. Tam indywidualni agenci, (w tym przypadku to są właśnie te mrówki) podejmują lokalnie jakieś decyzję.

Na podstawie lokalnej obserwacji wymieniają się informacją na podstawie powiedzmy feromonów. które zostawiają na ziemi, a rezultatem tego są niesamowite konstrukcje, takie jak na przykład mrowisko. To jest właśnie ten rezultat systemu agentowego, który jest możliwy do stworzenia tylko jak mamy całą populację agentów. Co jest ciekawe, w tej populacji każdy agent jest taki sam. Niesamowitą rzeczą jest to, że to nie jest tak, że to jest populacja powiedzmy dziesiątek typów agentów. W tym przypadku to jest populacja jednego typu agenta, ale tych agentów jest strasznie dużo. Czym to się różni? System scentralizowany ma scentralizowaną wiedzę i rozumowanie, natomiast system wieloagentowy ma zdecentralizowaną wiedzę i zdecentralizowane problemy decyzyjne, czy procesy decyzyjne w takim dużym skrócie.

Brzmi to ciekawie. A jaką wartość biznesową może dać używanie systemów wieloagentowych?

Podam może taki przykład którym zajmowaliśmy się jeszcze jak byłem na uniwersytecie w Stanach Zjednoczonych. Chodziło o rozwiązanie problemu harmonogramowania, to znaczy chodziło o to, żeby w danej grupie badawczej naukowcy mogli się dogadać i wspólnie ustalić kiedy będziemy mieli spotkanie. Wydaje się, że to jest taki prosty problem. Wcale nie jest taki prosty. Problem jest taki, że co jeśli nie każdy użytkownik chce każdemu powiedzieć kiedy będzie dostępny. Powiedzmy, że jest 10 osób i chcemy się umówić na jakieś spotkanie na godzinkę, ale to nie jest tak, że każdy z każdym wymienia kalendarze. Problemem jest koordynacja. Jak optymalnie zorganizować meeting, kiedy agenci czyli ludzie nie wymieniają się informacją, na przykład kiedy są dostępni a kiedy nie. Problem ten  właśnie można rozwiązać z wykorzystaniem systemu wieloagentowego. W tym przypadku zastosowaliśmy systemy rozproszonej optymalizacji. To jest jeden z przykładów. Innym przykładem może być na przykład problem komiwojażera. Można go rozwiązać z wykorzystaniem algorytmu zwanego “Ant Colony Optimization”. Jest to algorytm, który mrówki stosują do optymalizacji znalezienia najkrótszej trasy między dwoma punktami. Kolejny system wieloagentowy i okazuje się, że można rozwiązać bardzo skomplikowane problemy takie jak, na przykład problem komiwojażera.

Pozwolę sobie teraz trochę zmienić temat, ale akurat to, co wytłumaczyłeś jest nam potrzebne aby pójść dalej. Czytałem Twoją publikację Multi-agent Reinforcement Learning in Sequential Social Dilemmas, która została opublikowana w roku 2017. Dla Ciebie pewnie to jest taka sprawa codzienna, ale żeby każdy zrozumiał, to musimy jeszcze kilka takich pojęć wyjaśnić. Pierwsza rzecz, czym jest efektywność Pareto, lub tak zwane Optimum Pareto. Mógłbyś nam to wytłumaczyć na kilku przykładach?

Można tutaj podać przykład lotu samolotem. Wyobraź sobie, że lecisz na wakacje i musisz się dostać z Krakowa do Tunezji, ale nie ma już lotu bezpośredniego. Są tylko loty, które mają jedną przesiadkę. Teraz, co jeśli się okaże, że jest jeden lot który leci przez jakieś miasto, powiedzmy przez Frankfurt i ten lot trwa 5 godzin
i kosztuje 1000$, a może się okazać, że jest inny lot, który odbywa się przez zupełnie inne miasto, kosztuje tyle samo i trwa dokładnie tyle samo. W tym przypadku mamy do czynienia z dwoma rozwiązaniami. Są to zupełnie różne rozwiązania, które mają taki sam czas i taką samą cenę. Możemy powiedzieć, że tego typu rozwiązania są Pareto optymalne. Można podać jeszcze troszeczkę inne przykłady. Ogólnie, chodzi tutaj o to, że na przykład w tym przypadku mamy dwa kryteria. Pierwszym z nich jest jak najtańszy lot, a drugi, jest jak najkrótszy lot.


Może się okazać, że mamy dwa rozwiązania. Jeden jest troszkę dłuższy, ale kosztuje mniej, a drugi jest krótszy, ale kosztuje więcej. Teraz pytanie. Które rozwiązanie jest optymalne dla nas. To jest właśnie ten problem, że są dwa rozwiązania i obydwa są optymalne w sensie, że jedno jest najtańsze a drugie jest najszybsze. To są dwa rozwiązania i nie możemy jednoznacznie powiedzieć, że jedno jest lepsze od drugiego. Obydwa są najlepsze w swojej dziedzinie, także są Pareto optymalne.

Na czym polega problem z teorii gier dylemat więźnia (lub uogólniona wersja dylemat społeczny)?

Kolokwialnie się na to mówi, że jest to jest taki problem jak nie być “nabranym w balona”, jak nie być wykiwanym. Posłużę się tutaj takim przykładem. Jeśli na przykład jeździmy pociągami gdzieś w Polsce to może się okazać, że jadąc w pociągu za który zapłaciłem znajdziemy kogoś kto za bilet nie zapłacił. Ten ktoś nie zapłacić, a tak samo przejedzie jak my. Może się okazać, że jak taki człowiek jest pojedynczy to wszystko będzie w porządku. Nikt nie chce być tym takim, jak to się mówi “nabranym w balona”, więc jak ja bym zauważył wiele takich ludzi, stwierdziłbym, po co mam płacić. Przestałbym płacić i też bym jeździł tym pociągiem na gapę, ale jeśliby się okazało, że większa ilości ludzi jeździłaby na gapę, to niestety ten pociąg by albo przestał jeździć, albo nie byłoby pieniędzy na kupienie nowych wagonów, i tak dalej.

Na tym polega ten problem więźnia. To znaczy tutaj mamy do czynienia z dwoma więźniami i optymalne rozwiązanie jest takie, żeby ci więźniowie współpracowali. Czyli w przypadku takiego przejazdu pociągiem optymalnym rozwiązaniem jest, żeby każdy płacił nie dużo za bilet. Natomiast drugim rozwiązaniem jest, że nikt nie płaci za bilet. To też jest rozwiązanie, ale wtedy obydwoje wychodzimy na nim jak najgorzej. Najgorsze jest to, podobnie jak w dylemacie więźnia, że przez to, że ludzie sobie nie ufają, nie ufają, że ten drugi człowiek zapłaci za bilet i przez tę ich nieufność też nie płacą. W idealnym świecie każdy by rzeczywiście płacił bardzo małą cenę i miał świetne pociągi, ale w praktyce tak nie jest ponieważ sobie nie ufamy i wybieramy tę opcję w której nie ufamy drugiemu człowiekowi, nie płacimy za bilet, nie ma w ogóle nowych wagonów w pociągu. Ja to mniej więcej tak rozumiem.

Powiedz troszkę więcej o regułach gry, które zastosowaliście w „gathering game”.

To była taka gra, w której agenci musieli zbierać jabłka. Sęk w tym, że nie mieli pojęcia, że mają do czynienia z jabłkami, więc tak naprawdę agenci byli zainteresowani zbieraniem zielonych kwadracików, które symbolizowały jabłka. Te kwadraciki, kiedy się je zjadło to się odnawiały. Te jabłka wirtualne wyrastały na nowo po jakimś czasie. W tej grze mieliśmy do czynienia z kilkoma agentami, którzy byli jednocześnie umieszczeni w danym środowisku i uczyli się jak w tym środowisku się zachować, żeby zmaksymalizować swoją funkcję w celu zjedzenia jak największej ilości jabłek. I takie były właśnie reguły. Problem jeszcze był taki, że te epizody w których ci agenci grali były ograniczone. Powiedzmy, że każdy epizod trwał 2 albo 3 minuty i teraz: jak się powinien zachować agent żeby w ciągu tych trzech minut skonsumował jak największą ilość jabłek. Co było ciekawe, agenci mogli też się eliminować z gry na jakiś czas. Mogli wykorzystywać tak zwany laser, przy pomocy którego jeśli dany agent został trafiony, to powiedzmy szedł do kąta na kilka sekund, czyli tracił czas podczas którego mógł zbierać jabłka. Na tym polegały reguły tej gry.

To jest właśnie esencja tego, dlaczego w ogóle zacząłem o tym mówić. Mi osobiście bardzo spodobały się wyniki. W przypadku jeżeli tych jabłuszek było wystarczająco dużo, to agenci stwierdzali w jakiś tam sposób, że w sumie się nie opłaca używać tego lasera i niższych cen konkurencji, bo po co? I tak jabłuszek jest wystarczająco dużo. Ale z drugiej strony, jak już zaczynało być ich mniej to zaczynali wtedy konkurować i o to walczyć. Mi od razu przypomniała się taka historia, która jakby z jednej strony jest zupełnie o czymś innym, ale przypomina ten sam kontekst.

Sytuacja miała miejsce w Krakowie. Pamiętam, jak stałem na przystanku i okazało się, że coś się  popsuło. Przez pół godziny tramwaje nie jeździły, więc ludzi było coraz więcej, a sytuacja odbywała się rano, przed pracą, studiami. Po chwili tramwaj wreszcie przyjechał, ale jest pełny ludzi. W dodatku drugie tyle czekało na przystanku. Ci ludzie próbują tam wejść i zaczyna się tam dziać nieprzyjemne sytuacje. Krzyki, jakieś szarpaniny, i tak dalej. Ciekawostka tej historii była taka, że wystarczyło podejść trochę dalej, tam gdzie nie było tego zatoru, nie było korku i tam tramwaje kursowały normalnie. Nie ma tam tak dużego tłumu i ludzie są spokojni.

To dla mnie było takim zaskoczeniem Jeszcze 5 minut temu prawie każdy zachowywał się jak bardzo spokojny i uprzejmy człowiek, a wystarczyło troszkę skomplikować warunki dookoła żeby ludzie zaczęli się zachowywać agresywnie. I w waszym eksperymencie właśnie potwierdziło się coś podobnego. Dla mnie to była mega inspirujące, i pytanie: czy to oznacza, że to jest prawo natury? Czy po prostu tak działa nasz świat?

Wydaje mi się, że niestety takie właśnie jest prawo natury, ale z kolei nasz świat nie musi tak działać. Co przez to rozumiem? Chodzi tutaj o to, że można stworzyć pewne protokoły dzięki którym ludzie będą bardziej skłonni żeby, powiedzmy się ze sobą nie szarpać, ale żeby bardziej ze sobą współpracować. Więc te protokoły jak ja je rozumiem: na przykład, jak lecisz samolotem to często linie lotnicze sprzedają więcej biletów, niż jest miejsc w samolocie. Dlaczego to robią? Dlatego, że przeważnie ktoś się spóźnia na samolot, ktoś odwołuję lot i nie chcą żeby samoloty były puste. Ale na czym tutaj polega ta sytuacja tego protokołu? Na tym, że jeśli nie byłoby żadnego protokołu to ci pasażerowie czekający na samolot którzy by się nie dostali do samolotu prawdopodobnie by się pobili, prawda?

Ale właśnie w tym przypadku linie lotnicze już dawno wpadły na pomysł żeby wynagradzać tych pasażerów którzy odstępują swój bilet, czyli tych którzy zdecydują się, że poczekają na następny samolot. Kiedy kończyłem doktorat miałem taką sytuację. Właśnie byłem w Seattle, wracałem do Los Angeles, ale pisałem pracę doktorską i też się okazało, że samolot był w całości sprzedany. Nie było miejsca, więc zdecydowałem się odstąpić swój bilet, polecę późniejszym samolotem, popracuję trochę nad pracą doktorską. Okazało się, że dostałem za to darmowy lot na Alaskę na tydzień. Więc jeśli takie protokoły stworzymy w których agenci czy ludzie będą bardziej skłonni aby odstąpić to miejsce, to może się okazać, że nie będzie tej kłótni, albo ci którzy odstąpią, dostaną coś w zamian. Więc tak właśnie jest. Ty na przykład wspomniałeś, że czekałeś na następny tramwaj, więc też odstąpiłeś, poczekałaś, podszedłeś troszkę dalej na następny i w nagrodę był on pusty. Więc tego typu sytuacja. Wydaje mi się, że prawo natury już takie jest. Niestety ci ludzie będą agresywni, będą ze sobą walczyć. Natomiast jak te protokoły się dobrze stworzy, to będą mieli większą incentive, czyli większą, jak to się mówi skłonność do tego żeby nie być agresywni, żeby odstępować te rzeczy, bo dostaną coś w zamian.

Kiedy rozmawialiśmy o multi agentach to wspomniałeś, że idea jest taka aby nie doszło do sytuacji kiedy pojawia się jeden, taki sztuczny dyktator, tylko żeby jednak ci agenci współpracowali ze sobą. Zastanawiam się, czy ten protokół o którym teraz mówisz, czy w nim chodzi o aspekt wytworzenia się sztucznego społeczeństwa? Myślę, że tak mogę to nazwać. Czy ten protokół będzie dyktowany w tym przypadku? Czy też chodzi po prostu o ludzi. Czy jakoś to można przenieść na życie prostych ludzi?

Szczerze nie wiem, jak jest z tym protokołem. Fajnie go stworzyć jak mamy do czynienia z konkretnym problemem, na przykład problem przelotu samolotem i overbookingu. Natomiast jeśli chodzi o generalne podejście to jest troszkę trudniej. Mamy tutaj w DeepMind pewne bardzo ciekawe badania odnośnie protokołów dla agentów, którzy są wynagradzani, jeśli rozwiązania które oni proponują są bardziej egalitarne, czyli jeśli nie ma tej ogromnej różnicy pomiędzy bogactwem agentów, więc da się zmodyfikować tę funkcję celu, żeby agenci starali się taką strategię wybierać w której nie ma takiego ogromnego rozstrzału pomiędzy tym bogactwem agentów. Są oni w miarę równi, więc wydaje mi się, że jest możliwość zaproponowania takich agentów, którzy we własnej funkcji celu mają wbudowany taki system w którym są wynagradzani za to, żeby nie dochodziło do takich ogromnych różnic między dyktatorem a resztą. Oczywiście, da się tak to zmodyfikować. Jest możliwość stworzenia takiego systemu agentów, który będzie bardziej egalitarny, mniej dyktatorski. Natomiast czy ten system później się nie przeprogramuje? Tego już nie wiemy, ale da się stworzyć takie właśnie protokoły, które są bardziej generalne i prowadzą do agentów którzy są mniej skłonni aby być dyktatorami.

Wprowadziliście pojęcie “sequential social dilemmas”, wyjaśnij proszę co to jest?

W klasycznej teorii gier mamy do czynienia z taką matrycą gry. Jest taka jedna gra, w której agenci podejmują w tym samym czasie jedną decyzję i to wszystko. Natomiast to rzadko oddaje rzeczywistość. W rzeczywistości jest troszkę inaczej. Są agenci, którzy podejmują jedną decyzję która zmienia trochę środowisko. To prowadzi do nowej konfiguracji i agenci znowu podejmują jakąś decyzję. Potem następuje kolejny krok i kolejny. Powstaje cała sekwencja decyzji. Taka sekwencja jest o tyle ciekawa, że pierwsza decyzja niekoniecznie jeszcze mówi o tym czy ci agenci ze sobą współpracować, czy może ze sobą będą konkurować. Może się okazać, że dopiero przy setnej czy tysięcznej decyzji wychodzi na jaw, że ta strategia jest konkurencyjna. Dla przykładu mamy taki problem. Po angielsku mówi się na to tragedy of the commons, czyli tragedia wspólnoty.

Jest to taka ciekawa rzecz w której agenci mogą podjąć decyzje, że zbierają i zjadają jakieś zasoby. Cały czas wszystko jest dobrze. Nauczą się żeby zjadać zasoby i to będzie optymalna strategia, natomiast jak wprowadzimy sekwencyjność, to będziemy widzieli, że po jakimś czasie, jeśli powiedzmy przez 10 kolejnych epok, albo dni, albo miesięcy ci agenci cały czas zjadają wszystkie dostępne zasoby, to tych zasobów może zabraknąć w systemie.

Może ich być zbyt mało aby ten system się odnowił. Dla przykładu:  mamy jakiś sad i w tym sadzie możemy zjadać wszystkie jabłka. Możemy na raz, w ciągu jednego dnia zjeść wszystkie jabłka. Wszyscy się świetnie najedzą, natomiast nie będzie możliwości żeby ten sad się odnowił. Wprowadzenie tej sekwencyjności pozwala nam na przeanalizowanie o wiele bardziej ciekawych problemów w których dopiero po którymś tam kroku zmienia się środowisko. To są bardzo ciekawe rzeczy i one są bardzo widoczne właśnie w naszym codziennym życiu, ponieważ jak weźmiemy taki problem więźnia, to niekoniecznie przekłada się on od razu na rzeczywistość. Natomiast taki sekwencyjny problem, czy powiedzmy ten tragedy of the commons, czy też problem szukania zasobów w danym środowisku, albo wspólnego polowania na kogoś, tego typu problemy powodują, że mamy do czynienia z sekwencyjnością, ale dalej interesujemy się takimi właśnie problemami społecznymi w których mamy sekwencję wydarzeń.

Kolejna rzecz, która przykuła moją uwagę, to jak badaliście jakie czynniki wpływają na to, że agenci chcą współpracować. Powiedz trochę więcej o wynikach tego badania.

Mieliśmy taką jedną grę która była nazywana “Stag-hunt”. To jest coś w stylu takiego wspólnego polowania. Tam, na przykład zauważyliśmy, że agenci którzy byli w środowisku w którym musieli znaleźć daną ofiarę i na nią polować szybko przekonali się, że pojedynczo ciężko jest zapędzić tę ofiarę do rogu mapy. Bardzo szybko się nauczyli, że muszą ze sobą współpracować, czyli musi być dwóch albo trzech agentów, którzy będą koordynować swoje ruchy tak, żeby zapędzić ofiarę czy jakąś owieczkę, czy jakiegoś innego agenta do rogu, i potem, powiedzmy go skonsumować, czy dostać jakąś nagrodę. Szkoda, że jak skonstruujemy tak środowisko w którym pojedynczy agent nie będzie dostawał nagrody jeśli sam będzie jakiś cel próbował osiągnąć. Powiedzmy, jeśli sam będzie próbował na kogoś polować, a tak to skonstruujemy, że potrzeba jest więcej agentów, to ci agenci mają możliwość żeby się nauczyć właśnie ze sobą współpracować. Co jest ciekawe, prowadziliśmy dosyć podobne badania  jeszcze w Kalifornii ze współpracą z departamentem straży pożarnej w Los Angeles, w którym trenowaliśmy takich głównodowodzący operacją gaszenia pożarów, gdzie mają wysyłać jednostki straży pożarnej.

Mieliśmy taki symulator, taką grę komputerową i właśnie ci głównodowodzący bardzo szybko się uczyli. Nie wysyłali wszystkich jednostek do różnych pożarów, tylko koncentrowali to. Czyli koncentrowali wiele straży pożarnych na jednym pożarze. Potem przechodzili do następnego. Ten system wieloagentowy jest w stanie się nauczyć takiej samej strategii, jaką się posługiwał głównodowodzący straży pożarnej w Los Angeles. Właśnie takiej, aby wspólnie te jednostki wysyłać do jednego pożaru. Jeśli się stworzy środowisko dosyć dobrze, to można zacząć obserwować tę współpracę agentów. W tym przypadku jest to albo współpraca tych jednostek straży pożarnej, które razem gaszą pożary, albo współpraca takich, powiedzmy wilków, które chcą zapędzić do rogu owcę i ją pożreć.

Czy myślisz że uda się stworzyć coś takiego, żeby środowisko w którym ta sztuczna inteligencja będzie istnieć, będzie zmuszało ją do współpracy w ten czy inny sposób? Cały czas podkreślałeś słowo środowisko. Żeby odpowiednio je (środowisko) skonstruować, to agenci szybko się zorientują, że muszą jednak współpracować. Czy ja dobrze myślę, że to jest jeden ze sposobów, jak nawet inteligentny system, który może być mądrzejszy niż my, ludzie, będzie nadal pod kontrolą, bo musi współpracować między sobą?

Masz rację, tak, ale  jeszcze bym to troszeczkę rozwinął. To znaczy, jeśli budujemy system generalnej sztucznej inteligencji i ten system żyje w jakiejś symulacji, w jakiejś wirtualnej maszynie, wirtualnej maszynie, wirtualnej maszynie na komputerze, to nawet jeśli nie będziemy w stanie go kontrolować, to w najgorszym wypadku przejmie całą pamięć w danej maszynie wirtualnej, czyli wszystko skonsumuje, ale to żaden problem. Problem pojawia się dopiero wtedy, kiedy chcemy taki system na sztucznej inteligencji generalnej wypuścić na zewnątrz, a to co bardzo fajnie tutaj robimy w DeepMindzie, to jest to, że próbujemy ten problem zaatakować z dwóch stron.

To znaczy, z jednej strony mamy niesamowity nacisk na te światy wirtualne. Wszyscy nasi agenci żyją wirtualnie w tych światach, więc to są bardzo bezpieczne światy z których ci agenci się nie mogą wydostać, bo nie wiedzą, że żyją w ogóle w symulacji, a z drugiej strony mamy niesamowicie dużo badań naukowych odnośnie tego jak zrobić żeby to środowisko zmodyfikować w punkcie celów, lub agentów, żeby ci agenci zaczęli być altruistyczni, żeby współpracowali ze sobą, i tak dalej, Ale to nie jest oczywiste. To jest tak, że obserwuje się agentów, oni się uczą żeby zachłannie coś robić i po chwili nie ma koordynacji. Więc trzeba krok po kroku zmieniać funkcje celu, zmieniać środowiskom zmieniać te parametry, zmieniać te, protokoły, żeby ci agenci ucząc się dla nich optymalnej strategii sami na to wpadli że najwięcej osiągną, jak będą ze sobą współpracowali, kiedy się nie będa eliminowali. Próbujemy ten problem atakować z dwóch stron.

Z jednej strony cały czas budując te  bardzo realistyczne światy wirtualne, żeby ci agenci się nie wydostali, a z drugiej strony właśnie robiąc ogromne analizy, co się stanie właśnie w systemie agentowym, jak zmienimy funkcję w celu, jak zmienimy parametry środowiska, zmienimy protokoły, żeby znaleźć właśnie te protokoły, które są generalne i które powodują, że agenci ze sobą współpracują. To się da znaleźć i próbujemy to robić.

Zajmujesz się tematami związanymi z ogólną sztuczną inteligencją (general AI), lub AGI. Bardzo ciekawy jestem, jak definiujesz czym jest ten AGI, a najciekawsze jest to, jak zrozumiemy albo poznamy, że udało się już osiągnąć ten poziom?

Zawsze się mówiło, że będziemy mieli test Turinga i na podstawie testu Turinga zorientujemy się, że osoba z którą rozmawiamy nie jest biologiczną osobą, tylko jest agentem. Na przykład, jeśli nie będziemy w stanie tego zrozumieć to się okazuje, że mamy już tę generalną sztuczną inteligencję. Dla przykładu, teraz ze mną rozmawiasz i pytanie, czy ja jestem już tą sztuczną inteligencją, czy nie, i czy Cię już przekonałem, że nie jestem agentem tylko osobą biologiczną. Jednym z takich testów jest właśnie taka rozmowa, która może trwać 10, 15, 20 minut, na podstawie której sędziowie mogą stwierdzić, czy ten system rzeczywiście już jest inteligentny, że jest nierozróżnialny od człowieka. Okazuje się, że ten test prawdopodobnie przejdziemy zanim będziemy mieli taką generalną sztuczną inteligencję. Przywołam tutaj film, który mi się bardzo podoba.

Wiele razy go oglądałem. “Ex Machina” z roku 2014 albo 2015. W tym właśnie filmie jest podany przykład, jak możemy zweryfikować, czy już mamy tą generalną sztuczną inteligencję. I to nie jest tylko rozmowa. To jest pytanie, czy ten system jest w stanie naśladować ludzkie odruchy, emocje, przekonywanie, kłamanie, i tak dalej. Wydaje mi się, że test Turinga sam w sobie to był dobry początek, ale żebyśmy mieli pewność, że już mamy taką generalną sztuczną inteligencję, to musimy zrobić coś, co było wcześniej przedstawione w tym filmie “Ex Machina”. Czyli po prostu musimy mieć takiego agenta, który pokazuje, że potrafi nie tylko rozmawiać, ale również kłamać, oszukiwać, symulować. Tego jeszcze nie mamy, ale wydaje mi się, że w pewnym momencie jeśli ktoś będzie twierdził, że już ten algorytm posiada do generalnej sztucznej inteligencji, to trzeba będzie ten algorytm przetestować, a sam test Turinga nie wystarczy. Potrzeba będzie coś bardziej skomplikowanego.

Na ile szybko przesuwamy się w kierunku tego poziomu? Powiedzmy, jeśli mielibyśmy porównać naszą wiedzę o 5 lat wstecz do tej, którą mamy obecnie?

Zawsze jest tak, że jak ktoś robi taki sondaż i pyta się naukowców: kiedy to będziemy mieli tą generalną sztuczną inteligencję, to średnia odpowiedź brzmi 20 lat. Dlaczego? Dlatego, że jak jest powyżej 20 lat, to już mało kogo to interesuje, a jak jest mniej niż 20 lat, to istnieje ryzyko, że ten który robi przepowiednie pomyli się. Więc to jest taka ciekawa rzecz, że mimo to, że pytaliśmy naukowców w roku 1990, 2000 kiedy to będziemy mieli i zapytamy dzisiaj, to średnio wszyscy mówią dalej 20 lat. To się nie zmienia. Co się za to zmienia, na przykład Ray Kurzweil, który przez całe życie zajmuje się prognozą procesów technologicznych, prognozą postępów nauczania maszynowego, sztucznej inteligencji, on na przykład śledzi to od wielu, wielu lat i mówi, że w latach 90 średnia wynosiła 50 lat, teraz średnio wynosi to około 20 lat, ale co jest ciekawe, jak próbujemy tą średnią zbadać, to naukowcy patrzą liniowo, czyli jeśli postęp będzie taki jak jest dzisiaj, to to nastąpi powiedzmy za 50 lat. Jak się ich zapytamy dzisiaj kiedy to będziemy mieli, to mówią to samo. Będzie to za 20 lat zakładając dzisiejszy postęp technologiczny, ale zakładając, że ten postęp technologiczny idzie cały czas do przodu, czyli przyspiesza.

To może nastąpić szybciej. W ogóle, na przykład co mnie zszokowało ostatnio. Ray Kurzweil, który jest właśnie dyrektorem Google Brain sprecyzował, że nastąpi to za 11 lat. To są oczywiście przepowiednie. To może być 100 lat, może być 50, 20, ale to, że osoba która cały czas śledzi te procesy technologiczne podejmuje się takiego ryzykownego zadania, żeby przepowiedzieć coś za 11 lat, to już o czymś świadczy. Jeśli chodzi o mnie, wydaje mi się, że możemy mieć to za szybciej niż 20 lat. Podejrzewam około 10 lat, z tym że nie sądzę, że do tego dojdziemy z wykorzystaniem aktualnych narzędzi, które mamy. Wydaje mi się, że to nas może nawet trochę spowalniać.

Właśnie to jest rzecz, o którą też chcę zapytać. Czyli o obecne algorytmy, ten słynny deep learning, ewentualnie reinforcement learning. Co powinno się stać żeby ten AGI udało się osiągnąć? Jak Ty to widzisz?

Tutaj akurat nie ma konsensusu. To znaczy, naukowcy uważają że wystarczy przeskalować narzędzia, które mamy na większej ilości danych, na największej ilości problemów i wtedy dojdziemy do tej sztucznej inteligencji generalnej. To może być prawda. Ja osobiście uważam, że nie, że do tego nie dojdziemy. Przez wiele problemów, o których właśnie piszę teraz w nowej publikacji. Uważam, że nie mamy jeszcze tego algorytmu. To, co mamy dzisiaj, czyli właśnie ten deep learning, machine learning. Mamy systemy, które bardzo fajnie dopasowują pewne funkcje do danych treningowych, czyli mamy systemy, które można wytrenować. Mamy aproksymatory. Aproksymatory, które są w stanie zaproksymować pewien problem. Na przykład, mogą zaproksymować problem wkładania wtyczki do gniazdka i różne tego typu rzeczy. Wydaje mi się, że nie mamy algorytmu takiej prawdziwej sztucznej inteligencji, a próbujemy stosować niesamowicie silne aproksymatory żeby przybliżać pewne funkcje kognitywne, więc w teorii wystarczy przybliżyć setki tysięcy różnych funkcji kognitywnych i będziemy mieli sztuczną inteligencję generalną.
W praktyce jednak okazuje się, że może po prostu do tego za mało danych i jest to nieefektywne podejście.

Ja osobiście uważam, że narzędzia które są świetne, są to niesamowite narzędzia, które się przyczynią do postępu w medycynie, i tak dalej. One niestety nie wystarczą, według mnie oczywiście do tej generalnej i sztucznej inteligencji. Ja właśnie próbuję to rozwiązać stosując coś zupełnie innego dlatego, że nie mam wiary w te narzędzia z których korzystamy, ponieważ widzę jakie są ich ograniczenia. Natomiast o tych ograniczeniach nie zawsze się mówi. Przeważnie widzimy jakiś system, który nauczył się robić to, albo wykrywa raka na zdjęciach.

Dzisiaj przeczytałem artykuł o systemie, który lepiej analizuje tak zwane non-disclosure agreement. Jest on dokładniejszy od prawników. Cały czas widzimy te rzeczy, ale nie widzimy tych ograniczeń. A jeśli byśmy się naprawdę skupili na ograniczeniach, to moglibyśmy stracić wiarę, że właśnie tym podejściem dojdziemy do generalnej sztucznej inteligencji. Wielu się ze mną zgadza. Na przykład Ray Kurzweil, który jest dyrektorem w Google Brain, albo Jeff Hawkins, który jest założycielem Palm Computing.

Wydaje mi się, że ludzie którzy już dużo osiągnęli w tej dziedzinie, jak Ray albo Jeff, którzy są w sumie niezależni, którzy są już znani na świecie, raczej próbują robić coś zupełnie innego. Jeśli chodzi o inne podejścia, wydaje mi się, że są to młodsi naukowcy, którzy chcą się wykazać. Staramy się robić to, co jest bardziej sprawdzone, dlatego jesteśmy jeszcze trochę sceptycznie nastawieni do tego, że rozwiążemy ten problem z wykorzystaniem aktualnych narzędzi. Nawet ostatnio czytałem artykuł, w którym było wspomniane, że powinniśmy od nowa zacząć badania na temat sztucznej inteligencji. Jak tego typu sławni ludzie i ojcowie sztucznej inteligencji o tym piszą, to daje do myślenia, mimo iż ogromne fundusze są na to przeznaczane, artykuły w gazetach, w telewizji, wszyscy wieszczą, że będzie koniec świata, to jednak założyciele tego fieldu AI, oni robią coś innego. Podobnie ja próbuję czegoś zupełnie innego ponieważ uważam, że jest taka potrzeba.

Bardzo interesujące i bardzo konkretne. Będzie to na pewno wartościowe dla wielu osób. A co do słynnych osób, Yann Lecun w swoich ostatnich prezentacjach dość często wspomina, że uczenie nienadzorowane ma zdecydowanie większy potencjał niż jest wykorzystywany teraz i to jest kierunek przyszłościowy. Jaka jest Twoja opinia na ten temat?

Jak najbardziej. Całkowicie się zgadzam z Yannem. Może jeszcze dodam, że ja już się w ogóle nie zajmuje systemem supervised, czyli wszystko jest nienadzorowane. Ludzie się uczą też uzupełnienie nienadzorowani. Czasem się uczą z wykorzystaniem przykładów, ale przeważnie to jest uczenie się nienadzorowane. Dodam jeszcze, że ja osobiście zajmuje się systemami, które są dyskretne, czyli to nie są systemy różniczkowalne, którymi wszyscy się zajmują. To nie jest dopasowywanie funkcji ciągłej do danych, tylko są to systemy dyskretne. Więc uważam, że duży potencjał leży w systemach, które uczą się właśnie bez tego nadzoru, to po pierwsze, a po drugie systemy, które są dyskretne dlatego, że jak mamy system, który jest różniczkowalny, to możemy go wytrenować, ale też musimy dopasować tę funkcję w danych i ta funkcja musi być ciągła. Nie każda funkcja jest ciągła, więc mam dużą wiarę w systemy dyskretne i uważam, że właśnie w tym tkwi sedno.

Według mnie procesy myślowe, które zachodzą w mózgu jesteśmy w stanie symulować z wykorzystaniem procesów dyskretnych, a co jest jeszcze ciekawe, jak mamy procesy dyskretne, to w ogóle nie wykorzystujemy na przykład tego gradient descent, czyli nie wykorzystujemy metody planowania sieci, którą każdy wykorzystuje i nie musimy wpadać w pułapkę, która jest generowana właśnie przez tego typu algorytm. Na przykład, nie musimy mieć modelu, który jest różniczkowalny. Nie musimy zakładać wielkości tego modelu, ponieważ niczego nie będziemy różniczkowali. Możemy zrobić tak, żeby były tylko aproksymowane. Więc w dużym skrócie, jak najbardziej się zgadzam z Yannem. Ciekawym jest to, że Yann był szefem Facebook Research, a od pewnego czasu już nie jest. Wrócił na uniwersytet. Czyli on też widzi, że coś jest jeszcze do zrobienia. Nie tylko systemy, które się uczą bez nadzoru, tylko też systemy, które są dyskretne. Wydaje mi się, że analiza procesów dyskretnych nie jest teraz popularna, gdyż jest trudna, jest bardzo mało intuicji geometrycznych.

Więc aktualnie olbrzymi nacisk kładziony jest na systemy różniczkowalne z intuicją geometryczną, aproksymatory, ponieważ widzimy tę strukturę funkcji, którą musimy aproksymować tej funkcji ciągłej, ale niestety wydaje mi się, że musimy wejść na głęboką wodę, czyli systemy które nie mają tego supervisor’a, tego nadzoru i są systemami dyskretnymi. Tego typu system i automaty komórkowe dyskretne, to jest naprawdę ciężka sprawa, ale moim zdaniem one są przyszłością.

Ciekawy jestem jeszcze Twojej opinii o kolejnym zagadnieniu, czyli zastosowania tak zwanego uczenia ze wzmocnieniem albo reinforcement learning. Pytanie jest następujące: Jak myślisz, czy to rozkwitnie w ciągu najbliższych 5-10 lat i będzie używane gdzieś w rzeczywistości? Aktualnie jest dużo publikacji, które coraz częściej się pojawiają na konferencjach, na prezentacjach, ale prawie nie ma takich prawdziwych wdrożeń na produkcję. Czy to się zmieni?

Osobiście uważam, że będzie niesamowity postęp z tego typu algorytmami wykorzystywanymi w grach komputerowych. Naprawdę, to zawsze w grach komputerowych mamy do czynienia z nieograniczoną ilością danych treningowych, z symulatorem, z pewnego rodzaju zamkniętym środowiskiem, i w tego typu właśnie środowiskach zamkniętych, które możemy symulować, w których jest mnóstwo danych treningowych, w tego typu środowiskach, systemy deep reinforcement potrafią świetnie działać. Jeśli teraz chodzi o to, o co pytasz, czy zobaczymy jakieś zastosowanie w świecie rzeczywistym? Podejrzewam, że tak, ale nie od razu. Dlatego, że transferowalność tych rozwiązań z jednej dziedziny do drugiej nie jest trywialna. To znaczy, jak wytrenujemy system, na przykład w symulatorze żeby jeździł samochodem i potem ten sam system wstawimy do samochodu i będziemy jeździć normalnie po drodze, to nie jest oczywiste, że on się będzie dobrze zachowywał. To prawda, że jest to czasem nieintuicyjne, ale tam są pewnego rodzaju problemy, na przykład ten system może nie do końca transferować swoją wiedzę. Jeśli chodzi o zastosowania, to na pewno będziemy mieli takowe.

Już mamy deep reinforcement learning w takiej dziedzinie jak, na przykład finanse. W finansach mamy do czynienia z ogromną ilością danych, z rynkiem finansowym w którym możemy mieć symulatory. Tam ci agenci mogą się uczyć jak handlować, co sprzedawać, co kupować. Na przykład wiemy, że w zeszłym roku JPMorgan Chase wytrenował agenta, który tam sobie grał i optymalnie wykonywał pewną egzekucję na transakcje finansowe. Te systemy już w rzeczywistości są w świecie finansowym. Jeśli chodzi o inne dziedziny, to transferowalność jest dużym problemem. W ogóle transferowalność tych rozwiązań z jednej dziedziny do drugiej, i przez to nie wiem czy będziemy mieli od razu takie spektakularne wyniki jakie mamy bez tego reinforcement learning. Z reinforcement learningiem jest też taki problem, że te systemy potrzebują strasznie dużo danych treningowych i to jest właśnie bolączką tych systemów. Jeśli tych danych treningowych nie ma, to wtedy w świecie rzeczywistym możemy nie mieć tylu tych danych treningowych i te systemy nie będą się rozwijać.

Dla przykładu podam taką rzecz z książki “The Book of Why”, Judea Pearl’a. On tam podaje przykład, czy da się w ogóle wytrenować agenta, który będzie rozwiązywał problem wyciągnięcia pończochy ze szprych koła w rowerze. To jest prosta rzecz. Jak ja bym pokazał jak to zrobić, na przykład Tobie, to byś popatrzył na te szprychy, popatrzyłbyś na tę pończochę i byś to wyciągał. Jeśli weźmiemy takiego agenta deep reinforcement learning, to musiałbyś go wytrenować na ogromnej ilości zadań typu: wyciągnij pończochę z roweru. Niekoniecznie tego typu zadania będziesz miał pod ręką, więc to jest ten problem, że mamy zawężone środowisko. Na przykład, handlowanie akcjami z użyciem systemu deep reinforcement learning działa już dzisiaj. One są już w świecie rzeczywistym i operują ogromną ilością pieniędzy. Jeśli chodzi o przykładowo jazdę autem, możemy wytrenować system, który będzie świetnie jeździ autem w bardzo realistycznej grze komputerowej. Na przykład Grand Theft Auto 5.

Czy ten system będziesz świetnie jeździł w rzeczywistości? Podejrzewam, że w 99% przypadków tak, ale pozostaje ten jeden procent, ten nieszczęśliwy 1% albo jedna dziesiąta procenta, albo jedna setna, która będzie będzie powodowała, że będziemy chcieli tego człowieka mieć koło siebie. To jest ten problem. W dużym skrócie: te systemy deep reinforcement learning już są stosowane w świecie rzeczywistym, np. w handlowaniu. Próbują być stosowane przy self-driving cars z różnymi rezultatami i poczekajmy i zobaczymy. Wydaje mi się, że jak mamy z symulator z ogromną ilością danych, to w tym przypadku te systemy mogą działać. Natomiast jak symulatora nie mamy, nie mamy dużej ilości danych, to tego systemu nie wytrenujemy na różnych wariacjach i przez to transferowalność może nie działać.

Wygląda na to, że reinforcement learning już można zacząć stosować tylko wymaga troszkę innych umiejętności niż taki klasyczny ML. Jakie są twoje najbardziej bolesne porażki z uczeniem maszynowym, lub innymi słowy, na co należy uważać?

Wydaje mi się, że największym problemem jest wyciąganie przedwcześnie pochopnych wniosków, typu: czego dany system się nauczył i co już potrafi zrobić. Próba generalizowania rezultatów jest największym problemem. Na przykład, weźmiemy sobie system, który gra w jakąś grę komputerową. Na przykład w taką grę Pong. Można wyciągnąć taki wniosek, że system się nauczył grać w tę grę. Jednak tak naprawdę ten system się nauczył wykonywać optymalną akcje na podstawie konfiguracji kilku punktów na ekranie. On się nie nauczył gry w Pong. On się nauczył wykonywać optymalną akcje na podstawie danych wejściowych, które są ściśle zdefiniowane. Dużym problemem jest to, jak próbujemy to generalizować. Czyli mówimy, że ten system nauczył się na przykład jeździć autem po jakieś autostradzie w Phoenix w Arizonie, i wtedy generalizujemy, że mamy już samoprowadzący się samochód. To nie jest prawda. Ta pułapka jest tym największym problemem, że próbujemy wyciągać pochopne wnioski odnośnie tego, czego system się nauczył. Czasem nawet nie wiemy czego się nauczył. Czasem jest tak, że wyciągamy takie wnioski, że nauczył się, powiedzmy rozumować, nauczył się abstrakcyjnego myślenia, nauczył się planować, a on może na przykład tego nie umie. On może tylko znaleźć jakiś punkt, jakieś piksel na podstawie którego podejmuje dobrą decyzję i nam się wydaje, że czegoś się nauczył. Trzeba być ostrożnym przy analizowaniu czego system się już nauczył. Generalizacja jest wielką pułapką.
W takim dużym skrócie, to jest największa bolączka.

Czy masz jakąś taką check listę? To znaczy, w jaki sposób próbujesz sam siebie dopytywać, czy to rozwiązanie, które mi się wydaje faktycznie, że jest już rozwiązaniem, czy tylko jednym konkretnym przypadkiem. Kiedy model działa dobrze? Jakie pytania sobie zadajesz, żeby upewnić się, że to co udało się osiągnąć faktycznie jest tym czym się wydaje?

Masz na myśli pewne rozwiązanie deep reinforcement learning?

Bardziej mi chodzi o sposób myślenia. Teraz powiedzmy czytają to osoby, które też wdrażają takie rozwiązania i patrzą na przykład na metrykę sukcesu. Może im się wydawać, że to działa dobrze. Bardzo się cieszą, wrzucają taki model na produkcję, i tak dalej. Jak być jeszcze takim bardziej pragmatycznym? Jakie pytanie warto sobie jeszcze raz zadać, żeby się potem nie oparzyć?

Wydaje mi się, że nie powinniśmy stosować tego samego zbioru testowego wielokrotnie. Podam dla przykładu: mamy stworzyć system, który rozpoznaje cyfry, czyli zbiór treningowy MNIST i on jest podzielony na dwie części: na część treningową i część testową. Część treningowa składa się z 50000 liczb, a część testowa z 10000 liczb.

Co się okazuje? Trenujemy jakiś system. Testujemy różnego rodzaju konfiguracje tej sieci neuronowej, różne hyperparametry, jedne, drugie, trzecie. Za każdym razem trenujemy to na tym zbiorze treningowym, a potem uruchamiamy na zbiorze testowym i patrzymy jak się zachowuje. To jest nieuczciwe dlatego, że my optymalizujemy go pod kątem danego zbioru testowego. Nawet jak sieć tego nie widziała. Przez to, że robimy analizę i przeszukiwanie tych hyperparametrów, i możemy jednocześnie sprawdzać dziesiątki tysięcy modeli, każde z nich jest trenowane na zbiorze treningowym po to, żeby wybrać ten jeden, który się najlepiej zachowuje na zbiorze testowym. Tak naprawdę, mamy do czynienia z takim timingiem, w którym ta sieć jest wytrenowana pod kątem tego danego zbioru testowego, i to jest ta pułapka. Jak już budujemy jakiekolwiek zaawansowane systemy, które chcemy wdrożyć w produkcji, to nie róbmy tego tak, że mamy jakiś zbiór testowy i analizujemy różnego rodzaju konfiguracje sieci danych treningowych, a potem patrzymy jak się zachowują na zbiorze testowym i wybieramy najlepszy. Zbiór testowy powinniśmy testować tylko na jednym problemie

Super! Taka bardzo prosta, ale mega trafna wskazówka. Jeszcze pytanie bardziej już takie wizjonerskie. Jak myślisz, jak ten świat w którym żyjemy teraz może się zmienić w ciągu najbliższych 5-10 lat? Troszkę o tym już wspomniałeś, ale chciałbym żebyś wszystko jeszcze raz podsumował.

Gdziekolwiek nie patrzę jak czytam jakieś artykuły w gazetach czy w internecie, jest taka wizja, że ta sztuczna inteligencja jest tuż za rogiem i wszystkie prace znikną, albo będzie ogromne bezrobocie. Ja osobiście nie jestem przekonany, że tak zaraz będzie gdyż widzę, jakie są ograniczenia tych systemów, które mamy, i przez te właśnie ograniczenia, w ciągu najbliższych 5 i 10 lat nie sądzę żeby znikły wszystkie te prace dookoła. Nawet nie widzę żebyśmy mieli samochody, które same się sterują. Wydaje mi się, że tej technologii nie mamy, więc ja bym nie był takim pesymistą, że nagle będą załamania społeczne, bezrobocie. Natomiast co się może zmienić, to ogromny postęp w medycynie. Dlaczego o tym wspominam? Prowadzę badania naukowe wykorzystujące sieci neuronowe rekurencyjne do predykcji, na przykład zwijania białek i to pozwala i dzięki temu jesteśmy w stanie szybciej zasymulować jak dane białka się będą zawijały, właśnie z wykorzystaniem sieci neuronowej i jednocześnie przyspieszyć proces badania, czy dane białko doprowadzi do czegoś pozytywnego. Na podstawie tego jesteśmy w stanie o wiele szybciej generować i próbować różnego rodzaju leki, więc wydaje mi się, że postęp w medycynie będzie teraz niesamowity. Właśnie przez to, że będziemy w stanie badać o wiele większą ilość różnych leków o wiele szybciej właśnie z wykorzystaniem deep learningu.

Co mnie trochę martwi to jest to, że te narzędzia jednocześnie się świetnie nadają do inwigilacji, do obserwowania społeczeństw. Na przykład, wiesz że teraz w Chinach już jest wdrożony system, który świetnie rozpoznaje ludzkie twarze i rejestruje gdzie, kto był w danym momencie na podstawie obrazu z kamer. Wydaje mi się, że rządy będą próbowały wykorzystać te fantastyczne narzędzia które mamy, te sieci neuronowe do zwiększenia kontroli nad społeczeństwem. Więc z jednej strony, jestem bardzo optymistycznie nastawiony, jeśli chodzi o postęp w medycynie w ciągu najbliższych pięciu lat, a z drugiej strony boję się, że te narzędzia będą wykorzystane właśnie do zmniejszenia prywatności, do zwiększenia inwigilacji nad społeczeństwami. Ale zobaczymy. Bądźmy dobrej myśli.

Dzięki wielkie za Twoją opinie. Ostatnie pytanie na dzisiaj: Jak można znaleźć ciebie w sieci w przypadku gdy ktoś chciałby się z tobą się skontaktować?

Najlepiej po prostu wpisać w Google moje imię nazwisko i kliknąć “I’m feeling lucky” :). Powinienem się pojawić na górze. Mam też stronę internetową www.januszmarecki.com/. Jestem też na LinkedIn. Zapraszam do internetowej dyskusji ze mną.

Super! Dzięki wielkie za Twój czas który znalazłeś, za chęć podzielenia się wiedzą i też wyróżnienie takich punktów, które są mega przemyślane, gdyż cały czas tym się zajmujesz, ale jednocześnie nie są tak otwarte ani spopularyzowane w  mediach i bardzo się cieszę, że udało mi się tego wszystkiego dowiedzieć. Dzięki wielkie!

Dzięki, mam nadzieję, że każdy z tego w jakiś sposób skorzysta.


Dziękuję Ci bardzo za poświęcony czas. Ten odcinek wyszedł troszkę dłuższy.  Jeśli spodobał Ci się ten odcinek, jak i również inne, to napisz recenzję w iTunes. Sprawi mi to wielką przyjemność i jednocześnie podcast stanie się bardziej dostępny dla innych osób w przypadku, gdy szukają czegoś do wysłuchania. Dzięki wielkie! Do usłyszenia, do zobaczenia! Cześć!

Od 2013 roku zacząłem pracować z uczeniem maszynowym (od strony praktycznej). W 2015 założyłem inicjatywę DataWorkshop. Pomagać ludziom zaczać stosować uczenie maszynow w praktyce. W 2017 zacząłem nagrywać podcast BiznesMyśli. Jestem perfekcjonistą w sercu i pragmatykiem z nawyku. Lubię podróżować.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *