Overfitting trong học máy là gì và làm thế nào để tránh nó?



Bài viết này trình bày về Overfitting trong Machine Learning với các ví dụ và một số kỹ thuật để tránh, phát hiện Overfitting trong mô hình Machine learning.

Xây dựng mô hình Học máy không chỉ là cung cấp dữ liệu, có rất nhiều thiếu sót ảnh hưởng đến độ chính xác của bất kỳ mô hình nào. Overfitting trong là một trong những thiếu sót trong Học máy cản trở độ chính xác cũng như hiệu suất của mô hình. Các chủ đề sau được đề cập trong bài viết này:

Overfitting trong Machine Learning là gì?

Một mô hình thống kê được cho là quá phù hợp khi chúng ta cung cấp cho nó nhiều dữ liệu hơn mức cần thiết. Để làm cho nó dễ liên tưởng, hãy tưởng tượng cố gắng mặc vừa những bộ quần áo quá khổ.





Khi một mô hình phù hợp với nhiều dữ liệu hơn nó thực sự cần, nó bắt đầu bắt dữ liệu nhiễu và các giá trị không chính xác trong dữ liệu. Kết quả là, hiệu quả và độ chính xác của mô hình giảm xuống. Chúng ta hãy xem xét một vài ví dụ về việc trang bị quá nhiều để hiểu nó thực sự xảy ra như thế nào.



Ví dụ về trang phục quá mức

ví dụ 1

Nếu chúng ta lấy một ví dụ về đơn giản hồi quy tuyến tính , đào tạo dữ liệu là tất cả về việc tìm ra chi phí tối thiểu giữa dòng phù hợp nhất và các điểm dữ liệu. Nó trải qua một số lần lặp lại để tìm ra sự phù hợp tối ưu nhất, giảm thiểu chi phí. Đây là lúc trang phục quá mức xuất hiện trong bức tranh.



Đường được thấy trong hình trên có thể đưa ra kết quả rất hiệu quả cho một điểm dữ liệu mới. Trong trường hợp overfitting, khi chúng tôi chạy thuật toán huấn luyện trên tập dữ liệu, chúng tôi cho phép giảm chi phí với mỗi số lần lặp.

Chạy cái này quá lâu sẽ có nghĩa là giảm chi phí nhưng nó cũng sẽ phù hợp với dữ liệu nhiễu từ tập dữ liệu. Kết quả sẽ giống như trong biểu đồ bên dưới.

Điều này có vẻ hiệu quả nhưng không thực sự như vậy. Mục tiêu chính của một thuật toán chẳng hạn như hồi quy tuyến tính là tìm ra xu hướng nổi trội và điều chỉnh các điểm dữ liệu cho phù hợp. Nhưng trong trường hợp này, đường phù hợp với tất cả các điểm dữ liệu, điều này không liên quan đến hiệu quả của mô hình trong việc dự đoán kết quả tối ưu cho các điểm dữ liệu nhập mới.

Bây giờ chúng ta hãy xem xét một ví dụ mô tả hơn với sự trợ giúp của một câu lệnh vấn đề.

Ví dụ 2

Báo cáo vấn đề: Hãy xem xét chúng tôi muốn dự đoán liệu một cầu thủ bóng đá có giành được vị trí trong một câu lạc bộ bóng đá cấp 1 hay không dựa trên thành tích hiện tại của anh ấy / cô ấy trong giải đấu cấp 2.

Bây giờ hãy tưởng tượng, chúng tôi đào tạo và phù hợp với mô hình với 10.000 người chơi có kết quả như vậy. Khi chúng tôi cố gắng dự đoán kết quả trên tập dữ liệu ban đầu, giả sử chúng tôi có độ chính xác 99%. Nhưng độ chính xác trên một tập dữ liệu khác là khoảng 50%. Điều này có nghĩa là mô hình không khái quát hóa tốt từ dữ liệu đào tạo và dữ liệu không nhìn thấy của chúng tôi.

Đây là những gì trang phục quá mức trông giống như. Đó là một vấn đề rất phổ biến trong Học máy và thậm chí là khoa học dữ liệu. Bây giờ chúng ta hãy hiểu tín hiệu và tiếng ồn.

Tín hiệu so với tiếng ồn

Trong mô hình dự đoán, tín hiệu đề cập đến mô hình cơ bản thực sự giúp mô hình tìm hiểu dữ liệu. Mặt khác, nhiễu là dữ liệu không liên quan và ngẫu nhiên trong tập dữ liệu. Để hiểu khái niệm về tiếng ồn và tín hiệu, chúng ta hãy lấy một ví dụ thực tế.

Giả sử chúng ta muốn mô hình hóa độ tuổi so với khả năng đọc viết của người lớn. Nếu chúng ta lấy mẫu một phần rất lớn dân số, chúng ta sẽ tìm thấy một mối quan hệ rõ ràng. Đây là tín hiệu, trong khi tiếng ồn gây nhiễu tín hiệu. Nếu chúng ta làm điều tương tự với một người dân địa phương, mối quan hệ sẽ trở nên khó khăn. Nó sẽ bị ảnh hưởng bởi các yếu tố ngoại lai và ngẫu nhiên, ví dụ: một người lớn đi học sớm hoặc một số người lớn không đủ khả năng học hành, v.v.

Nói về tiếng ồn và tín hiệu về mặt Học máy, một thuật toán Học máy tốt sẽ tự động tách tín hiệu khỏi tiếng ồn. Nếu thuật toán quá phức tạp hoặc không hiệu quả, nó cũng có thể bị nhiễu. Do đó, trang bị quá nhiều cho mô hình. Hãy để chúng tôi hiểu thêm về sự phù hợp trong Học máy.

Underfitting là gì?

Để tránh trang bị quá sức, chúng tôi có thể dừng việc đào tạo ở giai đoạn sớm hơn. Nhưng nó cũng có thể dẫn đến việc mô hình không thể học đủ từ dữ liệu đào tạo, dẫn đến khó nắm bắt được xu hướng nổi trội. Điều này được gọi là trang bị thiếu. Kết quả cũng giống như sự thừa thãi, kém hiệu quả trong việc dự đoán kết quả.

Bây giờ chúng ta đã hiểu thực sự trang bị thừa và trang bị quá mức trong Học máy, chúng ta hãy cố gắng hiểu cách chúng tôi có thể phát hiện trang bị quá mức trong Học máy.

Làm thế nào để phát hiện Overfitting?

Thách thức chính với overfitting là ước tính độ chính xác của hiệu suất mô hình của chúng tôi với dữ liệu mới. Chúng tôi sẽ không thể ước tính độ chính xác cho đến khi chúng tôi thực sự kiểm tra nó.

Để giải quyết vấn đề này, chúng ta có thể chia tập dữ liệu ban đầu thành các tập dữ liệu huấn luyện và thử nghiệm riêng biệt. Với kỹ thuật này, chúng tôi thực sự có thể ước tính mô hình của chúng tôi sẽ hoạt động tốt như thế nào với dữ liệu mới.

Hãy để chúng tôi hiểu điều này bằng một ví dụ, hãy tưởng tượng chúng tôi nhận được độ chính xác hơn 90% trên bộ đào tạo và độ chính xác 50% trên bộ kiểm tra. Sau đó, tự động nó sẽ là một lá cờ đỏ cho mô hình.

Một cách khác để phát hiện trang bị quá mức là bắt đầu với một mô hình đơn giản sẽ dùng làm tiêu chuẩn.

Với cách tiếp cận này, nếu bạn thử các thuật toán phức tạp hơn, bạn sẽ có thể hiểu được liệu độ phức tạp bổ sung có đáng giá cho mô hình hay không. Nó còn được gọi là Thử nghiệm dao cạo của Occam , về cơ bản nó chọn mô hình đơn giản trong trường hợp hiệu suất tương đương trong trường hợp hai mô hình. Mặc dù việc phát hiện trang phục quá mức là một thực tiễn tốt,nhưng cũng có một số kỹ thuật để ngăn chặn việc mặc quá nhiều. Hãy để chúng tôi xem cách chúng tôi có thể ngăn chặn việc trang bị quá mức trong Học máy.

Làm thế nào để tránh trang bị quá nhiều trong học máy?

Có một số kỹ thuật để tránh trang bị quá nhiều trong Học máy được liệt kê bên dưới.

  1. Xác thực chéo

  2. Đào tạo với nhiều dữ liệu hơn

  3. Loại bỏ các tính năng

  4. Dừng sớm

  5. Chính quy

    cách sử dụng các gói trong java
  6. Lắp ráp

1. Xác thực chéo

