Angewandtes Maschinelles Lernen
Überblick
Dozent: Florian Dahms, R 1-138
Künstliche Intelligenz
Rational handelnde Maschinen
In der Vergangenheit häufig: "Maschinen, die menschliche Intelligenz imitieren".
Deutlich weniger ML als viele denken. Hauptsächlich klassische Controller und Planning Methoden. ML hauptsächlich was Computer Vision angeht.
Brettspiele
Planungsprobleme
Autopiloten
Automatische Übersetzung
Teilweise existieren schon Services (z.B. Skype Translate), die gesprochene Sprache in Echtzeit übersetzen.
Geschichte
1956: Dartmouth College Summer Workshop (John McCarty)
Geburtstunde des Begriff "Artificial Intelligence"
Ziel der Workshops war, ein System zu bauen, dass alle relevanten Aspekte menschlicher Intelligenz abbilgen kann. In 2 Monaten.
Computer waren eine komplett neue Entwicklung
Frühe Erfolge
1956: Logic Theorist (Newell, Simon, Shaw)
Generieren von automatischen Beweisen für Theoreme
1959: Dame (Brettspiel) (Samuel)
Spielt Dame auf starkem Amateur Level
Großer Optimismus, dass in 10-20 Jahren KI "gelöst" sein wird.
Der Logic Theorist konnte mehrere Theoreme in Principia Mathematica beweisen und fand einmal einel elegantere Lösungen, als im Original.
Samuels Program verwendete Machine Learning und andere Techniken, die wir später besprechen.
Schlechte Ergebnisse in anderen Bereichen: Übersetzung
The spirit is willing but the flesh is weak.
↓ (Russisch) ↓
The vodka is good but the meat is rotten.
1966: ALPAC report führt zum Ende der Finanzierung von Machine Translation projekten
Anfang des ersten "AI winter". Probleme unter anderem: langsame Rechner, Modelle komplett von Hand spezifiziert, wenig Daten.
1970er und 80er: Expertensysteme
Regelbasierte Systeme
"When [x] dann [y]"
Komplett spezifiziert durch Domänenexperten
Erfolg vor allem durch Fokus auf sehr enge Teildomänen (abkehr von großen Ambitionen zu Beginn).
Pros:
Erste echte Anwendungen
Expertenwissen kann skaliert werden
Cons:
Deterministische Regeln unzureichend für nicht deterministische Welt
Regeln für viele Probleme zu komplex zum manuellen erfassen
1987: zweiter "AI winter"
Bis zu diesem Zeitpunkt waren symbolische KI die dominante Forschungsrichtung.
Künstliche neuronale Netze
1943: künstliche neuronala Netze / Schaltkreise (McCulloch, Pitts)
1949: "cells that fire together wire together" Regel (Hebb)
1958: Perceptron Algorithmus (Rosenblatt)
1959: ADALINE maschine für lineare regression (Widrow/Hoff)
1969: "Perceptrons" (Minsky, Papert): Zeigten, dass lineare Modelle nicht XOR berechnen können
"Perceptrons" wurde als Anlass genommen, die Forschungsgelder für neuronale Netze zu streichen (obwohl nichts zu tieferen nns gesagt wurde)
2. Welle von neuronalen Netzen
1980: Neocognitron (convolutional neural network) für Bilder (Fukushima)
1986: (Wiederentdeckte) Backpropagation zum Training von Multi-layer Netzwerken (Rumelhardt, Hinton, Williams)
1989: Convolutional neural network zum Erkennen von handgeschriebenen Ziffern (LeCun)
LeCuns Netzwerk war eines der ersten NNs im Einsatz zum Erkennen von Postleitzahlen.
Deep Learning
2006: Hinton et. al. zeigen, wie sich tiefe neuronale Netzwerke trainieren lassen
2012: AlexNet macht sehr große Fortschritte bei der Bilderkennung
2016: AlphaGo gewinnt gegen Weltmeister Lee Sedol im Go
Der Begriff Deep Learning kam etwa mit dem Hinton Paper auf. Der echte Durchbruch kam aber erst mit AlexNet auf dem ImageNet benchmark set.
Zwei Hauptrichtungen
Symbolische KI
Neuronale KI
Starke philosophische Gräben. Aber viele Anwendungen vereinen die Stärken der unterschiedlichen Ansätze.
Ideen aus diversen Feldern
1801: Lineare Regression (Gauss, Legendre)
1936: Lineare Klassifikation (Fisher)
1956: Kürzeste Wege Suche (Dijkstra)
1957: Markov Entscheidungs Prozesse (Bellman)
1985: Bayesian Networks (Pearl)
1995: Support Vector Machines (Cortes, Vapnik)
Viele Machine Learning Tools (wie etwa Regression und Linear Discriminant Analysis) kommen aus der Statistik (ohne dort das Ziel "Intelligenz" zu haben).
Zwischen 1990 und 2010 wurde der Term KI gemieden aufgrund der nicht eingehaltenen Versprechen zuvor.
SVMs sind eine Hochzeit von statistischem Lernen und linearer Optimierung.
Symbiose verschiedener Felder führt zu erfolgreichen Anwendungen.
In diesem Modul: Fokus auf Machine Learning.
Gerne eigene Praxisprobleme mitbringen!
Unterteilung Machine Learning
Supervised Learning (überwachtes Lernen)
Unsupervised Learning (unüberwachtes Lernen)
Reinforcement Learning (bestärkendes Lernen)
Supervised Learning
Wir haben Daten $(x_1, y_1), (x_2, y_2), \ldots$ mit korrektem Label $y_i$
Beispiel: Lineare Regression
Input $x$: Rohe Pixel
Output $y$: Objektart, Bounding Box
Unsupervised Learning
Wir haben ungelabelte Daten $x_1, x_2, x_3, \ldots$
Input $x$: Genom Sequenz
Beim Sequence Clustering werden genome nach Sequenzähnlichkeit gruppiert um Zusammenhänge zu entdecken.
Reinforcement Learning
Zum Zeitpunkt $t$ beobachten wir $s_t$ und entscheiden uns für eine Aktion $a_{t+1}$, die eine Belohnung $r_{t+1}$ bringt und zu einem
neuen Zustand $s_{t+1}$ führt.
$\Rightarrow s_0; a_1, r_1, s_1; a_2, r_2, s_2; \ldots$
Das besondere hier ist, dass der Algorithmus seine Lerndaten aktiv gestaltet.
Input $x$: Video Pixels
Output $a$: Maus Position, Klick, Tastenanschlag
Belohnung $r$: Sieg oder Niederlage
Open AI 5. Zusammenspiel mehrerer Agenten klappt noch nicht besonders gut. Bei anderen Spielen wie
Schach oder Go sind Reinforcement Learning Systeme auch schon übermenschlich gut.
Braucht vor allem viele Daten um gut zu werden.
Unterteilung Machine Learning
Supervised Learning (überwachtes Lernen)
Unsupervised Learning (unüberwachtes Lernen)
Reinforcement Learning (bestärkendes Lernen)
Fokus von diesem Modul. Wir wollen also einer Maschine beibringen Vorhersagen zu machen, zu der wir Beispieldaten haben.
Machine Learning = Statistik + Algorithmen
Das impliziert vor allem, dass wir viel statistische Intuition brauchen. Wenn ein Modell mal nicht auf Anhieb funktioniert (der Regelfall), brauchen
wir das Grundlagenwissen um zu debugggen.
Python
Eine der populärsten Programmiersprachen.
(relativ) leicht erlernbar.
Exzellente Bibliotheken für Data Science und Machine Learning.
Open Source
Link Jupyter
Lokale Python / Jupyter Installation:
Anaconda
Geht auch anders und streng genommen brauch man auch kein Jupyter. Das darf jeder selber entscheiden.