Sự khác biệt giữa làm trắng ZCA và làm trắng PCA là gì?


60

Tôi bối rối về làm trắng ZCA và làm trắng bình thường (có được bằng cách chia các thành phần chính cho căn bậc hai của giá trị bản địa PCA). Theo như tôi biết,

xZCMộtwhTôite= =BạnxPCMộtwhTôite,
trong đóBạn là các hàm riêng của PCA.

Công dụng của tẩy trắng răng ZCA là gì? Sự khác biệt giữa làm trắng bình thường và làm trắng ZCA là gì?


2
Theo "Mạng lưới thần kinh: Thủ thuật của thương mại", PCA và ZCA chỉ khác nhau bởi một vòng quay.
Martin Thoma

Câu trả lời:


81

Hãy để bạn (trung tâm) dữ liệu được lưu trữ trong một ma trận X với d tính năng (biến) trong các cột và n điểm dữ liệu trong hàng. Hãy để cho ma trận hiệp phương sai C = XX / n có vector riêng trong cột E và giá trị riêng trên đường chéo của D , do đó C = E D E .viết sai rồi×Cười mở miệngXCười mở miệngviết sai rồiC= =XX/viết sai rồiECƯỜI MỞ MIỆNGC= =ECƯỜI MỞ MIỆNGE

Sau đó, những gì bạn gọi là "bình thường" chuyển đổi làm trắng PCA được cho bởi , xem ví dụ câu trả lời của tôi trong Làm thế nào để làm trắng các dữ liệu sử dụng phép phân tích thành phần chính?WPCMột= =CƯỜI MỞ MIỆNG-1/2E

Tuy nhiên, sự chuyển đổi làm trắng này không phải là duy nhất. Thật vậy, dữ liệu được làm trắng sẽ được giữ trắng sau bất kỳ phép quay nào, điều đó có nghĩa là bất kỳ với ma trận trực giao R cũng sẽ là một phép biến đổi làm trắng. Trong những gì được gọi ZCA làm trắng, chúng ta lấy E (xếp chồng lên nhau cùng vector riêng của ma trận hiệp phương sai) như ma trận trực giao này, tức là W Z C Một = E D - 1 / 2 E = C - 1 / 2 .W= =RWPCMộtRE

WZCMột= =ECƯỜI MỞ MIỆNG-1/2E= =C-1/2.

Một thuộc tính xác định của chuyển đổi ZCA ( đôi khi còn được gọi là "chuyển đổi Mahalanobis") là nó dẫn đến dữ liệu trắng gần với dữ liệu gốc nhất (theo nghĩa bình phương nhỏ nhất). Nói cách khác, nếu bạn muốn giảm thiểu tùy thuộc vào X Một được làm trắng, sau đó bạn nên tham gia một = W Z C Một . Đây là một minh họa 2D:X-XMột2XMộtMột= =WZCMột

PCA và ZCA làm trắng

WPCMộtWZCMộtE.

Thuật ngữ "ZCA" dường như đã được giới thiệu trong Bell và Sejnowski 1996trong bối cảnh phân tích thành phần độc lập và là viết tắt của "phân tích thành phần không pha". Xem ở đó để biết thêm chi tiết. Rất có thể, bạn đã gặp thuật ngữ này trong bối cảnh xử lý hình ảnh. Hóa ra, khi được áp dụng cho một loạt các hình ảnh tự nhiên (pixel là các tính năng, mỗi hình ảnh như một điểm dữ liệu), các trục chính trông giống như các thành phần Fourier có tần số tăng dần, xem cột đầu tiên của Hình 1 bên dưới. Vì vậy, họ rất "toàn cầu". Mặt khác, các hàng chuyển đổi ZCA trông rất "cục bộ", xem cột thứ hai. Điều này là chính xác bởi vì ZCA cố gắng chuyển đổi dữ liệu ít nhất có thể và do đó, mỗi hàng tốt hơn nên gần với một hàm cơ sở ban đầu (sẽ là hình ảnh chỉ có một pixel hoạt động). Và điều này có thể đạt được,

PCA và ZCA tại Bell và Sejnowski 1996

Cập nhật

Các ví dụ khác về bộ lọc ZCA và hình ảnh được chuyển đổi bằng ZCA được đưa ra trong Krizhevsky, 2009, Học nhiều lớp tính năng từ hình ảnh nhỏ , xem thêm ví dụ trong câu trả lời của @ bayerj (+1).

Tôi nghĩ những ví dụ này đưa ra ý tưởng về việc làm trắng ZCA có thể thích hợp hơn với PCA. Cụ thể, hình ảnh được làm trắng ZCA vẫn giống với hình ảnh bình thường , trong khi hình ảnh được làm trắng bằng PCA trông không giống hình ảnh bình thường. Điều này có lẽ rất quan trọng đối với các thuật toán như mạng nơ ron tích chập (ví dụ như được sử dụng trong bài báo của Krizhevsky), xử lý các pixel lân cận với nhau và phụ thuộc rất nhiều vào các thuộc tính cục bộ của hình ảnh tự nhiên. Đối với hầu hết các thuật toán học máy khác, nó hoàn toàn không liên quan cho dù dữ liệu được làm trắng bằng PCA hay ZCA.


