OpenAI leert robot Rubiks kubus oplossen met één hand

Onderzoeksinstituut OpenAI heeft zijn mensachtige robothand Dactyl geleerd om Rubiks kubus op te lossen. De robothand doet dat niet in een recordtijd, maar wel met opvallende vingervlugheid.

De robothand van OpenAI bestaat in feite uit oude hardware, volgens de organisatie is dergelijke hardware al vijftien jaar op de markt. De aansturing is echter geheel nieuw. De organisatie heeft in simulaties algoritmes getraind waarmee de robothand vervolgens zelf kan leren om Rubiks kubus op te lossen.

Al sinds mei 2017 werkt OpenAI aan het project. Na enkele maanden waren de simulaties al klaar, maar het uitvoeren bleek moeilijker. In 2018 lukte het de onderzoekers om de robothand een blok te laten vasthouden en te draaien, maar pas nu heeft de machine de vingervlugheid om Rubiks kubus op te lossen.

De onderzoekers merken op dat het oplossen van Rubiks kubus met één hand erg uitdagend is, ook voor mensen. Het kost kinderen jaren tijd om de benodigde behendigheid hiervoor te krijgen. Het lukt de robothand nog niet altijd om de puzzel op te lossen. Bij 60 procent van de pogingen gaat het goed, al daalt dat naar 20 procent bij een maximale moeilijkheidsgraad.

Ook als de robothand belemmerd wordt weet het algoritme stand te houden. OpenAI bond bijvoorbeeld twee vingers aan elkaar vast, voorzag de hand van een rubberen handschoen, legde er een doek overheen en verstoorde het proces door er een pluche giraffe tegenaan te duwen.

OpenAI geeft in een video uitleg over het proces en heeft een paper gepubliceerd. Ook heeft de organisatie een onbewerkte video online gezet waarin te zien is hoe de robothand in vier minuten Rubiks kubus oplost.

Door Julian Huijbregts

Nieuwsredacteur

15-10-2019 • 19:00

20

Reacties (20)

20
20
10
2
0
6
Wijzig sortering
Prijs van snelst de Rubik Kubus oplossen zal hij helaas niet verdienen haha.

