Domeny aplikacji

https://aie24.pl/

Technologia robotyczna już przenika nasz świat i ma potencjał, aby poprawić naszą niezależność, zdrowie i produktywność. Oto kilka przykładowych aplikacji.

Opieka domowa: Roboty zaczęły wchodzić do domu, aby opiekować się osobami starszymi i osobami z niepełnosprawnością ruchową, pomagając im w codziennych czynnościach i umożliwiając im bardziej niezależne życie. Należą do nich wózki inwalidzkie i ramiona montowane na wózku inwalidzkim, takie jak ramię Kinova. Mimo że na początku są obsługiwane bezpośrednio przez człowieka, roboty te zyskują coraz większą autonomię. Na horyzoncie znajdują się roboty obsługiwane przez interfejsy mózg-maszyna, które, jak wykazano, umożliwiają osobom z tetraplegią używanie ramienia robota do chwytania przedmiotów, a nawet karmienia się. Powiązane z nimi są protezy kończyn, które inteligentnie reagują na nasze działania, oraz egzoszkielety, które dają nam nadludzką siłę lub umożliwiają chodzenie ludziom, którzy nie mogą kontrolować swoich mięśni od pasa w dół. Roboty osobiste mają pomagać nam w codziennych zadaniach, takich jak sprzątanie i organizowanie, uwalniając nasz czas. Chociaż manipulacja wciąż musi przejść, zanim będzie mogła bezproblemowo działać w nieuporządkowanych, nieustrukturyzowanych środowiskach ludzkich, nawigacja poczyniła pewne postępy. W szczególności wiele domów już korzysta z mobilnego odkurzacza robota, takiego jak ten na Rysunku 26.33(b). Opieka zdrowotna: Roboty wspomagają i wspomagają chirurgów, umożliwiając bardziej precyzyjne, minimalnie inwazyjne i bezpieczniejsze procedury z lepszymi wynikami dla pacjentów. Robot chirurgiczny Da Vinci  jest obecnie szeroko stosowany w szpitalach w Stanach Zjednoczonych.

Usługi: Roboty mobilne pomagają w budynkach biurowych, hotelach i szpitalach. Savioke umieścił roboty w hotelach, które dostarczają produkty takie jak ręczniki czy pasta do zębów do Twojego pokoju. Roboty Helpmate i TUG przewożą żywność i lekarstwa w szpitalach , podczas gdy robot Moxi firmy Diligent Robotics pomaga pielęgniarkom w zapleczu logistycznym. Co-Bot wędruje po korytarzach Uniwersytetu Carnegie Mellon, gotowy zaprowadzić Cię do czyjegoś biura. Możemy również używać robotów teleobecności, takich jak Beam, aby zdalnie uczestniczyć w spotkaniach i konferencjach lub meldować się u naszych dziadków.

Autonomiczne samochody: Niektórzy z nas są czasami rozpraszani podczas jazdy przez telefony komórkowe, SMS-y lub inne czynniki. Smutny wynik: ponad milion osób ginie co roku w wypadkach drogowych. Co więcej, wielu z nas spędza dużo czasu na prowadzeniu samochodu i chciałoby odzyskać część tego czasu. Wszystko to doprowadziło do ogromnych wysiłków na rzecz wdrażania samochodów autonomicznych. Prototypy istnieją od lat 80. XX wieku, ale postęp był stymulowany przez DARPA Grand Challenge 2005, wyścig pojazdów autonomicznych na 200 trudnych kilometrach nieprzećwiczonego pustynnego terenu. Pojazd Stanleya ze Stanforda ukończył kurs w mniej niż siedem godzin, zdobywając nagrodę w wysokości 2 milionów dolarów i miejsce w Narodowym Muzeum Historii Amerykańskiej.  W 2009 roku Google rozpoczęło projekt autonomicznej jazdy (z udziałem wielu badaczy, którzy pracowali nad Stanley i BOSS), który teraz został wydzielony jako Waymo. W 2018 roku Waymo rozpoczął testy bez kierowcy (bez kierowcy) na przedmieściach Pheonix w Arizonie. W międzyczasie inne firmy zajmujące się jazdą autonomiczną i firmy współdzielące przejazdy pracują nad rozwojem własnej technologii, podczas gdy producenci samochodów sprzedają samochody z coraz większą inteligencją wspomagającą, takie jak asystent kierowcy Tesli, który jest przeznaczony do jazdy po autostradach. Inne firmy skupiają się na zastosowaniach innych niż autostrady, w tym na kampusach uniwersyteckich i społecznościach emerytów. Jeszcze inne firmy koncentrują się na zastosowaniach niepasażerskich, takich jak przewozy ciężarowe, dostawa artykułów spożywczych i parkowanie samochodu.

