Chúng ta có cần giảm độ dốc để tìm các hệ số của mô hình hồi quy tuyến tính không?


31

Tôi đã cố gắng học máy học bằng vật liệu Coursera . Trong bài giảng này, Andrew Ng sử dụng thuật toán giảm độ dốc để tìm các hệ số của mô hình hồi quy tuyến tính sẽ giảm thiểu hàm lỗi (hàm chi phí).

Đối với hồi quy tuyến tính, chúng ta có cần giảm độ dốc không? Dường như tôi có thể phân tích hàm phân tích lỗi và đặt nó thành 0 để giải các hệ số; Có đúng không?


3
Các mô hình tuyến tính đã được xử lý tốt từ những năm 1700. Có rất nhiều cách để xử lý chúng mà không yêu cầu giảm độ dốc (GD). Có những mô hình phi tuyến trong đó hầu hết các phương pháp đó nằm trên mặt của chúng. Andrew đang khiến bạn sử dụng một phương pháp không quen thuộc nhưng rất hữu ích để chống lại một vấn đề rất đơn giản để bạn có thể gỡ lỗi phương pháp của mình. Khi bạn giỏi với phương pháp này, bạn có thể áp dụng nó cho các vấn đề phi tuyến tuyệt vời mà GD là phương pháp duy nhất để có kết quả.
EngrStudent - Phục hồi Monica

10
Không, bạn không phải sử dụng các phương pháp tiếp cận như giảm độ dốc (đó không phải là phương pháp tối ưu hóa duy nhất, trong mọi trường hợp). Bạn thực sự có thể phân tích giải quyết nó, như bạn đề nghị; bạn phân biệt với từng tham số, vì vậy bạn nhận được một phương trình cho mỗi tham số. Nhưng nó hữu ích để giải quyết các vấn đề đơn giản có thể được thực hiện theo những cách khác; nếu bạn đã biết câu trả lời, bạn có thể chắc chắn khi bạn nhận được câu trả lời đúng với độ dốc giảm dần.
Glen_b -Reinstate Monica

Nếu hàm chi phí là hình phạt bậc hai ('khoảng cách') thông thường, có một giải pháp dạng đóng. Tuy nhiên, độ dốc gốc thường nhanh hơn nhiều, đó là lý do tại sao nó thường được sử dụng.
aginensky 06/07/2015

Ngoài ra, độ dốc gốc có thể được sử dụng để tìm giải pháp số cho các vấn đề có thể phân tích được. Tôi sẽ nghi ngờ rằng anh ta sử dụng độ dốc gốc từ sớm để làm quen với nó. Tôi tin rằng anh ta sau đó sử dụng độ dốc gốc với lưới thần kinh. Không cần phải nói tình hình mạng lưới thần kinh phức tạp hơn. Tôi nghĩ từ một tình huống sư phạm, đã nhìn thấy chúng trước đây, với các mô hình tuyến tính, độ dốc giảm dần để sử dụng với các mạng lưới thần kinh có vẻ hợp lý hơn.
aginensky 06/07/2015

3
Cảm ơn bạn đã đăng liên kết đến video Andre Ng mà tôi đã xem nhiều. Tôi đã biết điều đó, mặc dù không đến mức cực đoan này, nhưng thật đáng sợ khi thấy phần lớn những người "học" tối ưu hóa đang học gì, không đề cập đến những gì ít nhất một số trong số họ đang học về điện toán thống kê. Gene Golub, người tiên phong trong điện toán và sử dụng SVD, sẽ lăn lộn trong mộ của anh ấy nếu anh ấy biết những gì đang được dạy trong Phòng Khoa học Máy tính Stanford của anh ấy. Video "vui nhất" là youtube.com/watch?v=B3vseKmgi8E , mà đề xuất và so sánh 2 thuật toán WORST cho các ô vuông nhỏ nhất.
Mark L. Stone

Câu trả lời:


43

Bình phương tuyến tính nhỏ nhất có thể được giải quyết bằng

0) Sử dụng bộ giải bình phương tuyến tính tối thiểu chất lượng cao, dựa trên SVD hoặc QR, như được mô tả dưới đây, cho các bình phương tối thiểu tuyến tính không bị giới hạn, hoặc dựa trên một phiên bản Lập trình bậc hai hoặc Tối ưu hóa hình nón cho các bình phương nhỏ nhất bị ràng buộc hoặc tuyến tính, như được mô tả dưới đây. Một người giải quyết như vậy được đóng hộp trước, thử nghiệm nhiều và sẵn sàng để sử dụng - sử dụng nó.

