Lieber Zuschauer, dieser Untertitel wurde automatisch generiert von YouTube und dementsprechend (sehr) fehlerhaft. Wenn du kannst, hilf uns bitte gute Untertitel zu erstellen: https://c3subtitles.de/talk/2472 Danke!
[Musik]
gut dann fange ich ohne Folien an geht
auch genau also ich habe mir noch mal
vorgenommen darüber zu reden wie lernen
Maschinen
eigentlich wir haben gerade durch Chat
GPT sehr viel mit dem Thema zu tun und
ich dachte das ist noch mal ideale
Gelegenheit einen Schritt zurückzugehen
und noch mal zu gucken was passiert
eigentlich im
Hintergrund wie ihr gerade schon
erfahren habt mag ich gerne Mathe und
ich habe mich auch lange und geb ich
damit beschäftigt ich arbeite zurzeit
bei S Laabs und
davor habe ich 10 Jahre Mathe in
unterschiedlichen Bereichen gemacht und
habe mich auch unter anderem mit dem
Thema ähm machinelles lernen bzw
deeplearning beschäftigt und ähm habe
dadurch einfach ein Wissen angehäuft was
ich gerne teilen will so dass äh dieses
Wissen sich verbreitet und mehr Leute
sich diese ganzen Anwendung auch einfach
noch mal kritisch angucken können und
eigentlich verstehen was ist das
eigentlich und was hat das eigentlich
mit diesem ganzen lernen zu tun
ähm genau ich denke durch den aktuellen
Hyp dem wir gerade sehen durch die
unterschiedlichen KV Anwendungen
tendieren wir dazu KI zu überschätzen
und ähm das führt zum einen dann dazu
dass KI ein basswort ist was überall
auftaucht ja wir können noch nicht mal
mehr eine normale Kaffeemaschine kaufen
ohne dass da KI drin steckt äh was
totaler Quatsch ist weil im Endeffekt
ähm hier so eine da ist eine
Kaffeemaschine abgebildet die man
tatsächlich kaufen kann und die KI die
da drin steckt ist halt einfach
angewandte Statistik und das ist im
Prinzip auch das Geheimnis hinter der KI
also es ist wirklich einfach erstmal
eineur Statistik das zweite Problem ist
die Anwender haben ein Interesse daran
die Hersteller haben ein Interesse daran
dieses Thema als etwas sehr komplexes
darzustellen so dass es natürlich
schwierig ist das Ganze nachzubauen und
so weiter und so fort und ich meine auch
heute haben wir wieder die Situation ich
habe mich sehr lange mit dem Thema
beschäftigt und in Mathe promoviert aber
man braucht keinen Doktor in Mathe um
dieses Thema zu verstehen das soll ganz
klargestellt werden an dieser
Stelle ein weiteres Problem ist wir
sehen tatsächlich die beeindruckenden
Beispiele auf Twitter oder Social Media
und dann denken wir boah jetzt kann die
Maschine auf einmal alles und wir sind
irgendwie alle überflüssig und das ist
definitiv nicht der Fall und ich hoffe
ihr stimmt mir am Ende meines talks dann
auch zu
und jetzt gerade durch diese aktuellen
Anwendungen im Themenbereich Sprache
haben wir uns glaube ich auch so ein
Stück weit selber gehackt ja weil
jetzt haben wir eine Maschine die kann
sprechen und jetzt denken wir hey das
kann sprechen das muss intelligent sein
wenn ich das jetzt z.B mit meinem Hund
Vergleiche der kann nicht sprechen und
dem spreche ich aber eine gewisse
Intelligenz erstmal ab und dann habe ich
eine Maschine die macht irgendwas
generiert irgendwie Sprache die
irgendwie gut aussieht und natürlich
muss dadurch dann natürlich eine hohe
Intelligenz da sein dass es überhaupt
sprechen kann genau und damit würde ich
jetzt erst noch mal den Schritt
zurückgehen was ist denn eigentlich KI
ja es gibt da drei
Themenbereiche der große überspannende
Bereich ist künstliche Intelligenz und
das ist definiert und das ist auch schon
relativ lange so dass es Computer sind
die imitieren denken und menschliches
Denken und Verhalten so das erstmal
unabhängig davon was dann da drunter
steht und dann haben wir einen
Themenbereich der nennt sich machinelles
lernen und das sind statistische
Algorithmen die dieses diese künstliche
Intelligenz irgendwie darstellen und
die basieren tatsächlich erstmal sehr
viel auf Statistik und davon haben wir
dann eine Unterkategorie und das ist das
sogenannte deep learning und das deep
learning ist ein Teilbereich des
maschinellen Lernens ja das ist das
Lernen mit tiefen mit vielen Layern
sogenannten Layern
undter im Umgang dann halt auch
entsprechend neuronalen Netzen und ich
probiere in meinem Talk also ich werde
jetzt auf den Bereich machine learning
eingehen und auch ein bisschen auf den
Bereich deep learning und probiere so
ein bisschen auch die den Unterschied
zwischen diesen beiden Feldern
aufzuzeigen genau also jetzt gerade
haben wir zwei unterschiedliche große
Bereiche der KI wir haben einmal eine
spezialisierte KI die kann im Prinzip
einfach zwei Probleme lösen und das eine
ist eine klass ikation hier dargestellt
durch einen Hund der von dem Muffin
unterschieden werden soll was
tatsächlich relativ schlecht
funktioniert weil das Ding genau drei
schöne schwarze Punkte hat und dadurch
ist es tatsächlich schwierig für uns
tatsächlich sehr sehr einfach aber genau
das das nebenbei und das zweite
Themenbereich oder das zweite Problem
was spezialisierte K lösen kann ist
Regression das heißt die Vorhersage
in einen Bereich wofür es noch keine
Daten gibt lernt aus historischen Daten
und macht dann eine Vorhersage in einen
Bereich wo wo es keine Daten
gibt das ist der Teilbereich
spezialisierte KI und dann gibt es jetzt
das neue die generative KI die
generative KI ist tatsächlich eigentlich
löst es genau die gleichen Probleme weil
jetzt gerade die generativeki im Bereich
Sprache guckt sich irgendwie an was ist
das nächste beste Wort was ich vorher
sagen kann das ist eine Regression im
Endeffekt und es hat aber auch ein einen
klassifikationscharakter ind dem es halt
guckt inwieweit sind denn die Worte
miteinander ähnlich so im Gegensatz zu
spezialisierten KI hat die generative KI
aber viel mehr Möglichkeiten gute
Antworten zu geben Sprache kann in
vielen unterschiedlichen Bereichen
überzeugend sein und kann auch ganz
unterschiedlich formuliert sein so dass
der Anwender denkt hey das ist gut
während ich im Bereich spezialisierte K
ganz klar sag kann das ist ein Muffin
und das ist ein
Hund und ich glaube dass dieser
Unterschied auch schon mal dazu beiträgt
dieses ganze Themenfeld zu
überschätzen im unters also dann gibt es
wenn wir jetzt ich würde jetzt ich gucke
jetzt in den Bereich spezialisierte KI
und in diesem Bereich gibt es drei
unterschiedliche Anwendung oder drei
unterschiedliche Arten ja das eine ist
das supervised learning beim supervised
learning sind die Label von meinem also
ich brauche ja immer ganz viele Daten um
das um das zu lernen die Label von mein
Daten sind bekannt das heißt ich weiß
das Bild ist ein Hund das Bild ist ein
Muffin und dazu steht im Gegensatz das
unsupvised learning dafür habe ich
tatsächlich sind die Labels unbekannt
also ich kenne die einfach nicht hier
dargestellt mit pizzaaber und Burger und
in diesem Fall probieren Algorithmen
Gemeinsamkeiten herauszufen herauszu aus
den Daten und die dann zusammen in eine
Klasse zu packen und der dritte
Anwendungsbereich ja gut um jetzt für
das für das anzubweis lening noch ein
Beispiel zu nennen ein recommender
System ist z.B ein ein anzubweised
Learning ja also der Amazon Algorithmus
der euch immer vorschlägt kauft doch
noch mal das der probiert genau eben das
zu tun der probiert zu gucken Leute die
das gekauft haben haben auch das gekauft
aber die wissen das am Ende nicht also
probieren Sie es erstmal einfach einfach
nur vorzuschlagen und in einigen Fällen
klappt das ja auch genau der dritte
Teilbereich im Maschinen lernen ist das
sogenannte reinforcement learning beim
reinforcement learning das ist ein
bisschen anders weil man hat einen
Agenten der in einem Umgebung agiert und
er probiert ein Verhalten zu lernen im
Endeffekt ist es halt
aber trotzdem ähnlich zum superwiised
learning weil ich weiß ja ungefähr wie
dieses Verhalten sein soll als Beispiel
Alpha Alpha Go ist ein Algorithmus der
von Google entwickelt wurde um go zu
spielen und ich weiß ganz klar wenn ich
ein Spiel gewinne dann war das eine gute
Strategie die ich gelernt habe oder die
ich angewandt habe wenn ich ein Spiel
verliere dann war es eine schlechte
Strategie der Unterschied hier ist ich
kann halt die Umgebung in der dieser
Agent unterwegs ist
abbilden und dadurch habe ich eine
Möglichkeit mit die Daten um dieses
Problem zu lernen selber zu erzeugen
also das ist in den häufigsten Fällen
der Fall dass ich eben diese Umgebung
tatsächlich in irgendeineer Art und
Weise zu verfügung
habe und alles zusammengenommen ist es
halt immer das Ziel eine mathematische
Funktion zu lernen ja von einem Input
den dies Modell bekommt hin zu einem
Output genau und das ganze wird halt
erreicht durch modelloptimierung also
ich habe ein Modell das ist halt im
Endeffekt die KI die füttere ich mit
Daten und dieses Modell
m lernt
dann Parameter was wir im weiteren
Verlauf auch noch mal sehen würden wie
das genau funktioniert und das tut es
halt indem es halt eine ein sogenanntes
Training durchläuft also wen diese drei
Bereiche wir brauchen einmal Daten um zu
trainieren davon brauchen wir sehr viele
und um das entsprechend gut zu L müssen
diese Daten halt auch gut gelabelt sein
dann im nächsten Schritt machen wir ein
Training dafür haben wir
unterschiedliche Dinge die wir brauchen
wir müssen uns ein Modell raussuchen
vielleicht müssen wir Modell auch noch
eine Architektur festlegen dann brauchen
wir eine lossfunktion das ist
problemabhängig und dann brauchen wir
auch noch ein Optimierungsalgorithmus
das sind aber alles Sachen die ich in
ein gewissen Art und Weise wählen kann
also das ist nicht mathematisch
festgeschrieben wie mein Modell aussehen
muss damit ich die besten Ergebnisse
erzeugen kann also von der thematischen
Perspektive her ziemlich unbefriedigend
weil ich das nicht beweisen kann was ist
tatsächlich gut was ist schlecht aber
halt auf der anderen Seite sehr viel
gibt es sehr viel Raum um das halt
entsprechend auszuprobieren
m dann mache ich mathematische
Optimierung ja das ist auch einen
Algorithmus wo ich der zwar festgelegt
ist und in der mathematisch gut
erforscht ist aber um tatsächlich gute
Ergebnisse wieder zu produzieren habe
ich da auch wieder Freiheitsgrade die
ich wählen kann und wo ich irgendwie
gucken kann und mit rumspielen
kann so und im letzten Schritt möchte
ich halt nicht nur ein Modell haben was
gut funktioniert sondern ich möchte
einen Modell haben was gut auf noch
nicht gesehenen Daten funktioniert und
wenn ich jetzt einen großen
trainingsdatz habe trainingsdatensetz
habe und mein Modell funktioniert darauf
kann es ja auch sein dass es halt
entsprechend Daten gibtuf mein Modell
überhaupt nicht mehr funktioniert und
das ist genau das worum ich mich kümmern
muss also ich muss gucken wie gut
generalisiert mein Modell und das tue
ich einfach durch einen Trick näich
nicht alle Daten die ich zur Verfügung
habe
die zum Training zu benutzen sondern ich
lasse einfach ein Teil raus und auf
denen teste ich dafür muss ich aber auch
sicher sein dass in meinen Testdaten
genau das gleiche drin ist wie in meinen
Trainingsdaten also wenn ich dir einfach
nur zufällig wähle kann es halt total in
die Hose gehen weil meine Testdaten gar
nicht mein Trainingsdatensatz abbilden s
alles Sachen die man irgendwie im
Hinterkopf haben muss genau und ich
würde jetzt einmal da noch tiefer
reingehen und und das alles noch genauer
erklären
ähm wie sieht und zwar würde ich das am
Beispiel supervised learning machen wie
sieht das ganze dann am Ende aus also
wie sieht das Training aus ich muss
erstmal anfangen ich habe hier oben
inputden die haben ein
Label das ist für das supervis learning
entsprechend wichtig und erstmal muss
ich anfangen meine Daten überhaupt zu
cleanen also alles von dem ich weiß dass
es irgendwie Quatsch das muss da erstmal
raus dann muss ich eigentlich auch im
Prinzip sicher sein dass meine Labels
entsprechend auch richtig gut sind aber
das ist tatsächlich schwierig also das
kann sehr schwierig sein und dafür
braucht man meistens auch einfach noch
mal menschliche Expertise um das
nachzubauen D im nächsten Schritt muss
ich diese Daten
vorverarbeiten gucken wir uns später
genau an was es bedeutet dann willle ich
ein Modell na fütter meine Daten die ich
vorverarbeitet habe da rein Kriege eine
Vorhersage von was auch
immer und dann gucke ich mir an wie gut
ist denn mein Modell in diesem Fall also
wie gut bildet es die bekannten Labels
die ich weiß halt entsprechend ab das
Ganze kann ich dann irgendwie in einen
sogenannten loss packen und sagen hey
hier hast du alles falsch gemacht pass
mal deine Gewichte an und das ist genau
das was in der Optimierung
passiert also ich rechne einen Score aus
geh dann in die Optimierung gucke mir
das
an und Date dann die Gewichte von meinem
Modell entsprechend ab und nachdem ich
das gemacht habe fange ich wieder von
vorne an das die dat preparation fällt
dann halt entsprechend raus also ich
schiebe einfach meine Daten wieder rein
und
genau habe eine neue prediction berechn
einen neuen loss und mach das ganze
entsprechend oft bis ich gut bin was
auch immer das heißt genau wie ich schon
gesagt habe wir brauchen erstmal ganz
viele Daten und diese Daten müssen
entsprechend gelabelt sein und wenn wir
das jetzt vergleichen mit klassischer
Software Entwicklung dann haben wir da
einen shift wir haben normalerweise in
der klassischen Entwicklung von
Algorithmen probieren wir wir wir haben
einen Input und wir wissen die Regeln
und das ganze probieren wir irgendwie in
einen Algorithmus zu geben und
produzieren damit einen Output und beim
machinellen Lernen dreht sich das ein
bisschen um und zwar haben wir den Input
und den Output ja für das supervis
learning und wir probieren die Regeln zu
lernen und das bedeutet im Endeffekt die
Regeln die wir lernen steckt steckt in
den Daten drin und deswegen muss ich
halt auch so viel
auf die Daten aufpassen und gucken was
da drin steht weil genau diese Regeln
halt entsprechend gelernt werden
ähm und ich dadurch auch eine eine große
Abhängigkeit von den Daten entsprechend
habe das zweite ist ich habe auch eine
Intransparenz weil ich nicht mehr so
genau weiß was für Regeln denn mein
Modell gelernt hat und das kann
entsprechend dann dazu führen dass es
nicht mehr nicht mehr kontrollierbar ist
welche Regeln der da da überhaupt
angewendet werden also in dem
Algorithmus selber passieren Dinge die
für Menschen nicht mehr verständlich
sind genau als nächsten Schritt habe ich
gesagt müssen wir die Daten
vorverarbeiten das ist vor allen Dingen
ein Teil der wichtig ist für das
maschinelle lernen also nicht für das
deep learning äh das ist da der
entsprechend große Unterschied ich muss
die Daten vorverarbeiten cleaning ich
muss Feature Engineering machen Feature
Engineering bedeutet im Endeffekt mit
menschlicher Expertise aus den Daten
herauskitzeln gewisse charakteristiker
herauskitzind die für meinen einen
usecase tatsächlich entscheidend sind
und entsprechend die den Unterschied
zwischen dem einen und dem anderen genau
hinbekommen
ähm das kann z.B sowas einfach sein
mathematische Transformation
das kann auch das Zusammenfassen von
unterschiedlichen Variablen sein das
kann auch eine Reduktion sein weil z.B
gewisse Daten miteinander zusammenhängen
und dadurch stark korrelieren und ich
dadurch gar nicht alle Daten brauche und
dadurch wird es für den Algorithmus ein
Stück weit einfacher entsprechend zu
lernen ähm genau dann haben wir noch den
Punkt kategorische Daten kategorische
Daten sind
z.B Geschlechts
geschlechtseinteilung also ich habe
männlich weiblich diverse und das ganze
muss ich irgendwie so abbilden dass mein
Algorithmus damit umgehen kann also ich
muss das irgendwie in Zahlen
repräsentieren so jetzt kann ich einfach
sagen ich mache 01 2 3 ist erstmal guter
eine gute erste Idee da muss ich aber
aufpassen wenn ich jetzt Differenzen
Bilde zwischen 0 1 2 3 dann ist die
Differenz zwischen 0 und 1 andere als
zwischen 0 und 2 und ob das dann die
Realität
wiederspiegelt ist in dem Fall fraglich
und genau solche Dinge muss ich
entsprechend berücksichtigen wenn ich
meine Daten irgendwie zusammenfasse
ähm genau als nächstes muss ich dann ein
Modell wählen ja das sind jetzt
tatsächlich die Modelle aus dem machine
learning da gibt es unfassbar viele und
wie gesagt das sind statistische Modelle
m und ein Modell ist erstmal ein einfach
ein parametrische Repräsentation einer
mathematischen Funktion und ich lerne
genau die Parameter um meine Funktion
anzupassen auf meine Daten so m der Wahl
von dem Modell ist aber immer auch einer
hat immer implizite
Annahmen ich habe hier das Beispiel
linearer Regression mitgebracht
relativ einfach einfach eine Summe über
gesichtete Daten also diese a die da
stehen vielleicht zu erkennen sind sind
halt die Gewichte die ich entsprechend
optimieren würde und ich nehme meinen
Input und multipliziere den einfach und
summiere das ganze auf aber die Annahme
die da drin steckt ist dass der
Zusammenhang den ich lernen will halt
auch tatsächlich linear ist also ich
kann damit nicht irgendwas lernen was am
Ende nicht linear ist und das ist halt
der Punkt wenn ich also ich muss immer
gucken wenn ich ein Modell wähle bildet
den denn das tatsächlich den
Zusammenhang der ich denke der vorhanden
ist auch irgendwie in ein Gewissen
Funktion ab und nur weil ich etwas
komplexer mache heißt es nicht dass dann
mein Modell tatsächlich besser ist kann
ja auch was anderes werden also wenn
mein Zusammenhang linear ist warum
sollte ich dann was anderes nehmen als
eine lineare
Regression also an da an der Stelle ist
tatsächlich bisschen Vorsicht geboten
und man muss einfach gucken was habe ich
denn für Ideen die da drin sind und dann
vielleicht auch einfach unterschiedliche
Modelle ausprobieren und zu gucken
welche ist denn tatsächlich besser und
wenn es tatsächlich sehr sehr einfache
Modelle sind kann ich auch daraus
Rückschlüsse ziehen welche Daten welche
Inputs denn wirklich wichtig sind für
meinen
Algorithmus und dann kommen wir denn zu
dem Unterschied zum deep learning deep
learning heißt weil es halt viele
mathematische Operationen sogenannte
Layer hintereinander geschaltet sind
und genau der der Aufbau davon ist halt
nennt sich dann
Architektur die Architektur von meinem
neuronalen Netz den ich habe der ist
erstmal frei wählbar also wie ich die
Sachen wie viele layer ich dann nehme
wie ich die zusammenstecke und so weiter
und so fort das kann ich frei
entscheiden das kann ich irgendwie
machen und am Ende zählt nur dass das
richtige bei rauskommt also das heißt
wenn ich jetzt anfange irgendein
neuronales Netz zu trainieren muss ich
halt auch am Ende gucken hey wie würde
dann vielleicht ein neuronales Netz
anders auf diesen Daten tatsächlich
funktionieren ist es vielleicht besser
oder nicht ist erstmal eine Frage die
ich so nicht beantworten kann diese
Layer sind dafür da um die Daten zu
transformieren und das ist halt genau
der Punkt was das Feature Engineering
macht
vorher im maschinellen lernen Feature
Engineering war das was Menschen tun
hier ist es beim deep learning ist es
tatsächlich so das macht das neuronale
Netz ein bisschen
selber was da genau passiert weiß ich
nicht
mm aber ich habe hier ein Beispiel
mitgebracht das ist ein eine Bild ein
ein Bild was klassifiziert werden soll
und wenn man dann den die sich die
danach kann ich qu angucken wie die
transformierten Daten quasi in nach der
ersten Transformation aussehen und da
könnten z.B so Informationen drin sein
wie kantendetektoren oder
ähm ja grauwertunterschiede oder
irgendwie sowas das kann da noch drin
sein aber je tiefer das neuronale Netz
ist desto weniger ist es eigentlich
verständlich was dann im Endeffekt da
passiert und es ist zu erstmal sehr sehr
schön ja dass ich das Feature
Engineering nicht mehr brauche weil ich
irgendwie weniger weniger machen muss um
tatsächlich was zu produzieren aber wie
gesagt ich verliere in dem Fall
tatsächlich die Transparenz
ähm genau ähm und hier habe ich das
Ganze noch mal äh dargestellt ja man
sieht immer diese tollen Grafen wo
irgendwelche pile irgendwo hingehen das
was ich dahinter versteckt ist
tatsächlich eigentlich nur
Multiplikation und addition erst mal ja
ist ich multipliziere meine Inputdaten
mit entsprechenden Gewichten die habe
ich hier grau dargestellt deswegen sind
sie nicht zu sehen hier ist ein Gewicht
hier ist ein Gewicht und hier ist ein
Gewicht dann adere ich noch mal ein
bisschen was drauf und das was daraus
passiert das schmeiße ich in eine
lineare nichtlineare Funktion so und das
mache ich einfach ganz oft das ist im
Prinzip alles was dahinter steht also
wenn man multiplizieren und addieren
kann ist man im Prinzip schon fast
besser als neuronales Netz
äh na ja der Punkt hier war einfach noch
mal zu sagen okay wir haben diese
unglaublichen abgefahrenen flussgrafen
die da irgendwie abgebildet werden
dahinter verbirgt sich tatsächlich
eigentlich relativ einfache
Mathematik und dann kommen wir endlich
endlich zum Lernen ja was ist denn
Lernen lernen ist genau diese
Optimierung diese Gewichte die ich
vorher genommen habe mit dem ich meinen
Input multipliziert habe das sind die
Sachen die ich immer entsprechend
anpassen kann und das mache ich halt
durch eine stochastische Optimierung
ich lege erstmal ein Modell fest und
eine Architektur dann initialisiere ich
alle Gewichte erstmal durch ja mit
irgendetwas und zwar am besten nicht mit
Null weil wenn ich die alle mit null
initialisiere kommt am Ende auch null
raus und dementsprechend kann nichts
gelernt werden ist auch eine offene
Frage was ist tatsächlich eine gute
Initialisierung gibt es unterschiedliche
Ideen zu dann habe ich vorher festgelegt
eine lossfunktion und diese lfunktion
leite ich ab ja ich gucke in die in
Richtung
des Gradienten der Gradient sagt mir wie
verändert sich meine Funktion und ich
gehe dann in die Richtung des negativen
Gradienten und das ist im Prinzip wie
Skifahren wenn ihr oben auf dem Hügel
seid wollt ihr runter ins Tal und dann
geht ihr auch in Richtung des negativen
Gradienten und ihr fahrt nicht volle
Power runter weil dann würdet ihr viel
zu schnell werden sondern fährt so in
Zickzacklinien und das macht ihr um den
Gradienten auszugleichen weil der
nämlich in die Richtung des steilsten
Abstiegs zeigt und deswegen fahrt ihr
schön schlanglinien damit es ein
bisschen länger dauert und damit ihr
nicht so schnell werdet das macht man
hier auch im Endeffekt ähm einfach weil
wenn man in Richtung des wenn man
komplett in Richtung des Gradienten
gehen würde dann würde man vielleicht
auch einfach woanders rauskommen also
man würde das Minimum einfach
überspringen so gesehen ist es so ein
bisschen die Frage in wie weit muss ich
denn in Richtung des Gradienten gehen
und das ist die sogenannte Lernrate die
wähle ich als Parameter vorher und
ähm ist fraglich was ist eine gute
Lernrate also auch da habe ich im
Prinzip ähm ein Freiheitsgrad den ich
auswählen kann und gucken kann was was
passiert wenn ich eine größere Lernrate
nehme wenn ich eine kleinere lnhrate
habe und
ähm damit habe ich erstmal eine
Möglichkeit etwas zu finden es gibt
tatsächlich in der Mathematik natürlich
viel viel tollere Algorithmen äh um so
eine eine Optimierung vorzunehmen aber
die sind teuer weil ich dadurch
tatsächlich zweite Ableitung berechnen
muss das ist sehr sehr schwierig das
auszuwerten deswegen nehme ich an dieser
Stelle den den Gradienten ähm und das
Ganze ist stochastisch weil ich halt
einen Anteil von meinen Trainingsdaten
einfach nehme und meine Trainingsdaten
mir nicht den kompletten Raum aller
Möglichkeiten abbilden können und auch
da ist es so ich kann unterschiedliche
Zusammensetzung meiner Trainingsdaten
nehmen um halt diesen Gradienten
entsprechend
auszuwerten und das ist aber im Prinzip
die ganze Magie die dahinter steht ich
gehe einfach quasi ich stehe oben auf
einem Hügel und gehe langsam runter in
ein Tal und m das Problem ein ein großes
Problem von diesem maschinellen lernen
ist dass diese Hügellandschaften im
Endeffekt nicht ein Minimum haben
sondern unterschiedliche und es sehr
stark davon abhängt welche Parameter ich
wähle in welchem Minimum ich lande und
das weiß ich vorher nicht ich kann das
nicht vorher sagen okay ich muss das
machen oder das um dann tatsächlich da
zu landen und es kann auch sein dass ich
nicht im Gl globalen Minimum also in dem
Minimum allerminimal Lande sondern in
einem lokalen was vielleicht schlechter
ist als das globale aber mein
Algorithmus kommt dann nicht mehr raus
und so gesehen lerne ich dann etwas was
okay ist aber was nicht perfekt ist
genau hier habe ich das Ganze noch mal
dargestellt und zwar als was ich vorhin
gesagt habe ich muss ja gucken dass ich
irgendwie gut generalisiere das heißt
ich gucke mir hier einmal auf der linken
Seite den an von so einem Training und
das sind halt diese blauen Punkte da
sehen wir auf den Trainingsdaten das
sind die blauen Punkte und die
durchgezogene Linie ist das ganze auf
den
Testdaten und obwohl mein Algorithmus
eigentlich immer besser wird also ich
mache die unten sind die Iterationen
meines Optimierungsalgorithmus
aufgezeigt und obwohl mein mein mein
Modell quasi immer besser wird auf den
Trainingsdaten also immer besser wird
immer meine trinksdaten immer besser
vorheragen kann wird es halt schlechter
auf den Testdaten das heißt ich würde
hier ungefähr da wo dieser Knick von von
den Testdaten ist würde ich aufhören und
sagen okay hier ist eigentlich das das
beste Modell in diesem Fall erreicht
und da würde ich das Training dann
entsprechend abbrechen und dieses Modell
nehmen und das ganze habe ich noch mal
dann rechts aufgezeigt auf der
Genauigkeit das ist halt ein ander
Parameter den ich messen kann und da
sehe ich genau eben diesen Effekt obwohl
im Training die Genauigkeit immer besser
wird auf den Daten wird sie halt auf den
Testdaten immer schlechter und das ist
dann halt ein Indikator dafür dass dass
das Training nicht so gut läuft wie ich
mir das eigentlich vorgestellt
habe genau ich kann unterschiedliche
Trainingsmethoden miteinander
kombinieren das ist ungefähr das was
tatsächlich
passiert in den in den large language
Models also ich kann erstmal irgendwie
was lernen auf der auf der linken Seite
sieht man ein riesengroß Monster was
erstmal probiert irgendwelche
Zusammenhänge zu lernen zwischen
irgendwelchen Datenpunkten die irgendwie
vielleicht was miteinander zu tun haben
das ganze mache ich vielleicht auf einem
irgendeinem Datensatz der jetzt auch
nicht super gut kuratiert ist sondern
erstmal nur nur dafür da ist um erstmal
so eine vorinitialisierung eine gute
vorinitialisierung von meinem Modell zu
bekommen und im nächsten Schritt gehe
ich dann dahin und sage okay jetzt habe
ich t ein Datensatz der ist gut katiert
da sind gute alles das das ist das
richtige drin und darauf fineune ich
dann mein vorinitialisiertes
geklastertes
Modell und dann kann ich halt im letzten
Schritt und das ist z.B das was man bei
chatgpt macht da mache ich dann
reinforcement learning in in the loop
das heißt ich habe einen Menschen der
interagiert mit diesem Computersystem ja
der das
Computersystem macht unterschiedliche
Vorschläge guck mal also der Mensch gibt
eine Frage ein dann generiert der
Computer unterschiedliche Antworten
und dann sagt der Mensch das ist eine
gute Antwort und das ist eine schlechte
Antwort und dadurch kann ich dieses
Modell noch mal mehr f tunen darauf dass
tatsächlich das passiert was der Mensch
erwartet
genau und dann der letzte Schritt das
ist ja das was ich vorhin angedeutet
habe ich will eine gute generalisier
haben von meinem Modell ja hier sehen
wir auf der diese Generalisierung kriege
ich immer nur hin indem ich halt einen
Testdatensatz habe auf dem ich
entsprechend gucke wie gut sagt jetzt
mein Modell auf diesem Datensatz etwas
vohher und im Endeffekt ist das so ein
bisschen so ein trade of dieses Training
zwischen underfitting also das heißt
mein Modell ist eigentlich zu schlecht
auf meinen Trainingsdaten auf mein
Testdaten ja und overfitting also mein
Modell ist eigentlich viel zu gut auf
mein Trainingsdaten so und irgendwie
zwischen diesen beiden Welten schwanke
ich immer hin und her und probiere an
der Stelle tatsächlich das beste zu
finden
und hier ist halt auch noch mal ganz
klar hervorzuheben also ein Modell wird
nie hundertprozentig perfekt sein das
ist eigentlich ausgeschlossen also wenn
man den Fall hat dann macht man
wahrscheinlich irgendwas
falsch der zweite Punkt ist die Wendung
entscheidet darüber welcher Fehler denn
tatsächlich akzeptabel ist oder nicht
also genau die Frage war was ist denn
hier das overfitting das overfitting ist
dass das Modell auf den Trainingsdaten
zu gut ist und im Endeffekt auf den
Testdaten schlecht wird im Prinzip haben
wir das auf diesem Plot den wir vorhin
gesehen haben wo ich die lfunktion her
dargestellt habe und die Genauigkeit da
haben wir im Endeffekt ein overfitting
auf den Trainingsdaten gesehen das
Modell ist immer besser geworden obwohl
es auf den Testdaten nicht mehr nicht
mehr gut
ist genau also ein Modell wird nie
hundertprozentig perfekt sein und und
alles richtig machen dann ist man
wahrscheinlich irgendwie auf dem auf dem
Holzweg und der Fehler in entsprechend
den nicht akzeptieren kann hängt halt
von der Anwendung
ab z.B wenn ich ein keine Ahnung fr
Detec machen will ja dann muss ich
irgendwie abweggen zwischen okay ich
blockiere jetzt alles was irgendwie
komisch aussieht und dadurch habe ich
dann wahrscheinlich auch sehr viele
Nutzer ähm die nicht ihre normalen
Transaktionen machen können warum auch
immer ähm dann habe ich halt Nutzer die
genervt sind die dann vielleicht zu
einem anderen äh System oder zu einem
anderen zu einem Konkurrenten gehen oder
ich habe halt äh tatsächlich sehr viel
zu viel fraud also ich verliere
irgendwie echtes Geld ähm
um und und dadurch habe ich als Firma
ein finanziellen Verlust und dazwischen
muss ich irgendwie gucken für die
Anwendung ist das ein Fehler den ich
akzeptieren kann oder nicht und da muss
man vielleicht als firmer sagen okay ein
bisschen finanziellen lost nehmen wir
halt irgendwie hin aber m dafür Nerven
wir unsere Nutzer nicht zu sehr und die
haben eine gute User Experience
ähm und was das Beste ist an der Stelle
ist einfach mathematisch nicht zu
beweisen also der Unterschied zwischen
der Performance auf dem
Trainingsdatensatz und auf dem
Testdatensatz eigentlich habe ich da gar
nicht wirkliche Idee was denn da
wirklich passiert also ich muss es
wirklich ausprobieren und ich habe keine
Möglichkeit
m zu sagen okay das ist tatsächlich das
das ist das mathematisch beste Modell
das das geht einfach
nicht genau und ich habe noch mal ein
Beispiel mitgebracht wo ich tatsächlich
auch noch mal die
ähm diese Abhängigkeit von den Daten
noch mal darstellen wollte also hier
haben wir zwei äh haben
zweidimensionale Daten die ich
entsprechend gelabelt habe hier oben
haben wir einen Datensatz in dem geben
wir die eine Klasse und hier unten haben
wir einen Datensatz den geben wir die
andere Klasse so und jetzt möchte ich
eine Funktion lernen die mir dieses hier
voneinander
unterscheidet die entsprechend also sie
haben die Datenpunkte haben zwei
Features ja sind zweidimensionale
Datenpunkte und ein
Label und ich nehme als ich nehme 80%
meiner Daten als Trainingsdaten 90%
meiner Daten als Trainingsdaten und 10%
als Test lege ich einfach erstmal fest
so und dann nehme ich als allererstes
mal 100 Datenpunkte und trainiere da
drauf und Kriege eine Genauigkeit von
90% was jetzt erstmal ganz gut ist aber
im Endeffekt wenn man sich jetzt noch
mal überlegt okay ich nehme 10% meiner
Daten als Testdaten dann mache ich mein
diesen Test tatsächlich auch nur auf z
Datenpunkten also die genau hier hängt
tatsächlich sind nur diese z Datenpunkte
davon sind neun richtig und einer falsch
und dann gehe ich halt noch mal hoch und
sag okay komm wir nehmen einfach mal
1000 Datenpunkte da haben wir dann eine
höhere
Genauigkeit von von
98% und ich habe dann tatsächlich noch
mal Z Datenpunkte genommen und die
Genauigkeit verbessert sich an der
Stelle dann nicht also eigentlich bin
ich wahrscheinlich schon mit 1000
Datenpunkten erstmal okay
aber genau ich weiß erstmal ich brauche
zwar viele Daten aber wie viel genau
weiß ich halt am Ende nicht und ich habe
dann noch mal hier die die Beispiele
also genau diese klassifikationslinie
dargestellt die die das Modell
entsprechend lernt und das was ich hier
tatsächlich besonders interessant finde
ist dass sich das Modell halt
entsprechend verändert je nachdem wie
viel Datenpunkte ich habe also ich kann
ich wie gesagt die Daten die ich lerne
hängen halt tatsächlich extrem stark mit
den oder die Regeln die ich lerne hängen
extrem stark davon ab welche Daten ich
habe und ich muss sehr viel Energie
darauf verwenden wirklich gute Daten zu
erzeugen
m genau also das war jetzt die
Darstellung wie lernen Maschinen
eigentlich wenn man jetzt anfangen will
dann kann man sich erstmal die Frage
stellen okay brauche ich überhaupt
Maschine das Lernen um mein Problem zu
lösen oder tut es nicht was einfacheres
und und da denke ich kann man ganz gut
als ersten als ersten Indikator ob ich
jetzt wirklich maschinelles Lernen
machen will oder nicht diese drei diese
drei Sachen sich anschauen das eine ist
wie viel Daten habe ich denn überhaupt
zur Verfügung und komme ich leicht an
Daten heran kann ich mir vielleicht
selber Daten erzeugen oder kann ich die
irgendwo relativ günstig herbekommen
vielleicht
kaufen genau und wenn ich eine große
Menge an Daten habe okay dann kann ich
den nächsten Schritt gehen und sagen hat
mein Problem überhaupt die entsprech
eine Komplexität oder tut es nicht was
was einfacheres also für die
Kaffeemaschine brauche ich kein
maschinelles Lernen das Statistik da
zähle ich einfach durch
und vielleicht ma ich noch n
uhrzeitstempel dran und sag ja morgens
trinkt mal ein Kaffee und nachmittags
immer ein Cappuccino
dann habe ich das Problem eigentlich
schon relativ schnell damit erschlagen
ähm und der letzte Punkt ist halt habe
ich eine evaluierbarkeit also kann ich
wirklich sagen dass mein Modell besser
ist oder nicht wenn ich das tatsächlich
gar nicht habe ist es halt schwierig zu
argumentieren dass mein Modell
tatsächlich besser ist als Beispiel
könnte man hier nehmen autonomes fahren
wie kann ich tatsächlich oder was ist
erstmal der der Grund warum will ich das
machen will ich das machen weil es
tatsächlich weil ich es einfach kann
okay dann ist die die evaluierbarkeit
relativ ge einfach und sag ja kann ich
machen oder möchte ich z.B vermeiden
dass Menschen im Straßenverkehr ums
Leben kommen und dann ist die Frage wie
evaluiere ich das baue ich dann zwei
Städte und im einen fahren dann autonome
Autos oder und in dem anderen nicht und
ich zähle am Ende das wird relativ
schwierig das halt zu argumentieren und
zu sagen okay wir haben unser Ziel
erreicht genau zusammenfassend kann man
einfach sagen maschinelles Lernen ist im
Prinzip ein wilder Mix aus aus
Mathematik und und
Programmierung ich hoffe ich konnte euch
zeigen es gibt sehr viele Parameter die
man einfach auswählen kann wo ich auch
nicht wirklich wo ich Intuition für
brauche wie ich dir den tatsächlich gut
wähle und im Endeffekt weiß ich nicht so
genau was die Wahl dieser Parameter dann
im Endeffekt tun also ich kann es nur
ausprobieren und gucken
tun sie das was ich was ich auch
wirklich erwarte oder nicht
und ja muss es im Endeffekt hunderte
Male irgendwie durchlaufen lassen bis
ich irgendwie sagen kann das ist gut das
ist schlecht die Regeln sind in den
Daten versteckt und es ist tatsächlich
ziemlich schwierig zu verstehen ob das
richtige gelernt wurde oder nicht und
das ist dann tatsächlich in der
Anwendung
ziemlich schwierig weil ich erstmal
evaluieren muss
m macht die Anwendung das was ich haben
will und gibt es vielleicht irgendwelche
Edge cases diese Edge cases kann ich
tatsächlich nur wahrscheinlich mit sehr
viel testing überhaupt herausfinden und
dann wenn ich dann einen Edge Case
gefunden habe den ich den ich nicht
haben will dann kann es tatsächlich
technisch ziemlich ziemlich schwierig
sein diesen Edge Case wieder loszuwerden
weil ich nicht einfach sagen kann okay
ich schmeiß diesen einen Datensatz jetzt
aus meinen Trainingsdaten raus und damit
ist das Problem behoben sondern
eigentlich fange ich wieder von vorne an
so das heißt in der Anwendung brauche
ich im Prinzip eine konstante
Überwachung macht der algorimus
eigentlich das was ich will gerade wenn
ich sowas habe wie ein System was
automatisch
lernt also ich es kommen irgendwie Daten
rein und ich Date das Ganze im
Hintergrund baue ich einfach ein neues
Modell weil ich diese ganze p
automatisiert habe dann kann es halt
passieren dass
dass ich einen dat shift habe und mein
Modell das überhaupt gar nicht mehr
abbildet ein bestes Beispiel ist dann
irgendwie die Pandemie schlägt ein alle
Leute kaufen Klopapier und natürlich hat
der Algoritmus das in den historischen
Daten noch nie gesehen dass wenn
irgendwas draußen passiert mit dem er
gar nichts zu tun hat plötzlich alle
Leute Klopapier kaufen und das sind halt
genau solche Sachen die dann an der
Stelle passieren können wo ich ein
spezielles Augenmerk drauf legen
muss ja und ich meine an der äh als
letztes also ich gehe davon aus dass das
maschinelle lernen und das deep learning
nicht mehr weggehen wird und ich glaube
deswegen ist es auf jeden Fall notwendig
dass wir uns alle mehr damit
auseinandersetzen und das ganze kritisch
hinterfragen und gucken wo sind die
Dinge vielleicht nicht so wie wir sie
haben wollen wo wollen wir überhaupt KI
haben
m und im Endeffekt dann auch
entsprechend sagen können nein an dieser
Stelle macht es keinen Sinn ähm eine KI
Anwendung zu haben weil sie nicht das
tut was wir haben wollen oder wir kann
niemanden mehr haben der tatsächlich
evaluieren kann ob die Entscheidung die
ein Algorithmus trifft auch wirklich
valide
ist und damit wenn ihr Lust habt euch
noch mehr damit zu beschäftigen ich habe
am Samstag gebe ich noch einen Workshop
zu dem Thema wo ich mir das Ganze noch
mal weiter aufdrösel und wir tatsächlich
also ich hoffe dass ihr das dann alle
Macht ähm entsprechend mit dem
neuronalnet ein bisschen rumspielt und
äh dann irgendwie mal selber ausprobiert
was denn passiert wann geht was kaputt
und so weiter und so fort
das wird am Samstag
bei jugendhakt um 14 Uhr stattfinden
genau ansonsten wenn ihr dazu keine Lust
habt oder was besseres vorhabt dann kann
würde ich euch empfehlen guckt euch mal
keggle an keggel ist tatsächlich eine
Form wo immer mal wieder Institutionen
Datensätze hochladen und sich eine
Community darum gebildet hat und man
auch einfach sehr gut gucken kann was
macht machen eigentlich wie gehen andere
Leute diese Probleme an die publizieren
dann da auch entsprechend Ihren Code und
man kann da einfach durch ein bisschen
durchgucken sich den einfach neben damit
rumspielen gucken was passiert am Ende
des Tages und so weiter und so fort als
letztes habe ich noch ein paar Bücher
die tatsächlich auch mehr den Fokus auf
diesen mathematischen haben als jetzt
auf dieser auf dieser Anwendung und
genau damit vielen Dank für die
Aufmerksamkeit
vielen Dank
Chat wir haben noch 5 Minuten für Fragen
wenn du Fragen beantworten möchtest ja
dann haben ich hier unten eigentlich an
Mikrofon im Publikum auch oder genau
also hat jemand Fragen fangen wir damit
an ja hier vorne können wir das Mikrofon
hier vorne mal durchgeben wir brauchen
das Mikrofon weil wir sind im Stream
sonst verstehen Leute im Stream gar
nichts vielen Dank danke schön ist
vielleicht ein bisschen am Thema vorbei
aber könnte ich denn um zu sagen ich
möchte so einen Zusammenhang wie du
gesagt hast erstmal herstellen also
mathematisch stellen wir uns vor wir
haben eine Industrieanlage und wir haben
10 000 Datensätze mit sollte man das
Ding
reparieren jetzt sage ich okay machine
learning heißer scheiß das schmeiße ich
mal drauf und stell dann nach
fest Mensch mit Hilfe von machine
learning stelle ich fest welche
Parameter wirklich relevant sind für ich
muss das Ding reparieren oder nicht oder
wä der machin learning generell der
falsche
Ansatz
also ich würde sagen wenn du deep
learning machst verlierst du halt
entsprechend die Erklärbarkeit du
könntest halt ein einfacheres Modell
nehmen z.B eine lineare Regression das
ist halt natürlich vielleicht falsch
aber es gibt ja erstmal guten Indikator
der Tatsch tsächlich dir die hohe
Erklärbarkeit an der Stelle erhält weil
du halt einfach ein Gewicht hast mit
welcher also sich der wird halt dieser
Datenpunkt ja wird halt mit demem
höheren Gewicht multipliziert und so
gesehen ist das höchstwahrscheinlich ein
Indikator dafür dass das sehr
entscheidend ist um um das vorher zu
sagen also diese das Thema
Erklärbarkeit alle wollen natürlich
erklärbare KI aber ich würde sagen geh
mal geh lieber in ein Modell von dem du
vorher weißt dass ist erklärbar und und
damit kann man dann auf jeden Fall
wahrscheinlich schon erstmal diese
Sachen entsprechend lernen und
hoffentlich auch besser verstehen vielen
Dank gibt's mehr Fragen ja ich sehe
schon Leute stehen genau danke schön
vielleicht eher ein
Kommentar ist so ein bisschen
angeklungen aber ich find es immer mal
noch wert das noch mal zu betonen in dem
Moment wo wir sozusagen den den Schritt
von den einfacheren du hast es
statistische Methoden genannt
hin zu den komplexeren insbesondere zu
denen die kein Feature Engineering
brauchen machen wir bezahlen da ja nicht
nur indem wir Komplexität bekommen
sondern in der Regel bezahlen wir auch
indem wir viel viel mehr Daten brauchen
von den guten Daten setzen bis wir diese
Modelle überhaupt stabil fitten können
das ist glaube ich was was man sich auch
noch mal sehr zu Gemüte führen sollte
wenn man sich da dran setzt und im
Umkehrschluss ist es auch gut im
Hinterkopf zu behalten
ich wir haben im Zweifelsfall sogar aus
der klassischen Statistik eine ganze
Menge Modelle zur Verfügung von denen
wir wissen wie die sich verhalten und
wenn ich jetzt Probleme habe von denen
ich nicht überhaupt keine Ahnung habe
wie das ist sondern wo es Experten gibt
aus der Anwendung die eigentlich schon
ziemlich viel Wissen dadüber also in
meinem Fall ist es z.B so dass ich über
meine Daten sag die Physik und die
Chemie eigentlich sehr viel aus und das
kann ich ausnutzen indem ich meine
modellarchitektur geschickt fähle und
das wiederum macht sich dann ganz stark
bezahlt näm ich entweder bessere Modelle
bekommen kann ohne sozusagen die
unnötige Komplexität oder indem ich mit
weniger Trainingsdaten und das ist
irgendwas zwischen überhaupt möglich und
teuer
ähm zu brauchen danke auf jeden Fall dem
kann ich nur zustimmen das war keine
Frage vielleicht gibt's eine Frage noch
also der Mensch der hinter dir steht
glaube ich möchte eine Frage stellen
genau nein okay ja ich habe auch noch
mal eine Frage Dennis W hallo ich fand
den Punkt sehr interessant beim deep
learning wurde auf einmal geschmunzelt
hattest und meintest ja da wissen wir
aber auch nicht mehr was da
passiert im Kontext des Titels die m
fing muss ich da sehr lachen kannst du
also in meinem Verständnis habe ich
schon eine grobe Ahnung weil im
Endeffekt sind ja sehr viele Layer sehr
viele Modelle sehr viele Berechnungen
miteinander aber kannst du da noch mal
tiefer drauf ingehen und versuchen zu
sagen was da passiert auch wenn du es
nicht sagen
kannst also das Thema Transparenz ist ja
also ist auch ein hes Thema gerade auch
in dem Forschungs in in dem
Forschungsbereich da gibt es viele Leute
die sich da auch Gedanken drum machen
werden DFG Anträge geschrieben um genau
das hinzubekommen deine Erklärbarkeit
hinzubekommen
und also für so ganz einfacher neuronale
Netze mit einem Layer super da habe ich
irgendwie kann ich eine mathematische
Theorie drum bauen kriege ich alles
irgendwie super gut beschrieben aber
sobald ich mehr Layer habe geht mir
diese ganze mathematische Theorie
verloren und es wird wahrscheinlich eine
Frage der Zeit sein und auch eine Frage
ob überhaupt man tatsächlich diese
mathematische Theorie um das verstehen
zu können nachzubauen und der zweite
entscheidende Punkt an der Stelle ist
selbst wenn ich das Modell nachher
komplett verstanden habe habe ich immer
noch eine Unsicherheit in den
Trainingsdaten die Trainingsdaten bilden
nicht den kompletten Raum ab W sind
immer nur ein ein eine teilabbildung vom
vom Großen und Ganzen und was da drin
steckt muss ich mir halt eigentlich
händisch angucken und dafür will ich ja
genau gerade die KI benutzen um mir das
zu erklären also so gesehen laufe ich da
im Kreis also ich glaube das alle Leute
wollen transparente KI aber ich glaube
ich würde eher ich stehe auf dem Punkt
dass es unmöglich ist das Ganze zu
erklären vor allen Dingen in so einem
wenn ich da mir chatgpt angucke mit mit
mehreren Milliarden an Parametern das
ist nicht das ist nicht erklärbar was da
drin
passiert ja vielen Dank ein sehr
spannender Vortrag und wir sind am Ende
unserer Zeit und in 15 Minuten findet
hier ein Vortrag in englische Sprache
über Hacken von Starling und
satellitenklasn des final frontier das
das bis dahin könnt ihr gerne sitzen
bleiben könnt euch die Beine vertreten
oder geht woanders hin die Sonne wird
erträglicher weil es immer tiefer geht
der Regen der versprochen worden ist ist
immer noch nicht da aber danke dass ihr
da
[Applaus]
[Musik]
wart