Overfitting là cái quái gì
Đây là cuộc hành trình của mình tìm về bản chất của câu chuyện overfiting, underfitting và các khái niệm lung tung xung quanh như bias-variance tradeoff.
Tài liệu tham khảo chính được lấy từ 2 cuốn sách:
- Abu-Mostafa, Yaser S., Malik Magdon-Ismail, and Hsuan-Tien Lin. Learning from data. Vol. 4. New York, NY, USA:: AMLBook, 2012.
- Friedman, Jerome, Trevor Hastie, and Robert Tibshirani. The elements of statistical learning. Vol. 1. New York: Springer series in statistics, 2001.
Nếu ai đó nói về hiện tượng overfitting, người nào học machine learning nghiêm chỉnh sẽ nói overfitting là khi mô hình có low bias và high variance. Trong khi đó thì underfitting là khi mà mô hình có high bias và low variance. Tuy nhiên, 2 khái niệm quái quỷ này xuất phát từ đâu.
Ta quay trở lại với câu chuyện về machine learning, mà theo bản thân mình, đây chính là “thống kê hiện đại”. Nào bắt đầu.
Đặt bối cảnh là học có giám sát (supervised learning), ta có một tập dữ liệu input và đồng thời thông tin được gán nhãn $(x, y)$. Trong đa số các thuật toán học giám sát, bản chất của các mô hình chính là việc tìm ta hàm $f(x)$ sao cho hàm này có thể xấp xỉ được y. Bởi ta không thể lấy toàn bộ mẫu của không gian x, nên ta không thể xây dựng chính xác được $f(x)$, đó là lí do ta gọi $f(x)$ là xấp xỉ.
Tuy nhiên, nếu giả sử vì 1 điều nhiệm màu nào đó, và với 1 mô hình huyền bí nào đó, ta thực sự có được $F(x)$, tức với mọi $x$, $F(x)$ tính chính xác được $y$. Tuy nhiên ta có 1 điều cần lưu ý, bởi sự gán nhãn, hay y, không phải luôn luôn đúng, nên thay vì $y = F(x)$, ta có:
$$y = F(x) + eps$$
Với eps là nhiễu với mean = 0, variance = $\sigma^2$.
Và giờ đây là lúc điều kì diệu bắt đầu xuất hiện. Trong đa số các mô hình giám sát, ta muốn tối thiểu độ lỗi của hàm xấp xỉ $f(x)$ và nhãn của dữ liệu. Một độ lỗi phổ biến chính là MSE, ta muốn tối ưu kỳ vọng của MSE này (lý do dùng kỳ vọng bởi ta tính MSE thông qua tập dữ liệu có trong tay):
$MSE = E[ (y - f(x)) ^ 2]$ , giờ là lúc trò mèo khai triển bắt đầu, để cho gọn thì $f(x) = f$, và $F(x) = F$. Bởi $F$ xác định (bởi đây là hàm duy nhất và tính chính xác quan hệ của x, y), nên $E[F] = F$. Đồng thời ta có $E[y] = E[F(x) + eps] = E[F(x)] + E[eps] = F + 0 = F$.
Công thức quan trọng nhất trong các khai triển sau: $Var[A] = E[A^2] - E[A]^2$. (*)
Ta cũng có biểu thức sau:
$$ Var[y] = E[(y - E[y])^2] = E[(F + eps - F)^2] = E[eps^2] = Var[eps] +E[eps]^2 = Var[eps] = \sigma^2 $$
$$ MSE = E[ y^2 - 2yf + f^2] = E[y^2] + E[f^2] - E[2yf] $$
$$ = Var[y] + E[y]^2 + Var[f] + E[f]^2 - 2yE[f]$$ (Công thức * và y deterministic). $$= \sigma^2 + Var[f] + E[f]^2 - 2FE[f] + F^2$$ (bình tĩnh khai triển) $$= \sigma^2 + Var[f] + (F - E[f])^2$$ $$= \sigma^2 + Var[f] + Bias^2$$
Tạm thời bỏ qua nhiễu của nhãn, ta có 2 hạng tử:
Variance: độ biến thiên của mô hình đề xuất, hay trực quan hơn là độ di chuyển của mô hình đề xuất xoay quanh kỳ vọng của nó. Nếu ta có rất nhiều data, và cố gắng fit toàn bộ data đó, một cách nào đó f của ta phải di chuyển rất nhiều dẫn đến variance cao.
Bias: khoảng cách giữa kì vọng của mô hình đề xuất và mô hình “thật sự”. Đây chính là chi phí của việc ta đã “đơn giản hóa” mô hình thực sự F.
Và giờ ta có thể thực sự hình dung một cách “trực quan” mô hình của mình thực sự tốt thế nào.
Nếu ta cố gắng fit mọi điểm trong data đang có, ta sẽ khiến bias nó thực sự thấp (bởi dùng rất điểm ra kq chính xác, nó sẽ rất gần với F “thực sự”), nhưng đồng thời đây variance lên cao, hiện tượng overfitting xuất hiện. Điều ngược lại của sẽ dễ thấy, nếu ta dùng quá ít data, f sẽ di chuyển ít (variance thấp), tuy nhiên f ta ước tính sẽ rất xa F thực sự (bias cao).
Điều này giúp ta trực quan hơn về các mô hình học:
- Linear Regression: ta đã “giả sử” F thần bí là linear, 1 giả sử quá phiêu và đơn giản, và do đó “chi phí” nó sẽ rất cao dẫn đến bias của linear regression sẽ cao. Tuy nhiên, vì ta không cố fit chính xác toàn bộ data point dẫn đến variance sẽ thấp.
- KNN: kNN cố gắng fit toàn bộ data nó đang có (với k càng lớn) dẫn đến bias nó sẽ về 0, nhưng càng lấy nhiều k, độ biến động của f càng cao dẫn đến variance cao.
Biết được bản chất của bias và variance, ta có thể phân tích “trực quan” mô hình đề xuất, qua đó có cái nhìn chính xác hơn với mô hình.