แก้ไข:เพื่อนร่วมงานแจ้งฉันว่าวิธีการด้านล่างของฉันเป็นตัวอย่างของวิธีการทั่วไปในเอกสารต่อไปนี้เมื่อมีความเชี่ยวชาญในการทำงานของเอนโทรปี
Overton, Michael L. และ Robert S. Womersley "อนุพันธ์อันดับสองสำหรับปรับค่าลักษณะเฉพาะของเมทริกซ์สมมาตร" วารสารสยามเกี่ยวกับการวิเคราะห์เมทริกซ์และการประยุกต์ใช้ 16.3 (1995): 697-718 http://ftp.cs.nyu.edu/cs/faculty/overton/papers/pdffiles/eighess.pdf
ภาพรวม
ในโพสต์นี้ฉันแสดงให้เห็นว่าปัญหาการหาค่าเหมาะที่สุดถูกวางไว้อย่างดีและข้อ จำกัด ความไม่เท่าเทียมนั้นไม่ได้ใช้งานในการแก้ปัญหาจากนั้นคำนวณอนุพันธ์ Frechet ที่หนึ่งและสองของฟังก์ชันเอนโทรปีจากนั้นเสนอวิธีการของ ในที่สุดรหัส Matlab และผลลัพธ์ตัวเลขจะถูกนำเสนอ
ปัญหาด้านการปรับให้เหมาะสม
ครั้งแรกที่ผลรวมของการฝึกอบรมที่ชัดเจนในเชิงบวกเป็นบวกแน่นอนดังนั้นสำหรับผลรวมของการจัดอันดับที่ 1 การฝึกอบรม
( C ) : = N Σฉัน= 1คฉันv ฉันv T ฉัน
เป็นบวกแน่นอน หากชุดของv iเป็นอันดับเต็มรูปแบบแล้วค่าลักษณะเฉพาะของAเป็นค่าบวกดังนั้นลอการิทึมของค่าลักษณะเฉพาะสามารถนำมาใช้ได้ ดังนั้นฟังก์ชั่นวัตถุประสงค์จะถูกกำหนดอย่างดีในการตกแต่งภายในของชุดที่เป็นไปได้ci>0
A(c):=∑i=1NcivivTi
viA
ci→0AAσmin(A(c))→0ci→0−σlog(σ)σ→0ci≥0
อนุพันธ์ของ Frechet ของฟังก์ชันเอนโทรปี
ในการตกแต่งภายในของภูมิภาคที่เป็นไปได้ฟังก์ชั่นเอนโทรปีจะแตกต่างกันได้ทุกที่และสองครั้งแตกต่างกันโดยไม่คำนึงถึงค่าลักษณะซ้ำกัน ในการทำวิธีของนิวตันเราจำเป็นต้องคำนวณอนุพันธ์ของเมทริกซ์เอนโทรปีซึ่งขึ้นอยู่กับค่าลักษณะเฉพาะของเมทริกซ์ สิ่งนี้ต้องใช้ความไวในการคำนวณของการสลายตัวค่าเฉพาะของเมทริกซ์ที่เกี่ยวข้องกับการเปลี่ยนแปลงในเมทริกซ์
AA=UΛUT
dΛ=I∘(UTdAU),
dU=UC(dA),
∘C={uTidAujλj−λi,0,i=ji=j
AU=ΛUdΛ
d2Λ=d(I∘(UTdA1U))=I∘(dUT2dA1U+UTdA1dU2)=2I∘(dUT2dA1U).
d2ΛdU2Cvi
กำจัดข้อ จำกัด ความเท่าเทียมกัน
∑Ni=1ci=1N−1
cN=1−∑i=1N−1ci.
N−1
df=dCT1MT[I∘(VTUBUTV)]
ddf=dCT1MT[I∘(VT[2dU2BaUT+UBbUT]V)],
M=⎡⎣⎢⎢⎢⎢⎢⎢⎢1−11−1⋱…1−1⎤⎦⎥⎥⎥⎥⎥⎥⎥,
Ba=diag(1+logλ1,1+logλ2,…,1+logλN),
Bb=diag(d2λ1λ1,…,d2λNλN).
วิธีการของนิวตันหลังจากกำจัดข้อ จำกัด
เนื่องจากข้อ จำกัด ที่ไม่เท่าเทียมกันนั้นไม่ได้ใช้งานเราเพียงแค่เริ่มต้นในชุดที่เป็นไปได้และเรียกใช้ภูมิภาคที่เชื่อถือได้หรือการค้นหาบรรทัดที่ไม่แน่นอนนิวตัน - CG สำหรับการบรรจบกันของสมการกำลังสอง
วิธีการดังต่อไปนี้ (ไม่รวมถึงรายละเอียดการค้นหาความน่าเชื่อถือภูมิภาค / สาย)
- c~=[1/N,1/N,…,1/N]
- c=[c~,1−∑N−1i=1ci]
- A=∑icivivTi
- UΛA
- G=MT[I∘(VTUBUTV)]
- HG=ppHHδc~dU2BaBb
MT[I∘(VT[2dU2BaUT+UBbUT]V)]
- c~←c~−p
- ไปที่ 2
ผล
viN=100vi
>> N = 100;
>> V = randn (N, N);
>> สำหรับ k = 1: NV (:, k) = V (:, k) / norm (V (:, k)); ปลาย
>> maxEntropyMatrix (V);
นิวตันซ้ำ = 1, บรรทัดฐาน (grad f) = 0.67748
นิวตันซ้ำ = 2, บรรทัดฐาน (grad f) = 0.03644
นิวตันซ้ำ = 3, บรรทัดฐาน (grad f) = 0.0012167
นิวตันซ้ำ = 4, บรรทัดฐาน (grad f) = 1.3239e-06
นิวตันซ้ำ = 5, บรรทัดฐาน (grad f) = 7.7114e-13
หากต้องการดูว่าจุดที่ดีที่สุดที่คำนวณได้จริงแล้วสูงสุดนี่คือกราฟของการเปลี่ยนแปลงของเอนโทรปีเมื่อจุดที่เหมาะสมถูกรบกวนแบบสุ่ม การก่อกวนทั้งหมดทำให้เอนโทรปีลดลง
รหัส Matlab
ฟังก์ชั่นทั้งหมดใน 1 เพื่อลดการเอนโทรปี (เพิ่มลงในโพสต์นี้):
https://github.com/NickAlger/various_scripts/blob/master/maxEntropyMatrix.m