Робот қолмен Рубик текшесін шешу

Фото: Eric Haines
Біз адамға ұқсас робот қолымен Рубик текшесін шеше алатын екі нейрондық желіні үйреттік. Нейрондық желілер толықтай симуляцияда, OpenAI Five қолданатын сол күшейтпелі оқыту кодын және Automatic Domain Randomization (ADR) деп аталатын жаңа тәсілді пайдалана отырып үйретілді. Жүйе оқыту кезінде мүлде көрмеген жағдайларды, мысалы, плюш керікпен түртілуді де еңсере алады. Бұл күшейтпелі оқыту тек виртуалды тапсырмаларға арналған құрал емес, сонымен қатар бұрын-соңды болмаған ептілікті қажет ететін нақты әлем мәселелерін де шеше алатынын көрсетеді.
Адам қолы бізге алуан түрлі тапсырмаларды шешуге мүмкіндік береді. Соңғы 60 жылдағы робототехникада адамдар өздерінің тұрақты жұп қолымен орындай алатын күрделі міндеттер үшін әр тапсырмаға(жаңа терезеде ашылады) арнайы робот жобалау қажет болды. Балама ретінде адамдар көп мақсатты роботтық жабдықты қолдануға ондаған жыл жұмсады(жаңа терезеде ашылады), бірақ еркіндік дәрежелерінің көптігіне байланысты табысы шектеулі болды. Атап айтқанда, біз мұнда қолданатын аппараттық құрал жаңа емес — біз қолданатын робот қолы соңғы 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%-ында ғана шешеді (ал ең қиын(жаңа терезеде ашылады) шатастыруда тек 20% жағдайда).
Біз нейрондық желілерді симуляцияда(жаңа терезеде ашылады) күшейтпелі оқыту және шешім қадамдарын таңдау үшін Kociemba алгоритмін(жаңа терезеде ашылады) пайдаланып, Рубик текшесін шешуге үйретеміз.A Домендік(жаңа терезеде ашылады) рандомизация(жаңа терезеде ашылады) тек симуляцияда үйретілген желілердің нақты роботқа көшуіне мүмкіндік береді.

