Liwati menyang isi utama
OpenAI
Lengen robot sing njulur ngrampungake kubus Rubik ing telapake ing ngarep latar ungu mendhung

Foto: Eric Haines

Lagi dimuat…

Kita wis nglatih sepasang jaringan saraf kanggo ngrampungake Kubus Rubik nganggo tangan robot sing mirip tangan manungsa. Jaringan saraf kasebut dilatih sakabehe ing simulasi, nggunakake kode sinau penguatan sing padha karo OpenAI Five dipasangkan karo teknik anyar sing diarani Automatic Domain Randomization (ADR). Sistem iki bisa nangani kahanan sing durung tau dideleng nalika pelatihan, kayata didorong boneka jerapah. Iki nuduhake yen sinau penguatan ora mung alat kanggo tugas virtual, nanging uga bisa ngrampungake masalah ing donya fisik sing mbutuhake ketangkasan sing durung tau ana sadurunge.

Tangan manungsa ngidini kita ngrampungake macem-macem tugas. Sajrone 60 taun kepungkur ing robotika, tugas angel sing bisa dirampungake manungsa nganggo sepasang tangan tetep mbutuhake rancangan robot khusus kanggo saben tugas(mbukak ing jendhela anyar). Minangka alternatif, wong-wong wis ngentekake pirang-pirang dasawarsa nyoba nggunakake hardware robot tujuan umum(mbukak ing jendhela anyar), nanging asile winates amarga derajat kebebasane sing dhuwur. Mligine, hardware sing digunakake ing kene dudu anyar—tangan robot sing digunakake wis ana sajrone 15 taun pungkasan—nanging pendekatan software-ne iya.

Wiwit Mei 2017, kita wis nyoba nglatih tangan robot sing mirip tangan manungsa supaya bisa ngrampungake Kubus Rubik(mbukak ing jendhela anyar). Kita netepake tujuan iki amarga kita yakin yen kasil nglatih tangan robot kaya mangkono kanggo nindakake tugas manipulasi sing kompleks bakal dadi dhasar kanggo robot tujuan umum. Kita ngrampungake Kubus Rubik ing simulasi ing Juli 2017. Nanging nganti Juli 2018, kita mung bisa ngamanipulasi balok ing robot. Saiki, kita wis nggayuh tujuan awal kita.

A full solve of the Rubik’s Cube. This video plays at real-time and was not edited in any way.

Ngrampungake Kubus Rubik nganggo siji tangan iku tugas sing nantang sanajan kanggo manungsa, lan bocah-bocah mbutuhake sawetara taun kanggo entuk ketangkasan sing dibutuhake supaya mahir. Nanging robot kita isih durung nyampurnakake tekniké, amarga bisa ngrampungake Kubus Rubik 60% saka wektu (lan mung 20% saka wektu kanggo acakan sing paling angel(mbukak ing jendhela anyar)).

Pendekatan kita

Kita nglatih jaringan saraf kanggo ngrampungake Kubus Rubik ing simulasi(mbukak ing jendhela anyar) nggunakake sinau penguatan lan algoritma Kociemba(mbukak ing jendhela anyar) kanggo milih langkah-langkah solusi.A Pengacakan(mbukak ing jendhela anyar) domain(mbukak ing jendhela anyar) ngidini jaringan sing dilatih mung ing simulasi supaya bisa ditransfer menyang robot nyata.

A colorful collage of robotic arms

Tantangan paling gedhe sing kita adhepi yaiku nggawe lingkungan ing simulasi sing cukup maneka warna kanggo nangkep fisika donya nyata. Faktor kaya gesekan, elastisitas, lan dinamika angel banget diukur lan dimodelake kanggo obyek sing kompleks kaya Kubus Rubik utawa tangan robot, lan kita nemokake yen pengacakan domain wae ora cukup.

Kanggo ngatasi iki, kita ngembangake metode anyar sing diarani Automatic Domain Randomization (ADR), sing tanpa entek ngasilake lingkungan sing saya angel kanthi progresif ing simulasi.B Iki mbebasake kita saka kabutuhan nduweni model donya nyata sing akurat, lan ngidini transfer jaringan saraf sing disinaoni ing simulasi supaya bisa ditrapake ing donya nyata.

ADR diwiwiti saka siji lingkungan tetep sing ora diacak, ing ngendi jaringan saraf sinau ngrampungake Kubus Rubik. Nalika jaringan saraf saya apik ing tugas kasebut lan nggayuh ambang kinerja, jumlah pengacakan domain bakal ditambah kanthi otomatis. Iki ndadekake tugas luwih angel, amarga jaringan saraf saiki kudu sinau nggawe generalisasi menyang lingkungan sing luwih acak. Jaringan terus sinau nganti maneh ngluwihi ambang kinerja, nalika luwih akeh pengacakan mlebu, lan proses iki diulang.

Lagi dimuat...

