Tại sao có sự bất cân xứng giữa bước đào tạo và bước đánh giá?


27

Điều nổi tiếng, đặc biệt là trong xử lý ngôn ngữ tự nhiên, học máy nên tiến hành theo hai bước, bước đào tạo và bước đánh giá và họ nên sử dụng các dữ liệu khác nhau. Tại sao lại thế này? Theo trực giác, quá trình này giúp tránh quá nhiều dữ liệu, nhưng tôi không thấy lý do (lý thuyết thông tin) đây là trường hợp.

Liên quan, tôi đã thấy một số con số được sử dụng cho bao nhiêu bộ dữ liệu nên được sử dụng cho đào tạo và bao nhiêu để đánh giá, như 2/3 và 1/3 tương ứng. Có bất kỳ cơ sở lý thuyết cho việc lựa chọn một phân phối cụ thể?

Câu trả lời:


15

Thật buồn cười khi câu trả lời được đánh giá cao nhất không thực sự trả lời được câu hỏi :) vì vậy tôi nghĩ sẽ rất tốt nếu sao lưu câu hỏi này với lý thuyết hơn một chút - chủ yếu được lấy từ "Khai thác dữ liệu: Công cụ và kỹ thuật máy học thực tế"Tom Mitchell "Học máy" .


Giới thiệu.

Vì vậy, chúng tôi có một bộ phân loại và một bộ dữ liệu hạn chế, và một lượng dữ liệu nhất định phải được đưa vào tập huấn luyện và phần còn lại được sử dụng để thử nghiệm (nếu cần, một tập hợp con thứ ba được sử dụng để xác nhận).

Vấn đề nan giải mà chúng ta phải đối mặt là: để tìm ra một lớp tốt, "tập con đào tạo" phải càng lớn càng tốt, nhưng để có được một ước tính lỗi tốt, "tập con kiểm tra" phải càng lớn càng tốt - nhưng cả hai tập con đều được lấy từ cùng hồ bơi.

Rõ ràng là tập huấn luyện phải lớn hơn tập kiểm tra - nghĩa là, phần chia không nên là 1: 1 (mục tiêu chính là đào tạo , không phải kiểm tra ) - nhưng không rõ sự phân chia nên ở đâu.

Thủ tục giữ hàng.

Quy trình tách "superset" thành các tập con được gọi là phương thức giữ . Lưu ý rằng bạn có thể dễ dàng gặp xui xẻo và các ví dụ về một lớp nhất định có thể bị thiếu (hoặc đánh giá quá cao) trong một trong các tập hợp con, có thể được giải quyết qua

  • lấy mẫu ngẫu nhiên, đảm bảo rằng mỗi lớp được thể hiện đúng trong tất cả các tập hợp dữ liệu - thủ tục được gọi là giữ nguyên strati
  • lấy mẫu ngẫu nhiên với quá trình kiểm tra-kiểm tra-kiểm tra lặp đi lặp lại trên đầu trang - được gọi là tổ chức phân tầng lặp đi lặp lại

Trong một quy trình duy nhất (không lặp lại), bạn có thể xem xét hoán đổi vai trò của dữ liệu kiểm tra và huấn luyện và tính trung bình hai kết quả, nhưng điều này chỉ hợp lý với tỷ lệ 1: 1 giữa tập huấn luyện và kiểm tra không chấp nhận được (xem Giới thiệu ). Nhưng điều này đưa ra một ý tưởng và một phương pháp cải tiến (được gọi là xác thực chéo được sử dụng thay thế) - xem bên dưới!

Xác nhận chéo.

Trong xác thực chéo, bạn quyết định số lần gấp (phân vùng của dữ liệu). Nếu chúng ta sử dụng ba lần, dữ liệu được chia thành ba phân vùng bằng nhau và

  • chúng tôi sử dụng 2/3 cho đào tạo và 1/3 cho thử nghiệm
  • và lặp lại quy trình ba lần để cuối cùng, mọi trường hợp đã được sử dụng chính xác một lần để kiểm tra.

Điều này được gọi là xác thực chéo ba lần và nếu thông tin phân tầng cũng được thông qua (điều này thường đúng) thì nó được gọi là xác thực chéo ba lần phân tầng .

Nhưng, lo và kìa, cách tiêu chuẩn không phải là chia 2/3: 1/3. Trích dẫn "Khai thác dữ liệu: Các công cụ và kỹ thuật máy học thực tế" ,

Cách tiêu chuẩn [...] là sử dụng xác thực chéo 10 lần. Dữ liệu được chia ngẫu nhiên thành 10 phần trong đó lớp được biểu diễn theo tỷ lệ xấp xỉ như trong tập dữ liệu đầy đủ. Mỗi phần được tổ chức lần lượt và kế hoạch học tập được đào tạo trên chín phần mười còn lại; sau đó tỷ lệ lỗi của nó được tính trên tập hợp giữ. Do đó, quy trình học tập được thực hiện tổng cộng 10 lần trên các bộ huấn luyện khác nhau (mỗi bộ có rất nhiều điểm chung). Cuối cùng, 10 ước tính lỗi được tính trung bình để mang lại ước tính lỗi tổng thể.

