Xin vui lòng, giúp tôi hiểu sự khác biệt giữa một sinh sản và phân biệt thuật toán, lưu giữ trong tâm trí rằng tôi chỉ là một người mới bắt đầu.
Xin vui lòng, giúp tôi hiểu sự khác biệt giữa một sinh sản và phân biệt thuật toán, lưu giữ trong tâm trí rằng tôi chỉ là một người mới bắt đầu.
Câu trả lời:
Giả sử bạn có dữ liệu đầu vào x
và bạn muốn phân loại dữ liệu thành nhãn y
. Một mô hình thế hệ học phân phối xác suất chungp(x,y)
và một mô hình phân biệt đối xử học phân phối xác suất có điều kiệnp(y|x)
- mà bạn nên đọc là "xác suất y
đưa ra x
" .
Đây là một ví dụ thực sự đơn giản. Giả sử bạn có dữ liệu sau trong biểu mẫu (x,y)
:
(1,0), (1,0), (2,0), (2, 1)
p(x,y)
Là
y=0 y=1
-----------
x=1 | 1/2 0
x=2 | 1/4 1/4
p(y|x)
Là
y=0 y=1
-----------
x=1 | 1 0
x=2 | 1/2 1/2
Nếu bạn dành vài phút để nhìn chằm chằm vào hai ma trận đó, bạn sẽ hiểu sự khác biệt giữa hai phân phối xác suất.
Phân phối p(y|x)
là phân phối tự nhiên để phân loại một ví dụ đã cho x
thành một lớp y
, đó là lý do tại sao các thuật toán mô hình hóa trực tiếp này được gọi là thuật toán phân biệt đối xử. Mô hình thuật toán tạo p(x,y)
, có thể được chuyển đổi p(y|x)
bằng cách áp dụng quy tắc Bayes và sau đó được sử dụng để phân loại. Tuy nhiên, phân phối p(x,y)
cũng có thể được sử dụng cho các mục đích khác. Ví dụ: bạn có thể sử dụng p(x,y)
để tạo(x,y)
các cặp có khả năng .
Từ mô tả ở trên, bạn có thể nghĩ rằng các mô hình thế hệ thường hữu ích hơn và do đó tốt hơn, nhưng nó không đơn giản như thế. Bài viết này là một tài liệu tham khảo rất phổ biến về chủ đề phân loại phân biệt so với thế hệ, nhưng nó khá nặng nề. Ý chính chung là các mô hình phân biệt nói chung vượt trội hơn các mô hình thế hệ trong các nhiệm vụ phân loại.
p(y|x)
hàm ý các thuật toán mô hình hóa nó được gọi là "mô hình phân biệt đối xử".
Một thuật toán tổng quát mô hình hóa cách dữ liệu được tạo để phân loại tín hiệu. Nó đặt câu hỏi: dựa trên các giả định thế hệ của tôi, loại nào có khả năng tạo ra tín hiệu này nhất?
Một thuật toán phân biệt đối xử không quan tâm đến cách dữ liệu được tạo ra, nó chỉ đơn giản là phân loại một tín hiệu nhất định.
Hãy tưởng tượng nhiệm vụ của bạn là phân loại một bài phát biểu thành ngôn ngữ.
Bạn có thể làm điều đó bằng một trong hai cách sau:
hoặc là
Người đầu tiên là sinh sản tiếp cận và điều thứ hai là phân biệt cách tiếp cận.
Kiểm tra tài liệu tham khảo này để biết thêm chi tiết: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .
Trong thực tế, các mô hình được sử dụng như sau.
Trong các mô hình phân biệt đối xử , để dự đoán nhãn y
từ ví dụ đào tạo x
, bạn phải đánh giá:
mà chỉ đơn thuần chọn những gì là lớp có khả năng nhất y
xem xét x
. Giống như chúng tôi đã cố gắng mô hình hóa ranh giới quyết định giữa các lớp . Hành vi này rất rõ ràng trong các mạng thần kinh, trong đó các trọng số tính toán có thể được xem như một đường cong có hình dạng phức tạp cô lập các phần tử của một lớp trong không gian.
Bây giờ, sử dụng quy tắc của Bayes, hãy thay thế phương trình bằng . Vì bạn chỉ quan tâm đến arg max , bạn có thể xóa sạch mẫu số, điều này sẽ giống nhau cho mọi y
. Vì vậy, bạn còn lại với
đó là phương trình bạn sử dụng trong các mô hình thế hệ .
Mặc dù trong trường hợp đầu tiên bạn có phân phối xác suất có điều kiện p(y|x)
, mô hình hóa ranh giới giữa các lớp, trong lần thứ hai bạn có phân phối xác suất chung p(x, y)
, từ đó p(x | y) p(y) = p(x, y)
, mô hình rõ ràng phân phối thực tế của mỗi lớp .
Với hàm phân phối xác suất chung, được cho a y
, bạn có thể tính toán ("tạo") tương ứng x
. Vì lý do này, chúng được gọi là mô hình "thế hệ".
Dưới đây là phần quan trọng nhất từ bài giảng của CS299 (do Andrew Ng) liên quan đến chủ đề, mà thực sự giúp tôi hiểu sự khác biệt giữa phân biệt đối xử và sinh sản thuật toán học.
Giả sử chúng ta có hai lớp động vật, voi ( y = 1
) và chó ( y = 0
). Và x là vectơ đặc trưng của động vật.
Đưa ra một tập huấn luyện, một thuật toán như hồi quy logistic hoặc thuật toán perceptron (về cơ bản) cố gắng tìm một đường thẳng - nghĩa là ranh giới quyết định - phân tách voi và chó. Sau đó, để phân loại một động vật mới là voi hoặc chó, nó kiểm tra phía nào của ranh giới quyết định mà nó rơi và đưa ra dự đoán phù hợp. Chúng tôi gọi những thuật toán học phân biệt đối xử .
Đây là một cách tiếp cận khác nhau. Đầu tiên, nhìn vào những con voi, chúng ta có thể xây dựng một mô hình về những con voi trông như thế nào. Sau đó, nhìn vào những con chó, chúng ta có thể xây dựng một mô hình riêng biệt về những con chó trông như thế nào. Cuối cùng, để phân loại một con vật mới, chúng ta có thể ghép con vật mới với mô hình con voi và ghép nó với mô hình con chó, để xem con vật mới trông giống con voi hơn hay giống con chó chúng ta đã thấy trong bộ huấn luyện . Chúng tôi gọi những thuật toán học tập khái quát này .
Nói chung, có một thực tế trong cộng đồng học máy không học những thứ mà bạn không muốn. Ví dụ, hãy xem xét một vấn đề phân loại trong đó mục tiêu của một người là gán nhãn y cho đầu vào x đã cho. Nếu chúng ta sử dụng mô hình thế hệ
p(x,y)=p(y|x).p(x)
chúng ta phải mô hình p (x) không liên quan đến nhiệm vụ trong tay. Những hạn chế thực tế như sự thưa thớt dữ liệu sẽ buộc chúng ta phải lập mô hình p(x)
với một số giả định độc lập yếu. Do đó, chúng tôi trực giác sử dụng các mô hình phân biệt đối xử để phân loại.
Một điểm bổ sung thông tin phù hợp với câu trả lời của StompChicken ở trên.
Sự khác biệt cơ bản giữa mô hình phân biệt và mô hình thế hệ là:
Các mô hình phân biệt học tìm hiểu ranh giới (cứng hoặc mềm) giữa các lớp
Mô hình tạo mô hình phân phối các lớp riêng lẻ
Biên tập:
Mô hình Generative là mô hình có thể tạo dữ liệu . Nó mô hình cả các tính năng và lớp (tức là dữ liệu hoàn chỉnh).
Nếu chúng ta lập mô hình P(x,y)
: Tôi có thể sử dụng phân phối xác suất này để tạo các điểm dữ liệu - và do đó tất cả các mô hình thuật toán P(x,y)
đều mang tính khái quát .
Ví dụ. của mô hình thế hệ
Các mô hình Naive Bayes P(c)
và P(d|c)
- nơi c
là lớp và d
là vector tính năng.
Cũng thế, P(c,d) = P(c) * P(d|c)
Do đó, Naive Bayes trong một số mô hình mẫu, P(c,d)
Bayes Net
Lưới Markov
Mô hình phân biệt đối xử là mô hình chỉ có thể được sử dụng để phân biệt / phân loại các điểm dữ liệu . Bạn chỉ yêu cầu lập mô hình P(y|x)
trong các trường hợp như vậy, (nghĩa là xác suất của lớp được cung cấp cho vectơ đặc trưng).
Ví dụ. của các mô hình phân biệt đối xử:
hồi quy logistic
Mạng lưới thần kinh
Trường ngẫu nhiên có điều kiện
Nhìn chung, các mô hình thế hệ cần mô hình hóa nhiều hơn các mô hình phân biệt đối xử và do đó đôi khi không hiệu quả. Như một vấn đề thực tế, hầu hết (không chắc chắn nếu tất cả) các thuật toán học tập không giám sát như phân cụm, v.v. có thể được gọi là khái quát, vì chúng mô hình hóa P(d)
(và không có lớp: P)
PS: Một phần của câu trả lời được lấy từ nguồn
Nhiều câu trả lời ở đây dựa vào định nghĩa toán học được sử dụng rộng rãi [1]:
- Các mô hình phân biệt đối xử trực tiếp tìm hiểu phân phối dự báo có điều kiện
p(y|x)
.- Các mô hình sáng tạo tìm hiểu phân phối chung
p(x,y)
(hay đúng hơn,p(x|y)
vàp(y)
).
- Phân phối dự đoán
p(y|x)
có thể thu được với quy tắc của Bayes.
Mặc dù rất hữu ích, định nghĩa hẹp này giả định cài đặt được giám sát và ít tiện dụng hơn khi kiểm tra các phương pháp không giám sát hoặc bán giám sát. Nó cũng không áp dụng cho nhiều cách tiếp cận đương đại cho mô hình khái quát sâu sắc . Ví dụ: bây giờ chúng ta có các mô hình thế hệ ngầm, ví dụ: Mạng đối thủ tạo (GAN), dựa trên mẫu và thậm chí không mô hình hóa mật độ xác suất p(x)
(thay vào đó là học một biện pháp phân kỳ thông qua mạng phân biệt đối xử). Nhưng chúng tôi gọi chúng là "các mô hình thế hệ vì chúng được sử dụng để tạo các mẫu (chiều cao [10]).
Một định nghĩa rộng hơn và cơ bản hơn [2] có vẻ phù hợp như nhau cho câu hỏi chung này:
- Các mô hình phân biệt học tìm hiểu ranh giới giữa các lớp.
- Vì vậy, họ có thể phân biệt giữa các loại trường hợp dữ liệu khác nhau.
- Mô hình tạo ra học phân phối dữ liệu.
- Vì vậy, họ có thể tạo ra các trường hợp dữ liệu mới.
Mặc dù vậy, câu hỏi này ngụ ý phần nào sự phân đôi giả [3]. "Phân đôi" phân biệt đối xử trong thực tế là một phổ mà bạn thậm chí có thể nội suy trơn tru giữa [4].
Kết quả là, sự khác biệt này trở nên độc đoán và khó hiểu, đặc biệt là khi nhiều mô hình phổ biến không gọn gàng thành một hoặc khác [5,6], hoặc trên thực tế là các mô hình lai (kết hợp giữa các mô hình "phân biệt đối xử" và "thế hệ" cổ điển) .
Tuy nhiên, đây vẫn là một sự khác biệt rất hữu ích và phổ biến để thực hiện. Chúng tôi có thể liệt kê một số ví dụ rõ ràng về các mô hình khái quát và phân biệt đối xử, cả kinh điển và gần đây:
Ngoài ra còn có rất nhiều công việc thú vị kiểm tra sâu sắc sự phân chia thế hệ - phân biệt [7] và phổ [4,8], và thậm chí chuyển đổi các mô hình phân biệt đối xử thành các mô hình thế hệ [9].
Cuối cùng, các định nghĩa không ngừng phát triển, đặc biệt là trong lĩnh vực đang phát triển nhanh chóng này :) Tốt nhất là lấy chúng bằng một nhúm muối, và thậm chí có thể định nghĩa lại chúng cho chính bạn và những người khác.
Tất cả các câu trả lời trước đây đều tuyệt vời và tôi muốn thêm một điểm nữa.
Từ các mô hình thuật toán tổng quát, chúng ta có thể rút ra bất kỳ phân phối nào; trong khi chúng ta chỉ có thể có được phân phối có điều kiện P (Y | X) từ các mô hình thuật toán phân biệt đối xử (hoặc chúng ta có thể nói rằng chúng chỉ hữu ích để phân biệt nhãn của Y) và đó là lý do tại sao nó được gọi là mô hình phân biệt đối xử. Mô hình phân biệt đối xử không cho rằng X là độc lập với Y ($ X_i \ perp X _ {- i} | Y $) và do đó thường mạnh hơn để tính phân phối có điều kiện.
Hai xu của tôi: Cách tiếp cận phân biệt làm nổi bật sự khác biệt Cách tiếp cận sáng tạo không tập trung vào sự khác biệt; họ cố gắng xây dựng một mô hình đại diện cho lớp. Có một sự chồng chéo giữa hai. Tốt nhất là cả hai cách tiếp cận nên được sử dụng: một cách sẽ hữu ích để tìm ra điểm tương đồng và phương pháp kia sẽ hữu ích để tìm ra điểm tương đồng.
Một mô hình thuật toán tổng quát sẽ học hoàn toàn từ dữ liệu đào tạo và sẽ dự đoán đáp ứng.
Một công việc thuật toán phân biệt đối xử chỉ là để phân loại hoặc phân biệt giữa 2 kết quả.
Bài viết này đã giúp tôi rất nhiều trong việc hiểu khái niệm.
Tóm tắt,
Một số tài liệu đọc tốt: xác suất có điều kiện , PDF chung