Programmeren door demonstratie - Programming by demonstration
In de informatica is programmeren door demonstratie ( PbD ) een ontwikkelingstechniek voor eindgebruikers om een computer of robot nieuw gedrag aan te leren door te demonstreren dat de taak rechtstreeks moet worden overgedragen in plaats van deze te programmeren via machineopdrachten.
De termen programmeren door voorbeeld (PbE) en programmeren door demonstratie (PbD) verschenen al in het midden van de jaren tachtig in onderzoek naar softwareontwikkeling om een manier te definiëren om een reeks bewerkingen te definiëren zonder een programmeertaal te hoeven leren. Het gebruikelijke onderscheid in de literatuur tussen deze termen is dat in PbE de gebruiker een prototypisch product van de computeruitvoering geeft, zoals een rij in de gewenste resultaten van een zoekopdracht ; terwijl in PbD de gebruiker een reeks acties uitvoert die de computer moet herhalen, en deze generaliseert voor gebruik in verschillende datasets.
Deze twee termen waren eerst ongedifferentieerd, maar PbE werd vervolgens meestal gebruikt door onderzoekers op het gebied van softwareontwikkeling, terwijl PbD meestal werd overgenomen door robotica-onderzoekers. Tegenwoordig verwijst PbE naar een heel ander concept, ondersteund door nieuwe programmeertalen die vergelijkbaar zijn met simulatoren. Dit raamwerk kan worden gecontrasteerd met Bayesiaanse programmasynthese .
Robotprogrammering door demonstratie
Het PbD-paradigma is in de eerste plaats aantrekkelijk voor de robotica-industrie vanwege de kosten die gemoeid zijn met de ontwikkeling en het onderhoud van robotprogramma's. Op dit gebied heeft de operator vaak impliciete kennis over de taak die moet worden uitgevoerd (hij/zij weet hoe het moet), maar beschikt hij/zij meestal niet over de programmeervaardigheden (of de tijd) die nodig zijn om de robot opnieuw te configureren. Door aan de hand van voorbeelden te demonstreren hoe u de taak kunt uitvoeren, kunt u de vaardigheid leren zonder elk detail expliciet te programmeren.
De eerste PbD-strategieën die in robotica werden voorgesteld, waren gebaseerd op leer- , geleidings- of afspeelmethoden die in wezen bestonden uit het verplaatsen van de robot (via een speciale interface of handmatig) door een reeks relevante configuraties die de robot sequentieel moest aannemen (positie, oriëntatie, staat van de grijper). De methode werd vervolgens geleidelijk verbeterd door zich voornamelijk te concentreren op de bediening van de teleoperatie en door verschillende interfaces te gebruiken, zoals visie.
Deze PbD-methoden maakten echter nog steeds gebruik van directe herhaling, wat in de industrie alleen nuttig was bij het bedenken van een assemblagelijn met exact dezelfde productcomponenten. Om dit concept toe te passen op producten met verschillende varianten of om de programma's toe te passen op nieuwe robots, werd het generalisatievraagstuk een cruciaal punt. Om dit probleem aan te pakken, waren de eerste pogingen om de vaardigheid te veralgemenen voornamelijk gebaseerd op de hulp van de gebruiker door middel van vragen over de bedoelingen van de gebruiker. Vervolgens werden verschillende abstractieniveaus voorgesteld om het generalisatieprobleem op te lossen, in feite gedichotomiseerd in leermethoden op symbolisch niveau of op trajectniveau.
De ontwikkeling van humanoïde robots zorgde natuurlijk voor een groeiende interesse in robotprogrammering door middel van demonstraties. Omdat een humanoïde robot zich van nature aanpast aan nieuwe omgevingen, is niet alleen het menselijke uiterlijk belangrijk, maar vereisen de algoritmen die worden gebruikt voor de besturing ervan flexibiliteit en veelzijdigheid. Vanwege de voortdurend veranderende omgevingen en de enorme verscheidenheid aan taken die een robot moet uitvoeren, vereist de robot het vermogen om voortdurend nieuwe vaardigheden te leren en de bestaande vaardigheden aan te passen aan nieuwe contexten.
Onderzoek in PbD week ook geleidelijk af van het oorspronkelijke puur technische perspectief om een interdisciplinaire benadering te hanteren, waarbij inzichten uit de neurowetenschappen en sociale wetenschappen werden gebruikt om het imitatieproces bij mens en dier na te bootsen. Met de toenemende aandacht voor dit oeuvre in robotica, werd het begrip Robotprogrammering door demonstratie (ook bekend als RPD of RbD) ook geleidelijk vervangen door het meer biologische label van Leren door imitatie .
Geparametriseerde vaardigheden
Nadat een taak is gedemonstreerd door een menselijke operator, wordt het traject opgeslagen in een database. Gemakkelijker toegang krijgen tot de onbewerkte gegevens wordt gerealiseerd met geparametriseerde vaardigheden. Een vaardigheid is het opvragen van een database en genereert een traject. Zo wordt eerst de skill “opengripper(slow)” naar de motion database gestuurd en als reactie daarop wordt de opgeslagen beweging van de robotarm gegeven. De parameters van een vaardigheid maken het mogelijk om het beleid aan te passen om aan externe beperkingen te voldoen .
Een vaardigheid is een interface tussen taaknamen, gegeven in natuurlijke taal, en de onderliggende ruimte-tijdbeweging in de 3D-ruimte, die uit punten bestaat. Enkele vaardigheden kunnen worden gecombineerd tot een taak voor het definiëren van langere bewegingsreeksen vanuit een perspectief op hoog niveau. Voor praktische toepassingen worden verschillende acties opgeslagen in een vaardigheidsbibliotheek . Om het abstractieniveau verder te verhogen, kunnen vaardigheden worden omgezet in dynamische bewegingsprimitieven (DMP). Ze genereren on the fly een robottraject dat op het moment van de demonstratie nog niet bekend was. Dit helpt om de flexibiliteit van de oplosser te vergroten.
Niet-robotgebruik
Voor eindgebruikers, om een workflow in een complexe tool (bijv. Photoshop ) te automatiseren , is het meest eenvoudige geval van PbD de macrorecorder .
Zie ook
- Programmeren door voorbeeld
- Opzettelijke programmering
- Inductief programmeren
- Macrorecorder
- Leren onder toezicht
Referenties
- Cypher, Allen (1993), Kijk wat ik doe: programmering door demonstratie , Daniel C. Halbert, MIT Press, ISBN 978-0-262-03213-1
- Lieberman, Henry (2001), Uw wens is mijn bevel: programmeren door voorbeeld , Ben Shneiderman, Morgan Kaufmann, ISBN 978-1-55860-688-3
Externe links
Recensies papers
- Billard, Aude (2008), S. Calinon, R. Dillmann en S. Schaal, "Robot Programming by Demonstration" (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; Billard, A; Frith, CD, Wolpert, D. (eds.), "Computationele benaderingen van motorisch leren door imitatie" (PDF) , The Neuroscience of Social Interaction , Oxford University Press, 358 (1431): 199-218, doi : 10.1098/rstb .2002.1258 , PMC 1693137 , PMID 12689379 .
- Robots die mensen imiteren , Cynthia Breazeal en Brian Scassellati, Trends in Cognitive Sciences, 6:1, 2002, pp. 481-87
- Billard, A, "Imitatie", in Arbib, MA (red.), Handbook of Brain Theory and Neural Networks , MIT Press, pp. 566-69.
- Schaal, S (1999), "Is imitatie het leren van de weg naar humanoïde robots?", Trends in Cognitive Sciences (PDF).
Speciale nummers in tijdschriften
- IEEE-transacties op systemen, mensen en cybernetica , april 2007, 37:2.
- RSJ Advanced Robotics , 21, nummer 13.
- Neurale netwerken , Elsevier.
- Robotica en autonome systemen (PDF) , Elsevier, 2006.
Sleutellaboratoria en mensen
- Machine Learning-technieken voor robotprogrammering door demonstratie , Lausanne, VD, CH: EPFL LASA, gearchiveerd van het origineel op 01-05-2012.
- Versterking leren en leren van motorprimitieven, SC, VS: USC CLMC Lab.
- Calinon, Sylvain, Interactieve docent-student (trainer/coach-stagiair/klant) kinesthetische demonstratie , CH.
- Bentivegna, Darrin, Airhockey leren aan een mensachtige robot , JP: ATR, gearchiveerd van het origineel op 27/01/2008.
- Gemeenschapsactiviteiten over nauw verwante onderwerpen
- Technical Committee on Human-Robot Interaction & Coordination , IEEE Robotics and Automation, gearchiveerd van het origineel op 26-07-2011.
- Technical Committee on Robot Learning , IEEE Robotics and Automation, gearchiveerd van het origineel op 26-07-2011.
Videos
Een robot die een omelet leert koken:
Een robot die leert een fles cola los te draaien:
- "Kokefles losschroeven", YouTube , DE.