((Quelle siehe: [[faecher:informatik:oberstufe:machine_learning:einfuehrung_mit_membrain:start|Einführung in Maschinelles Lernen mithilfe von MemBrain]] ))
Orientiere dich bei der Bearbeitung der Arbeitsblätter am **WIKI**! Lies hier genau welche Aufgabe als nächstes bearbeitet werden soll und lies zwischen den Aufgaben (falls vorhanden) erst hier die nächste Information.
===== Wie funktioniert die Informationsverarbeitung und -weiterleitung im Gehirn? =====
Wir suchen nun also nach einer Lösung, die Fähigkeiten unseres Gehirns auf den PC zu übertragen. Dazu müssen wir zunächst verstehen, wie das Gehirn arbeitet.
{{:aufgabe.png?nolink |}}
=== Arbeitsblatt 1) ===
Bearbeite das folgende Arbeitsblatt.
Nutze für die Aufgabe 1 u. a. die folgende Seite: http://www.biologie-schule.de/nervenzelle-neuron.php
{{ :faecher:informatik:oberstufe:machine_learning:einfuehrung_nn:ab_1_-_gehirn.pdf |}}
==== Informationsweiterleitung zwischen den Zellen ====
Wir wissen nun, wie die Informationen **innerhalb __einer__ Zelle** verarbeitet werden. Aber wie springen die Signale von der einen Zelle zur nächsten durchs ganze Gehirn? Schaue dir dazu das folgende Video an. Es genügt, es bis zur Minute 2:31 anzuschauen:
{{youtube>EGKTH60rvoU?}}
===== Wie ist ein künstliches Neuron aufgebaut? =====
{{:aufgabe.png?nolink |}}
=== Arbeitsblatt 2) ===
Besorge dir das folgende Arbeitsblatt "AB 2 - Maschinelles Lernen und neuronale Netze - Grundlagen".
{{ :faecher:informatik:oberstufe:machine_learning:einfuehrung_nn:ab_2_-_informationsweiterleitung.pdf |}}
* **Bearbeite Aufgabe 1**
++++Überprüfe deine Lösung für die 1 b) und übernehme diesen Aufschrieb. |
{{:faecher:informatik:oberstufe:machine_learning:einfuehrung_nn:loesung_1b.jpg?500|}}
++++
* **Bearbeite Aufgabe 2**
==== Was bringt also nun ein solches Neuron? ====
* Wir bekommen auf Basis der Eingabe-Werte einen (eindeutigen) Ausgabewert.
* Die gesamte Logik dazu steckt in den Gewichten und Aktivierungsschwellen der Neuronen.
* Im Moment sind das alles noch kleine mathematische Beispiele, die man auch mit imperativer Programmierung lösen könnte.
* Ein einzelnes Neuron bringt uns aktuell noch nicht groß weiter, es berechnet nur eine simple mathematische Gleichung.
**Frage:** könnte man die entscheidenden Werte (Gewichte und Schwellenwert) auch **manuell** festlegen?
* **Bearbeite Aufgabe 3**
Die Bearbeitung der Aufgabe 3 führt zu folgender Erkenntnis:
++++Erkenntnis: |
Es lassen sich nicht alle Funktionen (Teil e) mit nur einem Neuron realisieren!
Die **Lösung** dazu lautet: Wir benutzen mehrere Neuronen in Form von mehreren Schichten (= **künstliches neuronales __Netzwerk__**)
++++
===== Künstliches neuronales Netzwerk =====
Wenn wir mehrere (künstliche) Neuronen hintereinander schalten und vielfach miteinander verknüpfen, dann bildet sich ein neuronales Netzwerk. Gegenüber einem einzelnen Neuron kann ein solches Netzwerk wesentlich komplexere Zusammenhänge in den Eingabedaten berücksichtigen.
{{ :faecher:informatik:oberstufe:machine_learning:einfuehrung_nn:nn_example1.png?600 |}}
Typischerweise werden Neuornale Netze (NN) so dargestellt, dass die Daten von links nach rechts laufen.
* Der **Input-Layer** hat keine wirkliche Funktion (insb. keine Aktivierungsschwelle), sondern liefert nur die "nackten" Eingabedaten.
* Der **Hidden-Layer** (davon muss mindestens einer existieren, um von einem Netzwerk sprechen zu können), ist notwendig, um komplexere Zusammenhänge zwischen den Eingabedaten berücksichtigen zu können. Er ist versteckt (hidden), da man ihn von außerhalb nicht direkt erkennen kann, da man nur mit der Ein- und Ausgabe zu tun hat.
* Der **Output-Layer** gibt schließlich das Ergebnis aus.
{{ :faecher:informatik:oberstufe:machine_learning:einfuehrung_nn:nn_example2.png?600 |}}
* Wenn es mehrere Hidden-Layer gibt, dann spricht man vom **deep learning** (in etwa "tiefgehendes Lernen"). Damit können noch komplexere Zusammenhänge berücksichtigt werden, allerdings gilt **nicht** zwingend der Zusammenhang "mehr = besser"!
* Bei diesem zweiten Bild sieht man außerdem gut, dass alle Neuronen **benachbarter Ebenen** miteinander verbunden sind, aber **nicht** die Neuronen innerhalb einer Ebene.
* Zudem sieht man, dass es auch mehrere Outputs geben kann. Diese können je nach Anwendungszweck beispielsweise als Binärzahl, Koordinaten oder ähnliches aufgefasst werden.
**Bearbeite nun die (Knobel-)Aufgabe Nr. 4 auf dem Arbeitsblatt.**
++++Mögliche Lösung: |
{{ :faecher:informatik:oberstufe:machine_learning:einfuehrung_nn:blatt2_aufg4_lsg.jpg?600 |}}
++++
**Erkenntnis:**\\
Die Gewichte und Schwellenwerte kann man mit viel Aufwand bei kleinen Netzwerken manuell bestimmen. Bei großen Netzwerken wird das aber praktisch unmöglich.\\
=> **Wir müssen dem neuronalen Netz daher das eigenständige Lernen beibringen (siehe nächstes Kapitel)!**
{{simplefilelist>.:*.pdf}}