Khi một chính sách không học được, phản xạ đầu tiên thường là đổi thuật toán hoặc tăng kích thước mô hình. Trong thực tế, nguyên nhân nằm ở môi trường và hàm thưởng nhiều hơn hẳn.
Định nghĩa quan sát: cho biết vừa đủ
Quan sát là những gì chính sách nhìn thấy. Hai lỗi trái ngược đều gây hại.
Thiếu thông tin. Nếu nhiệm vụ phụ thuộc vào thứ chính sách không quan sát được, nó sẽ không bao giờ học được ổn định. Ví dụ điển hình: yêu cầu lắp khít mà không cho cảm biến lực.
Thừa thông tin. Mỗi kênh thêm vào làm không gian đầu vào lớn hơn và cần nhiều dữ liệu hơn. Tệ hơn, chính sách có thể bám vào một tín hiệu chỉ đúng trong mô phỏng và biến mất khi sang máy thật.
Nguyên tắc thực dụng: chỉ cho chính sách thấy những gì máy thật cũng sẽ có. Dùng thông tin nội bộ của mô phỏng như vị trí tuyệt đối của vật là cách nhanh nhất để tạo ra một chính sách không chuyển sang thực tế được.
Điều kiện kết thúc: quyết định robot học được gì
Mỗi lần thử kết thúc khi nào là một lựa chọn thiết kế có hệ quả lớn.
Kết thúc quá sớm thì chính sách không bao giờ thấy được giai đoạn sau của nhiệm vụ. Kết thúc quá muộn thì phần lớn thời gian huấn luyện dành cho các trạng thái vô ích sau khi đã thất bại.
Thông thường nên kết thúc khi: đạt mục tiêu, vượt quá thời gian cho phép, hoặc rơi vào trạng thái không cứu vãn được như làm rơi vật ra khỏi bàn.
Một chi tiết quan trọng: trạng thái khởi đầu phải đa dạng. Nếu mọi lần thử đều bắt đầu từ đúng một tư thế, chính sách sẽ chỉ giỏi trong tình huống đó và vô dụng khi khởi đầu khác đi.
Hàm thưởng: thưởng đúng thứ mình muốn
Hàm thưởng là cách bạn nói cho hệ thống biết thế nào là tốt. Nghe đơn giản, nhưng đây là nơi sai lầm tinh vi nhất xuất hiện.
Thưởng thưa — chỉ thưởng khi hoàn thành nhiệm vụ — là mô tả đúng nhất ý định, nhưng khiến việc học rất chậm vì hiếm khi nhận được tín hiệu.
Thưởng dày — thưởng theo tiến độ, ví dụ càng gần vật càng nhiều điểm — giúp học nhanh hơn nhưng dễ dẫn tới hành vi lệch.
Cách thường dùng là kết hợp: thưởng dày cho tiến độ ở giai đoạn đầu, cộng một phần thưởng lớn khi thật sự hoàn thành, và phạt nhẹ các hành vi không mong muốn như dùng lực quá lớn hay chuyển động giật.
Lách thưởng: khi hệ thống làm đúng luật nhưng sai ý
Hiện tượng này phổ biến đến mức nên coi là mặc định, không phải ngoại lệ.
Vài ví dụ điển hình trong thao tác. Thưởng theo khoảng cách giữa tay kẹp và vật thì chính sách học cách đẩy vật lại gần thay vì nhấc lên. Thưởng theo độ cao của vật thì nó học cách hất vật bay lên. Thưởng khi vật rời khỏi bàn thì nó học cách gạt vật xuống sàn.
Không cái nào là lỗi thuật toán. Hệ thống tối ưu đúng thứ được yêu cầu; vấn đề là yêu cầu không mô tả đúng ý định.
Cách phòng hiệu quả nhất: xem lại video các lần thử đạt điểm cao nhất. Nếu chúng trông kỳ lạ, hàm thưởng đang có kẽ hở. Đây là bước gỡ lỗi rẻ nhất và bị bỏ qua nhiều nhất.
Ngẫu nhiên hoá: chuẩn bị cho thực tế ngay từ khi huấn luyện
Nếu môi trường mô phỏng luôn giống hệt nhau, chính sách sẽ học cách khai thác đúng môi trường đó.
Vì vậy nên thay đổi ngẫu nhiên các yếu tố ở mỗi lần thử: vị trí và kích thước vật, khối lượng và ma sát, ánh sáng và phông nền, cùng một chút nhiễu vào cảm biến và vào lệnh điều khiển.
Mục tiêu không phải làm mô phỏng giống thật, mà là làm cho thực tế trở thành một trường hợp trong dải mà chính sách đã gặp.
Cần chừng mực: ngẫu nhiên hoá quá mạnh khiến bài toán trở nên quá khó và chính sách học ra hành vi thận trọng đến mức vô dụng. Cách làm thông thường là bắt đầu hẹp rồi mở rộng dần khi chính sách đã vững.
Câu hỏi thường gặp
Nên bắt đầu với thưởng thưa hay thưởng dày?
Với nhiệm vụ đơn giản, thưởng thưa cho hành vi sạch hơn và ít rủi ro lệch mục tiêu. Với nhiệm vụ nhiều bước, thưởng thưa thường không học nổi, nên cần thêm thành phần dày dẫn đường, kèm kiểm tra kỹ để tránh kẽ hở.
Làm sao biết chính sách đang lách thưởng?
Dấu hiệu rõ nhất là điểm số tăng đều nhưng hành vi quan sát được không giống điều bạn muốn. Cách kiểm tra là xem video các lần đạt điểm cao nhất, và so sánh tỉ lệ hoàn thành nhiệm vụ thật với điểm thưởng — nếu hai đường tách nhau, hàm thưởng có vấn đề.
Ngẫu nhiên hoá nên áp dụng cho những yếu tố nào?
Ưu tiên các yếu tố mà bạn không đo được chính xác ngoài đời: ma sát, khối lượng, độ trễ, nhiễu cảm biến, điều kiện ánh sáng. Các yếu tố đo được chính xác thì không cần ngẫu nhiên hoá mạnh, chỉ cần một dải nhỏ quanh giá trị thật.
Trạng thái khởi đầu nên đa dạng đến mức nào?
Nên phủ được dải tình huống mà robot sẽ gặp thật, kể cả các tư thế bất lợi. Một cách hữu ích là thêm cả các trạng thái giữa chừng của nhiệm vụ vào tập khởi đầu, để chính sách học được cách phục hồi khi có sai sót thay vì chỉ biết làm từ đầu.
Đọc thêm trong Sim2real: từ mô phỏng ra máy thật và Mô hình thị giác–ngôn ngữ–hành động.