Podcast

Różne oblicza Computer Vision

Dzisiejszym gościem jest Filip Piękniewski, który bardzo długo zajmuje się tematami związanymi z widzeniem komputerowym, ale robi to nie tylko używając tzw. deep learning, a ma znacznie szerszą wizję. Jego rozważania na temat świata, inteligencji i wiele innych tematów są przepiękne. Prowadzi bardzo fajny blog, na który bardzo gorąco zapraszam.

Zanim zaczniemy ogłoszenie 👇

✅ Dziś – 16.03 – wystartował kurs „Praktyczne uczenie maszynowe od podstaw”, dzięki któremu dowiesz się, jak zacząć działać z machine learning we właściwy sposób i jak stosować go w praktyce. To jest mój autorski kurs online, który przerobiło już 500 uczestników. Jeśli chcesz dołączyć lub ktoś z Twego zespołu chce, to jest jeszcze taka możliwość.

✅ 30 marca startuje mój drugi kurs „Praktyczne prognozy szeregów czasowych”. To kurs dla osób lub zespołów, które znają już podstawy uczenia maszynowego i chcą zrozumieć, jak robić skutecznie prognozy szeregów czasowych.

Cześć Filip. Przedstaw się: kim jesteś, gdzie mieszkasz, czym się zajmujesz.

Nazywam się Filip Piękniewski. Jestem naukowcem zajmującym się wizją komputerową i uczeniem maszynowym. Mieszkam od 10 lat w San Diego, na samym południowym koniuszku Kalifornii. Pochodzę z Torunia, gdzie ukończyłem Uniwersytet Mikołaja Kopernika na wydziale informatyki. Następnie obroniłem doktorat na Uniwersytecie Warszawskim, również z informatyki. Wyemigrowałem 10 lat temu.

Pracowałem najpierw w firmie Brain Corporation, następnie w koreańskiej firmie, zajmującej się wizją komputerową, czyli inspekcją komputerową płytek drukowanych. W tej chwili pracuję w startupie Accel Robotics, w którym zajmujemy się budowaniem autonomicznych sklepów, tzn. sklepów, w których nie będzie kasjera, tylko można będzie sobie wejść, wziąć, co się chce i wyjść. Komputer automatycznie będzie wiedział, co wzięliśmy i automatycznie będzie odpowiedni rachunek wystawiał na kartę kredytową.

Piękne rzeczy. Fajne masz doświadczenie. Bardzo dziękuję, że udało Ci się znaleźć czas na rozmowę. Co ostatnio ciekawego przeczytałeś?

Ostatnią rzeczą, którą przeczytałem jest książka „Rebooting AI” Gary’ego Marcusa. Dosyć ciekawe, sceptyczne podejście do aktualnych trendów w sztucznej inteligencji. Gary Marcus to dosyć ciekawa osoba. Jest naukowcem, pracującym na Uniwersytecie w Nowym Jorku.


Zajmuje się dosyć szeroko pojętą sztuczną inteligencją i z punktu widzenia też psychologii, jest on jednym z dosyć głośnych krytyków tego, co się aktualnie dzieje w sztucznej inteligencji, która została dosyć mocno zdominowana przez tzw. koneksjonizm, czyli sieci neuronowe, których jestem fanem, natomiast też czasem miewam dosyć krytyczne opinie. Być może dlatego, że z tego, co widzę, czasem ludzie mają chyba zbyt wysokie oczekiwania wobec tego, co te systemy będą w stanie robić.

Pokażemy w tej rozmowie nieco inne, bardziej alternatywne, mniej popularne spojrzenie. Fajnie, że o tym powiemy “na głos”. Opowiedz o swoim obecnym miejscu pracy. Czym zajmuje się Accel Robotics i jaka jest w nim Twoja rola?

Ta firma została założona mniej więcej 3 lata temu, więc jest to bardzo świeża organizacja. Założona została przez mojego kolegę, z którym wspólnie pracowaliśmy w Brain Corp. Na początku firma chciała zbudować robota, który miał jeździć po rozmaitych imprezach i fotografować ludzi. Został on stworzony i nawet jakoś to działało, ale okazało się, że nie ma wielkiego zapotrzebowania na taką usługę, więc firma poszukiwała swojego celu (zresztą jak to się często w startupach dzieje).

W pewnym momencie powstał pomysł zbudowania autonomicznego sklepu, w którym nie będzie kasjera, tylko system komputerowy, kamery, sensory. Technologia będzie starała się zobaczyć, co się dzieje, kto wchodzi do sklepu, kto co bierze itd. Jakkolwiek może się wydawać, że to jest dosyć dalekie od robotyki, to wiele problemów jest bardzo podobnych. 

Można pomyśleć o autonomicznym sklepie jako o robocie, do którego się wchodzi. Robocie, który nie musi za wiele rzeczy ruszać, natomiast na pewno musi mieć percepcję i musi wiedzieć, co się dzieje w jego środowisku. Sporo problemów percepcyjnych jest w sumie bardzo podobnych. Okazało się, że to zdecydowanie jest coś, na co jest ogromny rynek w tej chwili.

Jest kilka innych firm, które też próbują to zbudować. Technologia wydaje się być na takim poziomie, gdzie realizacja takiego projektu wydaje się być możliwa. Co najważniejsze, jeśli w tym kontekście coś nie zadziała, to najgorsze, co się może zdarzyć to to, że albo ktoś dostanie darmowy batonik, albo ktoś będzie musiał zapłacić za batonik, którego nie wziął. W takim przypadku zawsze można taką transakcję reklamować. Nie ma tu tak jak w samojeżdżących samochodach ryzyka błędu o ogromnych konsekwencjach (komputer się pomyli i zderzy na autostradzie z innym samochodem).

W tym przypadku konsekwencje nie są straszne i nawet jeśli coś złego się stanie, to wszystko da się odwrócić i naprawić. Dlatego myślę, że to jest bardziej realistyczne zastosowanie technologii, które też może znacząco zmienić rynek małych sklepów, które mogłyby istnieć w rozmaitych miejscach, gdyby nie musiały mieć kasjera i mogłyby być otwarte 24 godziny na dobę. To jest, jak się okazuje, ogromny rynek. Być może równie ogromny, jak rynek dla samojeżdżących samochodów.

Ciekawa historia z pierwszym pomysłem Twojego kolegi. Myślę, że Accel Robotics będzie miał zdecydowanie większy popyt. Nie tak dawno dostaliście duże dofinansowanie, więc też pod tym względem macie zasoby na dalsze działanie. Na Waszej stronie jest napisane: Mamy do czynienia z nowym, wygodnym światem„. Na czym polega ta wygoda? Jakie są pułapki w tym wygodnym życiu? Jaka będzie różnica w zachowaniu człowieka teraz i za 5 lat, kiedy to już się stanie powszechne?

Wygoda polega na tym, że chcemy postawić tego typu sklepy w miejscach, w których w tej chwili istnienie sklepu nie jest opłacalne. W Polsce może nie jest to aż tak dostrzegalne, ale w Ameryce są dosyć duże osiedla, w których nie ma ani jednego sklepu. Jest tzw. zoning, czyli dane strefy czy dzielnice miasta są przeznaczone tylko pod zabudowę mieszkalną i nie można w nich budować sklepów.

W związku z tym często (szczególnie w Kalifornii) żeby kupić zapałki albo nawet najprostszą rzecz potrzebną w domu, po prostu trzeba wsiąść w samochód i po nią pojechać. Część tego problemu oczywiście rozwiązuje sprzedaż wysyłkowa. Amazon, sklepy internetowe pozwalają kupić dużo rzeczy i dostać to następnego dnia, ale jest gdzieś taka dziura na zakupy potrzebne natychmiast np. zabrakło w domu wody mineralnej.

Gdybyśmy mieli takie małe sklepy porozstawiane w różnych miejscach miasta (dużo gęściej niż teraz), byłoby to znacznie wygodniejsze. Można podejść do takiego sklepu, wziąć, co i kiedy potrzeba, bo sklep może być otwarty 24 godz. na dobę. Nawet jeżeli zabraknie mi czegoś o północy, po prostu wyjdę na wieczorny spacer i mogę to kupić. 

Również w miejscach, w których normalnie jest mało klientów, często nie opłaca stawiać się dużych sklepów czy płacić za etat kasjera, który przez większość czasu nie ma, co robić. Takim przykładem mogą być parki narodowe, gdzie ruch jest bardzo nierówny – przez większość dnia nikogo nie ma, a zdarza się godzina albo dwie, kiedy nagle pojawia się dużo ludzi. Technologia sklepów autonomicznych, może to zmienić. Także dużo operatorów stacji benzynowych jest tym bardzo zainteresowanych. 

Jakie mogą być niebezpieczeństwa z tym związane?

Na pewno podstawowym niebezpieczeństwem jest to, że część kasjerów może stracić pracę. Jest to nieunikniona konsekwencja postępu technologicznego i trudno z tym dyskutować. Sto lat temu, większość ludzi pracowała na farmach, po czym został wynaleziony traktor i od tego czasu wiele osób mieszka w mieście i zajmuje się czymś innym.

