Khi huấn luyện mô hình machine learning, một trong những vấn đề phổ biến nhất là overfitting — mô hình học quá kỹ dữ liệu huấn luyện nhưng lại kém trên dữ liệu mới. Early Stopping là một kỹ thuật đơn giản mà hiệu quả để giải quyết vấn đề này.
Early Stopping Là Gì?

Early Stopping (dừng sớm) là kỹ thuật chấm dứt quá trình huấn luyện mô hình khi hiệu suất trên tập validation bắt đầu giảm đi, thay vì đợi chạy hết toàn bộ số epoch đã cài đặt. Mục tiêu là dừng đúng lúc trước khi mô hình bắt đầu “học vẹt” dữ liệu huấn luyện.
Nói cách khác, thay vì để mô hình train đến hết, mình theo dõi biểu đồ loss trên tập validation. Khi loss này bắt đầu tăng lên (tức là mô hình đang đi sai hướng), mình dừng lại ngay lập tức.
Vì Sao Cần Early Stopping?
Khi train mô hình quá lâu, sẽ có một thời điểm mô hình không còn học các đặc trưng tổng quát nữa mà bắt đầu ghi nhớ từng điểm dữ liệu trong tập train. Kết quả là accuracy trên tập train vẫn tăng, nhưng trên tập validation lại đi xuống.
Mình từng thấy nhiều bạn mới vào ML cứ nghĩ “train càng lâu càng tốt”. Thực tế thì không phải. Quá trình huấn luyện có thể chia thành 3 giai đoạn:
- Underfitting: Mô hình chưa học đủ, cần train thêm
- Optimal: Mô hình học được các đặc trưng tổng quát, hiệu suất tốt nhất trên dữ liệu mới
- Overfitting: Mô hình bắt đầu ghi nhớ thay vì học, hiệu suất trên dữ liệu mới giảm
Early Stopping giúp mình dừng ở đúng giai đoạn thứ hai — điểm “ngọt nhất” của quá trình huấn luyện.
Early Stopping Hoạt Động Thế Nào?
Cơ chế khá đơn giản. Trong quá trình train, sau mỗi epoch, mình đánh giá mô hình trên tập validation và theo dõi một metric (thường là validation loss). Quy trình cụ thể như sau:
- Đặt một tham số patience — số epoch tối đa cho phép loss tăng liên tục trước khi dừng
- Sau mỗi epoch, tính validation loss
- Nếu loss thấp hơn lần tốt nhất trước đó, lưu lại weights của mô hình
- Nếu loss tăng liên tục vượt quá số patience, dừng huấn luyện
- Khôi phục weights từ lần tốt nhất
Ví dụ: Mình đặt patience=5. Nếu validation loss liên tục tăng trong 5 epoch liên tiếp, quá trình train sẽ dừng. Mô hình sẽ được khôi phục về trạng thái tốt nhất thay vì giữ lại phiên bản đã overfit.
Các Tham Số Quan Trọng
Để dùng Early Stopping hiệu quả, cần hiểu vài tham số then chốt:
Patience (kiên nhẫn): Số epoch cho phép loss tăng trước khi dừng. Đặt quá thấp, mô hình có thể dừng sớm khi chưa học đủ. Đặt quá cao, mô hình vẫn bị overfit. Mình thường dùng patience từ 5 đến 10 tùy bài toán.
Min delta: Ngưỡng thay đổi tối thiểu để coi là “cải thiện”. Nếu validation loss chỉ giảm 0.0001, có thể đó chỉ là noise chứ không phải cải thiện thực sự. Min delta giúp bỏ qua những thay đổi không đáng kể này.
Restore best weights: Khi dừng, có khôi phục lại weights tốt nhất hay giữ nguyên weights hiện tại. Luôn nên bật option này để đảm bảo mô hình ở trạng thái tối ưu.
Ví Dụ Thực Tế Với Code
Trong PyTorch, mình có thể implement Early Stopping thủ công hoặc dùng thư viện. Đây là ví dụ với Keras/TensorFlow — cách phổ biến nhất:
from tensorflow.keras.callbacks import EarlyStopping
early_stopping = EarlyStopping(
monitor='val_loss',
patience=5,
min_delta=0.001,
restore_best_weights=True,
mode='min'
)
model.fit(
X_train, y_train,
validation_data=(X_val, y_val),
epochs=100,
callbacks=[early_stopping]
)Trong PyTorch Lightning thì còn đơn giản hơn:
from pytorch_lightning.callbacks import EarlyStopping
trainer = Trainer(
callbacks=[EarlyStopping(monitor='val_loss', patience=5)],
max_epochs=100
)Chỉ vài dòng code nhưng có thể tiết kiệm hàng giờ train vô ích và cải thiện khả năng tổng quát hóa của mô hình đáng kể.
Lợi Ích Của Early Stopping
Tiết kiệm thời gian và tài nguyên: Không cần train đến epoch cuối cùng. Nếu mô hình hội tụ ở epoch 30, không có lý do gì train đến 100. Tiết kiệm điện, GPU hours, và thời gian của bạn.
Ngăn overfitting tự động: Đây là cách chống overfitting đơn giản nhất, không cần thay đổi kiến trúc mô hình hay thêm regularization phức tạp.
Tự động chọn số epoch tối ưu: Thay vì phải đoán trước “cần bao nhiêu epoch”, Early Stopping tự quyết định giúp. Đặt max_epochs cao rồi để nó tự dừng.
Kết hợp tốt với các kỹ thuật khác: Early Stopping dùng chung được với Dropout, Batch Normalization, weight decay, hay bất kỳ kỹ thuật regularization nào khác.
Nhược Điểm Cần Lưu Ý
Early Stopping không hoàn hảo. Validation loss có thể “nhảy” lên xuống do noise trong dữ liệu. Nếu patience quá thấp, mô hình có thể dừng khi thực chất chưa học xong. Đây là lý do min_delta quan trọng — nó giúp phân biệt giữa noise và xu hướng tăng thực sự.
Ngoài ra, chọn metric theo dõi cũng matters. Validation loss thường là lựa chọn an toàn nhất, nhưng trong một số bài toán (như imbalance data), mình có thể cần theo dõi F1 score hay AUC thay vì.
So Sánh Với Các Kỹ Thuật Khác
Early Stopping thường được dùng kết hợp với các phương pháp chống overfitting khác thay vì thay thế:
- Dropout: Tắt ngẫu nhiên neuron khi train. Early Stopping quyết định KHI nào dừng, Dropout quyết định CÁCH nào train tốt hơn.
- Data Augmentation: Tăng cường dữ liệu đa dạng hơn. Cùng dùng với Early Stopping sẽ hiệu quả hơn.
- Weight Decay (L2): Phạt weights lớn. Early Stopping bổ sung thêm lớp bảo vệ thứ hai.
Mình khuyên luôn dùng Early Stopping làm baseline. Chi phí gần như bằng không (vài dòng code) nhưng lợi ích rất lớn.
Best Practices Mình Tóm Lại
Sau nhiều dự án ML, đây là quy tắc mình theo:
- Luôn dùng Early Stopping khi train mô hình, trừ khi có lý do đặc biệt
- Patience 5-10 là điểm khởi đầu tốt cho hầu hết bài toán
- Theo dõi validation loss thay vì accuracy (loss nhạy cảm hơn với overfitting)
- Luôn bật restore_best_weights=True
- Đặt max_epochs cao (100-200), để Early Stopping tự quyết định khi nào dừng
Early Stopping là một trong những kỹ thuật “vừa rẻ vừa tốt” nhất trong machine learning. Nếu bạn mới bắt đầu, đây là công cụ đầu tiên nên thêm vào pipeline huấn luyện của mình.
Thuật ngữ liên quan
- Adam Optimizer Là Gì? Giải Thích Dễ Hiểu Về Bộ Tối Ưu Hàng Đầu Deep Learning
- Backpropagation Là Gì? Giải Thích Dễ Hiểu Cho Người Mới
- Batch Normalization Là Gì? Giải Thích Dễ Hiểu Cho Người Mới
- Batch Normalization Là Gì? Giải Thích Dễ Hiểu Cho Người Mới
- Batch Size Là Gì? Giải Thích Dễ Hiểu Cho Người Mới
Xem toàn bộ thư viện thuật ngữ AI & SEO A-Z.
