zalo
Chat ngay

Giải khối Rubik bằng bàn tay robot

Chúng tôi đã đào tạo một cặp mạng nơ-ron để giải khối Rubik bằng bàn tay rô-bốt giống người. Các mạng nơ-ron được đào tạo hoàn toàn bằng mô phỏng, sử dụng cùng một mã học tăng cường như OpenAI Five  kết hợp với một kỹ thuật mới gọi là Ngẫu nhiên hóa miền tự động (ADR). Hệ thống có thể xử lý các tình huống mà nó chưa từng thấy trong quá trình đào tạo, chẳng hạn như bị một con  hươu cao cổ nhồi bông chọc vào . Điều này cho thấy học tăng cường không chỉ là một công cụ cho các nhiệm vụ ảo mà còn có thể giải quyết các vấn đề trong thế giới thực đòi hỏi sự khéo léo chưa từng có.

Bàn tay con người cho phép chúng ta giải quyết nhiều nhiệm vụ khác nhau. Trong 60 năm qua của ngành robot, những nhiệm vụ khó khăn mà con người thực hiện bằng đôi tay cố định của mình đòi hỏi phải thiết kế một robot tùy chỉnh cho  từng nhiệm vụ (mở trong cửa sổ mới). Thay vào đó, con người đã dành  nhiều thập kỷ để cố gắng sử dụng phần cứng rô bốt đa năng(mở trong cửa sổ mới), nhưng thành công hạn chế do mức độ tự do cao của chúng. Đặc biệt, phần cứng chúng tôi sử dụng ở đây không phải là mới—bàn tay robot chúng tôi sử dụng đã có từ 15 năm trước—nhưng cách tiếp cận phần mềm thì mới.

Kể từ tháng 5 năm 2017, chúng tôi đã cố gắng đào tạo một bàn tay robot giống con người để giải  khối Rubik (mở trong cửa sổ mới). Chúng tôi đặt ra mục tiêu này vì chúng tôi tin rằng việc đào tạo thành công một bàn tay rô-bốt như vậy để thực hiện các nhiệm vụ thao tác phức tạp sẽ đặt nền tảng cho các rô-bốt đa năng. Chúng tôi đã giải được khối Rubik trong mô phỏng vào tháng 7 năm 2017. Nhưng tính đến tháng 7 năm 2018, chúng tôi chỉ có thể thao tác một khối  trên rô-bốt. Bây giờ, chúng tôi đã đạt được mục tiêu ban đầu của mình.

Giải Rubik's Cube bằng một tay là một nhiệm vụ đầy thử thách ngay cả với con người, và trẻ em phải mất nhiều năm để có được sự khéo léo cần thiết để thành thạo. Tuy nhiên, robot của chúng tôi  vẫn chưa hoàn thiện kỹ thuật của mình  , vì nó giải được Rubik's Cube 60% thời gian (và chỉ 20% thời gian cho một (mở trong cửa sổ mới) tranh giành).

Cách tiếp cận của chúng tôi

Chúng tôi đào tạo mạng lưới nơ-ron để giải khối Rubik trong  mô phỏng (mở trong cửa sổ mới) sử dụng  học tăng cường  và  thuật toán Kociemba(mở trong cửa sổ mới) để chọn các bước giải pháp. Một miền (mở trong cửa sổ mới) sự ngẫu nhiên (mở trong cửa sổ mới) cho phép các mạng lưới chỉ được đào tạo bằng mô phỏng có thể chuyển sang robot thực.

c

Thách thức lớn nhất mà chúng tôi phải đối mặt là tạo ra các môi trường trong mô phỏng đủ đa dạng để nắm bắt được vật lý của thế giới thực. Các yếu tố như ma sát, độ đàn hồi và động lực học cực kỳ khó đo lường và mô hình hóa đối với các vật thể phức tạp như Khối Rubik hoặc bàn tay rô bốt và chúng tôi thấy rằng chỉ ngẫu nhiên hóa miền là không đủ.

Để khắc phục điều này, chúng tôi đã phát triển một phương pháp mới gọi là  Ngẫu nhiên hóa miền tự động  (ADR), phương pháp này liên tục tạo ra các môi trường ngày càng khó khăn hơn trong quá trình mô phỏng.[^footenote-adr] Phương pháp này giải phóng chúng ta khỏi việc phải có một mô hình chính xác về thế giới thực và cho phép chuyển các mạng nơ-ron học được trong quá trình mô phỏng để áp dụng vào thế giới thực.