Wel bijzonder spooky dit. Een robot die een Kubus op kan lossen toont toch wel aan dat hij verder kan denken dan menig menselijk brein.
Ik zie vooral dat de computer een stuk dommer is dan de mens. Vooral ook omdat het door de mens is geschreven. Als een computer een bepaalde handeling doet die wordt beloon met het goed uitvoeren van een handeling zou deze direct moeten onthouden keer op keer exact dezelfde beweging te doen om de ring te draaien. In plaats daarvan maakt de robot keer op keer dezelfde fout. Het kan uiteraard zijn dat de rekenkracht achter dit model gewoon bijzonder laag is waardoor het zo lang duurt. Het is wel fascinerend om te zien dat AI nog steeds wordt geprogrammeerd met in het achterhoofd het menselijk brein in gedachte. Je ziet dit ook terug in zelfrijdende auto's. Ze zijn nodig om files en ongelukken te voorkomen. En wat doen we? We laten ze exact hetzelfde rijden als een mens. Met dezelfde vertraging optrekken bij een stoplicht. Net zo lang treuzelen om een kruispunt over te steken en net zo angstig anticiperen op onzekere situaties. Ik kan er soms best wel om lachen dat de mens zo kortzichtig is.
Ik lees een paar punten in je verhaal waar ik het of oneens ben of waarvan ik verwacht dat dit in korte tijd veranderd zodra we de mens uit de directe omgeving van het te spreken door a.i. aangestuurde object halen. Over dit laatste ben ik dan ook redelijk benieuwd wat jouw stelling hierin is.
Ik zie vooral dat de computer een stuk dommer is dan de mens. Vooral ook omdat het door de mens is geschreven.
Ik vermoed dat je niet helemaal begrijpt wat een "echte a.i." doet (I could be wrong obviously, ik vind mijzelf ook een leek op dit gebied en mensen mogen mij zeker corrigeren).
Voorzover mijn kennis gaat heeft een a.i. een paar dingen; leervermogen en adaptiviteit (het 1 gaat niet zonder het ander in deze), adaptiviteit houd in dat het zichzelf kan aanpassen en in weze dus ook zijn eigen code. Hier zijn al enkele interesante experimenten mee gedaan dus ik zou zeggen google is je beste vriend. Maargoed, indien waar, kun je bij een "echte" a.i. dan nog wel spreken dat deze door mensen is geprogrameerd?
Als een computer een bepaalde handeling doet die wordt beloon met het goed uitvoeren van een handeling zou deze direct moeten onthouden keer op keer exact dezelfde beweging te doen om de ring te draaien. In plaats daarvan maakt de robot keer op keer dezelfde fout.
Oneens, hiervoor kun je simpelweg het eerste het beste filmpje van code bullet op youtube bekijken om te zien dat dit pertinent onjuist is bij a.i.. Een a.i. zoekt continue naar manieren om te verbeteren, dat jij het niet ziet maakt niet uit. Misschien is die ene tiende millimeter verschil pink beweging wel net efficienter uitgevoerd qua stroomverbruik of snelheid. En die ene keer lukte het niet, misschien bij net 0,001N meer kracht wel? Weet die robot veel, een baby leert ook niet in 1 keer vlotte zinnen spreken/lopen/fietsen/relaties of uberhaupt zn arm optillen.
Het is wel fascinerend om te zien dat AI nog steeds wordt geprogrammeerd met in het achterhoofd het menselijk brein in gedachte. Je ziet dit ook terug in zelfrijdende auto's. Ze zijn nodig om files en ongelukken te voorkomen. En wat doen we? We laten ze exact hetzelfde rijden als een mens. Met dezelfde vertraging optrekken bij een stoplicht. Net zo lang treuzelen om een kruispunt over te steken en net zo angstig anticiperen op onzekere situaties.
Correctie: bepaalde aspecten van het menselijk brein zoudden wij graag willen terug zien in onze hedendaagse en toekomstige a.i.: leervermogen, adaptiviteit, manieren (en nog een zooi anderen).
Dit word naar mijn mening vooral gedaan omdat in al die dingen die je opnoemt nog een menselijke factor zit. Als jij met je auto rustig door je woonwijk jakkerd langs de school waar je neefje zit vind je het denk ik niet wenselijk als er in één keer een computer met 250 van links komt terwijl je het kruispunt oversteekt. Het maakt niet uit of die computer foolproof is en dat ie exact 100% zeker weet dat er niks ernstigs gebeurd. Jij als mens wilt dat niet en dat is heel begrijpelijk, want als bijrijder van de auto raak je sws zwaar getraumatiseerd en misselijk en als spectator wil je het niet want je schrok.
Ik heb hierboven de boel aan alle kanten van het spectrum even ge-extremiseerd, echter:
- zolang mensen ertussen zitten, wil je niet dat een a.i. of wat voor apparaat dan ook voluit automatisch op zn hoogste versnelling gaat. Mensen zijn namelijks niet te berekenen, reageren allen anders.
- als bijv. alle autos op de weg a.i. waren en met elkaar konden babbelen (en mensen/dieren niet de weg oprennen) dan zoudden deze voertuigen best met 80 door een woonwijk kunnen jakkeren. Dan nog is de vraag of dat gewenst/comfortabel is.
adaptiviteit houd in dat het zichzelf kan aanpassen en in weze dus ook zijn eigen code.
Neen, adaptiviteit is net iets waar veel van de huidige AI's erg slecht in zijn. In feite kunnen ze alleen goed reageren op situaties die ze al kennen. Leren gebeurt van te voren en enkel met een beperkte set aan voorbeelden.
Een a.i. zoekt continue naar manieren om te verbeteren, dat jij het niet ziet maakt niet uit.
Nope, de meeste AI's worden eerst getrained en dan, als het ding goed genoeg performt wordt de structuur vastgelegd en kan er niks meer veranderen. Er is dus een losse leerfase (die eindeloos een handeling herhaalt en steeds optimaler wordt, en er is een soort 'afspeel' fase waarbij de ai alleen maar handelt maar niet meer leert van die handelingen.