Rozrywka: Disney używa robotów (pod nazwą animatronika) w swoich parkach od 1963 roku. Początkowo roboty te były ograniczone do ręcznie zaprojektowanych, otwartych pętli, niezmiennego ruchu (i mowy), ale od 2009 roku wersja o nazwie autonomatronika może generować działania autonomiczne. Roboty przybierają również postać inteligentnych zabawek dla dzieci; na przykład Cozmo Anki gra z dziećmi i może walić w stół z frustracją, gdy przegrywa. Wreszcie, quadrotory, takie jak Skydio R1 , działają jako osobiści fotografowie i kamerzyści, podążając za nami, aby robić zdjęcia akcji podczas jazdy na nartach lub rowerze.

Eksploracja i niebezpieczne środowiska: Roboty dotarły tam, gdzie wcześniej nie dotarł żaden człowiek, w tym na powierzchni Marsa. Ramiona robotów pomagają astronautom rozmieszczać i wyszukiwać satelity oraz budować Międzynarodową Stację Kosmiczną. Roboty pomagają także w eksploracji pod wodą. Są one rutynowo używane do pozyskiwania map zatopionych statków.  W 1996 roku zespół naukowców wypuścił robota na nogach do krateru aktywnego wulkanu, aby zebrać dane do badań klimatycznych. Roboty stają się bardzo skutecznymi narzędziami do gromadzenia informacji w domenach, do których dostęp jest trudny (lub niebezpieczny). Roboty pomagały ludziom w usuwaniu odpadów nuklearnych, w szczególności w Three Mile Island, Czarnobylu i Fukushimie. Roboty były obecne po upadku World Trade Center, gdzie weszły w struktury uważane za zbyt niebezpieczne dla poszukiwań i ratowania ludzi załogi. Również tutaj roboty te są początkowo wdrażane za pomocą teleoperacji, a wraz z postępem technologicznym stają się coraz bardziej autonomiczne, z ludzkim operatorem odpowiedzialnym, ale nie musi określać każdego pojedynczego polecenia. Przemysł: Większość dzisiejszych robotów jest wdrażana w fabrykach, automatyzując zadania, które są trudne, niebezpieczne lub nudne dla ludzi. (Większość robotów fabrycznych znajduje się w fabrykach samochodowych.) Automatyzacja tych zadań jest pozytywna pod względem wydajnej produkcji tego, czego potrzebuje społeczeństwo. Jednocześnie oznacza to również odejście od pracy niektórych pracowników ludzkich. Ma to ważne implikacje polityczne i ekonomiczne – potrzebę przekwalifikowania i edukacji, potrzebę sprawiedliwego podziału zasobów itp.

Architektury subsumpcji

https://aie24.pl/

Architektura subsumpcji jest strukturą do składania sterowników reaktywnych z automatów skończonych. Węzły w tych maszynach mogą zawierać testy dla pewnych zmiennych czujnika, w którym to przypadku ślad wykonania automatu skończonego jest uzależniony od wyniku takiego testu. Łuki mogą być oznaczone komunikatami, które będą generowane podczas ich przechodzenia i które są wysyłane do silników robota lub do innych maszyn skończonych. Dodatkowo automaty skończone posiadają wewnętrzne liczniki czasu (zegary), które kontrolują czas potrzebny do przebycia łuku. Powstałe maszyny nazywane są rozszerzonymi maszynami skończonymi (AFSM), gdzie rozszerzenie odnosi się do użycia zegarów. Przykładem prostego AFSM jest czterostanowa maszyna, o której właśnie mówiliśmy, pokazana na rysunku (b).

