Ile zdjęć musi zobaczyć komputer, żeby nauczyć się rozpoznawania kotów? Wywiad z szefem Google Research
Emmanuel Mogenet jest szefem Google Research - oddziału w Zurychu, który zajmuje się sztuczną inteligencją i samouczeniem maszyn. Rozmawiam z nim o tym, że komputery są głupie, jak to się dzieje, że rozpoznajemy koty i jak można usprawnić zamawianie pizzy.
07.11.2016 | aktual.: 07.11.2016 12:31
Joanna Sosnowska: Zapowiadał pan kiedyś, że chce nauczyć komputery zdrowego rozsądku. Jak można nauczyć rozsądku urządzenia, które nie mają za sobą milionów lat ewolucji?
Emmanuel Mogenet: Zdrowy rozsądek nie opiera się wyłącznie na genach. Mam w ręku butelkę i trzymam ją nad ziemią. Co się stanie, gdy ją upuszczę?
Upadnie.
Oczywiście. Pewnie nawet masz już w głowie obraz upadku i jego konsekwencji. Ale ta wiedza nie pochodzi z genów, nie jest wrodzona.
To doświadczenie i wiedza.
Właśnie. Komputer nie będzie wiedział, że butelka upadnie, bo nie ma żadnych doświadczeń ze świata. Przez “nauczenie komputerów rozsądku” miałem na myśli to, że można spróbować zebrać wszystkie zdjęcia jakie tylko mamy dostępne w internecie, wszystkie filmy z YouTube'a, pokazać je komputerom z wykorzystaniem technologii rozpoznawania obrazów i spróbować wydobyć esencję. Nie tylko to, że na zdjęciu jest kot, ulica i słoń, ale jak obiekty wchodzą ze sobą w interakcję. Np. butelka jest na stole, siedzę na krześle. Gdybyśmy nakarmili komputery taką dawką wiedzy, zaczęłyby "zdawać sobie sprawę" z tego, co w świecie jest możliwe, co jest prawdopodobne, a co nie wydarzy się nigdy. Wszyscy teraz siedzimy na krzesłach - to całkiem popularne zjawisko, prawda? Ale krzesła siedzące na ludziach - wręcz przeciwnie. Można pewnie spokojnie na palcach policzyć, ile takich zdjęć znajdziemy w internecie. Jeśli więc pokażemy wszystkie te zdjęcia komputerowi, szybko zda sobie sprawę, że ludzie mają tendencję do siadania na krzesłach. Maszyny są głupie, trzeba im wszystko tłumaczyć w najmniejszych szczegółach, krok po kroku.
Głupie?
Jeśli poproszę cię o rozpoznanie na zdjęciu kota, zrobisz to w ułamku sekundy bez chwili zastanowienia. Komputery tego nie potrafią. Ale rozpoznając kota, nie będziesz w stanie powiedzieć, jak to zrobiłaś. Tak samo, gdybym poprosił o wyjaśnienie, jak to się dzieje, że chodzisz. Nie myślisz, jak - to się po prostu dzieje. Spróbuj wyjaśnić robotowi, jak się chodzi. To koszmar! Machine learning jest nowym sposobem uczenia poprzez pokazywanie przykładów.
Chwila, wyjaśnijmy, co to jest machine learning.
To nowy sposób programowania komputerów. Do tej pory trzeba było wprowadzać niesamowicie szczegółowe instrukcje. To tak, jakby uczyć trzylatka, jak upiec ciasto. Trzeba mu tłumaczyć po kolei: to jest łyżka, weź łyżkę, nabierz nią mąkę z tego pudełka, przełóż ją do tej miski. Tak programowało się do tej pory. I to działa dla pewnych zastosowań - np. dużych obliczeń.
To jak nauczyć komputer rozpoznawania kotów?
Mówimy im: tu masz milion zdjęć, jest na nich kot. Tu masz kolejny milion zdjęć, na nich kota nie ma. Powtarzamy to wielokrotnie. I powoli komputer zapamiętuje zestaw treningowy. Jeśli pokażesz mu zdjęcie, które było wykorzystywane podczas tego szkolenia, będzie pamiętać, że już je widział. Magia zaczyna się dziać w momencie, kiedy komputer dość długo ćwiczył i w końcu trafia na zdjęcie, którego nigdy nie widział. I podaje prawidłową odpowiedź.
Działa to dzięki sieciom neuronowym.
Zaczynamy z naprawdę prostymi danymi - z pikselami. I idziemy w górę, gdzie piksele układają się w kształty. A potem kształty zaczynają być rozpoznawalne. Następny poziom to poziom zrozumienia semantycznego - czym jest krzesło albo kot. I tu komputery już nie dochodzą.
Ludzie są w stanie wyobrazić sobie wiele rodzajów krzeseł i nie pomylą krzesła ze stołkiem.
W machine learning nie potrafimy tego jeszcze rozwiązać. Nie potrafimy nauczyć maszyn wyciągania części wspólnych, esencji. To zupełnie coś innego niż reprezentacje, które ty albo ja mamy w umyśle. Komputery znajdują sposoby na tłumaczenie sobie świata, które mogą nie przystawać do rzeczywistości. Sposób, w jaki komputer uczy się i wyciąga wnioski o krzesłach, jest zupełnie inny od naszego. Trudno nam zrozumieć, co dzieje się tak głęboko w sieciach neuronowych. To w niczym nie przypomina działania ludzkiego mózgu.
A uda nam się kiedyś stworzyć komputer, który będzie przypominać ludzki mózg?
Moim zdaniem jesteśmy od tego bardzo daleko. Sieci neuronowe działają trochę jak maszynka do mielenia - wkładasz coś z jednej strony, z drugiej wychodzi przekształcona informacja: “to mała dziewczynka ze swoim psem”. A ludzie postrzegają świat w inny sposób - mamy jeszcze intencje, plany, marzenia, strumień świadomości. Komputery nie mają planów ani intencji. Możemy zbudować komputer, który pod różnymi względami będzie przypominać człowieka: taki, który potrafi grać w GO, który rozpozna kota, który tłumaczy z rosyjskiego na angielski. Do niedawna tylko ludzie to potrafili. Ale ty dodatkowo potrafisz jeszcze chodzić, mówić po angielsku, rozpoznać kota i wnioskować. Gdybyś teraz zobaczyła koci ogon wystający zza drzwi, chciałabyś wstać, zajrzeć i sprawdzić, czy to faktycznie kot. Dziś nie ma opcji, żebyśmy zbudowali podobny komputer. Naukowcy tam dotrą, ale zakładam, że za jakieś 50-100 lat. A kto wie, co wydarzy się w międzyczasie.
Wróćmy na ziemię. Machine learning jest już powszechnie wykorzystywane.
W przypadku Google'a główne zastosowanie to np. aplikacja Zdjęcia Google. Wpisujesz słowo “zebra”, system przeszukuje twoje zasoby zdjęć i pokazuje te, na których jest zebra. Kolejne to Tłumacz. Ostatnio wprowadziliśmy tłumaczenie z angielskiego na chiński i na odwrót, w całości oparte na machine
learning. Nie wprowadzaliśmy słownika słowo po słowie. Komputer sam się nauczył, jak tłumaczyć z angielskiego na chiński. I nagle poziom tłumaczenia skoczył nieprawdopodobnie w górę. No i oczywiście wyszukiwarka - tam prawie wszędzie korzystamy z systemów uczących się. Inny pomysł - gdyby poprzez ML wykorzystywać dane z czujników w telefonie – dźwięki otoczenia, akcelerometr, porę dnia, żeby zdecydować, czy teraz jest dobry moment na wyświetlenie danego powiadomienia, telefony mogłyby być mniej irytujące.
No nie wiem, nie chciałabym, żeby to telefon dyktował mi, kiedy ktoś może się ze mną połączyć.
A ja myślę, że to przydatne. Np. oglądam coś na telefonie albo gram. A tu nagle wyskakuje powiadomienie - takie przerywanie naprawdę jest nieprzyjemne. A jeśli telefon rozumie twoje otoczenie - gdzie jesteś, co robisz, jaki jest poziom hałasu? Możesz być w głośnym miejscu, dostać powiadomienie i
zwyczajnie go nie słyszeć. I orientujesz się nagle dwie godziny później, że dostałaś maila. Gdyby telefon był na tyle mądry, żeby stwierdzić, że “ta osoba jest w tramwaju albo w korku, nie ma sensu wyświetlać powiadomienia teraz, poczekam aż będzie cicho” - może byłoby lepiej. Staramy się zrozumieć okoliczności, w jakich znajduje się użytkownik, żeby wyświetlić mu właściwe powiadomienie we właściwym czasie.
I jest jeszcze asystent w nowych smartfonach Pixel.
To nasze główne przedsięwzięcie. Jesteśmy na początku drogi. Teraz jeśli chcesz zamówić pizzę, możesz zapytać Google'a, gdzie jest najbliższa pizzeria i on ci odpowie, dzięki wyszukiwaniu głosowemu. Ale potem jesteś zdana na siebie. Musisz sama wybrać pizzerię, sprawdzić menu, zadzwonić i złożyć
zamówienie. A chcemy dojść do chwili, w której mówisz po prostu “OK Google, mam ochotę na pizzę”. A Google odpowie „muszę wiedzieć więcej”. I tu odbywa się naturalna rozmowa między tobą a twoim inteligentnym asystentem, żeby ustalić, np. na co masz ochotę, kiedy chcesz ją dostać, co ma na niej być i ile maksymalnie chcesz zapłacić. W końcu Asystent Google powie “OK, mogę zamawiać twoją pizzę. Potwierdzasz?”. I reszta dzieje się sama. Ale trzeba też pamiętać, że w trakcie kompletowania zamówienia może nagle przyjść ci do głowy zapytać “Ok Google, jaka jest populacja Japonii?”. I Google musi wiedzieć, że to nie ma nic wspólnego z zamawianiem pizzy.
No tak, w końcu nie chciałabym zamówić pizzy dla całej populacji Japonii.
Wcześniej gdy rozmawiałaś z Google'em, w każdym kolejny pytaniu wszystko trzeba było powtarzać osobno. A teraz rozumiemy pytanie w kontekście - tego co robisz albo tego, o co pytałaś wcześniej. Ilekroć zapytasz o coś asystenta, on będzie starał się zrozumieć to nie jako samodzielną wypowiedź, ale w kontekście poprzednich.
Rozpoznawanie kotów albo zamawianie pizzy. To mało przydatne zastosowania...
Oczywiście to dopiero początek. W wielu zawodach, zwłaszcza w gospodarkach opartych na informacji, machine learning będzie mogło pomóc.
Jak?
Przykład: infrastruktura komputerowa czasem się psuje. Więc jeśli jesteś technikiem na dyżurze, w środku nocy możesz dostać telefon “Wstawaj, system nie działa”. I trzeba wstać i naprawiać. 10 lat temu byłem członkiem takiego zespołu. I najtrudniejszym zadaniem zawsze było znalezienie przyczyny, przez którą system nie działa. To może zająć wiele godzin. A potem trzeba problem naprawić. Dziś załatwiamy to za pomocą machine learning. Dostajesz wiadomość, że coś nie działa, wstajesz, ale na ekranie komputera masz już wiadomość “Przeanalizowaliśmy sprawę, wygląda na to, że problem został wywołany przez to i to”. Człowiek sprawdza, potwierdza, naprawia błąd i wraca do spania. Machine learning, systemy uczące się, to taki egzoszkielet dla mózgu. Zwiększa jego możliwości. Nie sprawia, że człowiek staje się niepotrzebny. Sprawia, że człowiek może więcej osiągnąć.