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ż

Bibliografia

Zewnętrzne linki

Recenzje artykułów

Wydania specjalne w czasopismach

Kluczowe laboratoria i ludzie

Filmy

Robot, który uczy się gotować omlet:

  • „Krótka wersja”, YouTube , FR.
  • „Długa wersja”, YouTube , FR.

Robot, który uczy się odkręcać butelkę coli:

  • „Odkręć butelkę po Coli”, YouTube , DE.