Natomiast nawet nie myślę, że to byłby aż tak wielki problem, dlatego że dużo z tych sklepów w tej chwili nawet nie istnieje. Na pewno część kasjerów straci pracę, ale efekt będzie taki, że powstanie więcej sklepów. Myślę, że kasjerzy w większych sklepach raczej nie muszą się martwić dlatego, że jeżeli jest duży sklep, dużo ludzi to nie ma problemu czas pracownika jest dobrze wykorzystany. W takim przypadku dobrze mieć człowieka na miejscu w razie, gdyby klientom potrzebna była jego pomoc. 

Drugie niebezpieczeństwo, którym na pewno ludzie się trochę martwią, szczególnie biorąc pod uwagę to, co dzieje się w Chinach, to jest kwestia prywatności, kwestia tego, czy wyjście do takiego autonomicznego sklepu nie spowoduje naruszenia prywatności, bo ktoś będzie obserwował, co kupuję. To jest do pewnego stopnia problem, który trochę istnieje, a trochę nie. Nawet dzisiaj kiedy się wchodzi do sklepu, to często jest się nagrywanym przez monitoring w ramach zabezpieczenia przed kradzieżami. Ludzie nawet często nie zwracają na to uwagi.

Potencjalnie jakby ktoś chciał je obejrzeć, to może podejrzeć, co dokładnie kupowaliśmy. W naszym systemie nie wykorzystujemy rozpoznawania twarzy. Staramy się anonimizować klienta. Nie mamy dostępu do jego karty kredytowej – to się dzieje osobno. To operator karty kredytowej autoryzuje danego klienta. My tylko dostajemy autoryzację od operatora, że daną osobę możemy wpuścić. Nie wiemy natomiast, kto to jest i jedyne, co musimy zrobić, to ostatecznie dostarczyć do operatora karty kredytowej listę rzeczy, którą dana osoba kupiła. 

Jakkolwiek pewne niebezpieczeństwa istnieją, to moim zdaniem jeżeli stworzy się odpowiedni proces z zachowaniem zasad bezpieczeństwa, to nie będzie to znacznie różniło od stanu obecnego. Ludzie jakoś się z tym pogodzili i nie jest to większym problemem. 

Ten przypadek użycia w Stanach Zjednoczonych faktycznie w Polsce może jest mniej odczuwalny. Ale jest za to inny problem, a mianowicie zaostrzenie zakazu handlu w niedzielę. Jak na razie pojawiają się różne rozwiązania, np. w Krakowie na początku 2020 r. pojawił się samoobsługowy Lewiatan.

To wygląda jak kupowanie jakiś batoników w automacie tylko w znacznie większym rozmiarze. Jest to chyba coś innego, niż to, co Wy próbujecie zrobić, bo faktycznie chcecie wpuszczać człowieka do środka w jakieś większe pomieszczenie niż tylko na zewnątrz, gdzie stoi maszyna, z której wybierasz interesujący Cię produkt.

Jest to w pewnym sensie podobne do takiej maszyny, która wypluwa jakieś rzeczy. Staramy się sprawić, żeby doświadczenie klienta wchodzącego do sklepu było podobnego do tradycyjnego sklepu – produkty leżą na półkach, można je sobie wszystkie swobodnie wziąć, obejrzeć, odłożyć. Jedyną różnicą ma być brak personelu na miejscu.

Oczywiście będą kamery, więc sądzę, że obrabowanie takiego sklepu będzie nawet trudniejsze. Zastanawiamy się, jak to doświadczenie uprzyjemnić. Być może będzie tam stał jakiś robot, który będzie w pewien sposób imitować obsługę. Pojawiają się też ciekawe pytania związane z interakcją użytkownika z maszyną. Jak sprawić, żeby człowiek czuł się swobodnie, żeby się nie bał? Tu pojawia się dużo ciekawych rzeczy związanych z interfejsem. 

Tu pojawia się pewien paradoks badany już w Japonii: czym robot staje się bardziej podobny do człowieka, tym bardziej go odstrasza. Chciałbym dopytać o jedną rzecz, która się wydarzyła w Polsce, w Poznaniu, gdzie pojawił się taki sklep i wystąpił pewien problem. Człowiek wszedł do sklepu, rozładował mu się telefon i nie mógł z tego sklepu wyjść. Czy w Waszym przypadku telefon musi być włączony cały czas wizyty w sklepie?

Nie. W naszej technologii trzeba się zidentyfikować przed wejściem do sklepu, więc trzeba mieć kartę kredytową albo aplikację działającą w telefonie. W momencie, w którym ktoś już jest wpuszczony do sklepu, to już nie potrzebuje niczego. My po prostu wyślemy rachunek SMSem.

Jeżeli ten sms nie przyjdzie natychmiast, bo komórka jest wyłączona, to dojdzie później. Nie ma żadnych ograniczeń czasowych. Natomiast tu są restrykcyjne przepisy pożarowe i ktoś będący w takim autonomicznym sklepie, zdecydowanie musi się móc wydostać bez pomocy żadnej elektroniki. To jest raczej tak, że telefon może być potrzebny, żeby wejść do sklepu, a żeby wyjść na pewno nie (nawet ze względów bezpieczeństwa). 

Zajmujesz się już długo tematem widzenia komputerowego. To nie zawsze chodzi o deep learning. Wyjaśnij te dwa pojęcia.

To jest długa historia i nie wiem, czy tak naprawdę ktokolwiek do tej pory był w stanie dobrze to zdefiniować. Wyjaśnię, jakie istnieją definicje, jakie problemy się rozwiązuje w wizji i jakich problemów się nie rozwiązuje. Może to pozwoli nam lepiej zrozumieć te pojęcia. 

Problem widzenia to jest problem transformacji czegoś, co wchodzi do jakiegoś sensora typu kamera (czyli transformacji obrazu) w informację o tym, co w tym obrazie się znajduje albo w informację, która wpływa np. na akcje robota znajdującego się w środowisku reprezentowanym przez dany obraz. Tu już widać, że to mogą być rozmaite rzeczy, więc tradycyjnie definiuje się problem klasyfikacji obiektów.

To jest dosyć wysokopoziomowy problem, w którym przez ostatnie kilka lat zaobserwowaliśmy duży postęp za sprawą deep learning. To są dosyć duże perceptrony (sieci neuronowe). Klasyfikacja przedmiotu podaje komputerowi zdjęcie i komputer ma wykryć, czy znajduje się na nim przedmiot z ustalonej listy kategorii. Jeśli tam jest, to ma wskazać miejsce, w którym ten przedmiot się znajduje. To jest jeden z problemów wizyjnych, które mogą być rozważane. 

Innym problemem jest semantyczna segmentacja. To jest trochę szerszy problem, definiowany w ten sposób, że komputer dostaje obraz i ma go rozdzielić na obszary, które reprezentują pewne klasy. Klasy tutaj zazwyczaj są ustalone z góry. Można sobie wyobrazić dużo problemów semantycznej segmentacji w problemie autonomicznego jeżdżenia. Czyli bierzemy obraz ulicy i chcemy wysegmentować ten obraz i powiedzieć, które piksele na tym obrazie reprezentują drogę, które pobocze, samochody czy pieszych itd. Jest pewien zbiór kategorii, na które chcemy dokonać segmentacji tego obrazu.

Inną kwestią jest śledzenie obiektu. Jest to problem definiowany nie tyle na obrazie pojedynczym, a na sekwencji obrazów. Przykładowo oglądam film i chcę śledzić dany obiekt, który w sekwencji zdjęć się zmienia, następuje jego transformacja i chce ten obiekt śledzić. Ten problem jest trochę inny niż klasyfikacja, chociaż jego część na pewno może być rozwiązana za pomocą klasyfikacji.

Czasem może być tak, że obiekt w czasie się zmienia, a my chcemy nadal utrzymać jego tożsamość. Można sobie wyobrazić, że kogoś śledzimy na sekwencji zdjęć i ten ktoś ubiera maskę, ale chcemy nadal wiedzieć, że to jest ta sama osoba dlatego, że istnieje jakaś ciągłość w tej całej sekwencji. 

To jest kolejny możliwy problem – problem widzenia. 

Z kolei istnieją inne, prostsze problemy. Być może chcemy zbudować robota, który nie będzie klasyfikować tego, co widzi przed sobą w ludzkich kategoriach, ale może np. chce wiedzieć, czy może przejść przez dany teren. Często to nie są rzeczy, które da się łatwo wyrazić jako problem klasyfikacji. Trudno jest rozważać np. problem klasyfikacji, czy można pokonać dany kamień na drodze.

To nie wydaje się jako coś, co może być wyrażone w terminach klasyfikacji. Zdecydowanie może być wyrażone jako pewien fundamentalny problem wizyjny. Często takie problemy, które wydają się problemami banalnymi (np. możliwość przejścia po danym terenie bez przeszkód), często są dużo trudniejsze niż problemy klasyfikacji. Jest to dosyć paradoksalne.

Dzisiaj będziemy mówić dużo na temat paradoksów. Spróbujmy podsumować myśli. Ciężko jest zdefiniować, czym jest widzenie. Natomiast to, co zabrzmiało w sposób dość zauważalny, to to, że obecne algorytmy (w szczególności uczenia głębokiego) skupiają się tylko na pewnym fragmencie całego obszaru.

