Làm thế nào để biết rằng vấn đề máy học của bạn là vô vọng?


207

Hãy tưởng tượng một kịch bản máy học tiêu chuẩn:

Bạn đang phải đối mặt với một bộ dữ liệu đa biến lớn và bạn có một sự hiểu biết khá mờ nhạt về nó. Những gì bạn cần làm là đưa ra dự đoán về một số biến dựa trên những gì bạn có. Như thường lệ, bạn dọn dẹp dữ liệu, xem số liệu thống kê mô tả, chạy một số mô hình, xác thực chéo chúng, v.v., nhưng sau nhiều lần thử, qua lại và thử nhiều mô hình dường như không có kết quả gì và kết quả của bạn rất tệ. Bạn có thể dành hàng giờ, ngày hoặc tuần cho một vấn đề như vậy ...

Câu hỏi là: khi nào nên dừng lại? Làm thế nào để bạn biết rằng dữ liệu của bạn thực sự là vô vọng và tất cả các mô hình ưa thích sẽ không giúp bạn tốt hơn dự đoán kết quả trung bình cho tất cả các trường hợp hoặc một số giải pháp tầm thường khác?

Tất nhiên, đây là một vấn đề về dự báo, nhưng theo tôi biết, thật khó để đánh giá khả năng dự báo cho dữ liệu đa biến trước khi thử một cái gì đó trên nó. Hoặc là tôi sai?

Tuyên bố miễn trừ trách nhiệm: câu hỏi này được lấy cảm hứng từ câu hỏi này Khi nào tôi phải ngừng tìm kiếm một mô hình? Điều đó đã không thu hút nhiều sự chú ý. Sẽ thật tuyệt khi có câu trả lời chi tiết cho câu hỏi như vậy để tham khảo.


1
Vấn đề này có thể được trả lời bằng thuật ngữ thực tế (như @StephanKolassa đã làm) hoặc bằng thuật ngữ tuyệt đối (một số định lý cho thấy một mô hình nhất định có thể tìm hiểu một vấn đề nếu điều kiện nhất định được thỏa mãn). Bạn muốn cái nào
Tuyệt vời nhất

3
Điều này nghe có vẻ giống như vấn đề tạm dừng cổ điển của khoa học máy tính? Giả sử bạn có một số thuật toán A có độ phức tạp tùy ý tìm kiếm trên dữ liệu đầu vào D đang tìm kiếm các mô hình dự đoán và thuật toán tạm dừng khi tìm thấy mô hình "tốt" cho dữ liệu. Không thêm cấu trúc quan trọng trên A và D, tôi không biết làm thế nào bạn có thể biết liệu A có dừng được đưa ra đầu vào D hay không, làm thế nào bạn có thể biết liệu cuối cùng A sẽ thành công hay tiếp tục tìm kiếm mãi mãi?
Matthew Gunn

@Superbest nó có thể là cả hai. Nếu bạn có một cái gì đó để thêm, hãy trả lời. Tôi chưa bao giờ nghe về định lý nói bất cứ điều gì về việc xử lý dữ liệu ồn ào đa chiều trong đời thực, nhưng nếu bạn biết một dữ liệu áp dụng, thì tôi rất muốn đọc câu trả lời của bạn.
Tim

3
Dựa trên câu trả lời của @ StephenKolassa, một câu hỏi khác mà bạn có thể trả lời câu hỏi này là 'Tại thời điểm nào tôi nên đưa công việc của mình trở lại với các chuyên gia về vấn đề và thảo luận về kết quả của tôi (hoặc thiếu kết quả)?'
Robert de Graaf

Ngoài ra chủ đề liên quan: stats.stackexchange.com/questions/28057/ Kẻ
Jan Kukacka

Câu trả lời:


241

Dự báo

Bạn đúng rằng đây là một câu hỏi về dự báo. Đã có một vài bài viết về khả năng dự báo trong tạp chí Foresight hướng tới học viên của IIF . (Tiết lộ đầy đủ: Tôi là Phó Tổng biên tập.)

Vấn đề là khả năng dự báo đã khó đánh giá trong các trường hợp "đơn giản".

