Tôi có thể sử dụng một bộ Xác thực nhỏ không?


15

Tôi hiểu lý do đằng sau việc chia dữ liệu thành tập Kiểm tra và tập Xác thực. Tôi cũng hiểu rằng kích thước của sự phân chia sẽ phụ thuộc vào tình huống nhưng nhìn chung sẽ thay đổi từ 50/50 đến 90/10.

Tôi đã xây dựng một RNN để sửa lỗi chính tả và bắt đầu với một tập dữ liệu ~ 5m câu. Tôi cạo sạch 500k câu rồi tập với ~ 4,5 triệu câu còn lại. Khi đào tạo xong tôi lấy bộ xác nhận của mình và tính toán độ chính xác.

Điều thú vị là chỉ sau 4% bộ xác thực của tôi, tôi có độ chính xác là 69,4% và tỷ lệ này không thay đổi hơn 0,1% theo cả hai hướng. Cuối cùng, tôi chỉ cắt ngắn xác nhận vì con số bị kẹt ở mức 69,5%.

Vậy tại sao lại cắt giảm 10% cho Xác thực khi tôi có thể thoát khỏi với 1%? Có vấn đề gì không?


4
Một câu trả lời chung chung là một cỡ mẫu lớn hơn thì tôi sẽ nói 10.000 sẽ là một tập hợp con rất tiêu biểu của dân số. Việc tăng mẫu, nếu nó được vẽ chính xác, có thể tốn kém trong khi ước tính bạn thấy sẽ giống nhau. Hãy tìm một khái niệm khoảng tin cậy.
Alexey Burnakov

Câu trả lời:


20

Các bộ xác nhận lớn hơn cho các ước tính chính xác hơn về hiệu suất ngoài mẫu. Nhưng như bạn đã nhận thấy, tại một số điểm, ước tính đó có thể chính xác như bạn cần và bạn có thể đưa ra một số dự đoán sơ bộ về kích thước mẫu xác thực bạn cần để đạt đến điểm đó.

Để có độ chính xác phân loại chính xác / không chính xác, bạn có thể tính sai số chuẩn của ước tính là (độ lệch chuẩn của biến Bernouilli), trong đó là xác suất của phân loại chính xác và là kích thước của bộ xác nhận. Tất nhiên bạn không biết , nhưng bạn có thể có một số ý tưởng về phạm vi của nó. Ví dụ: giả sử bạn mong đợi một độ chính xác giữa 60-80%, và bạn muốn ước tính của bạn phải có một sai số chuẩn nhỏ hơn 0,1%: Làm thế nào lớn nên (kích thước của bộ xác nhận) được? Với chúng tôi nhận được: Đối vớip(1p)/npnp

p(1p)/n<0.001
np=0.6
n>0.60.620.0012=240,000
p=0.8chúng tôi nhận được: Vì vậy, điều này cho chúng tôi biết bạn có thể thoát khỏi việc sử dụng ít hơn 5% trong số 5 triệu mẫu dữ liệu của mình để xác thực. Tỷ lệ phần trăm này giảm xuống nếu bạn mong đợi hiệu suất cao hơn hoặc đặc biệt là nếu bạn hài lòng với lỗi tiêu chuẩn thấp hơn của ước tính hiệu suất ngoài mẫu (ví dụ: với và với se <1%, bạn chỉ cần 2100 mẫu xác thực hoặc ít hơn một phần hai phần trăm dữ liệu của bạn).
n>0.80.820.0012=160,000
p=0.7

Các tính toán này cũng cho thấy điểm mà Tim đưa ra trong câu trả lời của anh ấy, rằng độ chính xác của các ước tính của bạn phụ thuộc vào kích thước tuyệt đối của bộ xác thực của bạn (tức là trên ), thay vì kích thước của nó so với tập huấn luyện.n

(Ngoài ra tôi có thể thêm rằng tôi giả sử lấy mẫu đại diện ở đây. Nếu dữ liệu của bạn rất không đồng nhất, bạn có thể cần sử dụng các bộ xác thực lớn hơn chỉ để đảm bảo rằng dữ liệu xác thực bao gồm tất cả các điều kiện giống như dữ liệu kiểm tra và thử nghiệm của bạn. )