Verder is je kritiek wel terecht. De meeste AI's worden gemaakt om in een wereld vol met mensen te functioneren. Daar moet die AI dus (leren) rekening mee (te) houden voorzover dat een issue is.
Is wat jij beschrijft niet eerder een vorm vab Machine Learning? Ik weet dat de termen vaak door elkaar gebruikt worden echter hoeft naar mijn weten een ai niet zozeer getrained te worden met voorgelegde input.

Althans om even terug te vallen op mijn code bullet reference,,
zijn creaties krijgen geen data set, enkel tools zodat het zijn omgeving kan waarnemen, randvoorwaarden en een objective. Verder leert het alles met vallen en opstaan. Machine Learning daarintegen maakt inderdaad gebruik van vooraf gevalideerde datasets, en word in het begin zn output gecontroleerd er weer ingestopt zodat deze 'leert'. Echter verschilt dit dus wel degelijk met wat verstaan word onder een echte a.i. (again, i can be wrong. Een gedetailleerde uitleg waar de crux in dat geval zit is meer dan welkom).

Veel dingen noemen wij ook a.i. terwijl we eigenlijk een vorm van ML zien. Hierdoor is het onderscheid voor veel mensen ook lastig te zien.

[Reactie gewijzigd door Unsocial Pixel op 24 juli 2024 15:36]

Is wat jij beschrijft niet eerder een vorm vab Machine Learning?
Veel dingen noemen wij ook a.i. terwijl we eigenlijk een vorm van ML zien.
Volgens mij is Machine Learning een onderdeel van het brede veld van Artificial Intelligence.
In principe zijn de vijanden in mario ook een vorm van AI maar zijn niet van het type ML.

Je hebt wel gelijk in dat wat ik beschreef onder ML valt.
Maar daar had jij het dus ook over. Systemen die iets kunnen leren. Het is een algemene term.
Verder leert het alles met vallen en opstaan.
Nou ja, dat soort systemen zijn er wel. Op de site van OpenAI noemen ze het 'meta-learning' en dit zou dus erg helpen met de adaptiviteit. Ze kunnen die robothand lichtelijk in de war brengen waarna het de situatie evalueert en een nieuwe strategie ontwikkelt, in real time en met maar een klein tijdelijk verlies van functie.
Wat dat betreft is dit een soort doorbraak in adaptiviteit denk ik. Het is nog in een onderzoeksfase maar gaat er uiteindelijk wel komen, die adaptiviteit waar jij het over had.

Google had ook een systeem dat zonder voorkennis een brodspel uit kan zoeken. Ik geloof dat ze daar Adverserial Neural Networks voor gebruikten. Maar dat is nog steeds afhankelijk van een appart leerproces waarbij er eigenlijk twee neurale netwerken tegen elkaar spelen en elkaar slimmer maken.
En na dat leerproces heb je eiogenlijk weer een vaste en niet adaptieve NN die enkel goed is in 1 ding.
Dat was zeg maar een hoogstandje in automatisch leren.

