다음과 같은 이산 분포를 시뮬레이션해야한다고 가정 해보십시오.
가장 확실한 방법은 랜덤 비트를 그리고 모든 비트가 (또는 ) 인지 확인하는 것입니다 . 그러나 정보 이론에 따르면
따라서 임의의 비트의 최소 수는 실제로 필요한 감소 로서 크게 진행한다. 이것이 어떻게 가능한지?
비트가 유일한 랜덤 소스 인 컴퓨터에서 실행되고 있다고 가정하면 바이어스 코인을 던질 수는 없습니다.
다음과 같은 이산 분포를 시뮬레이션해야한다고 가정 해보십시오.
가장 확실한 방법은 랜덤 비트를 그리고 모든 비트가 (또는 ) 인지 확인하는 것입니다 . 그러나 정보 이론에 따르면
따라서 임의의 비트의 최소 수는 실제로 필요한 감소 로서 크게 진행한다. 이것이 어떻게 가능한지?
비트가 유일한 랜덤 소스 인 컴퓨터에서 실행되고 있다고 가정하면 바이어스 코인을 던질 수는 없습니다.
답변:
와, 좋은 질문입니다! 해결책을 설명하려고 노력하겠습니다. 세 가지 단계가 필요합니다.
가장 먼저 주목할 점은 엔트로피는 필요한 최대 비트 수가 아니라 드로우 당 필요한 평균 비트 수에 더 집중한다는 것 입니다.
샘플링 절차에서 드로우 당 필요한 최대 랜덤 비트 수는 비트이지만 필요한 평균 비트 수는 2 비트입니다 ( 의 기하 분포의 평균 ). 1 비트 만 필요한 확률 (첫 번째 비트가 1 인 경우), 2 비트 만 필요한 확률 (처음 두 비트가 01 인 경우), 3 비트 (첫 3 비트가 001 인 경우) 만 필요할 가능성이 있습니다.
두 번째로 엔트로피는 단일 드로우에 필요한 평균 비트 수를 캡처하지 않습니다. 대신, 엔트로피 캡처 상각 샘플에 필요한 비트 수 IID가이 분포 그린다. 드로우 를 샘플링하기 위해 비트 가 필요하다고 가정하자 . 다음 엔트로피의 한계 로서 .
참고로 세 번째 점은이 배포와 함께, 당신은 샘플 수, 즉이다 IID 반복 샘플 하나의 무승부에 필요한 것보다 적은 비트 무승부를. 이 번 반복 할 때까지 하나의 샘플 (평균 2 개의 랜덤 비트를 취함)을 추출한 다음 다른 샘플 (평균 2 개의 랜덤 비트를 사용함)을 순진하게 결정했다고 가정 해 봅시다 . 평균적으로 약 임의 비트 가 필요합니다 .
그러나 미만의 비트를 사용하여 드로우 에서 샘플링하는 방법이 있습니다. 믿기 어렵지만 사실입니다!
직관을 드리겠습니다. 드로우 샘플링의 결과를 기록했다고 가정하면 , 은 실제로 큰 것입니다. 그런 다음 결과를 비트 문자열 로 지정할 수 있습니다 . 이 비트 문자열은 대부분 0이며 소수는 1입니다. 특히 평균적으로 약 1이 될 것입니다 (이보다 크거나 작을 수 있지만 이 충분히 큰 경우 일반적으로 숫자가 그에 가깝습니다). 1 사이의 간격의 길이는 임의적이지만 일반적으로 근방에 모호하게 나타납니다 (쉽게 절반 또는 그보다 두 배 또는 그 이상일 수 있지만 그 정도의 크기 일 수 있음). 물론 전체 을 쓰지 않고-비트 문자열의 경우 간격의 길이 목록을 압축하여 더 간결하게 작성할 수 있습니다. 간격의 길이는 동일한 정보를 모두 압축 된 형식으로 전달합니다. 얼마나 간결합니까? 보통 각 간격의 길이를 나타내려면 약 비트가 필요합니다 . 약 간격 이있을 것입니다 . 따라서 우리는 총 약 비트가 필요합니다 (약간 더 많을 수도 있고 조금 적을 수도 있지만 이 충분히 크면 일반적으로 그에 가깝습니다). 그것은 비트 문자열 보다 훨씬 짧습니다 .
그리고 간결하게 문자열을 쓸 수있는 방법이 있다면 문자열의 길이와 비슷한 임의의 비트를 사용하여 문자열을 생성하는 방법이 있다는 것은 놀라운 일이 아닙니다. 특히 각 간격의 길이를 임의로 생성합니다. 이것은 인 기하 분포에서 샘플링 한 것으로, 평균적 으로 대략 임의 비트 ( 아님) 로 수행 할 수 있습니다 . 에 대해 당신이 필요합니다 IID이 기하 분포에서 그립니다 당신이 총 약이 필요합니다, 그래서 랜덤 비트. (이것은 작은 상수 팩터 일 수 있지만 너무 크지는 않습니다.) 그리고 이것은 비트 보다 훨씬 작습니다 .
그래서, 우리는 샘플링 수 IID 그냥 사용하여 분포로부터 드로우 랜덤 비트 (대략). 엔트로피는 입니다. 따라서 이것은 엔트로피가 (거의) 것으로 예상해야 함을 의미합니다 . 위의 계산은 스케치와 조잡하기 때문에 조금 벗어납니다.하지만 엔트로피가 왜 그런지, 왜 모든 것이 일관되고 합리적인지에 대한 직관을 제공하기를 바랍니다.
이것을 거꾸로 생각할 수 있습니다. 생성 대신 이진 인코딩 문제를 고려하십시오. , 과 함께 기호를 방출하는 소스가 있다고 가정하십시오 . 예를 들어 이면 됩니다. 그래서 (섀넌은 우리에게)이 발생하는 고유 복호 바이너리 인코딩 여기서 (데이터 비트), 우리는 평균적으로, 필요에 대한하도록 각각 원래의 심볼 데이터 비트 .
(소스 심볼이 두 개 밖에 없다는 점을 감안할 때 이러한 인코딩이 어떻게 존재하는지 궁금해하는 경우, 심볼 당 하나의 비트로 간단한 인코딩, , 을 사용하는 것이 더 나을 수 없습니다 . Shannon 경계를 근사하려면 소스의 "확장", 즉 입력 시퀀스를 전체적으로 코딩해야합니다. 특히 산술 인코딩을 참조하십시오.
위의 내용이 명확 해지면, 우리가 뒤집을 수없는 매핑 가지고 있다고 가정한다면 , Shannon 한계에서 은 최대 엔트로피 (데이터 비트 당 1 비트의 정보)를 가져야한다는 것을 알 수 있습니다. , 은 공정한 코인의 통계를 가지고 있습니다. 그리고 우리는 손에 생성 체계를 가지고 있습니다 : 공정한 코인으로 임의의 비트 (여기서 은 과 관련이 없습니다 )를 그리고 그것을 인코더 의 출력 으로 해석하십시오 로부터 을 해독 합니다. 이와 같이, 원하는 확률 분포를 가지며, 우리 할 필요 (평균) 주화의 각 값을 생성하는 .