Chương 1: Học tăng cường (Reinforcement Learning / 強化学習) là gì

Estimated reading: 20 minutes 13 views

Nền tảng toán học của Học tăng cường chắc chắn là một phần phức tạp trong Học máy (Machine Learning / 機械学習), và có lẽ khó hiểu đối với những người mới bắt đầu. Tuy nhiên, cách tư duy của nó có liên quan chặt chẽ đến lý thuyết điều khiển (Control Theory / 制御理論) và việc ra quyết định sinh học; đây là một lý thuyết dựa trên nền tảng vững chắc của thế giới thực, có thể nói là hầu như không có yếu tố trừu tượng hay mang tính ý niệm. Do đó, trong phần đầu của cuốn sách này, bằng cách tập trung giới thiệu: Học tăng cường hướng đến điều gì? Những thách thức trong việc hiện thực hóa nó là gì? Tôi muốn tạo bước đệm để giúp bạn hiểu được nền tảng toán học của Học tăng cường được trình bày từ chương này trở đi. Nếu vẫn cảm thấy khó hiểu hoặc muốn biết thêm chi tiết, bạn cũng có thể tham khảo một số cuốn sách khác đã được xuất bản [1, 2, 3, 4, 5, 6].

1-1 Mục đích của Học tăng cường (Reinforcement Learning / 強化学習)

Khi giải thích ngắn gọn về Học tăng cường, người ta thường mô tả nó là bài toán “Học một chính sách (Policy / 方策) tương ứng với từng trạng thái (State / 状態) sao cho tối đa hóa được lợi tức (Return / 収益) thu được trong tương lai, trong khi một tác tử (Agent / エージェント) tiến hành thử và sai (Trial and Error / 試行錯誤) trong một môi trường chưa biết” [1]. Chỉ với chừng này, có thể những thuật ngữ chuyên ngành trông giống như từ thông dụng bị xáo trộn vào nhau, nên tôi nghĩ chỉ những ai từng tiếp xúc với tổng quan về Học tăng cường mới có thể hiểu được. Vì vậy, chúng ta hãy cùng mổ xẻ lời giải thích này trong khi định nghĩa ngắn gọn các thuật ngữ chuyên môn theo từng bước.

Đầu tiên, nhân vật chính đang học tập được gọi là tác tử (Agent / エージェント) sẽ xuất hiện. Tác tử có thể là robot, AI trò chơi (Game AI / ゲームAI), hoặc trong những ví dụ cực đoan là con người, nhưng điểm mấu chốt là nó là một thực thể có thể quan sát môi trường xung quanh và tác động lên môi trường xung quanh dưới một hình thức nào đó. Câu chuyện bắt đầu khi tác tử này bước lên sân khấu gọi là môi trường (Environment / 環境). Bạn có thể tưởng tượng môi trường này giống như một khu vực làm việc như nhà máy nếu đó là robot, hoặc bản thân trò chơi cờ vây nếu đó là một Game AI. Về cơ bản, môi trường này hoàn toàn xa lạ đối với tác tử; mọi thứ mà tác tử quan sát đều mới mẻ, và nó hoàn toàn không biết điều gì sẽ xảy ra sau những tác động của mình (nói cực đoan, thậm chí không biết chuyện gì đang xảy ra).

Tác tử bị ném vào một môi trường mù mờ như vậy, nhưng việc đứng yên cũng vô ích nên hãy thử hành động. Khi đó, môi trường (hoặc người thiết kế robot/trò chơi ẩn nấp trong đó) sẽ đưa ra một đánh giá về tình trạng hiện tại cho tác tử. Đánh giá này tương đương với phần thưởng (Reward / 報酬), nhưng sẽ có trường hợp phần thưởng nhiều hoặc ít. Ví dụ: khi robot thực hiện thành công một thao tác hoặc tiết kiệm được năng lượng bằng cách không di chuyển lãng phí, hay khi Game AI giành chiến thắng hoặc thu thập được vật phẩm/tiền bạc thì sẽ nhận được nhiều phần thưởng; ngược lại, phần thưởng sẽ bị trừ đi. Về cơ bản, tác tử không được cho biết lý do hoặc quy tắc tăng giảm phần thưởng này, mà chỉ được ra lệnh phải thu thập càng nhiều phần thưởng càng tốt.

