રોબોટિક હાથથી રૂબિક્સ ક્યુબ ઉકેલવું

ફોટો: Eric Haines
અમે માનવી જેવા રોબોટિક હાથથી રૂબિક્સ ક્યુબ ઉકેલવા માટે ન્યુરલ નેટવર્ક્સની એક જોડી તાલીમિત કરી છે. ન્યુરલ નેટવર્ક્સને સંપૂર્ણપણે સિમ્યુલેશનમાં તાલીમ આપવામાં આવી છે, જેમાં OpenAI Five જેવા જ રીઇન્ફોર્સમેન્ટ લર્નિંગ કોડ સાથે Automatic Domain Randomization (ADR) નામની નવી તકનીક જોડવામાં આવી છે. સિસ્ટમ તાલીમ દરમિયાન ક્યારેય ન જોયેલી પરિસ્થિતિઓને પણ સંભાળી શકે છે, જેમ કે રમકડાં જિરાફ દ્વારા ખંખેરાવું. આ દર્શાવે છે કે રીઇન્ફોર્સમેન્ટ લર્નિંગ ફક્ત વર્ચુઅલ કાર્યો માટેનું સાધન નથી, પરંતુ અપ્રતિમ દક્ષતા માંગતા ભૌતિક દુનિયાના પ્રશ્નો પણ ઉકેલી શકે છે.
માનવીય હાથ આપણને વિવિધ પ્રકારના કામ ઉકેલવામાં મદદ કરે છે. છેલ્લા 60 વર્ષના રોબોટિક્સમાં, માનવો પોતાના સ્થિર હાથના જોડાથી જે મુશ્કેલ કામ કરે છે, તેના માટે દરેક કામ(નવી વિન્ડોમાં ખૂલે છે) માટે કસ્ટમ રોબોટ ડિઝાઇન કરવો પડ્યો છે. તેના વિકલ્પરૂપે, લોકો ઘણા દાયકાઓથી સામાન્ય હેતુના રોબોટિક હાર્ડવેરનો ઉપયોગ કરવાનો પ્રયાસ(નવી વિન્ડોમાં ખૂલે છે) કરતા આવ્યા છે, પરંતુ તેમના ઊંચા degrees of freedomને કારણે મર્યાદિત સફળતા મળી છે. ખાસ કરીને, અમે અહીં જે હાર્ડવેર ઉપયોગ કરીએ છીએ તે નવું નથી—અમે જે રોબોટ હાથ ઉપયોગ કરીએ છીએ તે છેલ્લા 15 વર્ષથી છે—પણ સોફ્ટવેર અભિગમ નવો છે.
મે 2017થી, અમે માનવી જેવા રોબોટિક હાથને રૂબિક્સ ક્યુબ(નવી વિન્ડોમાં ખૂલે છે) ઉકેલવા માટે તાલીમ આપવાનો પ્રયાસ કરી રહ્યા છીએ. અમે આ લક્ષ્ય નક્કી કર્યું કારણ કે અમને વિશ્વાસ છે કે આવા રોબોટિક હાથને જટિલ મેનિપ્યુલેશન કાર્યો કરવા સફળતાપૂર્વક તાલીમ આપવી એ સામાન્ય હેતુના રોબોટ્સ માટે પાયો રચે છે. અમે જુલાઈ 2017માં સિમ્યુલેશનમાં રૂબિક્સ ક્યુબ ઉકેલી લીધો હતો. પરંતુ જુલાઈ 2018 સુધી, અમે માત્ર રોબોટ પર એક બ્લોક મેનિપ્યુલેટ કરી શકતા હતા. હવે, અમે અમારું પ્રારંભિક લક્ષ્ય હાંસલ કર્યું છે.
A full solve of the Rubik’s Cube. This video plays at real-time and was not edited in any way.
એક હાથથી રૂબિક્સ ક્યુબ ઉકેલવું માનવો માટે પણ પડકારજનક કાર્ય છે, અને તેને કાબૂમાં લેવા જરૂરી દક્ષતા મેળવવામાં બાળકોને ઘણા વર્ષો લાગે છે. અમારો રોબોટ હજુ તેની ટેકનિકમાં સંપૂર્ણ નિપુણ થયો નથી, કારણ કે તે રૂબિક્સ ક્યુબ 60% વખત ઉકેલે છે (અને અત્યંત મુશ્કેલ(નવી વિન્ડોમાં ખૂલે છે) scramble માટે માત્ર 20% વખત).
અમે સિમ્યુલેશન(નવી વિન્ડોમાં ખૂલે છે)માં રીઇન્ફોર્સમેન્ટ લર્નિંગ અને ઉકેલના પગલાં પસંદ કરવા માટે Kociemba’s algorithm(નવી વિન્ડોમાં ખૂલે છે) નો ઉપયોગ કરીને રૂબિક્સ ક્યુબ ઉકેલવા માટે ન્યુરલ નેટવર્ક્સને તાલીમ આપીએ છીએ.A Domain(નવી વિન્ડોમાં ખૂલે છે) randomization(નવી વિન્ડોમાં ખૂલે છે) માત્ર સિમ્યુલેશનમાં તાલીમ મેળવેલા નેટવર્ક્સને વાસ્તવિક રોબોટ સુધી ટ્રાન્સફર થવા સક્ષમ બનાવે છે.

