Sự khác biệt giữa bộ kiểm tra và bộ xác nhận là gì?


431

Tôi thấy điều này khó hiểu khi tôi sử dụng hộp công cụ mạng thần kinh trong Matlab.
Nó chia tập dữ liệu thô thành ba phần:

  1. tập huấn luyện
  2. bộ xác nhận
  3. Tập kiểm tra

Tôi nhận thấy trong nhiều thuật toán đào tạo hoặc học tập, dữ liệu thường được chia thành 2 phần, tập huấn luyện và tập kiểm tra.

Câu hỏi của tôi là:

  1. sự khác biệt giữa bộ xác nhận và bộ kiểm tra là gì?
  2. Là bộ xác nhận thực sự cụ thể cho mạng thần kinh? Hoặc nó là tùy chọn.
  3. Để đi xa hơn, có sự khác biệt giữa xác nhận và thử nghiệm trong bối cảnh học máy không?

56
Câu hỏi được trả lời trong cuốn sách Các yếu tố của trang học thống kê 222. Bộ xác thực được sử dụng để chọn mô hình, bộ kiểm tra cho mô hình cuối cùng (mô hình được chọn theo quy trình lựa chọn) lỗi dự đoán.
mpiktas

@mpiktas Bạn có đang đề cập đến chương "Đánh giá và lựa chọn mô hình" không?
Celdor

2
Đúng. Số trang là từ phiên bản in thứ 5.
mpiktas

13
@mpiktas là tại chỗ. Đây là văn bản thực tế:The training set is used to fit the models; the validation set is used to estimate prediction error for model selection; the test set is used for assessment of the generalization error of the final chosen model. Ideally, the test set should be kept in a “vault,” and be brought out only at the end of the data analysis.
arun

Câu trả lời:


254

Thông thường để thực hiện việc học có giám sát, bạn cần hai loại tập dữ liệu:

  1. Trong một tập dữ liệu ("tiêu chuẩn vàng" của bạn), bạn có dữ liệu đầu vào cùng với đầu ra chính xác / dự kiến, Tập dữ liệu này thường được chuẩn bị bởi con người hoặc bằng cách thu thập một số dữ liệu theo cách bán tự động. Nhưng điều quan trọng là bạn có đầu ra dự kiến ​​cho mỗi hàng dữ liệu ở đây, bởi vì bạn cần điều này cho việc học có giám sát.

  2. Dữ liệu bạn sẽ áp dụng mô hình của bạn. Trong nhiều trường hợp, đây là dữ liệu mà bạn quan tâm đến đầu ra của mô hình của mình và do đó bạn chưa có bất kỳ đầu ra "mong đợi" nào ở đây.

Trong khi thực hiện học máy, bạn làm như sau:

  1. Giai đoạn đào tạo: bạn trình bày dữ liệu của mình từ "tiêu chuẩn vàng" và đào tạo mô hình của mình, bằng cách ghép nối đầu vào với đầu ra dự kiến.
  2. Giai đoạn xác nhận / kiểm tra: để ước tính mô hình của bạn đã được đào tạo tốt như thế nào (phụ thuộc vào kích thước dữ liệu của bạn, giá trị bạn muốn dự đoán, đầu vào, v.v.) và để ước tính các thuộc tính mô hình (lỗi trung bình cho các yếu tố dự đoán số, lỗi phân loại cho phân loại, thu hồi và độ chính xác cho các mô hình IR, v.v.)
  3. Giai đoạn ứng dụng: bây giờ bạn áp dụng mô hình mới phát triển của mình vào dữ liệu trong thế giới thực và nhận được kết quả. Vì bạn thường không có bất kỳ giá trị tham chiếu nào trong loại dữ liệu này (nếu không, tại sao bạn lại cần mô hình của mình?), Bạn chỉ có thể suy đoán về chất lượng đầu ra mô hình của mình bằng kết quả của giai đoạn xác thực.

Giai đoạn xác nhận thường được chia thành hai phần :

  1. Trong phần đầu tiên, bạn chỉ cần nhìn vào các mô hình của mình và chọn cách tiếp cận hiệu quả nhất bằng cách sử dụng dữ liệu xác nhận (= xác thực)
  2. Sau đó, bạn ước tính độ chính xác của phương pháp đã chọn (= test).

Do đó, việc tách thành 50/25/25.

