Nếu học có giám sát giúp AI học từ những đáp án đã biết trước, còn học không giám sát giúp AI tự khám phá cấu trúc của dữ liệu, thì học tăng cường (Reinforcement Learning - RL) lại đi theo một hướng hoàn toàn khác: AI học bằng chính trải nghiệm của mình.
Deep Reinforcement Learning là gì? Vì sao AI cần kết hợp Học sâu với Học tăng cường
Thay vì được hướng dẫn từng
bước, tác nhân (agent) liên tục tương tác với môi trường, thử nhiều hành động
khác nhau và nhận phần thưởng hoặc hình phạt. Sau hàng nghìn, thậm chí hàng triệu
lần thử nghiệm, AI dần học được chiến lược tối ưu để đạt mục tiêu.
1. Học có giám sát (Supervised learning)
Học có giám sát (Supervised
learning) là lĩnh vực được nghiên cứu kỹ lưỡng và nổi tiếng nhất
trong học máy. Câu hỏi cốt lõi mà nó giải quyết là: Làm thế nào để xây dựng
một hàm số có khả năng tự động ánh xạ (map) một đầu vào thành một đầu ra tương ứng,
khi chúng ta đã có sẵn một tập hợp các cặp ví dụ mẫu?.
Mặc dù định nghĩa nghe có
vẻ đơn giản, nhưng thực tế bài toán này chứa đựng nhiều thách thức hóc búa mà
máy tính chỉ mới bắt đầu giải quyết thành công trong thời gian gần đây. Có một
số ví dụ thực tế:
- Phân loại văn bản:
Xác định một tin nhắn email là thư rác (spam) hay không?.
- Phân loại hình ảnh:
Bức ảnh này chụp con mèo, con chó hay một vật thể nào khác?
- Bài toán hồi quy:
Dựa trên dữ liệu từ các cảm biến, thời tiết ngày mai sẽ như thế nào?
- Phân tích cảm xúc:
Mức độ hài lòng của khách hàng thông qua một bài đánh giá là bao nhiêu?
Đặc điểm chính của Học có giám sát:
- Học từ ví dụ:
Chúng ta cung cấp cho máy tính rất nhiều ví dụ bao gồm cả đầu vào và đầu
ra mong muốn. Từ đó, máy tính phải học cách dự đoán đầu ra cho những dữ liệu
mới mà nó chưa từng gặp trước đó.
- Nguồn dữ liệu chuẩn (Ground truth):
Tên gọi "có giám sát" xuất phát từ việc quá trình học dựa trên
những câu trả lời đã biết từ trước, được cung cấp bởi một nguồn dữ liệu
tin cậy (gọi là "ground truth") đóng vai trò như một "người
giám sát" đưa ra đáp án đúng để máy tính đối chiếu và học hỏi.
Tinh thần của học có giám
sát là xây dựng một hệ thống biết rút ra quy luật từ những cặp "câu hỏi -
câu trả lời" có sẵn để sau đó có thể tự trả lời những câu hỏi mới một cách
chính xác. Tuy nhiên, cũng lưu ý rằng trong thế giới thực, ngay cả những bài
toán tưởng chừng như tĩnh (đầu vào - đầu ra cố định) này cũng có thể thay đổi
theo thời gian, đòi hỏi chúng ta phải cập nhật dữ liệu liên tục.
2. Học không giám sát (Unsupervised learning)
Khác với học có giám sát,
Học không giám sát không có sự giám sát và không có các nhãn (labels)
biết trước được gán cho dữ liệu. Mục tiêu chính của nó là khám phá ra những
cấu trúc ẩn bên trong tập dữ liệu mà chúng ta đang có.
Có hai ví dụ tiêu biểu:
- Phân cụm dữ liệu (Clustering):
Đây là ví dụ phổ biến nhất. Thuật toán sẽ tự động tìm cách nhóm các mục dữ
liệu có đặc điểm giống nhau thành từng cụm. Qua đó, chúng ta có thể phát
hiện ra các mối quan hệ mới mẻ trong dữ liệu, ví dụ như:
- Tìm các hình ảnh tương tự nhau.
- Nhận diện các nhóm khách hàng có chung hành vi mua sắm.
- Generative Adversarial Networks -
GANs: Đây là một phương pháp đang ngày càng phổ biến.
Trong mô hình này, có hai mạng lưới thần kinh "cạnh tranh" với
nhau:
- Mạng thứ nhất cố gắng tạo ra dữ liệu giả để "đánh lừa" mạng thứ hai.
- Mạng thứ hai cố gắng phân biệt giữa dữ liệu thật và dữ liệu giả.
- Theo thời gian, cả hai đều trở nên điêu luyện hơn và giúp máy tính nắm bắt được những quy luật, chi tiết cực kỳ tinh vi trong tập dữ liệu.
Nếu học có giám sát là học
từ các câu trả lời đúng có sẵn, thì học không giám sát giống như việc máy tính
tự mày mò để tìm ra các khuôn mẫu (patterns) mà không cần ai chỉ bảo. Nếu đặt học
không giám sát ở một đầu cực, học có giám sát ở đầu cực kia, thì Học tăng cường
(Reinforcement Learning) nằm đâu đó ở giữa hai phương pháp này.
3. Học tăng cường (Reinforcement Learning - RL)
Học tăng cường
(Reinforcement Learning - RL) là một phương pháp học
máy, trong đó mô hình AI học cách đưa ra quyết định thông qua quá trình thử
và sai. Thay vì được cung cấp sẵn đáp án đúng như học có giám sát, AI sẽ
tương tác với môi trường, thực hiện các hành động và nhận phần thưởng nếu
hành động mang lại kết quả tốt hoặc hình phạt nếu kết quả không mong muốn.
Qua nhiều lần lặp lại, mô hình dần học được chiến lược tối ưu để tối đa hóa tổng
phần thưởng nhận được. Phương pháp này đặc biệt phù hợp với các bài toán ra quyết
định liên tục như điều khiển robot, xe tự lái, chơi trò chơi hoặc tối ưu hóa
quy trình.
Ví dụ về Con chuột Robot trong mê cung
- Môi trường (Environment):
Là mê cung với thức ăn (phần thưởng dương) và các điểm gây sốc điện (phần
thưởng âm).
- Tác nhân (Agent):
Là con chuột robot, nó có thể thực hiện các Hành động (Actions) như
rẽ trái, rẽ phải hoặc tiến lên.
- Phần thưởng (Reward):
Con chuột cố gắng tìm nhiều thức ăn nhất có thể và tránh bị giật điện.
Chúng ta không cần lập
trình sẵn cho con chuột phải làm gì trong mọi tình huống. Nó sẽ tự học thông
qua thử và sai.
Sự khác biệt so với các phương pháp khác
- So với Học có giám sát:
RL không có "người thầy" nào dán nhãn cho mọi hành động là đúng
hay sai. Con chuột không được bảo trước là nên rẽ hướng nào để tới chỗ có
phô mai.
- So với Học không giám sát:
RL không hoàn toàn "mù quáng" vì nó có hệ thống phần thưởng
(Reward) để điều hướng.
Tại sao RL lại khó và thách thức?
Sự linh hoạt của RL đi
kèm với cái giá là sự phức tạp. Có ba yếu tố chính làm RL trở nên hóc búa:
- Dữ liệu không độc lập:
Những gì tác nhân quan sát được phụ thuộc vào chính hành vi của nó trong
quá khứ.
- Tiến thoái lưỡng nan giữa Khám phá và
Khai thác (Exploration vs Exploitation): Tác nhân phải
cân bằng giữa việc thử những hành động mới để tìm phần thưởng lớn hơn
(Khám phá) và việc sử dụng những gì đã biết là tốt (Khai thác).
- Phần thưởng bị trì hoãn (Delayed
Reward): Một hành động cực kỳ tốt lúc này có
thể chỉ mang lại kết quả sau rất nhiều bước nữa (ví dụ: một nước đi hay
trong cờ vua có thể thay đổi cục diện cả trận đấu về sau).
Nói chúng: RL
là một phương pháp giúp máy tính học cách hành xử tối ưu trong những môi trường
phức tạp và thay đổi, nơi mà các câu trả lời đúng không được biết trước mà phải
được khám phá thông qua trải nghiệm.
4. Phần thưởng (Reward)
Đây là một thành phần cốt
lõi để điều hướng hành vi của tác nhân (agent).
Bản chất của Phần thưởng: Chỉ là một con số
Trong Học tăng cường, phần
thưởng đơn giản là một giá trị vô hướng (scalar value) mà tác nhân nhận
được định kỳ từ môi trường. Con số này có thể là số dương hoặc số âm, lớn hoặc
nhỏ, nhưng nó chỉ là một con số thuần túy.
Mục đích duy nhất của nó
là cho tác nhân biết nó đã hành động tốt đến mức nào. Thuật ngữ "tăng
cường" (reinforcement) xuất phát từ việc phần thưởng sẽ củng cố hành
vi của tác nhân theo hướng tích cực hoặc tiêu cực.
Tính chất "Cục bộ" và bài học về sự đánh đổi
Một điểm quan trọng cần lưu ý là phần thưởng mang tính cục bộ (local). Nó phản ánh sự thành công của các hoạt động gần đây, chứ không phải toàn bộ thành công mà tác nhân đã đạt được từ đầu đến giờ.
Mục tiêu cuối cùng: Tích lũy lâu dài
Dù phần thưởng nhận được
theo từng bước, nhưng mục tiêu thực sự của tác nhân là đạt được tổng phần
thưởng tích lũy lớn nhất trong suốt chuỗi hành động của nó.
Các ví dụ thực tế dễ hiểu
- Giao dịch tài chính:
Số lợi nhuận kiếm được chính là phần thưởng.
- Chơi cờ:
Phần thưởng nhận được ở cuối ván đấu (thắng, thua hoặc hòa).
- Trò chơi điện tử:
Điểm số hoặc số quân địch bị tiêu diệt.
- Trường học:
Điểm số là hệ thống phần thưởng để phản hồi cho học sinh về việc học tập.
Phần
thưởng là động lực chính thúc đẩy quá trình học tập của máy. Nếu hệ thống
phần thưởng bị thiết kế sai, nhiễu hoặc lệch lạc, tác nhân có thể học theo những
hướng hoàn toàn sai lầm.
5. Tác nhân (Agent)
Tác nhân (Agent)
là một trong hai thành phần chính của hệ thống Học tăng cường.
Tác nhân (Agent) là gì trong
Trong học tăng cường
(Reinforcement Learning - RL), tác nhân (agent) không phải là đoạn mã phần mềm
mà lập trình viên viết ra, mà là thực thể ra quyết định. Đoạn mã chỉ là
cách để hiện thực hóa tác nhân trên máy tính.
Nói cách khác, tác nhân
là thành phần có nhiệm vụ quan sát môi trường, lựa chọn và thực hiện các hành
động tương tác với môi trường, nhận phần thưởng và học hỏi từ kết quả để cải
thiện quyết định theo thời gian. Khi lập trình RL, bạn sẽ viết mã để xây dựng
tác nhân, nhưng điều quan trọng là tác nhân không được lập trình sẵn mọi quyết
định. Thay vào đó, nó tự học chiến lược tối ưu thông qua quá trình thử
và sai.
Ví dụ, nếu bạn muốn tạo một
AI chơi cờ vua:
- Đoạn mã
bạn viết định nghĩa luật chơi, cách AI quan sát bàn cờ, cách tính phần thưởng
và thuật toán học.
- Tác nhân
là AI đang chơi cờ. Ban đầu nó có thể đi những nước rất kém, nhưng sau
hàng triệu ván đấu, nó học được cách chọn các nước đi giúp tăng xác suất
chiến thắng.
Vì vậy, có thể hiểu ngắn
gọn rằng tác nhân là chương trình AI mà bạn xây dựng để giải quyết một bài
toán, nhưng điểm khác biệt cốt lõi là nó không chỉ thực thi các quy tắc được lập
trình sẵn mà còn có khả năng tự học và cải thiện chiến lược từ kinh nghiệm.
Chính khả năng học hỏi này là yếu tố phân biệt tác nhân trong học tăng cường với
một chương trình phần mềm thông thường chỉ thực hiện các lệnh đã được lập trình
cố định.
Các ví dụ thực tế để hình dung
Để giúp bạn hiểu rõ hơn
"ai" hoặc "cái gì" đóng vai trò là tác nhân, có một số ví dụ
cụ thể như sau:
- Giao dịch tài chính:
Tác nhân là hệ thống giao dịch tự động hoặc chính nhà giao dịch đưa ra quyết
định mua/bán.
- Chơi cờ:
Tác nhân là người chơi hoặc chương trình máy tính đang tính toán nước đi.
- Trò chơi máy tính:
Tác nhân là người chơi hoặc chương trình máy tính điều khiển nhân vật.
Vai trò của Tác nhân trong vòng lặp RL
Tác nhân không hoạt động
cô lập. Nó nằm trong một vòng lặp giao tiếp liên tục với môi trường thông qua
ba kênh chính:
1. Hành
động (Actions): Những gì tác nhân thực hiện và tác động
lên môi trường.
2. Phần
thưởng (Reward): Phản hồi mà tác nhân nhận được để biết
mình làm tốt hay tệ.
3. Quan
sát (Observations): Những thông tin khác (ngoài phần thưởng)
mà môi trường cung cấp để tác nhân hiểu tình hình xung quanh.
Tác nhân như là một "trung
tâm điều khiển" có khả năng học hỏi từ những phản hồi của môi trường để
dần hoàn thiện hành vi của mình nhằm đạt được mục tiêu cuối cùng là tối đa hóa
phần thưởng tích lũy.
6. Môi trường (Environment)
Môi trường (Environment)
trong học tăng cường (Reinforcement Learning - RL) là tất cả những gì mà tác
nhân tương tác để hoàn thành một nhiệm vụ. Môi trường sẽ cung cấp trạng thái
hiện tại, tiếp nhận hành động do tác nhân thực hiện, sau đó phản hồi
bằng trạng thái mới cùng với phần thưởng hoặc hình phạt
tương ứng. Thông qua quá trình tương tác liên tục với môi trường, tác nhân dần
học được những hành động nào mang lại kết quả tốt nhất.
Ví dụ, trong một trò chơi
cờ vua, môi trường chính là bàn cờ cùng các quân cờ và luật chơi; còn trong xe
tự lái, môi trường bao gồm đường sá, phương tiện khác, biển báo và mọi yếu tố
xung quanh mà xe phải quan sát và phản ứng.
7. Hành động (Actions)
Hành động (Action)
trong học tăng cường (Reinforcement Learning - RL) là quyết định hoặc
thao tác mà tác nhân thực hiện tại một thời điểm để tác động lên môi trường.
Sau mỗi hành động, môi trường sẽ chuyển sang một trạng thái mới và trả về phần
thưởng hoặc hình phạt, giúp tác nhân đánh giá xem quyết định đó có
mang lại kết quả mong muốn hay không. Qua quá trình thử và sai lặp đi lặp lại,
tác nhân dần học được nên chọn hành động nào trong từng trạng thái để đạt được
mục tiêu với hiệu quả cao nhất. Ví dụ, trong trò chơi cờ vua, một hành động là
di chuyển một quân cờ; còn đối với xe tự lái, hành động có thể là tăng tốc, giảm
tốc, rẽ trái, rẽ phải hoặc phanh.
Có thể chia hành động
thành hai loại chính:
- Hành động rời rạc (Discrete actions):
Là một tập hợp hữu hạn các lựa chọn loại trừ lẫn nhau. Ví dụ: rẽ trái hoặc
rẽ phải, nhấn nút hoặc thả nút. Tại một thời điểm, tác nhân chỉ có thể chọn
một hành động duy nhất trong danh sách có sẵn.
- Hành động liên tục (Continuous
actions): Là những hành động đi kèm với một
giá trị cụ thể. Ví dụ: khi lái xe, hành động "xoay vô lăng"
không chỉ là xoay hay không, mà là xoay một góc bao nhiêu độ.
Sự tương tác giữa Môi trường và Hành động
1. Tác
nhân
thực hiện một Hành động gửi tới Môi trường.
2. Môi
trường thay đổi trạng thái dựa trên hành động đó và phản hồi
lại cho tác nhân hai thứ: một Quan sát mới và một Phần thưởng.
8. Quan sát (Observations)
Quan sát (Observations)
là kênh thông tin quan trọng thứ hai (sau Phần thưởng) mà tác nhân nhận được từ
môi trường.
Nếu Phần thưởng cho tác
nhân biết nó đang làm tốt đến mức nào, thì Quan sát là những mẩu thông
tin cho tác nhân biết "chuyện gì đang xảy ra xung quanh mình".
Quan sát có thể phản ánh
đầy đủ trạng thái của môi trường hoặc chỉ cung cấp một phần thông tin, tùy thuộc
vào bài toán. Dựa trên các quan sát liên tục, tác nhân học cách lựa chọn những
hành động phù hợp nhằm tối đa hóa tổng phần thưởng. Ví dụ, trong xe tự lái,
quan sát có thể bao gồm hình ảnh từ camera, dữ liệu từ cảm biến và tốc độ hiện
tại của xe; còn trong trò chơi cờ vua, quan sát chính là cách các quân cờ đang
được bố trí trên bàn cờ.
Quan sát là cách tác nhân
"nhìn" thế giới. Một hệ thống RL tốt phải học được cách đưa ra quyết
định thông minh dựa trên những thông tin quan sát đôi khi là mơ hồ và không đầy
đủ.
9. Ví dụ Tác nhân RL trong thế giới lưới
Thiết lập môi trường và mục tiêu
Hãy hình dung một môi trường
là một lưới ô vuông 3x3, bao gồm các ô từ A đến I.
- Tác nhân (Agent):
Là robot bắt đầu tại ô A.
- Mục tiêu:
Di chuyển từ ô A đến ô I (ô đích).
- Mối nguy hiểm:
Có các ô bị gạch chéo (B, C, G, và H) mà tác nhân cần tránh.
Các yếu tố cơ bản của bài toán
Để tác nhân có thể học,
chúng ta thiết lập các quy tắc sau:
- Trạng thái (States):
Chính là vị trí của các ô từ A đến I.
- Hành động (Actions):
Tác nhân có thể di chuyển theo 4 hướng: lên, xuống, trái, phải.
- Phần thưởng (Reward):
- Nếu đi vào ô bị gạch chéo: Nhận phần
thưởng tiêu cực (-1).
- Nếu đi vào ô không bị gạch chéo: Nhận
phần thưởng tích cực (+1).
Quá trình học tập qua phương pháp "Thử và
sai"
Trong lần đầu tiên, tác
nhân chưa biết gì về thế giới này nên sẽ hành động ngẫu nhiên. Quá trình này diễn
ra qua các lần lặp:
Lần lặp 1 (Iteration 1):
Tác nhân thử đi sang Phải
từ A và rơi vào ô B (ô bị gạch chéo). Nó nhận ngay phần thưởng -1.
Lúc này, tác nhân hiểu rằng: "Tại ô A, đi sang phải là một hành động xấu".
Sau đó, từ B nó đi Xuống ô E (+1), sang Phải ô F
(+1) và đi Xuống để tới đích I (+1).
Lần lặp 2 (Iteration 2):
Lần này, tác nhân không
đi sang phải từ A nữa vì đã có kinh nghiệm đau thương. Nó thử đi Xuống ô
D và nhận +1 (hành động tốt). Tuy nhiên, từ D nó lại đi tiếp xuống
G (gạch chéo, -1) rồi sang H (gạch chéo, -1). Cuối cùng nó mới
sang được I. Tác nhân học được thêm: "Tại D, đi xuống là không tốt".
Lần lặp 3 (Iteration 3):
Tác nhân giờ đã khôn
ngoan hơn nhờ các bài học trước:
1. Tại
A: Nó đi Xuống ô D (vì biết đi phải là xấu).
2. Tại
D: Nó không đi xuống tiếp mà chọn đi sang Phải để vào ô E
(vì biết đi xuống là xấu).
3. Từ
E: Nó đi sang Phải ô F và đi Xuống ô I.
Kết quả: Hình thành Chính
sách tối ưu
Sau nhiều lần lặp lại như
vậy, tác nhân đã học được cách đi từ A đến I bằng con đường A -> D ->
E -> F -> I mà không hề va vào bất kỳ ô nguy hiểm nào.
Kết luận
Học tăng cường không dạy
AI phải làm gì trong từng tình huống mà chỉ cung cấp phản hồi dưới dạng phần
thưởng. Chính quá trình thử và sai liên tục giúp tác nhân tự xây dựng chiến lược
tối ưu.


Comments
Post a Comment