ADR bắt đầu với một môi trường duy nhất, không ngẫu nhiên, trong đó mạng nơ-ron học cách giải khối Rubik. Khi mạng nơ-ron trở nên tốt hơn trong nhiệm vụ và đạt đến ngưỡng hiệu suất, lượng ngẫu nhiên hóa miền sẽ tự động tăng lên. Điều này làm cho nhiệm vụ khó hơn, vì mạng nơ-ron giờ phải học cách khái quát hóa sang các môi trường ngẫu nhiên hơn. Mạng tiếp tục học cho đến khi nó lại vượt quá ngưỡng hiệu suất, khi đó nhiều ngẫu nhiên hơn sẽ xuất hiện và quá trình được lặp lại.

Một trong những thông số chúng tôi ngẫu nhiên hóa là kích thước của Khối Rubik (ở trên). ADR bắt đầu với kích thước cố định của Khối Rubik và tăng dần phạm vi ngẫu nhiên khi quá trình đào tạo tiến triển. Chúng tôi áp dụng cùng một kỹ thuật cho tất cả các thông số khác, chẳng hạn như khối lượng của khối, ma sát của các ngón tay robot và vật liệu bề mặt thị giác của bàn tay. Do đó, mạng nơ-ron phải học cách giải Khối Rubik trong tất cả các điều kiện ngày càng khó khăn đó.

Việc ngẫu nhiên hóa miền yêu cầu chúng ta phải chỉ định thủ công các phạm vi ngẫu nhiên, điều này rất khó vì quá nhiều ngẫu nhiên khiến việc học trở nên khó khăn nhưng quá ít ngẫu nhiên lại cản trở việc chuyển giao sang robot thực. ADR giải quyết vấn đề này bằng cách tự động mở rộng các phạm vi ngẫu nhiên theo thời gian mà không cần sự can thiệp của con người. ADR loại bỏ nhu cầu về kiến ​​thức miền và giúp việc áp dụng các phương pháp của chúng ta vào các nhiệm vụ mới trở nên đơn giản hơn. Trái ngược với việc ngẫu nhiên hóa miền thủ công, ADR cũng giữ cho nhiệm vụ luôn mang tính thách thức với quá trình đào tạo không bao giờ hội tụ.

Chúng tôi đã so sánh ADR với việc ngẫu nhiên hóa miền thủ công trên nhiệm vụ lật khối, nơi chúng tôi đã có một  đường cơ sở mạnh . Lúc đầu, ADR hoạt động kém hơn về số lần thành công trên robot thực. Nhưng khi ADR làm tăng entropy, là thước đo độ phức tạp của môi trường, thì hiệu suất truyền cuối cùng tăng gấp đôi so với đường cơ sở—mà không cần điều chỉnh của con người.

Phân tích

Kiểm tra độ bền chắc

Sử dụng ADR, chúng tôi có thể đào tạo mạng nơ-ron trong mô phỏng có thể giải khối Rubik trên bàn tay rô-bốt thực. Điều này là do ADR cho mạng tiếp xúc với vô số mô phỏng ngẫu nhiên. Chính sự tiếp xúc với sự phức tạp trong quá trình đào tạo này giúp mạng chuẩn bị chuyển từ mô phỏng sang thế giới thực vì nó phải học cách nhanh chóng xác định và điều chỉnh với bất kỳ thế giới vật lý nào mà nó phải đối mặt.

Để kiểm tra giới hạn của phương pháp, chúng tôi thử nghiệm với nhiều nhiễu loạn khác nhau trong khi bàn tay đang giải khối Rubik. Điều này không chỉ kiểm tra độ bền của mạng lưới điều khiển mà còn kiểm tra mạng lưới thị giác, mà chúng tôi sử dụng ở đây để ước tính vị trí và hướng của khối Rubik.

Chúng tôi thấy rằng hệ thống của chúng tôi được đào tạo bằng ADR có khả năng chống chịu nhiễu loạn đáng ngạc nhiên mặc dù chúng tôi chưa bao giờ được đào tạo với chúng: Robot có thể thực hiện thành công hầu hết các động tác lật và xoay mặt trong mọi nhiễu loạn đã thử nghiệm, mặc dù không đạt hiệu suất cao nhất.

Siêu học tập mới nổi

Chúng tôi tin rằng  siêu học tập (mở trong cửa sổ mới), hay học cách học, là một điều kiện tiên quyết quan trọng để xây dựng các hệ thống mục đích chung, vì nó cho phép chúng nhanh chóng thích ứng với các điều kiện thay đổi trong môi trường của chúng. Giả thuyết đằng sau ADR là một mạng lưới tăng cường bộ nhớ kết hợp với một môi trường đủ ngẫu nhiên dẫn đến  siêu học tập mới nổi , trong đó mạng lưới triển khai một thuật toán học tập cho phép chính nó nhanh chóng thích ứng hành vi của mình với môi trường mà nó được triển khai. C

