Là máy học tự động là một giấc mơ?


12

Khi tôi khám phá máy học, tôi thấy các kỹ thuật thú vị khác nhau như:

  • tự động điều chỉnh các thuật toán với các kỹ thuật như grid search,
  • có được kết quả chính xác hơn thông qua việc kết hợp các thuật toán khác nhau của cùng một "loại", đó là boosting,
  • có được kết quả chính xác hơn thông qua sự kết hợp của các thuật toán khác nhau (nhưng không phải cùng loại thuật toán), đó là stacking,
  • và có lẽ nhiều hơn nữa tôi vẫn phải khám phá ...

Câu hỏi của tôi là như sau: có tất cả những mảnh đó. Nhưng liệu có thể kết hợp chúng lại với nhau để tạo ra một thuật toán lấy dữ liệu được làm sạch đầu vào và cho kết quả tốt bằng cách tận dụng tốt nhất tất cả các kỹ thuật? (Tất nhiên có lẽ sẽ kém hiệu quả hơn một nhà khoa học dữ liệu chuyên nghiệp, nhưng anh ta sẽ giỏi hơn tôi!) Nếu có, bạn có mã mẫu hay bạn có biết các khung có thể làm điều đó không?

EDIT: Sau một số câu trả lời, có vẻ như một số thu hẹp phải được thực hiện. Hãy lấy một ví dụ, chúng ta có một cột với dữ liệu phân loại, hãy gọi nó yvà chúng ta muốn dự đoán nó từ dữ liệu số Xlà hình nộm hoặc dữ liệu số thực (chiều cao, nhiệt độ). Chúng tôi giả định làm sạch đã được thực hiện trước đó. Có thuật toán hiện có có thể lấy dữ liệu đó và đưa ra dự đoán không? (bằng cách kiểm tra nhiều thuật toán, điều chỉnh chúng, tăng tốc, v.v.) Nếu có, nó có hiệu quả về mặt tính toán không (các phép tính được thực hiện trong thời gian hợp lý nếu chúng ta so sánh với thuật toán thông thường) và bạn có ví dụ về mã không?


1
Có lẽ không phải cho đến khi có AI mạnh mẽ.
gung - Phục hồi Monica

1
Liên quan đến điều chỉnh tự động, bạn có thể muốn đọc về Tìm kiếm siêu tham số trong Machine Learning . Tìm kiếm lưới là một cách khủng khiếp để tối ưu hóa siêu âm.
Marc Claesen

2
Đừng bạn sử dụng rất nhiều định dạng ?
Sycorax nói Phục hồi lại

2
Có những sản phẩm tuyên bố họ làm những gì bạn mô tả, ví dụ Crystal Ball . Cá nhân tôi không tin tưởng họ, nhưng như bạn đã viết: họ làm công việc tốt hơn một người không có đầu mối về thống kê
Aksakal

1
Để dự báo auto.arima(từ forecastthư viện) có thể tốt hơn con người - Rob Hyndman đã đề cập nhiều lần trong các bài thuyết trình của mình. Vì vậy, có những lĩnh vực mà một số loại "học tự động" được áp dụng thành công.
Tim

Câu trả lời:


7

Nếu bạn biết trước loại dữ liệu nào bạn sẽ cung cấp ("đây là doanh số hàng tháng của CPGs, với giá và dấu khuyến mãi và tôi muốn dự báo điểm"), vì vậy bạn có thể điều chỉnh thiết lập của mình trước thời hạn, rất có thể đó sẽ là có thể và đã được thực hiện, xem các "hệ thống chuyên gia" khác nhau cho các nhiệm vụ cụ thể nhất định.

Nếu bạn đang tìm kiếm thứ gì đó có thể lấy bất kỳ loại dữ liệu nào và thực hiện "thứ gì đó hữu ích" với nó ("ah, ở đây tôi phải nhận ra chữ viết tay và mã ZIP đầu ra, và ở đó tôi nên phát hiện gian lận và rõ ràng tệp đầu vào này là một nhiệm vụ chấm điểm tín dụng "), không, tôi không nghĩ rằng điều đó sẽ xảy ra trong một thời gian dài.

Xin lỗi vì một câu trả lời dựa trên ý kiến ​​cho những gì có thể được đóng lại như một câu hỏi dựa trên ý kiến.


EDIT để giải quyết câu hỏi đã chỉnh sửa:

yX

y


Tôi đã chỉnh sửa câu hỏi của mình nhờ bạn, có một phần đầu tiên "lấy bất kỳ đầu vào nào và ném cho tôi kết quả" và câu trả lời của bạn thực sự sâu sắc, và phần thứ hai "cho một loại câu hỏi cụ thể và định dạng dữ liệu, hãy tìm tôi kết quả".
Pholochtairze

Không chắc đoạn cuối vẫn còn, cho thành công to lớn của việc học sâu về nhiều vấn đề lớn. Các phương thức này chắc chắn là mục đích chung, tuy nhiên chúng giữ các bản ghi trong một số lĩnh vực ứng dụng như thị giác máy tính và NLP. Người ta có thể lập luận rằng các kiến ​​trúc khác nhau giữa các nhiệm vụ, nhưng ở mức độ lý thuyết, một mạng lưới sâu được kết nối đầy đủ sẽ hoạt động ít nhất là, như các mạng chập, chỉ là phương pháp đào tạo phù hợp vẫn khó nắm bắt.
Marc Claesen

@MarcClaesen: Tôi muốn nói rằng "chỉ là phương pháp đào tạo phù hợp vẫn khó nắm bắt" là điểm mà bạn vẫn sẽ cần chuyên môn về miền cụ thể.
Stephan Kolassa

7

Những gì bạn mô tả đã tồn tại ở một mức độ nào đó, ví dụ như trong AutoweKA , và đang được nối lại tích cực (ví dụ: các thách thức như AutoML của Chalearn ).

Điều này thường được xem xét trong trường con tối ưu hóa siêu tham số. Các gói phần mềm như Optunity , HyperoptParamILS có thể được sử dụng để tự động tối ưu hóa siêu âm cho một cách tiếp cận nhất định chọn cách tiếp cận nào là tốt nhất. Điều đó nói rằng, các vấn đề tối ưu hóa như vậy không phải là nhỏ và thường phải mất một thời gian dài để tự động có được mô hình tốt nhất (hoặc gần với nó).

Bạn có thể tìm thấy một ví dụ về việc sử dụng Optunity để tự động xác định thuật toán học tập tốt nhất tối ưu hóa siêu âm của nó tại http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated- classifying.html


4

Những tiến bộ trong điều chỉnh siêu tham số và các mô hình tập hợp đang lấy đi rất nhiều "nghệ thuật" trong việc xây dựng mô hình. Tuy nhiên, có hai khía cạnh quan trọng của việc xây dựng mô hình là điều chỉnh siêu tham số và các nhóm không giải quyết và sẽ khiến bạn không tìm thấy mô hình tốt nhất có thể.

Đầu tiên, một số loại thuật toán tốt hơn trong việc mô hình hóa một số loại dữ liệu nhất định. Ví dụ: nếu có các tương tác giữa các biến của bạn, một mô hình phụ gia sẽ không tìm thấy chúng, nhưng một cây quyết định sẽ. Biết cách các mô hình hoạt động trên các tập dữ liệu khác nhau và chọn đúng, có thể yêu cầu kiến ​​thức về miền để tìm thuật toán mô hình tốt nhất.

Thứ hai, kỹ thuật tính năng và trích xuất tính năng là 'nghệ thuật' thực sự để xây dựng mô hình. Câu hỏi của bạn giả định rằng bộ dữ liệu đã được chuẩn bị. Nhưng những gì bạn không nên cho rằng bộ dữ liệu là đại diện tốt nhất có thể cho những gì bạn đang cố gắng mô hình hóa. Đây luôn là câu hỏi mở. Trong nhiều trường hợp, khi tập dữ liệu phức tạp, bạn có thể thiết kế các tính năng suốt cả ngày, nhưng bạn có nguy cơ ném ngày càng nhiều tiếng ồn vào thuật toán. Để biết các tính năng nào cần thêm, bạn phải biết các tính năng nào có ý nghĩa từ góc độ thống kê và ý nghĩa nào từ quan điểm của chuyên gia tên miền.