Vậy làm thế nào để có được nhiều phần thưởng? Tác tử sẽ học các quy tắc hành vi của chính nó, được gọi là chính sách (Policy / 方策). Nói cách khác, nó củng cố chính sách để có thể thường xuyên thực hiện các hành động mang lại nhiều phần thưởng, và ngược lại, giảm dần tần suất thực hiện các hành động chỉ mang lại ít phần thưởng. Tuy nhiên, vì đánh giá dưới dạng phần thưởng này được đưa ra đối với tình hình hiện tại, nên không phải lúc nào tác tử cũng chỉ cần lặp lại cùng một hành động, mà sau khi hiểu chính xác tình hình hiện tại như một trạng thái (State / 状態) của môi trường, nó phải chọn ra hành động phù hợp nhất với hiện trạng (ví dụ: dừng lại trước một vách đá).

Ngoài ra, vì tác tử dĩ nhiên không sở hữu thứ gì giống như mã ăn gian để tự do đạt đến một trạng thái bất kỳ chỉ bằng một hành động duy nhất, nên có những trạng thái chỉ có thể đạt được sau khi kết hợp nhiều hành động. Ví dụ như trong môn cờ tướng, việc chiếu tướng ngay từ nước cờ đầu tiên là bất khả thi và bạn phải di chuyển các quân cờ nhiều lần. Phần thưởng nhận được ở trạng thái như vậy có thể được xem như một đánh giá cho toàn bộ chuỗi hành động và được gọi là phần thưởng trễ (Delayed Reward / 遅延報酬) (ngược lại là phần thưởng tức thời (Immediate Reward / 即時報酬)). Nếu phần thưởng được thiết lập cực kỳ kỹ lưỡng, sao cho chỉ cần di chuyển để nhận được phần thưởng tức thời tốt nhất ở mỗi trạng thái cũng dẫn dắt đến một tương lai tốt nhất thì câu chuyện lại quá đơn giản. Nhưng khi giả định sự tồn tại của phần thưởng trễ này, nếu tác tử chỉ học chính sách dựa trên phần thưởng tức thời, thì nó có nguy cơ không bao giờ đạt được phần thưởng trễ. Lấy một ví dụ dễ hiểu: việc được thông báo mức độ trùng khớp với tuyến đường tối ưu đã biết trong game đua xe từng chút một sau mỗi hành động giống như một phần thưởng tức thời được xây dựng cực kỳ công phu; còn phần thưởng phát sinh vào phút cuối tùy thuộc vào thắng thua được định đoạt sau hàng chục hành động trong game đối kháng được gọi là phần thưởng trễ.

Trong khi không thể phân biệt được phần thưởng nhận được là một phần thưởng tức thời xuất sắc hay một phần thưởng trễ rắc rối, tác tử vẫn phải kiếm được càng nhiều phần thưởng càng tốt; do đó không thể bỏ qua khả năng tồn tại của phần thưởng trễ. Vì vậy, bằng cách lấy tổng số phần thưởng nhận được từ hiện tại cho đến tương lai (gọi là lợi tức (Return / 収益)), tác tử phải đưa ra chính sách trong khi xem xét cả phần thưởng trễ bằng cách gộp nó vào lợi tức. Tất nhiên, do không được hướng dẫn làm thế nào để tăng lợi tức, nên tác tử phải tìm ra các quy luật thông qua thử và sai.

Trên đây là kịch bản cơ bản được xử lý bởi Học tăng cường, được trình bày ngắn gọn trong câu đầu tiên. Chắc chắn rằng có nhiều tiền đề khác nhau ẩn chứa trong kịch bản này, và để thỏa mãn chúng, lý thuyết Học tăng cường đã trở thành một thứ phức tạp. Tuy nhiên, bất kỳ tiền đề nào cũng là những yếu tố bắt buộc về mặt logic để đảm bảo tính phổ quát của Học tăng cường, vì vậy hãy cố gắng thấu hiểu và chấp nhận. Hơn nữa, như sẽ mô tả sau, bạn hoàn toàn có thể đơn giản hóa kịch bản bằng cách loại bỏ một số tiền đề; do đó, thay vì áp dụng thuật toán Học tăng cường một cách thiếu suy nghĩ với quan điểm “cái lớn bao trùm cái nhỏ”, việc giới hạn hóa cho phù hợp với bài toán cũng rất quan trọng về mặt thực tế.

1-2 Các vấn đề cần giải quyết

Bây giờ, khi đã hiểu mục tiêu của Học tăng cường là gì, chúng ta hãy giới thiệu ngắn gọn lý do tại sao việc hiện thực hóa nó lại khó khăn, xét theo từng yếu tố. Ngoài ra, khi loại bỏ từng yếu tố, chúng ta có thể sử dụng các công nghệ Học máy (Machine Learning / 機械学習) khác, do đó tôi cũng sẽ đề cập đến chúng. Nhân tiện, dưới góc nhìn của Học máy, nếu loại bỏ tính chưa biết của môi trường (vốn có thể coi là nguồn tạo dữ liệu) và coi môi trường là đã biết – một tiền đề lớn theo một nghĩa nào đó – thì kịch bản trên có thể được xếp vào phạm trù của lý thuyết điều khiển tối ưu (phi tuyến) (Nonlinear Optimal Control Theory / (非線形)最適制御理論) [7] (xem Chương 5).

1-2-1 Giảng dạy gián tiếp

Đầu tiên, đặc điểm nổi bật nhất của Học tăng cường chính là sự tồn tại của phần thưởng (Reward / 報酬). Trong các phân loại Học máy được đề cập ở phần đầu, với Học có giám sát (Supervised Learning / 教師あり学習), đầu ra tương ứng với đầu vào được xác định rõ ràng, và câu trả lời chính xác được gọi là dữ liệu huấn luyện (Teacher Data / 教師データ) được cung cấp trực tiếp. Trong Học không giám sát (Unsupervised Learning / 教師なし学習), đúng như tên gọi, không có dữ liệu huấn luyện, mà mục đích chỉ là tìm ra các đặc điểm ẩn sâu trong đầu vào. Ngược lại, trong Học tăng cường, mặc dù muốn học để đầu ra (hành động) trở nên như mong muốn tương tự như Học có giám sát, nhưng nó lại được nhận phần thưởng thay cho dữ liệu huấn luyện. Do đó, vì hành động chính xác không được biết trực tiếp, nó phải đánh giá gián tiếp xem hành động nào là tốt dựa trên phần thưởng.

Ngoài ra, một khuôn khổ tương tự như Học tăng cường dùng để học hành động của tác tử có thể kể đến là Học bắt chước (Imitation Learning / 模倣学習) [8]. Trong Học bắt chước, khác với Học tăng cường, dữ liệu huấn luyện chính xác thường có sẵn, và trong trường hợp đó, nó có thể học như một loại Học có giám sát (xem Chương 6).

1-2-2 Thu thập dữ liệu

