Projekt:2023/Maschinelles Lernen: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 12: Zeile 12:


=== Arten des maschinellen Lernens ===
=== Arten des maschinellen Lernens ===
{{Zitat|
Machine Learning ist ein wichtiger Bestandteil der künstlichen Intelligenz. Dabei kann ein IT-System auf Basis von Algorithmen in Daten selbstständig Muster und Gesetzmäßigkeiten erkennen. So kann maschinelles Lernen mithilfe von Daten Vorhersagen treffen. Außerdem kann es durch Erfahrungen lernen, eigenständig neue Probleme zu lösen.
|[https://studyflix.de/informatik/machine-learning-4356 Studyflix]}}


==== Verstärkendes Lernen ====
==== Verstärkendes Lernen ====
Zeile 21: Zeile 25:
==== Unüberwachtes Lernen ====
==== Unüberwachtes Lernen ====
Beim unüberwachten Lernen erhält das System Daten, die nicht gelabelt sind. Es versucht, selbstständig in der Menge der Daten gewisse Muster oder Ähnlichkeiten zu finden und so die Daten zu kategorisieren. Auf diesem Weg sind z.B. Auffälligkeiten im Bereich von Buchungen eines Unternehmens oder im Verhalten von Personen zu erkennen. [https://www.inf-schule.de/content/120_KI_im_Unterricht/2_LernendeSysteme/3_lernarten/unueberwachtesLernen.png]
Beim unüberwachten Lernen erhält das System Daten, die nicht gelabelt sind. Es versucht, selbstständig in der Menge der Daten gewisse Muster oder Ähnlichkeiten zu finden und so die Daten zu kategorisieren. Auf diesem Weg sind z.B. Auffälligkeiten im Bereich von Buchungen eines Unternehmens oder im Verhalten von Personen zu erkennen. [https://www.inf-schule.de/content/120_KI_im_Unterricht/2_LernendeSysteme/3_lernarten/unueberwachtesLernen.png]
{{Hinweis|Das Video auf https://studyflix.de/informatik/machine-learning-4356?topic_id{{=}}590 fasst die Arten des maschinellen Lernens noch einmal zusammen.}}


== Spielbäume ==
== Spielbäume ==
Zeile 28: Zeile 34:
== Neuronale Netze ==
== Neuronale Netze ==


=== Neuron und Perzeptron ===
=== Neuron ===


Ein künstliches Neuron ist das kleinste Bauteil eines künstlichen neuronalen Netzes und empfängt Eingaben (Zahlen), multipliziert diese jeweils mit einem individuellen Gewicht für jede Eingangsverbindung, bildet die Summe der gewichteten Eingabewerte und "feuert" dann einen Ausgabewert ab (übergibt ihn an die folgenden Neuronen). Mit "feuern" ist gemeint, dass das Neuron unter einer festgelegten Bedingung die Summe der Eingaben weitergibt und sonst <code>0</code>. Wann ein Neuron "feuert" kann ganz unterschiedlich festgelegt werden. z.B. könnte eine Bedingung lauten "''Wenn die gewichtete Summe größer ein Schwellwert ist''" (z.B. <code>> 0</code>).
Ein künstliches Neuron ist das kleinste Bauteil eines künstlichen neuronalen Netzes und empfängt Eingaben (Zahlen), multipliziert diese jeweils mit einem individuellen Gewicht für jede Eingangsverbindung, bildet die Summe der gewichteten Eingabewerte und "feuert" dann einen Ausgabewert ab (übergibt ihn an die folgenden Neuronen). Mit "feuern" ist gemeint, dass das Neuron unter einer festgelegten Bedingung die Summe der Eingaben weitergibt und sonst <code>0</code>. Wann ein Neuron "feuert" kann ganz unterschiedlich festgelegt werden. z.B. könnte eine Bedingung lauten "''Wenn die gewichtete Summe größer ein Schwellwert ist''" (z.B. <code>> 0</code>).


Ein Neuron, das selbstständig lernen kann, welche Gewichte und Schwellenwerte es am besten benutzen sollte, nennt man ein ''Perzeptron''.
<!-- Ein Neuron, das selbstständig lernen kann, welche Gewichte und Schwellenwerte es am besten benutzen sollte, nennt man ein ''Perzeptron''. -->


[[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>.]]
[[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>.]]
Zeile 106: Zeile 112:
Mit "Animate" kannst Du das Netzwerk automatisiert lernen lassen. Betrachte dabei den Reiter "Error History" und die Grafik links. Was lässt sich beobachten?
Mit "Animate" kannst Du das Netzwerk automatisiert lernen lassen. Betrachte dabei den Reiter "Error History" und die Grafik links. Was lässt sich beobachten?
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Hinweis|Im Video auf https://studyflix.de/informatik/neuronale-netze-4297?topic_id{{=}}590 wird noch einmal zusammengefasst, wie neuronale Netze lernen.}}


{{Aufgabe:Start}}
{{Aufgabe:Start}}

Version vom 7. März 2024, 14:36 Uhr

Seite zum Projekt Maschinelles Lernen und künstliche Intelligenz des Informatik Diff 10 im Schuljahr 2023/24.

Maschinelles Lernen

"Künstliche Intelligenz" ist derzeit in aller Munde. Dabei ist das, was wir als "Intelligenz" bezeichnen, oftmals gar nicht so schlau und besser mit dem Begriff des "maschinellen Lernens" beschrieben. Denn die Algorithmen "lernen" zwar, ihre Aufgaben effizient (und manchmal sogar besser als Menschen) zu erfüllen, aber sie sind davon abhängig, welche Daten sie zum Lernen bekommen und können ihre Erfahrungen nicht auf andere Bereiche anwenden, als auf die, für die sie trainiert wurden.

Die Theorie der "Künstlichen Intelligen"z ist gar nicht so neu, wie man vielleicht glauben möchte. Aber gerade durch technische Weiterentwicklungen der letzten Jahre und die gestiegene Rechenleistungen ist sie auch an vielen Stellen des Alltags mehr und mehr zu finden.

Arten des maschinellen Lernens

Quotes.png

Machine Learning ist ein wichtiger Bestandteil der künstlichen Intelligenz. Dabei kann ein IT-System auf Basis von Algorithmen in Daten selbstständig Muster und Gesetzmäßigkeiten erkennen. So kann maschinelles Lernen mithilfe von Daten Vorhersagen treffen. Außerdem kann es durch Erfahrungen lernen, eigenständig neue Probleme zu lösen.

Studyflix

Verstärkendes Lernen

Verstärkendes Lernen (engl.: reinforcement learning, RL) steht für das selbständige Erlernen einer Strategie, um erhaltene Belohnungen zu maximieren (wobei eine "Bestrafung" als negative Belohnung zu sehen ist). [1]

Überwachtes Lernen

Überwachtes Lernen einer KI findet dann statt, wenn das System versucht, Gesetzmäßigkeiten zu finden (z.B. "Woran erkenne ich ein gesundes Lebensmittel?"). Dabei erhält das KI-System eine Menge von Trainingsdaten, die bereits korrekt "gelabelt" sind (z.B. eine gewisse Datenmenge zu Lebensmitteln, die bereits korrekt als "gesund" oder "ungesund" gelabelt sind). Im nächsten Schritt versucht das System eine Zuordnung zwischen den Daten und den Labeln zu finden. Mit Hilfe von Testdaten kann im Anschluss dieser Lernvorgang überwacht werden. [2]

Unüberwachtes Lernen

Beim unüberwachten Lernen erhält das System Daten, die nicht gelabelt sind. Es versucht, selbstständig in der Menge der Daten gewisse Muster oder Ähnlichkeiten zu finden und so die Daten zu kategorisieren. Auf diesem Weg sind z.B. Auffälligkeiten im Bereich von Buchungen eines Unternehmens oder im Verhalten von Personen zu erkennen. [3]

Icon Info.png
Das Video auf https://studyflix.de/informatik/machine-learning-4356?topic_id=590 fasst die Arten des maschinellen Lernens noch einmal zusammen.

Spielbäume

Entscheidungsbäume

Neuronale Netze

Neuron

Ein künstliches Neuron ist das kleinste Bauteil eines künstlichen neuronalen Netzes und empfängt Eingaben (Zahlen), multipliziert diese jeweils mit einem individuellen Gewicht für jede Eingangsverbindung, bildet die Summe der gewichteten Eingabewerte und "feuert" dann einen Ausgabewert ab (übergibt ihn an die folgenden Neuronen). Mit "feuern" ist gemeint, dass das Neuron unter einer festgelegten Bedingung die Summe der Eingaben weitergibt und sonst 0. Wann ein Neuron "feuert" kann ganz unterschiedlich festgelegt werden. z.B. könnte eine Bedingung lauten "Wenn die gewichtete Summe größer ein Schwellwert ist" (z.B. > 0).


Schema eines künstlichen Neurons mit den Eingaben e1 und e2, Gewichten w1 und w2 und der Ausgabe a.

Vereinfachtes künstliches Neuron

Wir betrachten nun ein vereinfachtes Neuron, dass nur die Eingaben 0 und 1 kennt und immer dann "feuert", wenn die Eingabe über einem festen Schwellwert liegt. In dem Fall wird immer 1 ausgegeben, ansonsten 0.

Mithilfe dieses Neurons wollen wir ein ganz einfaches neuronales Netz erstellen.

Icon Heft.png
Arbeitsauftrag

Die logischen UND- und ODER-Verknüpfungen kennst Du aus der Programmierung mit Python:

a = inputInt("Gib eine Zahl ein")
if a < 0 or a > 100:  # ODER-Verknüpfung
  print("Zahl nicht im richtigen Bereich")
elif a > 10 and a < 20:  # UND-Verknüpfung
  print("Zahl zwischen 10 und 20")

Wie die Verknüpfungen funktionieren, lässt sich anhand einer Tabelle darstellen, in der 1 für True und 0 für False steht. Fülle die beiden Tabellen so aus, dass sie jeweils zur UND- bzw. ODER-Verknüpfung passen:

e1 e2 a
UND
0 0 0()
1 0 0()
0 1 0()
1 1 1()
e1 e2 a
ODER
0 0 0()
1 0 1()
0 1 1()
1 1 1()


Icon Heft.png
Arbeitsauftrag

Erkunde auf der Seite inf-schule.de, wie Du ein ODER-Neuron mit einem passenden Schwellwert erstellen kannst.

Bearbeite dann die weiteren Schritte bis zur Zusammenfassung


Neuonenschichten

In einem neuronalen Netz werden Neuronen in Schichten zusammengefasst. Die Eingabeschicht empfängt die Eingabedaten von außen. Die Ausgabeschicht gibt das Ergebnis an. Dazwischen können beliebig viele Neuronenschichten liegen (die "Hidden Layers"), die zur Berechnung des Ergebnisses beitragen.

Wie neuronale Netze lernen

Icon Heft.png
Arbeitsauftrag
  1. Bearbeite die Lernstrecke Einführung Neuronale Netze auf inf-schule.de bis zur Zusammenfassung.
  2. Erstelle neuronale Netzwerke für die ersten beiden Beispiele ( a) und b) ) von Aufgabe 1: https://www.inf-schule.de/KI_im_Unterricht/neuronaleNetze/uebungen


Icon Heft.png
Arbeitsauftrag

In der letzten Aufgabe hast Du das Netz selbst angelernt. Das Ziel ist es aber, das Netz selbst seine Gewichte finden zu lassen. Also "maschinell lernen" zu lassen. Unter https://link.ngb.schule/nnsim-steinlaus findest Du eine Simulation eines neuronalen Netzes zur Erkennung der Steinlaus aus der letzten Aufgabe.

Erkunde die Simulation, indem Du mehrfach auf "Train" klickst und beobachte, was passiert.

Mit "Animate" kannst Du das Netzwerk automatisiert lernen lassen. Betrachte dabei den Reiter "Error History" und die Grafik links. Was lässt sich beobachten?


Icon Info.png
Im Video auf https://studyflix.de/informatik/neuronale-netze-4297?topic_id=590 wird noch einmal zusammengefasst, wie neuronale Netze lernen.
Icon Heft.png
Arbeitsauftrag

Ursprünglich wollten wir ein neuronales Netz Pixel zählen lassen. Unter https://link.ngb.schule/nnsim-pixel wurde das Netz von der Tafel nachgebaut.

  • Erkunde auch hier die Simulation und beobachte die Änderungen.
  • Studiere anschließend (nachdem das Netz "fertig" gelernt hat) auch den Reiter "Table Input" oben rechts. Was bedeuten die Zeilen in der Tabelle?

Das Netz kann die Trainingsdaten für einen schwarzen Pixel nicht besonders gut abbilden. Wahrscheinlich ist es nicht komplex genug (hat nicht genug Neuronen und Schichten). Ergänze unten eine weitere Schicht und experimentiere mit der Anzahl der Neuronen.

  • Wann lernt das Netz, die Trainingsdaten genauer abzubilden?
  • Was bedeuten nun die Gewichte der Kanten?
  • Wie müsste das Netzwerk für drei oder gar vier Pixel aussehen?


Icon Heft.png
Arbeitsauftrag

Öffne in einem neuen Fenster playground.tensorflow.org.

Reduziere die "hidden layers" auf 1 und die Neuronen auf 3. Belasse die Auswahl von "Data" auf der kreisförmigen Punktmenge.

Oberfläche des Tensorflow Playgorund.

Lasse das neuronale Netz schrittweise lernen (der kleine Pfeil neben dem großen "Play"-Button):

  • Wie viele Schritte sind nötig, bis "Training loss" weniger als 10% beträgt?
  • Interpretiere die Bedeutung der Symbole der Neuronen im "hidden layer" (bewege deine Maus darüber).
  • Experimentiere mit weiteren Eingangsdaten und überprüfe dabei, wie gering die Anzahl der verwendeten Neuronen dabei sein darf.
  • Experimentiere mit verschiedenen "Features" und Neuronenanzahlen. Welche Kombinationen funktionieren gut, welche weniger gut? Woran liegt das?