N 개의 랜덤 비트보다 작은 2 ^ 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
Brian Gordon

답변:


28

와, 좋은 질문입니다! 해결책을 설명하려고 노력하겠습니다. 세 가지 단계가 필요합니다.

가장 먼저 주목할 점은 엔트로피는 필요한 최대 비트 수가 아니라 드로우 당 필요한 평균 비트 수에 더 집중한다는 것 입니다.

샘플링 절차에서 드로우 당 필요한 최대 랜덤 비트 수는 비트이지만 필요한 평균 비트 수는 2 비트입니다 ( 의 기하 분포의 평균 ). 1 비트 만 필요한 확률 (첫 번째 비트가 1 인 경우), 2 비트 만 필요한 확률 (처음 두 비트가 01 인 경우), 3 비트 (첫 3 비트가 001 인 경우) 만 필요할 가능성이 있습니다.Np=1/21/21/41/8

두 번째로 엔트로피는 단일 드로우에 필요한 평균 비트 수를 캡처하지 않습니다. 대신, 엔트로피 캡처 상각 샘플에 필요한 비트 수 IID가이 분포 그린다. 드로우 를 샘플링하기 위해 비트 가 필요하다고 가정하자 . 다음 엔트로피의 한계 로서 .mf(m)mf(m)/mm

참고로 세 번째 점은이 배포와 함께, 당신은 샘플 수, 즉이다 IID 반복 샘플 하나의 무승부에 필요한 것보다 적은 비트 무승부를. 이 번 반복 할 때까지 하나의 샘플 (평균 2 개의 랜덤 비트를 취함)을 추출한 다음 다른 샘플 (평균 2 개의 랜덤 비트를 사용함)을 순진하게 결정했다고 가정 해 봅시다 . 평균적으로 약 임의 비트 가 필요합니다 .mm2m

그러나 미만의 비트를 사용하여 드로우 에서 샘플링하는 방법이 있습니다. 믿기 ​​어렵지만 사실입니다!m2m

직관을 드리겠습니다. 드로우 샘플링의 결과를 기록했다고 가정하면 , 은 실제로 큰 것입니다. 그런 다음 결과를 비트 문자열 로 지정할 수 있습니다 . 이 비트 문자열은 대부분 0이며 소수는 1입니다. 특히 평균적으로 약 1이 될 것입니다 (이보다 크거나 작을 수 있지만 이 충분히 큰 경우 일반적으로 숫자가 그에 가깝습니다). 1 사이의 간격의 길이는 임의적이지만 일반적으로 근방에 모호하게 나타납니다 (쉽게 절반 또는 그보다 두 배 또는 그 이상일 수 있지만 그 정도의 크기 일 수 있음). 물론 전체 을 쓰지 않고mmmmm/2Nm2Nm-비트 문자열의 경우 간격의 길이 목록을 압축하여 더 간결하게 작성할 수 있습니다. 간격의 길이는 동일한 정보를 모두 압축 된 형식으로 전달합니다. 얼마나 간결합니까? 보통 각 간격의 길이를 나타내려면 약 비트가 필요합니다 . 약 간격 이있을 것입니다 . 따라서 우리는 총 약 비트가 필요합니다 (약간 더 많을 수도 있고 조금 적을 수도 있지만 이 충분히 크면 일반적으로 그에 가깝습니다). 그것은 비트 문자열 보다 훨씬 짧습니다 .Nm/2NmN/2Nmm

그리고 간결하게 문자열을 쓸 수있는 방법이 있다면 문자열의 길이와 비슷한 임의의 비트를 사용하여 문자열을 생성하는 방법이 있다는 것은 놀라운 일이 아닙니다. 특히 각 간격의 길이를 임의로 생성합니다. 이것은 인 기하 분포에서 샘플링 한 것으로, 평균적 으로 대략 임의 비트 ( 아님) 로 수행 할 수 있습니다 . 에 대해 당신이 필요합니다 IID이 기하 분포에서 그립니다 당신이 총 약이 필요합니다, 그래서 랜덤 비트. (이것은 작은 상수 팩터 일 수 있지만 너무 크지는 않습니다.) 그리고 이것은 비트 보다 훨씬 작습니다 .p=1/2NN2Nm/2NNm/2N2m

