Tôi thấy bài báo sau đây là hữu ích:
Edelman, A., Arias, TA, & Smith, ST (1998).
Hình dạng của các thuật toán với các ràng buộc trực giao . Tạp chí SIAM về Phân tích và Ứng dụng Ma trận, 20 (2), 303-353.
Bài viết này có nhiều thông tin hơn bạn có thể cần, về mặt hình học vi phân và phương pháp tối ưu hóa bậc cao.
Tuy nhiên, thông tin để trả lời câu hỏi của bạn thực sự khá đơn giản và trên thực tế chủ yếu chứa trong các phương trình 2.53 và 2.70, cả hai đều có dạng
∇f=G−XΦ
nơi gradient danh nghĩa
G=∂f∂X
được sửa thành gradient bị ràng buộc
∇f bằng cách trừ đi hình chiếu của nó
Φ vào giải pháp hiện tại
X. Đây là giá trị bình thường của đa tạp, tương tự như
chuyển động tròn và đảm bảo độ dốc được điều chỉnh tiếp tuyến với đa tạp.
Lưu ý: Những công thức này giả sử bạn đã có trên đa tạp, tức làXTX=I. Vì vậy, trong thực tế, bạn sẽ cần đảm bảo điều kiện ban đầu của mình là phù hợp (ví dụ:X0=I, hình chữ nhật có thể). Thỉnh thoảng, bạn cũng có thể cần sửa lỗi tích lũy và / hoặc lỗi cắt ngắn tích lũy (ví dụ: thông qua SVD, xem ví dụ "ZCA" bên dưới).
Trong trường hợp không ràng buộc, Φ=0, trong khi trong trường hợp bị ràng buộc Φ có hai hình thức:
ΦG=XTG⟹∇Gf=(I−XXT)G
tương ứng với "đa tạp Grassmann". Sự khác biệt ở đây là
∇Gkhông nhạy cảm với các
phép quay , vì đối với một vòng quay
QTQ=I và
X=X0Q, chúng ta có
XXT=X0XT0.
Hình thức thứ hai là
ΦS=GTX⟹∇Sf=G−XGTX
mà tương ứng với "Stiefel Manifold", và
là nhạy cảm với phép quay.
Một ví dụ đơn giản là xấp xỉ ma trận đã cho A∈Rn×p với p≤n bởi một ma trận trực giao X, giảm thiểu các lỗi bình phương nhỏ nhất. Trong trường hợp này, chúng tôi có
f[X]=12∥X−A∥2F=12∑ij(Xij−Aij)2⟹G=X−A
Các
không bị giới hạn trường hợp có giải pháp , bởi vì chúng ta không quan tâm đến việc đảm bảo là trực giao.
∇f=GX=AX
Đối với trường hợp Grassmann, chúng ta có
Điều này chỉ có thể có một giải pháp là vuông chứ không phải "gầy" , bởi vì nếu thì sẽ có một khoảng trống .
∇Gf=(XXT−I)A=0
Ap<nX
Đối với trường hợp Stiefel, chúng ta có
có thể được giải quyết ngay cả khi .
∇Sf=XATX−A=0
p<n
Hai trường hợp này, Grassmann vs Stiefel, về cơ bản tương ứng với sự khác biệt giữa " PCA so với ZCA làm trắng ". Về mặt SVD , nếu ma trận đầu vào là , thì các giải pháp là và . Giải pháp PCAA=USVTXG=UXS=UVTXG chỉ áp dụng cho đầu vào vuông, tức là Aphải là " ma trận hiệp phương sai ". Tuy nhiên, giải pháp ZCAXS có thể được sử dụng khi Alà một " ma trận dữ liệu ". (Điều này được gọi đúng hơn là vấn đề Procrustes trực giao .)