Ten AFSM implementuje sterownik cykliczny, którego wykonanie w większości nie opiera się na sprzężeniu zwrotnym z otoczenia. Faza wymachu do przodu jednak opiera się na sprzężeniu zwrotnym z czujnika. Jeśli noga utknęła, co oznacza, że ​​nie udało mu się wykonać zamachu do przodu, robot cofa nogę, podnosi ją nieco wyżej i ponownie próbuje wykonać zamach do przodu. W ten sposób kontroler jest w stanie reagować na nieprzewidziane okoliczności wynikające z interakcji robota i jego otoczenia. Architektura subsumcji oferuje dodatkowe elementy podstawowe do synchronizacji AFSM i łączenia wartości wyjściowych wielu, potencjalnie sprzecznych AFSM. W ten sposób umożliwia programiście komponowanie coraz bardziej złożonych sterowników w sposób oddolny. W naszym przykładzie możemy zacząć od AFSM dla poszczególnych odnóg, a następnie AFSM dla  koordynowanie wielu nóg. Ponadto możemy zaimplementować zachowania wyższego poziomu, takie jak unikanie kolizji, które może obejmować cofanie się i skręcanie. Pomysł komponowania sterowników robotów z AFSM jest dość intrygujący. Wyobraź sobie, jak trudne byłoby wygenerowanie tego samego zachowania za pomocą dowolnego algorytmu planowania ścieżki w przestrzeni konfiguracji opisanego w poprzedniej sekcji. Najpierw potrzebowalibyśmy dokładnego modelu terenu. Przestrzeń konfiguracyjna robota z sześcioma nogami, z których każda jest napędzana przez dwa niezależne silniki, ma łącznie 18 wymiarów (12 wymiarów dla konfiguracji nóg oraz sześć dla lokalizacji i orientacji robota względem otoczenia). Nawet gdyby nasze komputery były wystarczająco szybkie, aby znaleźć ścieżki w tak wielowymiarowych przestrzeniach, musielibyśmy się martwić o nieprzyjemne efekty, takie jak zjeżdżanie robota po zboczu. Z powodu takich efektów stochastycznych pojedyncza ścieżka przez przestrzeń konfiguracyjną byłaby prawie na pewno zbyt krucha, a nawet regulator PID może nie poradzić sobie z takimi nieprzewidzianymi okolicznościami. Innymi słowy, celowe generowanie zachowań ruchowych jest w niektórych przypadkach po prostu zbyt złożonym problemem dla współczesnych algorytmów planowania ruchu robotów. Niestety architektura subsumpcji ma swoje własne problemy. Po pierwsze, AFSM są napędzane przez surowe dane wejściowe z czujnika, układ, który działa, jeśli dane z czujnika są wiarygodne i zawierają wszystkie informacje niezbędne do podejmowania decyzji, ale zawodzi, jeśli dane z czujników muszą być integrowane w nietrywialny sposób w czasie. Kontrolery w stylu subsumpcji były zatem stosowane głównie do prostych zadań, takich jak podążanie za ścianą lub poruszanie się w kierunku widocznych źródeł światła. Po drugie, brak namysłu utrudnia zmianę celów robota. Robot z architekturą subsumpcji zwykle wykonuje tylko jedno zadanie i nie ma pojęcia, jak modyfikować swoje elementy sterujące, aby dostosować je do różnych celów . Po trzecie, w wielu rzeczywistych problemach polityka, której chcemy, jest często zbyt złożona, aby ją jednoznacznie zakodować. Pomyśl o przykładzie , gdzie autonomiczny samochód musi negocjować zmianę pasa z kierowcą. Możemy zacząć od prostej polityki, która idzie na pas docelowy. Ale kiedy testujemy samochód, dowiadujemy się, że nie każdy kierowca na docelowym pasie zwolni, aby wpuścić samochód. Możemy wtedy dodać trochę więcej złożoności: sprawić, by samochód ruszył w kierunku docelowego pasa, poczekać na formularz odpowiedzi kierowcy na tym pasie, a następnie kontynuuj lub cofaj się z powrotem. Ale potem testujemy samochód i zdajemy sobie sprawę, że popychanie musi nastąpić z inną prędkością w zależności od prędkości pojazdu na docelowym pasie, od tego, czy na docelowym pasie znajduje się inny pojazd, od tego, czy jest jakiś pojazd. za samochodem na początku i tak dalej. Liczba warunków, które musimy wziąć pod uwagę, aby określić właściwy kierunek działania, może być bardzo duża, nawet dla tak zwodniczo prostego manewru. To z kolei stawia wyzwania skalowalności dla architektur opartych na subsumpcji. Podsumowując, robotyka jest złożonym problemem z wieloma podejściami: deliberatywnym, reaktywnym lub ich mieszanką; oparte na fizyce, modelach kognitywnych, danych lub ich mieszaninie. Właściwe podejście jest nadal przedmiotem debaty, badań naukowych i umiejętności inżynieryjnych.

Alternatywne szkielety robotów

https://aie24.pl/

Do tej pory przyjęliśmy pogląd na robotykę w oparciu o pojęcie definiowania lub uczenia się funkcji nagrody, a robot zoptymalizował tę funkcję (czy to poprzez planowanie, czy uczenie się), czasami w koordynacji lub współpracy z ludźmi. Jest to przemyślany pogląd na robotykę, który należy skontrastować z poglądem reaktywnym.

Kontrolery reaktywne