Ciągnąc ten wątek, można powiedzieć, że do tego tematu można podejść na różne sposoby. Oprócz deep learningu są prawdopodobnie jeszcze inne sposoby na to, aby próbować ten świat zobaczyć. Opowiadałeś o tym w swojej prezentacji – przybliżysz nam te sposoby?

Na pewno są algorytmy, które są wyspecjalizowane w danym aspekcie, więc bardzo dostosowane do danej aplikacji. Często są to algorytmy, które stosuje się w środowisku kontrolowanym np. w fabrykach, jeżeli chcemy dokonać inspekcji produktu. Często też są stosowane algorytmy, które działają w bardzo wąskiej branży. Praktycznie każdy obraz, który oglądają, jest taki sam. Jedyne, co muszą zrobić, to sprawdzić, czy dany obraz nie ma jakiś defektów, pomyłek.

Tu zazwyczaj można powiedzieć, że uczenie maszynowe byłoby ok. Nie twierdzę, że nie da się zastosować uczenia maszynowego w tej dziedzinie, ale często jest tak, że to, co jest bardziej istotne niż łatwość nauczenia tego algorytmu, czy skonstruowania, to dodatkowe rzeczy, które chcemy wiedzieć o danym obiekcie, czy dokonać jakiś pomiarów. Często łatwiej jest wyrazić wszystkie te rzeczy, programując i wykorzystując przy tym klasyczne algorytmy wizji komputerowej.

Wizja komputerowa to nie jest nowe zjawisko, jest rozwijana od 50 lat. Jest całkiem sporo tzw. klasycznych algorytmów, których da się wykorzystać do niektórych rzeczy. Często to, co jest dobre w tym zastosowaniu, to to, że wiemy dokładnie, co robimy, co ten algorytm rozpoznaje, kiedy zawiedzie, więc specyfikacja tego problemu jest zdecydowanie bardziej restrykcyjna. Problemem uczenia maszynowego jest to, że często działa, ale równie często nie wiadomo dlaczego i jeżeli zawiedzie, to też nie wiadomo dlaczego. W specjalistycznych aplikacjach to nie jest dobra sytuacja. 

Uczenie maszynowe w tej chwili najlepiej nadaje się do rozwiązywania problemów, w których potrzebujemy wykorzystać klasyfikację. Często nie da się wyrazić dobrze danego problemu w terminach klasycznych – np. co to znaczy rozpoznać psa danej rasy w zestawie obrazów?

Dla klasycznej wizji komputerowej to problem prawie nie do rozwiązania. Natomiast w uczeniu maszynowym możemy pokazać zestaw przykładów danej kategorii czy danej rzeczy i uczyć system, który będzie to próbował rozpoznać. Jest to inna metodologia działania i w wielu przypadkach rozwiązuje problemy, przy których klasyczna wizja komputerowa już dawno się poddała. Próby szukania rozwiązania mogą być bardzo drogie. Nikt nie będzie zatrudniał programisty i szczodrze go opłacał przez wiele lat po to, żeby napisać wykrywacz psów.

Natomiast uczenie maszynowe pozwala zgromadzić zestaw danych i po rewolucji głębokiego uczenia, od 10 lat wiemy jak budować systemy, uczyć je na kartach graficznych, wiemy które problemy rozwiązują. Tutaj kłopotem jest to, że niestety czasami te systemy zawodzą i kiedy to się stanie, to często nie znamy przyczyny. Sytuacje, w których te systemy zawodzą są czasem dosyć dziwne, a przykłady pokazują, że często nie widzą one świata w taki sposób, w jaki my byśmy go widzieli.

Trzecią kategorią jest wszelaka percepcja dla robotów. Tu często problemy są trudne do zdefiniowania w terminach klasyfikacji. Trudno dokładnie powiedzieć, czego dany robot powinien się uczyć, żeby był w stanie się poruszać w świecie. To są często problemy, które wymagają analizy wideo czy sekwencji klatek, które są zatopione w czasie, a nie są statycznymi obrazami.

Zdarza się, że algorytmy uczenia maszynowego, które w klasycznych aplikacjach klasyfikacji działają dobrze, zaaplikowane do robotów nie funkcjonują prawidłowo – m.in. dlatego że te roboty mają kamery często dostarczające rozmyty obraz z uwagi na poruszanie się maszyny. Tutaj oczywiście częściowo może pomóc taki rodzaj uczenia maszynowego, który bierze to pod uwagę i rozumie, że często kategorie, których trzeba się nauczyć, są inne. 

Czwartą kategorią jest biologiczna wizja. Jest pewna grupa osób, która chce zrozumieć, jak biologiczne mózgi procesują sygnał wizyjny i chce modelować to, co jest w stanie w nich zaobserwować. W tej kwestii też mam sporo lat doświadczenia dlatego, że w pierwszej firmie, Brain Corporation, praktycznie przez pierwsze 3 lata dokładnie to próbowaliśmy zrobić. Moim zadaniem było nauczenie się neuronauki. To jest całkiem osobna historia. 

Jak wspomniałeś, to często są imponujące modele, ale w praktyce nie działają. Wydaje się, że jeszcze nie wiemy wystarczająco dużo na temat tego, jak mózg działa, żeby móc efektywnie to modelować. 

Jest taki słynny projekt w Szwajcarii “Blue Brain Project”. Staram się go obserwować, ale ostatnio jest coraz mniej komunikatów o jego osiągnięciach w roku 2020. Czy wiesz coś na ten temat? Czy jest możliwość, że natrafiono tam już na pewne ograniczenia, które ciężko jest przeskoczyć?

“Blue Brain Project” został w pewnym momencie przemianowany na “Human Brain Project”. Idea była taka, żeby zamodelować istotną część mózgu człowieka. Henry Markram (założyciel projektu) chciał dokonywać rozmaitych obserwacji w biologicznym mózgu, budować mapę neuronów i na tej podstawie budować bardzo skomplikowany model, w którym biochemia impulsu nerwowego będzie zamodelowana.

Nadzieja była taka, że jeśli zbuduje się wystarczająco duży model tego typu, to ten model zacznie przejawiać wyższe cechy poznawcze czy wyższe poziomy odpowiedzi na sygnały, które można by uznać za inteligentne i wykorzystać to ewentualnie do budowy jakiś systemów wizyjnych. Moje doświadczenie w tej dziedzinie jest takie, że jest to z jednej strony bardzo ciekawe, z drugiej zaś jest to coś zupełnie innego niż uczenie maszynowe. Uczenie maszynowe wywodzi się z podejścia statystycznego.

Jest bardzo wyabstrahowane. Idea neuronów w dzisiejszej sieci neuronowej jest tak daleko od biologicznego neuronu, że w zasadzie jest to tylko jakaś daleka analogia. To, co się dzieje w tzw. komputerowych sieciach neuronowych, to jest mnożenie dwóch wektorów i przepuszczanie ich przez nieliniową funkcję. Biologiczne neurony to jest bardzo skomplikowana dynamika, która jest zatopiona w czasie, posiada rozmaite interakcje różnych neuroprzekaźników. Każdy pojedynczy neuron wydaje się być bardzo skomplikowaną maszyną.

Do tej pory nie wiemy tak naprawdę, które cechy tych neuronów są odpowiedzialne za wyższe działanie, za to, który mózg działa lub nie. Jest to ciekawe. Dla mnie to było doświadczenie, które pozwoliło mi lepiej zrozumieć, jak daleko jesteśmy jeszcze od rozwiązania tej zagadki inteligencji. Często się słyszy obecnie, że możemy już budować samojeżdżące samochody, już jesteśmy “za rogiem”.

Przynajmniej moje studia neuronauk pokazują, że sprawa “pod czaszką” jest zdecydowanie bardziej skomplikowana, niż się wydaje. Tak naprawdę nikt nie wie, co tam się dzieje. Tylko powierzchownie przypomina to to, co modelujemy w tzw. sztucznych sieciach neuronowych. 

Brzmi to tak, że chcemy ten wątek rozwinąć, ale niestety musimy się skoncentrować i trzymać się pewnego flow. Podsumujmy. Do widzenia komputerowego możemy podejść na co najmniej 4 sposoby:

Pierwszy to customowe podejście, kiedy wpisujemy pewien algorytm i jeżeli on się myli, to wie, gdzie się myli, a jak działa, to też wiemy, gdzie. Jest to bardziej kontrolowane. Mamy większe poczucie bezpieczeństwa. 

Drugi sposób to bio. 

Trzeci to uczenie maszynowe samo w sobie, takie bardziej klasyczne. 

Czwarty to uczenie głębokie, które przede wszystkim jest otwarte na głębokie sieci neuronowe. 

Jeszcze wspomniałeś o podejściu robotyzacji i ograniczeniach, które tam występują. Było to dla mnie ciekawe, bo jak analizowałem jedną z Twoich prezentacji, stwierdziłeś, że customowe rozwiązania radzą sobie równie dobrze jak deep learningowe, to na ten moment (jeżeli chodzi o zastosowanie) są bardziej popularne. To nagranie z 2016 r. Teraz minęły już prawie 4 lata od tego momentu. Czy cokolwiek się zmieniło w tym obszarze? Gdzie takie customowe rozwiązania nadal działają i są stosowane powszechnie?