Một vài ví dụ

Giả sử bạn có một chuỗi thời gian như thế này nhưng không nói tiếng Đức:

trứng

Làm thế nào bạn sẽ mô hình hóa đỉnh lớn vào tháng Tư và làm thế nào bạn sẽ đưa thông tin này vào bất kỳ dự báo nào?

Trừ khi bạn biết rằng chuỗi thời gian này là doanh số bán trứng trong chuỗi siêu thị Thụy Sĩ, đạt đỉnh ngay trước lịch Tây phương Phục sinh , bạn sẽ không có cơ hội. Ngoài ra, với lễ Phục sinh di chuyển theo lịch khoảng sáu tuần, bất kỳ dự báo nào không bao gồm ngày Phục sinh cụ thể (giả sử, giả sử, đây chỉ là một đỉnh cao theo mùa sẽ tái diễn trong một tuần cụ thể vào năm tới) có lẽ sẽ rất tắt

Tương tự, giả sử bạn có dòng màu xanh bên dưới và muốn mô hình hóa bất cứ điều gì đã xảy ra vào 2010 / 02-28 khác với các mẫu "bình thường" trong 2010 / 02-27:

trò chơi khúc côn cầu

Một lần nữa, không biết điều gì xảy ra khi cả một thành phố đầy người Canada xem một trận chung kết khúc côn cầu trên băng Olympic trên TV, bạn không có cơ hội nào để hiểu chuyện gì đã xảy ra ở đây, và bạn sẽ không thể dự đoán khi nào điều này sẽ tái diễn.

Cuối cùng, hãy nhìn vào điều này:

ngoại lệ

Đây là một chuỗi thời gian bán hàng hàng ngày tại một cửa hàng tiền mặt và mang theo . (Ở bên phải, bạn có một bảng đơn giản: 282 ngày có doanh số bằng 0, 42 ngày có doanh số 1 ... và một ngày có doanh số 500.) Tôi không biết đó là mặt hàng nào.

Cho đến ngày hôm nay, tôi không biết chuyện gì đã xảy ra vào một ngày với doanh số 500. Dự đoán tốt nhất của tôi là một số khách hàng đã đặt hàng trước một lượng lớn bất kỳ sản phẩm nào và đây là sản phẩm. Bây giờ, không biết điều này, bất kỳ dự báo cho ngày đặc biệt này sẽ còn xa. Ngược lại, giả sử rằng điều này xảy ra ngay trước lễ Phục sinh và chúng tôi có một thuật toán thông minh ngu ngốc tin rằng đây có thể là hiệu ứng Phục sinh (có thể đây là những quả trứng?) Và vui vẻ dự báo 500 đơn vị cho lễ Phục sinh tiếp theo. Ôi, có thể đó đi sai.

Tóm lược

Trong mọi trường hợp, chúng tôi thấy khả năng dự báo chỉ có thể được hiểu rõ khi chúng tôi có đủ hiểu biết sâu sắc về các yếu tố có khả năng ảnh hưởng đến dữ liệu của chúng tôi. Vấn đề là trừ khi chúng ta biết những yếu tố này, chúng ta không biết rằng chúng ta có thể không biết chúng. Theo Donald Rumsfeld :

[T] ở đây được biết đến được biết đến; Có những điều chúng ta biết chúng ta biết. Chúng tôi cũng biết có những ẩn số đã biết; điều đó có nghĩa là chúng ta biết có một số điều chúng ta không biết. Nhưng cũng có những ẩn số chưa biết - những điều chúng ta không biết chúng ta không biết.

Nếu thiên hướng khúc côn cầu của người Phục sinh hay người Canada đối với khúc côn cầu là những ẩn số chưa biết đối với chúng ta, thì chúng ta bị mắc kẹt - và chúng ta thậm chí không có cách nào để đi tiếp, bởi vì chúng ta không biết những câu hỏi nào chúng ta cần hỏi.

Cách duy nhất để xử lý những vấn đề này là thu thập kiến ​​thức về miền.

Kết luận