Tại sao 10? Bởi vì "kiểm tra ..Extensive trên nhiều bộ dữ liệu, học các kỹ năng khác nhau, đã chỉ ra rằng 10 là về đúng số nếp gấp để có được ước tính tốt nhất của lỗi, và cũng có một số bằng chứng lý thuyết mà lưng lên này .." Tôi thiên đường Chúng tôi đã tìm thấy những bài kiểm tra mở rộng và bằng chứng lý thuyết mà họ muốn nói nhưng bài kiểm tra này có vẻ như là một khởi đầu tốt để đào thêm - nếu bạn muốn.

Về cơ bản họ chỉ nói

Mặc dù những tranh luận này không có nghĩa là kết luận, và cuộc tranh luận vẫn tiếp tục nổ ra trong giới học máy và khai thác dữ liệu về phương án tốt nhất để đánh giá, xác thực chéo 10 lần đã trở thành phương pháp tiêu chuẩn trong thực tế. [...] Hơn nữa, không có gì kỳ diệu về việc xác thực chéo chính xác số 10: 5 lần hoặc 20 lần có khả năng gần như tốt như vậy.

Bootstrap, và - cuối cùng! - câu trả lời cho câu hỏi ban đầu.

Nhưng chúng tôi vẫn chưa đi đến câu trả lời, tại sao tỷ lệ 2/3: 1/3 thường được đề xuất. Tôi nghĩ rằng nó được thừa hưởng từ phương pháp bootstrap .

Nó dựa trên việc lấy mẫu với sự thay thế. Trước đây, chúng tôi đặt một mẫu từ "tập hợp lớn" vào chính xác một trong các tập hợp con. Bootstraping là khác nhau và một mẫu có thể dễ dàng xuất hiện trong cả tập huấn luyện và kiểm tra.

Chúng ta hãy xem xét một kịch bản cụ thể trong đó chúng ta lấy một tập dữ liệu D1 gồm n trường hợp và lấy mẫu đó lần thứ n để thay thế, để lấy một tập dữ liệu khác của D2 phiên bản n .

Bây giờ xem hẹp.

Vì một số phần tử trong D2 sẽ (gần như chắc chắn) được lặp lại, nên phải có một số trường hợp trong bộ dữ liệu gốc chưa được chọn: chúng tôi sẽ sử dụng các phần tử này làm ví dụ kiểm tra.

Cơ hội mà một trường hợp cụ thể không được chọn cho D2 là gì? Xác suất được chọn trên mỗi lần lấy là 1 / n nên ngược lại là (1 - 1 / n) .

Khi chúng ta nhân các xác suất này với nhau, đó là (1 - 1 / n) ^ n , đó là e ^ -1 , khoảng 0,3. Điều này có nghĩa là bộ kiểm tra của chúng tôi sẽ vào khoảng 1/3 và bộ huấn luyện sẽ vào khoảng 2/3.

Tôi đoán đây là lý do tại sao nên sử dụng tỷ lệ chia 1/3: 2/3: tỷ lệ này được lấy từ phương pháp ước tính bootstrapping.

Gói nó lên.

Tôi muốn kết thúc với một trích dẫn từ cuốn sách khai thác dữ liệu (điều mà tôi không thể chứng minh nhưng giả sử chính xác) trong đó họ thường khuyên nên thích xác thực chéo 10 lần:

Thủ tục bootstrap có thể là cách tốt nhất để ước tính lỗi cho các bộ dữ liệu rất nhỏ. Tuy nhiên, giống như xác thực chéo một lần, nó có những nhược điểm có thể được minh họa bằng cách xem xét một tình huống cụ thể, đặc biệt [...] một bộ dữ liệu hoàn toàn ngẫu nhiên với hai lớp. Tỷ lệ lỗi thực sự là 50% cho bất kỳ quy tắc dự đoán nào. Nhưng một sơ đồ ghi nhớ tập huấn luyện sẽ cho điểm số tái lập hoàn hảo 100% để các trường hợp khắc phục = 0 và bootstrap 0,632 sẽ trộn nó với trọng số 0,368 đưa ra tỷ lệ lỗi tổng thể chỉ 31,6% (0,632 50% + 0,368 ¥ 0%), đó là sự lạc quan sai lầm.


13

Hãy xem xét một tập hợp hữu hạn của m hồ sơ. Nếu bạn sử dụng tất cả các hồ sơ như một tập huấn luyện, bạn hoàn toàn có thể phù hợp với tất cả các điểm với đa thức sau:

y = a0 + a1 * X + a2 * X ^ 2 + ... + an * X ^ m

Bây giờ nếu bạn có một số bản ghi mới, không được sử dụng trong tập huấn luyện và các giá trị của vectơ X đầu vào khác với bất kỳ vectơ X nào, được sử dụng trong tập huấn luyện, bạn có thể nói gì về độ chính xác của dự đoán y?