Trong trường hợp nếu bạn không cần chọn một mô hình phù hợp từ một số cách tiếp cận đối thủ, bạn chỉ có thể phân vùng lại tập hợp của mình mà về cơ bản bạn chỉ có tập huấn luyện và tập kiểm tra, mà không cần thực hiện xác nhận mô hình đã đào tạo của bạn. Cá nhân tôi phân vùng chúng 70/30 rồi.

Xem thêm câu hỏi này .


21
Tại sao tôi không chọn mô hình hoạt động tốt nhất dựa trên bộ thử nghiệm, loại bỏ hoàn toàn bộ xác thực?
Sebastian Graf

4
Có phải vì quá nhiều? Hoặc bởi vì chúng tôi muốn một số thống kê độc lập dựa trên kết quả kiểm tra, chỉ để ước tính lỗi?
Sebastian Graf

12
@Sebastian [Nếu bạn chỉ sử dụng bộ kiểm tra:] "Lỗi bộ kiểm tra của mô hình được chọn cuối cùng sẽ đánh giá thấp lỗi kiểm tra thực sự, đôi khi đáng kể" [Hastie et al]
user695652

23
Bộ xác nhận thường được sử dụng để điều chỉnh các tham số siêu. Ví dụ: trong cộng đồng học tập sâu, việc điều chỉnh kích thước lớp mạng, số đơn vị ẩn, thuật ngữ chính quy (wether L1 hoặc L2) phụ thuộc vào bộ xác thực
xiaohan2012

2
Cách chính xác để phân chia các bộ là gì? Lựa chọn có nên ngẫu nhiên? Điều gì nếu bạn có hình ảnh tương tự? Điều này có làm hỏng khả năng khái quát của bạn không? Nếu bạn có hai bộ được thực hiện ở các vị trí riêng biệt thì sẽ tốt hơn nếu lấy một bộ làm bộ huấn luyện và bộ kia làm bộ thử nghiệm?
Yonatan Simson

263

Tập huấn luyện: một tập hợp các ví dụ được sử dụng cho việc học: để phù hợp với các tham số của trình phân loại Trong trường hợp Đa lớp (MLP), chúng tôi sẽ sử dụng tập huấn luyện để tìm các trọng số tối ưu hóa theo quy tắc hỗ trợ ngược

Bộ xác thực: một tập hợp các ví dụ được sử dụng để điều chỉnh các tham số của trình phân loại Trong trường hợp MLP, chúng tôi sẽ sử dụng bộ xác thực để tìm số đơn vị ẩn tối ưu của các đơn vị ẩn hoặc xác định điểm dừng cho thuật toán lan truyền ngược

Bộ kiểm tra: một tập hợp các ví dụ chỉ được sử dụng để đánh giá hiệu suất của trình phân loại được đào tạo đầy đủ Trong trường hợp MLP, chúng tôi sẽ sử dụng thử nghiệm để ước tính tỷ lệ lỗi sau khi chúng tôi đã chọn mô hình cuối cùng (kích thước MLP và trọng lượng thực tế) Sau khi đánh giá mô hình cuối cùng trong bộ thử nghiệm, BẠN KHÔNG ĐƯỢC điều chỉnh mô hình nữa!

Tại sao các bộ kiểm tra và xác nhận riêng biệt? Ước tính tỷ lệ lỗi của mô hình cuối cùng trên dữ liệu xác thực sẽ bị sai lệch (nhỏ hơn tỷ lệ lỗi thực sự) do bộ xác thực được sử dụng để chọn mô hình cuối cùng Sau khi đánh giá mô hình cuối cùng trên tập kiểm tra, BẠN KHÔNG ĐƯỢC điều chỉnh mô hình bất kỳ thêm nữa!

nguồn: Giới thiệu về Phân tích mẫu, Đại học A & M của Ricardo Gutierrez-OsunaTexas, Đại học Texas A & M


42
+1 cho "BẠN KHÔNG PHẢI điều chỉnh mô hình nữa!"
stmax

6
Sự khác biệt giữa "phù hợp với các tham số" và "điều chỉnh các tham số" là gì?
Metariat

18
@stmax Không phải là mô phạm, nhưng một khi chúng tôi có lỗi kiểm tra cuối cùng và chúng tôi KHÔNG hài lòng với kết quả, chúng tôi sẽ làm gì, nếu chúng tôi không thể điều chỉnh mô hình của mình thêm nữa? ... Tôi thường tự hỏi về trường hợp này.
Spacey