અમને મળેલો સૌથી મોટો પડકાર એવો પર્યાવરણ બનાવવાનો હતો કે જે સિમ્યુલેશનમાં એટલો વૈવિધ્યસભર હોય કે વાસ્તવિક દુનિયાની ભૌતિકશાસ્ત્રને પકડી શકે. Rubik’s Cubes અથવા રોબોટિક હાથ જેવી જટિલ વસ્તુઓ માટે ઘર્ષણ, લવચીકતા અને dynamics જેવા પરિબળોને માપવા અને મોડલ કરવા અત્યંત મુશ્કેલ છે, અને અમને જણાયું કે ફક્ત domain randomization પૂરતું નથી.
આને પાર કરવા માટે, અમે Automatic Domain Randomization (ADR) નામની નવી પદ્ધતિ વિકસાવી, જે સિમ્યુલેશનમાં અનંત સુધી પ્રગતિશીલ રીતે વધુ મુશ્કેલ પર્યાવરણો બનાવે છે.B આ અમને વાસ્તવિક દુનિયાનું ચોક્કસ મોડલ હોવાની જરૂરિયાતથી મુક્ત કરે છે અને સિમ્યુલેશનમાં શીખાયેલા ન્યુરલ નેટવર્ક્સને વાસ્તવિક દુનિયામાં લાગુ કરવાની મંજૂરી આપે છે.
ADR એક જ, nonrandomized પર્યાવરણથી શરૂ થાય છે, જેમાં ન્યુરલ નેટવર્ક રૂબિક્સ ક્યુબ ઉકેલવાનું શીખે છે. જેમ જેમ ન્યુરલ નેટવર્ક કાર્યમાં વધુ સક્ષમ બને છે અને પ્રદર્શન મર્યાદા સુધી પહોંચે છે, તેમ domain randomizationનું પ્રમાણ આપમેળે વધે છે. આ કાર્યને વધુ મુશ્કેલ બનાવે છે, કારણ કે હવે ન્યુરલ નેટવર્કે વધુ random બનેલા પર્યાવરણોમાં generalize કરવું શીખવું પડે છે. નેટવર્ક ફરી પ્રદર્શન મર્યાદા વટાવે ત્યાં સુધી શીખતું રહે છે, પછી વધુ randomization લાગુ પડે છે, અને આ પ્રક્રિયા પુનરાવર્તિત થાય છે.
અમે randomize કરતા પરિમાણોમાંનું એક રૂબિક્સ ક્યુબનું કદ છે (ઉપર). ADR રૂબિક્સ ક્યુબના સ્થિર કદથી શરૂ થાય છે અને તાલીમ આગળ વધે તેમ randomization range ધીમે ધીમે વધારે છે. અમે આ જ તકનીક બીજા બધા પરિમાણો પર પણ લાગુ કરીએ છીએ, જેમ કે ક્યુબનું દ્રવ્યમાન, રોબોટની આંગળીઓનું ઘર્ષણ, અને હાથની દૃશ્ય સપાટી સામગ્રી. તેથી ન્યુરલ નેટવર્કને આ બધી વધતી જતી કઠિન પરિસ્થિતિઓ હેઠળ રૂબિક્સ ક્યુબ ઉકેલવું શીખવું પડે છે.
Domain randomization માટે અમને randomization ranges હાથથી નક્કી કરવી પડતી હતી, જે મુશ્કેલ છે કારણ કે બહુ વધુ randomization શીખવાનું મુશ્કેલ બનાવે છે જ્યારે બહુ ઓછી randomization વાસ્તવિક રોબોટ સુધી ટ્રાન્સફરમાં અડચણ કરે છે. ADR માનવીય હસ્તક્ષેપ વિના સમય સાથે randomization ranges આપમેળે વિસ્તારીને આ સમસ્યા ઉકેલે છે. ADR domain knowledgeની જરૂરિયાત દૂર કરે છે અને અમારી પદ્ધતિઓને નવા કાર્યોમાં લાગુ કરવી સરળ બનાવે છે. હસ્તચાલિત domain randomizationની સરખામણીએ, ADR કામને હંમેશા પડકારજનક રાખે છે જેથી તાલીમ ક્યારેય converge થતી નથી.
અમે block flipping task પર ADRની સરખામણી હસ્તચાલિત domain randomization સાથે કરી, જ્યાં અમારી પાસે પહેલેથી જ મજબૂત baseline હતી. શરૂઆતમાં, વાસ્તવિક રોબોટ પર સફળતાઓની સંખ્યા મુજબ ADRનું પ્રદર્શન નબળું હોય છે. પરંતુ જેમ ADR entropy વધારે છે, જે પર્યાવરણની જટિલતાનું માપ છે, તેમ અંતે ટ્રાન્સફર પ્રદર્શન baselineની તુલનામાં બમણું થાય છે—માનવીય tuning વિના.
ADRનો ઉપયોગ કરીને, અમે સિમ્યુલેશનમાં એવા ન્યુરલ નેટવર્ક્સને તાલીમ આપી શકીએ છીએ જે વાસ્તવિક રોબોટ હાથ પર રૂબિક્સ ક્યુબ ઉકેલી શકે. કારણ એ છે કે ADR નેટવર્કને અનંત વિવિધ random simulationsનો અનુભવ કરાવે છે. તાલીમ દરમ્યાન આ જટિલતાનો અનુભવ જ નેટવર્કને સિમ્યુલેશનમાંથી વાસ્તવિક દુનિયામાં ટ્રાન્સફર થવા તૈયાર કરે છે, કારણ કે તેને જે પણ ભૌતિક દુનિયા સામે આવે તેને ઝડપથી ઓળખી અને તેના પ્રમાણે પોતાને ઢાળવું શીખવું પડે છે.
અમારી પદ્ધતિની મર્યાદાઓ ચકાસવા માટે, હાથ રૂબિક્સ ક્યુબ ઉકેલી રહ્યો હોય ત્યારે અમે વિવિધ perturbations સાથે પ્રયોગ કરીએ છીએ. આ માત્ર અમારી control networkની robustness જ નહીં, પણ અમારી vision networkની પણ ચકાસણી કરે છે, જેને અમે અહીં ક્યુબની સ્થિતિ અને orientation આંકવા માટે ઉપયોગ કરીએ છીએ.
અમને જણાયું કે ADRથી તાલીમિત અમારી સિસ્ટમ આશ્ચર્યજનક રીતે perturbations સામે robust છે, ભલે અમે ક્યારેય તેમની સાથે તાલીમ ન લીધી હોય: રોબોટ પરીક્ષણ કરાયેલા તમામ perturbations હેઠળ મોટા ભાગના flips અને face rotations સફળતાપૂર્વક કરી શકે છે, જોકે સર્વોચ્ચ પ્રદર્શન પર નહીં.
અમને વિશ્વાસ છે કે મેટા-લર્નિંગ(નવી વિન્ડોમાં ખૂલે છે), અથવા શીખવાનું શીખવું, સામાન્ય હેતુની સિસ્ટમો બનાવવા માટે મહત્વપૂર્ણ પૂર્વશરત છે, કારણ કે તે બદલાતી પરિસ્થિતિઓમાં તેમને ઝડપથી અનુકૂલિત થવા સક્ષમ બનાવે છે. ADR પાછળનું અનુમાન એ છે કે memory-augmented નેટવર્ક્સ અને પૂરતી રીતે random બનાવેલા પર્યાવરણના સંયોજનથી ઉદ્ભવતા મેટા-લર્નિંગ થાય છે, જ્યાં નેટવર્ક એવી શીખવાની અલ્ગોરિધમ અમલમાં મૂકે છે જે તેને તૈનાત કરાયેલા પર્યાવરણને અનુરૂપ ઝડપથી પોતાનું વર્તન અનુકૂળ બનાવવાની મંજૂરી આપે છે.C
આને પ્રણાલીસભર રીતે ચકાસવા માટે, અમે વિવિધ perturbations હેઠળ અમારા ન્યુરલ નેટવર્ક માટે પ્રતિ cube flip સફળતા સુધીનો સમય માપીએ છીએ (ક્યુબને એવી રીતે ફેરવવું કે જુદો રંગ ઉપર આવે), જેમ કે નેટવર્કની memory reset કરવી, dynamics reset કરવી અથવા joint તોડવો. અમે આ પ્રયોગો સિમ્યુલેશનમાં કરીએ છીએ, જે અમને નિયંત્રિત પરિસ્થિતિમાં 10,000 trials પર સરેરાશ પ્રદર્શન માપવાની મંજૂરી આપે છે.
શરૂઆતમાં, જેમ જેમ ન્યુરલ નેટવર્ક સફળતાપૂર્વક વધુ flips હાંસલ કરે છે, તેમ દરેક અનુક્રમિક સફળતા સમય ઘટે છે કારણ કે નેટવર્ક અનુકૂલન શીખે છે. જ્યારે perturbations લાગુ કરવામાં આવે છે (ઉપરના ચાર્ટમાં ઊભી રાખોડી રેખાઓ), ત્યારે સફળતા સમય વધે છે. તેનું કારણ એ છે કે બદલાયેલા પર્યાવરણમાં નેટવર્ક જે વ્યૂહરચના અપનાવે છે તે કામ કરતી નથી. પછી નેટવર્ક નવા પર્યાવરણ વિશે ફરી શીખે છે અને આપણે ફરીથી સફળતા સમયને અગાઉના baseline સુધી ઘટતો જોઈએ છીએ.
અમે failure probability પણ માપીએ છીએ અને face rotations માટે એ જ પ્રયોગો કર્યા (ઉપરની સપાટી 90 ડિગ્રી ઘડિયાળ દિશામાં અથવા વિરોધી દિશામાં ફેરવવી) અને અનુકૂલનનો એ જ પેટર્ન જોવા મળ્યો.D
અમારા નેટવર્ક્સનું દૃશ્યીકરણ અમને સમજવામાં મદદ કરે છે કે તેઓ સ્મૃતિમાં શું સંગ્રહે છે. નેટવર્ક્સની જટિલતા વધે તેમ આ વધુ મહત્વપૂર્ણ બનતું જાય છે.
અમારા ન્યુરલ નેટવર્કની memory ઉપર દૃશ્યરૂપે દર્શાવવામાં આવી છે. અમે interpretability toolboxમાંથી એક building block(નવી વિન્ડોમાં ખૂલે છે), એટલે કે non-negative matrix factorization, નો ઉપયોગ કરીને આ high-dimensional vectorને 6 જૂથોમાં સંક્ષિપ્ત કરીએ છીએ અને દરેકને અનન્ય રંગ આપીએ છીએ. ત્યારબાદ અમે દરેક timestep માટે હાલના પ્રભાવશાળી જૂથનો રંગ દર્શાવીએ છીએ.
અમને જણાયું છે કે દરેક memory group સાથે અર્થસભર વર્તન જોડાયેલું છે. ઉદાહરણ તરીકે, નેટવર્કની memoryમાં માત્ર પ્રભાવશાળી જૂથ જોઈને પણ અમે કહી શકીએ કે તે ક્યુબને ફેરવવા જઈ રહ્યું છે કે ઉપરની સપાટી ઘડિયાળ દિશામાં ફેરવવા જઈ રહ્યું છે તે બનતા પહેલાં જ.
રોબોટિક હાથથી રૂબિક્સ ક્યુબ ઉકેલવું હજુ પણ સરળ નથી. 26 face rotations માંગતા અત્યંત મુશ્કેલ scramble(નવી વિન્ડોમાં ખૂલે છે) લાગુ કરવામાં આવે ત્યારે અમારી પદ્ધતિ હાલમાં રૂબિક્સ ક્યુબ 20% વખત ઉકેલે છે. 15 rotationsમાં ઉલટાવી શકાય એવા સરળ scrambles માટે સફળતા દર 60% છે. જ્યારે રૂબિક્સ ક્યુબ હાથમાંથી પડી જાય અથવા સમય મર્યાદા પૂરી થાય, ત્યારે અમે પ્રયાસને નિષ્ફળ ગણીએ છીએ. છતાં, અમારું નેટવર્ક કોઈપણ શરૂઆતની સ્થિતિથી રૂબિક્સ ક્યુબ ઉકેલવા સક્ષમ છે. તેથી જો ક્યુબ પડી જાય, તો તેને ફરી હાથમાં મૂકીને ઉકેલવાનું ચાલુ રાખવું શક્ય છે.
સામાન્ય રીતે અમે જણાયું છે કે અમારું ન્યુરલ નેટવર્ક શરૂઆતના થોડાક face rotations અને flips દરમિયાન વધુ નિષ્ફળ થવાની શક્યતા ધરાવે છે. કારણ કે એ શરૂઆતની rotations અને flips દરમ્યાન ન્યુરલ નેટવર્કને રૂબિક્સ ક્યુબ ઉકેલવા અને ભૌતિક દુનિયાને અનુરૂપ બનવા વચ્ચે સંતુલન રાખવું પડે છે.
અમારી પ્રગતિનું બેન્ચમાર્કિંગ કરવા અને સમસ્યાને વ્યવહારુ બનાવવા માટે, અમે અંતે સામાન્ય રૂબિક્સ ક્યુબ ઉકેલવાના મધ્યવર્તી પગથિયાં તરીકે ક્યુબના કસ્ટમ સંસ્કરણો બનાવ્યા અને ડિઝાઇન કર્યા.E

