Một lời giải thích trực quan cho cách PCA chuyển từ một vấn đề hình học (với khoảng cách) sang một vấn đề đại số tuyến tính (với các hàm riêng)?


54

Tôi đã đọc rất nhiều về PCA, bao gồm các hướng dẫn và câu hỏi khác nhau (chẳng hạn như cái này , cái này , cái nàycái này ).

Vấn đề hình học mà PCA đang cố gắng tối ưu hóa là rõ ràng đối với tôi: PCA cố gắng tìm thành phần chính đầu tiên bằng cách giảm thiểu lỗi tái tạo (phép chiếu), đồng thời tối đa hóa phương sai của dữ liệu dự kiến.

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

Khi tôi lần đầu tiên đọc nó, tôi nghĩ ngay đến một thứ như hồi quy tuyến tính; có lẽ bạn có thể giải quyết nó bằng cách sử dụng độ dốc gốc nếu cần.

Tuy nhiên, sau đó tâm trí của tôi đã bị thổi phồng khi tôi đọc rằng vấn đề tối ưu hóa được giải quyết bằng cách sử dụng đại số tuyến tính và tìm ra các hàm riêng và giá trị riêng. Tôi chỉ đơn giản là không hiểu làm thế nào việc sử dụng đại số tuyến tính này phát huy tác dụng.

Vì vậy, câu hỏi của tôi là: Làm thế nào PCA có thể chuyển từ một vấn đề tối ưu hóa hình học sang một vấn đề đại số tuyến tính? Ai đó có thể cung cấp một lời giải thích trực quan?

Tôi không tìm kiếm một câu trả lời như thế này mà nói rằng "Khi bạn giải quyết vấn đề toán học của PCA, cuối cùng nó tương đương với việc tìm ra giá trị riêng và hàm riêng của ma trận hiệp phương sai." Vui lòng giải thích lý do tại sao các hàm riêng xuất hiện thành các thành phần chính và tại sao các giá trị riêng xuất hiện không đúng với dữ liệu được chiếu lên chúng

Tôi là một kỹ sư phần mềm và không phải là một nhà toán học.

Lưu ý: hình trên đã được lấy và sửa đổi từ hướng dẫn PCA này .


2
Trong chuỗi dài đằng sau liên kết đầu tiên của bạn, có câu trả lời của @ amoeba với hoạt hình, điều này giải thích điều cốt lõi. PCA là giới hạn của các trục dữ liệu (cột) cho đến khi chúng trở nên không tương thích như các vectơ dữ liệu (biến). Ma trận xoay như vậy được tìm thấy thông qua phân tách eigendec hoặc phân tách giá trị số ít và được gọi là ma trận eigenvector.
ttnphns

2
Bên cạnh đó, ngay cả khi bạn không phải là nhà toán học (tôi cũng không), có lẽ bạn đã nghe nói về đại số tuyến tínhhình học Euclide là những lĩnh vực toán học rất gắn bó; chúng thậm chí còn được nghiên cứu cùng nhau như một môn học gọi là hình học phân tích.
ttnphns

1
optimization problemCó, vấn đề PCA có thể được giải quyết thông qua các phương pháp tối ưu hóa (lặp, hội tụ), tôi tin. Nhưng vì nó có giải pháp dạng đóng thông qua toán học, tại sao không sử dụng giải pháp đơn giản, hiệu quả đó?
ttnphns

Bạn yêu cầu provide an intuitive explanation. Tôi tự hỏi tại sao câu trả lời trực quan và rõ ràng của amip, nơi tôi đã liên kết đến, sẽ không phù hợp với bạn. Bạn hỏi _why_ eigenvectors come out to be the principal components...tại sao? Theo định nghĩa! Eigenvector hướng chính của đám mây dữ liệu.
ttnphns

