About Me

header ads

L2 Regularization

Trong máy học, vấn đề nhức nhối bao nhiêu con người ưu tú của nhân loại là Overfitting, do đó, có rất nhiều người đêm quên ăn, ngày ăn bù để suy nghĩ làm sao để hạn chế được Overfitting. Và một ý tưởng chợt lóe ra, ý tưởng này có thể mường tượng được như sau: bạn có một model với tập hợp các parameters, parameters càng nhiều thì model càng phức tạp. Đúng chưa? mà model càng phức tạp thì overfitting càng dễ gặp. Vậy để giảm overfitting, ta cần giảm độ phức tạp model, để giảm độ phức tạp model, ta giảm số lượng parameters. Mà để giảm số lượng parameters thì ta làm sao? Ta phải cho các parameters có giá trị càng gần 0 càng tốt. Vì sao? Vì nếu càng gần 0, thì sức ảnh hưởng của parameters càng ít và gần như tiêu biến. Và đó, là cách giảm parameters.
Ý tưởng đã có, vậy làm thế nào để giảm được giá trị của W mà độ chính xác của model vẫn ngon lành. Đây là lúc L2 Regularization có tác dụng. Ví dụ với hàm Linear Classifier, ta có hàm tổng quan là :
$f(x_{i},W)=Wx_{i}$
Giả sử ta có input x = [1,1,1,1], ta có 2 W lần lượt là W1 = [1,0,0,0] và W2 = [0.25,0.25,0.25,0.25]. Cả 2 đều cho ra cùng kết quả là 1. Và vì chung kết quả từ score function nên loss function SVM cũng tính ra chung 1 kết quả theo công thức:
$L_{i}=\sum_{j\neq y_{i}}max(0,s_{j}-s_{y_{i}}+\Delta )$
Nhưng các bạn thấy, rõ ràng ở W2, các giá trị gần 0 hơn, do đó sẽ giảm được overfitting. Vậy nên người ta đã nghĩ ra cách kết hợp hàm L2 Norm có công thức như sau:
$R(W)=\sum_{k}\sum_{l}W_{k,l}^{2}$
Nhìn công thức hầm hố vậy thôi, thực ra chỉ là tổng bình phương các giá trị của W. Kết hợp với SVM loss ta có:
$L_{i}=\sum_{j\neq y_{i}}max(0,s_{j}-s_{y_{i}}+\Delta )+\lambda \sum_{k}\sum_{l}W_{k,l}^{2}$
Ta có R(W1)=1, R(W2)=0.25. Vậy nên, L2 < L1. Do đó, với hàm loss này, ta sẽ chọn L2, chính là chọn W2. Và đó, đó chính là cách L2 Regularization được áp dụng để hạn chế overfitting. Với việc lập trình, mình thấy người ta hay dùng thuật ngữ Weight decay, và weight decay cũng chính là L2 Regularization.

Đăng nhận xét

0 Nhận xét