Tối ưu hóa với các ràng buộc trực giao


8

Tôi đang làm việc về tầm nhìn máy tính và phải tối ưu hóa một chức năng khách quan liên quan đến ma trận X và ma trận X là một ma trận trực giao.

maximize  f(X)

s.t  XTX=I
Ở đâu Ilà ma trận đơn vị. Tôi đang đọc một số bài báo và họ đã nói những thuật ngữ phức tạp như tối ưu hóa trên Manfiold của Grassman, Stiefel. Về cơ bản, độ dốc trên các đa tạp đó sẽ khác với độ dốc thông thường trên các không gian Euclide.

Bạn có thể đề xuất bất kỳ loại giấy dễ đọc nào để tôi có thể thực hiện phương pháp dựa trên độ dốc trên các đa tạp đó không. Nếu có bất kỳ ví dụ Matlab đơn giản nào minh họa các tài liệu sẽ hữu ích

Cảm ơn


1
Bạn có thể vui lòng cung cấp thêm thông tin về vấn đề của bạn trong tay? Khi nó đứng nó là rất rộng để trả lời. Ví dụ, bạn cũng có thể tạo ra một ma trận vuông ngẫu nhiênY, lấy SVD của nó sao cho Y=USVT Và sử dụng U như một giải pháp ứng cử cho X.
usεr11852

1
Những gì là f(.)?
user603

4
Bạn có thực sự cần điều trị chung cho đa tạp Stiefel hay không, nếu có thông tin về ràng buộc (đơn giản hơn nhiều) XX=I? Trong trường hợp sau, vấn đề giảm xuống khi di chuyển dọc theo vòng tròn. Ví dụ đơn giản nhất về điều này là ở hai chiều, trong đó ràng buộc xác định vòng tròn đơn vị: độ dốc tại một điểm được định hướng dọc theo đường tiếp tuyến tại điểm đó, nhưng để đi theo độ dốc, bạn phải di chuyển dọc theo vòng tròn thay vì đường tiếp tuyến . Ý tưởng này khái quát. (cc @ usεr11852)
whuber

@whuber: +1 và cảm ơn bạn vì cc :: ing tôi. Tôi rõ ràng đồng ý. Với ví dụ của tôi, tôi chỉ muốn chỉ ra rằng ngay cả một tìm kiếm ngẫu nhiên đơn giản cũng đủ để đưa ra các giải pháp ứng viên hợp lệ.
usεr11852

4
@GeoMatt Điều này có thể sơ đẳng hơn bạn nghĩ. Sự khác biệt là đây: trong mặt phẳng,f là một hàm được định nghĩa trên vòng tròn đơn vị x2+y2=1. Bạn có thể tối ưu hóa nó bằng cách mở rộng nó thành một chức năng của tất cả(x,y) trong một vùng lân cận của vòng tròn đơn vị và sử dụng các số nhân Lagrange để thực thi các ràng buộc x2+y2=1. Hoặc, bạn có thể tham số hóa vòng tròn đơn vị là(x,y)=(cos(t),sin(t)), qua đó làm f một hàm tuần hoàn của biến tvà tối ưu hóa nó mà không bị ràng buộc. Chính xác phương pháp tương tự làm việc với ma trận trực giao (và đa tạp Grassmann).
whuber

Câu trả lời:


7

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=GXΦ
nơi gradient danh nghĩa
G=fX
đượ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=XTGGf=(IXXT)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 quayQTQ=IX=X0Q, chúng ta có XXT=X0X0T.

Hình thức thứ hai là

ΦS=GTXSf=GXGTX
mà tương ứng với "Stiefel Manifold", và nhạy cảm với phép quay.

Một ví dụ đơn giản là xấp xỉ ma trận đã cho ARn×p với pn 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]=12XAF2=12ij(XijAij)2G=XA
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=(XXTI)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=XATXA=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 .)


2
Tôi không nghĩ X0=Ilà một điểm khởi đầu tốt vì khi đó đạo hàm là 0.
user103828
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.