Salah siji parameter sing kita acak yaiku ukuran Kubus Rubik (ing ndhuwur). ADR diwiwiti kanthi ukuran Kubus Rubik sing tetep lan alon-alon nambah rentang pengacakan nalika pelatihan maju. Kita nerapake teknik sing padha kanggo kabeh parameter liyane, kayata massa kubus, gesekan driji robot, lan bahan permukaan visual tangan. Mula jaringan saraf kudu sinau ngrampungake Kubus Rubik ing kabeh kondisi sing saya angel kasebut.

Lagi dimuat...

Pengacakan domain mbutuhake kita nemtokake rentang pengacakan kanthi manual, sing angel amarga pengacakan kakehan ndadekake sinau angel nanging pengacakan sing sithik banget ngalangi transfer menyang robot nyata. ADR ngrampungake iki kanthi ngembangake rentang pengacakan kanthi otomatis saka wektu ke wektu tanpa campur tangan manungsa. ADR ngilangake kebutuhan marang pengetahuan domain lan ndadekake luwih gampang ngetrapake metode kita ing tugas anyar. Beda karo pengacakan domain manual, ADR uga njaga supaya tugas tansah nantang saengga pelatihan ora nate konvergen.

Kita mbandhingake ADR karo pengacakan domain manual ing tugas mbalik balok, nalika kita wis nduweni baseline sing kuwat. Ing wiwitan ADR kinerjane luwih ala ing babagan jumlah sukses ing robot nyata. Nanging nalika ADR nambah entropi, yaiku ukuran kompleksitas lingkungan, kinerja transfer pungkasane dadi pindho saka baseline—tanpa tuning manungsa.

Analisis

Nguji ketahanan

Kanthi nggunakake ADR, kita bisa nglatih jaringan saraf ing simulasi supaya bisa ngrampungake Kubus Rubik ing tangan robot nyata. Iki amarga ADR nyedhiyakake jaringan marang macem-macem simulasi acak tanpa wates. Paparan marang kompleksitas sajrone pelatihan iki sing nyiapake jaringan kanggo transfer saka simulasi menyang donya nyata amarga jaringan kudu sinau ngenali lan nyetel awake kanthi cepet marang donya fisik apa wae sing diadhepi.

Lagi dimuat...

Kanggo nguji wates metode kita, kita nyoba macem-macem perturbasi nalika tangan lagi ngrampungake Kubus Rubik. Iki ora mung nguji ketahanan jaringan kontrol kita nanging uga nguji jaringan visi kita, sing ing kene digunakake kanggo ngira posisi lan orientasi kubus.

Kita nemokake manawa sistem kita sing dilatih nganggo ADR cukup tahan marang perturbasi sanajan kita ora nate nglatih nganggo perturbasi kasebut: robot bisa kasil nindakake sebagian besar flip lan rotasi sisi ing kabeh perturbasi sing diuji, sanajan ora ing kinerja puncak.

Meta-learning sing muncul

Kita percaya yen meta-learning(mbukak ing jendhela anyar), utawa sinau carane sinau, iku prasyarat penting kanggo mbangun sistem tujuan umum, amarga iki ngidini sistem kasebut cepet adaptasi marang kahanan sing owah ing lingkungane. Hipotesis ing balik ADR yaiku jaringan sing ditambah memori digabung karo lingkungan sing cukup diacak bakal ngasilake meta-learning sing muncul, ing ngendi jaringan ngetrapake algoritma sinau sing ngidini awake dhewe cepet adaptasi prilakune marang lingkungan panggonan jaringan kasebut diterapake.C

Kanggo nguji iki kanthi sistematis, kita ngukur wektu nganti sukses saben flip kubus (muter kubus supaya werna liyane ngadhep ndhuwur) kanggo jaringan saraf kita ing ngisor perturbasi beda-beda, kayata ngreset memori jaringan, ngreset dinamika, utawa ngrusak siji sendi. Kita nindakake eksperimen iki ing simulasi, sing ngidini kita ngrata-rata kinerja ing 10.000 uji coba ing setelan sing terkontrol.

Lagi dimuat...

Ing wiwitan, nalika jaringan saraf kasil nindakake luwih akeh flip, wektu kanggo sukses saben sabanjure saya suda amarga jaringan sinau adaptasi. Nalika perturbasi ditrapake (garis abu-abu vertikal ing grafik ndhuwur), kita ndeleng lonjakan wektu kanggo sukses. Iki amarga strategi sing digunakake jaringan ora bisa mlaku ing lingkungan sing wis owah. Banjur jaringan sinau maneh babagan lingkungan anyar kasebut lan kita maneh ndeleng wektu kanggo sukses mudhun menyang baseline sadurunge.

Kita uga ngukur probabilitas gagal lan nindakake eksperimen sing padha kanggo rotasi sisi (muter sisi ndhuwur 90 derajat searah utawa berlawanan arah jarum jam) lan nemokake pola adaptasi sing padha.D

Ngerteni jaringan saraf kita

Nggambarake jaringan kita ngidini kita mangerteni apa sing disimpen ing memori. Iki dadi saya penting nalika jaringan saya kompleks.

