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 ) : = Σi = 1NcTôivTôivTTôi
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 ) ) → 0 là c i → 0 . 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 đẳngcTôi→0AAσmin(A(c))→0ci→0−σlog(σ)σ→0 không hoạt động.ci≥0
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 đó ∘ là sản phẩm Hadamard , với ma trận hệ số
C = { uAA=UΛUT
dΛ=I∘(UTdAU),
dU=UC(dA),
∘C={uTidAujλj−λi,0,i=ji=j
AU=ΛUdΛ
d2Λ= d( Tôi∘ ( UTdMột1Bạn) )= Tôi∘ ( dBạnT2dMột1Bạn+ UTdMột1dBạn2)= 2 tôi∘ ( dBạnT2dMột1Bạn) .
d2ΛdBạn2CvTôi
Loại bỏ các ràng buộc bình đẳng
ΣNi = 1cTôi= 1N- 1
cN= 1 - Σi = 1N- 1cTôi.
N- 1
df= dCT1MT[ Tôi∘ ( VTBạnB UTV) ]
ddf= dCT1MT[ Tôi∘ ( VT[ 2 ngàyBạn2BmộtBạnT+ UBbBạnT] V) ] ,
M= ⎡⎣⎢⎢⎢⎢⎢⎢⎢1- 11- 1⋱Giáo dục1- 1⎤⎦⎥⎥⎥⎥⎥⎥⎥,
Bmột= d i a g ( 1 + nhật kýλ1, 1 + nhật kýλ2, Hoài , 1 + logλN) ,
Bb= d i a g ( d2λ1λ1, ... , 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)
- c~= [ 1 / N, 1 / N, Lọ , 1 / N]
- c = [ c~, 1 - ΣN- 1i = 1cTôi]
- Một = ΣTôicTôivTôivTTôi
- BạnΛMột
- G = MT[ Tôi∘ ( VTBạnB UTV) ]
- HG = ppHHδc~dBạn2BmộtBb
MT[ Tôi∘ ( VT[ 2 ngàyBạn2BmộtBạnT+ UBbBạnT] V) ]
- c~← c~- p
- Đ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.
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