Vấn đề tối ưu hóa bị ràng buộc trong Entropy ma trận


10

Tôi có một vấn đề tối ưu hóa bị ràng buộc trong entropy ma trận (Shannon) . Ma trận có thể được viết dưới dạng tổng của ma trận hạng 1 có dạng trong đó là một vectơ chuẩn hóa đã cho. Các hệ số của ma trận hạng một là những ẩn số mà chúng ta tối ưu hóa và chúng phải lớn hơn 0 và tổng bằng 1.(Sbạnm(entr(eTôig(Một))))Một[vTôivTôiT]vTôi

Trong một cú pháp giống CVX, vấn đề diễn ra như sau: biến đã choc(n)

giảm thiểuSbạnm(entr(eTôig(Một)))

tùy thuộc vàoMột= =ΣcTôivTôivTôiTΣcTôi= =1cTôi0
.

Có ai có ý tưởng làm thế nào để giải quyết điều này một cách hiệu quả? Tôi đã biết có lẽ nó không thể được coi là một vấn đề lập trình bán xác định (SDP).

Câu trả lời:


8

Chỉnh sửa: Một đồng nghiệp đã thông báo cho tôi rằng phương pháp của tôi dưới đây là một ví dụ của phương pháp chung trong bài viết sau, khi chuyên về chức năng entropy,

Overton, Michael L. và Robert S. Womersley. "Các dẫn xuất thứ hai để tối ưu hóa giá trị riêng của ma trận đối xứng." Tạp chí SIAM về phân tích và ứng dụng ma trận 16.3 (1995): 697-718. http://ftp.cs.nyu.edu/cs/facemony/overton/ con / pdffiles / eeessess.pdf

Tổng quat

Trong bài viết này tôi chỉ ra rằng vấn đề tối ưu hóa được đặt ra và các ràng buộc bất bình đẳng không hoạt động tại giải pháp, sau đó tính toán các đạo hàm Frechet thứ nhất và thứ hai của hàm entropy, sau đó đề xuất phương pháp Newton về vấn đề hạn chế đẳng thức. Cuối cùng, mã Matlab và kết quả số được trình bày.

Sự tích cực của vấn đề tối ưu hóa

Đầu tiên, tổng các ma trận xác định dương là xác định dương, vì vậy với , tổng các ma trận hạng 1 A ( c ) : = N i = 1 c i v i v T i là xác định dương. Nếu tập hợp v i là thứ hạng đầy đủ, thì giá trị riêng của A là dương, do đó logarit của giá trị riêng có thể được lấy. Do đó, hàm mục tiêu được xác định rõ về phần bên trong của tập hợp khả thi.cTôi>0

Một(c): =ΣTôi= =1NcTôivTôivTôiT
vTôiMột

Thứ hai, vì bất kỳ , A mất thứ hạng nên giá trị riêng nhỏ nhất của A về 0. Tức là, σ m i n ( A ( c ) ) 0c i0 . Kể từ khi dẫn xuất của - σ log ( σ ) thổi lên như σ 0 , người ta không thể có một chuỗi các liền ngày càng tốt hơn các điểm tiếp cận ranh giới của tập khả thi. Do đó, vấn đề được xác định rõ và hơn nữa là các ràng buộc bất bình đẳngci0AAσmin(A(c))0ci0σlog(σ)σ0 không hoạt động.ci0

Dẫn xuất Frechet của hàm entropy

Trong phần bên trong của khu vực khả thi, hàm entropy có thể phân biệt Frechet ở mọi nơi và hai lần Frechet phân biệt ở bất cứ nơi nào giá trị riêng không được lặp lại. Để thực hiện phương pháp của Newton, chúng ta cần tính toán các đạo hàm của entropy ma trận, phụ thuộc vào giá trị riêng của ma trận. Điều này đòi hỏi sự nhạy cảm tính toán của sự phân rã giá trị riêng của một ma trận đối với các thay đổi trong ma trận.

