Пређите на главни садржај
OpenAI
Учитавање…

Обучили смо пар неуронских мрежа да решавају Рубикову коцку људсколиком роботском шаком. Неуронске мреже су у потпуности обучене у симулацији, користећи исти код за подстицајно учење као 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% случајева за максимално тешко(отвара се у новом прозору) мешање).

Наш приступ

Обучавамо неуронске мреже да решавају Рубикову коцку у симулацији(отвара се у новом прозору) користећи подстицајно учење и Кочиембин алгоритам(отвара се у новом прозору) за избор корака решења.A Рандомизација(отвара се у новом прозору) домена(отвара се у новом прозору) омогућава да се мреже обучене искључиво у симулацији пренесу на стварног робота.

A colorful collage of robotic arms

Највећи изазов са којим смо се суочили био је да у симулацији створимо довољно разноврсна окружења која могу да обухвате физику стварног света. Факторе као што су трење, еластичност и динамика невероватно је тешко измерити и моделovati за објекте сложене као што су Рубикове коцке или роботске шаке, и утврдили смо да сама рандомизација домена није довољна.

Да бисмо ово превазишли, развили смо нову методу под називом Automatic Domain Randomization (ADR), која у симулацији бесконачно генерише прогресивно тежа окружења.B То нас ослобађа потребе за прецизним моделом стварног света и омогућава да се неуронске мреже научене у симулацији примене у стварном свету.

ADR почиње са једним, нерандомизованим окружењем, у којем неуронска мрежа учи да решава Рубикову коцку. Како неуронска мрежа постаје све боља у задатку и достигне праг перформанси, количина рандомизације домена се аутоматски повећава. То отежава задатак, јер неуронска мрежа сада мора да научи да генерализује на више рандомизованих окружења. Мрежа наставља да учи док поново не премаши праг перформанси, када се укључи још рандомизације, и процес се понавља.

Учитавање...

Један од параметара који рандомизујемо је величина Рубикове коцке (изнад). ADR почиње са фиксном величином Рубикове коцке и постепено повећава опсег рандомизације како обука напредује. Исту технику примењујемо на све остале параметре, као што су маса коцке, трење прстију робота и визуелни површински материјали шаке. Неуронска мрежа зато мора да научи да решава Рубикову коцку у свим тим све тежим условима.

Учитавање...

Рандомизација домена захтевала је да ручно одредимо опсеге рандомизације, што је тешко јер превише рандомизације отежава учење, а премало рандомизације омета пренос на стварног робота. ADR ово решава тако што аутоматски шири опсеге рандомизације током времена без људске интервенције. ADR уклања потребу за доменским знањем и поједностављује примену наших метода на нове задатке. За разлику од ручне рандомизације домена, ADR такође одржава задатак стално изазовним, па се обука никада не конвергира.

Упоредили смо ADR са ручном рандомизацијом домена на задатку окретања блока, где смо већ имали снажну полазну основу. На почетку ADR има лошије резултате у погледу броја успеха на стварном роботу. Али како ADR повећава ентропију, која је мера сложености окружења, перформансе преноса на крају се удвостручују у односу на полазну основу — без људског подешавања.

Анализа

Тестирање робусности

Коришћењем ADR-а можемо да обучимо неуронске мреже у симулацији које могу да реше Рубикову коцку на стварној роботској шаци. То је зато што ADR излаже мрежу бескрајној разноврсности насумично генерисаних симулација. Управо та изложеност сложености током обуке припрема мрежу за прелаз из симулације у стварни свет, јер мора да научи да брзо препозна и прилагоди се било ком физичком свету са којим се суочи.

Учитавање...

Да бисмо тестирали границе наше методе, експериментишемо са разним поремећајима док шака решава Рубикову коцку. Ово не тестира само робусност наше контролне мреже већ и наше визуелне мреже, коју овде користимо да проценимо положај и оријентацију коцке.

Утврђујемо да је наш систем обучен ADR-ом изненађујуће робустан на поремећаје иако никада нисмо тренирали са њима: робот може успешно да изведе већину окретања коцке и ротација страна под свим тестираним поремећајима, мада не уз врхунске перформансе.

Емергентно мета-учење

Верујемо да је мета-учење(отвара се у новом прозору), односно учење како да се учи, важан предуслов за изградњу система опште намене, јер им омогућава да се брзо прилагоде променљивим условима у свом окружењу. Хипотеза иза ADR-а је да мреже проширене меморијом у комбинацији са довољно насумичним окружењем доводе до емергентног мета-учења, где мрежа имплементира алгоритам учења који јој омогућава да брзо прилагоди своје понашање окружењу у којем је распоређена.C

