এন র্যান্ডম বিটের চেয়ে কম 1 এর 2 ^ N এর সম্ভাবনা সিমুলেট করা


31

বলুন যে আমাকে নিম্নলিখিত বিচ্ছিন্ন বিতরণ অনুকরণ করতে হবে:

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

সর্বাধিক সুস্পষ্ট উপায় হ'ল N এলোমেলো বিটগুলি আঁকতে এবং সেগুলির সবগুলি 0 (বা 1 ) এর সমান কিনা তা পরীক্ষা করা । তবে তথ্য তত্ত্বটি বলেছে

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

সুতরাং র্যান্ডম বিট ন্যূনতম নম্বর আবশ্যক আসলে কমে যায় যেমন N বৃহৎ যায়। এটা কিভাবে সম্ভব?

অনুমান করুন যে আমরা এমন একটি কম্পিউটারে চলছি যেখানে বিটগুলি আপনার এলোমেলোতার একমাত্র উত্স, তাই আপনি কেবল পক্ষপাতদুষ্ট মুদ্রা টস করতে পারবেন না।


কোডিং তত্ত্ব এবং কোলমোগোরভ জটিলতার সাথে এটি নিবিড়ভাবে সম্পর্কিত, যদি আপনি গভীর অনুসন্ধানের জন্য কীওয়ার্ডগুলি সন্ধান করেন। DW নীচে উল্লিখিত একই বিটের পুনরাবৃত্তি রান গণনা করার কৌশলটি অনেকগুলি সামনে আসে - এই লেকচার নোটগুলি এতে স্পর্শ করে উদাহরণস্বরূপ people.cs.uchicago.edu/~fortnow/papers/kaikoura.pdf
ব্রায়ান গর্ডন

উত্তর:


28

বাহ, দুর্দান্ত প্রশ্ন! রেজোলিউশনটি ব্যাখ্যা করার চেষ্টা করি। এটি তিনটি স্বতন্ত্র পদক্ষেপ গ্রহণ করবে।

প্রথমে লক্ষ্য করার বিষয়টি হল যে এনট্রপিটি প্রতি ড্রয়ের জন্য প্রয়োজনীয় বিটগুলির গড় সংখ্যার উপর আরও বেশি কেন্দ্রীভূত হয় , সর্বাধিক বিটের প্রয়োজনীয় সংখ্যা নয়।

আপনার স্যাম্পলিং পদ্ধতি সঙ্গে, ড্র প্রতি প্রয়োজনীয় র্যান্ডম বিট সর্বোচ্চ সংখ্যা হল N বিট, কিন্তু প্রয়োজন বিট গড় সংখ্যা 2 বিট (সঙ্গে একটি জ্যামিতিক বিতরণের গড় p=1/2 ) - এর কারণ আছে একটি 1/2 সম্ভাব্যতা আপনি শুধুমাত্র 1 বিট প্রয়োজন (প্রথম বিট সক্রিয় আউট যদি 1 হতে), একটি 1/4 সম্ভাব্যতা আপনি শুধুমাত্র 2 বিট প্রয়োজন (যদি প্রথম দুই বিট শয্যাত্যাগ 01 হতে), একটি 1/8 সম্ভাবনা যে আপনার কেবলমাত্র 3 টি বিট প্রয়োজন (যদি প্রথম তিনটি বিটগুলি 001 হয়ে যায়), ইত্যাদি।

দ্বিতীয় বিষয়টি লক্ষণীয় হ'ল এনট্রপি সত্যই কোনও একক ড্রয়ের জন্য প্রয়োজনীয় বিটগুলির গড় সংখ্যা ক্যাপচার করে না। পরিবর্তে, এনট্রপি যেমনটি amortized নমুনা প্রয়োজন বিট সংখ্যা m IID এই ডিস্ট্রিবিউশন থেকে স্বপক্ষে। ধরুন এম ড্র করার নমুনার জন্য আমাদের f(m) বিট প্রয়োজন ; তারপর এনট্রপি মাত্রা হল ( মি ) / মি যেমন মি mf(m)/mm

তৃতীয় বিষয়টি লক্ষণীয় হ'ল, এই বিতরণ সহ, আপনি বার বার একটি ড্র নমুনার প্রয়োজনের চেয়ে কম বিট দিয়ে m আইড ড্র করতে পারেন sample ধরুন আপনি নির্লজ্জভাবে একটি নমুনা আঁকানোর সিদ্ধান্ত নিয়েছেন (গড় হিসাবে 2 টি এলোমেলো বিট লাগে), তারপরে অন্য একটি নমুনা আঁকুন (গড়ে আরও 2 টি এলোমেলো বিট ব্যবহার করে), এবং আরও কতক্ষণ আপনি এই m বারটি পুনরাবৃত্তি না করেছেন? এর জন্য গড়ে প্রায় 2m এলোমেলো বিট লাগবে ।