Tiếp theo, trong Học có giám sát và Học không giám sát, một tập dữ liệu huấn luyện (Training Dataset / 訓練データセット) cần thiết cho việc học về cơ bản đã được chuẩn bị sẵn, và người ta phải suy nghĩ xem làm thế nào để học từ tập dữ liệu đó sao cho nó hoạt động tốt trên cả những dữ liệu ngoài tập huấn luyện. Trái lại trong Học tăng cường, thật không may, dữ liệu không được chuẩn bị trước. Vì vậy, bản thân tác tử phải tự thử các hành động thích hợp và học hỏi từ kết quả đó. Hơn nữa, nếu dữ liệu thu thập được chỉ là các cặp giữa hành động và phần thưởng thì không sao, nhưng trong Học tăng cường, do liên quan đến trạng thái tại thời điểm thực hiện hành động, trạng thái thay đổi sau hành động, và cả phần thưởng kéo dài trong tương lai như sẽ trình bày dưới đây, nên số lượng các mẫu kết hợp dữ liệu có thể có thường trở nên vô cùng lớn. Khi đó, tác tử không thể thu thập dữ liệu sao cho bao hàm mọi khả năng một cách toàn diện, mà còn phải suy nghĩ xem thu thập dữ liệu loại nào thì quá trình học sẽ tiến triển thuận lợi.

Bên cạnh đó, trường hợp không có trạng thái, và chỉ thu được hành động cùng phần thưởng hệ quả dưới dạng dữ liệu được gọi là Bài toán Bandit (Bandit Problem / バンディット問題) [9], trong đó nhiều chiến lược thu thập dữ liệu đa dạng đã được đề xuất và phân tích. Ngoài ra, gần đây còn xuất hiện một cài đặt bài toán gọi là Học tăng cường ngoại tuyến (Offline Reinforcement Learning / オフライン強化学習) [10], trong đó việc Học tăng cường được thực hiện từ một tập dữ liệu đã chuẩn bị trước. Trong trường hợp này, không cần bận tâm đến phương pháp thu thập dữ liệu, nhưng lại phải đối mặt với một vấn đề khác khi chính sách sau khi học có thể khác biệt so với những gì tạo ra tập dữ liệu.

1-2-3 Dự đoán lợi tức (Return / 収益)

Cuối cùng, việc phải xem xét lợi tức – tức là tổng phần thưởng thu được trong tương lai – là một thách thức to lớn. Từ một trạng thái nhất định, bạn không thể biết được mình sẽ nhận được bao nhiêu phần thưởng trong tương lai nếu không thực sự tiếp tục hành động nhiều lần; tương lai càng xa thì càng có vô số kịch bản phải cân nhắc. Ngay cả khi cố gắng dự đoán lợi tức từ hiện trạng, vì các kịch bản này thay đổi tùy thuộc vào hành động mà chính tác tử thực hiện, nên câu trả lời chính xác về lợi tức được dự đoán mỗi khi chính sách được học/cập nhật cũng sẽ thay đổi theo chính sách. Tức là, nếu chính sách thay đổi đột ngột, kết quả dự đoán lợi tức của chính sách trước đó có thể hoàn toàn đi chệch hướng.

Mặt khác, chỉ khi phần thưởng được thiết kế cực kỳ kỹ lưỡng và chỉ xét đến phần thưởng tức thời là đủ, thì thay vì cất công dự đoán lợi tức, ta chỉ cần giải bài toán Ước lượng hợp lý cực đại (Maximum Likelihood Estimation / 最尤推定) của chính sách với trọng số là phần thưởng, và nếu phần thưởng luôn dương thì ta sẽ tìm được nghiệm cực kỳ hiệu quả [11]. Điều này trùng khớp với nghiệm đặc biệt khi hệ số chiết khấu $\gamma$ (nằm trong định nghĩa của lợi tức từ chương này trở đi) được đặt thành $0$, nên nếu hứng thú, bạn hãy tự tay thử kiểm chứng nhé. Tất nhiên, trên thực tế, việc thiết kế phần thưởng vô cùng khó khăn (xem Chương 6), nên cần lưu ý rằng bạn sẽ rất hiếm khi bắt gặp những trường hợp đặc biệt như thế này.

Leave a Comment

Chia sẻ:

Chương 1: Học tăng cường (Reinforcement Learning / 強化学習) là gì

Or copy link

CONTENTS