W niektórych przypadkach łatwiej jest ustalić dobrą politykę dla robota niż modelować świat i planować. Wtedy zamiast racjonalnego agenta mamy agenta odruchowego. Na przykład wyobraź sobie robota z nogami, który próbuje podnieść nogę nad przeszkodą. Moglibyśmy dać temu robotowi regułę, która mówi, że podnieś nogę na niewielką wysokość h i przesuń ją do przodu, a jeśli noga napotka przeszkodę, cofnij ją i zacznij ponownie na większej wysokości. Można powiedzieć, że h modeluje pewien aspekt świata, ale możemy też myśleć o h jako o zmiennej pomocniczej sterownika robota, pozbawionej bezpośredniego znaczenia fizycznego. Jednym z takich przykładów jest robot sześcionożny (sześcionóg),  zaprojektowany do poruszania się po trudnym terenie. Czujniki robota są niewystarczające do uzyskania dokładnych modeli terenu do planowania ścieżki. Co więcej, nawet gdybyśmy dodali bardzo precyzyjne kamery i dalmierze, 12 stopni swobody (dwa na każdą nogę) sprawiłoby, że powstały problem planowania ścieżki byłby trudny obliczeniowo. Niemniej jednak możliwe jest bezpośrednie określenie sterownika bez wyraźnego modelu środowiska. (Widzieliśmy już to z kontrolerem PD, który był w stanie utrzymać złożone ramię robota na cel bez wyraźnego modelu dynamiki robota.) W przypadku robota sześcionógowego najpierw wybieramy chód, czyli wzór ruchu kończyn. Jeden statycznie stabilny chód polega na przesunięciu prawej przedniej, prawej tylnej i lewej środkowej nogi do przodu (utrzymując pozostałe trzy nieruchome), a następnie przesuń pozostałe trzy. Ten chód sprawdza się dobrze na płaskim terenie. Na nierównym terenie przeszkody mogą uniemożliwić ruch nogi do przodu. Ten problem można przezwyciężyć za pomocą niezwykle prostej zasady kontroli: gdy ruch nogi do przodu jest zablokowany, po prostu cofnij ją, unieś wyżej i spróbuj ponownie.

Zasady uczenia się bezpośrednio przez naśladownictwo

https://aie24.pl/

Alternatywą jest ominięcie funkcji kosztów i bezpośrednie poznanie pożądanej polityki dotyczącej robotów. W naszym przykładzie z samochodem demonstracje człowieka tworzą wygodny zestaw danych stanów oznaczonych jako działanie, które robot powinien wykonać w każdym stanie: D = f{(xi ,ui)}. Robot może uruchomić nadzorowane uczenie się, aby dopasować się do polityki: π : x |->  u i realizuj tę politykę. Nazywa się to naśladownictwem lub klonowaniem behawioralnym. Wyzwaniem przy takim podejściu jest uogólnienie na nowe państwa. Robot nie wie, dlaczego działania w jego bazie zostały oznaczone jako optymalne. Nie ma reguły przyczynowej; wszystko, co może zrobić, to uruchomić nadzorowany algorytm uczenia się, aby spróbować nauczyć się polityki, która uogólni się na nieznane stany. Nie ma jednak gwarancji, że uogólnienie będzie poprawne. Projekt autonomicznego samochodu ALVINN wykorzystał to podejście i odkrył, że nawet podczas startu ze stanu w D, π popełni drobne błędy, które zepchną samochód z zademonstrowanej trajektorii. Tam π wystąpi większy błąd, który jeszcze bardziej zepchnie samochód z pożądanego kursu. Możemy rozwiązać ten problem w czasie szkolenia, jeśli przełożymy zbieranie etykiet i uczenie się: start z demonstracją, naucz się polityki, a następnie wprowadź tę politykę i zapytaj ludzi, jakie działania podjąć w każdym stanie po drodze, a następnie powtórz. Następnie robot uczy się, jak korygować swoje błędy, gdy odbiega od pożądanych działań człowieka. Alternatywnie możemy rozwiązać ten problem, wykorzystując uczenie się przez wzmacnianie. Robot może dopasować model dynamiki oparty na demonstracjach, a następnie wykorzystać optymalne sterowanie do wygenerowania polityki, która optymalizuje trzymanie się blisko demonstracji. Wersja tego została wykorzystana do wykonywania bardzo wymagających manewrów na poziomie eksperta w małym helikopterze sterowanym radiowo (patrz Rysunek 23.9(b)). System DAGGER (Agregacja danych) zaczyna się od demonstracji przez człowieka. Na tej podstawie uczy się polityki π1 i wykorzystuje ją do wygenerowania zbioru danych D. Następnie z D generuje nową politykę π2, która najlepiej imituje oryginalne dane ludzkie. To się powtarza i przy n-tej iteracji używa πn do wygenerowania większej ilości danych, które mają być dodane do D, które jest następnie używane do utworzenia πn+1. Innymi słowy, w każdej iteracji system zbiera nowe dane w ramach bieżącej polityki i trenuje następną politykę, korzystając ze wszystkich zebranych do tej pory danych. Powiązane najnowsze techniki wykorzystują trening kontradyktoryjny: naprzemiennie szkolą klasyfikatora w celu rozróżnienia między wyuczoną polityką robota a demonstracjami człowieka i szkolą nową politykę dotyczącą robotów poprzez uczenie się wzmacniające, aby oszukać klasyfikatora. Te postępy umożliwiają robotowi radzenie sobie ze stanami bliskimi demonstracji, ale uogólnienie na stany odległe lub na nową dynamikę jest w toku. Nauczanie interfejsów a problem korespondencji. Do tej pory wyobrażaliśmy sobie przypadek autonomicznego samochodu lub autonomicznego helikoptera, w których demonstracje ludzi wykorzystują te same czynności, które robot może wykonać sam: przyspieszanie, hamowanie i kierowanie. Ale co się stanie, jeśli zrobimy to do zadań takich jak sprzątanie stołu kuchennego? Mamy tu dwie możliwości: albo osoba demonstruje przy użyciu własnego ciała, gdy robot patrzy, albo osoba fizycznie kieruje efektorami robota. Pierwsze podejście jest atrakcyjne, ponieważ przychodzi naturalnie użytkownikom końcowym. Niestety, boryka się z problemem korespondencji: jak odwzorować ludzkie działania na działania robota. Ludzie mają inną kinematykę i dynamikę niż roboty. Nie tylko utrudnia to przełożenie lub ponowne ukierunkowanie ruchu człowieka na ruch robota (np. przekierowanie pięciopalcowego uchwytu człowieka na dwupalcowy uchwyt robota), ale często strategia wysokiego poziomu, której może użyć dana osoba, nie jest odpowiednia robot. Drugie podejście, w którym człowiek-nauczyciel ustawia efektory robota we właściwych pozycjach, nazywa się nauczaniem kinestetycznym. Ludziom nie jest łatwo uczyć w ten sposób, zwłaszcza robotów z wieloma stawami. Nauczyciel musi koordynować wszystkie stopnie swobody, prowadząc ramię przez zadanie. Naukowcy zbadali zatem alternatywy, jak demonstrowanie klatek kluczowych w przeciwieństwie do ciągłych trajektorii, a także użycie programowania wizualnego, aby umożliwić użytkownikom końcowym programowanie prymitywów dla zadania, zamiast demonstrowania programowania wizualnego od podstaw (rysunek 26.31). Czasami oba podejścia są połączone.