5
@Tarantula bạn có thể tiếp tục điều chỉnh mô hình, nhưng bạn sẽ phải thu thập một bộ thử nghiệm mới. Tất nhiên không ai làm điều đó;) nhưng vi phạm điều đó (đặc biệt là khi bạn lặp lại nhiều lần) có thể dẫn đến mô hình của bạn phù hợp với bộ kiểm tra - dẫn đến điểm số không thực tế / quá lạc quan.
stmax

4
Tôi nghĩ danh pháp này là khó hiểu. Bạn đúng khi nói "BẠN KHÔNG PHẢI điều chỉnh mô hình nữa" sau khi sử dụng bộ kiểm tra, nhưng ... bạn muốn làm gì trong lĩnh vực này? Dừng công việc trên nó? Trong thực tế, bạn cần một hệ thống phân cấp toàn bộ các bộ kiểm tra. 1: Bộ xác thực - được sử dụng để điều chỉnh một mô hình, 2: Tập thử nghiệm, được sử dụng để đánh giá một mô hình và xem bạn có nên quay lại bảng vẽ không, 3: Bộ siêu thử nghiệm, được sử dụng trên thuật toán cuối cùng để xem thật tốt, 4: bộ siêu thử nghiệm, được sử dụng sau khi các nhà nghiên cứu đã phát triển thuật toán MNIST trong 10 năm để xem mức độ phù hợp của chúng một cách điên rồ như thế nào ... vv
Timmmm

66

Kinh nghiệm 5 năm của tôi về Khoa học Máy tính đã dạy tôi rằng không có gì tốt hơn sự đơn giản.

Khái niệm về Tập dữ liệu 'Đào tạo / Xác thực chéo / Kiểm tra' đơn giản như thế này. Khi bạn có một tập dữ liệu lớn, bạn nên chia thành 3 phần:

++ Tập huấn luyện (60% tập dữ liệu gốc): Điều này được sử dụng để xây dựng thuật toán dự đoán của chúng tôi. Thuật toán của chúng tôi cố gắng điều chỉnh chính nó theo các yêu cầu của tập dữ liệu huấn luyện. Trong giai đoạn này, chúng tôi thường tạo ra nhiều thuật toán để so sánh hiệu suất của chúng trong Giai đoạn xác thực chéo.

++ Bộ xác thực chéo (20% bộ dữ liệu gốc): Tập dữ liệu này được sử dụng để so sánh hiệu suất của các thuật toán dự đoán được tạo dựa trên tập huấn luyện. Chúng tôi chọn thuật toán có hiệu suất tốt nhất.

++ Bộ kiểm tra (20% bộ dữ liệu gốc): Bây giờ chúng tôi đã chọn thuật toán dự đoán ưa thích của mình nhưng chúng tôi chưa biết nó sẽ thực hiện như thế nào trên dữ liệu trong thế giới thực hoàn toàn không nhìn thấy. Vì vậy, chúng tôi áp dụng thuật toán dự đoán đã chọn trên bộ thử nghiệm của mình để xem nó sẽ hoạt động như thế nào để chúng tôi có thể có ý tưởng về hiệu suất của thuật toán của chúng tôi trên dữ liệu không nhìn thấy.

Ghi chú:

- Điều rất quan trọng cần lưu ý là không nên bỏ qua giai đoạn thử nghiệm, bởi vì thuật toán hoạt động tốt trong giai đoạn xác thực chéo không thực sự có nghĩa là nó thực sự là tốt nhất, bởi vì các thuật toán được so sánh dựa trên chéo bộ định giá và các quirks và tiếng ồn của nó ...

-Trong giai đoạn thử nghiệm, mục đích là để xem mô hình cuối cùng của chúng ta sẽ đối phó thế nào, vì vậy trong trường hợp hiệu suất của nó rất kém, chúng ta nên lặp lại toàn bộ quá trình bắt đầu từ Giai đoạn đào tạo.


1
thật dễ dàng và khó hiểu khi coi các bộ là các giai đoạn và ngược lại.
Matt O'Brien

2
@innovIsmail Nếu tôi bỏ qua bước xác thực thì sao? Giả sử tôi có nhiều thuật toán và tôi đã đào tạo chúng trên tập tàu, sau đó tôi chỉ áp dụng tất cả chúng cho tập kiểm tra, sau đó tôi chọn một thuật toán có hiệu suất tốt nhất trong tập kiểm tra
KevinKim

