Có phải tất cả các thuật toán học máy tách dữ liệu tuyến tính?


22

Tôi là một người đam mê lập trình và học máy. Chỉ vài tháng trước, tôi bắt đầu học về lập trình học máy. Giống như nhiều người không có nền tảng khoa học định lượng, tôi cũng bắt đầu tìm hiểu về ML bằng cách mày mò các thuật toán và bộ dữ liệu trong gói ML được sử dụng rộng rãi (caret R).

Một thời gian trước tôi đọc một blog trong đó tác giả nói về việc sử dụng hồi quy tuyến tính trong ML. Nếu tôi nhớ chính xác, anh ấy đã nói về việc cuối cùng tất cả các máy học sử dụng một loại "hồi quy tuyến tính" nào đó (không chắc anh ấy đã sử dụng thuật ngữ chính xác này) ngay cả đối với các vấn đề tuyến tính hoặc phi tuyến tính. Lúc đó tôi không hiểu ý anh là gì.

Hiểu biết của tôi về việc sử dụng máy học cho dữ liệu phi tuyến tính là sử dụng thuật toán phi tuyến tính để phân tách dữ liệu.

Đây là suy nghĩ của tôi

Giả sử để phân loại dữ liệu tuyến tính, chúng tôi đã sử dụng phương trình tuyến tính và đối với dữ liệu phi tuyến tính, chúng tôi sử dụng phương trình phi tuyến tính nóiy = s i n ( x )y= =mx+cy= =Stôin(x)

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

Hình ảnh này được lấy từ trang web tìm hiểu sikit của máy vectơ hỗ trợ. Trong SVM, chúng tôi đã sử dụng các hạt nhân khác nhau cho mục đích ML. Vì vậy, suy nghĩ ban đầu của tôi là kernel tuyến tính tách dữ liệu bằng hàm tuyến tính và kernel RBF sử dụng hàm phi tuyến tính để tách dữ liệu.

Nhưng sau đó tôi thấy blog này nơi tác giả nói về mạng lưới thần kinh.

Để phân loại vấn đề phi tuyến tính trong subplot bên trái, mạng nơ ron biến đổi dữ liệu theo cách mà cuối cùng chúng ta có thể sử dụng phân tách tuyến tính đơn giản cho dữ liệu được chuyển đổi trong biểu đồ con bên phải

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

Câu hỏi của tôi là liệu cuối cùng tất cả các thuật toán học máy có sử dụng phân tách tuyến tính để phân loại (dữ liệu tuyến tính / phi tuyến tính) không?



3
Mô hình phi tuyến tính của bạn cũng là một tuyến tính. giới thiệu một biến mới , sau đó vấn đề của bạn trở thành - một biến tuyến tính. Theo nghĩa này, rất nhiều thuật toán ML thực sự là tuyến tính. s = sin ( x ) y = θ 0 + θ 1 stội(x)S= =tội(x)y= =θ0+θ1S
Aksakal

Tôi cũng thích câu trả lời của mbq về chủ đề này, Giúp tôi hiểu các máy vectơ hỗ trợ .
Andy W

Câu trả lời:


26

Câu trả lời là số user20160 có một câu trả lời hoàn hảo, tôi sẽ thêm 3 ví dụ với trực quan hóa để minh họa ý tưởng. Lưu ý, các lô này có thể không hữu ích cho bạn để xem liệu "quyết định cuối cùng" có ở dạng tuyến tính hay không nhưng cho bạn cảm giác về cây, tăng cường và KNN.

Chúng tôi sẽ bắt đầu với cây quyết định. Với nhiều phân chia, nó là một ranh giới quyết định phi tuyến tính. Và chúng tôi không thể nghĩ rằng tất cả các phân chia trước đó là "biến đổi tính năng" và có một dòng quyết định cuối cùng ở cuối.

Một ví dụ khác là mô hình thúc đẩy, tổng hợp nhiều "phân loại yếu" và ranh giới quyết định cuối cùng không phải là tuyến tính. Bạn có thể nghĩ về nó là một mã / thuật toán phức tạp để đưa ra dự đoán cuối cùng.

Cuối cùng, hãy nghĩ về K Hàng xóm gần nhất (KNN). Nó cũng không phải là một hàm quyết định tuyến tính ở lớp cuối. Ngoài ra, không có "biến đổi tính năng" trong KNN.

Dưới đây là ba hình ảnh trực quan trong không gian 2D (Cây, Tăng tốc và KNN từ trên xuống dưới). Sự thật cơ bản là 2 hình xoắn ốc đại diện cho hai lớp và biểu đồ con bên trái là dự đoán từ mô hình và biểu đồ con bên phải là ranh giới quyết định từ mô hình.

Cây quyết định ranh giới

Tăng cường ranh giới quyết định

Ranh giới quyết định KNN


EDIT: @ ssdecontrol 'câu trả lời trong bài viết này đưa ra một quan điểm khác.