Nhớ lại rằng đối với một ma trận với eigenvalue phân hủy Một = U Λ U T , đạo hàm của eigenvalue ma trận đối với những thay đổi trong ma trận ban đầu với là, d Λ = Tôi ( U T d Một U ) , và đạo hàm của Ma trận eigenvector là, d U = U C ( d A ) , trong đó sản phẩm Hadamard , với ma trận hệ số C = { uAA=UΛUT

dΛ=I(UTdAU),
dU=UC(dA),
C={uiTdAujλjλi,i=j0,i=j

AU=ΛUdΛ

d2Λ= =d(Tôi(BạnTdMột1Bạn))= =Tôi(dBạn2TdMột1Bạn+BạnTdMột1dBạn2)= =2Tôi(dBạn2TdMột1Bạn).

d2ΛdBạn2CvTôi

Loại bỏ các ràng buộc bình đẳng

ΣTôi= =1NcTôi= =1N-1

cN= =1-ΣTôi= =1N-1cTôi.

N-1

df= =dC1TMT[Tôi(VTBạnBBạnTV)]
ddf= =dC1TMT[Tôi(VT[2dBạn2BmộtBạnT+BạnBbBạnT]V)],
M= =[111-1-1Giáo dục-1],

Bmột= =dTôimộtg(1+đăng nhậpλ1,1+đăng nhậpλ2,Giáo dục,1+đăng nhậpλN),

Bb= =dTôimộtg(d2λ1λ1,Giáo dục,d2λNλN).

Phương pháp của Newton sau khi loại bỏ các ràng buộc

Do các ràng buộc bất bình đẳng là không hoạt động, chúng tôi chỉ cần bắt đầu trong tập hợp khả thi và chạy vùng tin cậy hoặc tìm kiếm dòng không chính xác newton-CG để hội tụ bậc hai đến cực đại bên trong.

Phương pháp như sau, (không bao gồm chi tiết tìm kiếm vùng tin cậy / dòng)

  1. c~= =[1/N,1/N,Giáo dục,1/N]
  2. c= =[c~,1-ΣTôi= =1N-1cTôi]
  3. Một= =ΣTôicTôivTôivTôiT
  4. BạnΛMột
  5. G= =MT[Tôi(VTBạnBBạnTV)]
  6. HG= =ppHHδc~dBạn2BmộtBb
    MT[Tôi(VT[2dBạn2BmộtBạnT+BạnBbBạnT]V)]
  7. c~c~-p
  8. Đi 2.

Các kết quả

vTôiN= =100vTôi

>> N = 100;
>> V = randn (N, N);
>> với k = 1: NV (:, k) = V (:, k) / Norm (V (:, k)); kết thúc
>> maxEntropyMatrix (V);
Lặp lại Newton = 1, định mức (grad f) = 0.67748
Lặp lại Newton = 2, định mức (grad f) = 0,03644
Lặp lại Newton = 3, định mức (grad f) = 0,0012167
Lặp lại Newton = 4, định mức (grad f) = 1.3239e-06
Lặp lại Newton = 5, định mức (grad f) = 7.7114e-13

Để thấy rằng điểm tối ưu được tính toán trên thực tế là mức tối đa, đây là biểu đồ về cách entropy thay đổi khi điểm tối ưu bị nhiễu ngẫu nhiên. Tất cả các nhiễu loạn làm cho entropy giảm. nhập mô tả hình ảnh ở đây

Mã Matlab

Hàm all in 1 để giảm thiểu entropy (mới được thêm vào bài đăng này): https://github.com/NickAlger/various_scripts/blob/master/maxEntropyMatrix.m


Cảm ơn rât nhiều! Tôi đã giải quyết nó một cách đơn giản với độ dốc xác nhận bản thân, nhưng điều này có lẽ đáng tin cậy hơn. Việc v phải có thứ hạng đầy đủ trong tệp matlab là điều duy nhất làm phiền tôi.
Dries

@NickAlger Liên kết được cung cấp không hoạt động, tôi có thể yêu cầu bạn xem không?
Người tạo

@Creator cập nhật liên kết trong bài! github.com/NickAlger/various_scripts/blob/master/ từ
Nick Alger

@NickAlger Có ràng buộc về ma trận mà thuật toán có thể hoạt động không? Là thuật toán này tốt cho ma trận với các yếu tố phức tạp? Trong trường hợp của tôi, SVD thất bại sau một thời gian vì ma trận có Nan.
Người tạo

Tôi không nghĩ số phức nên là một vấn đề. Một hạn chế của phương pháp là giải pháp tối ưu không thể có các giá trị riêng lặp đi lặp lại, mà tôi đoán là những gì đang xảy ra ở đây. Trong trường hợp này, phương thức hội tụ đến một cái gì đó được chia cho số 0 trong phương trình C. Bạn có thể thử ngẫu nhiên gây nhiễu các đầu vào một chút và xem điều đó có giúp ích gì không. Có một cách để khắc phục điều này trong bài báo Overton được tham chiếu ở trên, nhưng mã của tôi không phải là nâng cao.
Nick Alger
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.