Trudno powiedzieć, czy są bardziej popularne, dlatego że uczenie maszynowe jest teraz dosyć szeroko rozpowszechnione. Podam natomiast kilka przykładów algorytmów czy rozwiązań, które nie są oparte na uczeniu maszynowym albo na ostatniej modzie w uczeniu maszynowym rzeczy, z którymi pracowałem. 

Rozpoznawanie twarzy wydaje się być możliwe tylko dzięki głębokiemu uczeniu – jest to nieprawda. Rozpoznawanie twarzy zostało rozwiązane już w latach 90. Istnieje co najmniej kilka algorytmów, które to robią. One nie są zupełnie oddarte od uczenia maszynowego. Często buduje się pewien klasyfikator na zbiorze cech, więc to nie jest tak, że to jest zupełnie oderwane od uczenia maszynowego, ale nie jest to deep learning.

Nie jest to ten paradygmat, w którym wszystko się trenuje. Kiedyś pracowałem z pewnym algorytmem, który nie był komercyjnie dostępny. Ten algorytm pracował na sygnale video w rozdzielczość full HD. Rozpoznawał twarz i robił to na telefonie komórkowym niesamowicie szybko i dokładnie. Do tego stopnia że często te algorytmy zwracają tzw. punkty kluczowe, czyli miejsca gdzie się brwi kończą, dokładny obrys oczu, gdzie jest nos. To jest przykład takiego algorytmu, który naprawdę został rozwiązany. Nie trzeba głębokiego uczenia do tego. Być może dlatego, że po prostu było zapotrzebowanie na rozpoznawanie twarzy. Dużo ludzi się tym interesowało od dawna, więc była motywacja, żeby ten problem rozwiązać. 

Kolejne doświadczenie z osobistej kariery – pracowałem w firmie zajmującej się inspekcją płytek drukowanych. Zapoznałem się ze stosowanymi tam algorytmami. Jest to też bardzo wyspecjalizowany algorytm, który bardzo szybko – dosłownie w przeciągu sekundy – jest w stanie sfotografować w bardzo wysokiej rozdzielczości płytkę drukowaną i w przeciągu sekundy dostarcza z 10-20 zdjęć. Na ich podstawie wypracowywana jest rekonstrukcja 3D tej płytki, następnie dokonywana jest analiza połączeń, są wyliczane kąty itd. Nie ma w tym ani grama uczenia maszynowego, a działa naprawdę bardzo imponująco. 

Kolejny przykład związany z samojeżdżacymi samochodami to firma Mobileye. Kiedyś Tesla używałą ich mikroprocesory do swoich pojazdów. Potem wydarzył się dramat, wypadek śmiertelny i firma przestała chcieć współpracować z Teslą, ale to jest zupełnie osobna historia. Ich chip z 2014 r. miał minimalny aspekt uczenia maszynowego.

Większość rozpoznawania samochodów i segmentacji drogi była robiona klasycznymi algorytmami. Poniekąd wiadomo na podstawie tego jak ten chip wyglądał i tego, kiedy uczenie maszynowe stało się bardzo popularne, że na pewno za dużo deep learningu tam nie było. Mówię to dlatego, że często potrzeba 3-4 lata, żeby zaprojektować taki mikroprocesor. Jeżeli w 2013 r. wszedł on do użycia to znaczy, że jego zaprojektowanie musiało nastąpić zanim głębokie uczenie stało się popularne. Na pewno nie ma tam istotnej części głębokiego uczenia. 

Mam też przykład z lokalnego podwórka. W tej chwili w Accel Robotics głębokie uczenie stosujemy do klasyfikacji, ale już np. śledzenie osób w sklepie czy wykrywanie zdarzeń w sklepie jest w dużej mierze wykonywane za pomocą klasycznych algorytmów. Tych, które po prostu napisaliśmy z wizją tego, co one muszą robić i w jakich warunkach działać. Często jest tak, że algorytmy uczenia głębokiego, żeby działać, w wielu przypadkach potrzebują dosyć sporej karty graficznej i żeby przetwarzać te klatki na bieżąco, ta karta graficzna musi stale działać, przez co konsumuje dużo prądu.

Prąd kosztuje – co jest ostatnią rzeczą, na którą specjaliści od uczenia maszynowego zwracają uwagę. Często myślą, że prąd jest zagwarantowany i ktoś za to płaci. W naszym przypadku dowiedzieliśmy się, że operatorzy małych sklepów nie chcą mieć gigantycznego rachunku za prąd, więc często te algorytmy trzeba też dostosować, żeby były energooszczędne. Czasem jest łatwo dany algorytm napisać, nauczyć i wszystko działa tylko, że zużywa bardzo dużo prądu i to powoduje, że jest niemożliwy do użycia. To się tyczy też często robotów, samojeżdżących samochodów. W tym przypadku szczególnie jest to istotne dlatego, że samochód ma bardzo ograniczony budżet energetyczny. Nie może wieźć za sobą elektrowni, która napędza 10 kart graficznych. 

Jak piszesz: “Jestem naukowcem pracującym nad wprowadzeniem dynamiki do uczenia maszynowego, który obecnie jest zdominowany przez statystykę. Dynamika jest konieczna, aby modele mogły wytworzyć dobre “rozumienie” fizycznej rzeczywistości.Na czym polega ta dynamika? Czym się różni algorytm, który tej dynamiki nie ma i ten, który ją ma?

To jest coś, co w pewien sposób czuję, ale niełatwo to wyrazić. Wydaje mi się, że nie mamy jeszcze dobrego języka, żeby to opisać, ale postaram się jak najlepiej. 

Obecnie wiadomo, że uczenie maszynowe działa w ten sposób, że musimy sieci neuronowej pokazać 10 mln. przykładów jednego przedmiotu, 1 mln. przykładów drugiego przedmiotu i za każdym razem trenować – to jest szklanka, to jest długopis itd. To się dzieje przez długi czas. Po wielu milionach interakcji system wytwarza w końcu umiejętność odróżniania tych obiektów. Nie wiadomo dokładnie, jak to się dzieje. Budowane są w tej sieci neuronowej cechy, które ostatecznie pozwalają rozdzielić te kategorie. To jest w sumie dosyć statystyczne, dlatego że tak naprawdę nic nie wiemy o prezentowanych scenach.

O tej sieci neuronowej jedyne, co wiemy to to, że dana scena zawiera dany obiekt, inna scena nie zawiera żadnego obiektu. Poziom informacji, który ta sieć neuronowa ma, jest czysto statystyczny. Nie wie nic o świecie poza tym, że część z prezentowanych obrazów zawiera jeden obiekt, a część zawiera inny. Nie ma żadnego zrozumienia i żadnej motywacji w tej sieci neuronowej, żeby zrozumieć cokolwiek więcej na temat tego świata.

Sieć neuronowa jest zmotywowana jedynie tym, co próbujemy w niej optymalizować. Pracujemy nad rozdzielaniem tych kategorii. Jedyne co ta sieć musi się nauczyć, to jakikolwiek sygnał w tych obrazach, który pozwala jej rozdzielić np. szklankę od długopisu – nic więcej. Nie ma motywacji, żeby rozumieć, że na świecie jest grawitacja i rzeczy opadają w dół. Nie ma motywacji, że świeci słońce, że płyny zachowują się tak, jak się zachowują itd. To jest zupełnie poza sferą zainteresowania tej sieci.

Jeżeli pomyślimy o tym, jak się ludzie czy zwierzęta uczą rozmaitych rzeczy to łatwo jest zauważyć, że uczymy się inaczej. Dziecko nie potrzebuje tysiąca zdjęć kota, żeby zrozumieć, że kot to kot. Dzieci rozumieją co jest kotem, nawet zanim są w stanie go nazwać. Często jest tak, że jeżeli dziecko już się nauczy czegoś o świecie, to bardzo szybko jest w stanie się nauczyć nowych rzeczy. Dziecko może zobaczyć lwa pierwszy raz w życiu, możemy powiedzieć, że to jest lew i że jest rodzajem kota.

W tym momencie dziecko jest w stanie po pierwsze – zapamiętać na podstawie tego jednego przykładu, jak pokażemy nagle inne zdjęcie lwa to już w magiczny sposób, jest w stanie powiedzieć, że to jest lew. W tej chwili w uczeniu maszynowym nie mamy tej możliwości. Nie wiemy nawet jak zacząć to robić. Po drugie – dziecko często jest w stanie generalizować we właściwy sposób, tzn. możemy pokazać dziecku zdjęcie lamparta i nawet 2 latek będzie w stanie powiedzieć, że lampart jest kotem. Jak to się dzieje?

Tego nie wiemy. Natomiast wiemy, że dzieci uczą się, nawet jeżeli nie mają żadnego nadzoru. Po prostu poprzez interakcję ze światem uczą się mnóstwa rzeczy o nim. W momencie, w którym zaczynają uczyć się języka, wiedzą już bardzo dużo o świecie. To coś zupełnie innego niż sieć neuronowa. Mózg zna już otaczająco go świat i jedyne co musi nauczyć się nazywać poszczególne jego elementy. To jest coś subtelnie innego, niż bombardowanie sieci neuronowej milionem obrazów i tłumaczenie jej, co jest czym.