6
@ttnphns: Tôi thực sự nghĩ rằng câu hỏi là hợp lý. Đây là cách tôi hiểu nó. PCA muốn tìm hướng của phương sai tối đa của hình chiếu. Hướng này được gọi (theo định nghĩa) hướng chính đầu tiên. Mặt khác, một hàm riêng của ma trận hiệp phương sai (theo định nghĩa) vectơ như vậy mà . Vậy tại sao hướng chính đầu tiên được đưa ra bởi eigenvector với giá trị riêng lớn nhất? Trực giác ở đây là gì? Đó chắc chắn không phải là định nghĩa. Tôi đã suy nghĩ về nó và tôi biết làm thế nào để chứng minh điều đó, nhưng thật khó để giải thích bằng trực giác. w C w = λ wCwCw=λw
amip nói phục hồi Monica

Câu trả lời:


54

Báo cáo vấn đề

Vấn đề hình học mà PCA đang cố gắng tối ưu hóa là rõ ràng đối với tôi: PCA cố gắng tìm thành phần chính đầu tiên bằng cách giảm thiểu lỗi tái tạo (phép chiếu), đồng thời tối đa hóa phương sai của dữ liệu dự kiến.

Đúng rồi. Tôi giải thích mối liên hệ giữa hai công thức này trong câu trả lời của tôi ở đây (không có toán học) hoặc ở đây (với toán học).

Chúng ta hãy thực hiện công thức thứ hai: PCA đang thử tìm hướng sao cho hình chiếu của dữ liệu trên đó có phương sai cao nhất có thể. Hướng này, theo định nghĩa, được gọi là hướng chính đầu tiên. Chúng ta có thể chính thức hóa nó như sau: đưa ra ma trận hiệp phương sai , chúng ta đang tìm một vectơ có độ dài đơn vị, , sao cho là tối đa.Cww=1wCw

(Chỉ trong trường hợp này không rõ ràng: nếu là ma trận dữ liệu trung tâm, thì phép chiếu được đưa ra bởi và phương sai của nó là .)XXw1n1(Xw)Xw=w(1n1XX)w=wCw

Mặt khác , theo định nghĩa , một hàm riêng của , theo định nghĩa, bất kỳ vectơ sao cho .CvCv=λv

Nó chỉ ra rằng hướng chính đầu tiên được đưa ra bởi eigenvector với giá trị riêng lớn nhất. Đây là một tuyên bố không cần thiết và đáng ngạc nhiên.


Bằng chứng

Nếu một người mở bất kỳ cuốn sách hoặc hướng dẫn nào về PCA, người ta có thể tìm thấy ở đó bằng chứng gần như một dòng của tuyên bố trên. Chúng tôi muốn tối đa hóa dưới sự ràng buộc mà ; điều này có thể được thực hiện khi giới thiệu hệ số nhân Lagrange và tối đa hóa ; khác biệt, chúng ta thu được , đây là phương trình eigenvector. Chúng tôi thấy rằng trên thực tế là giá trị riêng lớn nhất bằng cách thay thế giải pháp này thành hàm mục tiêu, mang lạiwCww=ww=1wCwλ(ww1)Cwλw=0λwCwλ(ww1)=wCw=λww=λ . Nhờ thực tế rằng chức năng mục tiêu này phải được tối đa hóa, phải là giá trị riêng lớn nhất, QED.λ

Điều này có xu hướng không trực quan cho hầu hết mọi người.

Một bằng chứng tốt hơn (xem ví dụ câu trả lời gọn gàng này của @cardinal ) nói rằng vì là ma trận đối xứng, nên nó là đường chéo trong cơ sở eigenvector của nó. (Đây thực sự được gọi là định lý phổ .) Vì vậy, chúng ta có thể chọn một cơ sở trực giao, cụ thể là cơ sở được đưa ra bởi các hàm riêng, trong đó là đường chéo và có eigenvalues trên đường chéo. Trong cơ sở đó, đơn giản hóa thành hoặc nói cách khác, phương sai được tính bằng tổng trọng số của các giá trị riêng. Gần như ngay lập tức rằng để tối đa hóa biểu thức này, chỉ cần lấyCCλiwCwλiwi2w=(1,0,0,,0), tức là trình xác định đầu tiên, mang lại phương sai (thực sự, lệch khỏi giải pháp này và "giao dịch" các phần của giá trị riêng lớn nhất cho các phần của phần nhỏ hơn sẽ chỉ dẫn đến phương sai tổng thể nhỏ hơn). Lưu ý rằng giá trị của không phụ thuộc vào cơ sở! Thay đổi thành cơ sở eigenvector thành một phép quay, vì vậy trong 2D, người ta có thể tưởng tượng chỉ cần xoay một mảnh giấy với biểu đồ phân tán; rõ ràng điều này không thể thay đổi bất kỳ phương sai.λ1wCw