1) SVD, đây là phương pháp đáng tin cậy và chính xác nhất về số lượng, nhưng cũng cần nhiều tính toán hơn so với các phương án. Trong MATLAB, giải pháp SVD của bài toán bình phương tuyến tính nhỏ nhất không giới hạn A * X = b là pinv (A) * b, rất chính xác và đáng tin cậy.

2) QR, khá đáng tin cậy và chính xác về số lượng, nhưng không nhiều như SVD, và nhanh hơn SVD. Trong MATLAB, giải pháp QR của bài toán bình phương tuyến tính nhỏ nhất không giới hạn A * X = b là A \ b, khá chính xác và đáng tin cậy, ngoại trừ khi A bị điều hòa, nghĩa là có số điều kiện lớn. A \ b nhanh hơn để tính toán hơn pinv (A) * b, nhưng không đáng tin cậy hoặc chính xác.

3) Hình thành các phương trình Bình thường (TERRIBLE từ quan điểm độ tin cậy và độ chính xác số, bởi vì nó bình phương số điều kiện, đây là một điều rất xấu phải làm) và

3a) giải quyết bằng Cholesky Factorization (không tốt)

3b) ma trận đảo ngược rõ ràng (HORRIBLE)

4) Giải quyết vấn đề lập trình bậc hai hoặc bài toán hình nón bậc hai

4a) Giải quyết bằng phần mềm Lập trình bậc hai chất lượng cao. Điều này đáng tin cậy và chính xác về số lượng, nhưng mất nhiều thời gian hơn SVD hoặc QR. Tuy nhiên, thật dễ dàng để thêm các ràng buộc tuyến tính ràng buộc hoặc chung, hoặc các điều khoản hình phạt hoặc chính quy tuyến tính hoặc bậc hai (hai định mức) cho hàm mục tiêu và vẫn giải quyết vấn đề bằng phần mềm Lập trình bậc hai.

4b) Giải quyết vấn đề hình nón bậc hai bằng phần mềm Tối ưu hóa hình nón chất lượng cao. Nhận xét giống như đối với phần mềm Lập trình bậc hai, nhưng bạn cũng có thể thêm các ràng buộc tuyến tính ràng buộc hoặc chung và các ràng buộc hình nón khác hoặc các thuật ngữ hàm mục tiêu, chẳng hạn như các điều khoản phạt hoặc chính quy trong các định mức khác nhau.

5) Giải quyết bằng phần mềm tối ưu hóa phi tuyến chất lượng cao cho mục đích chung. Điều này có thể vẫn hoạt động tốt, nhưng nói chung sẽ chậm hơn so với phần mềm Lập trình bậc hai hoặc Tối ưu hóa Conic, và có thể không hoàn toàn đáng tin cậy. Tuy nhiên, có thể bao gồm không chỉ các ràng buộc tuyến tính ràng buộc và chung, mà cả các ràng buộc phi tuyến vào tối ưu hóa bình phương nhỏ nhất. Ngoài ra, có thể được sử dụng cho bình phương tối thiểu phi tuyến và nếu các thuật ngữ phi tuyến khác được thêm vào hàm mục tiêu.

6) Giải quyết bằng các thuật toán tối ưu hóa phi tuyến mục đích chung tệ hại -> ĐỪNG BAO GIỜ LÀM ĐIỀU NÀY.

7) Giải quyết bằng cách sử dụng thuật toán tối ưu hóa phi tuyến tính cho mục đích chung có nghĩa là có độ dốc giảm dần. Chỉ sử dụng phương pháp này nếu bạn muốn xem phương pháp giải pháp có thể xấu và không đáng tin cậy như thế nào Nếu ai đó bảo bạn sử dụng độ dốc để giải quyết các vấn đề bình phương tuyến tính nhỏ nhất

7 i) Tìm hiểu về tính toán thống kê từ một người biết điều gì đó về nó

7 ii) Tìm hiểu tối ưu hóa từ một người biết điều gì đó về nó.


Bài đăng hay, tại sao bạn nghĩ rằng Cholesky không tốt khi hệ thống của bạn là PD? (và không phải với một số điều kiện vô lý) BTW, tôi nghĩ rằng bạn muốn nói (hoặc thêm) khái niệm nghịch đảo tổng quát (chủ yếu được sử dụng cho mục đích giáo dục rõ ràng) hoặc tại điểm "SVD" hoặc "đảo ngược rõ ràng".
usεr11852 nói Phục hồi Monic

2
BTW, thật nực cười khi các ma trận thường xuyên được tạo ra với số lượng điều kiện rất cao, đặc biệt là bởi các khối không được quét (nghĩa là, phần lớn những người thực hiện bình phương tuyến tính nhỏ nhất, đặc biệt là được dân chủ hóa truy cập), những người không được hòa hợp với nó.
Mark L. Stone

1
mldivide, tức là. dấu gạch chéo ngược, nghĩa là, \ sử dụng QR khi m ~ = n (bình phương nhỏ nhất), như tôi đã nêu trong câu 2 của đoạn (2) ở trên. Bạn sẽ ngạc nhiên về số lượng crap trong MATLAB - mặc dù không chỉ trong các hộp công cụ, một số trong đó hoàn toàn khủng khiếp, nhưng ở một mức độ thấp hơn trong một số chức năng cốt lõi.
Mark L. Stone

1
@ MarkL.Stone, câu trả lời tuyệt vời! bạn có thể vui lòng giải thích thêm một chút về lý do tại sao không nên sử dụng Gradient giảm dần để giải quyết bình phương nhỏ nhất! (theo cách hiểu của tôi, nó chỉ là một cách tiếp cận lặp lại so với các cách khác (cách tiếp cận giải pháp hướng) mà bạn đã đề cập ở trên). Ngoài ra, bạn cũng có thể nhận xét về vấn đề: "nếu tôi có n> = 30.000 tính năng cho một vấn đề, phương pháp bình thường sẽ rất chậm vì đảo ngược ma trận n * n sẽ rất tệ! Mặt khác, GD sẽ hoạt động trong trường hợp này trường hợp đẹp! mọi suy nghĩ về cách SVD & QR sẽ thực hiện ". bất kỳ đề nghị sẽ hữu ích.
anu

1
@ anu Chỉ sử dụng giảm dần độ dốc như là phương sách cuối cùng. và điều đó sẽ chỉ xảy ra nếu vấn đề quá lớn không thể giải quyết bằng SVD hoặc QR. Không bao giờ hình thành các phương trình bình thường, hãy để một mình rõ ràng đảo ngược một ma trận để giải các phương trình bình thường, KHÔNG BAO GIỜ. 30.000 tính năng không giống như rất nhiều cho đến ngày nay.
Mark L. Stone

0

Tìm hệ số của mô hình tuyến tính về mặt kỹ thuật là quá trình tìm giải pháp cho một tập hợp các phương trình tuyến tính .

Để tính toán các giải pháp như vậy, rất nhiều trong số đó optimization techniquesđã được phát triển và Gradient Descentlà một trong số đó.
Do đó, Gradient Descent không phải là cách duy nhất để làm điều đó.

Andrew Ng sử dụng nó trong khóa học là vì nó đơn giản để hiểu, mà không phải đối phó với Đại số tuyến tính tiên tiến và Điện toán số.


Mặc dù không sai nhưng tôi nghĩ câu trả lời của bạn bỏ lỡ bức tranh lớn hơn bằng cách tập trung vào một trường hợp không chuẩn. Phần lớn các mô hình hồi quy tuyến tính được trang bị bằng cách sử dụng phân tách QR sử dụng giải pháp dạng đóng. GD- Nâng cấp đàng hoàng- được sử dụng làm ví dụ để giới thiệu các phương pháp nâng cao hơn (ví dụ: SGD- stochastic GD).
usεr11852 nói Phục hồi Monic

Bạn có thể giải thích QR phân hủy là gì?
Victor

3
Bạn muốn giải quyết Ax= =b. ĐượcMột= =QR Ở đâu R là hình tam giác trên và Q là trực giao, Ax=bQRx=bRx=QTb which can be solved by backward substitution (ie. fast) as R is triangular and QTQ=I. For very large matrices (millions of entries) this can be more expensive than an iterative solver eg. SGD. As most people do not have very large matrices the QR decomposition is better. In general QR decomposition has shaped the numerical world; SIAM selected it as one of the top10 algorithms of the 20th century.
usεr11852 says Reinstate Monic

@usεr11852 yes ofcourse. That because, i wanted to keep the answer simple, so as to avoid concepts such as QR decompostion, remaining relevant to the domain of Ng's course level.
Vikas Raturi

3
QR was one of the top 10 algorithms of the 20th century. But time marches on, and even though effective algorithms for computing SVD date back to the 1960s, you have to look at the importance of the application areas. Therefore I believe SVD is the TOP algorithm of the 21st century. Quite frankly, have you ever heard of QR being used to recommend movies? No, SVD is used for that critical appiication. SVD clearly is the algorithm of choice when Twitter sends out unsolicited recommendations to conservative old geezers as to which teenage celebrities they should follow. Let's see QR do that!!!
Mark L. Stone
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.