Projekt:2023/Maschinelles Lernen: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 32: Zeile 32:
Ein künstliches Neuron ist das kleinste Bauteil eines künstlichen neuronalen Netzes und empfängt Eingaben (Zahlen), multipliziert diese jeweils mit einem individuellen Gewicht für jede Eingangsverbindung, bildet die Summe der gewichteten Eingabewerte und "feuert" dann einen Ausgabewert ab (übergibt ihn an die folgenden Neuronen). Mit "feuern" ist gemeint, dass das Neuron unter einer festgelegten Bedingung die Summe der Eingaben weitergibt und sonst <code>0</code>. Wann ein Neuron "feuert" kann ganz unterschiedlich festgelegt werden. z.B. könnte eine Bedingung lauten "''Wenn die gewichtete Summe größer ein Schwellwert ist''" (z.B. <code>> 0</code>).
Ein künstliches Neuron ist das kleinste Bauteil eines künstlichen neuronalen Netzes und empfängt Eingaben (Zahlen), multipliziert diese jeweils mit einem individuellen Gewicht für jede Eingangsverbindung, bildet die Summe der gewichteten Eingabewerte und "feuert" dann einen Ausgabewert ab (übergibt ihn an die folgenden Neuronen). Mit "feuern" ist gemeint, dass das Neuron unter einer festgelegten Bedingung die Summe der Eingaben weitergibt und sonst <code>0</code>. Wann ein Neuron "feuert" kann ganz unterschiedlich festgelegt werden. z.B. könnte eine Bedingung lauten "''Wenn die gewichtete Summe größer ein Schwellwert ist''" (z.B. <code>> 0</code>).


[[Bild:Neuron Schema.png]]
[[Bild:Neuron Schema.png|center|Schema eines künstlichen Neurons mit den Eingaben <code>e1</code> und <code>e2</code>, Gewichten <code>w1</code> und <code>w2</code> und der Ausgabe <code>a</code>.]]
 
Ein Neuron, das selbstständig lernen kann, welche Gewichte und Schwellenwerte es am besten benutzen sollte, nennt man ein ''Perzeptron''.
 
Wir betrachten nun ein vereinfachtes Neuron, dass nur die Eingaben <code>0</code> und <code>1</code> kennt und immer dann "feuert", wenn die Eingabe über einem festen Schwellwert liegt. In dem Fall wird immer <code>1</code> ausgegeben, ansonsten <code>0</code>.
 
Mithilfe diese Neurons wollen wir ein ganz einfaches Neuronales Netz erstellen.
 
{{Aufgabe:Start}}
Die logischen <code>UND</code>- und <code>ODER</code>-Verknüpfungen kennst Du aus der Programmierung mit Python:
<syntaxhighlight lang="python">
a = inputInt("Gib eine Zahl ein")
if a < 0 or a > 100:  # ODER-Verknüpfung
  print("Zahl nicht im richtigen Bereich")
elif a > 10 and a < 20:  # UND-Verknüpfung
  print("Zahl zwischen 10 und 20")
</syntaxhighlight>
 
Wie die Verknüpfungen funktionieren, lässt sich anhand einer Tabelle darstellen, in der <code>1</code> für <code>True</code> und <code>0</code> für <code>False</code> steht. Fülle die beiden Tabellen so aus, dass sie jeweils zur <code>UND</code>- bzw. <code>ODER</code>-Verknüpfung passen:
 
<lückentext>
{| {{prettytable|class=logictable code}}
! e1 !! e2 !! a
|+ UND
|-
| 0 || 0 || '''0()'''
|-
| 1 || 0 || '''0()'''
|-
| 0 || 1 || '''0()'''
|-
| 1 || 1 || '''1()'''
|}
</lückentext>
<lückentext>
{| {{prettytable|class=logictable code}}
! e1 !! e2 !! a
|+ ODER
|-
| 0 || 0 || '''0()'''
|-
| 1 || 0 || '''1()'''
|-
| 0 || 1 || '''1()'''
|-
| 1 || 1 || '''1()'''
|}
</lückentext>
{{Aufgabe:End}}
 
{{Aufgabe:Start}}
Erkunde auf der Seite [https://www.inf-schule.de/KI_im_Unterricht/einzelneNeuronen/basis_vereinfachtesNeuron/lernstrecke/ersteAufgabeUebungen inf-schule.de], wie Du ein <code>ODER</code>-Neuron mit einem passenden Schwellwert erstellen kannst.
 
Bearbeite dann die weiteren Schritte bis zur [https://www.inf-schule.de/KI_im_Unterricht/einzelneNeuronen/basis_vereinfachtesNeuron/lernstrecke/zusammenfassung Zusammenfassung]
{{Aufgabe:End}}
 
=== Neuonenschichten ===
In einem neuronalen Netz werden Neuronen in ''Schichten'' zusammengefasst. Die Eingabeschicht empfängt die Eingabedaten von außen. Die Ausgabeschicht gibt das Ergebnis an. Dazwischen können beliebig viele Neuronenschichten liegen (die "Hidden Layers"), die zur Berechnung des Ergebnisses beitragen.
 
=== Wie neuronale Netze lernen ===
{{Aufgabe:Start}}
Bearbeite die Lernstrecke [https://www.inf-schule.de/KI_im_Unterricht/neuronaleNetze/einfuehrung/lernstrecke Einführung Neuronale Netze] auf [https://www.inf-schule.de inf-schule.de] bis zur [https://www.inf-schule.de/KI_im_Unterricht/neuronaleNetze/einfuehrung/lernstrecke/lerncheck Zusammenfassung].
{{Aufgabe:End}}
 
{{Aufgabe:Start}}
In der letzten Aufgabe hast du das Netz selbst angelernt. Das Ziel ist es aber, das Netz selbst seine Gewichte finden zu lassen. Also "maschinell lernen" zu lassen. Unter [https://link.ngb.schule/nnsim-steinlaus] findest Du eine Simulation eines neuronalen Netzes zur Erkennung der Steinlaus aus der letzten Aufgabe.
 
Erkunde die Simulation, indem Du mehrfach auf "Train" klickst und beobachte, was passiert. Mit "Animate" kannst Du das Netzwerk automatisiert lernen lassen.
{{Aufgabe:End}}