Tôi khuyên bạn nên xem qua một ví dụ trong đó bạn có vectơ X đầu vào 1 hoặc 2 chiều (để trực quan hóa đa thức quá mức) và kiểm tra xem lỗi dự đoán của một số cặp (X, y) lớn đến mức nào ít khác với các giá trị từ tập huấn luyện.

Tôi không biết giải thích này có đủ lý thuyết hay không, nhưng hy vọng nó có ích. Tôi đã cố gắng giải thích vấn đề trên mô hình hồi quy vì tôi cho rằng nó dễ hiểu hơn bằng trực giác (SVM, Mạng nơ-ron ...).

Khi bạn xây dựng một mô hình, bạn nên chia dữ liệu thành ít nhất là tập huấn luyện và tập kiểm tra (một số chia dữ liệu thành tập huấn, đánh giá và tập xác thực chéo). Thông thường 70% dữ liệu được sử dụng cho tập huấn luyện và 30% cho đánh giá và sau đó, khi bạn xây dựng mô hình, bạn phải kiểm tra lỗi đào tạo và lỗi kiểm tra. Nếu cả hai lỗi đều lớn, điều đó có nghĩa là mô hình của bạn quá đơn giản (mô hình có độ lệch cao). Mặt khác, nếu lỗi đào tạo của bạn rất nhỏ nhưng có sự khác biệt lớn giữa lỗi đào tạo và kiểm tra, điều đó có nghĩa là mô hình của bạn quá phức tạp (mô hình có phương sai cao).

Cách tốt nhất để chọn sự thỏa hiệp phù hợp là vẽ sơ đồ lỗi đào tạo và kiểm tra cho các mô hình có độ phức tạp khác nhau và sau đó chọn một lỗi trong đó lỗi thử nghiệm là tối thiểu (xem hình dưới đây). nhập mô tả hình ảnh ở đây


5
Đây là một câu trả lời thực sự tuyệt vời cho cách thức - không quá nhiều cho lý do tại sao. Nhưng có lẽ đó chỉ là một câu hỏi sai - điều chúng ta thực sự quan tâm là những gì hoạt động theo kinh nghiệm, không phải lý thuyết.
Tamzin Blake

@Thom: Vì vậy, thực sự câu hỏi của bạn là đoạn thứ hai chứ không phải là kết thúc của câu đầu tiên ("không hiểu tại sao") bởi vì điều làm việc theo kinh nghiệm là bạn có quá phù hợp: mô hình của bạn thực hiện công việc tuyệt vời để xử lý các vấn đề nhỏ trong bạn dữ liệu đào tạo không có trong trường hợp chung.
winwaed

1
@winwaed Các câu hỏi là "Tại sao có ...?", "Tại sao lại thế này?" và "Có bất kỳ ...?", tất cả đều được biểu thị rõ ràng bằng dấu chấm hỏi. Tôi quen thuộc với hiện tượng này và tôi thấy nó trực quan, và tôi quen với các ví dụ thực nghiệm, nhưng tôi không biết tại sao lại như vậy, và có vẻ như lý thuyết thông tin nên có câu trả lời cho tôi. Nhận xét trên chỉ là sự phản ánh rằng có lẽ các câu hỏi "tại sao" không liên quan đặc biệt một khi bạn có các quy tắc kiểm chứng theo kinh nghiệm mà bạn có thể khai thác.
Tamzin Blake

7

Đây là vấn đề của khái quát hóa, đó là giả thuyết của chúng tôi sẽ phân loại chính xác các ví dụ trong tương lai không phải là một phần của tập huấn luyện. Vui lòng xem ví dụ tuyệt vời này, điều gì đã xảy ra trong trường hợp mô hình của bạn chỉ phù hợp với dữ liệu bạn có và không phải là dữ liệu mới: luật Típ-Bode


Một ví dụ điển hình - nó rất giống với các giả thuyết khoa học. Chúng ta vẫn đang nói về các mô hình cho dù chúng là mô hình ML thống kê hay mô hình vũ trụ.
winwaed

1

Cho đến nay @andreiser đã đưa ra một câu trả lời xuất sắc cho phần thứ hai của câu hỏi của OP liên quan đến việc phân tách dữ liệu kiểm tra / đào tạo và @niko đã giải thích cách tránh quá mức, nhưng không ai nhận được câu hỏi: Tại sao sử dụng dữ liệu khác nhau để đào tạo và đánh giá giúp chúng ta tránh tình trạng thừa.


Dữ liệu của chúng tôi được chia thành:

  1. Trường hợp đào tạo
  2. Các trường hợp xác nhận
  3. Kiểm tra (đánh giá) trường hợp

M

M1,...,Mn

Điều quan trọng là nhận ra các vai trò khác nhau của các trường hợp Xác thực và Kiểm tra là gì.

  1. Trường hợp đào tạo - được sử dụng để phù hợp với các mô hình.
  2. Các trường hợp xác nhận - được sử dụng để chọn một mô hình
  3. Các phiên bản thử nghiệm (đánh giá) - được sử dụng để đo lường độ chính xác của mô hình trên dữ liệu mới

Xem trang 222 của Các yếu tố của học thống kê: Khai thác dữ liệu, suy luận và dự đoán để biết thêm chi tiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.