Tôi rút ra ba kết luận từ đây:

  1. Bạn luôn cần bao gồm kiến ​​thức tên miền trong mô hình và dự đoán của bạn.
  2. Ngay cả với kiến ​​thức tên miền, bạn không được đảm bảo có đủ thông tin để dự báo và dự đoán của bạn được người dùng chấp nhận. Xem ngoại lệ ở trên.
  3. Nếu "kết quả của bạn thật tồi tệ", bạn có thể hy vọng nhiều hơn những gì bạn có thể đạt được. Nếu bạn dự báo một lần tung đồng xu công bằng, thì không có cách nào để có được độ chính xác trên 50%. Đừng tin tưởng điểm chuẩn chính xác dự báo bên ngoài, một trong hai.

Điểm mấu chốt

Dưới đây là cách tôi khuyên bạn nên xây dựng mô hình - và lưu ý khi nào nên dừng:

  1. Nói chuyện với ai đó có kiến ​​thức về miền nếu bạn chưa có nó.
  2. Xác định các trình điều khiển chính của dữ liệu bạn muốn dự báo, bao gồm các tương tác có khả năng, dựa trên bước 1.
  3. Xây dựng các mô hình lặp đi lặp lại, bao gồm các trình điều khiển theo thứ tự độ mạnh giảm dần theo bước 2. Đánh giá các mô hình bằng cách sử dụng xác thực chéo hoặc mẫu giữ.
  4. Nếu độ chính xác dự đoán của bạn không tăng thêm nữa, hãy quay lại bước 1 (ví dụ: bằng cách xác định các dự đoán sai lầm trắng trợn mà bạn không thể giải thích và thảo luận với các chuyên gia tên miền) hoặc chấp nhận rằng bạn đã đạt đến cuối khả năng của các mô hình. Thời gian đấm bốc phân tích của bạn trước giúp.

Lưu ý rằng tôi không ủng hộ việc thử các lớp mô hình khác nhau nếu cao nguyên mô hình ban đầu của bạn. Thông thường, nếu bạn bắt đầu với một mô hình hợp lý, sử dụng một cái gì đó tinh vi hơn sẽ không mang lại lợi ích mạnh mẽ và có thể chỉ đơn giản là "quá mức trên bộ thử nghiệm". Tôi đã thấy điều này thường xuyên, và những người khác đồng ý .


10
+1 cho câu trả lời tuyệt vời mà tôi hoàn toàn đồng ý. Tôi không chấp nhận nó (vì vậy) vì vẫn hy vọng câu trả lời khác vì vấn đề này rất rộng.
Tim

1
Chắc chắn rồi. Tôi cũng muốn thấy quan điểm của người khác về điều này, quá!
Stephan Kolassa

9
If you are forecasting a fair coin toss, then there is no way to get above 50% accuracy.. Bạn đã nói tất cả mọi thứ ở đó.
Walfrat

3
Sử dụng kiến ​​thức tên miền, bạn có thể thêm các tính năng mới vào hai trường hợp đầu tiên (ví dụ: thời gian đến lễ Phục sinh và số xem TV, mặc dù sau này cần dự báo chính nó) để có kết quả tốt hơn nhiều. Trong cả hai trường hợp là tình huống vô vọng. Phần thực sự thú vị là làm thế nào để biết kiến ​​thức tên miền bị thiếu từ một tập hợp dữ liệu của các lần lật đồng xu công bằng.
Karolis Juodelė

4
@ KarolisJuodelė: đó chính xác là quan điểm của tôi. Chúng ta thậm chí không thể biết khi nào tình huống của chúng ta là vô vọng, trừ khi chúng ta nói chuyện với một chuyên gia ... và sau đó, đôi khi chuyên gia cũng không thể giúp chúng ta, và có những "ẩn số chưa biết" cho các chuyên gia, có thể hình dung ra ai đó có thể biết
Stephan Kolassa

57

