(This is in German only, sorry...)
Machine Learning oder künstliche Intelligenz ist eine rasch an Bedeutung gewinnende Form der Informatik, in welcher Programme nicht mehr explizit geschrieben, sondern anhand von Daten trainiert werden. Machine Learning personalisiert nicht nur unsere News, sondern macht etwa mit selbstfahrenden Autos und mit fast perfekt Go oder Dota2 spielenden Computern selber Schlagzeilen. Aber wie lernen Maschinen? Und wie lernen Menschen, Maschinen zu trainieren?
Zu diesen zwei Fragen werden wir je ein Tool vorstellen:
Scikit-Learn ist eine Open-Source Python-Bibliothek für Machine Learning. Der relativ einfache Einstieg erlaubt es auch SchülernInnen, eine eigene “künstliche Intelligenz” zu trainieren.
Kaggle ist eine freie Webplattform zur Förderung des Lernens von Machine Learning und für den Austausch von Datensätzen. Für den Unterricht können eigene InClass Competitions aufgeschaltet werden. Diese ergänzen den Unterricht durch ein spielerisches und kompetitives Element.
Die Grundlagen von Machine Learning können so im Rahmen eines Schwerpunktfachs oder Ergänzungsfachs Mathematik behandelt werden.
3. Programm
◼ Crashkurs Machine Learning
◼ Kaggle Competitions
◼ Kaggle-Kernels
◼ Diskussion: Einsatz im Gymnasialen Unterricht?
◼ Eignung?
◼ Nötige Anpassungen?
◼ Kontaktieren Sie mich! beat.toedtli@ffhs.ch
4. Bitte registrieren Sie sich bei kaggle.com
(für später)
◼ Praktisches Lernen von Machine Learning
◼ Austausch von Ideen und Erfahrungen
◼ Offene Datensätze, Tutorials
6. Was ist Machine Learning?
◼ „Machine Learning ist im Wesentlichen curve fitting“
(F.Chollet)
◼ Lerne, aus vorhandenen Daten auf neue
Situationen zu verallgemeinern
◼ Trainingsset: (X,y)
◼ Lerne ein Modell
y=a·x+b
◼ Modellvorhersagen
auf Testset: (X,?)
9. ◼ Paket in Python für maschinelles Lernen
◼ Methoden .fit(), .predict(): Lernen und Vorhersagen
◼ Eignung für Mittelstufe?
Scikit-Learn
10. ◼ Paket in Python für maschinelles Lernen
◼ Methoden .fit(), .predict(): Lernen und Vorhersagen
◼ Eignung für Mittelstufe?
Scikit-Learn
11. ◼ Siehe Workshop von U. Künzi und B.Keller:
„Scipy und Jupyter Lab für den Mathematikunterricht“
PandasMatplotlib
Jupyter notebook
Python NumPy
Scipy-Stack
12. Ein Beispiel für Maschinelles Lernen
◼ Datengenerierende Verteilung
14. ◼ Datengenerierende Verteilung
◼ (Trainings-)Datenpunkte im Streudiagramm
◼ Füge 10% Rauschen hinzu: „Falsch“ bezeichnete Datenpunkte
Ein Beispiel für Maschinelles Lernen
15. ◼ Datengenerierende Verteilung
◼ (Trainings-)Datenpunkte im Streudiagramm
◼ Füge 10% Rauschen hinzu: „Falsch“ bezeichnete Datenpunkte
◼ Datengenerierende Verteilung in der Praxis fast immer unbekannt
Ein Beispiel für Maschinelles Lernen
17. Supervised Learning,
überwachtes Lernen
Lernalgorithmus
mit Kostenfunktion
Finale Hypothese
Trainingsdaten
Völlig unbekannte
Zielfunktion
◼ Kostenfunktion: wie gut passt eine
Hypothese zu den Daten?
◼ Lernalgorithmus sucht bestmögliche
Hypothese
◼ Kostenfunktion definiert „bestmöglich“:
z.B. mittlere quadratische Abweichung
Hypothesenmenge
(z.B. alle kNN mit k=5)
(Z.B. Gradientenabstieg mit
Least-Squares-Kostenfunktion)
18. K-Nächste Nachbarn
◼ Welches Klassenlabel erhält ein neuer Datenpunkt?
◼ Das Selbe wie seine k nächsten Nachbarn!
19. K-Nächste Nachbarn
◼ Welches Klassenlabel erhält ein neuer Datenpunkt?
◼ Das Selbe wie seine k nächsten Nachbarn!
◼ Wieviele Nachbarn berücksichtigen?
21. Overfitting bei Regression
◼ Fitte ein Polynom an Punkte
◼ Perfekter Fit an Trainingspunkte: schlechte Verallgemeinerung
Underfitting ! Overfitting!
32. ◼ An der Fernfachhochschule Schweiz in 3 Modulen eingesetzt
◼ Kontext Berufsweiterbildung in Data Science (MAS/CAS Web4B)
◼ Ziel: Praktische Erfahrung sammeln in Machine Learning
mit Python und Scikit-Learn
◼ „Die Kaggle-Competitions waren super, unbedingt beibehalten.“
Hochschul-
Unterrichtsbeispiel
36. InClass Kaggle Competition
◼ Geben Sie den folgenden Link ein:
www.kaggle.com/c/oed19classification
oder
http://tinyurl.com/yye89e4v
◼ Klicken Sie auf Kernels
◼ Klicken Sie auf den „Demo-Notebook OED2019“
◼ Klicken Sie auf „Fork“, um Ihr eigenes editierbares Notebook zu erhalten
38. Alternative Kaggle Competition:
Regression? (Zusatzmaterial)
◼ Suchen Sie nach „oed19“ oder geben Sie den folgenden Link ein:
https://www.kaggle.com/c/OED19-Regression
◼ Klicken Sie auf den „Demo_Kaggle_Submission“ Kernel
◼ Klicken Sie auf „Fork“,
um Ihr eigenes editierbares Notebook zu erhalten
39. InClass Kaggle Competition
(ohne Kernels)
◼ Alternativ: Laden Sie die Daten herunter und entpacken Sie sie.
◼ Das Jupyter Notebook lässt sich ebenfalls herunterladen: