Kategorien
Uncategorized

Wenn sich Theorie verselbständigt

Letzte Woche habe ich ja bereits über Richard Feynman gesprochen. Er war als ausgesprochen fähiger Problemlöser bekannt, so dass sich die Frage stellt, wie er dabei vorging.

Er selbst betonte immer wieder, dass er nur denken könne, wenn er eine Anwendung oder konkrete Anschauung vor Augen habe. Mit anderen Worten gelang ihm das überraschend seltene Kunststück, die Theorie zu beherrschen, darüber aber die Praxis nicht aus dem Blick zu verlieren.

Tatsächlich habe ich den Eindruck, dass eine Theorie häufig von Leuten entwickelt wird, die sehr genau wissen, wozu sie dient und wie sie angewandt werden kann. Dann aber neigt sie irgendwie dazu, sich zu verselbständigen: Den nächsten Generationen wird nur noch die Theorie beigebracht, die Anwendung wird dann leicht als „trivial“ abgetan. Und dabei geht viel Verständnis verloren, im Extremfall bis zu dem Punkt, an dem die Theorie so lange weiterentwickelt wird, bis sie für die Praxis nicht mehr anwendbar ist. Benjamin Brewster hat dieses Phänomen, das wir sicher alle schon erlebt haben, 1882 mit diesen Worten beschrieben: „In theory, there is not difference between theory and practice. In practice, there is.“

Im Folgenden will ich das Problem einmal am Beispiel der Entropie erklären, und vielleicht es wird der eine oder andere, der ein Studium der Informatik hinter sich hat, sogar wiedererkennen.

Was ist Entropie?

Als Claude Shannon 1948 mit einem einzigen Paper das neue Forschungsgebiet der Informationstheorie aus der Taufe hob, führte er auch den Begriff der (Informations-)Entropie ein. Es handelt sich um ein Maß für die Ungewissheit über den Inhalt einer Nachricht. Gemessen wird sie in Bit, und je größer sie ist, desto weniger kann man vor dem Lesen der Nachricht über ihren Inhalt aussagen.

Ein klassisches Lehrbuchbeispiel ist das Werfen einer Münze (die „Nachricht“ ist das Ergebnis des Münzwurfs). Handelt es sich um eine faire Münze, so beträgt die Entropie genau 1 Bit. Weiß ich dagegen, dass die Münze manipuliert ist (sagen wir, sie zeigt in 3 von 4 Fällen „Kopf“), dann ist die Entropie niedriger (konkret etwa 0,8 Bit), weil ich eine Ahnung habe, wie die Nachricht aussehen wird. Im Extremfall fällt die Entropie vollends auf 0, nämlich immer dann, wenn ich schon vorher sicher weiß, was herauskommt.

Nun wird die Entropie nicht umsonst in Bit gemessen, denn der Informationsgehalt einer Nachricht sagt zugleich etwas darüber aus, wie kompakt man sie darstellen kann. Um den Ausgang unseres fairen Münzwurfs zu speichern, benötige ich eben mindestens 1 Bit, und wenn ich vier faire Münzwürfe hintereinander ausführe, muss ich mindestens 4 Bit zur Verfügung haben, um das Ergebnis zu speichern. Ich kann zwar jederzeit auch mehr Bits verwenden, aber weniger sind ausgeschlossen.

Beispiel: Nehmen wir an, es wird „Zahl, Zahl, Kopf, Zahl“ geworfen. Wenn wir uns zuvor geeinigt haben, dass „Zahl = 1“ und „Kopf = 0“ codiert wird, dann reicht es, dass ich das Ergebnis als 1101 abspeichere. Ich könnte es aber auch beispielsweise als Textstring „Zahl, Zahl, Kopf, Zahl, Kopf“ abspeichern – der String besteht aus 22 Zeichen, und da einfache Zeichen meist mit 8 Bit codiert werden, werden 22*8=176 Bit abgespeichert. Falsch ist das nicht, aber eben viel mehr, als streng genommen nötig gewesen wäre.

In Vorlesungen wird beim Thema Entropie gerne mit dem Beispiel der natürlichen Sprache gearbeitet. Wenn wir die Entropie der Buchstaben der deutschen Sprache anhand ihrer Häufigkeit ausrechnen (ein „E“ ist extrem häufig, ein „R“ kommt immer noch ziemlich oft vor, ein „Q“ dagegen ist sehr selten usw.), dann stellt sich heraus, dass sie ca. 4 Bit beträgt. Ein Buchstabe kann also in ca. 4 Bit codiert werden.

Verlust des Anwendungsbezugs