Cảm ơn! Tôi có một câu hỏi: điều đó có nghĩa là ZCA về cơ bản thay đổi quyền truy cập, nhưng không thay đổi nhiều vị trí của dữ liệu? (dựa trên khu vực bóng của bạn). Ngoài ra, điều đó có nghĩa là bất cứ khi nào chúng ta làm trắng, chúng ta nên làm trắng ZCA? Làm thế nào chúng ta sẽ quyết định sử dụng PCAwhitening hoặc ZCA làm trắng?
RockTheStar

4
(1) Tôi không chắc chính xác ý bạn là gì, nhưng tôi sẽ nói như thế: ZCA kéo dài tập dữ liệu để làm cho nó hình cầu, nhưng cố gắng không xoay nó (trong khi PCA không xoay nó khá nhiều). (2) Tôi thực sự nghĩ rằng trong hầu hết các trường hợp, việc bạn sử dụng tẩy trắng PCA hay ZCA không thành vấn đề. Tình huống duy nhất tôi có thể tưởng tượng nơi ZCA có thể thích hợp hơn, là xử lý trước cho các mạng thần kinh tích chập. Xin vui lòng xem một bản cập nhật cho câu trả lời của tôi.
amip nói phục hồi Monica

5
PCA giống như thực hiện một biến đổi Fourier, ZCA giống như biến đổi, nhân và biến đổi trở lại, áp dụng bộ lọc tuyến tính (không pha). Vì vậy, những gì chúng ta thấy có phản ứng xung bộ lọc ở mỗi pixel. Các "thành phần" liên quan đến hoạt động là như nhau, các cột của E, là "thành phần chính" ... Ý tôi là, bạn cũng có thể gọi các hàng của các thành phần W, nhưng tôi nghĩ điều quan trọng là phải hiểu rằng cùng "các thành phần chính" có liên quan và khi bạn áp dụng ZCA, bạn quay lại miền gốc, trong khi với PCA, bạn cần "tái tạo" tín hiệu.
splititherzero

1
@dividitherzero +1 để bình luận cuối cùng của bạn, tôi nghĩ rằng đây là một quan điểm có giá trị. Trong mọi trường hợp, tôi hy vọng ý nghĩa của hình cuối cùng của tôi (được lấy từ bài báo được liên kết) bây giờ đã rõ ràng.
amip nói rằng Phục hồi lại

1
@learning Bạn không thấy hình ảnh trắng PCA trên trang đó! Chúng hiển thị "hình ảnh giảm kích thước PCA", tức là tái tạo thông qua PCA, nhưng không phải là hình chiếu của PCA.
amip nói rằng Phục hồi Monica

23

X¯X¯T= =LCƯỜI MỞ MIỆNGLT
CƯỜI MỞ MIỆNG= =(λ1,λ2,Giáo dục,λviết sai rồi)
CƯỜI MỞ MIỆNG-1L-1X¯X¯TL-TCƯỜI MỞ MIỆNG-1= =CƯỜI MỞ MIỆNG-1L-1LCƯỜI MỞ MIỆNGLTL-TCƯỜI MỞ MIỆNG-1= =Tôi
X~= =CƯỜI MỞ MIỆNG-1L-1X.

X~= =L(CƯỜI MỞ MIỆNG+ε)-1L-1X.

Trước ZCA:

trước ZCA

ε= =0,0001

sau ZCA 1e-4

ε= =0,1

sau ZCA với .1

Đối với dữ liệu tầm nhìn, dữ liệu tần số cao thường sẽ nằm trong không gian được kéo dài bởi Eigenvalues ​​thấp hơn. Do đó ZCA là một cách để tăng cường những điều này, dẫn đến các cạnh rõ hơn, v.v.


1
Không nên thêm epsilon trước khi nghịch đảo? Tôi nghĩ rằng nó chỉ đơn giản được thêm vào để ổn định nghịch đảo trong trường hợp giá trị bản địa gần như bằng không. Vì vậy, thực sự nếu nó có ý nghĩa để thêm nó để làm trắng ZCA, thì nó cũng có ý nghĩa để thêm nó để làm trắng PCA.
amip nói rằng Phục hồi lại

Vâng, trước khi nghịch đảo, cảm ơn. Vì điều này thường được thực hiện với SVD trong thực tế, tôi không biết liệu việc ổn định đảo ngược có cần thiết hay không.
bayerj

Tôi đã thêm một hình ảnh khác để hiển thị hiệu ứng.
bayerj

2
CƯỜI MỞ MIỆNG-1/2L

(1) đồng ý. Tôi không có trực giác về điều đó có nghĩa là gì. (2) Kiến thức phân rã của tôi không đầy đủ ở đây, nhưng tôi cho rằng một ma trận đảo ngược cổ điển trên ma trận hiệp phương sai số ít sẽ thất bại, trong khi SVD trên ma trận dữ liệu dẫn đến hiệp phương sai số ít thì không. (3) Cảm ơn, sẽ sửa nó. (4) Từ mã của tôi :) (5) Tôi đưa ra giả thuyết rằng đối với nhiều thuật toán đưa ra các biểu diễn không hoàn chỉnh (ví dụ: GainShape K-Means, Bộ mã hóa tự động, RICA) và / hoặc thực hiện một công việc tương tự như tính độc lập đại số PCA của các tính năng, nhưng Tôi không có kiến ​​thức cứng về điều này.
bayerj
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.