Tutaj dochodzimy do dynamiki. Raz mówimy dziecku, jak nazywa się dany przedmiot i to wystarczy. Ten rodzaj uczenia jest zupełnie niestatystyczny. Nie ma tutaj aspektu częstotliwościowego. Po prostu jedna ekspozycja wystarczy. Pewne aspekty ludzkiej aktywności trzeba ćwiczyć. Granie na pianinie czy jazda na rowerze – to są umiejętności wymagające ćwiczeń. Na pewno jest w ludzkich czy zwierzęcych aktywnościach pewien aspekt statystyczny, ale jest też ogromny aspekt zupełnie niestatystyczny, w którym w jakiś sposób jesteśmy w stanie powiązywać ze sobą fakty na podstawie pojedynczych przykładów.

Wiąże się to z tym, w jakim świecie żyjemy i co to znaczy być inteligentną istotą. Moim zdaniem świat z natury też jest niestatystyczny, niestacjonarny. Świat wydaje się być regularny przez pewien czas, a potem się wszystko całkowicie zmienia. Wiadomo, jak to działa w biznesie: firma działa, wszystko jest pięknie, nagle się pojawia inna firma, wystawia inny produkt i wszystko się zmienia. Wszystkie rozwiązania, które do tej pory działały, nagle są nic niewarte i trzeba wszystko przemyśleć od nowa.

Takie rzeczy dzieją się cały czas. Część z nich w małej skali. Są to drobne rzeczy. Coś się zmieniło w domu i musimy się do tego dostosować. Część rzeczy na dłuższej skali czasowej też potrafi się zmieniać. Historia ludzkości pokazuje, jak dany kraj funkcjonuje i jak się drastycznie zmienia, gdy nadchodzi wojna albo plaga. Trzeba się do tego natychmiast przystosować. To jest o tyle istotne, że nie mamy czasu, żeby się na nowo uczyć tej rzeczywistości tak, jak uczenie maszynowe by się uczyło, tylko trzeba działać od razu.

Trzeba szybko zrozumieć, że coś fundamentalnego się zmieniło i wymaga to innego sposobu funkcjonowania. To jest dynamika, coś co czujesz, że w tej chwili zupełnie w sztucznej inteligencji nie wiadomo jak wykonać. Nie wiemy jak sprawić, żeby coś miało umiejętność zrozumienia, że coś się zmieniło i że dane rozwiązanie od tej pory nie będzie działać zupełnie. Nie wiem, czy to ma sens, ale wydaje mi się, że nie jest to wystarczająco mocno reprezentowane w tej chwili w sztucznej inteligencji. 

Czuć Twoją pasję do tego tematu i jak dużo czasu spędzasz na rozważaniach. Nawiązałeś do dziecka. Ja akurat mam to szczęście, że mam dwójkę dzieci i też nad tymi tematami rozważam. Dla mnie było też ciekawe, jak dzieci się uczą, że np. nie mając nawet roku, dziecko jeszcze nie potrafi mówić, a już umie pewne rzeczy rozpoznawać.

Jak wygląda moja zabawa z dzieckiem? Daję jakąś zabawkę i obserwuję, jak wygląda interakcja. Pokazuję jeden ruch i obserwuję co robi dziecko. Może ono powtórzyć po mnie, ale również zaczyna próbować robić inaczej, np. próbuje w to pukać, wyciągnąć którąś stronę, a tego nie pokazywałem.

Zastanawiam się wtedy, skąd dziecko wie, że może robić takie ruchy. Ono próbuje ten nasz świat eksplorować, sprawdzać, co jest możliwe. Jednoroczne dziecko uwielbia zabawy typu „bach” (coś spadnie). Robi świadomie wszystko, żeby coś zrzucić i mówi „bach”. To jest takie imponujące! Nie wiem, co się wtedy dzieje w głowie dziecka, ale odczuwam, że jakieś neurony pewnie się łączą. 

Zauważyłem również, że po dzieciach fajnie widać, jak szybko przychodzi nauka otwierania i zamykania przedmiotów. Zrobi to raz, dwa, wie, czym to się kończy, to od razu przestaje się tym bawić. To jest też ciekawe dla mnie odkrycie, jak szybko człowiek potrafi się nauczyć nowych rzeczy i już go to nie bawi.

Z drugiej strony, jak np. pada śnieg i spadnie na rękę, to wygląda to za każdym razem inaczej. Dziecko potrzebuje dużo energii, żeby to przetworzyć, bo przecież to wygląda za każdym razem inaczej. Mózg próbuje to cały czas kalkulować. Albo taki eksperyment – bierzesz herbatę lub kawę, wlewasz do niej mleko i zaczynasz mieszać. Za każdym razem rozlewa się to trochę inaczej. Nasz mózg potrafi się złapać na tym, że odcinamy się od rzeczywistości i obserwujemy. 

To jest naprawdę inspirujące, jak dzieci się uczą i na ile to podejście obecne (jeżeli chodzi o deep learning albo sieci neuronowe) uczenia maszynowego jest takim bardziej brutalnym podejściem. Czyli próbujemy złapać wierzchołek góry lodowej i to czasem działa, jeżeli chodzi o problemy biznesowe, to nawet je też rozwiązuje, ale ciężko to nazwać takim podejściem głębszym, jak my-ludzie działamy. 

Teraz dochodzimy do bardzo istotnego paradoksu, tzw. Paradoks Moraveca, który był zdefiniowany już ponad 30 lat temu, m.in. przez Hansa Moraveca, Rodneya Brooksa, Marvina Minsky’ego.

Warto teraz przytoczyć książkę „The Language Instincts” napisaną przez amerykańskiego psychologa Stevena Pinkera, w której czytamy, że „za 35 lat (książka z 1994r.) to, czego się nauczyliśmy to to, że trudne problemy są łatwe, a łatwe problemy są trudne”.

Na co Marvin Minsky mówił w ten sposób „rzeczy, które się dzieją nieświadomie u człowieka, to jest ten skarb, którego nie poznaliśmy”. Proszę, wyjaśnij na czym polega Paradoks Moraveca? Gdzie jesteśmy teraz? Czy posunęliśmy się chociaż odrobinę do przodu przez te 30 lat?

Tak, to był Hans Moravec, profesor badawczy na Uniwersytecie Carnegie Mellon. Napisał książkę o psychologii uczenia dziecięcego. Jest w niej taki cytat nazwany Paradoksem Moraveca: „dużo łatwiej jest nauczyć komputery rzeczy, które wydają się wyższymi funkcjami poznawczymi jak granie w gry, niż nauczyć je percepcji i mobilności rocznego dziecka”. To była dosyć ciekawa obserwacja i przez 30 lat mieliśmy niesamowity postęp w technologii komputerowej. Mieliśmy ze 40 lat Prawa Moore’a, więc komputery dzisiaj są, jeżeli nie setki tysięcy to miliony razy bardziej efektywne niż były za czasów Moraveca w 1987 r.

Jednak Paradoks jest nadal w pełni prawdziwy. Też mam 11 miesięczne dziecko. Co trzeba zrobić, kiedy niemowlę porusza się po domu? Trzeba zabezpieczyć szafki z rozmaitymi przedmiotami, dlatego że dziecko bardzo szybko się uczy te szafki otwierać i w nich grzebać. Trzeba pozatykać gniazdka elektryczne, bo dziecko bardzo szybko się uczy, że to jest coś ciekawego i że można tam coś wetknąć. Dzieci po pierwsze spontanicznie poruszają się po mieszkaniu, po drugie zaczynają grzebać w rzeczach, są w stanie otworzyć sobie szafkę, wyciągnąć z niej coś, pooglądać itd. Jak się popatrzy na to, co są w stanie zrobić roboty – nie są w stanie nic z tego zrobić w tej chwili.

Kilka lat temu był konkurs sponsorowany przez Darpa, gdzie najlepsze uczelnie i firmy budowały roboty, które w dużej mierze nie były w stanie za wiele robić. Miały wykonać różne zadania np. odkręcić zawór wodny czy otworzyć drzwi. Wiele z tych robotów, wyposażonych w rozmaite sensory, komputery, nie działało autonomicznie. Tam można było im pomagać tylko, że ten strumień danych, którym można było się z nimi komunikować, był ograniczony do dosyć powolnej prędkości.

Robot nie musiał wykonywać żadnych decyzji wysokopoziomowych. Jak się na to popatrzy, to czasy, kiedy nas sztuczna inteligencja wygoni z domów, są bardzo odległe. Te roboty nie były w stanie dobrze drzwi otworzyć, nie wspominając o bardziej skomplikowanych, manualnych rzeczach jak odkręcenie zaworu wodnego czy przykręcenie śruby wiertarką. Okazuje się, że te rzeczy, które roczne dziecko jest w stanie zrobić, to jest coś, czego dzisiejsze roboty, nadal nie są w stanie wykonać.

