====== Das künstliche Neuron ====== Künstliche neuronale Netze sind ein wichtiger Teilbereich der Künstlichen Intelligenz. Sie können mit gelabelten Testdaten trainiert werden (überwachtes Lernen) und viele Probleme lösen, die handprogrammierten Algorithmen nicht zugänglich sind. ** Beispiele: ** * Gesichtserkennung * Generierung von Bildern andhand von Textbeschreibungen (z.B. [[https://thisxdoesnotexist.com/]]) * Erkennung von Sprache (z.B. in digitalen Sprachassistenten wie Alexa und Siri) * Erkennung von Bildern ([[https://quickdraw.withgoogle.com/]]) ===== Von der Nervenzelle zum künstlichen Neuron (Perzeptron) ===== {{ .:pasted:20260519-195307.png?400}}Eine Nervenzelle (Neuron) hat mehrere Eingänge und einen Ausgang. An den Eingängen erhält sie verschieden starke Stromimpulse, am Ausgang generiert sie ebenfalls einen Stromimpuls, dessen Stärke von der Stärke der Impulse an den Eingängen abhängt. Es liegt nahe, auf ähnliche Weise ein künstliches Neuron zu erstellen, das - abhängig von den Eingangsgrößen $x_1, x_2,\ \ldots,\ x_n$ am Ausgang den Wert 0 oder 1 liefert. ===== Definition eines künstlichen Neurons ===== {{ .:pasted:20260519-195801.png }} Ein **künstliches Neuron** ist eine Funktion, die $n$ **Eingabewerte** $x_1, x_2, \ldots, x_n$ entgegennimmt und einen **Ausgabewert** liefert. Die genaue Funktion des Neurons wird bestimmt durch folgende Konstanten: * $n$ **Gewichte** $w_1, w_2, \ldots, w_n$ * den **Schwellenwert** $\theta$ (sprich: "Theta") und * die **Aktivierungsfunktion**, in Jahrgangsstufe 11 ausschließlich die Heaviside-Funktion $H(x)$. {{ .:pasted:20260519-200024.png?150}} Die **Heaviside-Funktion** ist folgendermaßen definiert: $H(x) = \begin{cases} 0 & \text{für } x < 0 \\ 1 & \text{für } x \ge 0 \end{cases}$ Der **Ausgabewert** des Neurons berechnet sich (mit Heaviside als Aktivierungsfunktion) folgendermaßen: $$Ausgabewert = H(x_1\cdot w_1 + x_2\cdot w_2 + \ldots + x_n\cdot w_n - \Theta)$$ Das heißt, das Neuron hat den Ausgabewert 1 (man sagt, es "feuert"), wenn $$x_1\cdot w_1 + x_2\cdot w_2 + \ldots + x_n\cdot w_n - \Theta \ge 0$$ **Für Interessierte:** **a) Welche weiteren Aktivierungsfunktionen gibt es?** \\ Die am häufigsten verwendeten **Aktivierungsfunktionen** sind: |Die **Heaviside-Funktion**: $H(x) = \begin{cases} 0 & \text{für } x < 0 \\ 1 & \text{für } x \ge 0 \end{cases}$ | {{.:pasted:20260105-145616.png?100}} | |Die **ReLU-Funktion**: $\mathrm{ReLU}(x) = \begin{cases} 0 & \text{für } x < 0 \\ x & \text{für } x \ge 0 \end{cases}$ //(**Re**ctified **L**inear **U**nit)// | {{.:pasted:20260105-145716.png?100}} | |Die **Sigmoid-Funktion**: $\sigma(x) = \frac{1}{1 + e^{-x}}$ | {{.:pasted:20260105-145758.png?100}} | |Die **Identität**: $\mathrm{id}(x) = x$ | {{.:pasted:20260105-145830.png?100}} | **b) Warum ist das künstliche Neuron so definiert?** \\ Das künstliche Neuron bildet die Funktionsweise natürlicher Neuronen bei weitem nicht exakt nach, sondern ist nur ein einfaches Modell, das sich in der Praxis als funktionsfähig erwiesen hat. Folgende Überlegungen haben bei seiner Definition sicher eine Rolle gespielt: * Um den **Eingangswerten** $x_1, x_2, \ldots, x_n$ verschieden hohe Bedeutung zuzumessen, werden sie mit den **Gewichten** $w_1, w_2, \ldots, w_n$ multipliziert: $x_1\cdot w_1 + x_2\cdot w_2 + \ldots + x_n\cdot w_n$ * Fasst man die Werte zu Vektoren $\vec{x} = (x_1\ x_2\ \ldots\ x_n)$ und $\vec{w} = \begin{pmatrix} w_1 \\w_2 \\ \vdots \\w_3 \end{pmatrix}$ zusammen, so kann man die gewichtete Summe als **Skalarprodukt** auffassen: \\ $x_1\cdot w_1 + x_2\cdot w_2 + \ldots + x_n\cdot w_n = \vec{x} \circ \vec{w}$ \\ Dieses lässt sich mit modernen Prozessoren (insbesondere auch denen auf Grafikkarten) **sehr schnell berechnen**. * Der **Schwellenwert** $\theta$ modelliert, dass das Neuron erst ab einem bestimmten Wert "feuert". * Die **Aktivierungsfunktion** hat die Aufgabe, die Ausgangswerte auf das Intervall $[0; 1]$ abzubilden, also zu normieren. Besonderer Bedeutung kommt der Sigmoid-Funktion zu, da sie stetig und differenzierbar ist und ihre Ableitung sehr leicht berechnet werden kann: $\sigma'(x) = \sigma(x)\cdot(1-\sigma(x))$ **c) Lernen wir in Jahrgangsstufe 11 wirklich nur ein einzelnes künstliches Neuron kennen? Wars das dann?!?** \\ Ich kann verstehen, dass Sie enttäuscht sind, insbesondere dann, wenn in Jahrgangsstufe 12 vielleicht mal kein Informatikkurs zustandekommt. Daher hier ein paar Quellen, die Ihnen helfen, sich über Neuronale Netze selbst zu informieren: * [[https://www.learnj.de/1213/doku.php?id=ki:neuronalenetze|Skript der Jgst. 12: Neuronale Netze]] * [[https://www.learnj.de/1213/doku.php?id=ki:neuronalenetzelernen|Skript der Jgst. 12: Backpropagation]] * Und jetzt die wichtigste, bei weitem beste Quelle zum Thema im Internet: \\ [[https://www.youtube.com/watch?v=aircAruvnKk&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi|Playlist mit Grant Sandersons (3Blue1Brown) Videos zu Neuronalen Netzen und LLMs]]