Netzgeflüster: ‚Künstliche Intelligenz‘ (III) – „Künstliche Neuronale Netze“

Posted by in Informatik, Netzgeflüster

Heute in der mitlerweile dritten Ausgabe der Reihe beschäftigen wir uns mit einer sehr populären Vorgehensweise, um sowas wie Künstliche Intelligenz aufzubauen. Den künstlichen neuronalen Netzen. Das biologische Vorbild dieses Verfahrens ist tatsächlich nichts geringeres als: unser Gehirn! Das wieso und warum und wie ist Gegenstand der heutigen Ausgabe, in der ich wie immer versuche das ganze möglichst knapp und prägnant und ohne viel Fachchinesisch rüberzubringen. Dabei setzen wir auf der letzten Ausgabe auf, die sich mit maschinellem Lernen auseinandersetzte. Also heute: Was sind ‚Künstliche Neuronale Netze‘?

Unser Gehirn als Vorbild

Der Name „künstliches neuronales Netz“ (KNN) sagt eigentlich schon alles. Es ist eine künstlicher, letztendlich nur digital existenter Nachbau unseres Nervensystems. Sogar noch weniger „greifbar“: es wird nur die Funktionsweise nachempfunden. Unser Nervensystem funktioniert ja durch elektrische Impulse die über unsere Nerven schießen. Erinnert ihr euch? Aktionspotentiale? Bio – in der Schule? Jaaaa, genau die Teile. Die vielen Nervenzellen sind untereinander verbunden und die Impulse wandern von einer Nervenzelle (einem Neuron) zur nächsten. Dabei summieren sich die Impulse auf, d.h. sie werden stärker. Und auch nur, wenn sie stark genug sind, werden sie an die verbundenen Nervenzellen weitergegeben. Und so abstrakt flitzen die Informationen durch unseren Körper! So eine Information kann sowohl der Befehl an die Muskeln sein „Heb den Arm“, als auch was komplexeres. „Unsere Gedanken“ zum Beispiel.

Aus der Biologie in den Computer …

Schon krass, wenn man überlegt, dass diese elektrischen Impulse auch unsere Gedanken darstellen. Unsere Leistungen – wie wir abwägen, kombinieren und wiedererkennen. Wiedererkennen … Erkennung … Mustererkennung. Moment, da war doch was!? Genau! Das ist eine beliebte Disziplin der Künstlichen Intelligenz. Wenn die Vernetzung von Nervenzellen beim Menschen der Schlüssel zu großartiger Denkleistung ist, dann kann das doch auch digital nachgebildet werden, was? So dachte man sich und entwickelte den künstlichen Ansatz: künstliche neuronale Netze. Allerdings ist es nie das Ziel ein komplettes „Hirn“ oder „Nervensystem“ nachzubilden. (Das machen nur die Leute, die versuchen Mind-Uploading zu machen, also einen ‚Menschen‘ versuchen abzuspeichern, creepy – was?) Solche KNN werden in der Mehrzahl der Fälle nur aufgebaut, um eine bestimmte Aufgabe zu lösen. Zum Beispiel Mustererkennung.

Jetzt kommt wieder die Mathematik …

Bei KNN wird das ganze ziemlich stringent nach dem biologischen Vorbild ’nachgebaut‘. Man hat eine Anzahl von Neuronen, die irgendwie untereinander vernetzt sind – wie beim Vorbild. Stellt man sich die Neuronen als Knoten vor, die untereinander wild verbunden sein können, erkennt der Mathe-Junkie: das kann man als Graph und als Matrix mathematisch darstellen. Und dann kann man das schön optimieren und sich daran austoben. Damit aber unser KNN tut, was es tun soll (z.Bsp. Muster erkennen), muss es eben erst trainiert werden. Wir erinnern uns an den letzten Artikel der Reihe: das geht mit maschinellem Lernen.

Image Source: Miss Booleana

Image Source: Miss Booleana

Mini-KNN: 4 Neuronen, die – natürlich – miteinander verbunden sind. Bei 1 und 2 gehen Beispieldaten rein und Neuron 4 soll dann das Ergebnis kennen. Man muss sich vorstellen: an jedem Neuron wird „gerechnet“. Die Formeln dafür sind Standard je nach dem, welches Verfahren man nutzt oder wie die Aufgabenstellung ist.

Für bspw. überwachtes maschinelles Lernen, benötigen wir also Beispieldaten. Mit denen füttern wir unser KNN, unser Programm. Und dann gucken wir mal, was hinten rauskommt. Stellen wir uns mal vor, dass wir wollen, dass unser KNN anhand vieler Daten (Blattdicke, Blattlänge, …) viele ähnliche Blumen auseinanderhalten soll. Wir geben die Daten ein (Blattdicke, Blattlänge, …) und rauskommen soll entweder Blume1, Blume2, … usw. Dann beginnen wir mit dem Training, damit das KNN „lernt“ wie die Zusammenhänge zwischen Blattdicke, Blattlänge, … und der Blumenart sind. Blume1 hat dicke Blätter und nicht so lange Blätter, Blume2 hingegen .. usw. Wir geben die Beispieldaten ein und schauen was es ausspuckt. Das ist ein bisschen wie „raten“. War die Antwort falsch, müssen wir das Netz gemäß überwachten maschinellen Lernens anpassen. Das machen wir mit der Mathekeule: welche Neuronen sind wie stark am Ergebnis beteiligt? Und dann verändern wir diese. Das kann auf vielfältige Art geschehen. Neuron löschen, Verbindung trennen, stärker oder weniger stark gewichten, usw. Was wir tun, das kriegt die Mathekeule für uns raus. Und das machen wir solange, bis das Netz kaum noch Fehler macht. Desto größer das Netz, desto länger kann das dauern. (Sekunden … Minuten … Tage?) Und wenn unser Netz dann nur noch in 99,999…% der Fälle Fehler macht 😉 können wir es an frische Daten ranlassen. Welche bei denen wir das Ergebnis nicht kennen, aber wissen wollen. Der Praxistest. Blume1. Richtig!? Hoffentlich …. 😉

Zu den bisherigen Artikeln der Reihe:

‘Künstliche Intelligenz’ (I) – Was ist dran?
‘Künstliche Intelligenz’ (II) – Maschinelles Lernen

Habt ihr Anregungen für künftige Artikel? Soll ich mal die Mathekeule schwingen und wir uns KNN an einem einfachen Beispiel im Detail ansehen? oder gibt es andere Themen die euch interessieren? Ich bin offen für Vorschläge – immer her damit.

Netzgeflüster ist eine Kategorie meines Blogs in der ich mich immer zwischen dem 10. und 15. eines jedes Monats Themen rund um IT, Forschung, Netzwelt, Internet und eben auch Gerüchten widme. 🙂