จำลองความน่าจะเป็น 1 จาก 2 ^ N โดยมีบิตสุ่มน้อยกว่า N


31

บอกว่าฉันต้องจำลองการกระจายแบบไม่ต่อเนื่องดังนี้

P(X=k)={12N,if k=1112N,if k=0

วิธีที่ชัดเจนที่สุดคือการวาดบิตสุ่มและตรวจสอบว่าทั้งหมดนั้นเท่ากับ (หรือ ) อย่างไรก็ตามทฤษฎีสารสนเทศกล่าวN01

S=iPilogPi=12Nlog12N(112N)log(112N)=12Nlog2N+(112N)log2N2N10

ดังนั้นจำนวนบิตสุ่มขั้นต่ำที่ต้องการจะลดลงเมื่อNมีขนาดใหญ่ เป็นไปได้อย่างไร?

โปรดสมมติว่าเรากำลังทำงานอยู่บนคอมพิวเตอร์ที่บิตเป็นแหล่งสุ่มของคุณเท่านั้นดังนั้นคุณจึงไม่สามารถที่จะโยนเหรียญเอนเอียง


นี่เกี่ยวข้องกับทฤษฎีการเข้ารหัสและความซับซ้อนของ Kolmogorov อย่างใกล้ชิดหากคุณกำลังมองหาคำหลักที่จะขุดลึกลงไป เทคนิคของการนับซ้ำวิ่งของบิตเดียวกันซึ่ง DW กล่าวถึงด้านล่างขึ้นมามาก - เอกสารประกอบการบรรยายเหล่านี้สัมผัสกับมันเช่นpeople.cs.uchicago.edu/~fortnow/papers/kaikoura.pdf
ไบรอันกอร์ดอน

คำตอบ:


28

ว้าวคำถามที่ดี! ฉันขออธิบายความละเอียด มันจะใช้เวลาสามขั้นตอนที่แตกต่างกัน

สิ่งแรกที่ควรทราบก็คือเอนโทรปีจะเน้นเพิ่มเติมเกี่ยวกับค่าเฉลี่ยของจำนวนบิตที่จำเป็นต่อการวาดไม่ได้จำนวนสูงสุดของบิตที่จำเป็น

ด้วยขั้นตอนการสุ่มตัวอย่างของคุณจำนวนบิตสุ่มสูงสุดที่ต้องการต่อการดึงคือบิต แต่จำนวนบิตเฉลี่ยที่ต้องการคือ 2 บิต (ค่าเฉลี่ยของการแจกแจงเชิงเรขาคณิตด้วย ) - นี่เป็นเพราะมีความน่าจะเป็นที่คุณต้องการเพียง 1 บิต (ถ้าบิตแรกกลายเป็น 1), ความน่าจะเป็นที่คุณต้องการเพียง 2 บิต (ถ้าสองบิตแรกกลายเป็น 01),ความน่าจะเป็นที่คุณต้องการเพียง 3 บิต (ถ้าสามบิตแรกกลายเป็น 001) และต่อไปNp=1/21/21/41/8

สิ่งที่สองที่ควรทราบคือเอนโทรปีไม่ได้จับจำนวนบิตเฉลี่ยที่จำเป็นสำหรับการวาดครั้งเดียว แต่เอนโทรปีจะจับจำนวนบิตที่ตัดจำหน่ายซึ่งจำเป็นในการสุ่มตัวอย่าง iid ซึ่งดึงมาจากการแจกแจงนี้ สมมติว่าเราต้องการบิตเพื่อสุ่มตัวอย่าง draws; แล้วเอนโทรปีเป็นข้อ จำกัด ของเป็น\mf(m)mf(m)/mm

สิ่งที่สามที่ควรทราบคือด้วยการแจกแจงนี้คุณสามารถสุ่มตัวอย่าง iid เสมอโดยมีบิตน้อยกว่าที่ต้องการเพื่อสุ่มตัวอย่างหนึ่งครั้ง สมมติว่าคุณตัดสินใจอย่างไร้เดียงสาเพื่อดึงตัวอย่างหนึ่ง (ใช้เวลาสุ่ม 2 บิตโดยเฉลี่ย) จากนั้นวาดอีกตัวอย่างหนึ่ง (โดยใช้ค่าเฉลี่ยสุ่มอีก 2 บิต) และต่อไปเรื่อย ๆ จนกว่าคุณจะทำซ้ำครั้งนี้ นั่นจะต้องใช้บิตสุ่มเฉลี่ยประมาณ .mm2m

แต่มันกลับกลายเป็นว่ามีวิธีการสุ่มตัวอย่างจากโดยใช้บิตน้อยกว่ามันยากที่จะเชื่อ แต่มันเป็นเรื่องจริง!m2m

ผมขอให้คุณปรีชา สมมติว่าคุณจดผลลัพธ์ของการสุ่มตัวอย่างโดยที่มีขนาดใหญ่มาก จากนั้นสามารถระบุผลลัพธ์เป็นสตริง -bit นี้สตริงบิตส่วนใหญ่จะเป็น 0 ด้วยไม่กี่ 1 ในนั้น: โดยเฉพาะอย่างยิ่งโดยเฉลี่ยจะมีเกี่ยวกับ 1 (อาจจะมากกว่าหรือน้อยกว่านั้น แต่ถ้ามีขนาดใหญ่พอที่ปกติ หมายเลขจะใกล้เคียงกับที่) ความยาวของช่องว่างระหว่าง 1 นั้นเป็นแบบสุ่ม แต่โดยทั่วไปแล้วจะอยู่ที่ไหนสักแห่งในละแวกใกล้เคียง (อาจเป็นครึ่งหนึ่งหรือสองครั้งหรือมากกว่านั้นอย่างง่ายดาย แน่นอนแทนที่จะเขียนลงไปทั้งmmmmm/2Nm2NmN m / 2 N m N / 2 N m m- บิตสตริงเราสามารถเขียนลงได้อย่างกระชับมากขึ้นโดยการเขียนรายการความยาวของช่องว่าง - ที่นำข้อมูลเดียวกันทั้งหมดมาใช้ในรูปแบบการบีบอัดที่มากกว่า รวบรัดมากแค่ไหน? ปกติแล้วเราจะต้องการบิตเพื่อแสดงความยาวของแต่ละช่องว่าง และจะมีช่องว่างประมาณ ; ดังนั้นเราจะต้องรวมทั้งหมดประมาณบิต (อาจเพิ่มขึ้นอีกนิดอาจจะน้อยกว่านี้เล็กน้อย แต่ถ้ามีขนาดใหญ่พอมันมักจะใกล้เคียง) นั่นสั้นกว่าสตริงบิตมากNm/2NmN/2Nmm

และถ้ามีวิธีที่จะเขียนสตริงนี้รัดกุมบางทีมันอาจจะไม่น่าแปลกใจถ้านั่นหมายความว่ามีวิธีในการสร้างสตริงที่มีจำนวนบิตสุ่มที่เปรียบเทียบได้กับความยาวของสตริง โดยเฉพาะอย่างยิ่งคุณสุ่มสร้างความยาวของแต่ละช่องว่าง นี่คือการสุ่มตัวอย่างจากการแจกแจงเชิงเรขาคณิตด้วยและสามารถทำได้ด้วยบิตสุ่มโดยเฉลี่ย (ไม่ใช่ ) คุณจะต้องประมาณ iid ดึงออกมาจากการกระจายเชิงเรขาคณิตนี้ดังนั้นคุณจะต้องใช้บิตสุ่มโดยรวม(อาจเป็นปัจจัยคงที่ขนาดเล็กที่ใหญ่กว่า แต่ไม่ใหญ่เกินไป) และโปรดสังเกตว่านี่คือบิตที่เล็กกว่าp=1/2NN2Nm/2NNm/2N2m

ดังนั้นเราสามารถสุ่มตัวอย่าง iid ดึงออกมาจากการกระจายของคุณโดยใช้เพียงแค่บิตสุ่ม (ประมาณ) จำได้ว่าเป็นเอนโทรปี m ดังนั้นวิธีการนี้ที่คุณควรคาดหวังว่าเอนโทรปีที่จะ (ประมาณ) N นั่นเป็นเพียงเล็กน้อยเพราะการคำนวณข้างต้นเป็นแบบร่างและหยาบ - แต่หวังว่ามันจะทำให้คุณมีสัญชาตญาณว่าทำไมเอนโทรปีคืออะไรและทำไมทุกอย่างสอดคล้องและสมเหตุสมผลmf(m)Nm/2Nlimmf(m)/mN/2N


ว้าวคำตอบที่ดี! แต่คุณช่วยอธิบายได้ไหมว่าทำไมการสุ่มตัวอย่างจากการแจกแจงเชิงเรขาคณิตด้วย ใช้เวลาบิตโดยเฉลี่ย ฉันรู้ว่าตัวแปรสุ่มดังกล่าวจะมีค่าเฉลี่ยดังนั้นมันจึงใช้ค่าเฉลี่ยบิตในการจัดเก็บ แต่ฉันคิดว่านี่ไม่ได้หมายความว่าคุณสามารถสร้างได้ด้วย bits N2NNNp=12NN2NNN
nalzok

@nalzok คำถามที่ยุติธรรม! คุณอาจถามว่าเป็นคำถามแยกต่างหากได้ไหม ฉันสามารถดูวิธีการทำ แต่มันยุ่งหน่อยที่จะพิมพ์ตอนนี้ หากคุณถามใครซักคนอาจจะได้รับคำตอบเร็วกว่าที่ฉันทำได้ วิธีการที่ฉันคิดคล้ายกับการเข้ารหัสเลขคณิต กำหนด (โดยที่คือเรขาคณิต rv) จากนั้นสร้างตัวเลขสุ่มในช่วงเวลาและหาเช่นนั้น . ถ้าคุณเขียนลงบิตไบนารี Expensionหนึ่งในเวลาปกติหลังจากเขียนลงบิต ,จะได้รับการพิจารณาอย่างเต็มที่X r [ 0 , 1 ) i q ir < q i + 1 r N + O ( 1 ) r iqi=Pr[Xi]Xr[0,1)iqir<qi+1rN+O(1)ri
DW

1
ดังนั้นโดยพื้นฐานแล้วคุณใช้วิธีผกผัน CDF ในการแปลงตัวแปรสุ่มที่กระจายอย่างสม่ำเสมอเป็นการแจกแจงโดยพลการรวมกับแนวคิดที่คล้ายกับการค้นหาแบบไบนารี่? ฉันจะต้องวิเคราะห์ฟังก์ชันควอนไทล์ของการกระจายเชิงเรขาคณิตเพื่อให้แน่ใจ แต่คำใบ้นี้เพียงพอ ขอบคุณ!
nalzok

1
@nalzok อ่าใช่ว่าเป็นวิธีที่ดีกว่าที่จะคิดเกี่ยวกับมัน - น่ารัก ขอบคุณสำหรับคำแนะนำว่า ใช่นั่นคือสิ่งที่ฉันมีอยู่ในใจ
DW

2

คุณสามารถคิดย้อนหลังนี้ได้: พิจารณาปัญหาของการเข้ารหัสไบนารี่แทนการสร้าง สมมติว่าคุณมีแหล่งที่มาที่สัญลักษณ์ส่งเสียงกับ ,N} ตัวอย่างเช่นถ้าเราได้รับ0.54356 ดังนั้น (แชนนอนบอกเรา) มีการเข้ารหัสเลขฐานสองถอดรหัสที่ไม่ซ้ำกันโดยที่ (บิตข้อมูล) เช่นที่เราต้องการโดยเฉลี่ยประมาณบิตข้อมูลสำหรับสัญลักษณ์ดั้งเดิมแต่ละสัญลักษณ์XX{A,B}p(A)=2Np(B)=12NN=3H(X)0.54356XYY{0,1}0.54356X

(ในกรณีที่คุณสงสัยว่าการเข้ารหัสดังกล่าวสามารถเกิดขึ้นได้อย่างไรเนื่องจากเรามีสัญลักษณ์แหล่งที่มาสองอันเท่านั้นและดูเหมือนว่าเราไม่สามารถทำได้ดีกว่าการเข้ารหัสเล็กน้อย ,โดยมีหนึ่งบิตต่อหนึ่งสัญลักษณ์ คุณต้องเข้าใจว่าในการประมาณ Shannon bound เราจำเป็นต้องใช้ "ส่วนขยาย" ของแหล่งข้อมูลนั่นคือเพื่อเรียงลำดับรหัสของอินพุตทั้งหมดดูการเข้ารหัสทางเลขคณิตโดยเฉพาะ)A0B1

เมื่อด้านบนมีความชัดเจนหากเราถือว่าเรามีการทำแผนที่กลับด้านและสังเกตเห็นว่าในขีด จำกัด แชนนอนจะต้องมีเอนโทรปีสูงสุด (1 บิตของข้อมูลต่อบิตของข้อมูล) เช่น ,มีสถิติของเหรียญเป็นธรรมแล้วเรามีโครงการรุ่นที่มือ: วาดบิตแบบสุ่ม (ที่นี่มีความสัมพันธ์ใด ๆ กับ ) เหรียญยุติธรรมตีความว่ามันเป็นเอาท์พุทของการเข้ารหัส และถอดรหัสจากมัน ด้วยวิธีนี้จะมีการกระจายความน่าจะเป็นที่ต้องการและเราจำเป็น (เฉลี่ย)เหรียญเพื่อสร้างมูลค่าของแต่ละXXnYnYnYnnnNYnXnXnH(X)<1X

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.