Để kiểm tra điều này một cách có hệ thống, chúng tôi đo thời gian thành công cho mỗi lần lật khối lập phương (xoay khối lập phương sao cho mặt có màu khác hướng lên trên) cho mạng nơ-ron của chúng tôi dưới các nhiễu loạn khác nhau, chẳng hạn như đặt lại bộ nhớ của mạng, đặt lại động lực học hoặc phá vỡ một khớp nối. Chúng tôi thực hiện các thí nghiệm này trong mô phỏng, cho phép chúng tôi tính hiệu suất trung bình trên 10.000 lần thử nghiệm trong một bối cảnh được kiểm soát.

Ban đầu, khi mạng nơ-ron thực hiện thành công nhiều lần lật hơn, mỗi lần thành công liên tiếp đều giảm vì mạng học cách thích nghi. Khi nhiễu loạn được áp dụng (các đường màu xám dọc trong biểu đồ trên), chúng ta thấy thời gian thành công tăng đột biến. Điều này là do chiến lược mà mạng đang sử dụng không hiệu quả trong môi trường đã thay đổi. Sau đó, mạng học lại về môi trường mới và chúng ta lại thấy thời gian thành công giảm xuống mức cơ sở trước đó.

Chúng tôi cũng đo xác suất hỏng hóc và thực hiện các thí nghiệm tương tự đối với phép quay mặt (xoay mặt trên 90 độ theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ) và tìm thấy cùng một kiểu thích ứng.

Hiểu về mạng lưới thần kinh của chúng ta

Việc hình dung mạng lưới của chúng ta cho phép chúng ta hiểu được những gì chúng đang lưu trữ trong bộ nhớ. Điều này ngày càng trở nên quan trọng khi mạng lưới ngày càng phức tạp.

Bộ nhớ của mạng nơ-ron của chúng tôi được hình dung ở trên. Chúng tôi sử dụng một  khối xây dựng từ hộp công cụ khả năng diễn giải (mở trong cửa sổ mới), tức là phân tích ma trận không âm, để cô đọng vectơ có chiều cao này thành 6 nhóm và gán cho mỗi nhóm một màu duy nhất. Sau đó, chúng tôi hiển thị màu của nhóm hiện đang chiếm ưu thế cho mỗi bước thời gian.

Chúng tôi thấy rằng mỗi nhóm bộ nhớ có một hành vi có ý nghĩa về mặt ngữ nghĩa liên quan đến nó. Ví dụ, chúng ta có thể biết bằng cách chỉ nhìn vào nhóm bộ nhớ chiếm ưu thế của mạng nếu nó sắp quay khối lập phương hoặc xoay đỉnh theo chiều kim đồng hồ  trước khi nó xảy ra .

Thách thức

Giải Rubik's Cube bằng tay robot vẫn không dễ. Phương pháp của chúng tôi hiện giải được Rubik's Cube 20% thời gian khi áp dụng  cách giải khó nhất (mở trong cửa sổ mới) đòi hỏi 26 lần xoay mặt. Đối với các lần xáo trộn đơn giản hơn đòi hỏi 15 lần xoay để hoàn tác, tỷ lệ thành công là 60%. Khi Khối Rubik bị rơi hoặc hết thời gian chờ, chúng tôi coi như nỗ lực đã thất bại. Tuy nhiên, mạng của chúng tôi có khả năng giải Khối Rubik từ bất kỳ điều kiện ban đầu nào. Vì vậy, nếu khối Rubik bị rơi, có thể đặt lại vào tay và tiếp tục giải.

Chúng tôi thường thấy rằng mạng nơ-ron của chúng tôi có nhiều khả năng bị lỗi hơn trong một vài lần xoay và lật mặt đầu tiên. Điều này là do mạng nơ-ron cần cân bằng giữa việc giải khối Rubik với việc thích nghi với thế giới vật lý trong những lần xoay và lật đầu tiên đó.

Để đánh giá tiến độ của mình và làm cho vấn đề trở nên dễ giải quyết hơn, chúng tôi đã xây dựng và thiết kế các phiên bản khối lập phương tùy chỉnh như những bước đệm để cuối cùng giải được một khối Rubik thông thường.

Xem thêm: mua tài khoản ChatGPT Plus chính hãng giá rẻ

Hot Deal

Họ tên (*)

Số điện thoại (*)

Email (*)

Dịch vụ

Đăng ký để nhận bản tin mới nhất !