Rubik’s Cube prototypes, from left to right: Locked cube, Face cube, Full cube, Giiker(નવી વિન્ડોમાં ખૂલે છે) cube, regular Rubik’s Cube.
પ્રોટોટાઇપ | સ્થિતિ + દિશા | આંતરિક degrees of freedom (સેન્સર) |
Locked cub | Vision | 0 (કોઈ સેન્સર નહીં) |
Face cub | PhaseSpace | 2 (PhaseSpace) |
Full cube | PhaseSpace | 6 (PhaseSpace) |
Giiker cube | Vision | 6 (બિલ્ટ-ઇન સેન્સર્સ) |
સામાન્ય રૂબિક્સ ક્યુબ | Vision | 6 (Vision) |
અમને વિશ્વાસ છે કે માનવ-સ્તરની દક્ષતા સામાન્ય હેતુના રોબોટ્સ બનાવવા તરફનો માર્ગ છે અને અમે આ દિશામાં આગળ વધવા માટે ઉત્સાહિત છીએ.
જો તમે વધુને વધુ સામાન્ય AI સિસ્ટમો, રોબોટિક હોય કે વર્ચુઅલ, બનાવવા મદદ કરવા માંગતા હો, તો અમે ભરતી કરી રહ્યા છીએ!
ફૂટનોટ્સ
- A
અમે હાલ એવી સમસ્યાઓ પર ધ્યાન કેન્દ્રિત કરીએ છીએ કે જેઓમાં મશીનોને પારંગત થવામાં મુશ્કેલી પડે છે: perception અને કુશળ મેનિપ્યુલેશન. તેથી અમે અમારા ન્યુરલ નેટવર્ક્સને Kociemba’s algorithm દ્વારા જનરેટ થયેલા જરૂરી face rotations અને cube flips હાંસલ કરવા માટે તાલીમ આપીએ છીએ.
- B
અમારું કામ આપમેળે 2D પર્યાવરણો જનરેટ કરતી POET(નવી વિન્ડોમાં ખૂલે છે) સાથે ખૂબ સંબંધિત છે. પરંતુ અમારું કામ બધા પર્યાવરણો પર એક સંયુક્ત policy શીખે છે, જે કોઈપણ નવા જનરેટ થયેલા પર્યાવરણમાં ટ્રાન્સફર થાય છે.
- C
વધુ સ્પષ્ટ રીતે કહીએ તો, અમારું અનુમાન છે કે અપરિમિત જટિલતા ધરાવતા પર્યાવરણો પર તાલીમિત મર્યાદિત ક્ષમતાવાળું ન્યુરલ નેટવર્ક નેટવર્કને વિશેષ હેતુવાળી શીખવાની અલ્ગોરિધમ શીખવા મજબૂર કરે છે, કારણ કે તે દરેક વ્યક્તિગત પર્યાવરણ માટે ઉકેલો યાદ રાખી શકતું નથી અને એવી કોઈ એક મજબૂત policy અસ્તિત્વમાં નથી જે તમામ randomizations હેઠળ કામ કરે.
- D
સંપૂર્ણ પરિણામો માટે કૃપા કરીને અમારું પેપર(નવી વિન્ડોમાં ખૂલે છે) જુઓ.
- E
અમે માત્ર એટલો ફેરફાર કર્યો કે દરેક center cubletના રંગીન stickerનો નાનો ભાગ કાપી કાઢ્યો. rotational symmetry(નવી વિન્ડોમાં ખૂલે છે) તોડવા માટે આ જરૂરી હતું.
લેખકો
આભારવિદિ
આ પોસ્ટ અને પેપરના ડ્રાફ્ટ્સ પર પ્રતિસાદ માટે નીચેના સૌનો આભાર: Josh Achiam, Greg Brockman, Nick Cammarata, Jack Clark, Jeff Clune, Ruben D’Sa, Harri Edwards, David Farhi, Ken Goldberg, Leslie P. Kaelbling, Hyeonwoo Noh, Lerrel Pinto, John Schulman, Ilya Sutskever & Tao Xu.
વિડિયો: Peter Jordan (Director), Yvette Solis (Producer), Brooke Chan (Producer)
સંપાદક: Ashley Pilipiszyn
ડિઝાઇન: Justin Jay Wang & Ben Barry
ફોટોગ્રાફી: Eric Haines