그래서, 우리는 샘플링 수 IID 그냥 사용하여 분포로부터 드로우 랜덤 비트 (대략). 엔트로피는 입니다. 따라서 이것은 엔트로피가 (거의) 것으로 예상해야 함을 의미합니다 . 위의 계산은 스케치와 조잡하기 때문에 조금 벗어납니다.하지만 엔트로피가 왜 그런지, 왜 모든 것이 일관되고 합리적인지에 대한 직관을 제공하기를 바랍니다.mf(m)Nm/2Nlimmf(m)/mN/2N


와우, 좋은 대답입니다! 그러나 을 사용하여 기하 분포에서 샘플링하는 데 평균 비트 가 필요한 이유를 자세히 설명 할 수 있습니까? 나는 그런 확률 변수의 평균 것 알고 가 평균적으로 소요 있도록, 저장소에 비트,하지만 이것은 당신이 하나 생성 할 수 있습니다 의미하지 않는다 가정 비트. N2NNNp=12NN2NNN
nalzok

@nalzok, 공정한 질문! 별도의 질문으로 질문 해 주시겠습니까? 어떻게하는지 알 수 있지만, 지금 타이핑하는 것은 약간 지저분합니다. 당신이 아마 요청하면 누군가 내가 할 수있는 것보다 빨리 대답을 얻을 수 있습니다. 내가 생각하는 접근법은 산술 코딩과 비슷합니다. 정의 (단, , 다음의 난수 생성 기하학적 RV이다) 간격의 , 및 발견 되도록 . 당신은 바이너리 expension의의 비트 아래로 작성하는 경우 일반적으로 아래로 작성 후, 한 번에 하나씩 의 비트 , 완전히 결정됩니다.qi=Pr[Xi]Xr[0,1)iqir<qi+1rN+O(1)ri
DW

1
따라서 기본적으로 역 CDF 방법을 사용하여 균일하게 분포 된 임의 변수를 임의 분포로 변환하고 이진 검색과 비슷한 아이디어를 결합합니까? 기하 분포의 Quantile 함수를 확실히 분석해야하지만이 힌트만으로 충분합니다. 감사!
nalzok

1
@nalzok, 아, 예, 그것은 그것에 대해 생각하는 더 좋은 방법입니다. 제안 해 주셔서 감사합니다. 그렇습니다, 그것은 내가 생각했던 것입니다.
DW

2

이것을 거꾸로 생각할 수 있습니다. 생성 대신 이진 인코딩 문제를 고려하십시오. , 과 함께 기호를 방출하는 소스가 있다고 가정하십시오 . 예를 들어 이면 됩니다. 그래서 (섀넌은 우리에게)이 발생하는 고유 복호 바이너리 인코딩 여기서 (데이터 비트), 우리는 평균적으로, 필요에 대한하도록 각각 원래의 심볼 데이터 비트 .X{A,B}p(A)=2Np(B)=12NN=3H(X)0.54356XYY{0,1}0.54356X

(소스 심볼이 두 개 밖에 없다는 점을 감안할 때 이러한 인코딩이 어떻게 존재하는지 궁금해하는 경우, 심볼 당 하나의 비트로 간단한 인코딩, , 을 사용하는 것이 더 나을 수 없습니다 . Shannon 경계를 근사하려면 소스의 "확장", 즉 입력 시퀀스를 전체적으로 코딩해야합니다. 특히 산술 인코딩을 참조하십시오.A0B1

위의 내용이 명확 해지면, 우리가 뒤집을 수없는 매핑 가지고 있다고 가정한다면 , Shannon 한계에서 은 최대 엔트로피 (데이터 비트 당 1 비트의 정보)를 가져야한다는 것을 알 수 있습니다. , 은 공정한 코인의 통계를 가지고 있습니다. 그리고 우리는 손에 생성 체계를 가지고 있습니다 : 공정한 코인으로 임의의 비트 (여기서 은 과 관련이 없습니다 )를 그리고 그것을 인코더 의 출력 으로 해석하십시오 로부터 을 해독 합니다. 이와 같이, 원하는 확률 분포를 가지며, 우리 할 필요 (평균) 주화의 각 값을 생성하는 .XnYnYnYnnnNYnXnXnH(X)<1X

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.