Hoe dan ook, op dit moment zijn AI's over het algemeen enorm slecht in het omgaan met veranderingen.
Er zijn uitzonderingen maar dat zijn allemaal nog researchprojecten.
wat verstaan word onder een echte a.i.
'Echte A.I.' is niet echt een term. Zoals ik al zei, de vijanden in een willekeurige game noem je ook A.I.
Wat jij mischien bedoelt is 'general A.I.'. Dat is kunstmatige intelligentie die in staat is een willekeurig probleem op te lossen. Dat is inderdaad iets waar mensen hard naar op zoek zijn. Maar het is een erg moeilijk probleem en persoonlijk denk ik dat ehcte general A.I. mischien niet eens bestaat als zodanig. Vaak worden onze hersenen als voorbeeld gebruikt van een general intelligence. Maar wij hebben best wel veel beperkingen en het lijkt soms eerder alsof we eigenlijk een verzameling zijn van heel veel specialistische intelligenties en dus juist niet zo goed in staat zijn op een generieke manier problemen op te lossen. Ook voor ons geldt dat als een probleem te ver buiten ons kunnen ligt dat we dat niet gaan kunnen oplossen. Een goed voorbeeld is hoe slecht wij mensen zijn in statistieken. Het bekende 'monty hall' probleem laat dat heel nadrukkelijk zien. De dingen waar wij goed in zijn hebben veel te maken met omgaan met de omgeving. Dit is vooral het resultaat van evolutie en niet zozeer van actief leren. Daarnaast hebben we dingen als cultuur waarmee we 'truukjes' kunnen overbrengen op anderen. Met 'truukjes' bedoel ik dan manieren om met de omgeving om te gaan, mentale gereedschappen. Die leer je dus niet door ervaring in het echte leven maar door het overbrengen van informatie die min of meer toevallig in het verleden door iemand is opgedaan.

Anyway, er is veel te zeggen over dit soort dingen. Kan wel door blijven gaan maar heb geen tijd :)

Hoe dan ook, AI is de overkoepelende term. Zodra je een computerprogramma op basis van input een keuze laat maken heb je eigenlijk al AI. De logica is dan direct vastgelegd in code en bepaald door de programmeur.
Binnen AI heb je ML, dat zijn weer systemen die je werkelijk iets kunt leren middels externe input.
En binnen ML heb je dan weer meerdere stromingen die verschillende manieren van leren hanteren.
Daaronder vallen weer Neurale Netwerken, die ook weer een aantal subonderdelen bevatten.
En deze hand met rubikspuzzle is dan een speciale subtak van 1 van de takken van NN. :)
Ten eerste heel erg dank voor de uitgebreide uitleg. Maar wel 1 ding waar ik tegenaan loop:
Bij mijn veronderstelling van a.i. heb ik altijd begrepen dat het fundamentele verschil met machine learning is dat je bij ml de computer uiteindelijk verteld welke die goed en fout heeft om hem daarna weer verder te laten leren terwijl je bij a.i. enkel randvoorwaarden en een doel geeft en deze het verder zelf laat uitzoeken.

Echter heb ik door je comment nu al een discussie gestart met een collega over supervised ml en untrained ml.

[Reactie gewijzigd door Unsocial Pixel op 24 juli 2024 15:36]

Nee, A.I. is echt een heel brede term. En intelligentie op zich ook. Waar jij op doel zijn bepaalde manieren van A.I. implementeren die vroeger erg aan werden gehangen in academische kringen. Dat is ook verbonden aan bepaalde talen waarmee je dan inderdaad randvoorwaarden kunt specificeren enzo. Maar zoals ik al zei zijn domme geprogrammeerde vijanden in een spel ook een vorm van A.I.

ML is ook een vrij algemene term binnen de A.I. en het houdt enkel in dat je externe input gebruikt om de output te verbeteren. Leren dus. Door een machine. :) Maar ook dit kan op verschillende manieren. En er zijn tegenwoordig dus methodes voor ML die verder heel weinig voorkennis nodig hebben om een situatie te analyseren en dusdanig informatie uit de omgeving oppikken dat een bepaalde taak kan worden volbracht.

Zoals je onderhand al weet kun je bij ML dus een onderscheid maken tussen supervised ML (dus dan corrigeer je als het ware extern) en untrained ML (wat ik dan zelf-lerend zou noemen). Er is ook een soort tussenvorm en dat heet 'adverserial neural networks'. Hierbij leert een NN van versies van zichzelf. Het leert als het ware van zn eigen fouten. Het komt aan het eind van het proces neer op untrained ML, maar houdt eigenlijk in dat het zichzelf supervised.
"een robot die een Kubus op kan lossen verder denken dan menselijk brein?"