To jest paradoks. Jesteśmy w stanie w tej chwili lepiej grać w grę „Go” niż najlepsi ludzie na świecie. Po ostatnim osiągnięciu deepmind jesteśmy w stanie uczyć komputery grać w gry komputerowe, lepiej niż ludzie. Nie jesteśmy jednak w stanie ich nauczyć np. czołgania się po domu i otwierania szafek, tak jak zrobiłoby to roczne dziecko. 

Paradoks jest nadal w mocy. Dla mnie ciekawy jest ten paradoks i rozwinięcie na zasadzie, jeżeli to jest prawda, że taki paradoks ma miejsce, to co robimy nie tak? Gdzie jest dziura w naszym rozumowaniu? Ewidentnie coś jest nie tak. Jesteśmy w stanie budować skomplikowane systemy, które grają w skomplikowane gry komputerowe.

Już w tej chwili, przeciętny komputer jest w stanie przeciętnego człowieka w szachach pokonać, ale nie jesteśmy w stanie zbudować robota, który będzie wykonywał takie proste rzeczy jak otwarcie drzwi w sklepie czy przemieszczanie się w jakimś bardziej skomplikowanym środowisku. To wydaje się, że jest w tej chwili nieosiągalne. Dlaczego? To jest coś, co mnie fascynuje.

Na swoim blogu napisałeś, że Twoim celem długoterminowym jest rozwiązać Paradoks Moraveca. Nawiązując do tego, co powiedziałeś o konkursie Darpa, przed wywiadem z Tobą nagrywaliśmy wywiad z Markiem Cyganem z firmy Nomagic. Oni się zajmują robotyką.

Marek podał bardzo fajny przykład, że m.in. jako wyzwanie robotyzacji, dość często pojawia się problem z deep learning w takim rozumieniu, że robimy sobie pojedyncze zdjęcia, próbujemy sklasyfikować, co na nich jest, następnie zamykamy oczy i wykonujemy dane zadanie np. idziemy do szafki, otwieramy ją, bierzemy kawę itd.

W świecie rzeczywistym nie możemy tak się poruszać, bo jeżeli robimy tylko jedno zdjęcie, zapamiętujemy ten pokój, to potem nie możemy zamknąć oczu i pójść, bo zawsze coś się może wydarzyć po drodze. Zawsze ktoś może tę szafkę otworzyć przed nami itd. Czyli musimy non stop analizować, jak się zmienia nasz świat. Nie tyle, że wszystko musimy analizować dookoła, tylko to, co jest najbardziej w danej chwili istotne. Ewolucja na pewno wpłynęła na to, jak się rozwinęliśmy. Zdecydowała o tym, co jest bardziej znaczące.

To jest ciekawy wątek, bo m.in. w Twoich publikacjach bardzo mocno podkreślasz uczenie nienadzorowane (unsupervised learning). Problem m.in. jeżeli chodzi o uczenie nienadzorowane jest taki, w jaki sposób wnioskować, którą wiedzę warto przyswoić, a którą odrzucić? Jak człowieka wypuszczamy w dorosłe życie, to otaczają go różne osoby, które próbują też go oszukać, ale też osoby, które nie próbują go oszukać.

Człowiek, jeżeli jest inteligentny, bardzo szybko to rozumie. Próbuje w otoczeniu rozpoznać, co ma sens, co jest prawdziwe, a co nie. W jaki sposób to przełożyć na uczenie nienadzorowane? W jaki sposób zrozumieć, co tak naprawdę ma sens, a co go nie ma? Prawdopodobnie coś, co przypomina uczenie ze wzmocnieniem, czyli nakładać kary itd. Ale to jest niejednoznaczne, bo ktoś musi zdecydować o formie kary. W jaki sposób taki algorytm będzie się uczył i wnioskował? Który element tego algorytmu wnioskuje, co ma sens?

Ja bym to przedstawił w trochę abstrakcyjnych terminach, ale często warto jest postawić problem w bardzo szerokiej ramie, żeby dostrzec jakiś aspekt, który może okazać się istotny. Po pierwsze w otaczającym nas świecie zdecydowanie istnieje dynamika.

Dynamika w tym sensie, że istnieją jakieś reguły gry, które ten świat transformują, więc rzeczy nie zmieniają się losowo, tylko świat jest dosyć mocno zorganizowany wokół praw fizyki. Jeżeli będziemy w stanie rozumieć tę dynamikę świata, to jesteśmy w stanie coś o tym świecie wiedzieć. Co to znaczy wiedzieć coś o świecie? To jest rozumieć dynamikę, która go transformuje. 

Druga, dosyć istotna rzecz to to, że świat jest fundamentalnie nieprzewidywalny. Świat może być w pewnych skalach czasowych przewidywalny, w pewnych aspektach lokalnych, ale fundamentalnie, w globalnym sformułowaniu w wielu skalach świat jest nieprzewidywalny. Nie wiemy, co się zdarzy w przyszłości. 

Trzecia obserwacja jest taka, że jeżeli jesteśmy organizmem, który w tym świecie istnieje i próbujemy transformować dostępną energię i wykorzystywać ją do tego, żeby przeżyć i zreplikować swoje geny, to dobrze jest móc coś o tym świecie przewidzieć, ponieważ jeżeli jesteśmy w stanie coś o przyszłości móc powiedzieć, to jesteśmy wygrani w stosunku do tego, kto nie jest w stanie nic powiedzieć.

Jeżeli widzimy jakieś zagrożenie i jesteśmy w stanie przewidzieć, że to zagrożenie może w niedługiej przyszłości się zbliżyć i bezpośrednio nam zagrażać, to wtedy podejmujemy akcję, uciekamy, widzimy drapieżnika przed sobą i jeżeli jesteśmy w stanie zrozumieć i przewidzieć, że ten drapieżnik będzie w naszym kierunku podążał i może być zagrożeniem, to jesteśmy w stanie wcześniej podjąć ucieczkę i przeżyć. Jest naturalna presja ewolucyjna, żeby móc jednak co nieco o świecie przewidzieć.

Trochę zbliża nas to do pewnego pomysłu, który zdecydowanie nie jest jeszcze pomysłem gotowym. Jeszcze na pewno się nie dokopałem do tego w całości, ale widać początki jakiejś myśli. To jest to, że dobrze jest zbudować system, który cokolwiek widzi w świecie, będzie starał się przewidzieć, co się wydarzy w przyszłości.

To daje pewną naturalną miarę optymalizacji. Może to być system uczenia maszynowego, nie musi być nic bardzo specjalnego. Miarą optymalizacji jest wybrać jakiś aspekt świata i powiedzieć: „Ok. Na podstawie przeszłości i na podstawie czegokolwiek, co mam dostępne, jestem w stanie przewidzieć, co się zdarzy”. W wizji komputerowej to często można sformułować jako problem na zasadzie “mam pewną historię klatek, czy jestem w stanie przewidzieć co się stanie w następnej klatce?”

Czyli taki predykcyjny paradygmat. Czasem na to mówi “samonadzorowane uczenie”. Ten nadzór się pojawia w czasie, kiedy widzimy, jak się świat rozwija. Ostatecznie wiemy, jeśli puścimy czas do przodu, to ta dynamika się rozgrywa i jesteśmy w stanie stale się nadzorować, czy byliśmy w stanie przewidzieć to, co się stało czy nie.

To prowadzi do jeszcze jednej myśli. Tak jak wspomniałem, pewne aspekty świata da się przewidzieć, a pewnych nie. Z punktu widzenia behawioralnego czy przetrwania agenta w świecie, ten aspekt świata, którego się nie da się przewidzieć, jest poniekąd równie istotny, jak ten świat, który da się przewidzieć. Jeżeli mamy system, który stara się przewidzieć, co się stanie w przyszłości i aspekty nie do przewidzenia pojawiają się jako sygnał błędu, to ten sygnał jest poniekąd jeszcze istotniejszy niż ten, który jesteśmy w stanie przewidzieć.

Może dlatego właśnie, dzieci szybko się nudzą rzeczami, które są w stanie przewidzieć, które już znają. Natomiast podążają za tym, żeby uczyć się rzeczy, których nie są w stanie przewidzieć. Naturalnie ludzie podążają na krawędź rzeczy, których nie są w stanie przewidzieć, bo to jest po pierwsze najciekawsze, ale również z punktu widzenia przetrwania może być to najistotniejsze. Nawet z takich praktycznych rzeczy, jak egzystencja na rynku, często nie jest istotne to, co na rynku jesteśmy w stanie przewidzieć, ale bardziej istotne jest to, czego nie jesteśmy w stanie przewidzieć.

Często ten aspekt na krawędzi tego, co rozumiemy jest najbardziej istotny i potencjalnie może być najbardziej dochodowy z punktu widzenia biznesowego. Sporo jest analogii pomiędzy agentami istniejącymi w naturalnym środowisku, a firmami istniejącymi na rynku. To jest mniej więcej kilka myśli, które jakoś się zaczynają składać w pewną całość. Sporo z tych rzeczy jest również zgodnymi z tym, co widzimy w psychologii behawioralnej, czy w zachowaniu małych dzieci, czy też w zachowaniu nas samych – co tak naprawdę nas interesuje, co chcemy robić w życiu itd. To, co znamy jest fajne, bezpieczne, ale to nas mało interesuje.

