Online Learning
Học trực tuyến cập nhật model từng mẫu hoặc mini-batch khi dữ liệu liên tục được truyền vào, nhờ đó model tiếp tục học và thích ứng với hiện tượng trôi dạt khái niệm mà không cần huấn luyện lại.
Học trực tuyến là thiết lập machine learning trong đó model học từ dữ liệu đến theo chuỗi, cập nhật sau mỗi ví dụ hoặc batch nhỏ thay vì chỉ huấn luyện một lần trên tập dữ liệu cố định. Ở mỗi bước, model đưa ra dự đoán, nhận kết quả thực tế, đo loss, rồi điều chỉnh tham số trước khi ví dụ tiếp theo đến. Phương pháp này phù hợp với dữ liệu dạng luồng như lượt nhấp, giao dịch hoặc số đo cảm biến; dữ liệu quá lớn để lưu trữ; và các mối quan hệ thay đổi theo thời gian. Học theo batch hay học offline là phương pháp ngược lại: model huấn luyện trên toàn bộ dữ liệu huấn luyện cùng lúc và giữ nguyên cho đến khi được huấn luyện lại.
Cách thức hoạt động của học trực tuyến#
Perceptron của Frank Rosenblatt năm 1958 là một mô hình học trực tuyến, điều chỉnh trọng số sau mỗi ví dụ phân loại sai; stochastic gradient descent (SGD) áp dụng cùng kiểu cập nhật theo từng ví dụ hoặc batch cho hầu hết model khả vi. Các thuật toán khác được thiết kế cho luồng dữ liệu: cây Hoeffding do Pedro Domingos và Geoff Hulten giới thiệu năm 2000 phát triển cây quyết định từ luồng dữ liệu trong khi chỉ xem mỗi ví dụ một lần; các thư viện như River triển khai phiên bản xử lý luồng của những model phổ biến. Trong scikit-learn, các estimator có phương thức partial_fit sẽ học tăng dần.
Mô hình học trực tuyến thường được đánh giá theo kiểu prequential, thuật ngữ do nhà thống kê Philip Dawid đặt ra: mỗi ví dụ mới trước tiên được dùng để kiểm tra model rồi mới dùng để huấn luyện, vì vậy điểm số tích lũy được tính trên dữ liệu model chưa từng thấy. Lý thuyết đánh giá mô hình học trực tuyến bằng regret, tức độ chênh lệch giữa loss tích lũy của mô hình và loss của model cố định tốt nhất được chọn khi đã biết toàn bộ dữ liệu. Năm 2003, Martin Zinkevich chứng minh rằng online gradient descent giữ mức tăng regret chỉ tỷ lệ với căn bậc hai của số bước, nên chênh lệch trung bình mỗi bước giảm dần về không.
Ví dụ này đưa 400 mini-batch theo luồng vào một mô hình hồi quy logistic được huấn luyện bằng SGD. Đến giữa quá trình, quy tắc gán nhãn thay đổi và một bản sao được đóng băng tại thời điểm đó đại diện cho model đã ngừng học:
import copy
import numpy as np
from sklearn.linear_model import SGDClassifier
rng = np.random.default_rng(0)
online = SGDClassifier(loss="log_loss", random_state=0)
scores = {"frozen": [], "online": []}
for step in range(400): # 400 mini-batches of 20 examples arrive one at a time
X = rng.normal(size=(20, 2))
w = [1.0, 1.0] if step < 200 else [1.0, -1.0] # the labeling rule changes at step 200
y = (X @ np.array(w) > 0).astype(int)
if step == 200:
frozen = copy.deepcopy(online) # a copy that stops learning when the rule changes
if step >= 200: # test on each new batch before learning from it
scores["frozen"].append(frozen.score(X, y))
scores["online"].append(online.score(X, y))
online.partial_fit(X, y, classes=[0, 1])
for name, acc in scores.items():
print(f"{name}: {np.mean(acc):.2f} accuracy after the change")Sau thay đổi, model đóng băng đạt điểm 0.47, không tốt hơn đoán ngẫu nhiên, trong khi model trực tuyến đạt trung bình 0.98. Model trực tuyến đạt 0.35 ở batch đầu tiên theo quy tắc mới và 0.80 ở batch thứ hai, rồi phục hồi sau vài batch nữa.
Concept drift và hiện tượng quên#
Lý do chính để học trực tuyến là concept drift, sự thay đổi trong mối quan hệ giữa đầu vào và nhãn, thường đi kèm data drift trong chính dữ liệu đầu vào. Drift có thể xảy ra đột ngột như trong ví dụ, tăng dần hoặc lặp lại theo mùa và thời gian trong ngày. Các bộ phát hiện như ADWIN của Albert Bifet và Ricard Gavaldà theo dõi luồng lỗi và phát tín hiệu khi giá trị trung bình thay đổi, từ đó có thể kích hoạt cập nhật nhanh hơn hoặc đặt lại model.
Thích ứng nhanh đi kèm chi phí. Learning rate cao giúp theo kịp drift nhưng cũng bám theo nhiễu; mạng chỉ nhìn thấy dữ liệu gần đây sẽ ghi đè những gì đã học trước đó, một lỗi gọi là catastrophic forgetting. Buffer phát lại, trộn các ví dụ cũ được lưu trữ vào mỗi lần cập nhật, là biện pháp khắc phục phổ biến.
Học trực tuyến trong thực tế#
Học trực tuyến phổ biến trong những trường hợp nhãn đến trong vài giây. Dự đoán lượt nhấp quảng cáo là ví dụ điển hình: năm 2013, Google mô tả cách các model tỷ lệ nhấp của họ liên tục huấn luyện trên dữ liệu dạng luồng bằng thuật toán FTRL-Proximal; hệ thống gợi ý và chấm điểm gian lận thường cũng cập nhật theo cách tương tự. Thay vào đó, các model thị giác đã triển khai thường được cập nhật theo batch vì nhãn đến muộn và một lần cập nhật lỗi có thể làm giảm chất lượng mọi dự đoán sau đó; do vậy, các nhóm kết hợp giám sát model với fine-tuning định kỳ trên dữ liệu gần đây và dữ liệu phát lại, như trong quy trình bảo trì model.
Các bản cập nhật trực tuyến quy mô nhỏ hơn vẫn diễn ra bên trong các hệ thống thị giác máy tính. Trong Ultralytics YOLO26 chế độ theo dõi, việc bật tái nhận dạng bằng with_reid: True khiến bộ theo dõi TrackTrack mặc định duy trì một embedding biểu diễn diện mạo cho mỗi track và cập nhật embedding đó sau mỗi detection được ghép khớp bằng phương pháp trung bình trượt, gán cho embedding mới trọng số bằng 5% nhân với độ tin cậy của detection; nhờ vậy, diện mạo của mỗi track thích ứng với những thay đổi dần về tư thế và ánh sáng, trong khi mạng ReID vẫn giữ nguyên.
Continual learning có điểm giao với học trực tuyến nhưng tập trung vào việc lưu giữ các tác vụ trước khi tác vụ mới xuất hiện, trong khi học trực tuyến mô tả tần suất cập nhật. Active learning chọn ví dụ cần gán nhãn; reinforcement learning cũng học từ luồng tương tác, nhưng dựa trên phần thưởng cho hành động của chính nó thay vì ví dụ đã gán nhãn.










