რუბიკის კუბის ამოხსნა რობოტული ხელით

ფოტო: 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 ჯგუფად შევკუმშოთ და თითოეულს უნიკალური ფერი მივანიჭოთ. შემდეგ თითოეული დროითი ნაბიჯისთვის ვაჩვენებთ ამჟამად დომინანტური ჯგუფის ფერს.
ვხედავთ, რომ მეხსიერების თითოეულ ჯგუფთან სემანტიკურად მნიშვნელობიანი ქცევაა დაკავშირებული. მაგალითად, ქსელის მეხსიერების მხოლოდ დომინანტურ ჯგუფზე დაკვირვებით შეგვიძლია გავიგოთ, აპირებს თუ არა ის კუბის დატრიალებას ან ზედა მხარის საათის ისრის მიმართულებით შემობრუნებას მანამდე, სანამ ეს მოხდება.
რუბიკის კუბის ამოხსნა რობოტული ხელით ჯერ კიდევ მარტივი არ არის. ჩვენი მეთოდი ამჟამად რუბიკის კუბს შემთხვევების 20%-ში ხსნის, როდესაც გამოიყენება მაქსიმალურად რთული არევა(იხსნება ახალ ფანჯარაში), რომელიც 26 მხარის ბრუნვას მოითხოვს. უფრო მარტივი არევებისთვის, რომელთა გასაუქმებლად 15 ბრუნვაა საჭირო, წარმატების მაჩვენებელი 60%-ია. როდესაც რუბიკის კუბი ვარდება ან დროის ლიმიტი იწურება, მცდელობას წარუმატებლად ვთვლით. თუმცა ჩვენს ქსელს რუბიკის კუბის ამოხსნა ნებისმიერი საწყისი მდგომარეობიდან შეუძლია. ამიტომ, თუ კუბი ხელიდან გაუვარდება, შესაძლებელია მისი ხელში დაბრუნება და ამოხსნის გაგრძელება.
ზოგადად ვხედავთ, რომ ჩვენი ნეირონული ქსელი გაცილებით უფრო ხშირად მარცხდება პირველი რამდენიმე მხარის ბრუნვისა და გადაბრუნების დროს. ამის მიზეზი ისაა, რომ ნეირონულ ქსელს ამ ადრეული ბრუნვებისა და გადაბრუნებებისას უწევს ერთდროულად როგორც რუბიკის კუბის ამოხსნა, ისე ფიზიკურ სამყაროსთან ადაპტირება.
ჩვენი პროგრესის შესაფასებლად და ამოცანის ამოხსნად გასახდომად, შევქმენით და დავაპროექტეთ კუბების მორგებული ვერსიები, როგორც შუალედური საფეხურები საბოლოოდ ჩვეულებრივი რუბიკის კუბის ამოსახსნელად.E

Rubik’s Cube prototypes, from left to right: Locked cube, Face cube, Full cube, Giiker(იხსნება ახალ ფანჯარაში) cube, regular Rubik’s Cube.
პროტოტიპი | პოზიცია + ორიენტაცია | შიდა თავისუფლების ხარისხები (სენსორი) |
დაბლოკილი კუბი | ხედვა | 0 (სენსორის გარეშე) |
Face cube | PhaseSpace | 2 (PhaseSpace) |
სრული კუბი | PhaseSpace | 6 (PhaseSpace) |
Giiker cube | ხედვა | 6 (ჩაშენებული სენსორები) |
ჩვეულებრივი რუბიკის კუბი | ხედვა | 6 (ხედვა) |
გვჯერა, რომ ადამიანის დონის ოსტატობა ზოგადი დანიშნულების რობოტების შექმნის გზაზე მნიშვნელოვანი ნაბიჯია და მოხარულები ვართ, რომ ამ მიმართულებით წინ მივიწევთ.
თუ გსურთ დაეხმაროთ სულ უფრო ზოგადი AI სისტემების შექმნას, იქნება ეს რობოტული თუ ვირტუალური, გვიერთდით!
სქოლიოები
- A
ჩვენ ყურადღებას ვამახვილებთ იმ პრობლემებზე, რომელთა სრულყოფილად დაუფლება ამჟამად მანქანებისთვის რთულია: აღქმა და დახვეწილი მანიპულაცია. ამიტომ ჩვენს ნეირონულ ქსელებს ვწვრთნით, რათა შეასრულონ Kociemba-ს ალგორითმის მიერ გენერირებული აუცილებელი მხარის ბრუნვები და კუბის გადაბრუნებები.
- B
ჩვენი ნაშრომი მჭიდრო კავშირშია POET(იხსნება ახალ ფანჯარაში)-თან, რომელიც 2D გარემოებს ავტომატურად გენერირებს. თუმცა ჩვენი ნაშრომი ყველა გარემოზე ერთობლივ პოლიტიკას სწავლობს, რომელიც ნებისმიერ ახლად გენერირებულ გარემოზე გადადის.
- 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