To, co nas interesuje, zazwyczaj jest na krawędzi nieznanego. Tam jest ta szansa i miejsce, gdzie możemy uzyskać więcej energii do przetrwania w terminach biznesu, miejsce, gdzie są jakieś pieniądze do zarobienia itd. Czy w terminach zwierzęcia, które żyje w krzaczkach, to może być miejsce, gdzie jest pożywienie itd. To nie jest wszystko jeszcze bardzo sformalizowane, ale myślę, że coś tu się dzieje, co powinno zostać mocno zbadane. 

Chyba na blogu napisałeś: „publikacje o głębokim uczeniu, coraz mniej przypominają rewolucję, bardziej ewolucję”. Tak naprawdę ze sztuczną inteligencją jest tak, że osoby, które nagłaśniają te sprawy (marketingowcy, media) nieco skrzywiły pewne rzeczy. Z drugiej strony warto powiedzieć, że uczenie maszynowe, deep learning działa w pewnych zastosowaniach, potrafi rozwiązywać problemy i dawać namacalne wartości dla biznesu.

Z trzeciej strony jeżeli chodzi o zrozumienie tzw. sztucznej inteligencji to możliwość osiągnięcia poziomu general AI albo rozwiązania problemu Moraveca używając narzędzi dostępnych w tzw. mainstream (deep learning albo klasycznym algorytmie uczenia maszynowego) jest raczej nikła. Stąd pojawiają się coraz częściej artykuły, dyskusje, debaty na temat tego, że kolejna zima nadchodzi i coś będzie. Co o tym myślisz? Co się zmieni? Co się stanie w świecie biznesu?

Na początek wyjaśnię, czym jest zima AI. To jest fenomen, który zdarzył się już kilka razy. Trochę to przypomina euforię na rynku, po której nadchodzi pewne rozczarowanie. Taki cykl w sztucznej inteligencji miał miejsce przez ostatnich 40 albo 50 lat. Często pojawia się jakieś nowe rozwiązanie, coś tam działa i wszyscy się tym bardzo ekscytują, przewidują, że teraz to już komputery będą mogły zastąpić ludzi w jakimś tam aspekcie.

To są rozbujane dosyć mocno oczekiwania. Wydaje mi się, że jest to związane również z tym, że ludzie często bardzo łatwo robią projekcję swoich własnych kognitywnych możliwości na komputery. Bardzo łatwo wierzą, że szczególnie dzieci gdy pokaże im się zabawkę, są przekonane, że ta zabawka też widzi i słyszy świat tak, jak one. To jest jakiś taki naturalny odruch, który ludzie mają i być może jest to ewolucyjnie dosyć sensowne dlatego, że jest to coś, co pozwala nam zakładać to, że inni widzą świat mniej więcej tak, jak my.

Jest to naturalne założenie, które w większości przypadków pomaga nam żyć. Niestety to często też się aplikuje do komputerów czy maszyn i bardzo łatwo wierzymy w to, że maszyna robi coś, co wygląda jak coś, co robiłby inteligentny agent. Bardzo łatwo jest nam uwierzyć, że rzeczywiście jest to już inteligentny agent, a w związku z tym będzie mógł łatwo wykonać różne akcje. Od razu możemy wymienić listę rozmaitych rzeczy, które ludzie robią swobodnie. Łatwo wierzymy w to, że to już jest postęp, od tego momentu wszystkie problemy będą rozwiązane. 

Do tej pory było tak, że często się okazywało, że dane rozwiązanie rzeczywiście działa, ale okazuje się, że działa w zupełnie inny sposób niż nasz mózg. Mimo że na zewnątrz to rozwiązanie wydaje się działać podobnie, ale w środku okazuje się, że jest wręcz odwrotnie.

Te wszystkie założenia o tym, że skoro rozwiązaliśmy jeden problem oznacza, że wszystkie inne problemy też już za chwilę rozwiążemy, są błędne. Często to się wiąże z tym, że w momencie ekscytacji ludzie alokują zasoby, inwestują pieniądze. Potem się okazuje, że to jednak nie było to, jednak to rozwiązanie nie jest aż tak generalne itd.

Pieniądze są stracone. W momencie, w którym ludzie dużo pieniędzy na czymś tracą, to automatycznie nabierają jakiejś awersji. Następuje coś, co zostało ochrzczone jako zima AI. To jest taki okres, w którym ludzie, którzy popadli w iluzję posiadania wszystkiego w zasięgu ręki, zainwestowali dużo pieniędzy, tracą je i następuje okres, w którym nie ma pieniędzy na finansowanie prawie żadnych badań AI, bo wszyscy się boją, że się jeszcze raz sparzą na tym.

Niestety obawiam się, że nastąpi to samo również teraz, bo nie brakuje dookoła ludzi, którym się wydaje, że teraz już rozwiązaliśmy problem wizji komputerowej. Nie jest to prawda. Są bardzo subtelne, pojedyncze problemy wizji komputerowej, które są może i rozwiązane, ale to zdecydowanie nie oznacza, że wszystkie aspekty wizji komputerowej zostały rozwiązane. Ludziom się wydaje, że skoro pokonaliśmy mistrza świata w „Go” za pomocą komputera, to teraz ten komputer jest naprawdę inteligentniejszy niż ludzie. To też nie jest prawda.

Paradoks Moraveca nadal ma miejsce, nie jesteśmy w stanie zbudować robota, który będzie w stanie przejść przez las, a co dopiero zrobić coś w tym lesie. Dużo inwestycji teraz też miało miejsce w tym kierunku, szczególnie w aspektach, w których moim zdaniem prawdopodobnie dzisiejsza technologia nie będzie w stanie dostarczyć rozwiązań. Spodziewam się zatem, że te pieniądze zostaną stracone i w momencie, w którym ludzie sobie zdadzą z tego sprawę, to może nastąpić kolejna zima.

Cykl inwestycyjny się odwróci i wszyscy ludzie, którzy do tej pory byli podekscytowani hasłem AI, nagle stracą zainteresowanie jakimkolwiek tematem z tym związanym. Myślę, że to się wydarzy. Nie widzę żadnych przesłanek, żeby tym razem miało być inaczej niż 20 czy 40 lat temu. To są dobrze udokumentowane, historyczne rzeczy.

Jedna zima AI miała miejsce w latach 80., kiedy systemy ekspertowe zostały również przereklamowane bardzo mocno i potem przez kilka lat trwała zima. Czy nadchodzi? Moim zdaniem tak. W tej chwili jest dosyć duża ekscytacja, dużo rzeczy krążących w mediach jest mocno oderwanych od rzeczywistości. Tu absolutnie nie mówię, że nie ma żadnego postępu, bo postęp oczywiście jest. Na pewno część inwestycji się zwróci i być może nawet z nawiązką, ale zdecydowanie nie wszystkie.

Czyli problem jest taki, że oczekiwania w niektórych obszarach są wygórowane i ostatecznie może to wygenerować duże rozczarowanie. Najpierw był duży entuzjazm, a następnie będzie duża frustracja. Tak jak jest różnica pomiędzy miłością a nienawiścią. 

Jakie pytanie zadać na sam koniec? Filip, czym jest inteligencja?

To jest bardzo ciekawe, że tak naprawdę nie mamy jeszcze definicji inteligencji. W każdej dziedzinie naukowej, w fizyce czy w matematyce, często próbuje się bardzo dokładnie zdefiniować problem, który się próbuje rozwiązać, żeby wiedzieć o czym się mówi.

Panuje przekonanie, że w sztucznej inteligencji dużo ludzi jest albo po matematyce, fizyce czy informatyce, którzy wydają się być ścisłymi umysłami. Często zakłada się, że te osoby wiedzą, czym jest inteligencja i próbują jakoś skonstruować system, który będzie spełniał jej definicję. Niestety to nie jest prawda. To jest bardzo zaskakujące, ale właściwie nie wiemy, co to pojęcie oznacza.

Jedną definicję podał Alan Turing, który powiedział, że nie jesteśmy w stanie zdefiniować, co to jest inteligencja, w związku z tym, jeżeli postawimy panel ludzi i ci ludzie wchodzą w interakcje z maszyną i oni uznają, że ta maszyna jest inteligenta to znaczy, że jest inteligentna i tyle. Więc taka dosyć praktyczna definicja. Kiedyś bardzo ją lubiłem, bo mi się wydawało, że jest świetna, ale w pewnym momencie przestałem, kiedy zdałem sobie sprawę, jak łatwo jest oszukać człowieka, żeby myślał, że coś jest inteligentne. 

Definicja, która w tej chwili bardziej mi się podoba jest taka, że weźmy robota, system, który istnieje w świecie i nie ważne, czy jest w stanie nas oszukać, czy jest inteligentny czy nie, ale czy jest w stanie świat oszukać, że jest inteligentny. Czyli czy jest w stanie przetrwać w fizycznym świecie, zabezpieczyć sobie zasoby, uniknąć niebezpieczeństw itd.

To wydaje mi się ciekawsze, bo usuwa człowieka jako sędziego tego, czy coś jest inteligentne, a stawia fizyczny świat w tej roli. Dajmy na to, że jeżeli dany robot rozbije się, wpadnie do wody i koniec, to można powiedzieć, że robot nie przetrwał testu bojowego, więc nie jest inteligentny. Tylko to znowu nie podaje definicji inteligencji, tylko podaje jakiś sposób zmierzenia tego, czy coś jest inteligentne czy nie.

