# Selbstlernkurs: [Einführung in die KI](https://ki-campus.org/courses/einfuehrungki2020)
[TOC]
###### tags: `Mediendidaktik` `Künstliche Intelligenz`
:::success
<iframe title="vimeo-player" src="https://player.vimeo.com/video/534763206" width="640" height="360" frameborder="0" allowfullscreen></iframe>
:::
## Startthema: Was ist KI? Was ist ML?
### KI = Künstliche Intelligenz[^1]
:brain: Ist als eigene _wissenschaftliche Diszplin_ zu sehen und nicht als alleinstehende Thematik. In dem Fachgebiet geht es um unterschiedliche Methoden, sowei die Entwicklung und Nutzung von intelligenten Systemen.
### ML = Maschinelles Lernen
:robot_face: Kann als Methoden- und Werkzeugkasten der KI verstanden werden. Ermöglicht es Systeme "intelligenter" zu machen bzw. ihnen neue Fähigkeiten zu geben (durch Aufarbeitung und Nutzung von Daten).
### Welche Veränderungen werden hervorgerufen und/oder beschleunigt?
Beispiel :car:
Veränderung und Entwicklung vom _aktiven_ Fahren zum _passiven_ Fahren. Worauf werden Menschen beim Fahren achten (müssen)? Was sagt die Rechtslage bei Unfällen beim autonomen Fahren? Weiteres Stichwort **Internet of Things** und wie externe Medien und (Haushalts-)Geräte ver- bzw. eingebunden werden können?
### Geschichtlicher Überblick
_1950er_ :computer: [Der Turing-Test](https://en.wikipedia.org/wiki/Turing_test) und die Frage, ob sich Maschinen wie Menschen verhalten können. Grundlegendes Experiment basiert auf einer Kommunikation zwischen einem Menschen und einem nicht-sichtbaren Gegenüber, d.h. es geht um die Fragen ob ein Mensch während einer Kommunikation feststellen kann, ob das Gegenüber eine Maschine ist.
Es folgten weitere Meilensteine wie z.B. _1951_ (Schach), _1958_ ([Perzeptron](https://en.wikipedia.org/wiki/Perceptron) :arrow_right: diente in weiterer Folge als Konzept für neuronales Lernen), zwischen _1970-1980_ Experten- bzw. Regelsysteme (Ideen und Konzepte rund um die Nutzung von Regeln bzw. Algorithmen[^2]).
_1990_ stand erneut Mensch vs. Maschine im Vordergrund (nämlich Gary Kasparov vs. IBM Supercomputer), _2011_ ging es ebenfalls um ein Spiel (in diesem Fall Jeopardy!), hier stand jedoch im Vordergrund, dass hierfür ein gewisses Sprachverständnis wichtig war (im Gegensatz zu vorhergehenden Herausforderungen, wie z.B. Schach).
_2012_ folgte erneut die Beschäftigung bzw. ein Durchbruch mit neuronales Netzen (mit Hilfe verbesserter Rechnerleistung) und _2016_ trat AlphaGo (sowie später AlphaZero) als Herausforderer eines Menschen an.
---
### ML in der Praxis
* Empfehlungssysteme = individuell angepasste Vorschläge (von Content bzw. Informationen und Inhalten). Mehr Daten :arrow_forward: Mehr Informationen :arrow_forward: Genauere Vorschläge :arrow_forward: :money_with_wings:
* Krebsdiagnose = _Unterstützung_ des Personals durch das erkennen von komplexen Mustern (sowie dem Lernen daraus)
* Kreditkartenbetrug = Analysieren und Erkennen von verdächtigen Überweisungen :arrow_right: auch hier arbeiten Algorithmen an Mustererkennung
* Sprachassistenz = Erkennen von gesprochener Sprache und Ausführen von entsprechenden Handlungen
#### ML & Dynamik bzw. Komplexität
Im Kontext von Software und Code gibt es bestimmte _Regeln_ die programmiert werden. Allerdings gibt es viele Probleme die nicht anhand einer einfachen _Eingabe_ :arrow_right: _Verarbeitung_ :arrow_right: _Ausgabe_ abgedeckt werden können. Deshalb kommt ML ins Spiel, denn hier kann aus Daten gelernt werden und Entscheidungen angepasst werden.
Das Grundlegende :goal_net: ist also mit Hilfe von Daten entsprechende Vorhersagen zu treffen:crystal_ball:.
#### ~~Abgrenzung zu anderen Themengebieten~~[^3]
:no_entry_sign: Big Data
Im Gegensatz zu ML steht hier nicht das _Lernen_ aus Daten im Vordergrund, sondern die Frage nach der Sammlung, Speicherung, Verarbeitung etc. von großen Datenmengen.[^4]
:no_entry_sign: Statistik
Bei diesem Themenfeld sind eher Fragen relevant, ob es zwischen Daten etwaige Zusammenhänge gibt oder ob die erhobenen Daten Theorien oder Beobachtungen untermauern können. Es geht jedoch erneut nicht darum Muster zu erkennen und diese neu anzuwenden.
#### Wieso ist es aktuell?
:incoming_envelope: Mehr und mehr Daten vorhanden
:floppy_disk: Erhöhte Rechenleistung und verbesserte Hardware
:signal_strength: Vorhandensein von Algorithmen
= Notwendigkeit um entsprechend _Lernen_ zu können.
---
## Neue Möglichkeiten durch ML
#### :question: :exclamation: Neue Fähigkeiten von Systemen

_[ML Fähigkeiten](https://s3.xopic.de/kicampus-public/courses/3z7onRN6ZrnXvyPkFmz1xe/rtfiles/6JFsP9aqLkuesTahhyNs4J/ML_Fa_higkeiten_Originalillustration_von_KI_Campus_.png) (Originalillustration von [KI-Campus](https://ki-campus.org)) unter [CC-BY](https://creativecommons.org/licenses/by/4.0/deed)_
| Wahrnehmende Fähigkeit | Analytische Fähigkeit | Motoriche Fähigkeit | Generierende Fähigkeit |
|--- |--- |--- |--- |
| _Computer Vision_ :eyes: | Vorhersage :crystal_ball: | Robotik & Steuerung :robot_face: | Generierung :factory: |
| _Computer Audition_ :ear: | Entdeckung :ship: | | |
| _Computerlinguistik_ :speaking_head_in_silhouette: | | | |
#### Wahrnehmende Fähigkeiten
:question: :exclamation: Beispiele für die praktische Nutzung bzw. Umsetzung:
:eyes: Erkennen von Objekten
:ear: Liederkennung, Text-to-Speech usw.
:speaking_head_in_silhouette: Sprachassistenten, maschinelle Übersetzungen usw.
##### Computer Vision
Systeme der Bilderkennung (mit Tags versehene Bilder erkennen) mittlerweile über der _menschlichen_ Leistungsfähigkeit, siehe [ImageNet Challenges](https://www.image-net.org/challenges/LSVRC/index.php). Die nächste Herausforderung ist die Weiterentwicklung der Erkennung von statischen Bildern zu Bewegtbildern, sowie 3D-Elementen.[^5]
##### Computerlinguistik
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/PqbB07n_uQ4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
#### Analytische Fähigkeiten
:question: :exclamation: Beispiele für die praktische Nutzung bzw. Umsetzung:
:crystal_ball: Prognosen und Optimierung von (data-heavy) Systemen
:ship: Erkennung von Ausreißern und Recommender-Syste (z.B. YT oder Netflix)
:see_no_evil: [Hide and Seek](https://openai.com/blog/emergent-tool-use/) Beispiel (Anpassen des Verhaltens durch Erfahrungen bzw. durch Gelerntes)
#### Motorische Fähigkeiten
:question: :exclamation: Beispiele für die praktische Nutzung bzw. Umsetzung:
:robot_face: Autonome Fahrzeuge, Dronen und Anlagen- bzw. Systemsteuerung :arrow_forward: Ausführung von komplexen mechanischen Handlungen
> Was für einen Menschen schwer ist, ist für einen Computer leicht, und umgekehrt - _[Moravec's paradox](https://en.wikipedia.org/wiki/Moravec%27s_paradox)_
#### Generierende Fähigkeiten
:question: :exclamation: Beispiele für die praktische Nutzung bzw. Umsetzung:
:factory: _Neue_ Inhalte (z.B. Bilder, Videos, Texte) erzeugen[^6]
### Aber wie lernen :robot_face:?
:grey_exclamation: Bsp. der Bildererkennung von :cat2: :exclamation:
:man_and_woman_holding_hands: fällt das Erkennen von :cat2: auf Bildern recht einfach :arrow_right: Menschen _verstehen_ was eine :cat2: ist, d.h. das Erkennen funktioniert auch anhand von weniger (visueller) Information.
Allerdings funktioniert das Erkennen bei :robot_face: anhand von Mustern (z.B. Farben oder Linien), weshalb nicht immer eine Katze erkannt werden kann, denn die Analyse könnte über die Abfolge von _Punkt bzw. Linie_ neben _Punkt bzw. Linie_ usw. in einer bestimmten Farbe (z.B. Pixel in einem Bild) ablaufen.
Um also einem :robot_face: _beizubringen_ eine Katze auf einem Bild zu erkennen müssten immens viele Regeln definiert werden.
> Lernende Systeme sind Programme, die versuchen ein Ziel zu erreichen und die durch Aktion und Beobachtung dieser Reaktion ihrer Umgebung versuchen, zu lernen, wie sie das am besten schaffen.
1. :goal_net:-Definition:
Zunächst muss festgelegt werden was das System lernen soll. Idealerweise erhält es auch die Möglichkeit den eigenen Status bzw. Fortschritt zu uberprüfen (z.B. mit Hilfe von Beispieldaten)
2. :game_die:
Danach versucht das System durch Ausprobieren das Ziel zu erreichen (anhand der zugespielten Daten oder durch Interaktion mit seiner Umwelt)
3. :microscope:
In diesem Schritt analysiert das System wie es vorangekommen ist und
4. passt, wenn notwendig, den eigenen _Lern_ prozess an.
5. :arrows_counterclockwise:
Letztendlich versucht das System den eigenen Prozess weiter zu optimieren (und setzt diesen iterativen Prozess bei Punkt 2 fort).

<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://s3.xopic.de/kicampus-public/courses/3z7onRN6ZrnXvyPkFmz1xe/rtfiles/6ChkKYPsnu8ips1E2D0nYr/Abbildung_2.2.3._U_berblick_maschinelles_Lernen.jpg">Überblick maschinelles Lernen</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://www.unternehmertum.de/">UnternehmerTUM</a> is licensed under <a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1"></a></p>
:diamond_shape_with_a_dot_inside:
Dementsprechend sagt die Vorhersage (mit neuen Daten) etwas über die Qualität des ML-Systems aus!
#### Wie nun Maschinelles _Lernen_?
* Lernstil bzw. Lerntyp: Die Eigenschaften der Daten die eingespielt werden.
* Lernmethode bzw. Lernalgorithmus: Der Prozess anhand dessen aus den Daten gelernt wird.
* Problemtyp: Die Erwartungen an den Output bzw. die Ergebnisse.
##### :video_camera: Supervised Learning (überwachtes Lernen):
:arrow_right: Daten (bzw. gewünschten Ergebnisse) werden mit zusätzlichen Informationen versehen (=Label), damit :robot_face: überprüfen kann ob die Vorhersage stimmt
:exclamation: Bietet zusätzliche Kontroll-Funktion
:computer: Klassikation[^7] und Regression[^8] als Problemtypen
##### :see_no_evil: Unsupervised Learning (unüberwachtes Lernen)
:arrow_right: Das System versucht aus den Daten Muster zu erkennen.[^9]
:exclamation: Nutzung eben als Muster-Erkennung interessant.
:computer: Clustering[^10] als Problemtyp
##### :muscle: Reinforcment Learning (bestärkendes Lernen):
:arrow_right: Maschine lernt drauf los und bekommt über den Fortschritt Feedback.
:exclamation: Agenten interagieren mit der Umwelt und passen weitere Handlungen entsprechend an
:computer: Strategie-Handeln als Problemtyp
### Künstliche Neuronale Netzwerke (Artifical Neural Netowrks)
:arrow_right: Können viele unterschiedliche mathematische Funktionen abbilden = Schweizermesser des ML
___
## Ethische Fragen zu KI und ML
**Probleme bei ML-Lösungen**
:computer: Nicht erkennbare bzw. unklare Daten, die eingespeist werden (u.a. biased data)
:name_badge: Nicht ideal konzipierte Algorithmen, die entsprechend zu falschen Ergebnissen führen
:camera_with_flash: Modelle und Trainingsprogramme unzureichend zusammengestellt = "underfitting[^11]" & "overfitting[^12]"
## Die goldene Regel
:star2: Wie funktioniert eine Anwendung in einer _neuen_ Situation, die für das Programm unbekannt ist?
## Die Konfusionsmatrix
## Visualisierung
---
[^1]: Unterschiedliche Definitionen, z.B. von [Initiative for Applied Aritifical Intelligence](https://www.appliedai.de/hub/elements-of-a-comprehensive-ai-strategy), [European Commission](https://digital-strategy.ec.europa.eu/en/library/definition-artificial-intelligence-main-capabilities-and-scientific-disciplines), [Stanford University](https://ai100.stanford.edu/2016-report/section-i-what-artificial-intelligence/defining-ai)
[^2]: Können als Schritt-für-Schritt Anleitung zu einer spezifischen Fragestellung verstanden werden.
[^3]: Hier geht es um eine rein begriffliche Abgrenzung, denn diese Bereiche arbeiten alle in unterschiedlichem Ausmaß mit ML zusammen.
[^4]: Mit Hilfe von großen Datenmengen kann allerdings natürlich die _Lernfähigkeit_ von Algorithmen verbessert werden.
[^5]: [Teachable Machine](https://teachablemachine.withgoogle.com/) zum selbst ausprobieren.
[^6]: Stichwort hierbei auch _Deep Fakes_
[^7]: In welcher Kategorie bzw. Klasse befinden sich Datenpunkte. Bsp.::cat2:Bilder bzw. :e-mail: Sortierung
[^8]: Die Vorhersage eines kontinuierlichen Wertes. Bsp.: Kaufpreis bei Immobilien.
[^9]: Bereits gefundene Daten werden danach allerdings für das weitere Lernen genutzt, quasi als _Label_
[^10]: Das System lernt und sucht nach Gruppen, ohne zu wissen, ob welche es gibt.
[^11]: Eine Unteranpassung = das System ist zu einfach konzipiert und kann dementsprechend nicht für _neue_ Probleme angewendet werden. :arrow_right: Zu wenige Eigenschaften der Daten erfasst.
[^12]: Eine Überanpassung = Angleichgung der Ergebnisse an die Daten ist zu stark, kann ebenso nicht gut für _neue_ Probleme angewendet werden: :arrow_right: Zu viele Eigenschaften der Daten erfasst (zufällige Korrelationen).