Nó phụ thuộc vào cách chúng ta định nghĩa "chuyển đổi" .

Bất kỳ chức năng nào phân chia dữ liệu thành hai phần đều có thể được chuyển đổi thành mô hình tuyến tính của dạng này, với một đầu vào và một đầu vào (một chỉ báo cho biết "bên" của phân vùng mà điểm dữ liệu được bật). Điều quan trọng cần lưu ý về sự khác biệt giữa chức năng quyết định và ranh giới quyết định.


Tôi không muốn chỉ trích, nhưng việc thúc đẩy có vẻ hơi khó khăn phải không? Có phải là không thể có được một kết quả mượt mà hơn với các thông số khác nhau? Xin lỗi để được vui vẻ, bởi vì tôi thấy tất cả các giải thích rất tốt.
YCR

@YCR Tôi nghĩ rằng đó là điểm thúc đẩy mà bạn có một ranh giới quyết định thô. Sự gồ ghề được gây ra bằng cách tổng hợp nhiều phân loại yếu (trong ví dụ này, chúng là cây). Nhưng tôi đồng ý với bạn rằng ví dụ thứ hai không phải là một mô hình tốt và nó quá mức :)
Haitao Du

1
(+1) Trực quan tuyệt vời (Tôi cũng sử dụng spiralsrất nhiều trong các thử nghiệm của mình). Một gợi ý: vẽ các ranh giới quyết định dưới dạng imagevà có thể thêm các mức độ có thể xảy ra (nếu bạn đang sử dụng các đầu ra xác suất) với contour.
Firebug

@Fireorms gợi ý tuyệt vời! những âm mưu này được tạo ra trong một lưới và chỉ có thể cho bạn biết nhãn cuối cùng. Đường viền tốt hơn nhiều.
Haitao Du

Nhìn vào câu trả lời của tôi ở đây: stats.stackexchange.com/a/218578/60613
Firebug

21

Một số thuật toán sử dụng một siêu phẳng (tức là hàm tuyến tính) để phân tách dữ liệu. Một ví dụ nổi bật là hồi quy logistic. Những người khác sử dụng một siêu phẳng để phân tách dữ liệu sau khi chuyển đổi phi tuyến (ví dụ: mạng nơ ron và máy vectơ hỗ trợ với hạt nhân phi tuyến). Trong trường hợp này, ranh giới quyết định là phi tuyến trong không gian dữ liệu gốc, nhưng tuyến tính trong không gian tính năng mà dữ liệu được ánh xạ. Trong trường hợp của SVM, công thức kernel xác định ánh xạ này hoàn toàn. Các thuật toán khác sử dụng nhiều siêu phân tách trong các vùng không gian dữ liệu cục bộ (ví dụ: cây quyết định). Trong trường hợp này, ranh giới quyết định là tuyến tính (nhưng tổng thể phi tuyến).

Tuy nhiên, các thuật toán khác có ranh giới quyết định phi tuyến và không được xây dựng dưới dạng siêu phẳng. Một ví dụ nổi bật là k phân loại hàng xóm gần nhất. Các bộ phân loại của bộ đồng phục (ví dụ: được sản xuất bằng cách tăng hoặc đóng gói các bộ phân loại khác) thường là phi tuyến.


Mạng nơ-ron không phải là một ví dụ tốt về lớp mô hình sử dụng siêu phẳng sau khi chuyển đổi phi tuyến. Lớp đầu ra có thể (trong nhiều trường hợp) là một kích hoạt sigmoid, với điều kiện bạn giả sử các lớp trước đó là một phép biến đổi phi tuyến tính thành một không gian đặc trưng.
Cagdas Ozgenc

1
@CagdasOzgenc Hãy xem xét trường hợp phân loại nhị phân và đầu ra w / sigmoidal mạng, như bạn đang đề xuất. Điều này tương đương với hồi quy logistic đối với các kích hoạt của lớp trước (sử dụng các đầu ra softmax sẽ tương đương với hồi quy logistic đa thức). Vì vậy, ranh giới quyết định là một siêu phẳng trong không gian tính năng. Hình ảnh trong câu hỏi ban đầu cho thấy một ví dụ hay về điều này.
dùng20160

Tôi hiểu rằng khi f (Ax) = 0 và f là một đối một, bạn có thể chỉ cần thực hiện f ^ -1 của (Ax) = f ^ -1 (0) => Ax = 0 (hoặc một số hằng số c). Vì vậy, trong trường hợp sigmoid, bạn có được một ranh giới quyết định tuyến tính. Về cơ bản chúng ta đang nói về các trường hợp khi f không thể đảo ngược?
Cagdas Ozgenc

Là f chức năng kích hoạt của nơ ron đầu ra và x đầu ra của lớp trước? Không chắc chắn tôi hiểu những gì bạn đang hỏi.
dùng20160

x là một vectơ đến từ các nơ ron của lớp trước và f là hàm kích hoạt đầu ra.
Cagdas Ozgenc
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.