3
Tôi nghe có vẻ như bạn đang bỏ qua bước kiểm tra.
Mihai Danila

1
> so sánh hiệu suất của các thuật toán dự đoán - "thuật toán" trong bối cảnh này là gì? mô hình của bạn không phải là một thuật toán? Có phải người ta phải xây dựng một vài mô hình và huấn luyện chúng một cách riêng biệt để có được một vài giai đoạn để xác nhận?
Boppity Bop

2
Sự đơn giản này là một ảo ảnh bởi vì trong tình huống cỡ mẫu không lớn, người ta sẽ nhận được các thuật toán dự đoán khác nhau và kết quả xác nhận có các phân tách ngẫu nhiên được lặp lại.
Frank Harrell

33

Ở mỗi bước bạn được yêu cầu đưa ra quyết định (nghĩa là chọn một tùy chọn trong số một số tùy chọn), bạn phải có một bộ / phân vùng bổ sung để đánh giá độ chính xác của lựa chọn của bạn để bạn không chỉ đơn giản chọn kết quả ngẫu nhiên thuận lợi nhất và nhầm phần đuôi của phân phối cho trung tâm 1 . Bên trái là người bi quan. Bên phải là người lạc quan. Trung tâm là người thực dụng. Hãy là người thực dụng.

nhập mô tả hình ảnh ở đây

Bước 1) Đào tạo: Mỗi loại thuật toán có các tùy chọn tham số riêng (số lớp trong Mạng thần kinh, số lượng cây trong Rừng ngẫu nhiên, v.v.). Đối với mỗi thuật toán của bạn, bạn phải chọn một tùy chọn. Đó là lý do tại sao bạn có một bộ đào tạo.

Bước 2) Xác thực: Bây giờ bạn có một bộ sưu tập các thuật toán. Bạn phải chọn một thuật toán. Đó là lý do tại sao bạn có một bộ thử nghiệm. Hầu hết mọi người chọn thuật toán hoạt động tốt nhất trên bộ xác thực (và điều đó ổn). Nhưng, nếu bạn không đo được tỷ lệ lỗi của thuật toán hiệu năng cao nhất của mình trên tập kiểm tra và chỉ đi với tỷ lệ lỗi của nó trên tập xác thực, thì bạn đã nhầm một cách mù quáng kịch bản tốt nhất có thể xảy ra. Đó là một công thức cho thảm họa.

Bước 3) Kiểm tra: Tôi cho rằng nếu thuật toán của bạn không có bất kỳ tham số nào thì bạn sẽ không cần bước thứ ba. Trong trường hợp đó, bước xác nhận của bạn sẽ là bước kiểm tra của bạn. Có lẽ Matlab không yêu cầu bạn tham số hoặc bạn đã chọn không sử dụng chúng và đó là nguồn gốc của sự nhầm lẫn của bạn.

1 Thường rất hữu ích khi đi vào từng bước với giả định (giả thuyết null) rằng tất cả các tùy chọn đều giống nhau (ví dụ: tất cả các tham số đều giống nhau hoặc tất cả các thuật toán đều giống nhau), do đó tôi tham khảo phân phối.

2 Hình ảnh này không phải của riêng tôi. Tôi đã lấy nó từ trang web này: http://www.teamten.com/lawrence/writings/bell-curve.png


3
Tôi nghĩ rằng câu đầu tiên nắm bắt câu trả lời cơ bản cho câu hỏi này tốt hơn bất kỳ câu trả lời nào khác. "Ở mỗi bước bạn được yêu cầu đưa ra quyết định (nghĩa là chọn một tùy chọn trong số một số tùy chọn), bạn phải có một bộ / phân vùng bổ sung để đánh giá độ chính xác của lựa chọn của bạn ..."
kobejohn

Về câu hỏi: Nếu tôi muốn tìm RandomForest (RF) tốt nhất và giả vờ chỉ có một tham số siêu RF, đó là số cây (N), thì trong bước 1, tôi chạy nhiều RF với N khác nhau để xây dựng rừng ; trong bước 2, áp dụng chúng trong kiểm tra xác thực và chọn RF có N * có lỗi thấp nhất so với kiểm tra xác thực, sau đó ở bước 3, tôi áp dụng RF với N * cho tập kiểm tra và nhận được ước tính không thiên vị về lỗi kiểm tra thực sự của RF này với VIẾT SAI RỒI*. Nhưng tôi có thể áp dụng tất cả các RF của mình trên bộ kiểm tra và chọn một RF có lỗi kiểm tra thấp nhất, có thể không phải là N *. Sau đó, đó là điểm của việc xác nhận bước 2?
KevinKim

