ปัญหาการปรับให้เหมาะสมแบบ จำกัด ใน Entropy เมทริกซ์


10

ฉันมีปัญหาการเพิ่มประสิทธิภาพใน constrainted (แชนนอน) เมทริกซ์เอนโทรปี ) เมทริกซ์Aสามารถเขียนเป็นผลรวมของเมทริกซ์อันดับ 1 ของรูปแบบ[ v i(sum(entr(eig(A))))Aโดยที่ v iเป็นเวกเตอร์ที่ได้รับการทำให้เป็นมาตรฐาน สัมประสิทธิ์ของเมทริกซ์อันดับหนึ่งเป็นค่าที่ไม่รู้จักซึ่งเราปรับให้เหมาะสมและจะต้องมีขนาดใหญ่กว่าศูนย์และรวมได้สูงสุด 1[viviT]vi

ในรูปแบบ CVX คล้ายปัญหาเกิดขึ้นดังนี้: ตัวแปรที่กำหนดc(n)

minimizesum(entr(eig(A)))

0

subject toA=civiviTci=1ci0

มีใครมีความคิดวิธีแก้ปัญหานี้อย่างมีประสิทธิภาพหรือไม่ ฉันรู้แล้วว่าอาจไม่สามารถใช้เป็นปัญหาการเขียนโปรแกรมกึ่งแน่นอน (SDP) ได้

คำตอบ:


8

แก้ไข:เพื่อนร่วมงานแจ้งฉันว่าวิธีการด้านล่างของฉันเป็นตัวอย่างของวิธีการทั่วไปในเอกสารต่อไปนี้เมื่อมีความเชี่ยวชาญในการทำงานของเอนโทรปี

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=1NciviviT
viA

ci0AAσmin(A(c))0ci0σlog(σ)σ0ci0

อนุพันธ์ของ Frechet ของฟังก์ชันเอนโทรปี

ในการตกแต่งภายในของภูมิภาคที่เป็นไปได้ฟังก์ชั่นเอนโทรปีจะแตกต่างกันได้ทุกที่และสองครั้งแตกต่างกันโดยไม่คำนึงถึงค่าลักษณะซ้ำกัน ในการทำวิธีของนิวตันเราจำเป็นต้องคำนวณอนุพันธ์ของเมทริกซ์เอนโทรปีซึ่งขึ้นอยู่กับค่าลักษณะเฉพาะของเมทริกซ์ สิ่งนี้ต้องใช้ความไวในการคำนวณของการสลายตัวค่าเฉพาะของเมทริกซ์ที่เกี่ยวข้องกับการเปลี่ยนแปลงในเมทริกซ์

AA=UΛUT

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

AU=ΛUdΛ

d2Λ=d(I(UTdA1U))=I(dU2TdA1U+UTdA1dU2)=2I(dU2TdA1U).

d2ΛdU2Cvi

กำจัดข้อ จำกัด ความเท่าเทียมกัน

i=1Nci=1N1

cN=1i=1N1ci.

N1

df=dC1TMT[I(VTUBUTV)]
ddf=dC1TMT[I(VT[2dU2BaUT+UBbUT]V)],
M=[111111],

Ba=diag(1+logλ1,1+logλ2,,1+logλN),

Bb=diag(d2λ1λ1,,d2λNλN).

วิธีการของนิวตันหลังจากกำจัดข้อ จำกัด

เนื่องจากข้อ จำกัด ที่ไม่เท่าเทียมกันนั้นไม่ได้ใช้งานเราเพียงแค่เริ่มต้นในชุดที่เป็นไปได้และเรียกใช้ภูมิภาคที่เชื่อถือได้หรือการค้นหาบรรทัดที่ไม่แน่นอนนิวตัน - CG สำหรับการบรรจบกันของสมการกำลังสอง

วิธีการดังต่อไปนี้ (ไม่รวมถึงรายละเอียดการค้นหาความน่าเชื่อถือภูมิภาค / สาย)

  1. c~=[1/N,1/N,,1/N]
  2. c=[c~,1i=1N1ci]
  3. A=iciviviT
  4. UΛA
  5. G=MT[I(VTUBUTV)]
  6. HG=ppHHδc~dU2BaBb
    MT[I(VT[2dU2BaUT+UBbUT]V)]
  7. c~c~p
  8. ไปที่ 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


ขอบคุณมาก! ฉันแก้ไขมันด้วยวิธีง่ายๆโดยใช้การไล่ระดับสีเอง แต่นี่น่าจะน่าเชื่อถือกว่า ความจริงที่ว่า v ต้องมีระดับเต็มในไฟล์ matlab เป็นสิ่งเดียวที่รบกวนจิตใจฉัน
Dries

@NickAlger ลิงก์ที่ให้ไว้ไม่ทำงานฉันขอให้คุณดูได้มั้ย
ผู้สร้าง

@Creator อัพเดทลิงค์ในโพสต์! github.com/NickAlger/various_scripts/blob/master/…
Nick Alger

@NickAlger มีข้อ จำกัด ในเมทริกซ์ที่อัลกอริทึมสามารถทำงานได้หรือไม่? อัลกอริทึมนี้ดีสำหรับเมทริกซ์ที่มีองค์ประกอบที่ซับซ้อนหรือไม่ ในกรณีของฉัน SVD ล้มเหลวหลังจากนั้นสักครู่เนื่องจากเมทริกซ์มีน่าน
ผู้สร้าง

ฉันไม่คิดว่าตัวเลขที่ซับซ้อนควรเป็นปัญหา ข้อ จำกัด อย่างหนึ่งของวิธีนี้ก็คือทางออกที่ดีที่สุดไม่สามารถมีค่าลักษณะเฉพาะซ้ำซึ่งฉันเดาได้ว่าเกิดอะไรขึ้นที่นี่ ในกรณีนี้วิธีการรวมเป็นสิ่งที่ถูกหารด้วยศูนย์ในสมการ C คุณสามารถลองรบกวนอินพุตแบบสุ่มและดูว่าสิ่งนั้นช่วยได้หรือไม่ มีวิธีการแก้ไขปัญหานี้ในกระดาษ Overton ที่อ้างถึงข้างต้น แต่รหัสของฉันไม่ได้เป็นขั้นสูง
Nick Alger
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.