Mittwoch, 31. August 2011

Reproduzierbares wissenschaftliches Rechnen

Ein Grundpfeiler theoretischer Wissenschaft ist, dass sie nachvollziehbar ist. In der Mathematik ist es der Beweis, der dies erlaubt. Beim Satz des Pythagoras kann ein Beweis von aufgeweckten Sechstklässlern nachvollzogen werden. Dies ist bei Perelmans Ausführungen zur Poincaré-Vermutung faktisch nicht mehr möglich, aber das ist die Ausnahme. Es ist schwierig genau zu sagen, aber wenn man im Thema drin ist (was auch immer das jetzt bedeutet), dauert es je nach Schwierigkeit Stunden oder Tage, einen Beweis nachzuvollziehen.

Diese graphische Darstellung eines Beweises des
Satz des Pythagoras ist für jeden nachvollziehbar; Hubi, CC-by-SA 3.0

Entsprechend ist ein Grundpfeiler experimenteller Wissenschaft, dass das Experiment reproduzierbar ist. Es muss also soweit beschrieben sein, dass der Versuchsaufbau nachgebaut und überprüft werden kann. Dass die Erdbeschleunigung auf der Erde ungefähr 10m/s^2 beträgt, kann man zu Hause mit einer Stoppuhr, einer schiefen Ebene und einer Flasche nachvollziehen. Weniger empfehlenswert ist es, das ITER-Experiment nachzubauen. Und auch wenn es erschreckenderweise Privatpersonen gibt, die das nötige Kleingeld von 20 Milliarden Euro hätten, um das tatsächlich zu tun, ist dieses Experiment praktisch nicht unabhängig reproduzierbar. Die Schwierigkeit bei Experimenten ist also, die nötige Ausrüstung zu haben.

Nun stellt sich die Frage, wie es mit dem dritten Paradigma der Wissenschaft aussieht, der "computational science" bzw. dem "Scientific Computing", deutsch "wissenschaftliches Rechnen". Dave Donoho (berühmter Statistiker in Stanford) ist der Meinung, dass "computational science" derzeit noch nicht den Stand einer Wissenschaft hat. Und ich muss teilweise zustimmen, es gibt verschiedene grundsätzliche Probleme in der Art, wie im Feld derzeit gearbeitet wird. Disclaimer: Der Autor ist keineswegs frei von diesen Problemen.

Otto Hahns Laborbuch zur Kernspaltung
findet sich heute im Deutschen Museum; J Brew, CC-by-sa 2.0
Das erste ist, dass die wenigsten ein Experimentatorenherz haben. Ein neues Verfahren wird also an ein paar Standardtestfällen ausprobiert, aber die wenigsten machen sich die Mühe, sich Testfälle auszudenken, an denen die Eigenschaften und Grenzen des Verfahrens wirklich illustriert werden, was dann die wissenschaftliche Aussage der Tests gering werden lässt. Dazu gehört, dass Techniken wie ein Laborbuch, in dem Experimentatoren akribisch festhalten, was sie wie wann und wozu gemacht haben, im wissenschaftlichen Rechnen absolut unüblich sind.

Es geht aber noch weiter: In zahlreichen Artikeln wird das numerische Experiment nicht ausreichend präzise beschrieben, weil entweder das verwendete Verfahren, das betrachtete Problem oder das Rechengitter nicht ausreichend beschrieben werden. Und da schlägt das obige zu: Fragt man den Autor, gerät der häufig in Panik, weil selbst die eigene Dokumentation nicht ausreichend ist, die Resultate ohne größere Arbeit nachzuvollziehen. Alternativ wird dies sogar absichtlich gemacht, um die Konkurrenz auszubremsen.

Diese Sachen sind teilweise kulturell bedingt: Zuwenige im Gebiet gehen mit gutem Beispiel voran und Dinge wie das Führen eines Laborbuchs werden nicht erlernt. Sie sind aber auch technisch bedingt, so erfordert Reproduzierbarkeit in der Regel ein hauseigenes Repository zur Versionskontrolle. Teilweise erfordert es aber auch die Veröffentlichung von zusätzlichen Daten, wie dem Rechengitter und das wiederum wird nur von den wenigsten Zeitschriften unterstützt.

Wenn man nun annimmt, dass die veröffentlichten Informationen prinzipiell ausreichend sind für die Reproduzierbarkeit, kann man den Vergleich zu Experimenten und mathematischen Beweisen ziehen. Und man stellt fest, dass im wissenschaftlichen Rechnen die große Hürde das Programmieren der neuen Verfahren ist. Ist das vorgestellte Verfahren nur eine kleine Modifikation von bestehenden, so ist das Einbauen eine Sache von unter einer Woche, unter der Annahme, dass ich einen Code für das bestehende habe. Viele interessante Verfahren stellen aber Alternativen zu grundlegenden dar und die zu implementieren bedeutet dann, einen komplett neuen Code zu schreiben, was Jahre dauert. Und das bedeutet, dass es faktisch unmöglich ist, diese Ergebnisse nachzuvollziehen.

An dieser Stelle möchte ich noch darauf hinweisen, dass dieses Problem nicht ganz akademisch ist. Das bekannteste Beispiel für derartige Probleme ist die Kontroverse um das Hockeyschläger-Diagramm, welches globale Erwärmung illustriert, und bei der der Klimawissenschaftler Michael E. Mann unter massive Kritik geriet. Hauptproblem war, dass seine Ergebnisse nicht nachvollziehbar und damit angreifbar waren (konkret verweigerte er sogar auf Anfrage die Herausgabe der zugrundeliegenden Daten). Dies führte zu einer Glaubwürdigkeitskrise dieser extrem wichtigen Wissenschaft.

Die Lösung liegt auf der Hand: Wissenschaftler sollten nicht nur die notwendigen Daten zum Nachvollziehen publizieren, sondern sogar ihren Code! Und dieses ist etwas, was viele auf die Barrikaden treiben würde, auch wenn es beispielsweise Kollaboration eher erleichtern würde.

Notwendig wäre hier auch eine sinnvolle Lizensierung des Codes. Zusammengefasst ist dies beispielsweise in diesem Artikel von Victoria Stodden, in dem sie einen "Reproducible Research Standard" vorschlägt. Im Zentrum des Artikels steht die Lizensierung von wissenschaftlichen Erzeugnissen, was die Sache leider wieder entsetzlich langweilig macht.

Und sonst:
Creative Commons Lizenzvertrag
Birchlog von P. Birken steht unter einer Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.
Beruht auf einem Inhalt unter birchlog.blogspot.com.