Tôi nghĩ rằng đây là một lập luận rất trực quan và rất hữu ích, nhưng nó dựa trên định lý phổ. Vì vậy, vấn đề thực sự ở đây tôi nghĩ là: trực giác đằng sau định lý phổ là gì?


Định lý phổ

Hãy đối xứng ma trận . Lấy eigenvector với giá trị riêng lớn nhất . Làm cho hàm riêng này trở thành vectơ cơ sở đầu tiên và chọn ngẫu nhiên các vectơ cơ sở khác (sao cho tất cả chúng là trực giao). sẽ trông như thế nào trong cơ sở này?Cw1λ1C

Nó sẽ có ở góc trên bên trái, bởi vì trong cơ sở này và phải bằng .λ1w1=(1,0,00)Cw1=(C11,C21,Cp1)λ1w1=(λ1,0,00)

Với cùng một đối số, nó sẽ có các số 0 trong cột đầu tiên bên dưới .λ1

Nhưng vì nó là đối xứng, nó cũng sẽ có các số 0 ở hàng đầu tiên sau . Vì vậy, nó sẽ trông như thế:λ1

C=(λ10000),

trong đó không gian trống có nghĩa là có một khối các yếu tố ở đó. Vì ma trận đối xứng nên khối này cũng sẽ đối xứng. Vì vậy, chúng ta có thể áp dụng chính xác cùng một đối số cho nó, sử dụng hiệu quả hàm riêng thứ hai làm vectơ cơ sở thứ hai và nhận và trên đường chéo. Điều này có thể tiếp tục cho đến khi là đường chéo. Đó thực chất là định lý phổ. (Lưu ý cách nó hoạt động chỉ vì đối xứng.)λ1λ2CC


Đây là một cải cách trừu tượng hơn của chính xác cùng một lập luận.

Chúng tôi biết rằng , vì vậy, hàm riêng đầu tiên xác định không gian con 1 chiều trong đó hoạt động như một phép nhân vô hướng. Bây giờ chúng ta hãy đưa bất kỳ vectơ trực giao vào . Sau đó, gần như ngay lập tức rằng cũng trực giao với . Thật:Cw1=λ1w1Cvw1Cvw1

w1Cv=(w1Cv)=vCw1=vCw1=λ1vw1=λ10=0.

Điều này có nghĩa là hoạt động trên toàn bộ không gian con trực giao còn lại với sao cho nó tách biệt với . Đây là tính chất quan trọng của ma trận đối xứng. Vì vậy, chúng ta có thể tìm thấy trình xác định lớn nhất ở đó, và tiến hành theo cách tương tự, cuối cùng xây dựng một cơ sở trực giao của trình xác định.Cw1w1w2


"Số nhân Lagrange" thực sự rõ ràng đối với tôi. Tuy nhiên, bạn có thể cho tôi biết lý do tại sao chúng ta cần một ràng buộc độ dài đơn vị không? Cảm ơn
Haitao Du

2
@ hxd1011 Đã có chính xác câu hỏi này ở đây, nhưng ngắn gọn: đó là vì nếu không, bạn có thể nhân bất kỳ số nào và sẽ tăng theo bình phương của số này. Vì vậy, vấn đề trở nên không rõ ràng: tối đa của biểu thức này là vô hạn. Trong thực tế, phương sai của hình chiếu theo hướng của là chỉ khi là đơn vị chiều dài. wwCwwwCww
amip nói phục hồi Monica

