Digamos que preciso simular a seguinte distribuição discreta:
A maneira mais óbvia é desenhar bits aleatórios e verificar se todos são iguais a (ou ). No entanto, a teoria da informação diz
Portanto, o número mínimo de bits aleatórios necessários realmente diminui à medida que aumenta. Como isso é possível?
Por favor, assuma que estamos rodando em um computador em que bits é sua única fonte de aleatoriedade, portanto você não pode simplesmente jogar uma moeda tendenciosa.
Respostas:
Uau, ótima pergunta! Deixe-me tentar explicar a resolução. São necessários três passos distintos.
A primeira coisa a observar é que a entropia está mais focada no número médio de bits necessários por sorteio, não no número máximo de bits necessário.
Com o procedimento de amostragem, o número máximo de bits aleatórios necessários por sorteio éN bits de, mas o número médio de bits necessários é de 2 bits (a média de uma distribuição geométrica com p = 1 / 2 ) - Isto é porque existe um 1 / 2 probabilidade de que você só precisa de 1 bit (se o primeiro bit acaba por ser 1), um 1 / 4 probabilidade de que você só precisa de 2 bits (se os dois primeiros bits vir a ser 01), um 1 / 8 probabilidade de você precisar apenas de 3 bits (se os três primeiros forem 001) e assim por diante.
A segunda coisa a notar é que a entropia não captura realmente o número médio de bits necessários para um único desenho. Em vez disso, as capturas de entropia o amortizado número de bits necessários para a amostram iid retira esta distribuição. Suponha que precisamos de f( M ) bits para amostrar m draws; então a entropia é o limite de f( M ) / m como m → ∞ .
A terceira coisa a notar é que, com esta distribuição, você pode provarm iid desenha com menos bits do que o necessário para repetidamente amostra um empate. Suponha que você ingenuamente tenha decidido desenhar uma amostra (em média 2 bits aleatórios) e, em seguida, outra amostra (usando mais 2 bits aleatórios em média), e assim por diante, até repetir isso m vezes. Isso exigiria cerca de 2 m de bits aleatórios em média.
Mas acontece que há uma maneira de coletar amostras dem draws usando menos de 2 m bits. É difícil de acreditar, mas é verdade!
Deixe-me lhe dar a intuição. Suponha que você anotou o resultado da amostragem dem draws, onde m é realmente grande. Em seguida, o resultado pode ser especificado como uma sequência de bits de m . Essa cadeia de m bits será composta principalmente de 0's, com alguns 1's: em particular, em média, terá cerca de m / 2N (pode ser mais ou menos que isso, mas se m for suficientemente grande, geralmente o número estará perto disso). O comprimento dos intervalos entre as 1 são aleatório, mas será tipicamente algures vagamente na vizinhança de 2N (poderia facilmente ser metade ou duas vezes mais ou mais, mas dessa ordem de magnitude). Obviamente, em vez de escrever toda a cadeia de bits de m , poderíamos escrevê-la de maneira mais sucinta, escrevendo uma lista dos comprimentos das lacunas - que carregam todas as mesmas informações, em um formato mais compactado. Quanto mais sucinto? Bem, normalmente precisamos de cerca de N bits para representar o comprimento de cada intervalo; e haverá cerca de m / 2N folgas; portanto, precisaremos no total de m N/ 2N bits (pode ser um pouco mais, pode ser um pouco menos, mas se m for suficientemente grande, geralmente será próximo disso). Isso é muito mais curto que umm cadeia de bits m .
E se houver uma maneira de escrever a sequência de forma sucinta, talvez não seja muito surpreendente se isso significa que há uma maneira de gerar a sequência com um número de bits aleatórios comparável ao comprimento da sequência. Em particular, você gera aleatoriamente o comprimento de cada intervalo; esta é a amostragem a partir de uma distribuição geométrica comp = 1 / 2N , e que pode ser feito com cerca de ∼ N bits aleatórios, em média (não 2N ). Você precisará de m / 2N iid é extraído dessa distribuição geométrica, portanto, precisará no total aproximadamente ∼ Nm / 2N bits aleatórios. (Pode ser um fator constante pequeno maior, mas não muito maior.) E observe que isso é muito menor que 2 m bits.
Assim, podemos provarm iid chama de sua distribuição, usando apenas f( M ) ~ Nm / 2N bits aleatórios (aproximadamente). Lembre-se de que a entropia é limm → ∞f( M ) / m . Então isso significa que você deve esperar a entropia ser (aproximadamente) N/ 2N . Isso diminuiu um pouco, porque o cálculo acima foi superficial e bruto - mas espero que lhe dê alguma intuição sobre por que a entropia é o que é e por que tudo é consistente e razoável.
fonte
Você pode pensar o contrário: considere o problema da codificação binária em vez da geração. Suponhamos que tem uma fonte que emite símbolosX∈{A,B} com p(A)=2−N , p(B)=1−2−N . Por exemplo, se N=3 , obtemos H(X)≈0.54356 . Então (Shannon nos diz), existe uma codificação binária exclusivamente decodível X→Y , Onde Y∈{0,1} (bits de dados), tais que necessitam, em média, cerca de 0.54356 bits de dados para cada símbolo original X .
(Caso você esteja se perguntando como essa codificação pode existir, considerando que temos apenas dois símbolos de origem, e parece que não podemos fazer melhor que a codificação trivial,A→0 , B→1 , com um bit por símbolo, você precisa para entender que, para aproximar o limite de Shannon, precisamos usar "extensões" da fonte, ou seja, para codificar seqüências de entradas como um todo. Veja, em particular, codificação aritmética).
Uma vez que o exposto esteja claro, se assumirmos que temos um mapeamento invertívelXn→Yn , e percebendo que, no limite de Shannon, Yn deve ter entropia máxima (1 bit de informação por bit de dados), ou seja, Yn tem as estatísticas de uma moeda justa, temos um esquema de geração à mão: desenhe n bits aleatórios (aqui n não tem relação com N ) com uma moeda justa, interprete-a como a saída Yn do codificador e decodifique Xn de isto. Dessa forma, Xn terá a probabilidade de distribuição desejado, e precisamos de (em média) H(X)<1 moedas para gerar cada valor de X .
fonte