Hallo Du!
Bevor du loslegst den Talk zu transkribieren, sieh dir bitte noch einmal unseren Style Guide an: https://wiki.c3subtitles.de/de:styleguide. Solltest du Fragen haben, dann kannst du uns gerne direkt fragen oder unter https://webirc.hackint.org/#irc://hackint.org/#subtitles oder https://rocket.events.ccc.de/channel/subtitles oder https://chat.rc3.world/channel/subtitles erreichen.
Bitte vergiss nicht deinen Fortschritt im Fortschrittsbalken auf der Seite des Talks einzutragen.
Vielen Dank für dein Engagement!
Hey you!
Prior to transcribing, please look at your style guide: https://wiki.c3subtitles.de/en:styleguide. If you have some questions you can either ask us personally or write us at https://webirc.hackint.org/#irc://hackint.org/#subtitles or https://rocket.events.ccc.de/channel/subtitles or https://chat.rc3.world/channel/subtitles .
Please don't forget to mark your progress in the progress bar at the talk's website.
Thank you very much for your commitment!
======================================================================
[Musik]
es ist mir Freude und Ehre zugleich heute annikarüll hier begrüßen zu dürfen sie ist Masterstudentin und hat ein du hast eine Masterarbeit fertig habe ich gehört richtig ja wollte ich w gerade sagen also nennt man das ein abgebrochenes studi geschlossenes masterstudio in denat genau erstmal wollen mich gerade
[Applaus]
sagen und sie hat im November den dritten Platz für women in IT im Bereich digitales und IT bekommen wo ich auch erstmal sagen würde Applaus Applaus
[Applaus]
Applaus und sie kommt heute mit einem ganz schön spannenden Talk an lass uns doch mal das Innere eines neuronalen Netzes ansehen und da bin ich gespannt was hier gleich siziiert wird gr Applaus ja danke schön genau ja ich war beim letzten Real Life Chaos Communication Congress da und dachte mir so ja ich könnte mal so einen kleinen Vortrag halten vor so 20 Leuten es wird bestimmt ganz kuschig ich weiß ehrlich gesagt nicht was schief gegangen ist dass jetzt so viele Menschen sitzen genau aber es geht darum ins Innere eines neuronalen Netzes zu schauen ich fange da so ein bisschen an mal zu erklären wie funktioniert so ein neuronales Netz eigentlich und jetzt seht ihr da schon so die Abbildung mit dem Gehirn das ist meistens das wo es dann so drüber eingeleitet wird also dann wird erklärt wie funktioniert ein Gehirn dann davon abgeleitet wie funktioniert ein neuronales Netz jetzt weiß ich leider nicht wie also ich habe ein Master Informatik nicht in Neurowissenschaften sowas ich habe keine Ahnung wie ein Gehirn funktioniert ich vermute die meisten von euch auch nicht so sonderlich deswegen lassen wir das einfach weg und starten direkt wie funktioniert ein neuronales Netz das ist dann der erste Teil huch wenn man Pointer hier irgendwie gehen würde aha das ist der erste Teil es gibt insgesamt drei Teile einmal Waser und das Netz wie gehen wir mit komplexen Daten um und dann zum Schluss schauen wir tatsächlich einmal rein und gucken uns an wie sieht's da drinne aus also wir kommen mit dem neuronal Netz immer aus der Mustererkennung wir haben also grob immer diesen Fall den wir da jetzt so sehen wir haben irgendwelche Daten und wir wollen aus diesen Daten irgendeine Erkenntnis gewinnen und derzwische haben wir in derzwischen haben wir so ein Modell das uns helfen soll diese Erkenntnis irgendwie zu gewinnen jetzt relativ abstrakt deswegen machen wir direkt mal ein Beispiel Pointer ich muss mal hier irgendwie so in der Nähe sein Hunde und Katzen das ist so ihr kennt alle k
ennt ihr lernt eine neue Programmiersprache print Hello World ist so das erste was ihr macht irgendwie ist das bei maschinellen lernen so ihr wollt irgendein Modell trainieren das erste was ihr macht ihr klassifiziert Hunde und Katzen machen wir jetzt auch ganz klasse wir haben also irgendwelche Daten hier das sind Daten die ich mal so künstlich generiert habe und wir wollen daraus die Erkenntnis haben ist es ein Hund oder eine Katze ist nicht an euch zuverlässig hier vielleicht mus ich mich doch darü hinstellen wollen die Erkenntnis haben Hund oder Katze jetzt müssen wir noch irgendwie ein Modell haben wie sieht dieses Modell aus was ist jetzt dieses Modell schauen uns das mal an hier die Daten in diesem Fall habe ich einfach die Höhe und das Gewicht genommen ich habe aus altergewohnheit einfach englische Begriffe verwendet ich denke ihr kommt damit klar wir geben also eine Höhe und ein Gewicht von einem Tier in dieses Modell rein und das Modell sagt am Ende das ist eine Katze oder ein Hund aber jetzt immer noch nicht genau was was soll dieses Modell eigentlich machen wie soll das jetzt aussehen konkret wir brauchen also irgendwie so eine Linie die wir d durchziehen und können dann sagen okay alles was auf jetzt wir gerade gucken links der Seite ist ist ist eine Katze alles was rechts ist ist ein Hund wir brauchen also so eine entscheidungsgrenze die uns irgendwie vorgibt okay wir können das jetzt einteilen alles da drüben Katze alles da drüben Hund wie können wir jetzt so eine entscheidungsgrenze mathematisch einmal darstellen je nachdem wie lange jetzt Schule bei euch her ist kommt euch diese Formel mehr oder weniger bekannt vor y = AX + B ich erklärre es einmal kurz X ist immer das was wir so reintun in diesem Fall wäre es dann quasi eine Höhe a zeigt uns die Steigung von dieser Linie von dieser linearen Funktion an von der entscheidungsgrenze ist es so oder ist es eher steiler oder flacher das B ist der Beas der sagt uns der schiftet das Ganze nach rechts und n
ach links wir können also mit diesen beiden Parametern das wäre so schön wenn das H einfach weitergehen würde Parameter ich habe die Begriffe die irgendwie wichtig sind und auftauchen immer in blau dazu geschrieben könnt ihr direkt fachsimpeln hinterher wir haben die A und B die sind jetzt richtig wichtig weil die uns ja anzeigen wo genau liegt unsere Kurve die wir da haben unsere entscheidungsgrenze da das jetzt aber nicht so ist y würde uns jetzt das Gewicht vorhersagen und X ist das einzigen Parameter reing der einzige Wert den wir reingeben wir haben jetzt aber Höhe und Gewicht das heißt wir wollen zwei Dinge reingeben das heißt wir spreiben uns die Formel ein bisschen um diese Funktion ist aber im Grunde das gleiche wir multiplizieren ein Parameter A1 mit der Größe ein Parameter A2 mit dem Gewicht und haben dann den B dazu und dann kommt am Ende ein Tier raus also es kommt natürlich nicht wirklich ein Tier raus sondern eine Zahl und die Zahl kann dann positiv oder negativ sein und ich habe das jetzt so gemat alles was größer Null ist positiv ist ein Hund was kleiner Null ist negativ ist eine Katze mathematisch gibt es natürlich keine Wertung von positiv und negativ ja ich mag Hunde lieber
[Applaus]
bevor jetzt die ersten rumdrehen und gehen und sagen das mir alles zu mathematisch hier wir zeichnen uns das jetzt auf wir schreiben nichts mehr mit Formeln Formeln sind böse deswegen einmal hier das ganze quasi dargestellt nur als Grafik Größe und Gewicht gehen rein in so zwei Knoten Anh dieser Kanten dieser Knoten mathematisch nenn man das immer Kanten multipliziert man dann die Parameter A1 und A2 von oben können wir noch einen bias addieren und am Ende geht da ein Output wieder raus so das ganze jetzt nicht in meiner krakeligen Zeichnung bitttechön jetzt einmal irgendwie schön da unten jetzt nur die Frage okay wir haben die Parameter A1 A2 B wie gesagt die geben uns ja an wie genau diese Linie liegt das heißt die sind richtig wichtig die müssen irgendwie gut sein wie kriegen wir die jetzt wissen wir die kennen wir die einfach wie liegt jetzt diese Linie da perfekt also nehmen wir die entscheidungsgrenze die na das ist die falsche Richtung aha nehmen wir diese entscheidungsgrenze oder nehmen wir eine steilere entscheidungsgrenze oder legen wir Sie in eine andere Richtung was sind jetzt die perfekten Parameter dafür dass wir die richtige grüne Linie finden die richtige entscheidungsgrenze das heißt wir haben das Ziel wir wollen ein Modell finden finde ein Modell das die wenigsten falschen Entscheidungen trifft wir können es jetzt auch anders formulieren und sagen wir wollen die meisten richtigen Entscheidungen treffen aber tatsächlich tun wir das in dem Bereich wollen wir immer die wenigsten falschen Entscheidungen treffen interessanterweise das heiß das unser Ziel wir wollen Parameter finden sodass die wenigsten falschen Entscheidung getroffen werden von unserem Modell haben wir einmal hier kurz einen Glossar damit ihr das alle richtig zuordnen könnt jetzt kommen nämlich die essentiellen Begriffe aus diesem Bereich nämlich das Lernen wo ich mir unter lernen vorstelle ich sitze damit Karteikarten und lerne was auswendig das ist im Bereich maschinellem lernen nich
t der Fall sondern da bedutet lernen finde die par passenden Parametern A und B sodass die Aufgabe in diesem Fall Hunde und Katzen voneinander zu unterscheiden sass diese Aufgabe erfüllt wird und trainieren ist jetzt nichts anderes als dieser super komplizierte mathematische Optimierungsprozess im Hintergrund damit wir genau diese Parameter finden das heißt das Trainieren ist einfach nur wie ich trainiere ein neuronales Netz ist einfach nur sehr schön und schnell gesagt für da passiert jetzt im Hintergrund ganz viel komplizierte Mathematik die ich nicht verstehen möchte und die einfach doof ist und deswegen sage ich trainieren das ist dann das fertige Modell für das das habe ich einmal trainiert das ist sehr einfach weil es einfach nur dieses lineare Modell ist ich glaube es hat auf meinem nicht so sonderlich guten PC eine Minute gedauert bis es diese entscheidungsgrenze da hatte und jetzt sehen wir hier auch die Parameter also 1,6 0,4 und -53 das das was da ausgerechnet wurde können wir einmal schnell ein Beispiel machen wir haben ein Tier das ist 25 cm hoch 2,5 kg schwer das multiplizieren wir jetzt 25 mit 1,6 addieren 0,4 x 2,5 dazu kommt 41 raus für die die schnell im Kopf sind davon ziehen wir 53 ab -12 -12 negativ damit eine Katze ja ist jetzt doof wenn wir ein Chihuahua hatten oder einen Pudel oder einen kleinen Pudel oder einen Zwergspitz oder einen beliebigen kleinen Hund genau das sieht man jetzt eigentlich schon an den Daten dass wir da sehr oft falsch liegen werden weil ganz viele von den blau Punkten die ein Hund sind liegen in der falschen Hälfte die liegen in der katzenhälfte das heißt unser Modell hat zwar jetzt die wenigsten falschen Entscheidung getroffen aber immer noch sehr viele falsche Entscheidung wenn man sich das so anguckt und das ist so ein ziemlich essentielles Problem vorsich jetzt gibt's hier wieder so ein bisschen Matte nicht lineare entscheidungsgrenzen also linear ist ja das was so gerade ist und wir haben jetzt hier einmal das sehr
einfache Beispiel die Punkte und die Dreiecke sind sehr schön voneinander separierbar da kann man einfach so eine Linie durchziehen und perfekt ich weiß genau alles Links sind blaue Punkte alles rechts sind grüne Dreiecke in der Praxis haben wir meistens aber eher so etwas also wir können nicht einfach eine Linie durchziehen dann haben wir jede Menge blaue Punkte die in der falschen Richtung liegen jede Menge kleine Hunde die auf einmal als Katzen klassifiziert werden das heißt eigentlich wollen wir lieber so etwas haben so etwas komisch kompliziertes wir brauchen eine viel komplexere Funktion ja wie kommen wir jetzt an sowas wir haben hier unser einfaches Modell von gerade dieses Modell und jetzt wollen wir das komplexer machen na ja lass uns einfach ein paar Knoten dazu tun jetzt tun wir einfach ein Knoten da unten noch mit dazu dann haben wir irgendwie mehr Multiplikation an der Seite das ganze wird komplizierter da wir am Ende ja immer noch nur eine Ausgabe haben wollen nämlich Hund oder Katze und das dann jeweils positiv oder negativ brauchen wir noch einen zusätzlichen Knoten da hinten der uns das ganze wieder auf einen einzigen Wert runter skaliert und D haben ich schon was komplezierteres wir können aber auch einfach mal komplett eskalieren und einfach super kompliziert werden und sagen okay wir nehmen sogar noch mehr noch mehr Knoten so nach unten und wir gehen mehr in die Tiefe und vielleicht können wir auch einfach sowas cooles machen und sagen wir verbinden jetzt gar nicht alle Knoten miteinander sondern nur einzelne und dann machen wir vielleicht auch nicht einfach eine Multiplikation da lang sondern irgendwas komplett abgefahren ist keine Ahnung ja und dann haben wir ein neuronales Netz also quasi wenn man so möchte einfach eine sehr komplizierte Funktion ja einmal kurz den Begrifflichkeiten das was ich jetzt immer Knoten genannt habe ist habe m ich einmal kurz versprochen das ein Neuron wird das sonst in der Regel genannt mehrere Neuronen die so übere
inander sind das ist das Layer das ist eine Schicht bzw auf Englisch ein Layer und wenn wir jetzt mehrere Layer hintereinander haben mehr als zwei üblicherweise in der Tiefe dann ist das deep learning weil wir tief werden aus historischen gründ unterscheidet man dann noch irgendwie zu deep learning aber in der Praxis ist mir noch kein neuronales Netz über den Weg gekommen das nicht deep war insofern ist es halt ein Begriff na genau damit haben wir wieder zurück zu der Mustererkennung wir wissen jetzt wie so ein Modell aussehen kann nämlich eine kompliziertes ein neuronales Netz eine komplizierte Funktion und wenn wir schon so ein kompliziertes Netz haben dann können wir ja auch einfach komplizierte Daten nehmen hat mir ja gerade ganz einfach nur Hunde und Katzen mit so den einzelnen Punkten und nur Gewicht und Höhe nicht Hunde und Katz Gewicht und Höhe und jetzt können wir einfach mal ein komplexere Daten reintun z.B ein Bild also be direkte Frage wie kriegen wir komplexe Daten in zahlen weil wir wissen ja jetzt wir haben einfach eine Funktion wo wir zahlen reingeben und am Ende kommt etwas raus was wir dann wieder in unserer Erkenntnis in unserer ausgaber mappen tada wir wollen also einen Bild in eine Zahl verwandeln jetzt haben wir diese schöne Katze hier und ich weiß nicht ob das für jemand eine Überraschung ist aber so ein Bild besteht aus Pixeln in der kleinsten Einheit und diese Pixel werden am Computer tatsächlich direkt als Zahl repräsentiert dann haben wir quasi noch eine Auflösung für diese Bilder wie viele Pixel da so drin stehen das war jetzt für das Netz dass ich hinterher trainiert habe 150 x 150 das heißt wir wissen wir haben 150 x 150 Pixel da stehen und wenn wir in RGB sind und mit farbigen Bildern rechnen was tatsächlich gemacht habe dann haben wir quasi drei Channel wer einmal die blauen Pixel die Grünen Pixel und die roten Pixel das heißt was unser neuronales Netz so sieht oder bzw unser Computer während wir so das Bild vor Augen haben hat der Co
mputer schon direkt Zahlen vor Augen also er hat schon direkt eine Matrix mit 150 x 150 Werten zwischen 0 und 255 und das ganze mal 3 also dann merkt ihr was ich so meine mit komplexen Daten es ist zwar jetzt einfach nur Zahlen aber es sind sehr sehr viele zahlen wenn man sich das im Vergleich zu vorher wir hatten zwei Zahlen jetzt haben wir 150 x 150 x 3 ist ein bisschen mehr kommen wir zu dem wirklich spannenden Teil jetzt gerade gerade mit diesen ganzen Sprachmodell dann irgendwie kommen wie verwandelt man ein Wort in eine Zahl da können wir das sehr einfache Beispiel haben was ich was jetzt als erstes irgendwie auftaucht na ja wir nehmen einfach h ist der achte Buchstabe im Alphabet dann zählen wir so die Buchstaben durch haben die hintereinander haben also Buchstaben in Zahlen verwandelt ist aber genau der Punkt wir haben Buchstaben in Zahlen verwandelt und nicht Worte in Zahlen das heißt wir verlieren direkt die Bedeutung dass Hund ein Wort ist und Huni jetzt nicht wirklich ein Wort ist und das verliert sich wenn man das so macht das heißt es ist nicht sonderlich klug Idee 2 wir wollen direkt Worte codieren wir nehmen also ein Wörterbuch schreiben uns alle Worte untereinander und schreiben dann an der Stelle eine eins was das Wort ist das wir codieren wollen damit haben wir also sehr sehr sehr lange Zahlenreihen Vektoren mit sehr sehr vielen Nullen drin und an einer einzigen Stelle ist eine 1 das ist eine sinnvolle Idee wie man jetzt Worte in Zahlen verwandelt also wir haben immer noch das Wort abgebildet aber wir haben jetzt halt sehr sehr sehr lange Ketten mit Worten drinne wo nicht wirklich mit Zahlen Nullen drinne und nur eine einzige ein also es wird nicht wirklich viel Information abgebildet und nicht sonderlich kompakt deswegen gibt es an dieser Stelle eine sehr coole Idee die sich bedding nennt ich hätte euch das sehr gerne erklärt wie es funktioniert aber das war in meinen 30 Minuten nicht drin vielleicht stellt ja hinterher jemand eine Frage dann erk
läre ich nämlich eine coole Idee insofern msst damit leben dass ich sage es gibt ein bedding das eine sehr kluge Idee ist und relativ einfach und am Ende haben wir Hund umgewandelt in einen sehr viel kürzeren Vektor wenn wir jetzt unser gesamten großen Vektor jetzt links wo wir das ganze Worterbuch hatten 1000 Worte sind dann wäre jetzt Hund am Ende nur noch in 300 10 000 zeicheninträge Worte doch dann wäre Hund am Ende nur noch 300 Zahlen lang also wesentlich kürzer was dann auch das coole an der Sache ist wenn man das so macht man kann so ein bisschen die Semantik von dem Wort die Bedeutung von dem Wort mit drinne haben also wir können uns das einmal so anschauen wenn wir jetzt Hund Apfel Birne und Katze irgendwie haben und dann möchten wir eigentlich also wenn ich jetzt diese vier Begriffe für euch habe würdet ihr alle sagen okay Apfel und Birne ist ähnlicher zueinander und Hund und Katze ist auch ähnlich zueinander und das wollen wir jetzt im Optimalfall auch genauso abbilden in unseren Vektoren die wir haben und das ist jetzt die umgekehrte Darstellung von vorhin vorhin habe ich gesagt wir können Bilder werden einfach als Zahlen dargestellt jetzt stellen wir gerade Zahlen als ein Bilder also die unterschiedlichen Farbabstufung sind einfach die unterschiedlichen Zahlen und dann kann man jetzt so ein bisschen besser vergleichen dass Apfel und bürne sich schon ein bisschen ähnlicher sieht als jetzt Apfel und Hund z.B genau damit kommen wir jetzt auch endlich zu dem Teil wie den Vortrag an teasert wir schauen uns tatsächlich einfach mal das Innere von so eine Modell an wir haben jetzt die Daten wir wissen wie ein Modell aussieht jetzt schauen wir ins Modell rein damit bleiben wir weiter bei dem Beispiel mit Hunden und Katzen Bilder werden reingegeben das Modell das wir da haben ist eines dass ich trainiert habe deswegen ist das relativ klein es bekommt als Eingabe das jetzt sehr grob vereinfacht dargestellt wie es aussieht wir haben am Anfang die Bilder 150 x 150 x
3 das ist also die Dimension die es reingeht also ziemlich ziemlich riesig und am Ende wird das nur noch auf zwei Werte wo der uns dann näich die Wahrscheinlichkeit angibt für das ist ein Hund das eine Katze und jetzt können wir einfach reingucken weil das ist ja mein Modell dass ich trainiert habe und so sieht es da drinne aus M ja es ist ja das sind die Parameter hat mir gerade in dem Beispiel A1 A2B das Modell dass ich trainiert hat hat davon jetzt so knapp 10 Millionen Stück das heißt das einfach so schön aufzuschreiben ist schon schwierig das ganze jetzt auch noch in so eine schöne Grafik zu verwandeln wo man einfach genau sieht a hier ist die Grenze das alles ist eine Katze ist ein Hund geht auch nicht ja was machen wir damit das ist jetzt ist das jetzt unsere unsere berühmte Blackbox da ist sie genau was was ist also was können wir damit jetzt anfangen nehmen jetzt einfach mal ein Beispiel die -0,39 wo kommt wo kommt diese Zahl her das wissen wir die einfach mathematisch entstanden man gibt Daten rein trainiert das ganze optimiert das ganze und am Ende kommt diese Zahl daraus das kann man Hand per Hand ausrechnen das musste ich leider im Studium per Hand auch ein paar mal ausrechnen das macht keinen Spaß kann ich euch sagen das heißt das ist keine Magie sondern warum die da steht ja das kann man berechnen warum die da steht aber warum steht sie da also wie beeinflusst sie jetzt die Entscheidung das kann man leider nicht sagen keine Ahnung was die an dieser Stelle macht wofür die verantwortlich ist um es noch mal plakativer zu zeigen jetzt hier unten diesen Bereich dieser Zahlenblock was erkennt er erkennt er jetzt die ist er dafür verantwortlich die Nase von dem Hund zu erkennen die Augen die Ohren was was tun diese Zahlen da unten ist tatsächlich sogar noch schlimmer ich könnte noch nicht einmal sicher sagen dass mein neuronales Netz ein Konzept von einer Nase eines Hundes hat ich weiß es nicht ich kenne nur diese Zahlen da aber glücklicherweise gibt es jed
e Menge kluge Menschen die sich da Gedanken drüber gemacht haben in so einer eigenen Disziplin der erklärbaren kün lichen Intelligenz wo sie dann genau diese verschiedenen Daten die man über das Modell hat die Parameter die man hat dann sich überlegen wie kann man das so darstellen dass es dann doch erklärbar wird und keine Sorge ich geh jetzt nicht im Detail durch wie die funktionieren nur einmal falsche reichtung hier schon wieder nur einmal hier ganz grob also ich habe einen Algorithmus rausgesucht der die der wir haben am Anfang diese linearen Sachen die sind wieder erklärbar und der vereinfacht jetzt Bein komplexes Modell s dass es teilweise wieder linear erklärbar ist und sucht sich daraus die Erklärung warum das Modell so entscheidet dann haben wir natürlich die ganzen Gewichte die ganzen Parameter da drinne und wir können uns jetzt auch anschauen wie werden die gewichtet wie wichtig sind die für die Entscheidung die einzelnen Parameter und können das Visualisieren das ist der zweite Algorithmus der das so grob macht und der dritte ist eine Verfeinerung vom zweiten danke schön der die vor allem an einem bestimmten Layer sich anguckt also ist ein bisschen produziert ein bisschen schönere Bilder als der zweite deswegen habe ich den auch mal dazu genommen also schauen wir uns das direkt mal an wir haben hier eine süße kleine Katze das der andere Grund warum man gerne Hunde und Katzen nimmt man geh schöne Bilder das ist das was Leme produziert der erste vereinfacht und das wäre jetzt auch so ungefähr das woran ich jetzt eine Katze erkennen würde na ja das Gesicht die Pfote vielleicht auch noch ein bisschen das ist eindeutig warum das jetzt als Katze erkannt wird wenn man sich den zweiten anguckt dann sieht man jetzt diese Punkte das sind die Teile die irgendwie relevant fürs neuronale Netz waren setzt irgendwie ein bisschen anders zu dem was Slim gesagt hat der Algorithmus nennt sich integrated gradients nebenbei ist ein bisschen anders als was Slime gesagt hat a
lso vor allem mehr so im Bereich des Bauches wird es irgendwie als Katze erkannt und der dritte gradcam ja der schaut sich jetzt irgendwie da sieht man das als Heatmap welche Bereiche sind relevant also vor allem die roten und das sind jetzt eher so die Finger von der Katze also irgendwie haben wir jetzt hier so drei ziemlich verschiedene Erklärungen wie dieses Netz die Sachen erkennt schauen wir uns das direkt mal m anderen Beispiel an nämlich wieder ein süßer kleiner Hund lime erkennt es dann auch wieder am oder sagt es sie erkennt am Gesicht der grüne Teil spricht dafür dass es ein Hund ist der rote Teil spricht dafür dass es eine Katze ist wir haben jetzt auch wieder die Finger scheinen eher für eine Katze zu sprechen was ja irgendwie interessant ist wenn wir uns das mit integrated gradients angucken dann ist auch so okay die Nasen sind Nase ist irgendwie relevant vielleicht die Ohren aber erstaunlicherweise auch ganz viel Hintergrund was auch immer dafür einen Hund spricht und ja gradcam findet irgendwie alles so halbwegs relevant oder da scheint alles irgendwie relevant zu sein tatsächlich auch wieder die Fingerspitzen aber auch irgendwie so die Ohren und die Nase also nicht so ganz daneben aber es das schon irgendwie spannend dass die Finger irgendwie interessant sind für das neuronale Netz und es da dran Aufmerksamkeit hinssteckt weil es wäre jetzt für uns überhaupt nicht die Sache und das jetzt etwas wo ich als Entwicklerin erklärbarkeitsalgorithmen nutzen kann weil ich kann jetzt wieder in meine Trainingsdaten gehen und gucken h warum sind Finger interessant und stell fest oh in meinen Trainingsdaten es werden halt Katzen wesentlich häufiger mal so hochgehoben als Hunde damit tauchen auf Katzenbildern wesentlich häufiger mal irgendwelche Finger auf das heißt wir haben quasi so eine Korrelation Katzen haben häufiger noch irgendwie Finger drinne aber ohne dass Finger kausal für eine Katze verantwortlich sind aber in der Erklärung fürs neuronale Netz sehen wi
r das jetzt nicht mehr s wir sehen nur noch a finger neuronales Netz sieht das als Hinweis für das eine Katze das findet man in der Literatur unter Shortcuts nämlich dass es einfach eine Abkürzung gibt dass es irgendwelche tollen Merkmale gibt woran das neuronale Netz dann festlegt ah das ist da gibt's ganz lustig wir haben häufig Bilder von Schafen die auf so eine schafsferde steht eigentlich immer auf so grünen Hügeln und eigentlich alle Bilder sind mit diesen grünen Hügeln und das jetzt schon sehr markant so viel grüne Fläche das heißt wenn du unter Umständen neuronal Netz so ein Bild von dem Grün Hügel gibst und er titelt das mit eine Herde grasender Schafe ja sieht ganz lustig aus so aber wir können jetzt mal weiter den Fingern auf der Spur bleiben und einfach noch mehr Katzenbilder reinwerfen wo Finger drinne sind und gucken erkennt sind auch hier die Finger irgendwie ein relevantes Merkmal dafür wenn wir uns bei der oberen Katze gradcam angucken ja eindeutig die Heatmap ist definitiv noch mit auf den Fingerknöcheln drauf bei Leim unten na ja da ist es irgendwie so ein bisschen unterschiedlich das Ohr scheint ein bisschen hundeartig zu sein ansonsten so der obere Teil des Gesichtes ist Katze der untere ist auch Katze und tatsächlich sind die Finger auch mit drin in diesem Bereich das es für eine Katze spricht bei der oberen aber interessanterweise nicht wenn man die Leim Erklärung nimnt da ist der Hand völlig irrelevant und eigentlich ist eher das Gesicht das relevante da habe ich mir auch angeguckt warum spricht jetzt der Hintergrund für einen Hund und vor allem auch der Arm das ja auch interessant warum ist der Arm jetzt hundemäßig und das kann ich mir mal vermutlich nur so erklären dass viele Hunde so seitlich im Bild drinne stehen und da hat man eine ziemlich lange dünne Fläche mit ungefähr der gleichen Textur das ist ja jetzt eigentlich diesem Arm gar nicht mal so unähnlich der da auch irgendwie so lang und dünn im Bild hängt und auch ungefähr die gleiche
Textur hat daher denke ich könnte das kommen so warum habe ich jetzt euch unten dieses Bild ausgespart weil das ist nämlich ganz spannend aus irgendwelchen Gründen ist unten dieser Bereich jetzt super interessant das ist also eine super katzenmerkmal was habe ich also gemacht was macht jeder von normale Mensch wenn er so etwas sieht er schneidet diesen Pixel aus da unten und legt i auf ein Hundebild drauf und guckt was passiert wir haben hier einen hübschen Hund der ein bisschen verstört in die Kamera guckt geben das neuronal Netz neuronales sagt Hund alles schön wir legen diesen katzenpickel duuf geben es dem neuronal Netz und das sagt es ist eine Katze wie schön wir haben es
[Applaus]
verarscht ja genau so sieht das dann über mit gradcam aus also ein bisschen Aufmerksamkeit geht unten auf den katzenpixel aber das meist ist irgendwie so die Beine von dem Hund ja auch irgendwie nicht to es jetzt zu erklären das ist nur unten der Pixel na ja das war jetzt auch keine sonderlich innovative Idee die ich da gefunden habe das gibt es in der Literatur unter dem Titel adversarial attacks das heißt meistens tun wir irgendin Rauschen auf dieses Bild so dass man es gar nicht so deutlich sieht wie diesen katzenpixel und dann wird es falsch erkannt das ist jetzt das Beispiel das ist das erste Beispiel glaube ich was es gab was so ganz populär war 2015 oder 16 ja ich habe euch aber tatsächlich doch ein bisschen ähm ich habe ein bisschen getrickt und zwar war es ganz so schlimm dann doch nicht wie ich es gerade gesagt habe also wenn man sich die Erklärung anguckt irgendwie ist das jetzt nicht eindeutig dass es nur in diesem katzenpixel sag ich habe auch ein bisschen gesucht bis ich ein Hundebild gefunden habe bei dem das funktioniert es war nicht beim ersten der Fall na ja habe ich ein bisschen überlegt aber warum warum sind die Erklärung überhaupt so komplett unterschiedlich die ich da habe und auch warum hat das jetzt funktioniert das sollte ja eigentlich nicht der Fall sein ja die Erklärung ist vermutlich das Netz dass sich trainiert habe ist nicht sonderlich gut ist nicht sonderlich groß ich habe das ewig auf meinem PC irgendwie trotzdem trainieren müssen mein PC ist nicht sonderlich gut deswegen hat das schon lange gedauert und dann habe ich überlegt okay ich mach's jetzt einfach mal exemplarisch an einem größeren Netz das war ein vortrainiertes Netz das gibt es ganz oft weil das Training super aufwendig ist dass man sich schon ein vortrainiertes Netz nimmt wo die Gewichte alle schon ziemlich gut sind das hätte jetzt ganz viele verschiedene Bilder klassifiziert deswegen habe ich hinten die klassifizierungsebenen die letzten rausgeworfen meine eigenen drauf
gelegt und das ganze dann noch mal trainiert s dass dann Hunden und Katzen voneinander unterscheiden kann das habe ich auch gar nicht mehr geschafft auf meinem eigenen Rechner zu machen da muss ich dann auslagern an Google mit der wirklich guten Hardware weil meine das nicht mehr konnte ja und wenn man sich jetzt anguckt wie die Bilder aussehen und die Erklärung das ist das Bild von meinem kleinen Netz da drüben also es halt keine Ahnung woran es jetzt diesen Hund erkennt es ist irgendwie nicht ganz konsistent wenn man sich das bei dem großen anguckt dann ist es schon mehr das was man so erwartet nämlich wirklich so die Schnauze und und auch ein bisschen den Schwanz und da sehen die Bilder durchweg alle besser aus das lässt sich auch nicht mehr verarschen durch den katzenpixel undten das ignoriert es das ganze auch die Finger sind da nicht mehr drinne bei dem großen Netz also größeres Netz würde in diesem Fall tatsächlich helfen dauert nur wesentlich länger genau damit wä ich auch schon am Ende ich habe euch zum Schluss jetzt noch so ein paar Punkte mitgegeben zum einen möchte ich gerne sagen ein neuronales Netz ist kein Gehirn sondern tatsächlich einfach Matte das so ein bisschen es ist sehr wenig Magie hinten dran es ist sehr sehr sehr viel Mathe eigentlich nur Mathe dann der zweite Punkt man kann schon in ein neuronales Netz reinsehen es bringt n in der Regel nicht viel ween man damit nicht wirklich viel anfangen kann was da drinne steht aber wir gibt es gibt Algorithmen die das ganze erklärbarer machen so dass man doch besser versteht was da drinne passiert und vor allem dass man als Entwick leider noch mal gucken kann tut mein Netz tatsächlich das was es tun soll oder hat es nicht eigentlich irgendwas anderes gelernt was es nie lernen sollte wir können Bilder und Worte in Zahlen verwandeln wir können die dann weitergeben wir können das ist es sehr wichtig dass wir das geschickt machen weil das viel darüber aussagt wie unser Netz hinterher gut arbeitet oder nich
t gerade bei den Worten und zu guter Letzt wir können Neuron alle Netze austrixen entweder tatsächlich durch dur advary attacks also wirkliche Attacken oder unsere neuronalnetze lernen einfach was anderes aus den Trainingsdaten sehen irgendein anderes Muster drinne das uns nie klar war dass da ein Muster existiert und was auch irgendwie kein sinnvolles Muster ist genau das war's ich
[Applaus]
hoffe ja also so wie ihr geklatscht hat das Internet hat auch schon Feedback gegeben da gibt's zwar keine Fragen aber ganz viel expliziertes Lob gespannend dass so viel da direkt schon reingekommen ist wir fangen deshalb hier im Saal an Saal Mikro 1 moin hi danke für den Vortrag sehr schön äh ich habe eine Frage und zwar warum werden ich ähm vorausgewählte Features genommen für quasi multidimensionale Daten das gesagt wird z.B facial landmark ratios von Hunden und Katzen anstatt pixelverhältnisse und RGB Zahlenwerte zu vergleichen um dann quasi über eine principal component analysis schneller zu dem Ergebnis zu kommen tatsächlich hatte ich mich das auch zwischendrin ab und an mal gefragt also die Frage ging jetzt so ein bisschen in die Richtung wenn wir schon Konzepte irgendwie haben wie bei den Worten haben wir auch Konzepte mit Hund Katze sind sich nicht bei Bildern hätten wir quasi auch irgendwo Konzepte drinne die könnten wir rausextrahieren und dann diese expliziten Ideen schon in das neuronal Netz mit reingeben ich kann jetzt nicht ausschließen dass es in der Literatur das nicht irgendwo gibt und gemacht wurde ich kenne jetzt niemanden wo er das explizit gemacht hat ich stell es mir relativ schwierig vor und auch ob das dann tatsächlich zielführend ist also weil in der Genetik arbeiten wir halt mit Datensätzen mit so 10 20 000facher Dimensionalität und da wird halt genau das gemacht um halt zellklaster auseinander entscheiden zu können okay also du hast ähm man kann dieses PCA bedeutet einfach wir reduzieren das ganze in den Dimensionen also ihr habt jetzt irgendwie gesehen mit so einfachen Sachen kann man das einfach irgendwie Linien drinne trennen wenn man hochdimensional heißt geht das nicht mehr und PCA macht die Dimension quasi einmal runter und das gibt es die Ideen wenn man soe ein einfaches Fall hat wie man möchte irgendwelche Zahlen die man so aufschreibt also die Ziffer Null bis ne machen da kann man das machen ist aber ziemlich schlecht also es fun
ktioniert einfach nicht so gut ja dann sal Mikro 2 bitte dieses embedding was ist mit diesem embeding danke unter Umständen habe ich da noch eine Folie zu muss nur gucken ob ich sie gerade finde ich die Frage klar wir haben die Idee wir haben die Daten also den Hund diesind sehr lang Vektor und die Ausgabe soll jetzt irgendwie also Entschuldigung erstes was sind ähnliche Worte ähnliche Worte sind Worte die in einem ähnlichen Kontext verwendet werden Hund verwenden wir ab und an Kontext spielen oder streicheln Katze würden wir auch im Kontext spielen oder streicheln verwenden Apfel im Kontext spielen oder streicheln findde ich jetzt merkwürdig m das heißt wir wollen wir haben die Daten gegeben mit dem Vektor wo einmal Hund drinne steht und als künstliche aus Aufgabe denken wir uns jetzt aus okay wir wollen dass die Ausgabe uns auch wieder an den Stellen von den Worten Worten ausgibt mit der Wahrscheinlichkeit dass das zum Wort Hund passt z.B spielen oder streicheln mit einer bestimmten Wahrscheinlichkeit und jetzt schalten wir uns dazwischen ein Modell haben wir dann gelernt also einfach so die Datenpunkte und das Modell ist dann wieder klein als dann reduziert wir haben quasi 10000 Daten die reingehen am Ende skalieren wir hier hoch auf 100.000 Daten wo dann wieder die Wahrscheinlichkeiten angegeben werden in der Mitte haben wir nur 300 das heißt es geht quasi durch dieses Bottleneck durch und alle Informationen die wir dann haben müssten in diesen 300 Vektoren dann am Ende gespeichert sein das heißt wir werfen einfach alles andere weg und behalten einfach nur diesen Vektor in der Mitte und das ist dann das embedding also wir trainieren ein Netz dass es uns vorher sagt welche Worte ähnlich sind dann bekommt man amende Worte die in die gleiche Richtung von den Vektoren ungefähr zeigen die dann ähnlich zueinander sind und da kann man da drauf ganz lustig rechnen also man kann das standardbeispiel ist immer wir haben King Queen wir nehmen King ziehen davon Mann ab und
addieren Frau dann soll da Queen rauskommen das funktioniert tatsächlich auch so grob damit also ist ganz cool ja dann Mikro 1 bitte ja also ich habe ja schon von vielen gehört dass Ai nur neuronale Netze sind letztendlich funktionieren Chat GPT und Co auch einfach genau nach diesem Prinzip und sind einfach nur komplexer oder gehen da noch mal komplett andere Techniken drauf das grundlegende Prinzip ja aber sie sind wesentlich komplexer und sie haben da eine ganz neue Idee noch mit dabei dass man tatsächlich lange Worte sich noch merken kann und lange Sequenzen also grob ja das wäre jetzt aber schon grob vereinfacht aber eigentlich sind noch ein paar Ideen aber von der Idee her wir werfen Daten rein irgendwas mathematisches passiert Hintergrund wo Dinge multipliziert werden am Ende kommen irgendwelche Daten raus und dann optimieren wir das ganze das ist das gleiche auch bei Chat GPT dann mikro2 bitte hallo danke für den Vortrag kann man in den Output Layer quasi ein plus 100 Hund reinstecken und auf Input Layer kommt dann quasi ein Bild raus wie das Modell ein + 100 Hund vorstellt oder eine -30 Katze und dann kommt am Input Layer raus wie sich das Modell eine Katze vorstellt ja ich hoffe ich sage jetzt nichts falsches aber ich meine man man kann es auf alle Fälle visualisieren dass man das so so grob sieht von dem ganzen es müssten müsste es dazu geben ich bitte nagel mich nicht drauf fest ich kann es jetzt nicht auf Anhieb in meiner Erinnerung PLT kein paper auf das beschrieben hat aber ich meine sowas in die Richtung müsste es geben dass man es kann ja dann Mikro 1 bitte funktioniert autonom fahren also trainiert wird ein Tesla jetzt auch nach demselben schemat trainiert der dann autonom dann fährt a so aufgrund von neuronalen Netzen oder auch nicht also oder auch nicht also es gibt ich habe euch jetzt nur gezeigt wie supervis Training funktioniert in der meisten Bilderkennung macht man das mit supervice Training also das bedeutet eigentlich dass wir am Ende wir w
issen was rauskommen soll und können dann sagen das war richtig was du gemacht hast oder das war falsch das das superweist trraaining gibt noch zwei andere Trainingsarten ich würde sagen im autonomen fahren gerade im Bereich der Bilderkennung ist es hauptsächlich supervis Training also ja ja dann nehme ich mir doch einfach mal die letzte Frage weil wir hatten ja vorhin deine Masterarbeit und da hattest du geschrieben irgendwie wie man neuronale repariert also jetzt find gerade durch diese tolle Einführung finde ich umso spannender diese Frage mal wie wie wie was machst sie den da am offenen Herzen irgendwie an den Daten wirst ja nichts editieren genau sondern da war genau die Idee wir könnten wenn es gerade mit diesen Shortcuts irgendwas falsch erkennt oder mit den adversary attacks da erkenntest es einfach falsch dann könnenten wir es ja neu trainieren wir geben ihm einfach ganz viele Katzenbilder wo keine Hände drin sind und hoffen es verlernt das ganze irgendwann oder aber da wir jetzt wissen wir können reinschauen es ist eigentlich nur mathematisch mathematischer Prozess dann ist doch die Idee dass wir an den entsprechenden Stellen im Netz die Parameter direkt ändern dass da direkt eine andere Zahl drinne steht und dass ich es nicht aufwenig Neut trainieren muss und das kann man versuchen mathematisch herauszufinden welche Zahlen man da jetzt m genau ersetzen muss und wie man sie ersetzen muss es funktioniert nur für sehr sehr kleine Sachen das auch nur begrenzt also man kann sie nicht wirklich reparieren aber das die Idee dahinter ja dann würde ich jetzt an der Stelle mal folgendes sagen vorhin hatten wir hier mit so einem shoutout von 0 bis 7 richtig laut da würde ich jetzt mal sagen herzlichen dicken Dank Annika Rull Z war ein träumchen das hier alles so zu lernen und ja Kinder es liegt jetzt an euch diese Zahl zu toppen
[Applaus]
[Musik]
feها