Tôi đoán có thể quen thuộc hơn với hầu hết độc giả; Tôi đã thay thế nó ở đây. Cảm ơn. n1
amip nói phục hồi Monica

@amoeba: Cảm ơn bạn đã trả lời. Tôi bối rối bởi một số ký hiệu của bạn. Bạn sử dụng w để chỉ ra vectơ có độ dài đơn vị hóa ra là hàm riêng đầu tiên (thành phần chính). Khi tôi chạy PCA trong R (ví dụ prcomp(iris[,1:4], center=T, scale=T)), tôi thấy các hàm riêng có độ dài đơn vị với một loạt các float như thế nào (0.521, -0.269, 0.580, 0.564). Tuy nhiên, trong câu trả lời của bạn trong "Bằng chứng", bạn viết Gần như ngay lập tức rằng để tối đa hóa biểu thức này, bạn chỉ cần lấy w = (1,0,0, Lỗi, 0), tức là trình xác định đầu tiên . Tại sao các eigenvector trong bằng chứng của bạn trông rất tốt như vậy?
stackoverflowuser2010

1
Xin chào @ user58865, cảm ơn vì sự nũng nịu: Tôi chỉ đơn giản là quên trả lời lần đầu tiên. Độ mỏng là, là một vô hướng - nó chỉ là một con số. Bất kỳ số nào là "đối xứng" :) và bằng với chuyển vị của nó. Liệu nó có ý nghĩa? w1Cv
amip nói rằng Phục hồi Monica

5