zo eentje?
https://www.samsung.com/s...rubiks-cube-world-record/ ?
Daarbij is zo'n kubus oplossen niet eens heel moeilijk. Zelf heb ik me er nooit in verdiept, maar schijnt dat er een aantal standaard "doelen" of stappen zijn om er te geraken (eerste stap zou zijn 1 volledig gekleurd vlak maken).
Yup. Eigenlijk zijn het maar 6 stappen en wat algoritmes om die 6 stappen te voltooien.
Stap 1: Een wit kruis maken
Stap 2: De vier hoekstenen plaatsen
Stap 3: De middelste laag oplossen
Stap 4: Een geel kruis maken
Stap 5: De hoekstenen oplossen
Stap 6: De hoekstenen draaien naar de juiste kant

[Reactie gewijzigd door walteij op 24 juli 2024 15:36]

De kunst zit niet in het oplossen, dat kunnen computers al heel lang.
De kunst zit in het correct bewegen van de vingers. Vgm is dát juist het deel dat mbv AI is geregeld.
Dat is inderdaad de kunst van deze robot ja. Knap om te zien dat ze dit de robot hebben kunnen leren.
Ik reageerde op de opmerking van @Tokkes dat het oplossen van de kubus niet zo heel moeilijk is, zolang je het stappenplan en de algoritmes maar volgt.
Juist dat is iets dat je een computer juist heel eenvoudig kunt leren.
Het is een vaststaand algoritme. Een kubus van 50x50x50 blokjes, dat wordt al wat meer uitdaging.
Een kubus van 50x50x50 is niet echt "moeilijker", het is alleen veel meer werk. Hoe je een willekeurig grote kubus kan oplossen is gewoon bekend en daar bestaan algoritmes voor.
Robots die de kubus "digitaal" oplossen hebben fracties van seconde nodig en gebruiken daarbij alsnog minder draaien dan een mens.
Robots die de kubus "mechanisch" oplossen kunnen dat in ongeveer een seconde. Met een Lego Mindstorms setje kun je er 1 bouwen die het in minder dan een minuut kan.
En deze 1-handed robot is inderdaad geen snelheidsmonster en kan zeker niet tegen een mens met 1 hand op: https://www.youtube.com/watch?v=LvFtz4QAP5g (41 turns/ 6.82 seconds = 6.01 TPS)

[Reactie gewijzigd door Arnaud op 24 juli 2024 15:36]

Lijkt heel onbenullig,

totdat je beseft dat heel veel werk waarvoor handjes nodig zijn waar mogelijk is uitbesteed.

Zal het werkeloosheid opbrengen,
absoluut,
maar aan de andere kant kan het ook veel week weer terugbrengen dat nu wordt uitgevoerd door handjes in china, India, Bangladesh, etc.

Kapitaal wordt steeds belangrijker en dat hebben genoeg in het westen.
Het leren van een oplossing is nog steeds heel anders dan inspelen op onvoorziene “problemen”. Een robot/AI zal in het huidig stadium prima taken van mensen over kunnen nemen, maar anticiperen is er “gelukkig” nog niet.
Anoniem: 1248170 @Iblies16 oktober 2019 04:30
Dan wil je juist geen AI maar voorgeprogrameerde robots, je wilt toch niet dat de robot even geen zin heeft om 500 condensators op een printplaat te plaatsen.
Want?

Als je die kunt programmeren om binnen een bepaalde bandbreedte te opereren zou een AI handiger kunnen zijn.
Anoniem: 1248170 @Iblies16 oktober 2019 10:25
Nou die gaat dan vaker er van tussen om een rookpauze te houden al rookt die niet, of loopt ieder uur een keer naar het toilet om zogenaamd te poepen maar gaat even lekker uitgebreid op de gesloten pot zitten en potje whatsappen.

Nee AI is niet handig, net als dat mensen niet handig zijn.

Op dit item kan niet meer gereageerd worden.