Projekt:2023/Maschinelles Lernen: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
 
(39 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 311: Zeile 311:
Folgende Themen wurden in der Unterrichtsreihe "Maschinelles Lernen" behandelt:
Folgende Themen wurden in der Unterrichtsreihe "Maschinelles Lernen" behandelt:


* [[#Grundlagen der KI]]
* [[#Übungen Grundlagen der KI]]
* [[#Spielbäume]]
* [[#Übungen Spielbäume]]
* [[#Entscheidungsbäume]]
* [[#Übungen Entscheidungsbäume]]
* [[#Neuronale Netze]]
* [[#Übungen Neuronale Netze]]
* [[#Unüberwachtes Lernen]]
* [[#Übungen Unüberwachtes Lernen]]


=== Grundlagen der KI ===
=== Übungen Grundlagen der KI ===
{{Aufgabe:Start}}
{{Aufgabe:Start}}
# Beschreibe, welche Arten von K.I. es gibt.
# Beschreibe, welche Arten von K.I. es gibt.
Zeile 324: Zeile 324:
# Beschreibe, welche Arten des maschinellen Lernens es gibt.
# Beschreibe, welche Arten des maschinellen Lernens es gibt.
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Lösung:Start}}
{{Lösung:Start}}
# Man unterscheidet "starke" und "schwache" KI:
# Man unterscheidet "starke" und "schwache" KI:
Zeile 334: Zeile 333:
{{Lösung:End}}
{{Lösung:End}}


=== Spielbäume ===
=== Übungen Spielbäume ===
{{Aufgabe:Start}}
# Erstelle einen vollständigen Spielbaum zum [[wikipedia:Nim-Spiel|Nim-Spiel]] mit fünf Hölzern. ([https://www.alraft.de/altenhein/spiele/nim-spiel/index.html Online-Version des Spiels].)
# Erkläre, wie eine Maschine anhand eines Spielbaums ein Spiel "lernen" kann.
# Erläutere, ob mithilfe eines Spielbaums jedes Spiel "perfekt" gespielt werden kann.
{{Aufgabe:End}}
 
=== Übungen Entscheidungsbäume ===
{{Aufgabe:Start}}
{{Aufgabe:Start}}
<ol>
<li>Entscheide anhand des Entscheidungsbaums, welche Äpfelsorten Früchte tragen werden.<br/>
[[Bild:Entscheidungsbaum.png|center|300px]]
{| {{prettytable}}
! Alter !! Sorte !! Boden !! Trägt Früchte?
|-
| alt || veredelt || mager ||
|-
| alt || natürlich || reichhaltig ||
|-
| jung || veredelt || reichhaltig ||
|-
| alt || natürlich || mager ||
|-
| alt || veredelt || reichhaltig ||
|}</li>
<li>Erstelle anhand der Tabelle mit Trainingsdaten einen Entscheidungsbaum, der entscheidet, ob wir morgen Tennis spielen gehen wollen, oder nicht. Wende dann Deinen Baum auf die Testdaten in der zweiten Tabelle an.<br/>
Beurteile dann die Güte Deines Baumes und welche Probleme es gibt. <br/>
Welche Rückschlüsse lassen sich aus diesem Beispiel für die Auswahl von Trainingsdaten ziehen?
{| {{prettytable}}
|+ Traininsgdaten
! Vorhersage !! Temperatur !! Feuchtigkeit !! Wind !! Tennis Spielen?
|-
| sonnig || heiß || hoch || schwach || nein
|-
| sonnig || heiß || hoch || stark || nein
|-
| bewölkt || heiß || hoch || schwach || ja
|-
| regnerisch || mild || hoch || schwach || ja
|-
| regnerisch || kalt || normal || schwach || ja
|-
| regnerisch || kalt || normal || stark || nein
|-
| bewölkt || mild || hoch || stark || ja
|-
| sonnig || mild || hoch || schwach || nein
|-
| sonnig || kalt || normal || schwach || ja
|-
| regnerisch || mild || normal || schwach || ja
|-
| sonnig || mild || normal || stark || ja
|-
| bewölkt || heiß || normal || schwach || ja
|-
| bewölkt || kalt || normal || stark || ja
|-
| regnerisch || mild || hoch || stark || nein
|}


{| {{prettytable}}
|+ Testdaten
|-
! Vorhersage || Temperatur || Feuchtigkeit || Wind || Tennis spielen?
|-
| sonnig || mild || normal || stark ||
|-
| bewölkt || mild || normal || schwach ||
|-
| regnerisch || heiß || hoch || stark ||
|-
| bewölkt || kalt || normal || schwach ||
|-
| sonnig || mild || normal || schwach ||
|-
| bewölkt || kalt || gering || schwach ||
|-
| sonnig || heiß || gering || schwach ||
|}
</li>
<li>Auf der Seite [https://www.inf-schule.de/kids/computerinalltag/entscheide-wie-eine-KI inf-schule.de] findest Du eine digitale Version der Lebensmittelkarten aus dem Unterricht. Durchlaufe den Pfad und entwickele einen Entscheidungsbaum unter der Fragestellung "Welche Lebensmittel sind besonders lecker?" (anstatt "welche sind gesund").<br/>
Welche Kriterien gelten für die Wahl einer Entscheidungskategorie und eines guten Schwellwerts?
</li>
</ol>
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Lösung:Start}}
<ol>
<li>
{| {{prettytable}}
! Alter !! Sorte !! Boden !! Trägt Früchte?
|-
| alt || veredelt || mager || '''ja'''
|-
| alt || natürlich || reichhaltig || '''ja'''
|-
| jung || veredelt || reichhaltig || '''nein'''
|-
| alt || natürlich || mager || '''nein'''
|-
| alt || veredelt || reichhaltig ||  '''ja'''
|}
</li>
<li>Bei der Auswahl der Trainingsdaten ist es wichtig alle möglichen Ausprägungen der Merkmale in ausreichender Menge zu berücksichtigen. Gibt es Ausprägungen, die in den Trainingsdaten fehlen, dann kann ein Entscheidungsbaum auch nicht lernen, welche Entscheidungen bei dieser Ausprägung getroffen werden müssen.
Im Beispiel kommt die Ausprägung "gering" des Merkmals "Feuchtigkeit" nicht in den Trainingsdaten vor, aber in den Testdaten schon. Dies kann zu unvorhergesehenen / ungewünschten Ergebnissen führen.
</li>
<li>...</li>
</ol>
{{Lösung:End}}


=== Entscheidungsbäume ===
=== Übungen Neuronale Netze ===
{{Aufgabe:Start}}
{{Aufgabe:Start}}
# Entscheide anhand des Entscheidungsbaums, welche Äpfelsorten Früchte tragen werden.
# Gib jeweils Gewichte und Schwellwerte an, sodass das gezeigte Neuron bei möglichen Eingaben <code>0</code> und <code>1</code> für jeden der drei Eingänge
#: [[Datei:Entscheidungsbaum.svg]]
## ein <code>UND</code>-Gatter nachbildet,
## ein <code>ODER</code>-Gatter nachbildet,
## nur feuert, wenn beide Eingaben <code>0</code> sind.
## Beschreibe allgemein, wie in den drei Fällen die Gewichte und Schwellwerte gewählt werden müssen.
#: [[Bild:Neuron Schema mit 3 Eingängen.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>.]]
# Erstelle zu den Bildern jeweils ein künstliches neuronales Netz, das Datenpunkte innerhalb des rot hinterlegten Bereichs erkennt. (Klicke die Bilder an, um eine größere Version zu sehen.)
#: <gallery widths=300 heights=225>Bild:ML_NN_Entwickeln_1.png
Bild:ML_NN_Entwickeln_2.png
Bild:ML_NN_Entwickeln_3.png</gallery>
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Hinweis|Du kennst aus dem Mathematikunterricht Verfahren, wie Du die Gleichung einer Gerade findest. Zur Erinnerung findest Du beispielsweise [https://www.mathebibel.de/lineare-funktionen-funktionsgleichung-bestimmen hier] eine Zusammenfassung.}}
{{Tipp:Start|Tipp zu Aufgabe 2}}
* Erstelle drei, vier bzw. zwei lineare Gleichungen (<math>y = m dot x + a</math>), die den roten Bereich einschließen.
* Forme die vier Gleichungen in drei oder vier passende Ungleichungen um (im dritten Fall sind es auch vier!).
* Verknüpfe die vier Ungleichungen mit passenden <code>UND</code>-Neuronen (siehe Aufgabe 1). Im dritten Fall musst Du noch ein zusätzliches <code>ODER</code>-Neuron benutzen.
{{Tipp:End}}
{{Lösung:Start|Aufgabe 2.1 - Gleichungen}}
Drei Gleichungen aufstellen:
# <math>y = x + 1</math>
# <math>y = -0,5x + 3</math>
# <math>y = -7x + 35</math>
{{Lösung:End}}{{Lösung:Start|Aufgabe 2.1 - Ungleichungen}}
Zu drei Ungleichungen umformen:
# <math>x - y > -1</math>
# <math>0,5x + y > 3</math>
# <math>-7x - y > -35</math>
{{Lösung:End}}{{Lösung:Start|Aufgabe 2.1 - Neuronales Netz}}
[[Bild:ML_NN_Entwickeln_1_Loseung.png|center|600px]]
{{Lösung:End}}
{{Lösung:Start|Aufgabe 2.2 - Gleichungen}}
Vier Gleichungen aufstellen:
# <math>y = 0,25x + 4</math>
# <math>y = 0x + 2</math>
# <math>y = -2,5x + 5</math>
# <math>y = 2,5x - 5</math>
{{Lösung:End}}{{Lösung:Start|Aufgabe 2.2 - Ungleichungen}}
Zu vier Ungleichungen umformen:
# <math>0,25x - y > -4</math>
# <math>0x + y > 2</math>
# <math>2,5x + y > 5</math>
# <math>-2,5x + y > -5</math>
{{Lösung:End}}{{Lösung:Start|Aufgabe 2.2 - Neuronales Netz}}
[[Bild:ML_NN_Entwickeln_2_Loseung.png|center|600px]]
{{Lösung:End}}
{{Lösung:Start|Aufgabe 2.3 - Gleichungen}}
Zwei Gleichungen aufstellen:
# <math>y = 0,5x + 0,5</math>
# <math>y = -2x + 8</math>
{{Lösung:End}}{{Lösung:Start|Aufgabe 2.3 - Ungleichungen}}
Zu vier Ungleichungen umformen, von denen jeweils zwei die beiden Dreiecksflächen einschließen:
# <math>y > 0,5x + 0,5 \Leftrightarrow -0,5x + y > 0,5</math>
# <math>y < -2x + 8 \Leftrightarrow -2x - y > -8</math>
# <math>y < 0,5x + 0,5 \Leftrightarrow 0,5x - y > -0,5</math>
# <math>y > -2x + 8 \Leftrightarrow 2x + y > 8</math>
{{Lösung:End}}{{Lösung:Start|Aufgabe 2.3 - Neuronales Netz}}
Die erste und zweite und die zweite und dritte Ungleichung schließen jeweils eine der beiden Dreiecksflächen ein. Sie werden durch ein <code>UND</code>-Neuron verknüpft. (Da immer alle Neuronen einer Schicht eine Verbindung zu allen Neuronen der nachfolgenden Schicht haben, setzen wir die Gewichte der beiden "unnötigen" Verbindungen einfach auf <code> 0</code>.)
Der Output der beiden <code>UND</code>-Neuronen wird durch ein <code>ODER</code>-Neuron zusammengeführt. Wir erhalten also insgesamt vier Schichten.
[[Bild:ML_NN_Entwickeln_3_Loseung.png|center|600px]]
{{Lösung:End}}


=== Neuronale Netze ===
=== Übungen Unüberwachtes Lernen ===
=== Unüberwachtes Lernen ===
{{Aufgabe:Start}}
# Beschreibe das Vorgehen beim "Learning-Vector-Quantification" Verfahren, um einen "Prototypen" schrittweise einem Cluster von Daten anzunähern.
{{Aufgabe:End}}

Navigationsmenü