Một trong những tính năng mạnh mẽ nhất để tránh / ngăn chặn việc trang bị quá nhiều là xác thực chéo. Ý tưởng đằng sau điều này là sử dụng dữ liệu đào tạo ban đầu để tạo các phân tách thử nghiệm đào tạo nhỏ và sau đó sử dụng các phân tách này để điều chỉnh mô hình của bạn.

Trong xác thực k-lần tiêu chuẩn, dữ liệu được phân vùng thành các tập con k còn được gọi là các nếp gấp. Sau đó, thuật toán được huấn luyện lặp đi lặp lại trên k-1 nếp gấp trong khi sử dụng các nếp gấp còn lại làm tập thử nghiệm, còn được gọi là nếp gấp giữ lại.

Việc xác nhận chéo giúp chúng tôi điều chỉnh các siêu tham số chỉ với tập huấn luyện ban đầu. Về cơ bản, nó giữ tập thử nghiệm riêng biệt như một tập dữ liệu không nhìn thấy thực sự để chọn mô hình cuối cùng. Do đó, tránh hoàn toàn việc trang bị quá nhiều.

2. Đào tạo với nhiều dữ liệu hơn

Kỹ thuật này có thể không hoạt động mọi lúc, như chúng ta cũng đã thảo luận trong ví dụ trên, trong đó việc đào tạo với một lượng lớn dân số sẽ giúp ích cho mô hình. Về cơ bản, nó giúp mô hình xác định tín hiệu tốt hơn.

Nhưng trong một số trường hợp, dữ liệu tăng lên cũng có thể đồng nghĩa với việc cung cấp nhiều nhiễu hơn cho mô hình. Khi chúng tôi đào tạo mô hình với nhiều dữ liệu hơn, chúng tôi phải đảm bảo dữ liệu sạch và không có sự ngẫu nhiên và không nhất quán.

3. Loại bỏ các tính năng

Mặc dù một số thuật toán có lựa chọn tự động các tính năng. Đối với một số lượng đáng kể những người không có lựa chọn tính năng tích hợp sẵn, chúng tôi có thể xóa thủ công một vài tính năng không liên quan khỏi các tính năng đầu vào để cải thiện tính tổng quát.

Một cách để làm điều đó là đưa ra kết luận về cách một tính năng phù hợp với mô hình. Nó khá giống với gỡ lỗi từng dòng mã.

Trong trường hợp nếu một tính năng không thể giải thích mức độ liên quan trong mô hình, chúng tôi có thể chỉ cần xác định các tính năng đó. Chúng tôi thậm chí có thể sử dụng một vài phương pháp phỏng đoán lựa chọn tính năng để có một điểm khởi đầu tốt.

4. Dừng lại sớm

Khi mô hình đang được đào tạo, bạn thực sự có thể đo lường mức độ hoạt động của mô hình dựa trên mỗi lần lặp lại. Chúng tôi có thể làm điều này cho đến khi các lần lặp lại cải thiện hiệu suất của mô hình. Sau đó, mô hình bổ sung quá nhiều dữ liệu đào tạo vì tính tổng quát yếu đi sau mỗi lần lặp.

Vì vậy, về cơ bản, dừng sớm có nghĩa là dừng quá trình đào tạo trước khi mô hình vượt qua điểm mà mô hình bắt đầu trang bị quá mức dữ liệu đào tạo. Kỹ thuật này chủ yếu được sử dụng trong học kĩ càng .

5. Quy định hóa

Về cơ bản, nó có nghĩa là buộc mô hình của bạn đơn giản hơn một cách giả tạo bằng cách sử dụng nhiều kỹ thuật hơn. Nó hoàn toàn phụ thuộc vào loại người học mà chúng tôi đang sử dụng. Ví dụ, chúng ta có thể cắt bớt một , sử dụng tính năng bỏ học trên mạng thần kinh hoặc thêm tham số phạt vào hàm chi phí trong hồi quy.

Thông thường, chính quy hóa cũng là một siêu tham số. Nó có nghĩa là nó cũng có thể được điều chỉnh thông qua xác nhận chéo.

6. Lắp ráp

Kỹ thuật này về cơ bản kết hợp các dự đoán từ các mô hình Học máy khác nhau. Hai trong số các phương pháp phổ biến nhất để tập hợp được liệt kê dưới đây:

  • Nỗ lực đóng gói để giảm cơ hội trang bị quá nhiều cho các mô hình

  • Thúc đẩy nỗ lực cải thiện tính linh hoạt dự đoán của các mô hình đơn giản hơn

