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

Letzten Monat habe ich eine kleine Pause von der Künstliche-Intelligenz-Reihe eingelegt, um noch einigermaßen zeitnah über meinen Blogumzug zu schreiben. Die Themen sind mir nicht ausgegangen. 😉 Nachdem wir in der letzten Ausgabe Künstliche Neuronale Netze kennengelernt haben und nun wissen, dass das menschliche Nervensystem, insbesondere das Gehirn, deren biologisches Vorbild war, sehen wir uns heute im Detail an wie die Dinger funktionieren. Der Anspruch der Reihe ist immer noch das ganze möglichst verständlich zu erklären. Mal sehen wie mir das gelingt … . Also heute: Wie funktionieren ‚Künstliche Neuronale Netze‘?

Wie war das nochmal …?

xor_bearb1

Im letzten Artikel haben wir schon Mal darüber gesprochen, dass der Begriff „Neuron“ (Nervenzelle) übernommen wurde. In Künstlichen Neuronalen Netzen (KNN) wird also ebenfalls von Neuronen gesprochen. Mehrere davon sind vernetzt wie am Vorbild unseres Nervensystems. Oben sind beispielsweise die Neuronen i1, i2, 3 und 4. Und die sind auch vernetzt.

KNN sollen eine Aufgabe erledigen, beispielsweise Mustererkennungs- bzw. Klassifikationsaufgaben. Zuerst lernen sie an Beispielen, deren Ergebnis bekannt ist. Das geschieht, damit sie später auf neue Daten losgelassen werden können, für die man sich eine Klassifikation wünscht. Angenommen du gibst dem KNN als Eingabe/Input Daten über bestimmte Umweltverhältnisse. Temperaturen, Niederschlagsraten, etc. Nun weißt du aus vergangenen Jahren welche Temperaturen und Niederschlagsraten welchen Ernteertrag bedeuteten. Der Ernteetrag ist der Output und kann in Klassen eingeteilt werden, zum Beispiel „gut“ und … „schlecht“. 🙂 Du läßt das KNN an den Daten trainieren, bis es für jeden Input den korrekten Output ausgibt. Dann sollte das KNN angepasst sein. Formulieren wir es mal dramatisch: „Es hat den Zusammenhang gelernt“. Jetzt nimmst du die Daten aus dem Frühjahr 2014 – den Output kennst du noch nicht. Dein Netz hat aber die Zusammenhänge gelernt und kann jetzt eine Prognose machen. Es gibt dir aus, wie der Ertrag sein wird und liefert „gut“ oder „schlecht“ am Outputneuron. Das wäre so in etwa – wir erinnern uns – maschinelles Lernen. Aber wir schauen uns ein noch einfacheres Beispiel an.

Heute mit durchrechnen, yeah!

xor_bearb2

Wir wollen uns heute anschauen wie ein KNN „denkt“, das heißt nichts anderes als wie man vom Input bis zum Output so ein Netz durchrechnet. Dabei nehmen wir natürlich eben kein Wetter/Ernte-Beispiel, sondern was einfaches. Nämlich die logische Verknüpfung XOR. Das steht für „exklusives Oder“ und ist manchen aus der Schaltungstechnik bekannt. Exklusives Oder heißt nichts anderes, als „Entweder Oder“. Da passt es ganz gut, dass mein KNN zweimal Inputneuronen (i1 und i2) hat. Brauche ich als jeweils 2 Inputwerte für mein einfaches Beispiel hier. Wenn ich also als Input die binären Werte 0 (falsch) und 1 (wahr) liefere, dann habe ich 4 Kombinationsmöglichkeiten als Input: (0,0) ; (0,1) ; (1,0) und (1,1). Der Output muss für die Kombinationen sein: (0) ; (1) ; (1) und (0). Weil: der Input muss immer 0 und 1 sein, damit XOR auf wahr (1) steht. Die Tabelle ganz unten verdeutlicht das nochmal. Wer sich noch ein wenig an den letzten Artikel erinnern kann, weiß: die Neuronen sind untereinander vernetzt. Die Verbindungen werden hier durch Pfeile dargestellt. Und wie stark eine Verbindung ist, gibt man durch Verbindungsgewichte an. Die sind hier als grüne Zahlen dargestellt. Unser Input saust von Neuron zu Neuron – und wenn die Werte dabei über eine Verbindung gehen, werden sie mit dem Verbindungsgewicht multipliziert.