Vì hai lý do đó, tôi kết luận rằng không, bạn sẽ không thể tìm thấy thuật toán tìm mô hình tốt nhất có thể tự động. Đây cũng là lý do tại sao tôi hoài nghi về các công cụ cung cấp phần mềm sẽ thay thế nhu cầu của các nhà khoa học dữ liệu.

Tuy nhiên, nếu bạn đang thu hẹp tham vọng tìm kiếm mô hình tốt nhất từ ​​một bộ mô hình cố định, với các tham số siêu tối ưu, trong đó 'tốt nhất' được xác định là độ chính xác dự đoán cao nhất trên tập huấn luyện, thì có, điều này là có thể.

Kiểm tra caretgói trong Rmột ví dụ về cách tự động điều chỉnh các mô hình. caretsử dụng tìm kiếm lưới, có sai sót và nó chỉ xây dựng một mô hình tại một thời điểm. Tuy nhiên, có các chức năng để so sánh các mô hình và trình bao bọc thuận tiện cho một danh sách dài các mô hình từ nhiều Rgói khác nhau .


Tôi đồng ý rằng chúng ta vẫn còn cách xa việc học máy hoàn toàn tự động, nhưng không phải vì những lý do bạn chỉ định. Hai điều: (i) tìm ra mô hình tốt nhất (+ tối ưu hóa siêu âm của nó) từ một tập hợp nhất định là có thể và (ii) tính năng kỹ thuật và trích xuất tính năng đang mất tầm quan trọng do những tiến bộ trong học tập sâu. Điều chính chúng tôi hiện đang thiếu là các cách tự động để kết hợp kiến ​​thức trước đây và ý thức chung cụ thể về lĩnh vực.
Marc Claesen

Tôi đoán tôi không thấy làm thế nào "kiến thức chung và ý thức chung cụ thể về lĩnh vực" có thể cải thiện quy trình ML ngoại trừ việc giúp (i) tìm mô hình tốt nhất và (ii) tìm các tính năng tốt nhất. Tôi đã cố gắng phân biệt giữa mô hình thực và mô hình tối ưu (độ chính xác tối đa) với đoạn thứ hai đến đoạn cuối.
brandco 13/07/2015

để phát hiện ra các lỗ hổng rõ ràng trong quy trình mô hình hóa như nhãn sai và / hoặc rò rỉ thông tin, cách xử lý dữ liệu bị thiếu, xác định nhiệm vụ học tập thực tế (+ chức năng ghi / mất điểm phù hợp) và thường làm sạch toàn bộ dữ liệu (luôn luôn làm sạch dữ liệu là nỗ lực chính trong tất cả các vấn đề thực tế mà tôi đã tham gia).
Marc Claesen

2

Phụ thuộc vào người bạn hỏi.

Gần đây tôi đã nghe một cuộc nói chuyện của Scott Golder tại Context Relevant . Sản phẩm của họ về cơ bản là một robot lựa chọn tính năng và mô hình. Mô hình cơ bản cơ bản là hồi quy logistic, nhưng về cơ bản, hệ thống sử dụng học máy để tìm ra sự kết hợp đúng đắn của lựa chọn tính năng, giảm kích thước, chính quy, v.v. để tạo dự đoán chính xác. Đó là một cuộc nói chuyện rất ấn tượng, và các chi tiết đều rất độc quyền. Rõ ràng khách hàng của họ bao gồm các công ty tài chính lớn và hệ thống có thể xử lý các tập dữ liệu khổng lồ tùy ý.

Ít nhất một vài người, sau đó, dường như nghĩ rằng khoa học dữ liệu tự động đã ở đây, ít nhất là cho các ứng dụng nhất định. Và một số trong những người đó (khách hàng của bối cảnh có liên quan) dường như đang trả tiền qua mũi để truy cập vào nó.


1

Không, đó không phải là một giấc mơ. Chúng tôi đã thực hiện điều này (sự kết hợp của tất cả các kỹ thuật mà bạn đã đề cập, bao gồm cả các bản hòa tấu xếp chồng lên nhau) trong thư viện máy học H2O . Bạn có thể đọc thêm về nó và tìm các ví dụ mã trong R và Python tại đây .

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.