Một số phương pháp xử lý overfitting P1

3 min read

Overfitting là gì?

Giả sử bạn có một bộ dữ liệu hình ảnh về các loài hoa, và bạn muốn xây dựng một mô hình học máy để phân loại các loài hoa khác nhau. Bạn chia bộ dữ liệu thành tập huấn luyện và tập kiểm tra, và sử dụng một mạng neural để huấn luyện mô hình. Sau khi huấn luyện, bạn thấy rằng mô hình có độ chính xác rất cao trên tập huấn luyện, nhưng rất thấp trên tập kiểm tra. Điều này có nghĩa là mô hình đã bị overfitting, tức là nó đã học quá nhiều chi tiết và nhiễu của tập huấn luyện, mà không thể tổng quát hóa cho tập kiểm tra. Một nguyên nhân có thể là mạng neural quá phức tạp, hoặc tập huấn luyện không đủ đa dạng và đại diện cho các loài hoa.

Như vậy, Overfitting có thể hiểu đơn giản là hiện tượng mô hình học máy quá khớp với dữ liệu huấn luyện, dẫn đến kết quả kém trên dữ liệu kiểm tra hoặc dữ liệu mới.

Để tránh overfitting, ta có thể vận dụng một số phương pháp cổ điển như sau:

Loại bỏ các feature không cần thiết

Phương pháp loại bỏ các feature không cần thiết hay các feature ít ảnh hưởng đến kết quả của thuật toán là một trong những cách nên làm để giảm bớt overfitting. Việc này giúp giảm độ phức tạp của mô hình, tránh việc mô hình bị nhiễu bởi các feature không liên quan hoặc không có ý nghĩa.

Loại bỏ các instance bất thường

Phương pháp loại bỏ các instance bất thường trong tập dữ liệu cũng có thể giúp giảm bớt overfitting. Các instance bất thường là những điểm dữ liệu có giá trị quá lớn hoặc quá nhỏ so với phân bố của dữ liệu, hoặc có nhãn sai. Các instance này có thể gây ra sai lệch cho mô hình, làm cho mô hình không thể tổng quát hóa được cho dữ liệu mới.

overfitting

Thu thập thêm dữ liệu mới. 

Dữ liệu càng nhiều và đa dạng, càng giúp mô hình học được nhiều mẫu và quy luật của dữ liệu, cải thiện khả năng khái quát hóa của mô hình. Tuy nhiên, việc thu thập dữ liệu mới có thể tốn nhiều thời gian và chi phí, và không phải lúc nào cũng có sẵn dữ liệu mới.

Một số phương pháp làm tăng dữ liệu ta có thể tham khảo như:

  • Craw thêm dữ liệu: craw thêm dữ liệu hay tới thực tiễn để thu thập, quay video, chụp ảnh,…Tuy nhiên trong nhiều trường hợp thì việc thu thập thêm dữ liệu là infeasible nên phương pháp này không được khuyến khích.
  • Data Augmentation : Augmentation là 1 phương thức tăng thêm dữ liệu từ dữ liệu có sẵn bằng cách rotation, flip, scale, skew,… images. Phương pháp này được sử dụng rất phổ biến trong xử lý ảnh cho Deep learning.
  • GAN : GAN ( Generative Adverserial Network) là mô hình học không giám sát dùng để sinh dữ liệu từ nhiễu (noise). Nó là sự kết hợp của 2 model : Generative dùng để sinh ảnh từ nhiễu và Discriminator dùng để check ảnh được sinh ra có giống ảnh real hay không? GAN là mô hình hiên nay đang được sử dụng rất phổ biến và tính ứng dụng rất cao. Hiện có rất nhiều mô hình GAN như : CGAN, StyleGAN, StarGAN, CycleGAN,…Các bạn nên đọc cái này, thực sự rất bổ íchTham khảo chi tiết hơn tại: https://nttuan8.com/bai-1-gioi-thieu-ve-gan/

Còn tiếp…

Nguồn tham khảo:

Machine Learning cơ bản (machinelearningcoban.com)

Các phương pháp tránh Overfitting – Regularization, Dropout (viblo.asia)

Avatar photo

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc comment trong lập trình

Trong lập trình, code không chỉ là một tập hợp các câu lệnh để máy tính thực thi, mà còn là một hình thức...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc xử lý lỗi (Error Handling)

Trong quá trình phát triển phần mềm, việc xử lý lỗi không chỉ là một phần quan trọng mà còn ảnh hưởng trực tiếp...
Avatar photo Dat Tran Thanh
4 min read

Leave a Reply

Your email address will not be published. Required fields are marked *