Біз тап болған ең үлкен қиындық — симуляцияда нақты әлемнің физикасын қамтитындай жеткілікті әртүрлі орталар жасау болды. Үйкеліс, серпімділік және динамика сияқты факторларды Рубик текшелері немесе робот қолдары секілді күрделі нысандар үшін өлшеу мен модельдеу өте қиын, сондықтан біз тек домендік рандомизацияның өзі жеткіліксіз екенін анықтадық.
Мұны еңсеру үшін біз Automatic Domain Randomization (ADR) деп аталатын жаңа әдісті әзірледік, ол симуляцияда барған сайын күрделене түсетін орталарды шексіз түрде жасайды.B Бұл бізді нақты әлемнің дәл моделіне тәуелділіктен босатады және симуляцияда үйренілген нейрондық желілерді нақты әлемде қолдануға көшіруге мүмкіндік береді.
ADR Рубик текшесін шешуді үйренетін бір ғана, рандомизацияланбаған ортамен басталады. Нейрондық желі тапсырманы жақсырақ орындай бастағанда және өнімділік шегіне жеткенде, домендік рандомизация көлемі автоматты түрде артады. Бұл тапсырманы қиындатады, өйткені енді нейрондық желі көбірек рандомизацияланған орталарға жалпылауды үйренуі керек. Желі өнімділік шегінен қайта асқанша үйрене береді, содан кейін рандомизация тағы да күшейеді, және бұл процесс қайталанады.
Біз рандомизациялайтын параметрлердің бірі — Рубик текшесінің өлшемі (жоғарыда). ADR Рубик текшесінің бекітілген өлшемінен басталады да, оқыту ілгерілеген сайын рандомизация ауқымын біртіндеп кеңейтеді. Біз дәл осы тәсілді басқа барлық параметрлерге де қолданамыз, мысалы текшенің массасы, робот саусақтарының үйкелісі және қолдың көрнекі беткі материалдары. Осылайша нейрондық желі барған сайын қиындай түсетін осы жағдайлардың бәрінде Рубик текшесін шешуді үйренуі керек.
Домендік рандомизация бізден рандомизация ауқымдарын қолмен көрсетуді талап етті, бұл қиын, өйткені тым көп рандомизация оқытуды қиындатады, ал тым азы нақты роботқа көшуге кедергі келтіреді. ADR мұны адам араласуынсыз уақыт өте келе рандомизация ауқымдарын автоматты түрде кеңейту арқылы шешеді. ADR пәндік білімге деген қажеттілікті жояды және әдістерімізді жаңа міндеттерге қолдануды жеңілдетеді. Қолмен жасалатын домендік рандомизациядан айырмашылығы, ADR тапсырманы үнемі күрделі күйде ұстайды, сондықтан оқыту ешқашан толық жинақталмайды.
Біз ADR-ді блокты аудару тапсырмасындағы қолмен жасалатын домендік рандомизациямен салыстырдық, онда бізде бұрыннан күшті базалық деңгей бар еді. Бастапқыда ADR нақты роботтағы жетістіктер саны бойынша нашаррақ нәтиже көрсетеді. Бірақ ADR энтропияны, яғни ортаның күрделілігінің өлшемін, арттырған сайын, көшіру өнімділігі ақырында базалық деңгейден екі есе асып түседі — адам тарапынан баптаусыз.
ADR көмегімен біз нақты робот қолында Рубик текшесін шеше алатын нейрондық желілерді симуляцияда үйрете аламыз. Себебі ADR желіні шексіз әртүрлі рандомизацияланған симуляцияларға ұшыратады. Дәл осы оқыту кезіндегі күрделілікке ұшырау желіні симуляциядан нақты әлемге көшуге дайындайды, өйткені ол кезіккен кез келген физикалық әлемді тез анықтап, соған бейімделуді үйренуі керек.
Әдісіміздің шектерін тексеру үшін, қол Рубик текшесін шешіп жатқанда, біз әртүрлі бұрмалаулармен тәжірибе жасаймыз. Бұл тек басқару желіміздің орнықтылығын ғана емес, сонымен бірге мұнда текшенің орны мен бағдарын бағалау үшін қолданылатын көру желімізді де тексереді.
Біз ADR-пен үйретілген жүйеміздің, олармен ешқашан жаттықпасақ та, бұрмалауларға таңғаларлықтай төзімді екенін анықтадық: робот тексерілген барлық бұрмалаулар жағдайында аударулар мен бет айналуларының көбін сәтті орындай алады, бірақ ең жоғары өнімділік деңгейінде емес.
Біз мета-оқыту(жаңа терезеде ашылады), яғни үйренуді үйрену, көп мақсатты жүйелерді құрудың маңызды алғышарты деп санаймыз, өйткені ол оларға ортадағы өзгеретін жағдайларға жылдам бейімделуге мүмкіндік береді. ADR артындағы гипотеза мынадай: жадпен толықтырылған желілер жеткілікті түрде рандомизацияланған ортамен біріктірілгенде пайда болатын мета-оқытуға әкеледі, мұнда желі өзі қолданылатын ортаға мінез-құлқын тез бейімдеуге мүмкіндік беретін оқыту алгоритмін жүзеге асырады.C
Мұны жүйелі түрде тексеру үшін біз нейрондық желіміз үшін әртүрлі бұрмалаулар кезіндегі текшенің әр аударылуына жету уақытын өлшейміз (текшені басқа түс жоғары қараатындай етіп айналдыру), мысалы желінің жадын қалпына келтіру, динамиканы қалпына келтіру немесе буынды сындыру. Бұл тәжірибелерді біз симуляцияда жүргіземіз, бұл бақыланатын жағдайда 10 000 сынақ бойынша орташа өнімділікті есептеуге мүмкіндік береді.
Бастапқыда нейрондық желі көбірек аударуды сәтті орындай бастаған сайын, әр келесі жетістікке кететін уақыт азаяды, өйткені желі бейімделуді үйренеді. Бұрмалаулар қолданылғанда (жоғарғы диаграммадағы тік сұр сызықтар), жетістікке жету уақыты күрт өсетінін көреміз. Бұл желі қолданып отырған стратегия өзгерген ортада жұмыс істемейтіндіктен болады. Содан кейін желі жаңа орта туралы қайта үйренеді де, жетістікке жету уақыты бұрынғы базалық деңгейге дейін қайта азаяды.
Біз сондай-ақ сәтсіздік ықтималдығын өлшедік және бет айналулары үшін де дәл сондай тәжірибелер жүргіздік (жоғарғы бетті сағат тілімен немесе оған қарсы 90 градусқа бұру) және бейімделудің дәл сондай үлгісін байқадық.D
Желілерімізді визуализациялау олардың жадта нені сақтайтынын түсінуге мүмкіндік береді. Желілер күрделене түскен сайын бұл барған сайын маңызды бола түседі.
Жоғарыда біздің нейрондық желінің жады визуализацияланған. Біз интерпретациялау құралдар жинағындағы құрылыс блогын(жаңа терезеде ашылады), атап айтқанда теріс емес матрицалық жіктеуді, осы жоғары өлшемді векторды 6 топқа ықшамдап, әрқайсына бірегей түс тағайындау үшін қолданамыз. Содан кейін әрбір уақыт қадамы үшін қазір басым болып тұрған топтың түсін көрсетеміз.
Біз әр жад тобына мағыналық тұрғыдан маңызды мінез-құлық сәйкес келетінін байқаймыз. Мысалы, желінің жадындағы басым топқа ғана қарап, оның текшені айналдырғалы тұрғанын немесе жоғарғы бетті сағат тілімен бұратынын ол орындалмай тұрып айта аламыз.
Робот қолымен Рубик текшесін шешу әлі де оңай емес. Біздің әдіс қазір 26 бет айналдыруды қажет ететін ең қиын шатастыру(жаңа терезеде ашылады) қолданылғанда Рубик текшесін 20% жағдайда шешеді. Болдырмау үшін 15 айналдыруды қажет ететін қарапайымдау шатастырулар үшін сәттілік деңгейі 60%. Рубик текшесі түсіп қалса немесе уақыт шегіне жетсе, біз әрекетті сәтсіз деп санаймыз. Алайда біздің желі Рубик текшесін кез келген бастапқы күйден шеше алады. Сондықтан егер текше түсіп қалса, оны қайтадан қолға салып, шешуді жалғастыруға болады.
Жалпы, біздің нейрондық желі алғашқы бірнеше бет айналдыруы мен аударуы кезінде әлдеқайда жиі сәтсіздікке ұшырайтынын байқаймыз. Себебі сол бастапқы айналдырулар мен аударулар кезінде нейрондық желі Рубик текшесін шешу мен физикалық әлемге бейімделу арасында тепе-теңдік сақтауы керек.
Ілгерілеуімізді өлшеу және мәселені шешуге қолайлы ету үшін, біз ақырында кәдімгі Рубик текшесін шешуге апаратын аралық қадамдар ретінде текшелердің арнайы нұсқаларын жасап, жобаладық.E