Có một kết quả từ năm 1936 bởi Eckart và Young ( https://ccrma.stanford.edu/~dattorro/eckart%26young.1936.pdf ), trong đó nêu rõ như sau

1rdkukvkT=argminX^ϵM(r)||XX^||F2

Trong đó M (r) là tập hợp các ma trận hạng r, về cơ bản có nghĩa là các thành phần r đầu tiên của SVD của X đưa ra xấp xỉ ma trận bậc thấp tốt nhất của X và tốt nhất được xác định theo tiêu chuẩn Frobenius bình phương - tổng bình phương các phần tử của một ma trận.

Đây là kết quả chung cho ma trận và thoạt nhìn không liên quan gì đến tập dữ liệu hoặc giảm kích thước.

Tuy nhiên, nếu bạn không nghĩ là ma trận mà chỉ nghĩ về các cột của ma trận đại diện cho vectơ của các điểm dữ liệu thì là xấp xỉ với sai số biểu diễn tối thiểu về sự khác biệt lỗi bình phương.XXX^


4

Đây là nhận định của tôi về đại số tuyến tính đằng sau PCA. Trong đại số tuyến tính, một trong những định lý chính là . Nó tuyên bố nếu S là bất kỳ n đối xứng n bởi n ma trận với các hệ số thực, thì S có n eigenvector với tất cả các giá trị riêng là thực. Điều đó có nghĩa là chúng ta có thể viết với D một ma trận đường chéo với các mục tích cực. Đó là và không có hại gì khi giả sử . A là sự thay đổi của ma trận cơ sở. Đó là, nếu cơ sở ban đầu của chúng tôi là , thì đối với cơ sở được đưa ra bởiSpectral TheoremS=ADA1D=diag(λ1,λ2,,λn)λ1λ2λnx1,x2,,xnA(x1),A(x2),A(xn), hành động của S là đường chéo. Điều này cũng có nghĩa là có thể được coi là cơ sở trực giao với Nếu ma trận hiệp phương sai của chúng tôi là cho n quan sát của n biến, chúng tôi sẽ hoàn thành. Cơ sở được cung cấp bởi là cơ sở PCA. Điều này sau từ các sự kiện đại số tuyến tính. Về bản chất, điều này đúng bởi vì cơ sở PCA là cơ sở của các hàm riêng và có tối đa n hàm riêng của một ma trận vuông có kích thước n. Tất nhiên hầu hết các ma trận dữ liệu không phải là hình vuông. Nếu X là ma trận dữ liệu với n quan sát của các biến p, thì X có kích thước n theo p. Tôi sẽ giả sử rằng (quan sát nhiều hơn biến) vàA(xi)||A(xi)||=λiA(xi)
n>prk(X)=p(tất cả các biến là độc lập tuyến tính). Không giả định là cần thiết, nhưng nó sẽ giúp với trực giác. Đại số tuyến tính có một khái quát từ định lý phổ gọi là phân rã giá trị số ít. Đối với X như vậy, nó nói rằng với ma trận U, V trực giao (vuông) có kích thước n và p và một ma trận đường chéo thực chỉ có âm không âm các mục trên đường chéo. Một lần nữa chúng ta có thể sắp xếp lại cơ sở của V sao cho Theo thuật ngữ ma trận, điều này có nghĩa là nếu và nếu . CácX=UΣVtΣ=(sij)s11s22spp>0X(vi)=siiuiipi > n v i Σ V tsii=0i>nviđưa ra phân tách PCA. Chính xác hơn là phân tách PCA. Một lần nữa, đại số tuyến tính nói rằng chỉ có thể có p eigenvector. SVD đưa ra các biến mới (được cho bởi các cột của V) là trực giao và có định mức giảm. ΣVt


4

"đồng thời tối đa hóa phương sai của dữ liệu dự kiến." Bạn đã nghe nói về thương số Rayleigh chưa? Có lẽ đó là một cách để thấy điều này. Cụ thể là thương số rayleigh của ma trận hiệp phương sai cung cấp cho bạn phương sai của dữ liệu được chiếu. (và trang wiki giải thích lý do tại sao người bản địa tối đa hóa thương số Rayleigh)


1

@amoeba cung cấp chính thức gọn gàng và bằng chứng về:

Chúng ta có thể chính thức hóa nó như sau: với ma trận hiệp phương sai C, chúng ta đang tìm một vectơ w có độ dài đơn vị, w‖ = 1, sao cho w T Cw là cực đại.

Nhưng tôi nghĩ có một bằng chứng trực quan để:

Nó chỉ ra rằng hướng chính đầu tiên được đưa ra bởi eigenvector với giá trị riêng lớn nhất. Đây là một tuyên bố không cần thiết và đáng ngạc nhiên.

Chúng ta có thể hiểu w T Cw là một sản phẩm chấm giữa vectơ w và Cw, có được bằng cách đi qua biến đổi C:

w T Cw = ‖w‖ * ‖Cw‖ * cos (w, Cw)

Vì w có chiều dài sửa chữa, để tối đa hóa w T Cw, chúng tôi cần:

  1. tối đa hóa ‖Cw‖
  2. tối đa hóa cos (w, Cw)

Hóa ra nếu chúng ta lấy w làm người phát minh của C với giá trị riêng lớn nhất, chúng ta có thể lưu trữ cả hai cùng một lúc:

  1. Cw‖ là tối đa, (nếu w đi chệch khỏi hàm riêng này, hãy phân tách nó dọc theo các hàm riêng trực giao, bạn sẽ thấy giảm Cw‖.)
  2. w và Cw cùng hướng, cos (w, Cw) = 1, max

Vì các hàm riêng là trực giao, cùng với các hàm riêng khác của C, chúng tạo thành một tập hợp các thành phần chính cho X.


bằng chứng của 1

phân rã w thành eigenvector sơ cấp và thứ cấp trực giao v1v2 , giả sử chiều dài của chúng lần lượt là v1 và v2. chúng tôi muốn chứng minh

( 1 w) 2 > ((λ 1 v1) 2 + (λ 2 v2) 2 )

kể từ λ 1 > 2 , chúng ta có

((λ 1 v1) 2 + (λ 2 v2) 2 )

<((λ 1 v1) 2 + ( 1 v2) 2 )

= (λ 1 ) 2 * (v1 2 + v2 2 )

= (λ 1 ) 2 * w 2

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.