তবে দেখা যাচ্ছে যে m অঙ্কন থেকে 2m বিট কম ব্যবহার করে নমুনার উপায় রয়েছে । বিশ্বাস করা শক্ত, তবে এটি সত্য!

আমি আপনাকে অন্তর্দৃষ্টি দিতে দিন। মনে করুন আপনি m অঙ্কনের নমুনার ফলাফলটি লিখেছেন , যেখানে m সত্যিই বড়। তারপরে ফলাফলটি m বিট স্ট্রিং হিসাবে নির্দিষ্ট করা যেতে পারে । এই m বিট স্ট্রিংটি বেশিরভাগ 0 টি হবে, এতে কয়েকটি 1 থাকবে: বিশেষত, এটির প্রায় m/2N 1 থাকবে (এর চেয়ে কম বা কম হতে পারে, তবেm যথেষ্ট পরিমাণ বড় হলে সাধারণত সংখ্যাটি হয়) এর কাছাকাছি থাকবে)। 1 এর মধ্যে ফাঁকগুলির দৈর্ঘ্য এলোমেলো, তবে সাধারণত 2 এন এর আশেপাশে কোথাও অস্পষ্ট হবে be2N(সহজেই তার অর্ধেক বা তার দ্বিগুণ বা আরও বেশি হতে পারে, তবে সেই পরিমাণের ক্রম)। অবশ্যই, পুরো m বিট স্ট্রিংটি লেখার পরিবর্তে , আমরা ফাঁকগুলির দৈর্ঘ্যের একটি তালিকা লিখে আরও সংক্ষিপ্তভাবে এটি লিখতে পারতাম - যা একই একই তথ্যকে আরও সংকুচিত বিন্যাসে বহন করে। আর কতটা সংহত? ঠিক আছে, প্রতিটি ফাঁকের দৈর্ঘ্যের প্রতিনিধিত্ব করার জন্য আমাদের প্রায় N বিট লাগবে; এবং প্রায় m/2N ফাঁক থাকবে; সুতরাং আমাদের মোট mN/2N বিটগুলির প্রয়োজন হবে (কিছুটা আরও বেশি হতে পারে, কিছুটা কমও হতে পারে, তবে যদি m যথেষ্ট পরিমাণে বড় হয় তবে এটি সাধারণত এর কাছাকাছিই থাকব)। এটি একটি এর চেয়ে অনেক খাটোm বিট স্ট্রিং

এবং যদি স্ট্রিংটিকে এই সংক্ষেপে লেখার কোনও উপায় থাকে তবে সম্ভবত এটি খুব অবাক হওয়ার কারণ হবে না যদি তার মানে স্ট্রিংয়ের দৈর্ঘ্যের সাথে তুলনীয় বেশ কয়েকটি এলোমেলো বিট সহ স্ট্রিং উত্পন্ন করার উপায় রয়েছে। বিশেষত, আপনি এলোমেলোভাবে প্রতিটি ফাঁকের দৈর্ঘ্য উত্পন্ন করেন; এই সঙ্গে একটি জ্যামিতিক বন্টন থেকে স্যাম্পলিং হয় p=1/2N , এবং যে মোটামুটিভাবে দিয়ে করা যাবে N গড় (না র্যান্ডম বিট 2N )। সম্পর্কে আপনার প্রয়োজন হবে m/2N IID এই জ্যামিতিক বন্টন থেকে স্বপক্ষে, তাই আপনি মোট প্রয়োজন হবে মোটামুটিভাবে Nm/2Nএলোমেলো বিট (এটি একটি ছোট ধ্রুবক ফ্যাক্টর বৃহত্তর হতে পারে তবে খুব বেশি বড় নয় notice) এবং লক্ষ করুন যে এটি 2m বিটের চেয়ে অনেক ছোট ।

সুতরাং, আমরা নমুনা পারেন m IID আপনার বন্টন থেকে স্বপক্ষে, শুধু ব্যবহার f(m)Nm/2N র্যান্ডম বিট (প্রায়)। মনে রাখবেন যে এনট্রপিটি limmf(m)/m । সুতরাং এর অর্থ হল আপনার এনট্রপিটি (মোটামুটিভাবে) N/2N । এটি অল্প অল্প করেই বন্ধ হয়ে গেছে, কারণ উপরের গণনাটি স্কেচি এবং অশোধিত ছিল - তবে আশা করা যায় এটি আপনাকে এন্ট্রপিটি কী এবং কেন সবকিছু সামঞ্জস্যপূর্ণ এবং যুক্তিসঙ্গত সে সম্পর্কে কিছু অন্তর্দৃষ্টি দেয়।