Rubik’s Cube prototypes, from left to right: Locked cube, Face cube, Full cube, Giiker(жаңа терезеде ашылады) cube, regular Rubik’s Cube.
Прототип | Орын + бағдар | Ішкі еркіндік дәрежелері (сенсор) |
Бұғатталған текше | Көру | 0 (Сенсор жоқ) |
Бет текшесі | PhaseSpace | 2 (PhaseSpace) |
Толық текше | PhaseSpace | 6 (PhaseSpace) |
Giiker текшесі | Көру | 6 (Кіріктірілген сенсорлар) |
Кәдімгі Рубик текшесі | Көру | 6 (Көру) |
Адам деңгейіндегі ептілік көп мақсатты роботтарды жасау жолындағы маңызды қадам деп сенеміз және осы бағытта ілгерілеуге қуаныштымыз.
Егер сіз роботтық не виртуалды болсын, барған сайын әмбебап AI жүйелерін жасауға көмектескіңіз келсе, бізге жұмысқа келіңіз!
Түсіндірме ескертпелер
- A
Біз қазір машиналарға меңгеру қиын болып тұрған мәселелерге назар аударамыз: қабылдау және епті манипуляция. Сондықтан нейрондық желілерімізді Kociemba алгоритмі жасаған қажетті бет айналулары мен текше аударуларын орындауға үйретеміз.
- B
Біздің жұмыс 2D орталарды автоматты түрде жасайтын POET(жаңа терезеде ашылады) әдісімен тығыз байланысты. Алайда біздің жұмыс барлық орталарға ортақ бірлескен саясатты үйренеді, ол кез келген жаңадан жасалған ортаға тасымалданады.
- C
Нақтырақ айтқанда, біз шексіз күрделі ортада үйретілген, сыйымдылығы шектеулі нейрондық желі арнайы мақсатқа арналған оқыту алгоритмін үйренуге мәжбүр болады деп болжаймыз, өйткені ол әрбір жеке орта үшін шешімдерді жаттап ала алмайды және барлық рандомизация жағдайында жұмыс істейтін бірыңғай орнықты саясат жоқ.
- D
Толық нәтижелер үшін біздің мақаламызды(жаңа терезеде ашылады) қараңыз.
- E
Біз жасаған жалғыз өзгеріс — әр орталық кішкентай текшенің түрлі түсті жапсырмасынан кішкене бөлікті қиып алу болды. Бұл айналмалы симметрияны(жаңа терезеде ашылады) бұзу үшін қажет болды.
Авторлар
Алғыс
Осы жазба мен мақаланың бастапқы нұсқаларына пікір білдіргендерге алғыс айтамыз: 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 (режиссер), Yvette Solis (продюсер), Brooke Chan (продюсер)
Редактор: Ashley Pilipiszyn
Дизайн: Justin Jay Wang және Ben Barry
Фотография: Eric Haines


