Programowanie poprzez demonstrację

W informatyce programowanie przez demonstrację ( PbD ) to technika programowania przez użytkownika końcowego, służąca do uczenia komputera lub robota nowych zachowań poprzez zademonstrowanie zadania do bezpośredniego przeniesienia zamiast programowania go za pomocą poleceń maszynowych.

Terminy programowanie przez przykład (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 nauki języka programowania. Typowe rozróżnienie w literaturze między tymi terminami jest takie, że w PbE użytkownik podaje prototypowy produkt wykonania komputerowego, taki jak wiersz w żądanych wynikach zapytania ; podczas gdy w PbD użytkownik wykonuje sekwencję czynności, które komputer musi powtórzyć, uogólniając ją do użycia w różnych zestawach danych.

Te dwa terminy były początkowo niezróżnicowane, ale później PbE było najczęściej przyjmowane przez badaczy zajmujących się tworzeniem oprogramowania, podczas gdy PbD było zwykle przyjmowane przez badaczy robotyki. Dziś PbE nawiązuje do zupełnie innej koncepcji, wspartej nowymi językami programowania przypominającymi symulatory. Ramy te można porównać z syntezą programu bayesowskiego .

Programowanie robotów poprzez demonstrację

Paradygmat PbD jest atrakcyjny przede wszystkim dla branży robotyki ze względu na koszty związane z rozwojem i utrzymaniem programów robotycznych. Na tym polu operator często ma ukrytą wiedzę na temat zadania, które ma wykonać (wie, jak to zrobić), ale zazwyczaj nie ma umiejętności programowania (ani czasu) niezbędnych do rekonfiguracji robota. Pokazanie, jak osiągnąć zadanie na przykładach, pozwala zatem nauczyć się umiejętności bez bezpośredniego 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 (poprzez dedykowany interfejs lub ręcznie) poprzez zestaw odpowiednich konfiguracji, które robot powinien przyjąć sekwencyjnie (pozycja, orientacja, stan chwytaka). Następnie metodę tę stopniowo udoskonalano, koncentrując się głównie na kontroli zdalnej i stosując różne interfejsy, takie jak obraz.

Jednak w tych metodach PbD nadal stosowano bezpośrednie powtarzanie, co było przydatne w przemyśle tylko przy projektowaniu 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ę kwestią kluczową. 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 jego intencje. Następnie zaproponowano różne poziomy abstrakcji, aby rozwiązać problem uogólnień, zasadniczo podzielonych na metody uczenia się na poziomie symbolicznym lub na poziomie trajektorii.

Rozwój robotów humanoidalnych w naturalny sposób spowodował rosnące zainteresowanie programowaniem robotów poprzez demonstrację. Ponieważ robot humanoidalny ze swej natury ma przystosowywać się do nowych środowisk, ważny jest nie tylko ludzki wygląd, ale algorytmy stosowane do jego sterowania wymagają elastyczności i wszechstronności. Ze względu na stale zmieniające się środowisko i ogromną różnorodność zadań, jakie ma wykonywać robot, wymaga on zdolności do 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 pierwotnej, czysto inżynieryjnej perspektywy, na rzecz przyjęcia podejścia interdyscyplinarnego, czerpiąc spostrzeżenia z neuronauki i nauk społecznych, aby naśladować proces naśladowania u ludzi i zwierząt. Wraz z coraz większym uwzględnieniem tego zakresu prac w robotyce, koncepcja programowania robotów przez demonstrację (znana również jako RPD lub RbD) była również stopniowo zastępowana bardziej biologiczną etykietą uczenia się przez naśladownictwo .

Stabilne pola wektorowe z nadrukiem neuronowym (NiVF)

Stabilne pola wektorowe z imprintingiem neuronowym (NiVF) zostały wprowadzone jako nowatorski schemat uczenia się podczas ESANN 2013 i pokazują, jak wdrukowywać pola wektorowe do sieci neuronowych, takich jak maszyny do ekstremalnego uczenia się (ELM), w gwarantowany stabilny sposób. Ponadto praca zdobyła nagrodę dla najlepszej pracy studenckiej. Sieci reprezentują ruchy, w których stabilność asymptotyczna jest uwzględniana poprzez ograniczenia wywodzące się z teorii stabilności Lapunowa. Wykazano, że podejście to z powodzeniem umożliwia wykonywanie stabilnych i płynnych ruchów od punktu do punktu, wyuczonych na podstawie ruchów ludzkiego pisma.

Możliwe jest również poznanie kandydata Lapunowa, który służy do stabilizacji układu dynamicznego. Z tego powodu potrzebny jest schemat uczenia się neuronowego, który szacuje stabilne systemy dynamiczne na podstawie demonstracji w oparciu o proces dwuetapowy: najpierw szacuje się kandydata na funkcję Lapunowa na podstawie danych. Po drugie, stabilność jest uwzględniana za pomocą nowatorskiej metody uwzględniającej lokalne ograniczenia w uczeniu się neuronowym. Pozwala to na naukę stabilnej dynamiki przy jednoczesnym zachowaniu dokładności układu dynamicznego i solidnym generowaniu złożonych ruchów.

Transformacje dyfeomorficzne

Transformacje dyfeomorficzne okazują się szczególnie przydatne do znacznego zwiększenia możliwości uczenia się układów dynamicznych dla ruchów robotycznych. Stabilny estymator układów dynamicznych (SEDS) to interesujące podejście do uczenia się systemów niezmienniczych w czasie do sterowania ruchami robotów. Jednak ogranicza się to do układów dynamicznych zawierających wyłącznie kwadratowe funkcje Lapunowa. Nowe podejście Tau-SEDS pokonuje te ograniczenia w matematyczny elegancki sposób.

Umiejętności parametryczne

Po zademonstrowaniu zadania przez człowieka trajektoria jest zapisywana w bazie danych. Łatwiejszy dostęp do surowych danych realizowany jest za pomocą sparametryzowanych umiejętności. Umiejętność żąda bazy danych i generuje trajektorię. Na przykład, najpierw do bazy danych ruchu wysyłana jest umiejętność „opengripper(slow)”, a w odpowiedzi udostępniany jest zapisany ruch ramienia robota. Parametry umiejętności pozwalają modyfikować politykę w celu spełnienia ograniczeń zewnętrznych .

Umiejętność to interfejs pomiędzy nazwami zadań podanymi w języku naturalnym a leżącym u ich podstaw ruchem czasoprzestrzennym w przestrzeni 3D, która składa się z punktów. Pojedyncze umiejętności można połączyć w zadanie polegające na zdefiniowaniu dłuższych sekwencji ruchu z perspektywy wysokiego poziomu. W zastosowaniach praktycznych 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 prymitywy ruchu dynamicznego (DMP). Generują w locie trajektorię robota, która nie była znana w czasie demonstracji. Pomaga to zwiększyć elastyczność solwera.

Zastosowanie inne niż roboty

Dla użytkowników końcowych, aby zautomatyzować przepływ pracy w złożonym narzędziu (np. Photoshopie ), najprostszym przypadkiem PbD jest rejestrator makr .

Zobacz też

Linki zewnętrzne

Recenzje artykułów

Zeszyty specjalne w czasopismach

Kluczowe laboratoria i ludzie

Filmy

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

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

  • „Odkręć butelkę coli”, YouTube , DE .