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/2708 Danke!
[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 kennt
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 nach 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 nicht
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
übereinander 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 Computer 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 erklä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 jede 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 also 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
wir 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 nicht
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 funktioniert 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 wissen
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ها