Nauka preferencji: funkcje kosztów uczenia się

https://aie24.pl/

Wyobraź sobie, że użytkownik końcowy pokazuje robotowi, jak wykonać zadanie. Na przykład prowadzą samochód w sposób, w jaki chcieliby, aby był prowadzony przez robota. Czy możesz wymyślić sposób, w jaki robot wykorzysta te działania — nazywamy je „demonstracjami” — aby dowiedzieć się, jaką funkcję kosztów powinien zoptymalizować? Właściwie już widzieliśmy odpowiedź na to. Tam konfiguracja była nieco inna: inna osoba podejmowała działania w tej samej przestrzeni co robot, a robot musiał przewidzieć, co ta osoba zrobi. Ale jedną z technik, którą przeszliśmy do tworzenia tych prognoz, było założenie, że ludzie działają w celu głośnej optymalizacji pewnej funkcji kosztu JH, a my możemy wykorzystać ich bieżące działania jako dowód na to, jaka to funkcja kosztu. Tutaj możemy zrobić to samo, tyle że nie w celu przewidywania ludzkich zachowań w przyszłości, ale raczej uzyskania funkcji kosztu, którą sam robot powinien zoptymalizować. Jeśli dana osoba jeździ defensywnie, funkcja kosztów, która wyjaśni jej działania, będzie kładła duży nacisk na bezpieczeństwo, a mniej na wydajność. Robot może przyjąć tę funkcję kosztów jako własną i zoptymalizować ją podczas prowadzenia samego samochodu. Robotycy eksperymentowali z różnymi algorytmami, aby to wnioskowanie o kosztach było możliwe do wykonania obliczeniowego. Na rysunku 26.29 widzimy przykład uczenia robota, aby wolał pozostawać na drodze niż pokonywać trawiasty teren. Tradycyjnie w takich metodach funkcję kosztu przedstawiano jako połączenie ręcznie wykonanych funkcji, ale w ostatnich pracach badano również, jak ją przedstawić za pomocą głębokiej sieci neuronowej, bez inżynierii funkcji. Istnieją inne sposoby wprowadzania danych przez daną osobę. Osoba może używać języka zamiast demonstracji, aby poinstruować robota. Osoba może zachowywać się jak krytyk, obserwując robota wykonującego zadanie w jeden (lub na dwa sposoby), a następnie mówiąc, jak dobrze zadanie zostało wykonane (lub który sposób był lepszy) lub dając radę, jak poprawić.

