Underfitting
Underfitting xảy ra khi model quá đơn giản hoặc chưa được huấn luyện đủ để nắm bắt các quy luật trong dữ liệu, khiến model mắc lỗi trên cả dữ liệu huấn luyện lẫn dữ liệu mới. Tìm hiểu dấu hiệu và cách khắc phục.
Underfitting xảy ra khi một model machine learning (ML) không nắm bắt được các mẫu trong dữ liệu huấn luyện, nên model mắc lỗi lớn trên cả ví dụ đã học lẫn dữ liệu mới. Ví dụ kinh điển là dùng một đường thẳng để khớp các điểm nằm trên đường cong, như hồi quy tuyến tính thông thường: không có lựa chọn nào về độ dốc và tung độ gốc có thể bám theo đường cong. Model underfit có độ chệch cao, nghĩa là các giả định của model quá hạn chế để mô tả đúng mối quan hệ giữa đầu vào và đầu ra; độ chính xác của model thấp trên cả tập huấn luyện lẫn dữ liệu kiểm thử.
Dấu hiệu underfitting#
Dấu hiệu rõ nhất là loss huấn luyện luôn cao. Khi hàm loss chững ở mức cao hơn đáng kể so với mức chấp nhận được và loss trên dữ liệu validation gần bằng mức đó, model chưa học đủ; khoảng cách nhỏ giữa hai giá trị cho thấy ghi nhớ không phải vấn đề. Đường cong học tập biểu diễn lỗi theo kích thước tập huấn luyện cho thấy một dấu hiệu khác: cả hai đường cong đều phẳng ở mức lỗi cao, nên bổ sung dữ liệu cùng loại hầu như không giúp ích. Trong phát hiện đối tượng, model có độ chính xác trung bình (mAP) thấp ngay trên chính ảnh đã dùng huấn luyện là dấu hiệu underfitting; đây là một trong các bước kiểm tra của hướng dẫn kiểm thử model Ultralytics. So sánh cả hai loss giúp phân biệt underfitting với overfitting:
Các nguyên nhân thường gặp#
- Capacity quá thấp: Họ model không thể biểu diễn được mẫu dữ liệu, chẳng hạn model tuyến tính dùng cho dữ liệu dạng đường cong hoặc mạng rất nhỏ dùng cho tác vụ thị giác phức tạp.
- Quá ít epoch: Dừng huấn luyện quá sớm hoặc dùng learning rate quá nhỏ để đạt tiến triển trong khoảng thời gian cho phép sẽ khiến optimizer dừng trước khi hội tụ.
- Regularization quá mạnh: Weight decay cao, tỷ lệ dropout lớn hoặc augmentation quá mạnh giới hạn model đến mức model không thể khớp với tín hiệu.
- Đặc trưng không cung cấp thông tin: Thiếu biến hoặc giảm kích thước ảnh đến mức các đối tượng nhỏ biến mất sẽ làm mất thông tin cần thiết cho model.
- Vanishing gradient và các lỗi tối ưu hóa khác: Các lớp đầu của mạng sâu ngừng học dù model có đủ capacity.
Underfitting trong code#
Ví dụ sau dùng scikit-learn để khớp các mẫu nhiễu của đường cong sin bằng một đường thẳng và một đa thức bậc ba, sau đó báo cáo mean squared error (MSE) trên các điểm huấn luyện và kiểm thử:
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import PolynomialFeatures
# Noisy samples of a curved function
rng = np.random.default_rng(0)
x = rng.uniform(-3, 3, size=(200, 1))
y = np.sin(x).ravel() + rng.normal(0, 0.1, size=200)
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0)
# A straight line underfits; a cubic polynomial has enough capacity for the curve
for degree in (1, 3):
model = make_pipeline(PolynomialFeatures(degree), LinearRegression()).fit(x_train, y_train)
train_mse = mean_squared_error(y_train, model.predict(x_train))
test_mse = mean_squared_error(y_test, model.predict(x_test))
print(f"degree {degree}: train MSE {train_mse:.3f}, test MSE {test_mse:.3f}")Đường thẳng đạt MSE huấn luyện 0.193 và MSE kiểm thử 0.188; cả hai đều cao và gần bằng nhau, đây là dấu hiệu điển hình của underfitting. Mô hình bậc ba giảm hai giá trị xuống 0.013 và 0.017, gần với mức sàn 0.010 do nhiễu thêm vào dữ liệu tạo ra.
Khắc phục underfitting#
Các cách khắc phục nhắm vào nguyên nhân: model lớn hơn hoặc biểu đạt tốt hơn, huấn luyện lâu hơn với learning rate phù hợp, giảm regularization hoặc data augmentation, và dùng đầu vào phong phú hơn như ảnh có độ phân giải cao hơn. YOLO26 có các kích thước n, s, m, l và x, điều chỉnh độ sâu và chiều rộng của cùng một kiến trúc; vì vậy, chuyển từ yolo26n.pt sang kích thước lớn hơn thường là bước đầu tiên khi loss huấn luyện và validation trong results.csv của một lần chạy đều cao. Đối tượng nhỏ là trường hợp phổ biến trong thị giác máy tính: detector nhìn cảnh quay drone ở kích thước đầu vào thấp sẽ bỏ sót các đối tượng nhỏ mà kích thước đầu vào lớn hơn có thể giữ lại.
Underfitting so với Overfitting#
Underfitting và overfitting là hai chế độ lỗi của đánh đổi bias-variance. Model underfit có bias cao và mắc lỗi tương tự trên dữ liệu huấn luyện lẫn dữ liệu mới; model overfit có variance cao, khớp sát dữ liệu huấn luyện, kể cả nhiễu, nhưng tổng quát hóa kém. Hình dung kinh điển là đường cong lỗi kiểm thử hình chữ U, với underfitting ở bên trái và overfitting ở bên phải. Các mạng nơ-ron lớn khiến mô hình này phức tạp hơn do hiện tượng double descent: lỗi kiểm thử có thể giảm trở lại khi model đủ lớn để khớp chính xác dữ liệu huấn luyện, một hiện tượng được quan sát theo kích thước model và số epoch huấn luyện.