1
@KevinKim: Nếu bạn áp dụng bộ thử nghiệm của mình cho tất cả các RF và sử dụng kết quả để đưa ra lựa chọn khác (chọn một mô hình khác), thì bạn vừa lặp lại bước xác thực. Bạn đã đặt tâm trí vào "Tôi cần nhận được lỗi thấp nhất với một mô hình!". Đó là điểm đào tạo và xác nhận, KHÔNG kiểm tra. Thử nghiệm chỉ là về: Tôi đã được đào tạo và chọn một mô hình, bây giờ hãy xem cách nó hoạt động "nói chung". Rõ ràng bộ kiểm tra "chung" chỉ là một lát dữ liệu khác có thể có hoặc không phù hợp, nhưng vấn đề là BẠN không cố ý điều chỉnh mô hình của mình theo mô hình đó bằng các lựa chọn.
Honeybear

Phân chia ba khôn ngoan chỉ là một cách tiếp cận rất phổ biến (A) để cung cấp cho bạn ý tưởng về cách mô hình tổng quát hóa (B) với nỗ lực hạn chế và (C) dữ liệu được quan sát hạn chế. Nếu bạn muốn làm tốt hơn về mặt (B), bạn có thể làm những gì bạn đang đề xuất: Sử dụng các bộ xác thực khác nhau để hoàn thiện cho việc khái quát hóa. Với dữ liệu hạn chế được gọi là xác thực chéo: Lặp lại đào tạo và xác nhận với các bộ kiểm tra và huấn luyện khác nhau (đối với các mạng thần kinh nơi đào tạo có thể mất vài tuần, đây không phải là một điều).
Honeybear

1
NHƯNG: Làm thế nào mô hình sẽ thực hiện "trong thế giới thực" vẫn chưa được biết. Nó chỉ là một giả định được kiểm chứng và thử nghiệm, rằng nó sẽ hoạt động tốt trên dữ liệu không nhìn thấy và vì mục đích khoa học, điều này thường được coi là đủ. Nếu bây giờ bạn đi lại và tạo và chọn các mô hình, cho đến khi một bộ xác thực phù hợp với bộ kiểm tra VÀ bộ kiểm tra hoàn hảo, thì bạn đã biến bộ kiểm tra của mình thành bộ xác thực. Tốt hơn làm xác nhận chéo cho điều đó. Trong trường hợp hiệu suất của bạn liên tục kém hơn đáng kể trên bộ kiểm tra, thì luôn có một tùy chọn là dữ liệu của bạn bị phân tách kém và bạn muốn khởi động lại với các bộ được xáo trộn lại.
Honeybear

21

Nó không theo sau mà bạn cần phải phân chia dữ liệu theo bất kỳ cách nào. Bootstrap có thể cung cấp các ước tính lỗi bình phương trung bình nhỏ hơn về độ chính xác dự đoán bằng cách sử dụng toàn bộ mẫu cho cả việc phát triển và thử nghiệm mô hình.


1
Vì vậy, bạn không ủng hộ việc xác thực chéo thông qua việc chia các tập dữ liệu lớn để kiểm tra / xác thực mô hình dự đoán?
OFish

9
Không, trừ khi tập dữ liệu rất lớn hoặc tín hiệu: tỷ lệ nhiễu cao. Xác thực chéo không chính xác như bootstrap theo kinh nghiệm của tôi và nó không sử dụng toàn bộ kích thước mẫu. Trong nhiều trường hợp, bạn phải lặp lại xác nhận chéo 50-100 lần để đạt được độ chính xác đầy đủ. Nhưng trong bộ dữ liệu của bạn có> 20.000 đối tượng, các cách tiếp cận đơn giản như xác thực mẫu phân tách thường ổn.
Frank Harrell

2
Điều đó thực sự tốt để biết! Cảm ơn. Và đến từ bạn, đó là một "nguồn" thông tin tuyệt vời. Chúc mừng!
OFish

