Neem over wanneer de policy misgrijpt, train vervolgens precies die correctie.
Een policy die met behavior cloning is getraind, kent alleen de toestanden die in uw demonstraties voorkwamen. DAgger dicht dat gat met data uit de toestanden die de policy zelf bereikt. AY-Robots doorloopt de volledige lus op een SO-100: een checkpoint aansturen, midden in de run overnemen, de gecorrigeerde episodes bewaren, de mix samenstellen en verder trainen vanaf het checkpoint dat u net hebt aangestuurd.
- HG-DAgger, human-gated
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- Interventiepercentage per ronde
Waarom een getrainde policy iets doet dat nooit is gedemonstreerd
Behavior cloning behandelt besturing als gewone supervised learning: observatie erin, gewrichtsdoel eruit, gefit op de frames die een mens heeft opgenomen. Dat klopt alleen zolang de robot op de toestanden blijft die die mens bezocht heeft, en dat gebeurt niet. Een gripper die veertig milliseconden te vroeg sluit, duwt de kubus twee millimeter uit zijn gedemonstreerde positie. De volgende observatie komt dan niet voor in de trainingsset, dus de actie daar is een extrapolatie, en de toestand daarna ligt nog verder buiten bereik. De trainingsverdeling en de verdeling die de geleerde policy zelf oproept, zijn twee verschillende dingen, en de tweede drift steeds verder van de eerste weg naarmate de episode vordert.
Ross, Gordon en Bagnell beschreven precies dit falen in 2011 en becijferden de schade: een classifier die onder de expertverdeling met kans e fout gaat, kan over een horizon van T stappen onder zijn eigen verdeling in de orde van T in het kwadraat maal e fouten maken, omdat een fout observaties oplevert die de expert nooit heeft voortgebracht en de fouten zich zo opstapelen. Hun oplossing is het algoritme waar deze pagina over gaat: de huidige policy laten rijden, expertlabels verzamelen voor de toestanden die hij bezoekt, ze samenvoegen met alles wat tot dan toe verzameld is, opnieuw trainen, herhalen. Meer demonstraties van hetzelfde soort helpen niet, want die putten uit dezelfde verdeling. Labels op de toestanden die de policy bereikt, wel. De hier geimplementeerde variant is human-gated (HG-DAgger, Kelly et al.): de policy houdt de controle totdat een mens beslist dat het misgaat en overneemt, zodat correcties alleen ontstaan waar ze nodig zijn en de arm nooit een toestand in wordt gestuurd die de operator niet zou toestaan.
- Behavior cloning geldt alleen voor de toestandsverdeling waarop het is getraind.
- Het falen versterkt zichzelf: een kleine afwijking levert een onbekende toestand op, die weer een grotere afwijking oplevert.
- Het middel is niet meer demonstraties, maar labels op de toestanden die de policy zelf bereikt.
- Human-gated betekent dat de operator beslist wanneer er wordt ingegrepen, niet een autonomiescore.
Waarom de fout zich opstapelt
Versleep de horizon. Onder behavior cloning groeit de verwachte extra kosten ongeveer met het kwadraat van het aantal stappen, omdat elke fout toestanden oplevert die de demonstraties nooit hebben gedekt; een aggregatielus houdt die groei dicht bij lineair (Ross et al., 2011).
Illustratieve curves op basis van de grenzen uit Ross et al. (2011), geen metingen van uw robot. Het gaat om de vorm, niet om de getallen.
Een DAgger-ronde in zes stappen
Dit is de lus zoals het platform hem werkelijk uitvoert, geen schema. Elke stap hieronder komt overeen met een bedieningselement in het cockpit.
Stap voor stap door de lus
Dezelfde zes stappen, een voor een, met wat er bij elke stap op de arm en in de dataset gebeurt.
Policy laten rijden en opnemen
Start een inferentierun tegen een zelf getraind checkpoint. De run wordt tijdens het rijden opgenomen, met de taaktekst van de run zelf, zodat de frames achteraf bruikbaar zijn als trainingsdata in plaats van een video die u alleen kunt terugkijken.
Overnemen en corrigeren
Zodra de arm iets verkeerd doet: druk op Overnemen. De runner pauzeert en de arm is van u. Met een leader-arm rijdt deze eerst naar de follower-pose en draagt dan de besturing over; bij toetsenbord- of slider-invoer, gekozen bij de start van de run, is de overname meteen handmatig. Corrigeer de beweging en geef de besturing daarna terug aan de policy. Frames die tijdens de overname worden opgenomen, krijgen automatisch een interventiemarkering.
Run beoordelen
Beslis per run wat het was: archiveer als correctie, bewaar als evaluatierun, of verwerp. De stilstaande frames rond een overdracht blijven in de raw-map en komen nooit in de dataset terecht.
Correctiedataset synchroniseren
Correcties verzamelen zich in een correctiedataset per policy en gaan via de automatische cloud-sync naar uw bucket. Op dit punt wordt nog niets samengevoegd; de correcties vormen gewoon een eigen dataset.
Mix zelf samenstellen
Gebruik Dataset samenstellen om de trainingsset voor de volgende ronde te bouwen: de oorspronkelijke dataset plus de correcties, met episodes die per bron expliciet worden gekozen. Het resultaat is een gewone dataset die net als elke andere synchroniseert en traint. Er wordt niets stiekem bijgemengd, en simulatiedata wordt nooit automatisch toegevoegd.
Verder trainen vanaf het checkpoint
Train de samengestelde dataset met Verder trainen vanaf checkpoint in plaats van te starten vanaf het basismodel, zodat de ronde begint bij de policy die u net hebt aangestuurd. Wees precies over wat dit is: het initialiseert de gewichten vanaf dat checkpoint, het is geen optimizer-resume.
Wat het platform u uit handen neemt
Elk punt hier is een stap van de lus die u anders zelf zou moeten bouwen en onderhouden.
Overname zonder leader-arm
Kies bij de start van de run toetsenbord- of slider-invoer, en een laptop volstaat om te corrigeren. Toetsenbord-nudges worden server-side hard begrensd op twee graden per gewricht en vier graden op de gripper; slider-doelen zijn absoluut, en de server beweegt per aanroep hoogstens zes graden in hun richting. De begrenzing zit in de server, niet in de interface, dus een vastzittende toets kan de arm niet laten doorslaan.
Teleoperatie in de docsInterventies per frame gemarkeerd
Elk frame dat wordt opgenomen terwijl u de arm vasthoudt, draagt een interventiemarkering, en de action-kolom bevat de volledige aangestuurde pose. U hoeft geen flag-kolom met de hand bij te houden of achteraf op frame-indices uit te lijnen.
LeRobot-datasetformaatBeoordelen: correctie, evaluatie of prullenbak
Elke run krijgt een beslissing op de opslagkaart. Correctieruns voeden de volgende trainingsronde, evaluatieruns blijven buiten het trainen en leveren zo een schone meting, en mislukte runs verdwijnen in plaats van de mix stilletjes te vergiftigen.
Sessies en episodesMix expliciet samenstellen
De trainingsset voor ronde n stelt u zelf samen: oorspronkelijke dataset plus correcties, episodes per bron geselecteerd. Geen automatisch bijmengen, geen verborgen simulatiedata, en het samengestelde resultaat gedraagt zich als elke andere dataset.
DatasetsVerdergaan vanaf een checkpoint
Richt een trainingsrun op het checkpoint dat u net hebt aangestuurd in plaats van op het basismodel, zodat elke ronde begint waar de vorige eindigde. Er worden alleen gewichten geinitialiseerd; de optimizer-status wordt niet hersteld, en daarom is het verstandig ronde een als haalbaarheidstest te behandelen.
TrainingGPU's gehuurd per ronde
ACT en SmolVLA op een 4090, Pi0 en GR00T N1.5 of N1.7 op een A100 met 80 GB. U start een ronde, de pod komt op, checkpoints komen in uw bucket terecht, en u betaalt voor de uren die de ronde heeft gekost.
GPU-prijzenRondes plannen
Het interventiepercentage is de voortgangsmaat van de lus: gecorrigeerde frames gedeeld door frames van de run. Stel in waar u begint en hoeveel elke ronde oplevert, en bekijk hoeveel rondes nodig zijn om waar u wilt komen.
| Ronde | Interventiepercentage | Gecorrigeerde frames |
|---|---|---|
| 1 | 30.0 % | 900 |
| 2 | 22.5 % | 675 |
| 3 | 16.9 % | 506 |
| 4 | 12.7 % | 380 |
| 5 | 9.5 % | 285 |
| 6 | 7.1 % | 214 |
| Σ | 2 960 | |
Een model, geen voorspelling. Echte rondes verlopen grillig, en een ronde die het percentage niet beweegt, heeft niets opgeleverd; precies dat is het signaal om op te letten.
De lus zelf bouwen versus hier draaien
Niets hiervan is met de hand onmogelijk. Het is een kwestie van hoeveel avonden naar infrastructuur gaan in plaats van naar rondes, en er is een rij waarin het zelf doen duidelijk de betere keuze is.
| Stap van de lus | Zelf opzetten | Op AY-Robots |
|---|---|---|
| Overnemen tijdens de run | Een leader-arm, of eigen code op de servobus. Toetsenbord- en slider-overname, inclusief veilige limieten, schrijft en debugt u zelf op echte hardware. | Leader-arm, toetsenbord of sliders, gekozen bij de start van de run. De hoekbegrenzing zit in de server. |
| Interventies markeren | U voegt de flag-kolom toe, houdt hem uitgelijnd met de frame-index en controleert hem opnieuw bij elke wijziging van het opnameformaat. | Elk frame dat tijdens een overname wordt opgenomen, wordt automatisch gemarkeerd, met de aangestuurde pose in de action-kolom. |
| Runs sorteren | Mapafspraken en shellscripts. De stilstaande frames rond een overdracht moet u zelf vinden en eruit filteren. | Een beslissing per run op de opslagkaart. Overdrachtsframes blijven in de raw-map. |
| Gemengde dataset bouwen | Merge-scripts per formaatversie. Episode-indices, metadata en videoverwijzingen consistent krijgen is het vervelende werk. | Samenstellen uit origineel plus correcties met episodeselectie per bron; het resultaat is een normale dataset. |
| De volgende ronde starten bij de laatste policy | U verdraadt het checkpoint zelf in de trainer, en u kunt daarbij ook de optimizer-status herstellen als u een echte resume wilt. | Een veld voor het basischeckpoint. Alleen gewichten: het initialiseert vanaf het checkpoint, het is geen optimizer-resume. |
| Controle over de trainingslus | Volledig. Uw eigen loss, uw eigen schema, uw eigen ablaties, uw eigen instrumentatie, geen platform ertussen. Als de onderzoeksvraag de trainingslus zelf is, doet u het met de hand. | Een vast traject met een vaste lijst policies en de hyperparameters die het formulier aanbiedt, geen vrije code. |
De papers waarop dit is gebaseerd
Lees deze voordat u het oneens bent met de lus. Elke link gaat naar de abstract-pagina, niet naar een betaalmuur.
- A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning
Stephane Ross, Geoffrey J. Gordon, J. Andrew Bagnell · 2011 · AISTATS 2011 (PMLR 15)
De oorspronkelijke DAgger-paper: beschrijft het probleem van de opstapelende fout, geeft de T-kwadraat-grens voor de zuiver supervised aanpak en stelt voor data te aggregeren uit de toestanden die de lerende agent zelf bezoekt.
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
De human-gated variant: de expert beslist wanneer hij de controle overneemt, in plaats van bevraagd te worden over toestanden die de policy koos; precies deze modus is hier geimplementeerd.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
De andere manier om interventies te sturen: onenigheid binnen een ensemble als vertrouwenssignaal voor wanneer de lerende agent alleen mag handelen. Leerzaam contrast met het aan een mens overlaten.
- ThriftyDAgger: Budget-Aware Novelty and Risk Gating for Interactive Imitation Learning
Ryan Hoque, Ashwin Balakrishna, Ellen Novoseller, Albert Wilcox, Daniel S. Brown, Ken Goldberg · 2021 · CoRL 2021
Behandelt menselijke aandacht als de schaarse hulpbron en vraagt alleen om hulp bij nieuwe of risicovolle toestanden; het juiste uitgangspunt wanneer een persoon de hele middag toezicht houdt op de arm.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
Het eerlijke alternatief: in plaats van de policy online te corrigeren, worden de demonstraties verstoord zodat de expert herstelgedrag laat zien. Goed om te kennen voordat u zich vastlegt op interventies.
- Interactive Imitation Learning in Robotics: A Survey
Carlos Celemin, Rodrigo Perez-Dattari, Eugenio Chisari, Giovanni Franzese, Leandro de Souza Rosa, Ravi Prakash, Zlatan Ajanovic, Marta Ferraz, Abhinav Valada, Jens Kober · 2022 · arXiv:2211.00600
De plattegrond van het veld: welke vormen van menselijke feedback er bestaan, via welke interfaces ze binnenkomen en waar interventie in DAgger-stijl daartussen staat.
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
De ACT-paper. Action chunking is de reden waarom een goedkope arm uberhaupt door een imitatiepolicy kan worden aangestuurd, en ACT is de policy waarmee een DAgger-ronde het snelst te doorlopen is.
- π0: A Vision-Language-Action Flow Model for General Robot Control
Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn et al. · 2024 · arXiv:2410.24164
Een op flow matching gebaseerd VLA bovenop een voorgetraind vision-language-model, en een van de checkpoints die u hier kunt finetunen; de paper stelt expliciet dat nieuwe vaardigheden uit finetuning komen, niet uit het basismodel alleen.
Veelgestelde vragen
Heb ik een leader-arm nodig voor DAgger?
Nee. Kies bij de start van de run toetsenbord- of slider-invoer, dan is de overname vanaf het eerste frame handmatig en verloopt ze vanuit de browser. Een leader-arm is prettiger voor fijne bewegingen en is de enige modus waarin de arm zichzelf uitlijnt voor de overdracht, maar de lus draait ook zonder.
Hoeveel DAgger-rondes heb ik nodig?
Een eerlijk vast getal bestaat niet. Let op het interventiepercentage: daalt het niet van de ene ronde naar de volgende, dan heeft die ronde niets opgeleverd, en ligt de oorzaak meestal in de taakopzet, de camera's of de oorspronkelijke dataset, niet in het aantal rondes.
Is dit echte DAgger of iets losers?
Het is HG-DAgger, de human-gated variant. Klassiek DAgger bevraagt de expert over toestanden die de policy zelf koos, inclusief toestanden waarin geen enkele verstandige operator een echte arm zou laten komen. Hier beslist een mens wanneer er wordt ingegrepen, en alleen die segmenten worden labels.
Train ik alleen op de correcties?
Nee, en dat moet u ook niet doen. Alleen trainen op correcties levert een policy op die uitsluitend herstelgedrag kent. De samengestelde dataset bestaat uit de oorspronkelijke data plus de correcties, met episodes per bron expliciet gekozen.
Zet Verder trainen vanaf checkpoint de trainingsrun voort?
Het initialiseert de gewichten vanaf dat checkpoint. De optimizer-status wordt niet hersteld, dus in strikte zin is het geen resume. In de praktijk zijn het de gewichten die het geleerde gedrag over een ronde heen dragen, maar het is goed te weten welke van de twee u krijgt.
Hoe wordt het interventiepercentage berekend?
Als interventie gemarkeerde frames gedeeld door het totale aantal frames van de run. Het staat in de overname-status en is het ene getal dat het waard is per ronde te noteren, samen met het aangestuurde checkpoint en de getrainde mix.
Met welke policies kan ik deze lus draaien?
ACT, SmolVLA, Pi0, en GR00T N1.5 of N1.7. De lus zelf is policy-onafhankelijk, want hij levert alleen datasets en checkpoints op; het praktische verschil zit in hoe lang een ronde duurt en welke GPU nodig is.
Kan dit ook zonder eigen robot?
Opnemen en trainen kan zonder: door datasets te kopen op de marktplaats of operators in te huren, en een echte SO-100 kunt u op de live-pagina in de browser besturen. Een DAgger-ronde is iets anders: die vraagt een arm die u midden in de run kunt overnemen, dus voor de lus zelf heeft u hardware op uw eigen bureau nodig.
A real SO-100, live in the browser. No signup, no hardware needed.
Draai deze week uw eerste ronde
Installeer de client, stuur een checkpoint aan dat u al heeft, en neem over zodra de arm voorbij de kubus grijpt. Die ene run is een DAgger-ronde in het klein: alles daarna is de mix samenstellen en de GPU-uren betalen.