Behavioral Cloning
Behavioral cloning huấn luyện một policy bắt chước các minh họa của chuyên gia bằng học có giám sát. Cách hoạt động, lý do lỗi tích lũy và cách DAgger khắc phục.
Học bắt chước hành vi (BC) là hình thức đơn giản nhất của học bắt chước: agent học cách hành động bằng cách huấn luyện một policy với phương pháp học có giám sát thông thường để dự đoán hành động mà chuyên gia đã thực hiện trong từng tình huống của một bản ghi trình diễn. Dữ liệu huấn luyện là tập hợp các cặp quan sát–hành động, chẳng hạn như khung hình camera ghép với góc đánh lái của tài xế hoặc số đo khớp robot ghép với lệnh của người điều khiển từ xa; policy được khớp bằng loss hồi quy cho hành động liên tục hoặc loss phân loại cho hành động rời rạc. Học bắt chước hành vi không cần hàm phần thưởng hay tương tác với môi trường trong lúc huấn luyện, nên đây thường là điểm khởi đầu để dạy robot, phương tiện và AI agent phần mềm từ các bản trình diễn của con người.
Nguồn gốc và các ví dụ kinh điển#
Tên gọi này bắt nguồn từ công trình của Donald Michie và cộng sự vào khoảng năm 1990 về tái tạo kỹ năng điều khiển của con người. Ví dụ minh họa thời kỳ đầu nổi tiếng nhất là “Learning to Fly” của Claude Sammut và cộng sự năm 1992; họ ghi lại các thao tác điều khiển của người chơi trình mô phỏng bay rồi suy ra các hệ thống lái tự động dạng cây quyết định từ bản ghi. Từ năm 1989, ALVINN của Dean Pomerleau tại Carnegie Mellon đã cho thấy một mạng nơ-ron nhỏ có thể điều khiển phương tiện thử nghiệm dựa trên hình ảnh camera.
Hệ thống lái xe từ đầu đến cuối năm 2016 của NVIDIA hệ thống lái xe từ đầu đến cuối đã huấn luyện một mạng nơ-ron tích chập trên dữ liệu lái xe của con người trong khoảng 72 giờ để ánh xạ trực tiếp các pixel thô từ camera hướng về phía trước thành lệnh đánh lái; trong một chuyến đi điển hình ở hạt Monmouth, New Jersey, hệ thống tự lái khoảng 98% thời gian. Với các hành động rời rạc, bắt chước hành vi là phân loại ảnh: một model phân loại Ultralytics YOLO26 được huấn luyện trên các khung hình camera được sắp xếp vào từng thư mục theo hành động mà tài xế thực hiện, chẳng hạn như rẽ trái, đi thẳng và rẽ phải, rồi xuất hành động được bắt chước dưới dạng lớp top-1.
Vấn đề sai số tích lũy#
Trong quá trình huấn luyện, policy chỉ quan sát những trạng thái mà chuyên gia đã trải qua. Khi triển khai, policy hoạt động theo vòng kín, vì vậy mỗi sai sót nhỏ khiến nó chuyển sang một trạng thái hơi khác với mọi trạng thái trong dữ liệu trình diễn, nơi nó dễ mắc lỗi hơn; sai số tích lũy dọc theo quỹ đạo. Sự không khớp giữa trạng thái huấn luyện và triển khai này là một dạng dịch chuyển hiệp biến. Năm 2010, Stéphane Ross và Drew Bagnell cho thấy chi phí kỳ vọng của policy được bắt chước có thể tăng theo bình phương độ dài tác vụ, ngay cả khi sai số mỗi bước nhỏ. DAgger (Tổng hợp tập dữ liệu), do Ross, Geoffrey Gordon và Bagnell đề xuất năm 2011, giảm mức tăng xuống tuyến tính: policy đã học thực hiện hành động, chuyên gia gán nhãn các trạng thái mà policy gặp phải bằng hành động đúng, rồi policy được huấn luyện lại trên toàn bộ nhãn đã thu thập.
Ví dụ này bắt chước một bộ điều khiển được tinh chỉnh thủ công cho tác vụ Gymnasium CartPole, trong đó phải giữ thăng bằng một thanh trên xe đẩy đang chuyển động trong tối đa 500 bước, rồi áp dụng hai vòng DAgger:
import gymnasium as gym
import numpy as np
from sklearn.tree import DecisionTreeClassifier
env = gym.make("CartPole-v1")
expert = lambda obs: int(obs[2] + 0.5 * obs[3] > 0) # push toward the side the pole leans and falls
def rollout(policy, seed):
"""Run one episode with a policy and return the states it visited."""
obs, _ = env.reset(seed=seed)
states, done = [], False
while not done:
states.append(obs)
obs, _, terminated, truncated, _ = env.step(policy(obs))
done = terminated or truncated
return states
states = rollout(expert, seed=0) # one expert demonstration
for i in range(3):
# Behavioral cloning: fit a classifier from states to the expert's actions
clone = DecisionTreeClassifier(max_depth=5, random_state=0).fit(states, [expert(s) for s in states])
policy = lambda obs: int(clone.predict(obs[None])[0])
steps = np.mean([len(rollout(policy, seed)) for seed in range(100, 110)])
print(f"Round {i}: {len(states)} labeled states, clone balances for {steps:.0f} steps")
states += rollout(policy, seed=i + 1) # DAgger: the expert labels the states the clone visitsVòng 0 là học bắt chước hành vi thuần túy. Được huấn luyện trên một bản trình diễn 500 bước từ chuyên gia giữ thăng bằng thanh trong cả 500 bước, policy được bắt chước chỉ giữ được thanh thăng bằng trung bình 30 bước trong các episode mới. Vòng 1 bổ sung 23 trạng thái mà policy vòng 0 đã gặp trong một episode nữa, được chuyên gia gán nhãn, nâng mức trung bình lên 135 bước; sau khi bổ sung thêm 70 trạng thái như vậy ở vòng 2, policy giữ thăng bằng đủ 500 bước.
Các giải pháp khác thay đổi chính dữ liệu trình diễn. Hệ thống lái xe của NVIDIA bổ sung hình ảnh từ camera trái và phải cùng các dịch chuyển và xoay camera tổng hợp; mỗi hình ảnh được gán nhãn bằng thao tác đánh lái đưa xe về giữa làn trong vòng hai giây. Đây là một dạng tăng cường dữ liệu giúp hệ thống học cách phục hồi. DART thêm nhiễu vào hành động của người trình diễn trong lúc ghi hình, nhờ đó dữ liệu bao gồm cách chuyên gia điều chỉnh các sai lệch nhỏ. Phân đoạn hành động dự đoán đồng thời một số hành động trong tương lai, rút ngắn khoảng thời gian hiệu dụng mà sai số có thể tích lũy; policy ACT học các tác vụ phối hợp hai tay tinh vi, chẳng hạn lắp pin vào khe, với tỷ lệ thành công 80% đến 90% từ 10 phút dữ liệu trình diễn.
Dữ liệu trình diễn đa phương thức và các policy hiện đại#
Khi người trình diễn giải quyết cùng một tình huống theo nhiều cách khác nhau, chẳng hạn tránh chướng ngại vật bên trái hoặc bên phải, policy hồi quy dự đoán giá trị trung bình, có thể là một hành động mà không ai thực hiện. RT-1 của Google, một Transformer được huấn luyện bằng học bắt chước trên 130.000 bản trình diễn robot, có thể biểu diễn nhiều mode vì nó chia mỗi chiều hành động thành 256 bin rồi dự đoán chúng dưới dạng token. Policy khuếch tán mô hình hóa toàn bộ phân phối hành động bằng cách khử nhiễu ngẫu nhiên và đã trở thành lựa chọn phổ biến cho thao tác trong AI hiện thân.
Các model ngôn ngữ cũng được huấn luyện theo cách tương tự. Tinh chỉnh có giám sát một model ngôn ngữ lớn (LLM) trên câu trả lời do con người viết, phần cốt lõi của tinh chỉnh theo chỉ dẫn, là học bắt chước hành vi trên văn bản; bài báo WebGPT của OpenAI dùng chính thuật ngữ này cho giai đoạn trước học tăng cường từ phản hồi của con người (RLHF).
Học bắt chước hành vi và các thuật ngữ liên quan#
- Học tăng cường: Học từ tín hiệu phần thưởng thông qua thử và sai, đồng thời có thể vượt qua người trình diễn, điều mà học bắt chước hành vi không làm được. Các phương pháp RL ngoại tuyến như TD3+BC bổ sung thành phần học bắt chước hành vi để giữ policy đã học gần với dữ liệu được ghi lại.
- Học tăng cường nghịch đảo: Suy ra hàm phần thưởng giải thích dữ liệu trình diễn rồi tối ưu hóa hàm đó. Học bắt chước đối kháng sinh (GAIL) huấn luyện policy cho đến khi bộ phân biệt không thể phân biệt hành vi của policy với hành vi của chuyên gia.
- Chưng cất tri thức: Huấn luyện một model student nhỏ để bắt chước đầu ra của model teacher lớn hơn. Việc bắt chước một policy đã huấn luyện thay vì con người được gọi là chưng cất policy.










