Technologie

Roboty obserwują ludzi, żeby uczyć siebie i... inne roboty. To już się dzieje naprawdę!

Marcin Hołowacz
Roboty obserwują ludzi, żeby uczyć siebie i... inne roboty. To już się dzieje naprawdę!
1

Żeby nauczyć robota jakiejś określonej czynności, programista może np. zaplanować każdy jego ruch. Innym sposobem jest nauka poprzez demonstrację, tzn. człowiek może pokazać maszynie co ma zrobić np. chwytając jej mechaniczne ramię i manipulując nim tak, żeby doszło do zrealizowania określonej czynności, albo demonstrując coś za pośrednictwem odpowiedniego interfejsu. Roboty mogą się również uczyć samodzielnie poprzez obserwowanie swojego otoczenia oraz metodę prób i błędów.

Nauczanie robotów

Ludzie cały czas pracują nad możliwie najlepszymi sposobami uczenia robotów, ponieważ zbudowanie np. mechanicznego ramienia to jedno, natomiast sprawienie aby robiły to co jest wymagane to coś zupełnie odmiennego. Poprzez nauczanie robota mam na myśli sprawienie aby wywiązywał się ze swoich obowiązków… np. dlatego że otrzymał odpowiednie instrukcje, które po prostu realizuje, albo uczy się nowych rzeczy np. dzięki sieciom neuronowym. Sposoby przekazywania robotom odpowiednich instrukcji mogą być różne, a w tym bardziej i mniej interesujące. Ktoś może po prostu zaprogramować każdy ruch i czas jego trwania, albo można na przykład zademonstrować jakąś czynność (z pomocą odpowiednich czujników), tak jak na poniższym filmiku:

Tak jak wspominałem wyżej, roboty mogą się też uczyć samodzielnie, na przykład wykorzystując sieci neuronowe i dane zebrane podczas… więcej niż 11 tys. wypadków (wlatywaniu w coś, rozbijaniu się o różne rzeczy itd.). Pewien dron nauczył się autonomicznie nawigować swoim lotem w taki sposób, żeby się nie rozbijać choćby w ciasnych pomieszczeniach. Trudno sobie wyobrazić, że ktoś zacznie w taki sposób uczyć autonomiczne myśliwce wojskowe, ale metoda prób i błędów przy niewielkich rozmiarów, relatywnie tanich dronach brzmi ok.

A teraz pora to wszystko połączyć

Skoro istnieją różne sposoby nauczania robotów i każde z nich mają swoje wady i zalety, to może warto podjąć się ich optymalnego połączenia? Co gdybyśmy wyposażyli robota w podstawową bibliotekę wiedzy, którą napisze i zaimplementuje mu wcześniej programista (np. jak chwytać rurkę, jak chwytać coś o zupełnie innym kształcie itd.), a następnie weźmiemy takiego robota pod swoje skrzydła i zaczniemy go uczyć nowych rzeczy? Będziemy się posługiwać demonstracjami i będziemy przekazywać mu nowe zadania do wykonania. Z kolei maszyna będzie stopniowo budować swoje doświadczenie i z niego korzystać, a każde nowe zadanie wystarczy jej przekazać w postaci pojedynczej demonstracji (nie musisz umieć programować nowych ruchów).

Pracownicy naukowi z Computer Science and Artificial Intelligence Laboratory (CSAIL) będącego częścią MIT, pracują nad systemem, który ma umożliwiać osobom bez wiedzy o programowaniu, instruowanie robotów o ich nowych zadaniach. Wynikiem ich pracy jest C-LEARN.

C-LEARN

C-LEARN potrzebuje, żeby użytkownik zapewnił robotowi bibliotekę wiedzy np. o tym w jaki sposób zabierać się za łapanie przedmiotów o różnych kształtach. Następnie można posłużyć się opracowanym interfejsem 3D, w którym tworzy się demonstracje związane z bardzo konkretnymi zadaniami. Zaletą jest to, że robot sam będzie się posługiwał całą wiedzą jaką dysponuje, po to żeby sugerować jak należy wykonać inne, ale dość podobne zadanie w przyszłości - operator może wtedy akceptować sugestie robota albo je edytować.

Pracująca nad C-LEARN Claudia Pérez D'Arpino mówi:

To podejście jest bardzo podobne do tego w jaki sposób uczą się ludzie, w tym sensie że obserwujemy jak należy coś zrobić, a następnie łączymy to z wiedzą, którą posiadamy na temat świata. Nie możemy się magicznie nauczyć czegoś nowego, zamiast tego bierzemy nową informację na jakiś temat i łączymy ją z naszą wcześniejszą wiedzą.

Dodatkowy komentarz zapewnia Dmitry Berenson, pełniący funkcję “assistant professor of computer science at the University of Michigan” i nie będący bezpośrednio związany z pracami nad C-LEARN:

Posiadanie bazy wiedzy jest dość powszechne, ale to co nie jest powszechne, to integrowanie jej z procesem nauczania za pośrednictwem demonstracji. To bardzo pomocne, ponieważ możemy mieć do czynienia z pracą na takich samych obiektach, w kółko mając do czynienia z tym samym, jednak zmienią się związane z tym zadania, a wtedy nie chcemy uczyć robota jak coś robić zupełnie od podstaw.

Podsumowując, celem jest uzyskiwanie jak największej elastyczności. Ludzie ci pragną zażegnać dokładne naśladowanie konkretnych ruchów albo konieczność ponownego programowania w przypadku jakiejś zmiany w zadaniu. Roboty samodzielnie zaczną sugerować jak podejść do zadania, do którego wprowadzono jakieś zmiany (np. pojawiła się niespodziewana przeszkoda i niezbędne jest wykonanie tego samego ruchu w odrobinę inny sposób) i będą do tego wykorzystywać wiedzę, którą dysponują oraz regularnie poszerzają.

To nie koniec. Roboty będą uczyć roboty

Najlepsze zostawiłem na koniec. C-LEARN to również prezent w postaci skutecznego przekazywania nabytej wiedzy. Robot, który nauczył się zupełnie nowej czynności, może dokonać transferu wiedzy do innego robota. Najlepsze, że wcale nie muszą to być dwa takie same modele…

Naukowcy testowali system na robocie Optimus, wyposażonym w dwa mechaniczne ramiona. Optimus był w stanie dokonać transferu swojej wiedzy do zupełnie innego robota o nazwie Atlas (choć sa podobieństwa, np. również ma dwa ramiona). Po takim transferze drugi robot może wykonać to samo zadanie co pierwszy, a więc możliwe jest aby robot uczył drugiego robota, tego czego sam się wcześniej nauczył… Więcej szczegółów zostanie zaprezentowanych podczas IEEE International Conference on Robotics and Automation w Singapurze (29 maj – 3 czerwiec).

Źródło 1, 2, 3, 4

Hej, jesteśmy na Google News - Obserwuj to, co ważne w techu