Und jetzt passiert es. In dem Moment, in dem diese 4 Bit im Raum stehen, verirrt sich so mancher im Labyrinth der Theoreme und verliert die Praxis aus dem Blick. Eine typische Argumentationskette, die man explizit oder implizit auf Webseiten und sogar in Lehrbüchern findet, sieht dann so aus:

  • Die Entropie eines deutschen Buchstabens beträgt 4 Bit.
  • Wenn man eine Nachricht aus n Elementen zusammensetzt, die alle die Entropie 4 Bit haben, dann hat die Gesamtnachricht die Entropie 4n Bit.
  • Somit hat eine Nachricht in deutscher Sprache, die aus n Zeichen besteht, eine Entropie von 4n Bit.

Dass das so nicht stimmt, kann man leicht herausfinden, indem man einen deutschen Text von einem beliebigen Kompressionsprogramm (wie z.B. ZIP) verlustfrei komprimieren lässt, und siehe da: Eine Nachricht mit n Zeichen lässt sich in ungefähr 3,25n Bit speichern – wenn die obige Aussage stimmen würde, müsste die Kompression aber mindestens 4n Bit benötigen!

Jetzt kann man natürlich fragen, wo hier etwas schiefgegangen ist.

Damit kann man einerseits den Fehler in der Argumentation meinen. Haben Sie ihn gefunden? Falls nicht, kommt hier die Auflösung: Das entscheidende Problem ist, dass die Buchstaben einer deutschen Nachricht etwas miteinander zu tun haben – im Gegensatz zu den Münzwürfen sind sie nicht unabhängig voneinander. Somit ergibt sich die Gesamtentropie nicht als Summe der Einzelentropien.

Statt nach dem mathematischen Grund für den Fehler könnte man aber auch fragen, warum man überhaupt den Realitätsbezug aus dem Blick verloren hat. Denn mit ein paar einfachen Beispielen hätte man ja sofort sehen können, dass hier etwas nicht stimmt. Wenn wir beispielsweise nur zwei mögliche Nachrichten aus 40 Zeichen betrachten (sagen wir mal, „Der geplante Angriff morgen findet statt“ und „Der geplante Angriff morgen ist abgesagt“), dann ist ja ziemlich klar, dass wir dafür keine 40*4=160 Bit für eine komprimierte Codierung benötigen – ein einfaches „Angriff = 1“ und „Absage = 0“ hätte auch gereicht. Die Nachricht enthält also nur ein einziges Bit an Information!

Wo kamen wir nochmal her?

Was hier geschieht, ist ein Beispiel für ein Problem, das ich bereits letzte Woche erwähnt habe und auf das ich noch öfter zurückkommen werde: Wenn man sich mit einem Thema unter einer bestimmten Brille beschäftigt (hier: der Brille der Informationstheorie) und dabei die menschliche Erfahrungswelt aus dem Blick verliert, dann stehen die Chancen gut, dass man irgendwann einen Fehler macht und dies nicht einmal bemerkt. Es fehlt schlicht das Korrektiv, das uns sagt: „Das war jetzt ist ja alles schön und gut, aber es kann nicht stimmen, weil es nämlich ein offensichtliches Gegenbeispiel gibt!“

Es scheint erstaunlich schwer zu sein, sich diesem Sog der Theorie zu entziehen. Oft beginnen wir ja sogar mit einer konkreten Fragestellung, verlieren diese dann aber aus dem Blick und glauben dann irgendwann das, was wir in der Theorie gelernt haben, ohne es wieder vor den Spiegel der Anwendung zu halten und zu prüfen, ob es eigentlich passt. Das geht mir selbst so, und ich weiß aus Erfahrung, dass es der überwiegenden Mehrheit meiner Studierenden nicht anders geht: Wenn ich eine Theorie auf der Tafel nur überzeugend genug hinschreibe, geht eben kaum jemand nach Hause und macht mal einen einfachen Test (so wie oben mit dem ZIP-Programm), um zu prüfen, ob das eigentlich stimmen kann. Und das, obwohl die meisten meiner Studierenden sofort bestätigen würden, dass sie sich für die Anwendung viel mehr interessieren als für die Theorie.

Dabei haben wir als Informatiker oft eine einzigartige Möglichkeit, solche Theorien zu überprüfen: Wir können sie nämlich ausprobieren! Es gibt nur wenig, was man in unserem Fach glauben oder der Theorie überlassen muss – spätestens, wenn die theoretischen Überlegungen abgeschlossen sind, können wir die Ergebnisse in die Praxis tragen und nachschauen, ob sie auch das tun, was sie tun sollten! Und die Chancen stehen gut, dass wir auf diese Weise beides verbessern: sowohl unser Verständnis der Theorie als auch unsere Fähigkeiten in der Praxis.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert