Olala ... aus gegebenem Anlass und ohne jede weitere Vorrede:
- Orginalbild von Hubble in voller Aufloesung New view of the Pillars of Creation — visible (@Moderator: Creative Commons License)
- Faltung mit einem Gausskernel mit 8 Pixel Standardabweichung
- Deconvolution mit BlurXTerminator, PSF = 8
- Deconvolution mit Regularisierter Lucy-Richardson, 10 iter, PSF = 8 (einer meiner erfahrungsmaessig gut funktionierenden Einstellungen)
- Deconvolution mit Regularisierter Van Crittert, 5 iter, Deringing, PSF = 8 (einer meiner anderen erfahrungsmaessig gut funktionierenden Einstellungen)
- Bewertet wurde die mittlere quadratische Abweichung (RMSE) zwischen dem rekonstruierten Bild und dem Original (also kleiner = besser)
Zu beachten ist der RMS-Fehler, der ausdrueckt wie nahe man an's Original nach der Rekonstruktion wieder herankommt. In Vollaufloesung sind die Unterschiede sehr offensichtlich und die Verbesserung in Richtung Original sehr deutlich.
Das Ding macht genau das was auf der Verpackung steht: Es ist ein convolutional neural network (CNN), dass die mathematische Funktion einer Entfaltungsoperation (Deconvolution) durchzieht.
Fuer alle Ungeduldigen das Kurzfazit:
- Schlaegt sich quantitativ wie eine Deconvolution "ohne Fummeln".
- Wer etwas Fingerspitzengefuehl hat, kriegt's mit den etablierten Methoden (umsonst) besser hin.
- Solche Sachen haben nichts mit kuenstlicher Intelligenz zu tun.
- Bitte weitergehen, hier gibt es NICHTS besonderes zu sehen.
Fuer die, die es an Wolkentagen wirklich etwas besser wissen wollen:
Das Wort "Kuenstliche Inteligenz" ist hier eigentlich ziemlich fehl am Platz und IMHO sowieso nur Marketing, um fuer eine andere numerische Implementierung einer Deconvolution ordentlich abzukassieren. Das Ding ist wie gesagt ein trainiertes "convolutional neuronal network" (CNN), welche eine Deconvolution mit einer variablen PSF durchfuehrt. Steht auch genau so in der Anleitung/Beschreibung.
So ein CNN ist daher in erster Linie einfach eine sehr komplexe mathematische Funktion, nur eben eine die man eben nicht mehr algebraisch ausdruecken kann und die nicht mit "konventionellen" numerischen Methoden implementiert wurde. Diese Deep-Learning-Netzwerke sind auf den ersten Blick etwas verwirrend, trotzdem gibt es da ein paar Spielregeln, die sowas demystifizieren, denn...
...fuer solche CNN-Sachen bei solchen Anwendungen gilt gemeinhin das "
Universal Approximation Theorem":
"The Universal Approximation Theorem states that a neural network with 1 hidden layer can approximate any continuous function for inputs within a specific range..."
Dazu gibt es drei Dinge zu sagen:
(I) Ist die Funktion die da angnaehrt werden soll, sehr komplex und werden immer mehr dieser Layer gestackt (um immer mehr Funktionen zu einem ganzen Work-Flow zusammenzufassen), dann gehen die anzupassenden Freiheitsgrade des Netzwerks durch die Decke und das benoetigte Trainingsmaterial fuer eine "korrekte" Naehrung wird schnell sehr, sehr gross. Das kann man mit "data augmentation" teilweise mildern, ganz vom Tisch bekommt man das nicht. Sind die Trainingsdaten unterkomplex, dann wird die Naehrung zuweilen einfach schlecht. In diesem Fall hier (BlurXTerminator ) heisst das: Wie und womit BlurXTerminator trainiert worden ist wissen wir ebensowenig, wie auch wie das Ding eigentlich validiert worden ist.
Wissenschaftlich waere das nicht akzeptabel, aber durchaus reparabel, wenn man es denn wollte. Fuer Amateure muss einen das grundsaetzlich nicht so sehr kratzen, jedenfalls so lange man mit den Ergebnissen zufrieden ist (und die sind nach meinem schnellen Test fuer mich ok), man es eben nicht uebertreibt (was "uebertreibt heisst, kommt weiter unten) und man sich darueber im klaren ist, sich ab einem gewissen Punkt Artefakte einzufangen.
(II) Auch eine Naehrungsloesung, die an z.T. eine ueberschaubare Menge Messdaten zum Training angepasst wird, kann man "uberfitten". Das ist beim Anfitten von analytischen Funktion an Daten auch nicht anders. Tritt das ein, dann ist die Naehrung schnell eine instabile Hausnummer und entspricht nicht der Realitaet. Das ueberprueft man bei sowas i.d.R. anhand
unabhaengiger Testdaten. Mein kurzer und nicht vollumfaenglicher Test zeigt, das Ding macht was auf der Tube steht (Deconvolution) und ueberfittet bei vernuenftigem Input die Daten nicht.
Und das ist prima.
(III) Auch zum
Universal Approximation Theorem gehoert noch dieser kleine pikannte Zusatz: "... If the function jumps around or has large gaps, we won't be able to approximate it." Oft ist es den CNN-Anwendern nicht einmal klar, welches analytische Funktionsaequivalent diese Layer da durch eine komplexe numerische Naehrungsloesung ersetzen (sogar besser noch: Man will es sogar aus Ignoranz ganz stolz gar nicht wissen und haelt daher CNN irgendwie fuer "intelligent" statt fuer eine sehr komplexe mathematische Naehrungsloesung). Sind diese urspruenglichen (analytischen) Funktionen unstetig oder numerisch in weiten Teilen nicht stabil, dann ist es das CNN gemaess dem
Universal Approximation Theorem als Naehrungsloesung auch nicht, egal wieviel Trainingsdaten man da drauf wirft. Irgendwo weiter oben hat's schon mal jemand ganz richtig geschrieben: Auch die "normale" Deconvolution von komplett verwaschener Bildinformation ist ein mathematisch nicht eindeutig loesbares (reversibles) Problem ("underdetermined") und muss i.d.R. durch eine sogenannte "Regularisierung" ueberhaupt erst numerisch loesbar gemacht werden. Schon ganz ohne CNN oder KI oder sonstwas, ist eine "konventionelle" Entfaltungsoperation keine triviale Sache und wird schnell numerisch unstabil.
Bereits von daher ist es (mathematisch) glasklar ohne den "BlurXTerminator" selbst jemals probiert zu haben, wenn man es mit einem CNN-Deblurring uebertreibt, dass die damit durchgefuehrte Entfaltungsoperation numerisch
auch unstabil werden
muss. Denn die "algebraische" Formulierung einer Entfaltung (und deren numerischer Implementation) wie z.B. Lucy-Richardson oder Van Crittert wird das auch.
Hier mal dieselben Daten mit einem Gausskernel von Sigma = 2 "verwaschen" aber ("Le Théâtre cruel") mit einer PSF = 8 durch eine Van Crittert Decon und den BlurXTerminator gemangelt:
... und das wird dann eine voellig ueberschaerfte Freakshow, die weit ueber das hinausgeht, was in den Bilddaten sowieso steckt (Sobel Edge Enhancement?). Das hat aber nichts mit "von Hubble gelernt" zu tun, noch waere das grundsaetzlich BlurXTerminator spezifisch (welches irgendwelche geheimnisvollen Dinge macht), sondern einfach eine knallhart verissene Deconvolution (weil mit einer komplett falschen PSF). Und je nach Implementierung, CNN inklusive, manifestiert sich sowas dann auf 1000 verschiedene Arten "knallhart verrissen". Und "knallhart verissen" heisst hier eben, der RMSE Unterschied zwischen dem Orginal und diesen Brutal-Rekonstruktionen ist 2-5x so gross wie der RMSE der leicht "verwaschenen" Version, die auf das Original rekonstruiert werden sollte (also RMSE=0).
Grundsaetzlich:
Man muss sich mal davon loesen zu meinen, dass solche CNNs in diesem Zusammenhang "intelligent" oder KI seien, oder irgendeinen magischen Zauberstab darstellen, der die intrinsischen Grenzen mathematischer Probleme in ihrer analytischen Form irgendwie "magisch wegzaubert".
Die Dinger sind i.d.R. einfach sehr schnell in der Anwendung, verlagern den ansonsten notwendigen Hirnschmalz einer cleveren numerischen Implementierung auf die Fleissarbeit der Layer-Konstruktion und des Sammelns von Trainingsdaten+Training und packen das Resultat in eine "black box" die dann eben in ihrer Komplexitaet schwer zu durchschauen ist...
... sind aber in diesem Fall hier einfach eine verschachtelte Naehrungsloesung einer konventionellen mathematischen Operation.
Diese wird dann leider mystifiziert...
Nebenbemerkung: Bei mir lief BlurXTerminator ironischerweise 10x so langsam wie meine "Standard PI Van Crittert Decon" und war dieser bereits beim ersten Versuch vom RMS-Error der konventionellen Implementierung unterlegen. Die Frage ob Ich dafuer 100 Eier hinlegen wuerde, stellt sich da fuer mich eigentlich derzeit nicht.
Meiner Meinung nach muss man mit einer Deconvolution bei den Bildern sowieso sorgsam umgehen und eigentlich hatte Ich ueberhaupt nicht vor, das BlurXTerminator-Ding ueberhaupt herunterzuladen und auszuprobieren, weil das was diesbzgl. in z.B. PI sowieso schon 'drin steckt mir dicke reicht. Aber nachdem man nicht nur hier sondern auch auf youtube immer mehr "Mythen, Monster, Mutationen" darueber findet, hat's mich doch jetzt mal gejuckt nachzuschauen, ob es da ueberhaupt was zu staunen gibt.
Fuer mich ein klares "Nein".
Gruss & CS