xor-w-s

Kommen mehrere Ergebnisse bei einem Neuron an (zum Beispiel beim 3. Neuron), dann werden sie addiert. Jetzt werden sie aber nur dann weitergeleitet, wenn sie größer sind als ein bestimmter Schwellenwert. Wir erinnern uns: die gibt es bei den echten Nervenzellen auch. Hier werden sie als orangefarbene Zahlen dargestellt. Ein Beispiel: unser Input ist (0,0). Das heißt Inputneuron i1 bekommt als Input eine 0, ebenso Inputneuron i2. Beide wandern sowohl zum Neuron 3, als auch zum Neuron 4 über Verbindungen. Wir schauen uns den Weg zu Neuron 3 an. Von i1 kommt die 0 und wird multipliziert mit 1: das heißt 0*1 = 0. Ebenso für den Input aus i2: 0*1 = 0. Bei Neuron 3 kommt also 0 + 0 an. Das heißt: 0. Der Schwellenwert ist aber 1,5. Ist 0 > 1,5? Nein. Also wird das Signal nicht weitergeleitet. Nicht weitergeleitet bedeutet „0“. Nichts. Wäre das Ergebnis am Neuron größer als Schwellenwert, dann würde 1 weitergeleitet werden. Was wir eben gerechnet haben war der Rechenweg der ersten Zeile bis zu o3:

xor

Den Rechenweg kann man in der Tabelle oben für alle Inputkombinationen nachvollziehen. Mit net3 ist das Neuron 3 gemeint, dementsprechend mit net4 das Neuron 4. Der Output für Neuron 3 steht in der Spalte o3, ebenso für Neuron 4 in o4. Bei o4 geht es nicht weiter – das ist das Gesamtergebnis, der Output des ganzen Netzes. Also wir sehen: mit den angegebenen Verbindungsgewichten und Schwellenwerten bekommen wir den gewünschten Output! Ja, toll … aber … ist das immer so einfach? Nein. Hier ist ja alles vorgegeben. Die Verbindungsgewichte und Schwellenwerte weißt du nicht zwingend. Aber gerade Verbindungsgewichte setzt man häufig erstmal irgendwie. Random. Im Zuge des maschinellen Lernens sind sie einer der Angriffspunkte, um das Arbeiten des Netzes zu beeinflussen. Viele Lernalgorithmen ändern die Gewichte ab, bis das Ergebnis des Netzes stimmt. Klingt nach raten, ist in Wirklickeit schwieriger. Ein paar Zahlen ändern ist „lernen“? Fast schon wieder sehr profan, dass das das Abändern dieser kleinen unschuldigen Werte das Lernen einer Künstlichen Intelligenz darstellt, oder?

Zu den bisherigen Artikeln der Reihe:

‘Künstliche Intelligenz’ (I) – Was ist dran?
‘Künstliche Intelligenz’ (II) – Maschinelles Lernen
‘Künstliche Intelligenz’ (III) — “Künstliche Neuronale Netze”

Hattet ihr euch das so profan vorgestellt? Oder kennt ihr euch schon mehr auf dem Gebiet aus? Spielt das Thema KI vielleicht sogar in eurem Studium eine Rolle?

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. 🙂

3 Antworten

  1. […] Ler­nen ‘Künst­li­che Intel­li­genz’ (III) — “Künst­li­che Neu­ro­nale Netze” ‘Künst­li­che Intel­li­genz’ (IV) — “Künst­li­che Neu­ro­nale Netze” im Detail ’Künst­li­che Intel­li­genz’ (V) — Wer war Alan Turing? Und was ist der Turing-Test? […]

  2. […] – Maschinelles Lernen ‘Künstliche Intelligenz’ (III) — “Künstliche Neuronale Netze” ‘Künstliche Intelligenz’ (IV) — “Künstliche Neuronale Netze” im Detail ‚Künstliche Intelligenz‘ (V) — Wer war Alan Turing? Und was ist der Turing-Test? […]

  3. […] ‘Künstliche Intelligenz’ (I) – Was ist dran? ‘Künstliche Intelligenz’ (II) – Maschinelles Lernen ‘Künstliche Intelligenz’ (III) — “Künstliche Neuronale Netze” ‘Künstliche Intelligenz’ (IV) — “Künstliche Neuronale Netze” im Detail […]

Schreibe einen Kommentar

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