14
Lưu ý rằng đạt tối đa của nó tại p = 1 / 2 , trong trường hợp đó p ( 1 - p ) = 1 / 4 . Vì vậy, bạn luôn có thể sử dụng p(1p)p=1/2p(1p)=1/4 là một ước tính trường hợp xấu nhất. Cụ thể, 250.000 mẫu xác nhận phải luôn đủ để đáp ứng mục tiêu <0,1% lỗi tiêu chuẩn tối đa của bạn (và 2.500 mẫu sẽ đủ cho <1%), bất kể độ chính xác phân loại thực tế là bao nhiêu. p(1p)/n1/4n
Ilmari Karonen

11

Thảo luận tốt về vấn đề này được Andrew Ng cung cấp trong khóa học Deep Learning của mình trên Coursera.org . Như ông lưu ý, các phân chia tiêu chuẩn như 8: 2 hoặc 9: 1 là hợp lệ nếu dữ liệu của bạn nhỏ đến lớn vừa phải, nhưng nhiều vấn đề về máy học hiện nay sử dụng lượng dữ liệu khổng lồ (ví dụ như hàng triệu quan sát như trong trường hợp của bạn), và trong trường hợp như vậy, bạn có thể để lại 2%, 1% hoặc thậm chí ít hơn dữ liệu dưới dạng tập kiểm tra, lấy tất cả dữ liệu còn lại cho tập huấn luyện của bạn (anh ấy thực sự tranh luận về việc sử dụng tập hợp dev). Như ông lập luận, bạn cung cấp càng nhiều dữ liệu cho thuật toán của bạn thì càng tốt cho hiệu suất của nó và điều này đặc biệt đúng với việc học sâu * (ông cũng lưu ý rằng đây không phải là trường hợp đối với các thuật toán học máy không sâu).

Như đã nhận thấy trong nhận xét của Alex Burn , nó không thực sự về kích thước của bộ thử nghiệm của bạn, mà là về tính đại diện của nó cho vấn đề của bạn. Thông thường với kích thước lớn hơn của dữ liệu, chúng tôi hy vọng nó sẽ mang tính đại diện hơn, nhưng điều này không phải là trường hợp. Điều này luôn luôn là một sự đánh đổi và bạn cần phải xem xét vấn đề cụ thể. Không có quy tắc nào nói rằng tập kiểm tra không nên ít hơn các trường hợp X hoặc ít hơn Y% dữ liệu của bạn.

* - Tuyên bố miễn trừ trách nhiệm: Tôi đang nhắc lại những lập luận của Andrew Ng ở đây, tôi sẽ không coi mình là một chuyên gia về học tập sâu.


2
"nó không thực sự là về kích thước của bộ thử nghiệm của bạn, mà là về tính đại diện của nó cho vấn đề của bạn." - có lẽ là một cách nói đẹp như tranh vẽ là không có việc sử dụng một bộ huấn luyện lớn cho thứ gì đó liên quan đến chó và mèo nếu bộ huấn luyện của bạn gần như hoàn toàn được tạo thành từ mèo.
JM không phải là một nhà thống kê

Cụ thể hơn, đây là trong bài giảng 'Train / Dev / Test set' trong tuần 1 của khóa học 'Cải thiện mạng lưới thần kinh sâu: Điều chỉnh siêu tham số, Chính quy hóa và Tối ưu hóa' (là pt 2 của toàn bộ chuyên ngành học sâu)
icc97

2
Dưới đây là trích dẫn đầy đủ từ bài giảng: "Vì vậy, trong ví dụ này bạn có một triệu ví dụ, nếu bạn chỉ cần 10.000 cho nhà phát triển của mình và 10.000 cho bài kiểm tra của bạn, tỷ lệ của bạn sẽ giống như 10.000 này là 1% của 1 triệu vì vậy bạn Tôi sẽ có 98% đào tạo, 1% dev, 1% thử nghiệm. Và tôi cũng đã thấy các ứng dụng trong đó, nếu bạn có hơn một triệu ví dụ, bạn có thể kết thúc với 99,5% đào tạo và 0,25% dev, thử nghiệm 0,25% Hoặc có thể là 0,4% dev, thử nghiệm 0,1%. "
icc97

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.