Navigation: đ€ Teil 1 - đ€ Teil 2 - đ€ Teil 3 - đ€ Teil 4Loading âLoading â
đ€ Wie funktioniert maschinelles Lernen 2
đŻ In dieser Reihe erfĂ€hrst du, wie ein Computer mithilfe von Daten lernen kann.
Inhaltsverzeichnis
Machine Learning löst ein reales Problem nicht direkt, sondern nÀhert zuerst das Problem, dann diese NÀherung mithilfe von Daten und schliesslich deren Lösung durch Annahmen und Verfahren an. Deshalb sind Machine-Learning-Lösungen nie garantiert fehlerfrei.
1. Das Problem nÀherungsweise beschreiben
Abb.1: Fehlerfunktion1).
Im Teil 1 hast du gelernt, dass mit Machine Learning Probleme gelöst werden können, bei welchen eine Eingabe in eine Ausgabe ĂŒberfĂŒhrt werden soll. Dazu muss zuerst entschieden werden, welcher Ausschnitt der Wirklichkeit ĂŒberhaupt betrachtet wird: Was gilt als Eingabe $x$? Was gilt als Ausgabe $y$? Und woran soll gemessen werden, ob eine Ausgabe gut oder schlecht ist?
Beim Machine Learning wird nicht direkt die Wirklichkeit gelernt. Stattdessen wird eine Stellvertreter-Funktion $f_{ML}(x)$ verwendet, um den Zusammenhang zwischen $x$ und $y$ zu modellieren: $y=f_{ML}(x)$. Dadurch wird das Problem fĂŒr den Computer zugĂ€nglich gemacht.
Die Stellvertreter-Funktion $f_{ML}(x)$ enthÀlt verschiedene verÀnderbare Parameter. In diesem Kurs bezeichnen wir diese Parameter bei allen Machine-Learning-Verfahren vereinfachend als Gewichte $w$.2)
Damit der Computer beurteilen kann, ob eine Einstellung der Gewichte $w$ gut oder schlecht ist, braucht es eine Beurteilungsfunktion, welche die QualitĂ€t der Lösung in eine Zahl ĂŒbersetzt. Diese QualitĂ€t kann als Fehler oder als Score angegeben werden. In diesem Kurs verwenden wir durchgehend die Fehlerfunktion $J$. Sie ordnet einer Stellvertreter-Funktion $y=f_{ML}(x)$ einen Fehler $e$ zu. Je kleiner $e$, desto besser ist die Lösung gemĂ€ss der gewĂ€hlten Fehlerfunktion.
Da die Fehlerfunktion vom Machine-Learning-Verfahren und der Einstellung dessen Gewichte $w$ abhĂ€ngt, wird dieser Zusammenhang als $e = J(w)$ formuliert. Dies ist in Abb.1 dargestellt. Beim Machine Learning wird eine Einstellung der Gewichte $w^{*}$ gesucht, fĂŒr welche der Fehler möglichst klein wird, d. h. es wird ein $w^{*}$ gesucht, fĂŒr welches $e_{min} = J(w^{*})$ gilt.
â ïž Beim Machine Learning wird nicht das Problem selbst gelöst. Stattdessen wird stellvertretend versucht, den Fehler einer mathematischen Beschreibung des Problems mithilfe einer Fehlerfunktion zu minimieren. Dabei geht immer ein Teil der Wirklichkeit verloren, da viele Informationen weggelassen, vereinfacht oder in Zahlen ĂŒbersetzt werden (z. B. kann ein Bild durch Pixelwerte, ein Text durch Zahlenfolgen oder eine Person durch ausgewĂ€hlte Merkmale beschrieben werden). Nur wenn die Stellvertreter-Funktion $f_{ML}(x)$ und die Fehlerfunktion $J$ gut zum Problem passen, kann ein Minimieren des Fehlers $e_{min} = J(w^{*})$ das Problem in guter NĂ€herung lösen. Passen sie schlecht, dann wird zwar auch ein mathematisches Problem gelöst, aber vermutlich nicht das gesuchte reale Problem.
2. Die NÀherung mithilfe von Daten annÀhern
Im vorangehenden Abschnitt wurde zuerst das reale Problem in eine Stellvertreterfunktion $f_{ML}(x)$ und eine Fehlerfunktion $J(w)$ ĂŒbersetzt. Um am Ende eine gute Gewicht-Einstellung $w^*$ finden zu können, fĂŒr welche $e_{min}=J(w^*)$ gilt, mĂŒssen wir zuerst wissen, wie wir fĂŒr eine beliebige Gewicht-Einstellung $\hat{w}$ den Fehler $\hat{e}= J(\hat{w})$ berechnen können.
Dabei mĂŒssen wir zwischen dem wahren Fehler und dem empirischen Fehler unterscheiden. Den wahren Fehler wĂŒrden wir bekommen, wenn wir unser Machine-Learning-Verfahren mit der fixen Gewicht-Einstellung $w^*$ unendlich lange in der Praxis einsetzen wĂŒrden und den Fehler $\hat{e}= J(\hat{w})$ ĂŒber alle dabei gesehenen Anwendungsbeispiele mitteln wĂŒrden. So wĂŒrden wir alle vorkommenden Varianten mit ihren echten HĂ€ufigkeiten berĂŒcksichtigen. Das können wir jedoch nicht. Beim Machine-Learning wird dafĂŒr stellvertretend ein endlicher Datensatz verwendet. Der empirische Fehler ist derjenige Fehler $\hat{e}= J(\hat{w})$ der mithilfe der vorhandenen Daten bestimmt wird. Je besser dieser Datensatz die RealitĂ€t abbildet, desto besser kann der Fehler bestimmt werden.
𫣠In der Vergangenheit wurden Gesichtserkennungsverfahren relativ unkritisch mit Bildern aus dem Internet trainiert. Da es im Internet viel mehr Bilder von hellhĂ€utigen MĂ€nnern als von dunkelhĂ€utigen Frauen gibt, wurden in der Folge Gesichter von dunkelhĂ€utigen Frauen deutlich schlechter erkannt â eine unbeabsichtigte, algorithmische Diskriminierung. FĂŒr eine perfekte Gesichtserkennung mĂŒsste man eigentlich alle relevanten Gesichtsvarianten, Beleuchtungen, Kamerawinkel, Altersgruppen, Hauttöne, BildqualitĂ€ten und deren AuftretenshĂ€ufigkeiten in realen Anwendungssituationen berĂŒcksichtigen.
â ïž Der wahre Fehler kann bei realen Problemen fast nie exakt berechnet werden. Er wird mithilfe vorhandener Daten angenĂ€hert. Je mehr geeignete Daten verfĂŒgbar sind und je besser diese Daten die reale Anwendungssituation abdecken, desto zuverlĂ€ssiger kann der wahre Fehler geschĂ€tzt werden. Da $f_{ML}(x)$ und $J(w)$ bereits nur eine mathematische NĂ€herung des realen Problems sind, berechnen wir mit den vorhandenen Daten nur eine datenbasierte SchĂ€tzung des Fehlers dieser mathematischen NĂ€herung.
â Auftrag Mehr ist mehr
đ Hier lernst du, dass mehr Daten in der Regel zu besseren NĂ€herungen fĂŒhren.
- Mit dem Regler legst du die
Anzahl WĂŒrfemit einem 6er-WĂŒrfel fest. Dabei wird auch gleich die AnzahlErwarteten Anzahl Sechsenangegeben (auch âErwartungswertâ genannt). Bei 100 WĂŒrfen mĂŒssten theoretisch 1/6 aller WĂŒrfe Sechsen sein, d. h. der Erwartungswert wĂ€re 16.66⊠Sechsen. - Bei einem Klick auf den Button
WĂŒrfle!wird so oft zufĂ€llig gewĂŒrfelt, wie eingestellt. Dabei wird die tatsĂ€chlichGewĂŒrfelte Anzahl SechsengezĂ€hlt und ausgerechnet, wie viele Prozent diese Zahl von derErwartete Anzahl Sechsenabweicht. - WĂŒrfle mehrmals mit verschiedenen Slider-Einstellungen. Wie gut wird die
Erwartete Anzahl Sechsenbei wenigen WĂŒrfen getroffen? Wie gut wird dieErwartete Anzahl Sechsenbei vielen WĂŒrfen getroffen? - Was bedeutet das dafĂŒr, wie gut der Fehler $e=J(w)$ anhand von Daten abgeschĂ€tzt werden kann? Halte deine Ăberlegungen im Textfeld fest. Loading â
- Vergleiche danach deine Antwort mit der unseren am Ende dieses Auftrags.
3. Die NÀherung der NÀherung mit Annahmen und Verfahren annÀhern
In den beiden vergangenen Abschnitten wurde das Problem durch $f_{ML}(x)$ und $J(w)$ und der wahre Fehler $\hat{e} = J(\hat{w})$ durch den empirischen Fehler ersetzt. Jetzt geht es darum, diejenige Gewichtseinstellung $w^*$ zu finden, fĂŒr welche $e_{min} = J(w^*)$ gilt.
𫣠Leider lĂ€sst sich fĂŒr die meisten Machine-Learning-Stellvertreter-Funktionen $f_{ML}(x)$ und Fehlerfunktionen $J$ diejenige Gewichtseinstellung $w^*$, fĂŒr welche bezĂŒglich der zur VerfĂŒgung stehenden Daten $e_{min} = J(w^*)$ gilt, nicht ohne Weiteres exakt bestimmen. Die GrĂŒnde dafĂŒr können unterschiedlich sein: Die verwendeten Gleichungen lassen sich nicht geschlossen lösen, die exakten Berechnungen wĂ€ren zu aufwĂ€ndig, oder das Verfahren liefert nur dann eine eindeutige Lösung, wenn zusĂ€tzliche, die Allgemeinheit einschrĂ€nkende Annahmen getroffen werden. Somit wird $w^*$ in der Praxis oft nicht einfach exakt âgefundenâ, sondern durch die verwendeten Verfahren geschĂ€tzt, angenĂ€hert oder erst durch einschrĂ€nkende Annahmen eindeutig bestimmbar gemacht.
â ïž Machine-Learning bedeutet in der Praxis, die NĂ€herung (endlich viele Daten) einer NĂ€herung (mathematisches Abbild der RealitĂ€t) anzunĂ€hern (das Fehlerminimum nĂ€herungsweise oder durch Annahmen zu bestimmen). Umso erstaunlicher ist es, wie gut diese Verfahren in der Praxis funktionieren können. Aufgrund dieser NĂ€herungen sind Machine-Learning-Verfahren prinzipiell nicht fehlerfrei. Zudem können sie statt des realen Problems nur ein mathematisches Ersatzproblem lösen. Deshalb muss stets geprĂŒft werden, ob die resultierende Machine-Learning-Anwendung auch tatsĂ€chlich dasjenige Problem löst, fĂŒr welches sie erstellt wurde.
4. Beispiele gebrÀuchlicher Machine-Lerning-AnsÀtze
Im Folgenden werden drei gĂ€ngige LösungsstrategienansĂ€tze vorgestellt: Iterative AnsĂ€tze, statistische AnsĂ€tze und stochastische AnsĂ€tze. Das ZIel dieser AnsĂ€tze besteht darin, basierend auf einer durch mehrere Gewichte $w$ anpassbaren Funktion $f_{ML}(x)$ und einer Fehlerfunktion $J$ mithilfe von endlich vielen Daten ein $w^*$ zu finden, das $e_{min} = J(w^*)$ möglichst gut erfĂŒllt. Diese drei AnsĂ€tze sind nicht trennscharf und können miteinander kombiniert werden.
đĄ Manche Fehlerfunktionen $J$ brauchen fĂŒr die Berechnung des Fehlers Datenpaare $(x,d)$. Dabei ist $x$ die Eingabe und $d$ die gewĂŒnschte Ausgabe, d.h. der Desired Output. In diesem Fall spricht man von Supervised Learning (ĂŒberwachtem Lernen). Unsupervised Learning (unĂŒberwachtes Lernen) nutzt nur die Eingangswerte $x$ (und keine Desired Outputs). Diese Verfahren gehen von einer bestimmten Art von Struktur der Eingangsdaten aus (Gruppen, Gitter etc.) und passen diese Struktur an die Daten an. Die Fehlerfunktion misst dabei, wie gut die vorgegebene Struktur an die Daten angepasst werden kann. Eine dritte Variante stellt das Reinforcement Learning (verstĂ€rkendes Lernen) dar. Dabei geht ein System von einem Anfangszustand $x$ aus, durchlĂ€uft einen oder mehrere Schritte und erhĂ€lt dafĂŒr Belohnungen $r$. Dabei wird versucht, möglichst hohe Belohnungen zu erzielen. Die negative, erwartete Belohnung kann dabei als Fehlerfunktion aufgefasst werden, die minimiert wird.
Alle der nachfolgenden Beispiele beziehen sich auf Supervised Learning.
4.1 Iterative LösungsansÀtze
Bei iterativen LösungsansÀtzen wird ausgehend von einer ersten Gewichtseinstellung $w_0$ versucht, die Gewichte in mehreren Schritten in Richtung einer möglichst guten Gewichtseinstellung $w^*$ anzupassen. Bei neuronalen Netzen wird diese erste Gewichtseinstellung hÀufig zufÀllig erzeugt.
Besonders wichtig sind sogenannte Gradientenverfahren. Sie können verwendet werden, wenn die Stellvertreter-Funktion $f_{ML}(x)$ und die Fehlerfunktion $J(w)$ bestimmte mathematische Bedingungen erfĂŒllen3). Dann kann berechnet werden, in welche Richtung die Gewichte verĂ€ndert werden sollten, damit der Fehler kleiner wird.
Neuronale Netze werden meist mit solchen iterativen Verfahren trainiert. Dabei wird als anpassbare Funktion $f_{ML}(x)$ eine neuronale Netz-Funktion verwendet. Als Fehlerfunktion $J$ wird mehrheitlich eine Funktion verwendet, welche fĂŒr jeden Dateneingang $x$ den Ausgang $y$ des neuronalen Netzes mit dem desired Output $d$ vergleicht.
Neuronale Netze und Gradientenverfahren werden in den Teilen 3 und 4 dieser Reihe genauer erklÀrt.
â Auftrag neuronales Netz iterativ trainieren
đ Hier erfĂ€hrst du, wie ein iterativer Lösungsansatz arbeitet.
đĄ Das folgende neuronale Netz besitzt zwei EingĂ€nge, die x- und die y-Koordinaten der abgebildeten Kreise und Kreuze. Weiter besitzt es einen einzigen Ausgang $y$ der Werte von 0 bis 1 annehmen kann. Alle Ausgangswerte $y>0.5$ werden als Kreuze erkannt, alle Ausgangswerte $y\le0.5$ als Kreise. Als Fehlerfunktion wird der Mean Squared Error (MSE) genutzt, welcher den Mittelwert aller Differenzquadrate $(y - d)^2$ bezeichnet. Der desired Output $d$ wird dabei fĂŒr einen Kreis auf $d=1$ gesetzt und fĂŒr ein Kreuz auf $d=0$. Die rote Linie stellt die Ausgangswerte $y = 0.5$ dar und wird als Decision Boundary bezeichnet. ZusĂ€tzlich zum MSE wird auch die Klassifikationsrate (Prozentsatz korrekt) erhoben und die QualitĂ€t des neuronalen Netzes beschrieben. Achtung, die Klassifikationsrate wird nicht dazu verwendet, das neuronale Netz zu trainineren4).
- Starte das neuronale Netz ein paar Mal. Das neuronale Netz wird mit den Daten links trainiert. Wie gut das trainierte neuronale Netz ist, wird mit den nicht fĂŒr das Training verwendeten âValidationsdatenâ rechts geprĂŒft. Eine Epoche bezeichnet einen Trainingsdurchgang. Beachte, wie schrittweise der MSE (in der Console) und damit auch tendenziell die Klassifikationsrate verbessert werden. Beachte auch, dass jedes Training von anderen zufĂ€llig gewĂ€hlten Gewichtseinstellungen aus gestartet wird und somit zu einem anderen Trainingsverlauf fĂŒhrt.
- VerÀndere die Trainings- und Updateparameter oben im Programmcode. Versuche, ein paar Minuten lang zu erreichen, dass die Trainings- und Validationsergebnisse am Ende möglichst gleich und möglichst gut sind. Wenn du genug hast, halte deine besten Resultate im Textfeld fest.
- Die
LERNRATEbestimmt die Lerngeschwindigkeit, wobei bei einer zu hohen Lernrate das neuronale Netz âwild hin und her springtâ. - Die
ANZAHL_HIDDEN_NEURONENist mit der Anzahl Gewichte verknĂŒpft. Je höher dieser Wert, desto mehr Gewichte. Bei zu wenigen Gewichten kann nicht genĂŒgend gelernt werden, bei zu vielen Gewichten tritt âOverfittingâ auf, d. h. die Trainingsdaten werden auswendig gelernt (= gute Trainingsresultate, aber schlechte Validationsresultate). - Mit
ANZAHL_EPOCHENundEPOCHEN_FUER_GRAFIK_UPDATEkann eingestellt werden, wie lange trainiert und wie oft die Resultate und die Grafik aktualisiert werden soll.
Loading â
4.2 Statistische LösungsansÀtze
Abb.2: Illustration Naive Bayes5).
Bei den statistischen LösungsansĂ€tzen wird ermittelt, wie die Daten wertmĂ€ssig verteilt sind. Dazu wird eine Stellvertreter-Funktion $f_{ML}(x)$ verwendet, welche bestimmte Annahmen ĂŒber die âFormâ der Verteilung und weitere Annahmen beinhaltet. Basierend auf den verfĂŒgbaren Daten werden die Gewichte $w$ mithilfe statistischer Formeln so berechnet, dass die Fehlerfunktion $J$ im Rahmen der getroffenen Annahmen möglichst klein wird. Diese Minimierung bleibt nĂ€herungsweise, weil sie auf endlichen Daten und vereinfachenden Annahmen beruht. (Wir verwenden auch bei statistischen LösungsansĂ€tzen weiterhin den Begriff Fehlerfunktion $J$. Der wahre Fehler von $J$ wird dort hĂ€ufig als Risiko, der empirische Fehler von $J$ als empirisches Risiko bezeichnet.)
Ein einfaches statistisches Verfahren ist der histogrammbasierte Naive-Bayes-Klassifikator, welcher verschiedene Klassen unterscheiden kann. Dabei wird fĂŒr jede Klasse deren HĂ€ufigkeit ermittelt und fĂŒr jede Klasse und jede Eingangsgrösse ein eigenes Histogramm aus den Daten erstellt (es wird beim histogrammbasierten Naive-Bayes-Klassifikator angenommen, dass sich die Datenverteilungen als Histogramme darstellen lassen).
Ein Beispiel ist in Abb.2 illustriert. Dabei werden mit zwei Eingangsgrössen $x_1$ und $x_2$ die beiden Klassen $A$ und $B$ unterschieden. Das Histogramm in der Abbildung oben zeigt die Eingangsgrösse $x_1$ fĂŒr die Datenpunkte, welche zur Klasse $A$ gehören. Ebenso (aber hier nicht abgebildet) werden drei weitere Histogramme berechnet, eines fĂŒr die Eingangsgrösse $x_2$ der Klasse $A$ sowie zwei weitere fĂŒr die Eingangsgrössen $x_1$ und $x_2$ der Datenpunkte der Klasse $B$ erstellt. Die Abbildung unten zeigt, wie der Datenraum durch die Histogramme in âZellenâ unterteilt wird. FĂŒr jede Zelle werden basierend auf den Histogrammen die Auftretenswahrscheinlichkeiten der Klassen $A$ und $B$ berechnet. Daraufhin wird jede Zelle derjenigen Klasse zugeordnet, welche den höheren Wahrscheinlichkeitswert aufweist.
Die HĂ€ufigkeit der Klassen und die Höhen der einzelnen Histogramm-Balken stellen im histogrammbasierten Naive-Bayes-Klassifikator die Gewichte $w$ dar. Durch âZĂ€hlenâ der Daten wird so direkt die Gewicht-Einstellung $w^*$ geschĂ€tzt, fĂŒr welche $e_{min}=J(w^*)$ gilt. FĂŒr das ZĂ€hlen genĂŒgt es, alle Trainingsdaten einmal anzusehen, d. h., es genĂŒgt eine Epoche fĂŒr das Training.
â Auftrag histogrammbasierter Naive-Bayes-Klassifikator
đ Hier erfĂ€hrst du, wie ein statistisches Verfahren arbeitet.
đĄ Um den histogrammbasierten Naive-Bayes-Klassifikator mit dem neuronalen Netz aus Kapitel 3.1 vergleichen zu können, werden hierfĂŒr dieselben Daten wie in 3.1. versendet. D. h. zwei Eingangsgrössen (die x- und die y-Koordinaten der Kreise und Kreuze) und als Ausgang $y$ die Wahrscheinlichkeit, dass ein Datenpunkt $x$ zur Klasse der Kreuze gehört. Somit werden auch hier alle Ausgangswerte $y>0.5$ als Kreuze erkannt (und blau eingefĂ€rbt) und alle Ausgangswerte $y<0.5$ als Kreise erkannt (und grĂŒn eingefĂ€rbt).
đĄ Speziell ist, dass alle Ausgangswerte mit $y = 0.5$ weiss eingefĂ€rbt werden. Hier kann sich der Klassifikator fĂŒr keine der beiden Klassen entscheiden. Die Anzahl der betroffenen Kreise oder Kreuze wird im Programm mit zwei ?? gekennzeichnet und nicht fĂŒr die Berechnung der Klassifikationsrate oder der Anzahl falsch klassifizierter Datenpunkte berĂŒcksichtigt.
đĄ Aus GrĂŒnden der Vergleichbarkeit werden als Fehlerfunktionen das Bayes-Risiko und der MSE angegeben.
- Starte den Naive-Bayes-Klassifikator ein paar Mal. Es wird immer dasselbe Resultat ausgegeben und das Training dauert immer nur 1 Epoche.
- VerĂ€ndere den einzigen Trainingsparameter im Programmcode und suche das Resultat, bei dem die Trainings- und Validationsergebnisse möglichst gleich und möglichst gut sind. Wie vergleicht sich der Naive-Bayes-Klassifikator fĂŒr dieses Problem mit dem neuronalen Netz aus 3.1? Halte deine besten Resultate im Textfeld fest.
- Die
ANZAHL_INTERVALLEbestimmt die Feinheit der Histogramme, mit welchen die Daten statistisch ausgewertet werden. Je höher dieser Wert, desto mehr Gewichte. Bei zu wenigen Gewichten kann nicht genĂŒgend gelernt werden, bei zu vielen Gewichten tritt âOverfittingâ auf, d. h., die Trainingsdaten werden auswendig gelernt (= gute Trainingsresultate, aber schlechte Validationsresultate).
Loading â
4.3 Stochastische LösungsansÀtze
Bei den stochastischen LösungsansĂ€tzen werden die Werte aller Gewichte $w$ zufĂ€llig gewĂŒrfelt (Zufallszahlen) und anschliessend der Fehler mit den verfĂŒgbaren Daten berechnet. Dies wird viele Male wiederholt und am Ende die Gewichte-Einstellung mit dem kleinsten erzielten Fehler verwendet. Somit wird die Gewichte-Einstellung $w^*$ fĂŒr welche $e_{min}=J(w^*)$ gilt, durch Zufall angenĂ€hert.
Mit dieser Vorgehensweise können, im Gegensatz zu den in den Kapiteln 3.1 und 3.2 vorgestellten LösungsansĂ€tzen, im Prinzip alle Varianten von Stellvertreter-Funktionen $f_{ML}(x)$ und Fehlerfunktionen $J$ verwendet werden. Voraussetzung ist lediglich, dass zufĂ€llige Gewichtseinstellungen erzeugt und die zugehörigen Fehlerwerte mit den verfĂŒgbaren Daten berechnet werden können.
Bekannte stochastische Verfahren sind
- Monte-Carlo: Hier werden alle Gewichte rein zufĂ€llig gewĂŒrfelt.
- Simulated Annealing: Hier wird eine vereinfachte Variante beschrieben: In einer ersten Runde werden alle Gewichte mehrfach, ohne EinschrĂ€nkung zufĂ€llig gewĂŒrfelt. In mehreren weiteren Runden wird jeweils die beste Gewicht-Einstellung aus der vorangehenden Runde als Grundeinstellung genommen. Im Vergleich zur vorangehenden Runde wird jedoch nur noch ein kleinerer Teil der Gewichte neu gewĂŒrfelt, die anderen werden unverĂ€ndert belassen.
- Genetische Algorithmen: Das funktioniert Àhnlich wie Simulated Annealing mit dem Unterschied, dass nach jeder Runde nicht nur mit der besten Gewicht-Einstellung weitergefahren wird, sondern mit mehreren. ZusÀtzlich werden immer wieder zwei solcher guten Einstellungen zufÀllig miteinander kombiniert.
â Auftrag Monte-Carlo
đ Hier erfĂ€hrst du, wie ein stochastisches Verfahren arbeitet.
đĄ Um alle Resultate mit dem neuronalen Netz aus 3.1 und dem histogrammbasierten Naive-Bayes-Klassifikator aus 3.2 vergleichen zu können, werden hier wiederum dieselben Daten verwendet. Im ersten Programm wird das Monte-Carlo-Verfahren dazu verwendet, die Gewichte im neuronalen Netz aus 3.1 zu wĂŒrfeln. Im zweiten Programm werden damit die Gewichte des histogrammbasierten Naive-Bayes-Klassifikators aus 3.2 gewĂŒrfelt. In beiden Experimenten kann gewĂ€hlt werden, ob die Gewicht-Einstellung mit dem kleinsten MSE oder die Gewicht-Einstellung mit der höchsten Klassifikationsrate gesucht werden soll.
- Teste das âMonte-Carlo neuronale Netzâ und den âMonte-Carlo Naive-Bayes-Klassifikatorâ und beachte dabei Folgendes.
- Neuronales Netz und Naive Bayes: Bei der
OBJEKTIVEmsewird jeweils die Gewicht-Einstellung mit dem tiefsten MSE genommen, beikorrektdasjenige mit der höchsten Klassifikationsrate. - Neuronales Netz: Mit
MIN_WEIGHTundMAX_WEIGHTkann eingestellt werden, im welchem Zahlenbereich die Gewichte $w$ gewĂŒrfelt werden sollen (die Default-Einstellung sollte einigermassen ok sein).
- Probiere verschiedene Parametereinstellungen aus (beim neuronalen Netz kannst du vermutlich auch 10-Mal so viele Epochen verwenden, beim Naive Bayes gut 100-Mal so viele).
- Wie vergleichen sich die vier Varianten: neuronales Netz aus 3.1, Naive Bayes aus 3.2, neuronales Netz und Naive Bayes aus 3.3? Halte deine Beobachtungen im Textfeld fest.
- Lies danach am Ende dieses Auftrags unsere Meinung dazu, wie sich die vier Varianten miteinander vergleichen lassen.
Loading â
Monte-Carlo neuronales Netz
Monte-Carlo Naive Bayes
đ€© Freiwillig fĂŒr Schnelle oder Interessierte
- đżïž Knacknuss: Vielleicht war dir aufgefallen, dass im Monte-Carlo Naive Bayes Programm das Bayes-Risiko gar nicht berechnet wird. Kannst du dir erklĂ€ren, warum das Bayes-Risiko keine Aussagekraft fĂŒr dieses Programm hat? ErklĂ€rung (hier klicken)
5. Fortsetzung folgt...
Jetzt hast du schon einiges ĂŒber die Funktionsweise, Umsetzungsvarianten, Möglichkeiten und Grenzen maschinellen Lernens gelernt. Im đ€ Teil 3 erfĂ€hrst du detaillierter, wie mit einem iterativen Verfahren schrittweise Gewichte so angepasst werden können, dass der Fehler im Mittel ĂŒber mehrere Schritte hinweg abnimmt.
Eigene Notizen
Loading â