{"id":66545,"date":"2025-09-16T06:05:35","date_gmt":"2025-09-16T04:05:35","guid":{"rendered":"https:\/\/www.herr-rau.de\/wordpress\/?p=66545"},"modified":"2025-09-16T06:08:26","modified_gmt":"2025-09-16T04:08:26","slug":"sommerferien-neuronenzirkus","status":"publish","type":"post","link":"https:\/\/www.herr-rau.de\/wordpress\/2025\/09\/sommerferien-neuronenzirkus.htm","title":{"rendered":"Sommerferien: Neuronenzirkus"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Wie versprochen habe ich die Sommerferien \u00fcber weitgehend die Klappe gehalten bei Neuronalen Netzen. Aber ich konnte die Finger davon nicht lassen, und so habe ich alle meine bisherigen Projekte &#8211; <a href=\"https:\/\/www.herr-rau.de\/wordpress\/2025\/07\/neuronales-netz-in-calcexcel-mit-softmax.htm\">Netz in Tabellenkalkulation<\/a>, <a href=\"https:\/\/www.herr-rau.de\/wordpress\/2025\/07\/stilwell-brain-revisited-und-mein-erstes-javascript-programm.htm\">Stilwell-Brain,<\/a> und 2020 <a href=\"https:\/\/www.herr-rau.de\/wordpress\/2020\/08\/ki-fast-alles-was-ich-darueber-weiss-teil-2-neuronen.htm\">Neuronenvisualisierung in Java<\/a> &#8211; zusammengefasst in einer einzigen Webseite: <a href=\"https:\/\/neuronenzirkus.de\">neuronenzirkus.de<\/a>. Hier habe ich diese Webseite, die man nat\u00fcrlich auch separat ansteuern kann, eingebettet:<\/p>\n\n\n\n<iframe loading=\"lazy\" title=\"\" width=\"700px\" height=\"700px\" src=\"https:\/\/neuronenzirkus.de\/\"><\/iframe>\n\n\n\n<p class=\"wp-block-paragraph\">Erkl\u00e4rungen gibt es nicht viel dazu; das richtet sich an fortgeschrittene Einsteiger und Sch\u00fcler und Sch\u00fclerinnen. Es gibt folgende aufeinander aufbauende Teile;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Was ein Neuron ist:<\/strong> Ein Neuron ist von au\u00dfen ein Ding, da gehen Eingangswerte rein und ein Ausgangswert kommt heraus. Vorbild bei der Erfindung war die Vorstellung, die man damals von der Wirkungsweise einer biologischen Nervenzelle hatte:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"509\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/ki_nervenzelle_bio.jpg\" alt=\"\" class=\"wp-image-16724\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/ki_nervenzelle_bio.jpg 700w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/ki_nervenzelle_bio-300x218.jpg 300w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/ki_nervenzelle_bio-150x109.jpg 150w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Von innen besteht ein Neuron aus Gewichtungen (f\u00fcr jeden Eingang eine) und einem Schwellenwert. Die Eingangswerte werden mit den Gewichtungen multipliziert und diese Produkte addiert, wovon noch der Schwellenwert abgezogen wird. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"315\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/ki_neruon_skizze.jpg\" alt=\"\" class=\"wp-image-16702\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/ki_neruon_skizze.jpg 700w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/ki_neruon_skizze-300x135.jpg 300w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/ki_neruon_skizze-150x68.jpg 150w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Da kommt eine Zahl heraus, die in die Aktivierungsfunktion geht, im einfachsten Fall: es kommt 1 heraus bei positiven Werten und 0, und 0 bei negativen Werten. In diesem Fall gibt das Neuron dann eben nur 1 oder 0 aus, je nach den Eingangswerten. Bei unterschiedlichen Eingangswerten kann ein gegebenes Neuron dann eben feuern oder nicht feuern. Man erkennt beim Herumspielen: ein Neuron kann Eingabedaten linear separieren, quasi bei zwei Dimensionen einen geraden Strich ziehen zwischen der Menge an Eingabewerten, die zu einem Feuern f\u00fchren, und den anderen. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Was ein Neuron kann:<\/strong> Hier kann man verschiedene Aufgaben laden und schauen, ob man L\u00f6sungen findet, indem man Schwellenwert und Gewichte manuell \u00e4ndert. Das sind weitgehend Aufgaben, die ein einzelnes Neuron mit 2 Eing\u00e4ngen l\u00f6sen kann: einen Strich ziehen zwischen links\/rechts, oben\/unten, linksoben\/rechtsunten, und \u00fcberall sonst. Was genau ein Neuron macht, h\u00e4ngt nur von den Gewichtungen und dem Schwellenwert ab. (Und der Aktivierungsfunktion.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Ein Neuron lernt:<\/strong> Man kann die L\u00f6sungen auch automatisch finden lassen. Das hei\u00dft &#8222;\u00fcberwachtes Lernen&#8220;, <em>supervised learning.<\/em> Wenn man Aufgaben mit L\u00f6sungen hat, kann man anhand derer das Neuron trainieren. Dann muss man nicht m\u00fchsam selber die richtigen Einstellungen f\u00fcr Gewichtungen und Schwellenwert suchen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Was beim Lernen geschieht:<\/strong> Hier kann man Details des Lernalgorithmus anschauen und den wiederholt auf denselben Eingabedatensatz anwenden und beobachten, wie sich Schwellenwert und Gewichte \u00e4ndern, bis sie passen. Das funktioniert bei einem einzelnen Neuron noch recht einfach: Wenn 1 herauskommen soll, aber tats\u00e4chlich 0 herauskommt, dann ist der Ausgangswert zu niedrig. Wenn der h\u00f6her werden soll, muss man lediglich ein oder mehrere Gewichte erh\u00f6hen oder den Schwellenwert verringern. Und das macht man immer nur um ein kleines bisschen, abh\u00e4ngig von der errechneten Abweichung, von der Lernrate, und vom jeweiligen Eingangswert. Wenn man das f\u00fcr genug Werte macht, pendelt es sich fr\u00fcher oder sp\u00e4ter bei einer L\u00f6sung ein (sofern es \u00fcberhaupt eine gibt).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Aktivierungsfunktionen:<\/strong> Hier kann man die Aktivierungsfunktionen Sigmoid (beziehungsweise eine beispielhafte Form davon) und Hard Limit (es gibt verschiedene Namen daf\u00fcr) vergleichen. Das spielt noch keine Rolle, wenn man mit einem einzelnen Neuron arbeitet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. Was 1 Neuron nicht kann:<\/strong> Aufgaben l\u00f6sen, bei denen lineares Separieren nicht reicht, hier XOR. Wenn die Aufgabe nicht so ist, dass die L\u00f6sung mit einem Strich angezeigt werden kann, dann kann das Neuron sie nicht L\u00f6sung. Im Beispiel geht es darum, dass der x-Wert gro\u00df sein muss, wenn der y-Wert klein ist, oder umgekehrt, aber eben nicht beide gro\u00df und nicht beide klein. Das geht mit nur einem Neuron nicht einmal n\u00e4herungsweise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>7. Was n+1 Neuronen k\u00f6nnen:<\/strong> Das geht aber dann, wenn man nicht nur ein Neuron arbeiten l\u00e4sst, sondern diesem weitere Neuronen vorschaltet. Das hei\u00dft Hidden Layer, eine versteckte Neuronenschicht. Damit hat man nicht mehr nur ein einzelnes Neuron, sondern hinterinander geschaltetete. Eine Aufgabe aus dem Muster-Abitur ist hier ein Beispiel. Das XOR kann man mit zwei Neuron halbwegs und mit drei richtig l\u00f6sen. Es gibt jetzt auch eine Art Lupe, um sich die Neuronen einzeln anzuschauen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Allerdings funktioniert das automatische Lernen jetzt erst einmal nicht mehr. Wenn hier wieder 1 herauskommen soll und tats\u00e4chlich 0 herauskommt, wie soll die Abweichung in der Ausgabeschicht dann auf die Vorg\u00e4ngerschicht verteilt werden? Das geht nicht gut, wenn man nur mit 0 und 1 arbeitet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>8. Neuronale Netze:<\/strong> Jetzt sind wir endlich beim Kern! Es gibt wieder eine versteckte Schicht vor der Ausgabeschicht. Aber jetzt wird eine Sigmoid-Aktivierungsfunktion verwendet und man kann dadurch die Regel f\u00fcr das automatische Lernen anpassen. (Wenn 1 herauskommen soll und 0 herauskommt, wird die Abweichung, wieder durch die Lernrate modifiziert, auf die Gewichtung des Neurons der Ausgabeschicht angewendet, und von da aus in abgeschw\u00e4chter Form dann auch auf die versteckte Schicht zuvor. Wie das genau geht, ist nicht mehr Stoff in der Schule).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es gibt wieder verschiedene Aufgaben, teilweise mit L\u00f6sung. F\u00fcr manche reichen 2 Knoten im Hiden Layer, andere brauchen mehr. Manche haben mehr als 2 Eingangswerte (was eine andere Art der grafischen Darstellung n\u00f6tig macht), andere haben mehr als 1 Ausgangswert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>9. Stilwell:<\/strong> Das Stilwell-Projekt. <a href=\"https:\/\/www.herr-rau.de\/wordpress\/2025\/06\/the-stilwell-brain-kleine-analyse.htm\">Blogeintrag.<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>10. MNIST:<\/strong> Zahlen erkennen. 28&#215;28 Pixel Eingangswerte, 30 versteckte Knoten &#8211; aber nur ein einziger Datensatz zum Ausprobieren. Ich m\u00fcsste \u00fcberlegen, wie ich das mit dem Laden und Speichern gerne h\u00e4tte. Der ganze MNIST-Datensatz ist mehr als 100 MB gro\u00df.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Nummern 1 bis 6 und vielleicht 7 passen zur 11. Jahrgangsstufe, 7 bis 10 zur 13. Jahrgangsstufe. Es ist leicht, weitere Datens\u00e4tze einzubauen, wenn es denn mal n\u00f6tig sein sollte. Und nat\u00fcrlich k\u00f6nnte ich noch viel am Design \u00e4ndern, wenn ich wollte, irgendwann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Au\u00dferdem konnte ich dabei weiter JavaScript lernen und CSS verfluchen. Aber jetzt ist das mal gut genug, das lasse ich so stehen, auch wenn der Code nicht sehr sauber ist.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie versprochen habe ich die Sommerferien \u00fcber weitgehend die Klappe gehalten bei Neuronalen Netzen. Aber ich konnte die Finger davon nicht lassen, und so habe ich alle meine bisherigen Projekte &#8211; Netz in Tabellenkalkulation, Stilwell-Brain, und 2020 Neuronenvisualisierung in Java &#8211; zusammengefasst in einer einzigen Webseite: neuronenzirkus.de. Hier habe ich diese Webseite, die man nat\u00fcrlich [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[25],"tags":[227,254],"class_list":["post-66545","post","type-post","status-publish","format-standard","hentry","category-informatik","tag-informatik","tag-ki"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/66545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/comments?post=66545"}],"version-history":[{"count":3,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/66545\/revisions"}],"predecessor-version":[{"id":66736,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/66545\/revisions\/66736"}],"wp:attachment":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/media?parent=66545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/categories?post=66545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/tags?post=66545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}