Nauka robienia tego, czego chcą ludzie

https://aie24.pl/

nagrody robota. Ramy racjonalnych agentów i związane z nimi algorytmy redukują problem generowania dobrego zachowania do określenia dobrej funkcji nagrody. Ale w przypadku robotów, podobnie jak w przypadku wielu innych agentów AI, ustalenie właściwych kosztów jest nadal trudne. Weźmy na przykład samochody autonomiczne: chcemy, aby dojechały do ​​celu, były bezpieczne, jeździły wygodnie dla swoich pasażerów, przestrzegały przepisów ruchu drogowego itp. Projektant takiego systemu musi pogodzić się z tymi różnymi składnikami funkcji kosztowej. Zadanie projektanta jest trudne, ponieważ roboty budowane są z myślą o użytkownikach końcowych, a nie każdy użytkownik końcowy jest taki sam. Wszyscy mamy różne preferencje co do tego, jak agresywnie chcemy, aby nasz samochód jeździł itp. Poniżej zbadamy dwie alternatywy, aby spróbować dopasować zachowanie robota do tego, czego faktycznie chcemy, aby robot robił. Pierwszym z nich jest nauczenie się funkcji kosztu na podstawie danych wejściowych człowieka. Drugim jest ominięcie funkcji kosztów i naśladowanie ludzkich demonstracji zadania.

Ludzie jako agenci czarnej skrzynki

https://aie24.pl/

Nie musimy traktować ludzi jako celowych, celowych agentów, aby roboty koordynowały z nami. Alternatywnym modelem jest to, że człowiek jest tylko jakimś agentem, którego polityka H „miesza” z dynamiką środowiska. Robot nie zna H, ale potrafi modelować problem jako konieczność działania w MDP o nieznanej dynamice. Widzieliśmy to już wcześnie. Robot może dopasować model polityki H do danych ludzkich i wykorzystać go do obliczenia optymalnej polityki dla siebie. Ze względu na niedostatek danych było to dotychczas najczęściej wykorzystywane na poziomie zadań. Na przykład roboty nauczyły się poprzez interakcję, jakie działania ludzie podejmują (w odpowiedzi na własne działania) w celu umieszczania i wiercenia śrub w zadaniu montażu przemysłowego. Istnieje również alternatywa uczenia się przez wzmacnianie bez modelu: robot może zacząć od jakiejś początkowej funkcji polityki lub wartości i z czasem ją ulepszać metodą prób i błędów.

Prognozy ludzkie dotyczące robota

https://aie24.pl/

Niepełne informacje są często dwustronne: robot nie zna celu człowieka, a człowiek z kolei nie zna celu robota — ludzie muszą przewidywać roboty. Jako projektanci robotów nie jesteśmy odpowiedzialni za to, jak człowiek dokonuje przewidywań; możemy jedynie kontrolować to, co robi robot. Jednak robot może działać w taki sposób, aby ułatwić człowiekowi dokonywanie poprawnych prognoz. Robot może założyć, że człowiek używa czegoś z grubsza analogicznego do równania (26.8) do oszacowania celu JR robota, a zatem robot będzie działał tak, aby jego prawdziwy cel można było łatwo wywnioskować. Szczególnym przypadkiem w grze jest sytuacja, w której człowiek i robot są w tej samej drużynie, pracując nad tym samym celem lub zamierzeniem: JH = JR. Wyobraź sobie osobistego robota domowego, który pomaga przygotować obiad lub posprzątać – to przykłady współpracy. Możemy teraz zdefiniować wspólnego agenta, którego działania są krotkami działań człowieka i robota (uH;uR) i który optymalizuje dla JH(x,uH,uR) = JR(x,uR,uH) i rozwiązujemy regularny problem z planowaniem. Obliczamy optymalny plan lub politykę dla wspólnego agenta i voila, teraz wiemy, co powinien zrobić robot i człowiek. To działałoby naprawdę dobrze, gdyby ludzie byli idealnie optymalni. Robot wykonałby swoją część wspólnego planu, a człowiek swoją. Niestety w praktyce wydaje się, że ludzie nie stosują się do perfekcyjnie opracowanego planu wspólnego agenta; mają własny umysł! Nauczyliśmy się już jednak jednego sposobu radzenia sobie z tym, w sekcji 26.6. Nazywaliśmy to sterowaniem predykcyjnym modelu (MPC): chodziło o opracowanie planu, wykonanie pierwszego działania, a następnie ponowne zaplanowanie. W ten sposób robot zawsze dostosowuje swój plan do tego, co faktycznie robi człowiek. Przeanalizujmy przykład. Załóżmy, że ty i robot jesteście w kuchni i zdecydowaliście się zrobić gofry. Jesteś nieco bliżej lodówki, więc optymalny plan połączenia polegałby na tym, że zabierasz jajka i mleko z lodówki, podczas gdy robot pobiera mąkę z szafki. Robot wie o tym, ponieważ może dość dokładnie zmierzyć, gdzie wszyscy się znajdują. Ale przypuśćmy, że zaczniesz iść do szafki z mąką. Sprzeciwiasz się optymalnemu wspólnemu planowi. Zamiast trzymać się tego i uparcie sięgać po mąkę, robot MPC przelicza optymalny plan, a teraz, gdy jesteś wystarczająco blisko mąki, najlepiej, aby robot zamiast tego chwycił gofrownicę. Jeśli wiemy, że ludzie mogą odejść od optymalności, możemy to rozliczyć z wyprzedzeniem. W naszym przykładzie robot może spróbować przewidzieć, że idziesz po mąkę w momencie, gdy zrobisz pierwszy krok (powiedzmy, używając powyższej techniki przewidywania). Nawet jeśli technicznie optymalne jest dla Ciebie odwrócenie się i udanie się do lodówki, robot nie powinien zakładać, że tak się stanie. Zamiast tego robot może obliczyć plan, w którym nadal robisz to, czego chcesz.

