Overfitting: Độ phức tạp của mô hình

Bài trước giới thiệu mô hình sau, mô hình này đã phân loại sai rất nhiều số cây trong tập hợp kiểm định:

Hình 16. Hình ảnh giống như Hình 13. Đây là một hình dạng phức tạp
            phân loại sai nhiều cây.
Hình 16. Mô hình phức tạp hoạt động không chính xác ở bài trước.

Mô hình trước chứa nhiều hình dạng phức tạp. Có đơn giản hơn không mô hình này xử lý dữ liệu mới tốt hơn không? Giả sử bạn thay thế mô hình phức tạp bằng một mô hình đơn giản đến khó tin--một đường thẳng.

Hình 17. Mô hình đường thẳng thực hiện công việc tuyệt vời
            ngăn cách cây bị bệnh khỏi cây khoẻ.
Hình 17. Một mô hình đơn giản hơn nhiều.

Mô hình đơn giản tổng quát hoá tốt hơn mô hình phức tạp trên dữ liệu mới. Tức là mô hình đơn giản đưa ra dự đoán tốt hơn về tập kiểm định so với mô hình phức tạp.

Sự đơn giản đã đánh bại sự phức tạp trong một thời gian dài. Trên thực tế, việc Sở thích sự đơn giản là từ thời Hy Lạp cổ đại. Hàng thế kỷ sau, một thầy tu thế kỷ 14 tên là William of Occam đã hình thức hoá sở thích này tính đơn giản trong triết lý Occam dao lam. Triết lý này vẫn là nguyên tắc cơ bản của nhiều ngành khoa học, bao gồm công nghệ học máy.

Bài tập: Kiểm tra mức độ hiểu biết của bạn

Bạn đang phát triển một phương trình vật lý. Công thức nào sau đây phù hợp hơn với Dao cạo của Occam?
Một công thức có 3 biến.
3 biến phù hợp với Occam hơn 12 biến.
Một công thức có 12 biến.
12 biến số có vẻ quá phức tạp phải không? Hai công thức vật lý nổi tiếng nhất mọi thời đại (F=ma và E=mc2) mỗi biến chỉ liên quan đến 3 biến.
Bạn đang tham gia một dự án học máy hoàn toàn mới và sắp chọn các tính năng đầu tiên. Bạn nên chọn bao nhiêu tính năng?
Chọn từ 1 đến 3 tính năng có vẻ có khả năng dự đoán mạnh mẽ.
Tốt nhất là bạn nên bắt đầu quy trình thu thập dữ liệu chỉ với một hoặc 2 tính năng. Việc này sẽ giúp bạn xác nhận rằng mô hình học máy hoạt động như dự kiến. Ngoài ra, khi bạn xây dựng đường cơ sở từ một số tính năng, bạn sẽ cảm thấy như mình đang tiến bộ!
Chọn từ 4 đến 6 tính năng có vẻ có khả năng dự đoán mạnh mẽ.
Cuối cùng, có thể bạn sẽ sử dụng nhiều tính năng này, nhưng vẫn tốt hơn bắt đầu bằng ít hơn. Ít tính năng hơn thường đồng nghĩa với việc ít cần thiết hơn chức năng.
Chọn nhiều tính năng nhất có thể để bạn có thể bắt đầu quan sát có khả năng dự đoán mạnh nhất.
Bắt đầu nhỏ hơn. Mỗi tính năng mới đều thêm một phương diện mới vào nội dung đào tạo của bạn tập dữ liệu. Khi kích thước tăng lên, thể tích của không gian tăng nhanh đến mức dữ liệu huấn luyện có sẵn trở nên thưa thớt. Chiến lược phát hành đĩa đơn tiết kiệm dữ liệu của bạn, thì mô hình càng khó tìm hiểu mối quan hệ giữa các tính năng thực sự quan trọng và nhãn. Hiện tượng này được gọi là "nguyền rủa của tính không gian".

Điều chỉnh đều đặn

Các mô hình học máy phải đáp ứng đồng thời hai mục tiêu mâu thuẫn:

  • Vừa với dữ liệu.
  • Điều chỉnh dữ liệu sao cho đơn giản nhất có thể.

Một cách tiếp cận để duy trì mô hình đơn giản là phạt các mô hình phức tạp; tức là để buộc mô hình trở nên đơn giản hơn trong quá trình huấn luyện. Phức tạp về hình phạt mô hình phân bổ chính là một hình thức chuẩn hoá.

Sự mất mát và tính phức tạp

Cho đến nay, khoá học này đề xuất rằng mục tiêu duy nhất khi đào tạo là giảm thiểu tổn thất; đó là:

$$\text{minimize(loss)}$$

Như bạn đã thấy, các mô hình chỉ tập trung vào việc giảm thiểu tổn thất có xu hướng quá mức. Thuật toán tối ưu hoá huấn luyện tốt hơn giúp giảm thiểu một số tổ hợp tổn thất và phức tạp:

$$\text{minimize(loss + complexity)}$$

Thật không may, sự mất mát và sự phức tạp thường có tỷ lệ nghịch với nhau. Như độ phức tạp tăng lên, mất mát giảm đi. Khi độ phức tạp giảm đi thì sự mất mát càng gia tăng. Bạn nên tìm một vị trí trung gian hợp lý, nơi mô hình tạo nên hiệu quả các dự đoán về cả dữ liệu huấn luyện và dữ liệu thực tế. Tức là mô hình của bạn cần tìm được một giải pháp hợp lý giữa mất mát và phức tạp.

Độ phức tạp là gì?

Có thể bạn đã biết một số cách đo lường sự mất mát. Làm thế nào bạn định lượng độ phức tạp không? Bắt đầu khám phá bằng cách làm theo bài tập sau:

Bài tập: Kiểm tra trực giác của bạn

Cho đến nay, chúng ta vẫn khá mơ hồ về những độ phức tạp thực sự của chúng tôi. Bạn nghĩ ý tưởng nào sau đây là hợp lý độ phức tạp không?
Độ phức tạp là một hàm của trọng số của mô hình.
Có, đây là một cách để đo lường một số mô hình độ phức tạp của chúng. Chỉ số này được gọi là Điều chỉnh L1.
Độ phức tạp là hàm bình phương trọng số của mô hình.
Có, bạn có thể đo lường một số mô hình phức tạp theo cách này. Chỉ số này được gọi Điều chỉnh L2.
Độ phức tạp là một hàm thể hiện độ sai lệch của tất cả các tính năng trong mô hình.
Thiên vị không đo lường sự phức tạp.