Lagi dimuat...

Memori jaringan saraf kita divisualisasikake ing ndhuwur. Kita nggunakake blok bangunan saka toolbox interpretabilitas(mbukak ing jendhela anyar), yaiku faktorisasi matriks non-negatif, kanggo ngompres vektor berdimensi dhuwur iki dadi 6 klompok lan menehi saben klompok warna unik. Banjur kita nampilake warna saka klompok sing saiki dominan kanggo saben langkah wektu.

Kita nemokake yen saben klompok memori nduweni prilaku sing migunani sacara semantik. Contone, mung kanthi ndeleng klompok dominan saka memori jaringan, kita bisa ngerti apa jaringan arep muter kubus utawa muter sisi ndhuwur searah jarum jam sadurunge kedadeyan.

Tantangan

Ngrampungake Kubus Rubik nganggo tangan robot isih dudu perkara sing gampang. Saiki metode kita ngrampungake Kubus Rubik 20% saka wektu nalika nerapake acakan paling angel(mbukak ing jendhela anyar) sing mbutuhake 26 rotasi sisi. Kanggo acakan sing luwih gampang sing mbutuhake 15 rotasi kanggo mbalekake, tingkat kasile 60%. Nalika Kubus Rubik tiba utawa wektu entek, kita nganggep upaya kasebut gagal. Nanging, jaringan kita bisa ngrampungake Kubus Rubik saka kondisi awal apa wae. Dadi yen kubus tiba, kubus bisa dilebokake maneh ing tangan lan diterusake ngrampungake.

Umume kita nemokake yen jaringan saraf kita luwih mungkin gagal sajrone sawetara rotasi sisi lan flip pisanan. Iki kedadeyan amarga jaringan saraf kudu ngimbangi antarane ngrampungake Kubus Rubik lan adaptasi marang donya fisik sajrone rotasi lan flip awal kasebut.

Ing balik layar: prototipe Kubus Rubik

Kanggo ngukur kemajuan lan supaya masalah iki bisa ditangani, kita mbangun lan ngrancang versi kubus khusus minangka watu loncatan kanggo pungkasane ngrampungake Kubus Rubik biasa.E

Openai Robotics Rubiks Prototypes

Rubik’s Cube prototypes, from left to right: Locked cube, Face cube, Full cube, Giiker(mbukak ing jendhela anyar) cube, regular Rubik’s Cube.

Prototipe

Posisi + orientasi

Derajat kebebasan internal (sensor)

Kubus terkunci

Visi

0 (Tanpa sensor)

Kubus sisi

PhaseSpace

2 (PhaseSpace)

Kubus penuh

PhaseSpace

6 (PhaseSpace)

Kubus Giiker

Visi

6 (Sensor bawaan)

Kubus Rubik biasa

Visi

6 (Visi)

Langkah sabanjure

Kita percaya yen ketangkasan setingkat manungsa iku dadi bagean saka dalan kanggo mbangun robot tujuan umum lan kita semangat kanggo terus maju ing arah iki.

Yen sampeyan pengin mbantu nggawe sistem AI sing saya umum, apa robotik utawa virtual, kita lagi merekrut!

Cathetan sikil

  1. A

    Kita fokus marang masalah sing saiki angel dikuasai mesin: persepsi lan manipulasi trampil. Mula kita nglatih jaringan saraf kanggo nggayuh rotasi sisi lan flip kubus sing dibutuhake kaya sing diasilake algoritma Kociemba.

  2. B

    Pakaryan kita ana gandheng cenenge karo POET(mbukak ing jendhela anyar), sing kanthi otomatis ngasilake lingkungan 2D. Nanging, pakaryan kita sinau kabijakan gabungan ing kabeh lingkungan, sing bisa ditransfer menyang lingkungan anyar apa wae sing diasilake.

  3. C

    Luwih cethane, kita nduweni hipotesis yen jaringan saraf kanthi kapasitas winates sing dilatih ing lingkungan kanthi kompleksitas tanpa wates meksa jaringan kasebut sinau algoritma sinau kanggo tujuan khusus amarga jaringan ora bisa ngapal solusi kanggo saben lingkungan individu lan ora ana kabijakan tangguh siji sing bisa mlaku ing kabeh pengacakan.

  4. D

    Mangga delengen makalah(mbukak ing jendhela anyar) kita kanggo asil lengkap.

  5. E

    Siji-sijine modifikasi sing kita lakoni yaiku motong metu potongan cilik saka stiker warna-warni saben kublet tengah. Iki dibutuhake kanggo mecah simetri rotasional(mbukak ing jendhela anyar).

Panulis

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

Ucapan matur nuwun

Matur nuwun marang para pihak ing ngisor iki kanggo masukan babagan draf kiriman lan makalah iki: 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.

Video: Peter Jordan (Sutradara), Yvette Solis (Produser), Brooke Chan (Produser)

Editor: Ashley Pilipiszyn

Desain: Justin Jay Wang & Ben Barry

Fotografi: Eric Haines