Przewidywanie ludzkich działań

https://aie24.pl/

Przewidywanie ludzkich działań jest trudne, ponieważ zależą one od działań robota i odwrotnie. Jedną ze sztuczek stosowanych przez roboty jest udawanie, że osoba ignoruje robota. Robot zakłada, że ludzie są hałaśliwie optymalni w stosunku do celu, który jest dla robota nieznany i jest modelowany jako niezależność od działań robota: JH(x;uH). W szczególności, im wyższa wartość działania dla celu (im niższy koszt do wykonania), tym większe prawdopodobieństwo, że człowiek je podejmie. Robot może stworzyć model dla P(uH | x,JH), na przykład za pomocą funkcji softmax :

z Q(x,uH , JH) funkcja wartości Q odpowiadająca JH (znak ujemny jest obecny, ponieważ w robotyce lubimy minimalizować koszty, a nie maksymalizować nagrodę). Zwróć uwagę, że robot nie zakłada idealnie optymalnych działań ani nie zakłada, że działania są wybierane na podstawie rozumowania na temat robota. Uzbrojony w ten model robot wykorzystuje bieżące działania człowieka jako dowód istnienia JH. Jeśli mamy model obserwacji, w jaki sposób ludzkie działania zależą od celu człowieka, każde ludzkie działanie można włączyć, aby zaktualizować przekonanie robota o tym, jaki cel ma dana osoba:

Przykład znajduje się na rysunku

: robot śledzi lokalizację człowieka, a gdy człowiek się porusza, robot aktualizuje swoje przekonanie o ludzkich celach. Gdy człowiek kieruje się w stronę okien, robot zwiększa prawdopodobieństwo, że celem jest wyjrzenie przez okno, a zmniejsza prawdopodobieństwo, że cel idzie do kuchni, która jest w przeciwnym kierunku. W ten sposób przeszłe działania człowieka informują robota o tym, co człowiek zrobi w przyszłości. Przekonanie o celu człowieka pomaga robotowi przewidzieć, jakie następne działania podejmie człowiek. Mapa cieplna na rysunku pokazuje przyszłe przewidywania robota: kolor czerwony jest najbardziej prawdopodobny; niebieski najmniej prawdopodobne.