Nie wyraża tego, czym to właściwie jest. Problem wyrażenia inteligencji w terminach bardziej fundamentalnych rzeczy, które rozumiemy, jest w dużej mierze nierozwiązany. Jest kilka ciekawych prac naukowych, które próbują zdefiniować inteligencję jako optymalizację future entropy forces (sił entropijnych, które mają miejsce w przyszłości). To jest dosyć abstrakcyjne i podejrzewam, że większość czytelników nie będzie wiedziała, o co chodzi. Z drugiej strony można to łatwo sformułować w terminach predykcyjnych czy alokacji energii: agent istnieje w świecie, jest w stanie przewidzieć, co się będzie w tym świecie działo i postawić siebie w takiej roli, w której będzie w stanie skorzystać z tego, co się będzie w świecie działo.

Czyli dajmy na to, że agent jest w stanie przewidzieć, że w danym miejscu będzie dostępna energia czy pożywienie, ale że będzie to nie teraz, a w przyszłości i będzie w stanie pokierować swoim zachowaniem tak, żeby z tego zasobu móc kiedyś skorzystać. Można powiedzieć, że taki agent jest inteligentny. Ta definicja próbuje to zanurzyć w jakiś terminach dynamicznych. Mi osobiście się to bardzo podoba, ale nie jestem pewien, czy w klasycznych kółkach sztucznej inteligencji jest to popularne.

Tak naprawdę wśród tych naukowców, którzy w tej chwili nazywają siebie naukowcami od sztucznej inteligencji, większość dyskusji jest tak naprawdę zdefiniowana przez test Turinga. Czyli jeżeli jesteśmy w stanie dane zadanie wykonywać lepiej niż ludzie, oznacza, że system jest inteligentny. Ja nie lubię tej definicji. Powoduje to straszne nieporozumienia. Prasa będzie cytować, że wizja komputerowa została rozwiązana do ponad ludzkich możliwości.

System komputerowy wtedy jest w stanie wykonywać zadanie wizyjne lepiej niż ludzie, więc komputery widzą już lepiej niż ludzie i bardzo szybko ten skrót myślowy następuje. Jeżeli się wejdzie w szczegóły, to się okazuje, że owszem, lepiej niż ludzie, ale pod warunkiem, że jest konkretny zbiór testowy. Klasyczny przykład tego z ostatnich czasów – zbiór obrazów, który się nazywa ImageNet (14 mln obrazów, na których bada się zadanie klasyfikacji obrazów).

Głośno parę lat temu było, że komputer osiągnął lepszą wartość na jakiś miarach na tym zadaniu niż ludzie. Trzeba mieć świadomość, że np. bardzo duża część obrazów w tym zbiorze danych to są np. zdjęcia psów rozmaitych ras, które zostały skatalogowane i oznaczone nazwami tych ras. Teraz jeśli weźmiemy człowieka, który nie zna się na rasach psów, to jego wynik na tej klasyfikacji będzie nienajlepszy.

Natomiast system, który jest nauczony na tych obrazach, jest w stanie wykonać to zadanie lepiej. To naprawdę nie oznacza, że jeżeli teraz wezmę ten system wizyjny, wyrzucę gdzieś w dżungli to, że ten system będzie lepiej widział ode mnie, gdzie jest drapieżnik. Często pojawiają się nieporozumienia i wydaje mi się, że test Turinga to próba oszustwa. Powiedzieć, że coś jest inteligentne, bo udało mi się oszukać 5 ludzi, że to jest inteligentne.

To jest tak mniej więcej jak różnica między magią a iluzjonistą. Iluzjonista też jest w stanie przekonać publiczność, że jest magikiem, ale to nie znaczy, że jest magikiem. 

Kiedyś Watson bardzo mocno się zdziwił, że Holmes nie wie o tym, że to ziemia się kręci dookoła słońca, a nie na odwrót. Na co Holmes zapytał – a jaka jest różnica? Jak mi to pomaga żyć? Praktyczna inteligencja jest tematem bardzo zagadkowym.

To, co w tej chwili jesteśmy w stanie jednoznacznie stwierdzić, to na pewno nie jest tylko tzw. intelekt (podejście matematyczne, fizyczne), to jest pojęcie znacznie szersze. Są osoby, które nie potrafią nawet mnożyć. Tu był też ciekawy przykład podczas wojny. Nie dało się wtedy chodzić do szkoły, te osoby nie potrafiły nauczyć się podstawowych rzeczy jak np. mnożyć, ale były osobami bardzo inteligentnymi. Potrafiły wyciągać takie wnioski z różnych rzeczy, których nawet człowiek z tytułem profesora nie jest w stanie wyciągnąć.

Chociaż różnie to było. Bardziej chcę powiedzieć, że tytuł naukowy nie zawsze świadczy o czymś więcej niż tylko o posiadaniu jednego tytułu. Zanotowałem sobie, jak rozmawialiśmy na temat dzieci, jak one się uczą, że my jako ludzie (chociaż wiele osób ostatnio traci tę umiejętność) mamy takie coś jak refleksje, czyli potrafimy się zastanawiać i wyciągać pewne wnioski i następnie to wszystko abstrahować. Albo patrząc na jedno zjawisko, wiązać to zupełnie z innym. Dla obecnych algorytmów to jest bardzo skomplikowaną rzeczą.

Ja mam jeszcze jedną analogię, która będzie może prostsza do zrozumienia. Ludzka inteligencja to jest taka siła, która stale próbuje nas wypchnąć z jakiegoś koncepcyjnego pudełka, w którym jesteśmy zamknięci.

Zawsze, przynajmniej te osoby, które udało mi się poznać i które wydają mi się osobami inteligentnymi, to osoby, które stale poszukują, stale chcą się wydostać z jakiś ram, w których ich intelekt w danej chwili jest, bo wiedzą, że tak naprawdę gdzieś właściwy opis rzeczywistości znajduje się poza utartymi aksjomatami.

Natomiast to, co mamy w tej chwili w komputerach, to są algorytmy, które doskonale się czują w tych pudełkach, zostały w nich nauczone, doskonale w nich działają, ale absolutnie nie mają żadnej motywacji ani wiedzy, żeby chcieć się z tego pudełka koncepcyjnego wydostać. To jest dobra analogia tego, co mamy i czym się różni od tej cechy, którą nazywamy inteligencją u ludzi. 

Za moimi plecami jest taki napis: „Think outside the box”. Specjalnie sobie ten napis nakleiłem, bo codziennie jak przychodzę do tego samego biurka (nawet do 50 razy dziennie), przypominam sobie by zacząć myśleć trochę inaczej.

Z drugiej strony pojawia się kolejne pytanie – czym jest ten box? Za każdym razem kiedy wykraczasz poza granicę tego pierwszego pudełka, okazuje się, że jesteś w kolejnym. Gdzie jest to ostateczne pudełko? Czy tak naprawdę jest? Zostawiam nas z tą myślą.

Filip, bardzo dziękuję za ciekawą rozmowę. Myślę, że warto byłoby się spotkać jeszcze raz za jakiś czas i poruszyć kolejny wątek, być może bardziej wizjonerski. To są trudne tematy, bo nie ma jednoznacznej odpowiedzi, są to bardziej rozważania.

Z drugiej strony są interesujące i ważne, bo żyjemy w czasach, kiedy jest coraz większe zapotrzebowanie na rozwiązania, o których rozmawialiśmy. Rozwiązania takie pudełkowe mają sens w tej chwili, bo działają. Potrafią rozwiązywać te rzeczy, które rozwiązują, ale będzie moment, kiedy to będzie za mało. Żeby się wyróżnić, zrobić coś więcej, to trzeba pójść dalej. Wtedy takie wizjonerskie rozważania zaczynają się wdrażać w inny sposób prawdopodobnie niż teraz. 

Cała przyjemność po mojej stronie i bardzo przyjemnie było porozmawiać. Bardzo chętnie, jeżeli będziesz miał ochotę, to w przyszłości mogę jeszcze trochę czasu poświęcić. 

Bardzo Ci dziękuję, że udało Ci się dotrwać do końca. Wiem, że rozmowa była dłuższa niż zwykle. Też mieliśmy dylematy, czy warto przedłużać czy nie. Zdecydowaliśmy, że tak. Mało tego, mam nadzieję, że nagramy jeszcze kolejne tematy.

Proszę podziel się opinią czy warto? Czy interesuje Cię poruszanie takich wątków, dotyczących przyszłości, skomplikowanych procesów zachodzących w naszej głowie? Czym jest inteligencja? Albo np. taki artykuł, który był też poruszony na blogu Filipa, m.in. co się stanie, jeżeli się przenosisz w przeszłość?

Nadal posiadasz tę całą wiedzę, całe doświadczenie, ale czy będziesz w stanie cokolwiek zmienić? Co będziesz chciał zmienić? Bardzo ciekawy artykuł. Na sam koniec, chciałbym zostawić Cię z pytaniem, które zadałem Filipowi – jak myślisz, czym jest inteligencja? 

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ć.

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *