Giới thiệu về băng cướp nhiều vũ trang

Xem trên TensorFlow.org Chạy trong Google Colab Xem nguồn trên GitHub Tải xuống sổ ghi chép

Giới thiệu

Multi-Armed Bandit (MAB) là một khuôn khổ Học máy trong đó tác nhân phải chọn các hành động (các nhánh) để tối đa hóa phần thưởng tích lũy của nó trong thời gian dài. Trong mỗi vòng, tác nhân nhận được một số thông tin về trạng thái hiện tại (bối cảnh), sau đó nó chọn một hành động dựa trên thông tin này và kinh nghiệm thu thập được trong các vòng trước. Vào cuối mỗi vòng, đại lý nhận được phần thưởng liên quan đến hành động đã chọn.

Có lẽ ví dụ tinh khiết nhất là vấn đề mà mượn tên thành MAB: tưởng tượng rằng chúng tôi đang phải đối mặt với k khe máy (kẻ cướp một lượng vũ trang), và chúng ta cần phải tìm ra cái nào có thanh toán tốt nhất, trong khi không mất quá nhiều tiền.

Băng cướp nhiều vũ trang

Thử từng máy một lần và sau đó chọn máy được trả nhiều tiền nhất sẽ không phải là một chiến lược tốt: Người đại diện có thể rơi vào tình trạng chọn một máy có kết quả may mắn ngay từ đầu nhưng nói chung là không tối ưu. Thay vào đó, đại lý nên quay lại chọn những máy có vẻ ngoài không đẹp để thu thập thêm thông tin về chúng. Đây là thách thức chính trong Kẻ cướp đa vũ trang: đặc vụ phải tìm ra sự kết hợp phù hợp giữa khai thác kiến ​​thức trước đó và khám phá để tránh bỏ qua các hành động tối ưu.

Các trường hợp thực tế hơn của MAB liên quan đến một phần thông tin phụ mỗi khi người học đưa ra quyết định. Chúng tôi gọi thông tin phụ này là "ngữ cảnh" hoặc "quan sát".

Kẻ cướp đa vũ trang và học tập củng cố

Tại sao lại có MAB Suite trong thư viện TF-Agents? Kết nối giữa RL và MAB là gì? Kẻ cướp đa vũ trang có thể được coi là một trường hợp đặc biệt của Học tăng cường. Để báo Giới thiệu về RL :

Tại mỗi bước thời gian, các đại lý có một hành động đối với môi trường dựa trên chính sách của nó \(\pi(a_t|s_t)\), nơi \(s_t\) là quan sát hiện từ môi trường, và nhận được một phần thưởng \(r_{t+1}\) và quan sát tiếp theo \(s_{t+1}\) từ môi trường . Mục tiêu là cải thiện chính sách để tối đa hóa tổng phần thưởng (lợi nhuận).

Trong trường hợp RL Nhìn chung, quan sát tiếp theo \(s_{t+1}\) phụ thuộc vào trạng thái trước đó \(s_t\) và hành động \(a_t\) chụp bởi chính sách. Phần cuối cùng này là thứ tách MAB khỏi RL: trong MAB, trạng thái tiếp theo, là quan sát, không phụ thuộc vào hành động được chọn bởi tác nhân.

Sự tương đồng này cho phép chúng tôi sử dụng lại tất cả các khái niệm tồn tại trong TF-Agents.

  • Một môi trường đầu ra quan sát và phản ứng với hành động với những phần thưởng.
  • Một chính sách đầu ra một hành động dựa trên một quan sát, và
  • Một đại lý liên tục cập nhật các chính sách dựa trên các bộ quan sát hành động-phần thưởng trước đó.

Môi trường nấm

Với mục đích minh họa, chúng tôi sử dụng một ví dụ đồ chơi được gọi là "Môi trường nấm". Bộ dữ liệu nấm ( Schlimmer, 1981 ) bao gồm các ví dụ nhãn nấm ăn được và độc. Các đặc điểm bao gồm hình dạng, màu sắc, kích thước của các bộ phận khác nhau của nấm, cũng như mùi và nhiều thứ khác.

nấm

Tập dữ liệu nấm, cũng giống như tất cả các tập dữ liệu học được giám sát, có thể được biến thành một vấn đề MAB theo ngữ cảnh. Chúng tôi sử dụng phương pháp này cũng được sử dụng bởi Riquelme et al. (2018) . Trong lần chuyển đổi này, đại lý nhận được các tính năng của nấm, quyết định ăn hay không. Ăn một loại nấm ăn được sẽ nhận được phần thưởng là +5, trong khi ăn một loại nấm độc sẽ nhận được +5 hoặc -35 với xác suất tương đương. Không ăn nấm dẫn đến 0 phần thưởng, không phụ thuộc vào loại nấm. Bảng sau đây tóm tắt các nhiệm vụ khen thưởng:

           | edible | poisonous
-----------|--------|----------
eating it  |     +5 | -35 / +5
leaving it |      0 |        0

Đại lý LinUCB

Hoạt động tốt trong một môi trường cướp theo ngữ cảnh đòi hỏi một ước tính tốt về chức năng khen thưởng của mỗi hành động, dựa trên quan sát. Một khả năng là ước lượng hàm phần thưởng với các hàm tuyến tính. Nghĩa là, đối với mỗi hành động \(i\), chúng tôi đang cố gắng tìm các tham số \(\theta_i\in\mathbb R^d\) mà dự toán

\(r_{t, i} \sim \langle v_t, \theta_i\rangle\)

càng gần với thực tế càng tốt. Dưới đây \(v_t\in\mathbb R^d\) là bối cảnh nhận được tại bước thời gian \(t\). Sau đó, nếu đại lý là rất tự tin vào ước tính của nó, nó có thể chọn \(\arg\max_{1, ..., K}\langle v_t, \theta_k\rangle\) để có được những phần thưởng dự kiến cao nhất.

Như đã giải thích ở trên, việc chỉ chọn nhánh có phần thưởng ước tính tốt nhất không dẫn đến một chiến lược tốt. Có rất nhiều cách khác nhau để trộn khai thác và thăm dò ở các đại lý ước lượng tuyến tính, và một trong những nổi tiếng nhất là niềm tin tuyến tính trên ràng buộc (LinUCB) thuật toán (xem ví dụ Li et al. 2010 ). LinUCB có hai khối xây dựng chính (với một số chi tiết bị bỏ qua):

  1. Nó duy trì ước tính cho các thông số của mỗi cánh tay với tuyến tính Least squares: \(\hat\theta_i\sim X^+_i r_i\), nơi \(X_i\) và \(r_i\) là các bối cảnh xếp chồng lên nhau và phần thưởng của vòng nơi tay \(i\) được chọn, và \(()^+\) là nghịch đảo giả .
  2. Nó duy trì sự tự tin ellipsoids xác định bởi nghịch đảo hiệp phương sai \(X_i^\top X_i\) cho dự toán ở trên.

Ý tưởng chính của LinUCB là "Lạc quan khi đối mặt với sự không chắc chắn". Tác nhân kết hợp thăm dò bằng cách tăng các ước tính lên một lượng tương ứng với phương sai của những ước tính đó. Đó là nơi mà các ellipsoids tự tin đi vào hình ảnh: cho mỗi cánh tay, ước tính lạc quan là \(\hat r_i = \max_{\theta\in E_i}\langle v_t, \theta\rangle\), nơi \(E_i\) là xung quanh ellipsoid \(\hat\theta_i\). Các đại lý sẽ chọn tìm kiếm tốt nhất cánh tay \(\arg\max_i\hat r_i\).

Tất nhiên mô tả trên chỉ là một bản tóm tắt trực quan nhưng bề ngoài về những gì LinUCB làm. Một thực hiện có thể được tìm thấy trong codebase của chúng tôi ở đây

Cái gì tiếp theo?

Nếu bạn muốn có một hướng dẫn chi tiết hơn về thư viện Bandits của chúng tôi hãy nhìn vào chúng tôi hướng dẫn cho Bandits . Nếu, thay vào đó, bạn muốn bắt đầu khám phá thư viện của chúng tôi ngay lập tức, bạn có thể tìm thấy nó ở đây . Nếu bạn thậm chí còn háo hức hơn để bắt đầu đào tạo, xem xét một số ví dụ end-to-end của chúng tôi ở đây , bao gồm cả môi trường nấm mô tả ở trên với LinUCB đây .