বাহ, দুর্দান্ত উত্তর! তবে আপনি কী জ্যামিতিক ডিস্ট্রিবিউশন থেকে পি = 1 দিয়ে নমুনা দেওয়ার বিষয়টি বিশদভাবে বলতে পারেন গড়েএনবিটনেয়? আমি জানি যে এ জাতীয় এলোমেলো ভেরিয়েবলের গড় পরিমাণ2এন হয়, সুতরাং এটিসংরক্ষণ করতেগড়েএনবিটলাগে, তবে আমি মনে করি এর অর্থ এই নয় যে আপনিএনবিটদিয়ে একটি উত্পন্ন করতে পারবেন। p=12NN2NNN
নলজোক

@ নলজোক, একটি সুস্পষ্ট প্রশ্ন! আপনি সম্ভবত একটি পৃথক প্রশ্ন হিসাবে জিজ্ঞাসা করতে পারেন? এটি কীভাবে করব তা আমি দেখতে পাচ্ছি তবে এই মুহুর্তে টাইপ করা কিছুটা অগোছালো। আপনি যদি জিজ্ঞাসা করেন তবে আমার চেয়ে দ্রুত কেউ উত্তর দিতে পারবে। আমি যে পদ্ধতির কথা ভাবছি তা পাটিগণিত কোডিংয়ের অনুরূপ। নির্ধারণ (যেখানে এক্স জ্যামিতিক আরভি হয়), তারপর একটি র্যান্ডম সংখ্যা উৎপন্ন ব্যবধান [ 0 , 1 ) , এবং এটি আমি যেমন যে কুই আমি< কুই আমি + + 1qi=Pr[Xi]Xr[0,1)iqir<qi+1। আপনি বাইনারি expension এর বিট নিচে লেখেন, তাহলে একটি সময়ে এক সাধারণত নিচে লেখা পরে, এন + + হে ( 1 ) এর বিট , আমি সম্পূর্ণরূপে নির্ধারিত হবে। rN+O(1)ri
DW

1
সুতরাং আপনি বাইনারি অনুসন্ধানের অনুরূপ ধারণার সাথে মিলিয়ে একটি স্বেচ্ছাসেবী বিতরণে অভিন্ন বিতরণ করা এলোমেলো ভেরিয়েবলকে রূপান্তর করতে মূলত বিপরীত সিডিএফ পদ্ধতিটি ব্যবহার করছেন? জ্যামিতিক বিতরণের কোয়ান্টাইল ফাংশনটি বিশ্লেষণ করতে হবে তা নিশ্চিত হওয়ার জন্য, তবে এই ইঙ্গিতটি যথেষ্ট। ধন্যবাদ!
নলজোক

1
@ নলজোক, আহ, হ্যাঁ, এটি সম্পর্কে চিন্তা করার এক দুর্দান্ত উপায় - সুদৃশ্য। পরামর্শ দেওয়ার জন্য আপনাকে ধন্যবাদ। হ্যাঁ, এটাই আমার মনে ছিল।
DW

2

আপনি এটি পিছনের দিকে ভাবতে পারেন: প্রজন্মের পরিবর্তে বাইনারি এনকোডিংয়ের সমস্যাটি বিবেচনা করুন। ধরুন আপনি একটি উৎস আছে যে নিঃসরণ করে প্রতীক X{A,B} সঙ্গে p(A)=2N , p(B)=12N । উদাহরণস্বরূপ, যদি N=3 তবে আমরা H(X)0.54356 । সুতরাং (শ্যানন আমাদের জানান) একটি অনন্যভাবে ডিকোডেবল বাইনারি এনকোডিং XY , যেখানে Y{0,1} (ডাটা বিট), যেমন যে আমরা প্রয়োজন গড়ে প্রায়0.54356 প্রতিটি মূল প্রতীক জন্য তথ্য বিটX

(আপনি যদি ভাবছেন যে এই জাতীয় এনকোডিংটি কীভাবে বিদ্যমান থাকতে পারে তবে আমাদের কাছে কেবল দুটি উত্স প্রতীক রয়েছে এবং এটি মনে হয় যে তুচ্ছ এনকোডিং, A0 , B1 , প্রতি চিহ্নের জন্য একটি বিট সহ আপনার প্রয়োজন শ্যানন বাউন্ডকে আনুমানিকভাবে বুঝতে হলে আমাদের উত্সটির "এক্সটেনশনগুলি" নেওয়া দরকার, অর্থাৎ সামগ্রিকভাবে ইনপুটগুলির ক্রম কোডটি আনতে হবে particular নির্দিষ্ট গাণিতিক এনকোডিং দেখুন)।

XnYnYn must have maximum entropy (1 bit of information per bit of data), i.e., Yn has the statistics of a fair coin, then we have a generation scheme at hand: draw n random bits (here n has no relation with N) with a fair coin, interpret it as the output Yn of the encoder, and decode Xn from it. In this way, Xn will have the desired probability distribution, and we need (in average) H(X)<1 coins to generate each value of X.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.