Diese Frage mag etwas seltsam erscheinen. Ich machte einige Selbststudien zur Informationstheorie und beschloss, weitere formale Untersuchungen zum Deep Learning durchzuführen. Bitte nehmen Sie mit, wenn ich versuche zu erklären. Ich nahm eine große "Trainings" -Untergruppe von MNIST als mein Meerschweinchen.
1) Konvertierte jedes Bild in MNIST in "Schwarzweiß" (Pixelwerte nur 0 oder 1)
2) Über alle Datenbilder summiert, um ein Histogramm über den Pixeln zu erstellen - Ich habe gezählt, wie oft jedes Pixel einen 1-Wert im Datensatz erhält
3) Normalisiertes Histogramm, um eine Schätzung der "wahren" Wahrscheinlichkeitsverteilung zu erhalten
4) Daraus ergab sich die folgende Wahrscheinlichkeitsverteilung (dargestellt als Heatmap mit Matplotlib):
[
5) Jetzt habe ich die Entropie berechnet und erhalten: Bits
6) Laut David MacKay in seinem Buch "Informationstheorie" könnten wir ein neuronales Netzwerk als verrauschten Kanal interpretieren und jedes Neuron mit einer 2-Bit-Kapazität betrachten. Obwohl er erklärt, diese Idee mit Sorgfalt zu verwenden. Kapitel 40 seines Buches http://www.inference.org.uk/itila/book.html )
7) Als grobe Schätzung (und mit Vorsicht) könnten wir sagen, wir würden ein neuronales Netzwerk von 95 Neuronen benötigen, um die Kennzeichnung dieses MNIST-Trainingssatzes (190/2) codieren zu können. 8) Jetzt können wir bekommen zu meiner Frage:
Sollte sich ein neuronales Netzwerk, das in der Lage ist, die Markierung zu lernen, nicht mindestens im Ballpark von 95 Neuronen befinden, selbst wenn dies eine sehr "Back-of-the-Envelope" -Berechnung ist? Warum brauchen wir zum Beispiel ein neuronales Netzwerk mit 21840 Parametern, um eine Genauigkeit von 99% zu erreichen? (unter Berücksichtigung des Beispiels von PyTorch für MNIST: https://github.com/pytorch/examples/blob/master/mnist/main.py )
quelle