faecher:informatik:oberstufe:machine_learning:einfuehrung:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:machine_learning:einfuehrung:start [03.03.2023 13:55] – [Was ist "maschinelles Lernen"?] Frank Schiebelfaecher:informatik:oberstufe:machine_learning:einfuehrung:start [04.03.2023 18:08] (aktuell) – [Eine Vorhersagemaschine] Frank Schiebel
Zeile 17: Zeile 17:
 Die „klassische“ Programmierung durch kluge Die „klassische“ Programmierung durch kluge
 Aneinanderreihung einzelner Anweisungen, Verzweigungen oder Aneinanderreihung einzelner Anweisungen, Verzweigungen oder
-Schleifen nennt man imperative Programmierung. Sie kann uns Menschen je nach +Schleifen nennt man imperative Programmierung. Eine
-Problemfall leichter oder schwerer fallen. Eine (wenn auch komplexe)+
 Rechenaufgabe zu programmieren ist beispielsweise in so ziemlich jeder Rechenaufgabe zu programmieren ist beispielsweise in so ziemlich jeder
 Programmiersprache ein Kinderspiel. Das Navi so zu programmieren, dass es die Programmiersprache ein Kinderspiel. Das Navi so zu programmieren, dass es die
-kürzeste Route berechnen kann, ist schon viel komplexer – aber auch für dieses+kürzeste Route berechnen kann, ist schon komplexer – aber auch für dieses
 mathematische Problem lässt sich die Lösung noch immer gut in (vielen) einzelnen mathematische Problem lässt sich die Lösung noch immer gut in (vielen) einzelnen
 expliziten Anweisungen formulieren. expliziten Anweisungen formulieren.
 +
 Es gibt aber trotzdem viele Aufgaben, die man nicht einfach lösen kann, indem man Es gibt aber trotzdem viele Aufgaben, die man nicht einfach lösen kann, indem man
 einzelne Befehle geschickt aneinanderreiht. einzelne Befehle geschickt aneinanderreiht.
 +
 +Ein Regelwerk, das bei unbekannten Bildern beispielsweise durch Betrachtung jedes einzelnen Pixels und seiner Relation zu anderen Pixeln entscheiden soll, welches der drei Bilder oben ein Zebra darstellt ist nahezu undenkbar und fast sicher unmöglich imperativ zu programmieren.
 +
 +Auch ein Mensch kann diese Frage erst beantworten, nachdem er Dinge **gelernt** hat - ein 2 Jähriger könnte die Bilder wohl kaum unterscheiden, eine Zehnjährige ziemlich sicher.
 +
 +Wie kann man einem Computer aber beibringen zu lernen, was also soll "maschinelles Lernen" sein - und wie kann das funktionieren?
 +
 +===== Eine Vorhersagemaschine =====
 +
 +Als erstes Beispiel soll die Umrechnung von Zentimeter in Inch dienen((Die "gewöhnliche" Herangehensweise wäre, herauszufinden, welcher Faktor ''c'' diese beide Einheiten ineinander umrechnet und anschließend (imperativ) die Gleichung ''inch=c*zentimeter'' in einer Programmiersprache deiner Wahl zu implementieren)).
 +
 +Als einzige Information sei die folgende Tabelle gegeben:
 +
 +
 +^ Zentimeter  | -42         | -11.2          5.5 | 8        | 15       | 22       | 38        |
 +^ Inch        | -16.53543,  | -4.40945  | 2.16535  | 3.14961  | 5.90551  | 8.66142  | 14.96063  |
 +
 +Wir wollen nun eine //**"Vorhersagemaschine"**// verwenden, die wir mit diesen Daten füttern. Dabei soll die Maschine "lernen", welcher Zusammenhang zwischen Eingabe und Ausgabe besteht und für einen angegebenen Wert eine Vorhersage für den zugehörigen Wert bestimmen.
 +
 +---- 
 +{{:aufgabe.png?nolink  |}}
 +=== (A1) Die Vorhersagemaschine als "Black Box" ===
 +
 +**(A)** Lade den vorbereiteten Code von https://codeberg.org/qg-info-unterricht/tf-vorhersagemaschine herunter oder klone das Repo. Anschließend musst du die python-Abhängigkeiten für das Projekt installieren - unter Linux kannst du einfach das Skript ''mkvenv.sh'' ausführen, das richtet ein Virtual-Environment ein, installiert alle Abhängigkeiten und aktiviert es anschließend. FIXME Windows?
 +
 +  * Führe als ersten Test den Befehl ''./vorhersagemaschine.py -i datensatz01.csv -t 10 -x 8'' aus.
 +  * Vergleiche den vorhergesagten Wert für x=8 mit dem tatsächlichen Wert aus der Tabelle.
 +  * Wiederhole den Befehl mit einer 
  • faecher/informatik/oberstufe/machine_learning/einfuehrung/start.1677851726.txt.gz
  • Zuletzt geändert: 03.03.2023 13:55
  • von Frank Schiebel