essa pergunta pode parecer um pouco estranha. Eu estava fazendo alguns auto-estudos sobre teoria da informação e decidi fazer algumas investigações mais formais sobre aprendizado profundo. Por favor, tenha paciência comigo enquanto tento explicar. Tomei um grande subconjunto de "treinamento" do MNIST como minha cobaia.
1) Converteu todas as imagens no MNIST em "preto e branco" (os valores de pixels são apenas 0 ou 1)
2) Somadas todas as imagens de dados para criar um histograma sobre os pixels - contei o número de vezes que cada pixel obtém um valor 1 no conjunto de dados
3) Histograma normalizado para obter uma estimativa da distribuição de probabilidade "verdadeira"
4) A partir disso, obtive a seguinte distribuição de probabilidade (mostrada como um mapa de calor com matplotlib):
[
5) Agora calculei a entropia e obtive: bits
6) De acordo com David MacKay em seu livro de teoria da informação, poderíamos interpretar uma rede neural como um canal barulhento e considerar cada neurônio como tendo uma capacidade de 2 bits. Embora ele declare usar essa idéia com cuidado. Capítulo 40 de seu livro http://www.inference.org.uk/itila/book.html )
7) Portanto, como uma estimativa aproximada (e com cuidado), poderíamos dizer que precisaríamos de uma rede neural de 95 neurônios para poder codificar a marcação deste conjunto de treinamento MNIST (190/2). 8) Agora podemos obter à minha pergunta:
Mesmo que esse seja um cálculo muito "de volta ao envelope", não deveria uma rede neural capaz de aprender a rotular pelo menos no estádio de 95 neurônios? Por que precisamos, por exemplo, de uma rede neural com 21840 parâmetros para obter 99% de precisão? (considerando o exemplo do PyTorch para o MNIST: https://github.com/pytorch/examples/blob/master/mnist/main.py )
fonte