Да бисмо ово систематски тестирали, меримо време до успеха по сваком окретању коцке (окретање коцке тако да друга боја буде горе) за нашу неуронску мрежу под различитим поремећајима, као што су ресетовање меморије мреже, ресетовање динамике или квар зглоба. Ове експерименте спроводимо у симулацији, што нам омогућава да просечно израчунамо перформансе кроз 10.000 покушаја у контролисаном окружењу.

Учитавање...

На почетку, како неуронска мрежа успешно изводи све више окретања, свако наредно време до успеха се смањује јер мрежа учи да се прилагођава. Када се примене поремећаји (вертикалне сиве линије на горњем графикону), видимо нагли скок времена до успеха. То је зато што стратегија коју мрежа користи не функционише у измењеном окружењу. Мрежа затим поново учи о новом окружењу и поново видимо да се време до успеха смањује до претходне основне вредности.

Такође меримо вероватноћу неуспеха и спровели смо исте експерименте за ротације страна (окретање горње стране за 90 степени у смеру казаљке на сату или супротно) и налазимо исти образац прилагођавања.D

Разумевање наших неуронских мрежа

Визуелизација наших мрежа омогућава нам да разумемо шта оне чувају у меморији. Ово постаје све важније како мреже расту по сложености.

Учитавање...

Меморија наше неуронске мреже визуализована је изнад. Користимо градивни блок из алата за интерпретабилност(отвара се у новом прозору), односно ненегативну факторизацију матрице, да бисмо овај високодимензионални вектор сажели у 6 група и свакој доделили јединствену боју. Затим приказујемо боју тренутно доминантне групе за сваки временски корак.

Утврђујемо да свака група меморије има семантички смислено понашање повезано са њом. На пример, гледајући само доминантну групу у меморији мреже, можемо да кажемо да ли ће она ускоро завртети коцку или ротирати горњу страну у смеру казаљке на сату пре него што се то догоди.

Изазови

Решавање Рубикове коцке роботском шаком и даље није лако. Наша метода тренутно решава Рубикову коцку у 20% случајева када се примени максимално тешко мешање(отвара се у новом прозору) које захтева 26 ротација страна. За једноставнија мешања, за која је потребно 15 ротација да би се поништила, стопа успеха је 60%. Када Рубикова коцка испадне или се достигне временско ограничење, покушај сматрамо неуспешним. Међутим, наша мрежа је способна да реши Рубикову коцку из било ког почетног стања. Дакле, ако коцка испадне, могуће је вратити је у шаку и наставити решавање.

Углавном налазимо да је много вероватније да ће наша неуронска мрежа подбацити током првих неколико ротација страна и окретања коцке. То је зато што неуронска мрежа током тих раних ротација и окретања мора истовремено да балансира између решавања Рубикове коцке и прилагођавања физичком свету.

Иза сцене: прототипови Рубикове коцке

Да бисмо мерили свој напредак и учинили проблем савладивим, направили смо и осмислили прилагођене верзије коцки као међукораке ка коначном решавању обичне Рубикове коцке.E

Openai Robotics Rubiks Prototypes

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 система, било роботских или виртуелних, запошљавамо!

Фусноте

  1. A

    Фокусирамо се на проблеме које је машинама тренутно тешко да савладају: перцепцију и спретну манипулацију. Зато обучавамо наше неуронске мреже да изводе потребне ротације страна и окретања коцке које генерише Кочиембин алгоритам.

  2. B

    Наш рад је у тесној вези са POET-ом(отвара се у новом прозору), који аутоматски генерише 2D окружења. Међутим, наш рад учи заједничку политику над свим окружењима, која се преноси на свако новогенерисано окружење.

  3. C

    Конкретније, претпостављамо да неуронска мрежа ограниченог капацитета обучена на окружењима неограничене сложености приморава мрежу да научи наменски алгоритам учења, јер не може да памти решења за свако појединачно окружење и не постоји једна робусна политика која функционише под свим рандомизацијама.

  4. D

    За потпуне резултате погледајте наш рад(отвара се у новом прозору).

  5. E

    Једина измена коју смо направили била је да исечемо мали део шарене налепнице сваког централног коцкића. То је било неопходно да би се нарушила ротациона симетрија(отвара се у новом прозору).

Аутори

OpenAI, Ilge Akkaya, Marcin Andrychowicz, Maciek Chociej, Mateusz Litwin, Bob McGrew, Arthur Petron, Alex Paino, Matthias Plappert, Glenn Powell, Raphael Ribas, Jonas Schneider, Nikolas Tezak, Jerry Tworek, Peter Welinder, Lilian Weng, Qiming Yuan, Wojciech Zaremba и Lei Zhang

Захвалнице

Захваљујемо следећима на повратним информацијама о нацртима овог поста и рада: 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