Neuronales Netz

Wenn Sie einigermaßen häufig im Internet surfen, werden Ihnen bestimmt schon einmal die Captcha-Abfragen aufgefallen sein. Die tauchen immer dann auf, wenn man von Ihnen irgendeine Abfrage
verlangt. Man will verhindern, dass ein Hacker-Tool dies unbegrenzt oft macht und dadurch den Server lahmlegt.
Also verwendet man Bilder, auf denen das menschliche Hirn Zahlen und/oder Buchstaben erkennt und ein Computerprogramm nicht. Bleibt die Frage, wieso der Mensch dann in diesem Punkt dem Rechner
überlegen ist. Dazu wäre es zunächst einmal nützlich, den Weg zu gehen, auf dem ein Computer überhaupt aus Pixelbildern Ziffern erkennen kann, die z.B. ziemlich schlampig aufgeschrieben wurden.
Schon an dieser Stelle müssen wir ziemlich stark vereinfachen. Nehmen wir daher ein Rechteck von nur 20 mal 30 Pixel Seitenlänge und beschränken wir uns auf Ziffern, die von einem Computerprogramm
verarbeitet werden sollen. In der Praxis kämen zumindest noch Groß- und Kleinbuchstaben hinzu oder es wären völlig andere Charakteristika zu erkennen. Wir aber bleiben bei der Vorgabe, dass es sich in
jedem Fall um Ziffern von 0 bis 9 handelt.
Pixel auf einem Raster sollen also zuverlässig einer dieser zehn Ziffern zugeordnet werden, eine typische Aufgabe des Sensors oder des Systems beim autonomen Fahren. Was schon Kindern leicht fällt,
dazu braucht ein Computer schon eine gewisse Rechenleistung. Von besonderer Bedeutung wird auch hier wieder die selbstlernende Eigenschaft von neuronalen Netzen sein.
Die 20 mal 30 ergeben 600 Pixel ergeben, eine eher magere Auflösung. Trotzdem werden Sie sehen, dass es für unser Programm schon eine ziemliche Aufgabe darstellt. Natürlich sind die Pixel im
Speicher hintereinander angeordnet. Die Analyse muss jetzt verschiedene Stufen durchlaufen, um zu einer endgültigen Aussage zu gelangen, um welche Ziffer es sich handelt.
Es werden in der Praxis wohl viele Stufen sein, aber wir reduzieren diese wiederum auf zwei, weil wir nur das Prinzip einer solchen Auswertung zeigen wollen. Wir nennen die Stufen 'Layer'. Ein slcherer Layer
besteht aus vielen Bildern mit 600 Pixeln, die einzelne Strukturen enthalten. Man könnte sie auch Vergleichbilder nennen. Und dann ist da noch ein Neuron, das zu jedem Bild eine Bewertung enthält.
Das Neuron hat also so viele Zahlen, wie der Layer Vergleichsbilder hat. Und wodurch unterscheiden sich die beiden von uns gewählten Layer? Durch die Komplexität der auf ihren Bildern dargestellten
Strukturen. Dazu am besten ein Beispiel. Im zweiten Layer könnten die Bilder schon ziemlich weit entwickelte Teile von Ziffern enthalten, z.B. könnte es ein Bild mit einem Kreis geben.
Wenn dessen Bewertung hoch ist, schränkt das die Suche nach der richtigen Ziffer gewaltig ein. Es kommt nur noch die '6', die '8' oder die '9' in Frage. Der zweite Layer enthält also schon besser
ausgeprägte Strukturen. Das könnten auf verschiedenen Bildern längere Linien sein, die alle irgendwie senkrecht verlaufen. Sie merken schon, das läuft z.B. auf Teile der Ziffern '1' und '4' hinaus.
Zeigen also im zweiten Layer Neuronen für je ein Bild mit einem Kreis und eins mit senkrechtem Strich hohe Werte, dann kommen nur noch die Ziffern '6' und '9' in Frage. Aber wie können die beiden
unterschieden werden? Ganz einfach: Es gibt im zweiten Layer nicht nur Bilder mit verschiedenen Kreisen, sondern auch noch solche, auf denen die Kreise verschieden angeordnet werden. Desgleichen
passiert mit den langen, in etwa senkrechten Strichen. Ist also der Strich oberhalb des Kreises angeordnet, so ist die '6' wahrscheinlich, ansonsten die '9'.
Wichtig sind hierbei die Verbindungen zwischen den Neuronen der entsprechenden Kreisbilder und denen der Striche, die quasi automatisch zur richtigen Ziffer führen. Diese Verbindungen stellen einen Teil
der neuronalen Vernetzung dar. Es gibt sie natürlich auch zwischen den Layern 1 und 2. Was macht eigentlich der erste Layer? Der wäre exakt so aufgebaut wie der zweite Layer, nur dass er Bilder von
Teilstrukturen enthielte.
Was ist denn eine Teilstruktur von z.B. einem Kreis? Na das sind Ecken, wunderbar gerundete, eckige und bisweilen auch einfach nur schräge Linien. Die gibt es wieder in verschiedenen Anordnungen auf
den einzelnen Bildern und das Neuron erhält eine Gesamtbewertung, wie gut die einzelnen Pixel mit denen des Ursprungsbildes übereinstimmen. Man könnte auch sagen, das Ursprungsbild wird auf Ecken
hin durchsucht.
Und wieder sind Verbindungen nötig, denn wenn der Layer 2 auf Kreise hin untersucht, muss der Layer 1 mindestens vier Ecken gefunden haben. Alles andere macht keinen Sinn. In unserem Beispiel
stehen die zwei Layer mit ihren Neuronen für viele mehr in wirklich ausgeführten Programmen. Sie sollen zeigen, dass die zu untersuchenden Strukturen immer komplexer werden, anders kommt man nicht
zu einer erfolgreichen Auswahl von Ziffern.
Erfolgreich, das ist das Stichwort. Es führt uns zu der Frage, wie denn diese vielen Layer entstehen. Woher weiß der Computer, was eine Ecke ist? Das weiß er natürlich nicht. Trotzdem macht er die Layer
selber, genauer gesagt die Zwischenbilder der einzelnen Layer. Wie macht er das? Er bildet Strukturen, die z.B. schon entstehen, wenn auch nur zwei Pixel einander zugeordnet werden.
Aber da gibt es doch unendlich viele Möglichkeiten. Dazu muss man das Verfahren der Bildung von solchen Layern betrachten. Denn etwas muss ihn natürlich vorgegeben werden und das sind einerseits
z.B. Tausende von Pixelbildern und andererseits die jeweilige Auflösung, also die Ziffer, die er hätte erkennen müssen.
So und jetzt kann er, u.U. tagelang, verschiedene Layer basteln und ausprobieren, wie sich diese bei der Suche nach der richtigen Ziffer bewähren. Das wäre dann der so häufig beschriebene Lernprozess.
Es geht also keineswegs ohne irgendwelche Beziehung zur Realität, so dass wir das 'Lernen' des Computers durchaus in der Hand haben.
Sie könnten hier schon zum nächsten Kapitel übergehen, denn das Wesentliche ist gesagt. Ergänzend soll hier nur noch auf eine gewisse Intensität der Pixel eingegangen werden. Wieder vereinfachen wir,
weil wir die z.T. für die Bilderkennung sehr wichtige Farbgebung ausblenden und nur als unterschiedliche Helligkeit wahrnehmen.
Wenn also die Pixel des Ursprungsbildes der Reihe nach mit denen eines der Bilder im Layer 1 verglichen werden, entsteht immer wieder im zugehörigen Neuron eine Bewertung von 0 bis 1, mindestens
mit zwei Nachkommastellen und letztere für hohe Übereinstimmung. Jetzt könnten aber zufällig im Bereich großer Helligkeit beim Vergleichsbild zufällig irgendwelche graue Pixel liegen, die zwar nicht zu
einer Erkenntnis beitragen, aber das Bild leicht verfälschen.
Hilfreich ist es hier, von jeder Bewertung einen bestimmten Betrag abzuziehen, um diese Übereinstimmungen auszublenden. Die Auswertung konzentriert sich auf das Wesentliche, die Trennschärfe wird
erhöht. Wählt man diesen Wert zu hoch, könnte allerdings die Rate des Erkennens sinken. Vermutlich kann das Programm beim Selbstlernen auch hier unterschiedliche Werte ausprobieren und am Erfolg
messen.
|