Chống overfitting

Nhập môn Deep Learning với PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Nguyên nhân gây overfitting

  • Overfitting: mô hình không khái quát hóa cho dữ liệu chưa thấy
    • Mô hình ghi nhớ dữ liệu huấn luyện
    • Tốt trên dữ liệu huấn luyện nhưng kém trên dữ liệu xác thực
  • Nguyên nhân có thể:
Vấn đề Giải pháp
Tập dữ liệu chưa đủ lớn Thu thập thêm / tăng cường dữ liệu
Mô hình quá lớn (dư năng lực) Giảm kích thước / thêm dropout
Trọng số quá lớn Weight decay
Nhập môn Deep Learning với PyTorch

Chống overfitting

Chiến lược:

  • Giảm kích thước mô hình hoặc thêm lớp dropout
  • Dùng weight decay để ép tham số nhỏ lại
  • Thu thập mới hoặc tăng cường dữ liệu
Nhập môn Deep Learning với PyTorch

"Regularization" bằng lớp dropout

  • Ngẫu nhiên đặt về 0 các phần tử của tensor đầu vào trong khi huấn luyện
model = nn.Sequential(nn.Linear(8, 4),
                      nn.ReLU(),
                      nn.Dropout(p=0.5))
features = torch.randn((1, 8))
print(model(features))
tensor([[1.4655, 0.0000, 0.0000, 0.8456]], grad_fn=<MulBackward0>)
  • Đặt dropout sau hàm kích hoạt
  • Hành vi khác giữa huấn luyện và suy luận - dùng model.train() để huấn luyện và model.eval() để tắt dropout khi đánh giá
Nhập môn Deep Learning với PyTorch

Regularization với weight decay

optimizer = optim.SGD(model.parameters(), lr=0.001, weight_decay=0.0001)

  • Điều khiển bởi tham số weight_decay trong optimizer, thường là số nhỏ (ví dụ 0.0001)
  • Weight decay khuyến khích trọng số nhỏ hơn bằng cách thêm phạt trong tối ưu hóa
  • Giúp giảm overfitting, giữ trọng số nhỏ và cải thiện khả năng khái quát
Nhập môn Deep Learning với PyTorch

Tăng cường dữ liệu

ví dụ về tăng cường dữ liệu

Nhập môn Deep Learning với PyTorch

Luyện tập nào!

Nhập môn Deep Learning với PyTorch

Preparing Video For Download...