Projekt:2023/Maschinelles Lernen: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
 
(24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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 336: 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 356: 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 412: 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>  
# 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,
## nur feuert, wenn beide Eingaben <code>0</code> sind.
## nur feuert, wenn beide Eingaben <code>0</code> sind.
#: [[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>.]]
## Beschreibe allgemein, wie in den drei Fällen die Gewichte und Schwellwerte gewählt werden müssen.
# 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 Verison zu sehen.)
#: [[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
#: <gallery widths=300 heights=225>Bild:ML_NN_Entwickeln_1.png
Bild:ML_NN_Entwickeln_2.png
Bild:ML_NN_Entwickeln_2.png
Bild:ML_NN_Entwickeln_3.png</gallery>
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}}
{{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.
* 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 vier passende Ungleichungen um.
* 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 stattdessen ein <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}}
{{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}}


=== Übungen Unüberwachtes Lernen ===
=== Übungen Unüberwachtes Lernen ===

Navigationsmenü