1
Xác thực mẫu tách thường thực hiện kém hơn so với bootstrapping nghiêm ngặt. Tạo giao diện bootstrap bên ngoài lặp lại tất cả các bước học có giám sát (tất cả các bước sử dụng Y). Bootstrap lạc quan Efron-Gong ước tính mô hình dự đoán giảm bao nhiêu trong dữ liệu mà thuật toán không nhìn thấy, mà không giữ lại dữ liệu.
Frank Harrell

1
Có với sự nhấn mạnh vào việc lặp lại . Đó là sự phân chia duy nhất có vấn đề.
Frank Harrell

13

Một tác vụ học máy thông thường có thể được hình dung như vòng lặp lồng nhau sau đây:

while (error in validation set > X) {
    tune hyper-parameters
    while (error in training set > Y) {
        tune parameters
    }
}

Thông thường, vòng lặp bên ngoài được thực hiện bởi con người , trên bộ xác nhận và vòng lặp bên trong bằng máy , trên tập huấn luyện . Sau đó, bạn cần một bộ thử nghiệm thứ 3 để đánh giá hiệu suất cuối cùng của mô hình.

Nói cách khác, bộ xác nhận là tập huấn luyện cho con người.


9

Một cách để nghĩ về ba bộ này là hai trong số chúng ( trainingvalidation) đến từ quá khứ, trong khi testbộ này đến từ "tương lai". Mô hình nên được xây dựng và điều chỉnh bằng cách sử dụng dữ liệu từ "quá khứ" ( training/ validationdữ liệu), nhưng không bao giờ testdữ liệu đến từ "tương lai".

Để đưa ra một ví dụ thực tế, giả sử chúng ta đang xây dựng một mô hình để dự đoán các cầu thủ bóng chày sẽ làm tốt như thế nào trong tương lai. Chúng tôi sẽ sử dụng dữ liệu từ 1899-2014 để tạo testvalidationthiết lập. Khi mô hình được xây dựng và điều chỉnh trên các dữ liệu đó, chúng tôi sẽ sử dụng dữ liệu từ năm 2015 (thực tế là trong quá khứ!) Làm tập hợp thử nghiệm, từ quan điểm của mô hình xuất hiện như dữ liệu "tương lai" và không ảnh hưởng đến việc tạo mô hình . (Rõ ràng, về lý thuyết, chúng ta có thể đợi dữ liệu từ năm 2016 nếu chúng ta thực sự muốn!)

Rõ ràng là tôi đang sử dụng dấu ngoặc kép ở mọi nơi, bởi vì thứ tự thời gian thực của dữ liệu có thể không trùng với tương lai thực tế (theo định nghĩa, tất cả việc tạo dữ liệu có thể diễn ra trong quá khứ thực tế). Trong thực tế, testtập hợp có thể chỉ đơn giản là dữ liệu trong cùng khoảng thời gian với training/ validationbộ mà bạn "giữ". Theo cách này, nó không có ảnh hưởng đến việc điều chỉnh mô hình, nhưng những dữ liệu đó không thực sự đến từ tương lai.


4
Sau khi đọc tất cả các câu trả lời khác, câu trả lời này đã khiến tôi "nhấp chuột" cho tôi! Bạn huấn luyện với tập huấn luyện, kiểm tra xem bạn có quá mức với tập xác thực không (và mô hình và siêu âm có hoạt động với "dữ liệu không xác định") không, sau đó bạn đánh giá với tập kiểm tra - "dữ liệu mới" - cho dù bây giờ bạn có có bất kỳ quyền hạn dự đoán ..!
stolsvik

Đây là một cách công bằng để xem xét nó theo nghĩa là testdữ liệu không bao giờ là một phần của quá trình đào tạo: và nếu chúng ta coi nó là dữ liệu "tương lai" thì điều đó trở thành một sai lầm không thể mắc phải.
javadba

7