To samo może się zdarzyć podczas jazdy. Możemy nie wiedzieć, jak bardzo inny kierowca ceni efektywność, ale jeśli widzimy, jak przyspiesza, gdy ktoś próbuje się przed nim połączyć, teraz wiemy o nim nieco więcej. A kiedy już o tym wiemy, możemy lepiej przewidzieć, co zrobią w przyszłości — ten sam kierowca prawdopodobnie podjedzie bliżej lub przemykać przez ruch uliczny, aby wyprzedzić. Gdy robot może przewidywać przyszłe działania człowieka, zredukował swój problem do rozwiązania MDP. Działania człowieka komplikują funkcję przejścia, ale dopóki robot może przewidzieć, jakie działanie odejmie dana osoba z dowolnego przyszłego stanu, robot może obliczyć P(x’ | x ,uR): może obliczyć P(uH | x) z P(uH | x,JH) przez marginalizację nad JH i połącz ją z P(x’ | x,uR,uH), funkcją przejścia (dynamiki) dla tego, jak świat aktualizuje się w oparciu o działania zarówno robota, jak i człowieka.  Oddzielenie przewidywania od działania ułatwia robotowi obsługę interakcji, ale poświęca wydajność w takim stopniu, jak oddzielenie oceny od ruchu lub oddzielenie planowania od kontroli. Robot z takim podziałem nie rozumie już, że jego działania mogą wpływać na to, co ludzie robią. W przeciwieństwie do tego robot na rysunku powyżej przewiduje, dokąd pójdą ludzie, a następnie optymalizuje, aby osiągnąć swój cel i uniknąć kolizji z nimi. Na rysunku

mamy autonomiczny samochód łączący się na autostradzie. Jeśli planował tylko w odpowiedzi na inne samochody, być może będzie musiał długo czekać, podczas gdy inne samochody zajmą jego docelowy pas. W przeciwieństwie do tego, samochód, który uzasadnia przewidywanie i działanie, wie, że różne działania, które może podjąć, spowodują różne reakcje człowieka. Jeśli zacznie się umacniać, inne samochody prawdopodobnie nieco zwolnią i zrobią miejsce. Robotycy pracują nad skoordynowanymi interakcjami w ten sposób, aby roboty mogły lepiej współpracować z ludźmi.

Ludzie jako w przybliżeniu racjonalni agenci

https://aie24.pl/

Jednym ze sposobów sformułowania koordynacji z człowiekiem jest modelowanie jej jako gry między robotem a człowiekiem. Dzięki takiemu podejściu wyraźnie zakładamy, że ludzie są podmiotami motywowanymi przez cele. Nie oznacza to automatycznie, że są całkowicie racjonalnymi agentami (tj. znajdują optymalne rozwiązania w grze), ale oznacza to, że robot może ustrukturyzować sposób, w jaki rozumuje o człowieku, poprzez pojęcie możliwych celów, które człowiek może mieć. W tej grze:

  • stan środowiska rejestruje konfiguracje zarówno robota, jak i ludzkich agentów; nazwijmy to x = (xR;,xH);
  • każdy agent może podejmować działania, odpowiednio uR i uH;
  • każdy agent ma cel, który można przedstawić jako koszt, JR i JH: każdy agent chce bezpiecznie i skutecznie dotrzeć do celu;
  • i, jak w każdej grze, każdy cel zależy od stanu i działań obu agentów: JR(x,uR,uH) i JH(x,uH,uR). Pomyśl o interakcji samochód-pieszy – samochód powinien się zatrzymać, gdy pieszy przechodzi, i powinien jechać do przodu, jeśli pieszy czeka.

Trzy ważne aspekty komplikują tę grę. Po pierwsze, człowiek i robot niekoniecznie znają swoje cele. To sprawia, że ​​jest to niepełna gra informacyjna. Po drugie, przestrzenie stanów i akcji są ciągłe, tak jak było w tym rozdziale. W rozdziale 6 dowiedzieliśmy się, jak przeszukiwać drzewa, aby poradzić sobie z dyskretnymi grami, ale jak radzić sobie z ciągłymi przestrzeniami? Po trzecie, nawet jeśli na wysokim poziomie model gry ma sens – ludzie się poruszają i mają cele – ludzkie zachowanie nie zawsze może być dobrze scharakteryzowane jako rozwiązanie w grze. Gra zawiera wyzwanie obliczeniowe nie tylko dla robota, ale także dla nas, ludzi. Wymaga zastanowienia się nad tym, co zrobi robot w odpowiedzi na to, co robi dana osoba, co zależy od tego, co według robota ta osoba zrobi, i wkrótce dochodzimy do „co myślisz, myślę, że myślisz, że myślę” – są to żółwie aż do samego dołu! Ludzie nie potrafią sobie z tym wszystkim poradzić i wykazują pewne suboptymalności. Oznacza to, że robot powinien uwzględniać te suboptymalności. Co zatem ma zrobić samochód autonomiczny, gdy problem z koordynacją jest tak trudny? Zrobimy coś podobnego do tego, co robiliśmy wcześniej w tym rozdziale. Do planowania i sterowania ruchem wzięliśmy MDP i podzieliliśmy go na planowanie trajektorii, a następnie śledzenie jej za pomocą kontrolera. Tutaj również weźmiemy grę i podzielimy ją na przewidywania dotyczące ludzkich działań i decydowanie, co robot powinien zrobić, biorąc pod uwagę te przewidywania.