Mặc dù cả hai đều là phương pháp tổng hợp, nhưng cách tiếp cận hoàn toàn bắt đầu từ các hướng ngược nhau. Bagging sử dụng các mô hình cơ sở phức tạp và cố gắng làm mượt các dự đoán của chúng trong khi boost sử dụng các mô hình cơ sở đơn giản và cố gắng tăng độ phức tạp tổng hợp của nó.

Goodness Of Fit là gì?

Trong mô hình thống kê, mức độ phù hợp đề cập đến mức độ phù hợp của kết quả hoặc giá trị dự đoán khớp với giá trị được quan sát hoặc giá trị thực.Một mô hình đã học được tiếng ồn thay vì tín hiệu được trang bị quá mức vì nó sẽ phù hợp với tập dữ liệu huấn luyện nhưng sẽ có hiệu quả kém hơn với tập dữ liệu mới.

Sự đánh đổi giữa độ chệch và phương sai

Cả phương sai và độ chệch đều là dạng sai số dự đoán trong . Sự cân bằng giữa phương sai cao và độ chệch cao là một khái niệm rất quan trọng trong thống kê và Học máy. Đây là một khái niệm ảnh hưởng đến tất cả các thuật toán Học máy được giám sát.

Sự cân bằng phương sai lệch có tác động rất đáng kể đến việc xác định độ phức tạp, trang bị thiếu và trang bị thừa cho bất kỳ mô hình Học máy nào.

cấu trúc dữ liệu java và thuật toán

Thiên kiến

Nó không là gì khác ngoài sự khác biệt giữa các giá trị dự đoán và các giá trị thực tế hoặc đúng trong mô hình. Không phải lúc nào mô hình cũng dễ dàng học hỏi từ các tín hiệu khá phức tạp.

Hãy để chúng tôi tưởng tượng phù hợp với một hồi quy tuyến tính sang mô hình có dữ liệu phi tuyến tính. Cho dù mô hình học các quan sát hiệu quả đến đâu, nó sẽ không mô hình hóa các đường cong một cách hiệu quả. Nó được gọi là underfitting.

Phương sai

Nó đề cập đến độ nhạy của mô hình đối với các nhóm cụ thể trong dữ liệu đào tạo. Một thuật toán phương sai cao sẽ tạo ra một mô hình kỳ lạ khác hẳn với tập huấn luyện.

Hãy tưởng tượng một thuật toán phù hợp với mô hình không bị hạn chế và siêu linh hoạt, nó cũng sẽ học hỏi từ tiếng ồn trong tập huấn luyện gây ra overfitting.

Đánh đổi phương sai lệch

Thuật toán Học máy không thể được coi là phương pháp một lần để đào tạo mô hình, thay vào đó, nó là một quá trình lặp đi lặp lại.

Các thuật toán thiên vị phương sai thấp-cao ít phức tạp hơn, với cấu trúc đơn giản và cứng nhắc.

  • Họ sẽ đào tạo các mô hình nhất quán, nhưng trung bình không chính xác.

  • Chúng bao gồm các thuật toán tuyến tính hoặc tham số, chẳng hạn như hồi quy, , Vân vân.

Các thuật toán thiên vị phương sai cao-thấp có xu hướng phức tạp hơn, với cấu trúc linh hoạt.

  • Họ sẽ đào tạo các mô hình không nhất quán nhưng chính xác ở mức trung bình.

  • Chúng bao gồm các thuật toán phi tuyến tính hoặc phi tham số như , , Vân vân.

Điều này đưa chúng ta đến phần cuối của bài viết này, nơi chúng ta đã học Overfitting trong Machine learning và về các kỹ thuật khác nhau để tránh nó. Tôi hy vọng bạn rõ ràng với tất cả những gì đã được chia sẻ với bạn trong hướng dẫn này.

Nếu bạn thấy bài viết này về “Overfitting In Machine Learning” có liên quan, hãy xem một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu.

Chúng tôi ở đây để giúp bạn từng bước trong hành trình của mình và đưa ra chương trình giảng dạy được thiết kế cho sinh viên và các chuyên gia muốn trở thành . Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Python và đào tạo bạn về cả khái niệm Python cốt lõi và nâng cao cùng với nhiều giống , , Vân vân.

Nếu bạn có bất kỳ câu hỏi nào, vui lòng đặt tất cả câu hỏi của bạn trong phần nhận xét của “Overfitting In Machine Learning” và nhóm của chúng tôi sẽ sẵn lòng trả lời.