Câu trả lời từ Stephan Kolassa là tuyệt vời, nhưng tôi muốn nói thêm rằng thường cũng có một điều kiện dừng kinh tế:

  1. Khi bạn đang làm ML cho một khách hàng và không phải để giải trí, bạn nên xem số tiền mà khách hàng sẵn sàng bỏ ra. Nếu anh ta trả cho công ty của bạn 5000 € và bạn đã dành một tháng để tìm kiếm một mô hình, bạn sẽ mất tiền. Nghe có vẻ tầm thường, nhưng tôi đã thấy "phải có một giải pháp !!!!" - suy nghĩ dẫn đến chi phí quá lớn. Vì vậy, hãy dừng lại khi hết tiền và truyền đạt vấn đề đến khách hàng của bạn.
  2. Nếu bạn đã thực hiện một số công việc, bạn thường có cảm giác những gì có thể với bộ dữ liệu hiện tại. Hãy thử áp dụng số tiền đó vào số tiền bạn có thể kiếm được với mô hình, nếu số tiền này không đáng kể hoặc âm tính (ví dụ do thời gian thu thập dữ liệu, phát triển giải pháp, v.v.) bạn nên dừng lại.

Ví dụ: chúng tôi có một khách hàng muốn dự đoán khi nào máy của anh ta bị hỏng, chúng tôi đã phân tích dữ liệu hiện có và tìm thấy tiếng ồn. Chúng tôi đã nghiên cứu và thấy rằng dữ liệu quan trọng nhất đã không được ghi lại và rất khó thu thập. Nhưng không có dữ liệu đó, mô hình của chúng tôi rất kém đến nỗi không ai có thể sử dụng nó và nó đã được đóng hộp.

Mặc dù tôi tập trung vào kinh tế khi làm việc trên một sản phẩm thương mại, quy tắc này cũng áp dụng cho giới hàn lâm hoặc cho các dự án vui chơi - trong khi tiền không phải là vấn đề đáng lo ngại trong những trường hợp như vậy, thời gian vẫn là một mặt hàng hiếm. Ví dụ. trong học viện bạn nên ngừng làm việc khi bạn không tạo ra kết quả rõ ràng và bạn có những dự án khác, hứa hẹn hơn bạn có thể làm. Nhưng đừng bỏ dự án đó - vui lòng xuất bản kết quả null hoặc "cần thêm / dữ liệu khác", chúng cũng rất quan trọng!


1
+1 chắc chắn là một điểm tuyệt vời! Tôi đoán tất cả các câu trả lời cho câu hỏi này có vẻ "rõ ràng", nhưng tôi chưa thấy ở đâu có tất cả những điều "rõ ràng" được thu thập để tham khảo.
Tim

3
Btw, quy tắc dừng này cũng áp dụng cho các trường hợp phi kinh doanh: ví dụ: nếu bạn thực hiện một số loại nghiên cứu, thì kết quả của chúng tôi cũng có một số giá trị trừu tượng và tiếp tục phân tích "vô vọng" chỉ hợp lý cho đến khi giá trị phân tích của bạn vượt quá những gì bạn phân tích có thể đã làm thay thế. Vì vậy, trong thực tế, lập luận lý thuyết quyết định này có thể được thực hiện tổng quát hơn.
Tim

2
Tôi nghĩ rằng "không ai sẽ sử dụng ist và được đóng hộp" có lẽ nên được đổi thành "không ai sẽ sử dụng nó và nó đã được đóng hộp" - đây có phải là ý định của bạn không?
Cá bạc

2
Cảm ơn. Tôi muốn nói rằng không chỉ về thời gian mà còn về thực tế là bạn có thể đầu tư thời gian theo cách khác. Thay vào đó, bạn có thể làm việc trong dự án nghiên cứu về các loại thuốc cứu người khác, bạn sẽ tiết kiệm thời gian của mình nhưng công chúng sẽ được hưởng lợi từ kết quả, v.v.
Tim

2
@ChristianSauer Theo kinh nghiệm của tôi khi là một kỹ sư, vấn đề không khớp giữa các cảm biến (đồng hồ đo cf) và mục đích hữu ích có thể có trước khi phát minh ra bóng bán dẫn.
Robert de Graaf

9

Có một cách khác. Tự hỏi bản thân minh -

  1. Ai hoặc điều gì làm cho các dự báo tốt nhất có thể về biến số đặc biệt này? "
  2. Thuật toán học máy của tôi có tạo ra kết quả tốt hơn hay xấu hơn dự báo tốt nhất không?