Hầu hết các thuật toán khai thác dữ liệu được giám sát đều tuân theo ba bước sau:

  1. Tập huấn luyện được sử dụng để xây dựng mô hình. Điều này chứa một tập hợp dữ liệu có các biến dự đoán và mục tiêu được phân loại trước.
  2. Thông thường, một bộ dữ liệu giữ hoặc bộ kiểm tra được sử dụng để đánh giá mức độ tốt của mô hình với dữ liệu ngoài tập huấn luyện. Tập kiểm thử chứa dữ liệu kết quả được phân loại trước nhưng chúng không được sử dụng khi dữ liệu của tập kiểm tra được chạy qua mô hình cho đến khi kết thúc, khi dữ liệu được phân loại được so sánh với kết quả của mô hình. Mô hình được điều chỉnh để giảm thiểu lỗi trên bộ kiểm tra.
  3. Một bộ dữ liệu hoặc bộ xác nhận giữ lại khác được sử dụng để đánh giá mô hình đã điều chỉnh ở bước # 2, một lần nữa, dữ liệu của bộ xác thực được chạy so với mô hình đã điều chỉnh và kết quả so với dữ liệu được phân loại trước không sử dụng.

4

Một số người nhầm lẫn về lý do tại sao chúng tôi sử dụng bộ xác thực, vì vậy tôi sẽ đưa ra lời giải thích đơn giản, trực quan về những gì sẽ xảy ra nếu bạn không sử dụng bộ dữ liệu xác thực.

Nếu bạn không sử dụng bộ xác thực, thay vào đó, bạn sẽ phải chọn siêu đường kính và quyết định khi nào ngừng đào tạo dựa trên hiệu suất của mô hình trên tập dữ liệu thử nghiệm. Nếu bạn quyết định khi nào ngừng đào tạo dựa trên hiệu suất của mô hình trên tập dữ liệu thử nghiệm, bạn có thể dừng đào tạo khi mô hình xảy ra hoạt động tốt trên tập dữ liệu thử nghiệm. Sau đó, khi bạn báo cáo kết quả của mình, bạn báo cáo độ chính xác trên tập dữ liệu thử nghiệm. Vấn đề với điều này là bạn có thể nói rằng mô hình của bạn đã thực sự hoạt động tốt khi thực tế nó chỉ là một biến thể ngẫu nhiên khiến nó hoạt động tốt hơn chỉ trong bộ thử nghiệm.

Thay vào đó, nếu bạn sử dụng một bộ xác thực để quyết định khi nào ngừng đào tạo, thì độ chính xác của mô hình trên bộ thử nghiệm sẽ phản ánh không thiên vị về việc nó thực hiện tốt nhiệm vụ nói chung như thế nào và nó cho thấy rằng bạn đã không tối ưu hóa mô hình chỉ để thực hiện tốt trên bộ thử nghiệm.


2

Tôi muốn thêm vào các câu trả lời rất hay khác ở đây bằng cách chỉ ra một cách tiếp cận tương đối mới trong học máy gọi là "quyền riêng tư khác biệt" (xem bài viết của Dwork; Blog Win Vector để biết thêm). Ý tưởng cho phép thực sự sử dụng lại bộ thử nghiệm mà không ảnh hưởng đến hiệu suất mô hình cuối cùng. Trong một cài đặt thông thường, bộ kiểm tra chỉ được sử dụng để ước tính hiệu suất cuối cùng; lý tưởng nhất là thậm chí không được phép nhìn vào nó.

Vì nó được mô tả tốt trong blog Win Vector này (cũng xem các mục khác), có thể "sử dụng" bộ kiểm tra mà không làm sai lệch hiệu suất của mô hình. Điều này được thực hiện bằng cách sử dụng thủ tục đặc biệt gọi là "quyền riêng tư khác biệt". Người học sẽ không có quyền truy cập trực tiếp vào bộ kiểm tra.


-1

Ý tưởng của tôi là những tùy chọn trong hộp công cụ mạng thần kinh là để tránh quá mức. Trong tình huống này, các trọng số chỉ được chỉ định cho dữ liệu đào tạo và không hiển thị xu hướng toàn cầu. Bằng cách có một bộ xác thực, các lần lặp có thể thích ứng với việc giảm lỗi dữ liệu huấn luyện gây ra giảm dữ liệu xác nhận và tăng lỗi dữ liệu xác nhận; cùng với việc giảm lỗi dữ liệu huấn luyện, điều này cho thấy hiện tượng quá mức.


Tôi dám nói các bộ kiểm tra thêm một kiểm tra độ tỉnh táo cho toàn bộ quá trình. Bạn có thể có một đường cong đào tạo sao chép đường cong xác nhận / mất ở mỗi kỷ nguyên. Nhưng nếu độ chính xác của bộ kiểm tra của bạn không cải thiện với các kỷ nguyên hoặc xe tăng thì bạn sẽ không còn tốt nữa. Bạn đang thừa.
agcala
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.