Programowanie przez demonstrację - Programming by demonstration
W informatyce , programowanie przez demonstracji ( PBD ) jest rozwój użytkownika końcowego technika nauczania komputera lub robota nowych zachowań poprzez wykazanie zadanie przenieść bezpośrednio zamiast go poprzez programowanie poleceń maszynowych.
Terminy programowanie na przykładzie (PbE) i programowanie przez demonstrację (PbD) pojawiły się w badaniach nad rozwojem oprogramowania już w połowie lat 80. XX wieku, aby zdefiniować sposób definiowania sekwencji operacji bez konieczności uczenia się języka programowania. Zwyczajowe rozróżnienie w literaturze między tymi terminami polega na tym, że w PbE użytkownik podaje prototypowy produkt wykonania komputera, taki jak wiersz w żądanych wynikach zapytania ; podczas gdy w PbD użytkownik wykonuje sekwencję działań, które komputer musi powtórzyć, uogólniając je do użycia w różnych zestawach danych.
Te dwa terminy były początkowo niezróżnicowane, ale PbE było wówczas w większości przyjmowane przez badaczy zajmujących się opracowywaniem oprogramowania, podczas gdy PbD było przyjmowane przez badaczy robotyki. Dziś PbE odwołuje się do zupełnie innej koncepcji, wspieranej przez nowe języki programowania, podobne do symulatorów. Te ramy można skontrastować z syntezą programów bayesowskich .
Programowanie robota przez demonstrację
Paradygmat PbD jest przede wszystkim atrakcyjny dla branży robotyki ze względu na koszty związane z rozwojem i utrzymaniem programów robotów. W tej dziedzinie operator często ma dorozumianą wiedzę na temat zadania do wykonania (wie, jak to zrobić), ale zwykle nie ma umiejętności programowania (lub czasu) wymaganych do rekonfiguracji robota. Pokazanie, jak wykonać zadanie na przykładach, pozwala więc nauczyć się umiejętności bez wyraźnego programowania każdego szczegółu.
Pierwsze strategie PbD zaproponowane w robotyce opierały się na metodach uczenia , prowadzenia lub odtwarzania , które polegały zasadniczo na przemieszczaniu robota (przez dedykowany interfejs lub ręcznie) przez zestaw odpowiednich konfiguracji, które robot powinien przyjąć sekwencyjnie (pozycja, orientacja, stan chwytaka). Metoda była następnie stopniowo ulepszana, skupiając się głównie na sterowaniu teleoperacją i przy użyciu różnych interfejsów, takich jak wizja.
Jednak te metody PbD nadal wykorzystywały bezpośrednie powtórzenia, co było przydatne w przemyśle tylko przy opracowywaniu linii montażowej wykorzystującej dokładnie te same komponenty produktu. Aby zastosować tę koncepcję do produktów o różnych wariantach lub zastosować programy do nowych robotów, kwestia uogólnienia stała się kluczowym punktem. Aby rozwiązać ten problem, pierwsze próby uogólnienia umiejętności opierały się głównie na pomocy użytkownika poprzez zapytania o intencje użytkownika. Następnie zaproponowano różne poziomy abstrakcji, aby rozwiązać problem generalizacji, zasadniczo dychotomizowanych w metodach uczenia się na poziomie symbolicznym lub na poziomie trajektorii.
Rozwój robotów humanoidalnych w naturalny sposób przyniósł rosnące zainteresowanie programowaniem robotów poprzez demonstrację. Ponieważ robot humanoidalny ma ze swej natury dostosowywać się do nowych środowisk, ważny jest nie tylko wygląd człowieka, ale algorytmy używane do jego sterowania wymagają elastyczności i wszechstronności. Ze względu na stale zmieniające się środowisko i ogromną różnorodność zadań, które robot ma wykonywać, robot wymaga umiejętności ciągłego uczenia się nowych umiejętności i dostosowywania istniejących umiejętności do nowych kontekstów.
Badania nad PbD również stopniowo odchodziły od swojej pierwotnej czysto inżynierskiej perspektywy, aby przyjąć podejście interdyscyplinarne, czerpiąc spostrzeżenia z neuronauki i nauk społecznych, aby naśladować proces naśladowania u ludzi i zwierząt. Wraz z rosnącym zainteresowaniem tą pracą w robotyce pojęcie programowania robotów przez demonstrację (znane również jako RPD lub RbD) zostało również stopniowo zastąpione bardziej biologiczną etykietą uczenia się przez naśladowanie .
Sparametryzowane umiejętności
Po zademonstrowaniu zadania przez operatora, trajektoria jest zapisywana w bazie danych. Uzyskiwanie łatwiejszego dostępu do surowych danych jest realizowane za pomocą sparametryzowanych umiejętności. Umiejętność żąda bazy danych i generuje trajektorię. Na przykład, najpierw umiejętność „opengripper(slow)” jest wysyłana do bazy danych ruchu, a w odpowiedzi dostarczany jest zapisany ruch ramienia robota. Parametry umiejętności pozwalają na modyfikację polityki tak, aby spełniała zewnętrzne ograniczenia .
Umiejętność jest interfejsem między nazwami zadań podanymi w języku naturalnym a leżącym u jej podstaw ruchem czasoprzestrzennym w przestrzeni 3D, która składa się z punktów. Pojedyncze umiejętności można połączyć w zadanie do definiowania dłuższych sekwencji ruchu z perspektywy wysokiego poziomu. W przypadku praktycznych zastosowań różne działania są przechowywane w bibliotece umiejętności . Aby jeszcze bardziej zwiększyć poziom abstrakcji, umiejętności można przekształcić w dynamiczne prymitywy ruchu (DMP). Generują w locie trajektorię robota, która była nieznana w czasie demonstracji. Pomaga to zwiększyć elastyczność solvera.
Zastosowanie nierobotyczne
Dla użytkowników końcowych, aby zautomatyzować przepływ pracy w złożonym narzędziu (np. Photoshop ), najprostszym przypadkiem PbD jest rejestrator makr .
Zobacz też
- Programowanie na przykładzie
- Programowanie celowe
- Programowanie indukcyjne
- Rejestrator makr
- Nadzorowana nauka
Bibliografia
- Cypher, Allen (1993), Watch What I Do: Programming by Demonstration , Daniel C. Halbert, MIT Press, ISBN 978-0-262-03213-1
- Lieberman, Henry (2001), Twoje życzenie jest moim rozkazem: programowanie na przykładzie , Ben Shneiderman, Morgan Kaufmann, ISBN 978-1-55860-688-3
Zewnętrzne linki
Recenzje artykułów
- Billard, Aude (2008), S. Calinon, R. Dillmann i S. Schaal, "Programowanie robotów przez demonstrację" (PDF) , Handbook of Robotics , MIT Press: 1371-1394, doi : 10.1007/978-3-540- 30301-5_60 , ISBN 978-3-540-23957-4.
- Schaal, S (2004), Ijspeert, A; Bilard, A; Frith, CD, Wolpert, D. (red.), „Podejścia obliczeniowe do uczenia się motorycznego przez naśladownictwo” (PDF) , Neuroscience of Social Interaction , Oxford University Press, 358 (1431): 199-218, doi : 10.1098/rstb .2002.1258 , PMC 1693137 , PMID 12689379 .
- Roboty imitujące ludzi , Cynthia Breazeal i Brian Scassellati, Trends in Cognitive Sciences, 6:1, 2002, s. 481–87
- Billard, A, "Imitacja", w Arbib, MA (red.), Handbook of Brain Theory and Neural Networks , MIT Press, s. 566-69.
- Schaal, S (1999), „Czy naśladownictwo jest drogą do humanoidalnych robotów?”, Trendy w naukach kognitywnych (PDF).
Wydania specjalne w czasopismach
- IEEE Transactions on Systems, Man, and Cybernetics , kwiecień 2007, 37:2.
- RSJ Advanced Robotics , 21, numer 13.
- Sieci neuronowe , Elsevier.
- Robotyka i systemy autonomiczne (PDF) , Elsevier, 2006.
Kluczowe laboratoria i ludzie
- Techniki uczenia maszynowego do programowania robotów przez demonstrację , Lozanna, VD, CH: EPFL LASA, zarchiwizowane od oryginału dnia 2012-05-01.
- Uczenie się przez wzmacnianie i uczenie się elementów motorycznych , SC, USA: USC CLMC Lab.
- Calinon, Sylvain, Interaktywny nauczyciel-uczeń (trener/coach-praktykant/klient) pokaz kinestetyczny , CH.
- Bentivegna, Darrin, Uczenie cymbergaja robota humanoidalnego , JP: ATR, zarchiwizowane z oryginału 27.01.2008.
- Działania społeczności na ściśle powiązane tematy
- Technical Committee on Human-Robot Interaction & Coordination , IEEE Robotics and Automation, zarchiwizowane od oryginału dnia 2011-07-26.
- Technical Committee on Robot Learning , IEEE Robotics and Automation, zarchiwizowane od oryginału dnia 2011-07-26.
Filmy
Robot, który uczy się gotować omlet:
Robot, który uczy się odkręcać butelkę coli:
- „Odkręć butelkę po Coli”, YouTube , DE.