Vì vậy, ví dụ, nếu bạn có một số lượng lớn các biến liên quan đến các đội bóng đá khác nhau và bạn đang cố gắng dự đoán ai sẽ thắng, bạn có thể xem tỷ lệ cược của nhà cái hoặc một số dự đoán có nguồn gốc đám đông để so sánh với kết quả học máy của bạn thuật toán. Nếu bạn tốt hơn bạn có thể ở giới hạn, nếu tệ hơn thì rõ ràng có chỗ để cải thiện.

Khả năng cải thiện của bạn phụ thuộc (rộng rãi) vào hai điều:

  1. Bạn có đang sử dụng cùng một dữ liệu như chuyên gia giỏi nhất trong nhiệm vụ cụ thể này không?
  2. Bạn có đang sử dụng dữ liệu hiệu quả như chuyên gia giỏi nhất trong nhiệm vụ cụ thể này không?

Nó phụ thuộc vào chính xác những gì tôi đang cố gắng thực hiện, nhưng tôi có xu hướng sử dụng câu trả lời cho những câu hỏi này để định hướng tôi đi khi xây dựng mô hình, đặc biệt là có nên thử và trích xuất thêm dữ liệu mà tôi có thể sử dụng hoặc tập trung vào cố gắng tinh chỉnh mô hình.

Tôi đồng ý với Stephan rằng thường thì cách tốt nhất để làm điều này là hỏi một chuyên gia về miền.


1
Trên thực tế câu trả lời của bạn mâu thuẫn với câu trả lời @StephanKolassa trong đó ông đề cập đến tài liệu cho thấy rằng điểm chuẩn dự báo là khá sai lệch.
Tim

1
@Tim: tiết lộ đầy đủ - liên kết đó đã đi đến một bài viết về điểm chuẩn mà tôi tự viết. Tuy nhiên, tôi đứng trước kết luận của mình: tất cả các tiêu chuẩn chuẩn dự báo nhu cầu mà tôi đã thấy rất có thể so sánh táo với cam. Vì vậy, tôi có một chút hoài nghi về việc tìm kiếm điểm chuẩn bên ngoài. Ngoài ra, tôi nghĩ rằng câu trả lời này phần nào đặt ra câu hỏi. Khi thuật toán ML của bạn cải thiện về "điều được biết đến nhiều nhất", làm thế nào để bạn biết liệu bạn có thể cải thiện nó hơn nữa hay liệu chúng ta đã đạt được Cao nguyên vô vọng?
Stephan Kolassa

1
Trường hợp sử dụng gần đây nhất của tôi là khá khác nhau. Tôi đã cố gắng dự đoán ai có nguy cơ tự sát từ các bài đăng của họ trên internet. Có nhiều bài kiểm tra tâm lý khác nhau mà người ta có thể sử dụng để đánh giá mức độ nghiêm trọng của trầm cảm, chẳng hạn như PHQ9. Vì đây là một xét nghiệm y tế được sử dụng rộng rãi, có nhiều công việc đáng kể về tính hợp lệ và độ tin cậy của nó, chẳng hạn như "Hiệu lực của PHQ-9 của một biện pháp nghiêm trọng trầm cảm ngắn". Tôi thấy rằng độ tin cậy và các biện pháp khác trong bài báo đó là điểm khởi đầu tốt cho kết quả có thể đạt được từ học máy.
Gavin Potter

1
Tất nhiên, bạn đã đúng về việc cải thiện "điều được biết đến nhiều nhất", không có cách nào để biết có nên tiếp tục tìm kiếm một mô hình tốt hơn hay không. Nhưng theo kinh nghiệm của tôi, điều này khá hiếm khi xảy ra trong tình huống thực tế. Hầu hết các công việc tôi làm dường như là về việc cố gắng áp dụng các đánh giá của chuyên gia ở quy mô thông qua việc sử dụng máy học không cố gắng cải thiện chuyên gia giỏi nhất trong lĩnh vực này.
Gavin Potter
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.