Projekt:2023/Maschinelles Lernen: Unterschied zwischen den Versionen

 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 335: Zeile 335:
=== Übungen Spielbäume ===
=== Übungen Spielbäume ===
{{Aufgabe:Start}}
{{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}}
{{Aufgabe:End}}


=== Übungen Entscheidungsbäume ===
=== Übungen Entscheidungsbäume ===
{{Aufgabe:Start}}
{{Aufgabe:Start}}
# Entscheide anhand des Entscheidungsbaums, welche Äpfelsorten Früchte tragen werden.
<ol>
#: [[Bild:Entscheidungsbaum.png|500px]]
<li>Entscheide anhand des Entscheidungsbaums, welche Äpfelsorten Früchte tragen werden.<br/>
#: {| {{prettytable}}
 
[[Bild:Entscheidungsbaum.png|center|300px]]
 
{| {{prettytable}}
{| {{prettytable}}
! Alter !! Sorte !! Boden !! Trägt Früchte?
! Alter !! Sorte !! Boden !! Trägt Früchte?
Zeile 355: Zeile 359:
|-
|-
| alt || veredelt || reichhaltig ||
| alt || veredelt || reichhaltig ||
|}
|}</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.
<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.  
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?
Welche Rückschlüsse lassen sich aus diesem Beispiel für die Auswahl von Trainingsdaten ziehen?
 
{| {{prettytable}}
{| {{prettytable}}
|+ Traininsgdaten
|+ Traininsgdaten
Zeile 411: Zeile 416:
| sonnig || heiß || gering || schwach ||
| sonnig || heiß || gering || schwach ||
|}
|}
# '''Entscheidungsbaum auf numerischen Daten'''
</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}}


=== Übungen Neuronale Netze ===
=== Übungen Neuronale Netze ===
{{Aufgabe:Start}}
{{Aufgabe:Start}}
# Gib jeweils Gewischte 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  
# 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  
## ein <code>UND</code>-Gatter nachbildet,
## ein <code>UND</code>-Gatter nachbildet,
## ein <code>ODER</code>-Gatter nachbildet,
## ein <code>ODER</code>-Gatter nachbildet,
Zeile 432: Zeile 465:
* Forme die vier Gleichungen in drei oder vier passende Ungleichungen um (im dritten Fall sind es auch vier!).
* 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.
* 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}}
{{Tipp:End}}
 
{{Lösung:Start|Aufgabe 2.1 - Gleichungen}}
Drei Gleichungen aufstellen:
Drei Gleichungen aufstellen:


Zeile 438: Zeile 473:
# <math>y = -0,5x + 3</math>
# <math>y = -0,5x + 3</math>
# <math>y = -7x + 35</math>
# <math>y = -7x + 35</math>
 
{{Lösung:End}}{{Lösung:Start|Aufgabe 2.1 - Ungleichungen}}
Zu drei Ungleichungen umformen:
Zu drei Ungleichungen umformen:


Zeile 444: Zeile 479:
# <math>0,5x + y > 3</math>
# <math>0,5x + y > 3</math>
# <math>-7x - y > -35</math>
# <math>-7x - y > -35</math>
 
{{Lösung:End}}{{Lösung:Start|Aufgabe 2.1 - Neuronales Netz}}
[[Bild:ML_NN_Entwickeln_1_Loseung.png]]
[[Bild:ML_NN_Entwickeln_1_Loseung.png|center|600px]]
{{Lösung:End}}{{Lösung:Start|Aufgabe 2.2}}
{{Lösung:End}}
{{Lösung:Start|Aufgabe 2.2 - Gleichungen}}
Vier Gleichungen aufstellen:
Vier Gleichungen aufstellen:


Zeile 453: Zeile 489:
# <math>y = -2,5x + 5</math>
# <math>y = -2,5x + 5</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:
Zu vier Ungleichungen umformen:


Zeile 460: Zeile 496:
# <math>2,5x + y > 5</math>
# <math>2,5x + y > 5</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]]
[[Bild:ML_NN_Entwickeln_2_Loseung.png|center|600px]]
{{Lösung:End}}{{Lösung:Start|Aufgabe 2.32}}
{{Lösung:End}}
{{Lösung:Start|Aufgabe 2.3 - Gleichungen}}
Zwei Gleichungen aufstellen:
Zwei Gleichungen aufstellen:


# <math>y = 0,5x + 0,5</math>
# <math>y = 0,5x + 0,5</math>
# <math>y = -2x + 8</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:
Zu vier Ungleichungen umformen, von denen jeweils zwei die beiden Dreiecksflächen einschließen:


Zeile 474: Zeile 511:
# <math>y < 0,5x + 0,5 \Leftrightarrow 0,5x - y > -0,5</math>
# <math>y < 0,5x + 0,5 \Leftrightarrow 0,5x - y > -0,5</math>
# <math>y > -2x + 8 \Leftrightarrow 2x + y > 8</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>.)
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.
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]]
[[Bild:ML_NN_Entwickeln_3_Loseung.png|center|600px]]
{{Lösung:End}}
{{Lösung:End}}