TUM Course – “Artificial Intelligence in Automotive Technology” – Lecture 4

TUM Course – “Artificial Intelligence in Automotive Technology” – Lecture 4


einen wunderschönen guten donnerstagabend wünsche ich euch herzlich willkommen zur heutigen vorlesung künstliche intelligenz in der fahrzeugtechnik heute vierter termin und zwar geht es heute um das thema klassifikation wir haben heute in den jan hier der ebenfalls bei uns an der schule arbeitet und dort promoviert sein projekt ist in zusammenarbeit mit immerhin es geht um die automatisierung von lkws und dann kann er vielleicht später auch noch ein bisschen was dazu sagen ich weiß nicht ob es in seiner voll ist und noch vorkommt wie beim letzten mal würde ich ganz kurz noch mal das feedback von letzter woche ansprechen einige von euch haben tatsächlich extrem guten input geleistet haben gemeint warum habt ihr die und die sachen nicht angesprochen in der vorlesung wenn ich an regression denke dann habe ich die und die sache im kopf erstmal vielen vielen dank dafür wir nehmen das alles auf und integrieren es dann in die nächste vorlesung der zweite punkt den wir auch als rückmeldung bekommen haben es nochmal zu unserer practical session unter zu projekte session da ist das jupiter notebook anscheinend ziemlich gut angekommen wir wollen das jetzt auch heute wieder so machen anscheinend hat das alles ziemlich gut funktioniert und hat auch so für alle gepasst es kam einmal die rückfrage warum wir jetzt überhaupt die koring beispiele machen ganz klar es ist für euch um das gesamtverständnis besseren zu erweitern und natürlich auch mehr oder weniger die vorlesung anwendungsbezogen zu machen als wir wollten nicht eine reine theoretische vorlesung sondern wir wollten euch immer auch codebeispiele mit an die hand geben zwei leute haben tatsächlich gefragt warum konnten wir nicht gemeinsam die frage kann ich relativ einfach und schnell beantworten und zwar haben wir herausgefunden das heißt wenn wir zu mit knapp 100 leuten gemeinsam code schreiben würden dann kann es eben sein dass der eine oder andere von euch schneller ist und dass der eine oder andere unterschiedliches know how hat das heißt wir rennen in sehr sehr viele probleme und deswegen haben wir gemeint okay wir geben euch die codebeispiele mit an die hand wir besprechen ja auch gemeinsam damit einer von uns nochmal erklären kann was wird denn da überhaupt gemacht wir geben auch die libraries mit raus und da ist jetzt genau das richtige stichwort gefallen einige haben sich gewünscht dass wir den code den ihr euch geben noch ein bisschen erweitern mit kommentaren es waren wir aufgreifen wir wollen versuchen dass wir die practice session noch ein stückchen besser machen das heißt auch wenn ihr nur hier sitzt wenn wir nur diesen code besprechen dass er eben zu hause damit perfekt arbeiten könnte die letzter punkt oder der letzte punkt den ich jetzt an dieser stelle noch ansprechen möchte einige von euch waren tatsächlich so schlau und haben es geschafft die musterlösungen die wir als hausaufgabe bereitstellen als ihre eigene abgabe abzugeben herzlichen glückwunsch wenn man zum beispiel jetzt auch nicht die variablen ändert dann ist es für uns extrem leicht das nachzuvollziehen und letztendlich wird jetzt an dieser stelle kein feedback geben erst mal das heißt erst wenn die abgaben vollständig ist seht ihr warum ihr den code nicht richtig habt oder wieso er richtig ist tut mir leid an dieser stelle aber so war es jetzt nicht gedacht dass sie natürlich die sache übernehmen könnt klar damit habe er gerechnet aber stabiles kopieren mit denselben vary allen variable namen die wir auch definiert haben war nicht die intention davon tut mir leid an dieser stelle aber wie gesagt das feedback wird es dann eben erst geben wenn die hausaufgabe tatsächlich abgegeben wurde in diesem sinne wünsche ich euch jetzt viel spaß bei der vorlesung und drei jahren wird jetzt eben anfangen mit den objectives völlig schockiert so hallo von meiner seite ist es laut genug könne mich hinten hören noch nicht laut genug jetzt besser nehmen wir noch nicht ok hamas da kommt auch nach oben wunderbar also danke johannes für die vorstellung wie gesagt ich bin ja nun übernehmen heute die klassifizierung mit euch und nächste woche die vorlesung zum clustering wir starten erst mal sowie von letzter woche gewohnt mit der taxonomie also was ist das was wir aus dieser vorlesung mitnehmen sollte erstmal geht es darum dass hin und verständnis davon bekommt was ist so klassifikation was hat das mit machine learning zu tun wie ist das in das den bereich der mustererkennung einzuordnen dann wieder wie sieht es aus mit dem zug weist learning und trainingsdaten wie kriege ich überhaupt trainingsdaten was heißt trainings lampen oder was sind trainingsdaten die teile ich die dann auf in einem trainings und ein testset und wie wird er sich dann unsere maschinen learning algorithmus mit diesen trainingsdaten dann natürlich in einer vorlesung über klassifikation müssen natürlich auch die methoden oder konzepte von verschiedenen klassifizierungs algorithmen kennenlernen und auch mit verschiedenen python libraries anwenden können in der übung am ende werden wir dann sehen wie die pipeline aussieht von einem videostream zuerkannten objekten in den bildern der soll natürlich auch verstehen und ihr sollt auch am ende in der lage sein eingegebenen klassifizierter zu bewerten anhand verschiedener kriterien wie die genauigkeit oder die effizienz am ende kommt wieder eine kleine zusammenfassung wo noch mal alles genau darin steht was sie wirklich aus dieser vorlesung mit rausnehmen sollte gut fangen wir erstmal mit einem überblick an was klassifikation bedeutet hier ist die definition aus dem textbuch systematic arrange menting groups cording to establish pretoria was heißt das wir haben elemente mit bestimmten eigenschaften mit features und diese elemente wollen wir bestimmten klassen zu ordnen und jede klasse hat verschiedene kriterien die die features erfüllen müssen um zu dieser klasse zu gehören wenn wir jetzt mal ein beispiel nehmen sich davon den mann sitzen da ist der johannes b ich weiß also es ist johannes habe ich ihn jetzt als johannes klassifiziert nein ich habe es einfach auswendig gelernt dass er so heißt ich bin irgendwann über den flur gegangen hab gesagt habe ich bin ja er hat gesagt habe ich bin johannes und dann wusste ich alles klar so heißt er wenn ich jetzt hinter mir schaue sehe ich dass da eine tafel ist wie alle seht es dass die tafel ist wir wissen dass die tafel ist aber ist irgendjemand mal mit uns in diesen raum gegangen hat genau auf diese tafel gezeigt hat gesagt dass da ist eine tafel nein sie haben das ding vorher noch nie gesehen und wissen trotzdem ist es ein tafel also woher kommt das also bei mir war es so ein verregneter dienstag ich war fünf jahre alt ich durfte nicht rausgehen sei es also meinem kinderzimmer hat ein kinderbuch aufgeschlagen wenn man ein bild von seinem hund im wald entstand da neben dem hundstadt und nimmt brel stand ball nicht weiter geklettert war ein bild von dem klassenraum und studio stuhl daneben standen tisch stand tisch daneben mit kreide drauf verkäufer neben geschrieben unter hinzuweisen großes flaches objekt gegen die an der wand habe ich so gelesen alles klar tafel heißt das ding dann ja später sei es ihnen in der grundschule und dann hat die lehrerin vorne irgendwie sowas angeschrieben es ist das dann habe ich so fragt er hier frau roos was wissen dass der schneemann tafel da alles klar habe ich schon mal gehört gut und so habe ich also immer im kopf modell gebaut dass diese großen flachen dunkeln objekte die irgendwie zum klassenraum stehen tafeln heißen und so kann ich es auch bin ich irgendwo ähnliche objekte sehe wie wieder als tafel klassifizieren genauso bei euch ich glaube die meisten von euch noch nie gesehen aber weil ich weiß wir sind hier auf dem universitätsgelände wir sind in einer vorlesung ihr schaut ihr zu seid ihr studenten also wir haben modelle und können daraus dann oder mit diesen modellen elementen bestimmten klassen zu ordnen jetzt hier ein bild das ihr alle wahrscheinlich noch nie gesehen habt kann trotzdem irgend jemand irgendwas auf diesem bild erkennen irgendwas ja wohl der menschen genau also hier sehen wir ganz viele menschen ein als gruppe oder hier ist ein mensch da sind menschen da sind menschen was kann man noch sehen bäume klasse hier vorne an die bäume noch irgendwas schildert straßenschilder hier vorne ein straßenschild hier in den straßenschild der mensch ist also relativ gut dar in sachen zu klassifizieren wir können sogar hier hinten klassifizieren was sich da befindet obwohl es eigentlich nur verrauscht und unscharf ist weil wir unser wissen dass wir von vorne genommen haben auch auf andere bildbereich übertragen können wenn wir nur diesen ausschnitt bekommen hätten hätte es auch eine blumenwiese sein können es gibt aber noch mehr sachen die wir klassifizieren können zum beispiel klassifizieren wir das direkt als foto es ist also nicht irgendwie acryl auf leinwand sondern wir wissen ist ein digitales foto wir können ungefähr die tageszeit der hand des schattens klassifizieren wir können klassifizieren das ist nicht im winter ist sondern wahrscheinlich eher so frühling anfang sommer wir können auch klassifizieren wie alt dieses foto ist anhand der kleidungsstücke die die menschen tragen anhand der qualität des fotos würde ich sagen dass es nicht älter als zehn jahre ist also von einem foto können wir tausende klassen ableiten der mensch ist sehr gut darin es gibt aber auch bilder wo es manch ein bisschen schwieriger ist also hier die frage ist es ein muffin ist es ein kleiner hund oder ist ein wischmopp und das ganze kann man auch mal in die andere richtung gehen hier sind die kriterien für eine bestimmte kategorie von studenten also hat wenn ich jetzt also einen studenten sehe diese stereotypen erfüllt würde ich ihnen einen bestimmten studiengang zuordnen hat sie meine idee handzeichen für maschinenbau physik bwl sehr gut also wir haben im kopf modelle für klassen aber wie passt das ganze jetzt unsere vorlesung letztes mal wurde schon die region vorgestellt heute die klassifikation nächste woche das clustering alles drei elemente aus der mustererkennung bei der regression ging es darum kontinuierliche ausgabe werte zu ermitteln als einfaches beispiel zum beispiel eine wohnungsgröße mit dem preis wir möchten wissen wie teuer eine wohnung ist die eine bestimmte quadratmeter größe hat können hier gucken bekommen den preis raus und das ist nicht bestimmt auf irgendwelche diskreten werte sondern wir können jeglichen preis irgendwie damit ermitteln bei der klassifikation sind das diskrete ausgabe werte wir können jetzt also zum beispiel ermitteln ist eine wohnung teuer oder günstig dafür tragen wir dann den punkt 1 also die quadratmeter mit dem entsprechenden preis zum beispiel eine neue wohnung hier vorne und wir sehen dass sie über unserer klassen grenze ist die wir ermittelt haben um teure und günstige wohnungen zu trennen können dadurch sagen diese wohnungstür beides also regression und klassifikation sind probleme die wir mit super weist methoden oder zuweist learning methoden angehen können das bedeutet wir haben trainingsdaten wie das kinderbuch das ich aufgeschlagen habe in dem die bilder mit den labeln waren trainingsdaten die wir den algorithmen geben können aus denen sie dann modelle extrahieren können beim clustering sieht es etwas anders aus wir haben zwar auch diskrete ausgabe werte aber wir haben einen anzug beweis learning das heißt wir wissen gar nicht so genau ob das was haben wir hier für daten wir schmeißen wir einfach mal rein und sagen finde man eine struktur da drin finden malgruppen zugehörigkeiten darin findet man zusammenhänge und gibt mir das dann zurück mehr dazu gang wie gesagt nächste woche beispiele dafür bei der regression haben das gerade schon gesehen die wohnungspreise bei der klassifikation objekte diktion zum beispiel bei einer videokamera im fahrzeug um den umgebungs verkehr markt zu nehmen spam erkennung krebs erkennung aus der medizin beim clustering zum beispiel google news artikel zu gleichen themen zusammengefügt werden da kann natürlich nicht jemand bei google im keller sitzen und alles durchlesen und dann sagen ja das passt irgendwie zusammen sondern das muss an zu überweist gelöst werden weil es einfach unendlich große datenmengen sind die man anders nicht mehr verarbeiten kann wie sieht es mit dem klassifizieren aus wir haben unsere daten die daten haben irgendwelche eigenschaften irgend welche features diese feature schmeißen wir natürlich zähler zu und der sagt das gehört zu der kein klasse oder zu einer anderen meistens hat man eine positiv klasse oder eine negativ klasse beispiele zum beispiel mit e mails da werden die wörter features wir wollen wissen ist es das ist kein spam und dann also die klasse ja system oder nein es ist kein spam bei der tumor könnte man die größer als feature ist bösartig ist gutartig und es gibt auch multi klassifikation wo wir ein objekt zb ein ein bild den klassifizierter geben der dann farbwerte und kanten als features nimmt und klassifiziert was für ein objekt ist auf diesem bild ist ein hund eine katze ist es ein fahrradfahrer ist es ein auto wie kann man jetzt diesen klassifizierter bauen wenn wir uns mal ein einfaches beispiel anschauen wir wollen äpfel bananen und zitronen klassifizieren dann wissen wir schon was darüber wissen äpfel sind rot und wenn das was wir in der hand haben gelb es dann müssen wir noch gucken ist es eher eine längliche form dann isst eine banane oder das ist und dann ist es nicht die throne also wir können klassifizierungs regeln definieren sowie das hier aufgemalt ist ein entscheidungsbaum fangen also obenan entscheiden uns dann immer bei jeder ebene wie hier ist es rot ist es gelb ist es lang ist und dafür brauchen wir aber dieses wissen um diese regeln zu formulieren und machine learning schafft es eben dieses wissen diese regel aus den trainings tat zu extrahieren wir müssen also nicht mehr selbst all die daten durch gehen und überlegen welche zusammenhänge gibt es da sondern machine learning bedeutet dass aus diesen daten gelernt werden kann dadurch können deutlich größere datenmengen verarbeitet werden und deutlich komplexere klassifizierungs regeln aufgebaut werden als das was wir als mensch irgendwie machen könnten ein beispiel wie das dann aussehen könnte ist hier eine klassifizierung von fahrzeugen in einem video ihr seht verschiedene klassen typen wir haben autos eben wir glaube ich schon poster und dadurch dass wir die einzelnen objekte in diesem bild klassifizieren können können wir dann das objekt an sich erkennen und dann auch verfolgen wenn wir wenn wir nur objekt verfolgung umgesetzt haben ist es schon ein sehr großer schritt für unser umfeld modell im fahrzeug wir sehen hier auch dass zum beispiel kontrakt nur die vorder fläche erkannt wird hinten der anhänger wird nicht mit dem truck zugeordnet das heißt vielleicht wären wir gar nicht fahrzeuge klasse klassifiziert sondern nur fahrzeug fronten kommen wir nachher nochmal genauer drauf so wie sieht es mit dem training und mit dem validieren aus also wir haben es irgendwas von super weiß learning gehört was genau ist das jetzt hier erstmal die formale definition ein klassifizierter ist eine funktion mit einem bestimmten modell und dieses modell hat parameter also so wie ich das modell von der tafel gelernt habe hat auch der die für die funktion des klassikers ein modell hinterlegt dass verschiedene parametrisieren werden kann und dann ist die funktion einfach von unserem daten spade datenraum wo alle möglichen elemente drin sein könnten zu unseren labeln die eine bestimmte also eine diskrete anzahl an klassen halten trainingsdaten sie ist eine ode trainingszeiten sind teilmengen von unserem gesamten elemente raum von denen wir aber die richtigen label kennen und training bedeutet dann einfach dass wir anhand der trainingsdaten die parameter des modells anpassen und klassifizieren heißt einfach dass wir die funktion mit dem gelernten modell auf ein element an wänden und ein label herausbekommen wie sieht das jetzt müsst ihr den ansprechend dargestellt aus wir haben unsere gewählten daten nehmen einen teil davon als trainings z dieses training set geben wir den klassifizierungs algorithmus zum lernen dabei werden die parameter des modells angepasst wenn wir mit dem training durch sind das heißt alle elemente aus dem trainingsplatz einmal dem klassifizierter gegeben haben hat er klassengrenzen entwickelt hier sehen wir verschiedene sport bälle gesehen fußbälle basketbälle und bowling kugeln die sich anhand der größe und des gewichts leicht unterscheiden durch das training entwickelt der algorithmus klassengrenzen dazwischen so dass wenn er ein neues objekt bekommt sieht dass es sich von sie zu welcher klasse s gehört da sich eben durch diese klassengrenzen von den anderen bällen abgrenzt aber zum super weiß learning gehört ja nicht nur training sondern auch testen das was wir also nicht als testdaten sonst benutzt haben nehmen wir als als trainingsdaten satz benutzt habe niemals tester und verstecken da die labels sowie werden ja in der schule in vokabeltest macht habt ihr erst englisch und deutsches wort zusammen gehabt so gelernt dann beim vokabeltest wurden die englischen sachen zugedeckt ihr hattet nur noch das deutsche wort und musste dann selber nachdenken okay was ist jetzt richtige lösung also wir verstecken die label zeigen dann die daten dem klassifizierter und vergleichen das was wir wissen was es ist mit dem was er sagt was es ist und dadurch können wir dann die qualität des klassikers ermitteln was heißt qualität ein beispiel oder ein wichtiges beispiel ist die genauigkeit was das ist schauen wir uns gleich auch noch an aber das ist nicht alles wenn wir zum beispiel im fahrzeug mit der kamera fahrzeuge andere fahrzeugklasse beziehen wollen muss es auch schnell gehen es bringt nichts wenn wir damit 0,5 herz irgendwelche video frames bearbeiten das heißt sie muss auch effizienz sein da muss es auch robust seien nicht dass wenn wir mit trainingsdaten von einem sonnigen tag trainiert haben und auf einmal wir durch nebel fahren durch das rauschen durch die durch den nebel nicht mehr in der lage sind die fahrzeuge zu klassifizieren es sollte skalierbar sein sodass wir auch die trainingsdaten erhöhen können und damit komplexere sachverhalte abbilden können also wir haben verschiedene qualitätsparameter oder kriterien die sich auch teilweise gegenseitig beeinflussen und wo wir überlegen müssen für welches oder welche kriterien sind für unser problem jetzt besonders wichtig gut wenn wir es wissen was qualität ist wie genau kommen wir da hin dass wir die qualität von dem klassifizieren bekommen da gibt es was auch letzte vorlesung schon angesprochen war die cape cross valley dacian so das sieht so aus dass wenn wir unseren datensatz mit geregelten daten haben wie ihn jetzt einfach mal bei einer dreifach kurz validierung in drei gleich große teile aufteilen dann fangen wir an mit den ersten beiden teilen zu trainieren und mit dem letzten teil zu validieren gehen so alle möglichkeiten durch und kombinieren am ende die qualität aus den verschiedenen durchläufen warum machen wir das weil wir dadurch den klassifizieren mit jedem element das wir zur verfügung haben einmal getestet haben aber wenn wir jetzt unser datensatz am anfang sortiert haben nach den labeln wir haben zb in diesem blog zufällig nur fahrzeuge hier auch nur fahrzeuge und hier haben wir fußgänger und im ersten satz oder im ersten durchlauf trainieren wir damit nur mit gesammelten daten von fahrzeugen und bei der validierung fragen wir ihnen dann oder geben ein foto von einem menschen und fragen was ist das es kann natürlich nicht funktionieren deshalb gibt es noch eine zusätzliche bedingungen die erfüllt werden sollte und zwar dass es sich um street fight falls handelt das heißt dass die verteilung innerhalb der untergruppen die wir bilden ähnlich ist der verteilung die wir in dem gesamten datensatz oder in den gesamten raum von elementen haben und ein standard ist wenn man es wirklich gründlich machen will eine zehnfach ist recht freiheit kreuz validierung wenn man das dann gemacht hat bekommt man eine konfusion smart tricks hier sehen wir auf der linken seite die korrekten klassen der elemente und oben sehen wir zu was zu welcher klasse das element durch den klassifizierter zugeordnet wurde schauen wir uns das einfach mal für die klasse 1 an dann haben wir hier die positive klasse alle anderen klassen sind in diesem fall die negativ klassen da sie nicht klasse eins sind auf der diagonal haben wir immer die passenden elemente also ein element aus der klasse 1 wurde auch der klasse 1 zugewiesen das nennen wir dann eindruck positiv wenn wir die spalte nach unten gehen sehen wir hier positive werte also der klassische hat es als positiv bewertet aber es gehört eigentlich zu anderen klassen dh hier haben wir false positives schauen wir uns die zeile an haben wir hier negative werte also diese elemente wurden nicht der klasse 1 zugeordnet obwohl sie aber zu der klasse 1 gehören also vollsten negation negativs und der ganze rest sind elemente die nicht zu klasse 1 gehören und auch nicht als klasse 1 klassifiziert wurden alle sind es crew negativs mit diesen vier bausteinen können wir drei wichtige parameter oder drei wichtige genauigkeit parameter bestimmt einmal den recall die sensitivität also all die elemente oder dabei schauen wir uns die zeile von der klasse eins an all die elemente die wirklich in der klasse 1 sind oder von all den elementen die wirklichen klasse eins sind schauen wir wie viele wurden hier richtig klassifiziert also wir haben hier die 45 die als klasse 1 klassifiziert wurden richtig durch alle elemente die tatsächlichen klasse eins sind was den 45 +2 +1 ist ist dann unsere sensitivität depression die genauigkeit macht das gleiche nicht über die zeile sondern üblich spalte also von den elementen die der klasse 1 zugeordnet sind diese gesamte spalte wie viele gehören von den wirklichen klasse 1 und dann die spezifität spezifität ist wie viele elemente die oder von all den elementen die nicht zu klasse 1 gehören das sind die unteren drei zeilen wie viele von diesen elementen wurden richtig nicht der klasse 1 zugeordnet also von denen die nicht so klasse 1 gehören wie viele wurden von denen auch nicht der klasse 1 zugeordnet jetzt kann man überlegen ok wieso braucht man nicht wieder drei warum kann man nicht einfach irgendwie eine genauigkeit angeben mit 80 prozent oder 99 9 prozent weil sich eben diese drei faktoren bedingen wir können jetzt ein klassifizierter machen der einfach beim recall immer 100 prozent schafft indem wir einfach sagen klassische alles zu klasse 1 wunderbar aber die spezifität von dem ist dann bei null weil er einfach alles der klasse 1 zuordnet auch die elemente die nicht zu klasse 1 zu gehören das heißt wir können nicht ganz einfach wir können nicht einfach nur ein kriterium nennen sondern wir müssen in verschiedene richtungen gucken und manchmal ist es wichtig dass es auf keinen fall positiv es gibt aber man kann mit ein paar entschuldigung manchmal ist wichtig dass es keine false positives gibt aber man kann mit ein paar falls negatives leben manchmal ist es andersrum das heißt je nach anwendungsfall muss man auch überlegen wo sind oder was ist wichtig für mich damit sind wir erstmal mit dem allgemeinen teil durch und wir starten mit der erste methode und zwar der logistischen regression regression habt ihr schon mal irgendwo gehört letzte woche warum kommt es ist nochmal aber hieß es da nicht anders letzte woche hiess es lineare regression schauen wir noch mal ganz kurz an lineare regression was war das wir wollten kontinuierliche ausgabe werte ermitteln hier nochmal das beispiel mit der wohnungsgröße und den preisen [Musik] alexander hatte letztes mal viel mit matrix multiplikation und vektoren gezeigt ich habe das jetzt einfach mal als eine funktion dargestellt so und wenn wir jetzt unsere funktion für die lineare regression ermitteln sieht es in etwa so aus wir haben unsere gerade und können anhand der gerade wieder ermitteln was der preis für eine bestimmte wohnungsgröße ist so kann man das jetzt irgendwie nutzen um auch dinge zu klassifizieren schauen wir uns mal beispiel aus der medizin an wir haben die größe von tumoren und wollen sagen dieser tumor gutartig oder bösartig wenn wir jetzt wieder über die lineare regression unsere gerade ermitteln würde sich etwas so aussehen kann man daraus jetzt irgendwelche regeln formulieren wie wir dann ein neues element klassifizieren das fällt ihr auf ja hier sieht asymmetrisch aus sehr schön was ist denn wenn wir einfach sagen alle elemente die über 0 5 liegen klassifizieren wir als bösartig also y kleiner gleich 0,5 ist also wenn der wert kleiner ist als 05 sagen dass gutartig ist wenn der wert größer als 0 5 ist nehmen wir an erst biss artig so wir machen mal test wir setzen hier vorne neuen punkt hin also wir haben einen großen bösartigen tumor schauen klassifiziert unser algorithmus es ist richtig wir gehen hier hoch sehen ganz klar der wert der herauskommt ist über 0,5 wir sagen also erst bösartig und er ist ja auch hier als bösartig eingezeichnet unser klassifizierter funktioniert also so was wirklich so leicht brauchen wir überhaupt keine klassifizierung sollen wir nehmen einfach nur lineare regression und machen da irgendwelche grenzen rein und dann dann können wir klassifizieren leider nicht nehmen wir einfach mal an dass wir diesen punkt den wir jetzt zum validieren genommen haben auch schon beim training hätten dann sieht unsere unsere gerade für die lineare regression deutlich nach rechts verschoben aus kann man das jetzt immer noch als klassifizieren benutzen wir hatten eben unsere regel entwickelt wenn der wert über 0 5 ist ist es bösartig darunter gutartig schauen wir uns einfach mal diesen punkt heran wir wissen er ist bösartig laut unserer lineare regression liegt der wert aber unter 0,5 wir müssen ihn also als gutartig klassifizieren wir haben also in unseren trainings daten jetzt schon fehler läuft also nicht so gut irgendwas müssen wir das ändern und da kommt jetzt erst mal die signalfunktion ins spiel ihr habt sie letztes jahr schon ganz kurz angesprochen bekommen und ihr werdet sie im bereich des machine learning auch noch sehr häufig hören auch wenn es dann richtung neuronale netze geht als aktivierungs funktion ist eine sehr elegante funktion die sehr vielen bereichen genutzt wird und deshalb gehen wir jetzt einmal genauer durch also ich sie geholt funktion ist 1 durch 1 was ist nochmal dieses hoch irgendwas schauen wir uns das kurz an die eula funktion ist circa 270 ist 11 die 27 sieht etwa so aus dass sie von hier unten kommt dann relativ schnell steigt das heißt hier geht es also richtigen unendlich und hier geht’s richtung null dann gucken wir wie sieht es mit unserer signalfunktion aus einmal haben wir zzz und unser gzsz also sah als unser input fangen wir mit z geht gegen unendlich an dann sehen wir unser hoch – z geht gegen null einsplus geht gegen null geht gegen 1 und dann haben wir von z 1 durch ein zu ungefähr das geht dann also auch gegen ein set von gzsz ist e10 ist ein science + 1 2 1 durch 2005 und das ganze noch in die andere richtung renz entgegen – unendlich geht gt hoch z gegen unendlich einsplus gegen unendlich geht natürlich auch gegen unendlich und wenn wir 1 durch was er großes teil gehen wir relativ schnell ging 0 wir sehen hier steht immer geht gegen null geht gegen 1 die signalfunktion wird nie null erreichen und noch nie eins sind also asymptomatische annäherung was sehr schön ist weil dadurch können wir auch einfach durch die signalfunktion teilen ohne irgendwie gefahr zu laufen dass wir mal durch 0 teilen wie sie ihren aus wir kommen von ganz knapp 0 machen dann so eine s form und gegen gegen 1 also mit dem limes wenn z gegen unendlich geht geht die signalfunktion gegen 1 und wenn es z gegen – endlich geht die signalfunktion gegen null symptomatisch die grenzen null und eins werden nie erreicht so können wir das jetzt nutzen schauen wir uns das mal an wie es aussieht wenn wir unsere lineare regression die signalfunktion stecken dann bekommen wir hier wenn wir die richtigen parameter durch das training bestimmen die signalfunktion so verschoben dass wir hier von null kommen diese s-kurve als klassen grenze haben das schöne ist dass wir jetzt nicht nur gekommen es ist in klasse 1 oder 0 sondern wir bekommen wir bekommen eine wahrscheinlichkeit dazu ein punkt hier vorne wer zum beispiel mit 80 prozentiger wahrscheinlichkeit bösartig ein punkt hier vorne mit 20 prozentiger wahrscheinlichkeit ein punkt hier hinten wäre dann schon mit 99,99 prozent nötig wir kriegen also nicht nur die klassen sondern wir kriegen auch die wahrscheinlichkeit mit der ein element in dieser klasse ist kommen nur zu kleinen diskussion von der logistischen regression oder erstmalig die frage warum heißt es denn immer noch regression eigentlich ist es ja jetzt eine klassifikation der ist einfach den namens konvention also es ist ein bisschen enttäuschend die lineare regression ist ganz klar eine methode der regression die logistische regression ist eine klassifizierungs methode man könnte sie auch logistische klassifikationen aber logistische regression ist der eigentliche name trotzdem klassifizierungs methode also vorteile ist relativ einfach anzuwenden wir bekommen die wahrscheinlichkeit heraus nicht nur die einzelnen klassen und wir können es sehr leicht trainieren und wie er bei der regression schon gesehen habt das ist dort diese gewichte für die einzelnen feature einträge gibt in den matratzen können wir anhand der parameter des modells sehr leicht sehen welches feature unseren output wie stark beeinflusst also wir bekommen ein modell aus dem wir selber dann informationen rausziehen können genau ja genau die frage war die frage war ob man es nicht nur verschieben müsste weil bei der sihk neue funktion ist die null bei der 0 5 und genau man müsste die daten halt dann so aufbereiten dass ist eben genau so passt oder man fügt hinter diesen termin dennoch oder man nutzt diesen termin noch in einem etwas kompliziertere modell wo man dann diese verschiebungen drin hat aber ganz genau diese funktion sowie sie hier steht schneidet die y achse immer bei 0,5 also müsste die achse hier vorne sein nachteil von der logistischen regression ist dass sie eben nur für lineare probleme anwendbar ist und ein weiteres problem dass sie relativ anfällig zur oberfläche ist man muss also geht sehr genau wählen welche daten nehme ich vielleicht dann auch mal verschiedene tests nehmen oder das testet größer machen und kleiner machen um zu schauen wie sich die qualität des klassikers verändert ich würde an der stelle fünf minuten pause machen und dann geht es nachher mit zwei weiteren methoden weiter okay wir haben jetzt die logistische regression abgeschlossen kommt jetzt zur zweiten methode die schiris neighbours methode ist eine sehr sehr anschaulich die idee ist eigentlich ich habe mir meine trainingsdaten wieder die sportwette die wir vorher schon mal gesehen haben und wenn wir ein neues element klassifizieren wollen schauen wir einfach an welchem anderen element das wir bereits schon kennen liegt es am dichtesten hier sehen wir also das blaue ist der neue ball den wir noch nicht kennen sehen aber er ist ziemlich dicht an dem fußball also nehmen wir an es ist auch ein fußball bei dem ganzen haben wir es überhaupt kein trainings überhaupt keine trainingsphase mehr er ist also eine instant base methode wir haben kein training mehr wir generieren kein modell mehr gespeichert einfach unsere ganzen trainingsdaten in einer riesengroßen tabelle und wenn wir dann neues element bekommen gehen wir diese ganze tabelle durch und gucken wie ist der abstand zu jedem dieser elemente und dann nehmen wir das event über den kleinsten abstand schauen zu welcher klasse gehörst du alles klar die klasse indem wir auch für das neue element das nennt man dann lacie evaluation und es ist bieten trade auf zwischen der zeit die man beim training genutzt und die zeit die man dann bei der klassifikation nutzt also werden wir das training hier haben sie ihn als wir speichern einfach die daten der tabelle geht das sehr schnell wir müssen eigentlich gar nichts machen weil unsere trainingsdaten gekommen eigentlich schon irgendwie der tabelle aber wenn wir dann ein neues element klassifizieren wollen müssen wir eine riesengroße tabelle durchgehend im vergleich dazu wenn wir ein modell bauen es ist beim training große aufwand weil wir aus den ganzen trainingsdaten ein modell generieren müssen das irgendwie die ganze welt für alle oder das problem verallgemeinert dabei aber nicht zu generell ist und auch nicht zu spezifisch da muss man also viel arbeit reinstecken dafür wenn man dann mit dem modell klassifiziert kann das modell einfach fragen helfen sieht’s aus und man kommt bekommt relativ schnell den output also nearest neighbour benötigt keine trainingsphase bedeuten benötigt aber eine sehr lange klassifikations phase oder zeit für die klassifizierung dann gibt es verschiedene varianten bei den jusos die eine hat mir gerade schon gesehen einfach newswires besuchen den nachbarn der am dichtesten dran ist dann können wir das noch parametrisieren mit kane ihres labels wo wir hier in dem fall gleich drei haben und die drei elemente die am dichtesten an unserem neuen element sind betrachten hier sehen wir zwei von den drei elementen sind fußbälle also bleibt es dabei unser neuer punkt ist ein fußball dann können wir da noch gewichte dranhängen wir haben zum beispiel eine kleinere distanz zu den fußball wodurch wir das element höher gewichten kann und eine größere distanz zu den basketball wodurch die ein bisschen unwichtiger werden und dann können wir noch dass mein base simyo base news never variante anschauen dort gibt es sogar eine kleine trainingsphase und zwar werden die hier in dem fall die mittleren position aller elemente der klasse bestimmt also hier vorne das ist die gemittelte position über die position aller fußbälle genauso hierbei den basketbällen und so muss ich nur noch mein neues element mit drei anderen punkten vergleichen im vergleich zu allen anderen immer wenn wir in der methode ein film mit irgendwelchen parametern ist natürlich die frage wie werden wir die parameter hierbei teilen ihres navis erstmal die wären wir das klar wie viele elemente wollen wir in unserer umgebung betrachten wir haben hier einen punkt wir wollen überlegen zu welcher klasse gehört der punkt fangen wir mal mit k gleich eins an finden wir einen roten punkt als unser nachbarn wir klassifizieren unseren neuen punkt also als rot erhöhen wir kf7 finden wir sechs andere schwarze punkte um uns herum würden wir also sagen unser punkt ist schwarz weil die meisten elemente in unserer umgebung sind auch schwarz gmbh ist noch größer machen sehen wir dass es da noch ein haufen an roten elementen gibt unser neu unser neues element wird also als rot klassifiziert wenn ich mir jetzt die punkte anschauen würde ich intuitiv einfach sagen dass dieser rote punkt ein ausreißer war also der punkt den wir neu zu ordnen wollten sollte schwarz seien bei dem zu klein kam also gleich 1 waren wir zu sensitive gegenüber dem ausreißer bei dem sehr großen k man wird zu generell wir einfach alle punkte angeguckt und überhaupt nicht mehr lokal unterschieden mit einem zu kleinen k bekommen wir also probleme ähnlich dem ober fitting dass wir uns zu strikt an unsere trainingsdaten halten mit einem zu großen k kommen wir zu dem problem der generalisierung dass wir zu allgemein denken und erfahrungsgemäß bietet sich gleich sieben an sollte deutlich größer als eins sein aber kleiner als zehn als startwerte von da kann man das einfach mal variieren und gucken ob es besser oder schlechter wird dann noch die frage wie gewichten wir dann unsere elemente oder unsere distanzen damit zwei möglichkeiten einmal wir gewichten über die häufigkeit der elemente der klasse hier wollen wir wieder den blauen punkt einer klasse zu ordnen und er ist relativ dicht an zwei roten punkten rote punkte sind selten das heißt die wahrscheinlichkeit dass wir dicht an dem roten punkt liegen ist schon relativ gering und das nutzen wir dann als zeichen dass die wahrscheinlichkeit dass wir in der roten klasse sind höher ist also wir gewichten elemente die selten sind höher und dann können wir noch die distanz nutzen so dass wir die elemente zu denen wir sehr dicht sind höher gewichten als die elemente zu von denen wir weit weg sind also normal um gewichtet würden wir hier unseren blauen punkt als spaß klassifizieren nach den häufigkeiten und nach den distanzen gewichtet allerdings rot wie gut oder wie bewerten wir jetzt diese diese methoden der newspapers es ist erst mal relativ leicht distanzen zu berechnen oft funktioniert es auch sehr gut und wenn wir neu trainingsdaten haben müssen wir nicht nur mal irgendwie das modell groß verändern oder komplett neu lernen sondern wir können einfach die neuen trainingsdaten wir haben in die liste der liste hinzufügen und einfach weitermachen und dadurch dass wir unser k wählen können also parametrisieren kann können wir auch gut mit rauschen oder ausreißern klarkommen er nicht so gut ist eben wie das klassifizieren abläuft dass wir eine riesengroße liste an trainingsdaten durchlaufen müssen und dadurch sehr langsam sind und wir müssen darauf achten dass die feature die wir zur klassifizierung nutzen in ähnlichen bereichen liegen wenn wir zum beispiel objekte klassifizieren bei denen die eine länge in millimeter angegeben wird und die kilometern haben wir deutlich unterschiedliche faktoren dazwischen müssen ist also normieren dass der abstand zwischen den millimeter unterschieden genauso stark gewichtet wird wie der abstand zwischen kilometern neutral kann man betrachten dass wir dadurch dass wir kein modell haben auch kein ins implizites wissen irgendwie aus den daten ableiten können oder klassifizierungs regeln herleiten können die wir menschen doch noch irgendwie verstehen es ist einfach nur die daten die da liegen die ohne weitere verarbeitung genutzt werden jetzt können wir zu der meiner meinung nach spannendsten klassifizierungs methoden die wir heute sehen es war den support vector machines support weg der maschinen sind lineare klassifizieren die durch eine hyper ebene die elemente verschiedenen klassen voneinander trennen also ihr seht hier vorne ein traum den er hoch drei personen sind rote punkte und schwarze punkte und eine ebene die diese beiden klassen teilt das training beim support weckte maschine wäre das erstellen der hyper ebene die klassifizierung wäre zu prüfen auf welcher seite der hyper ebene das neue element liegt schauen wir uns das mal an hier vorne haben wir wieder rote und schwarze punkte und wir wollen die linear trennen wir könnten also einfach mal hier vorne eine linie durchziehen und das als unsere helfer play nehmen die unsere klassen trend beim support vector maschinen sollen wir aber eine eigenschaft mehr haben und zwar wollen wir nicht irgendwelche hyatt place haben sollen wir wollen maximale john h paper planes haben das heißt dass der abstand zwischen den klassen maximiert wird hyper plain alleine bedeutet eigentlich nur ebene eben hoch den nationalen raum und dann schauen wir mal wie wir das konstruieren können wir suchen uns erstmal die elemente die am dichtesten zusammenliegen aus den verschiedenen klassen also hier ist der kleinste abstand zwischen den beiden klassen und legen da die mittel senkrechte durch damit haben wir eine ebene im zweidimensional ist es jetzt eben nur eine gerade die unsere daten trend wir sehen habe allerdings hier dass der abstand kleiner ist als der abstand hier vorne wir wollen den abstand aber maximieren das heißt wir können ja noch ein bisschen was rausholen dann sparen wir eine ehe oder eine gerade zwischen den punkten auf die am dichtesten an unsere aktuellen ebene liegen und schauen von da einfach wieder was ist von hier der kleinste abstand zu den anderen klasse ziehen hier wieder die mittel senkrechte durch und haben damit eine maximale in haifa plain die den abstand zwischen den beiden klassen maximiert das sieht dann so nochmal aus dass wir den abstand delta bei allen drei dieser punkte haben und die punkte die diesen abstand delta haben und diese heiko plain aufspannen das sind die support vektoren daher kommt der name und dadurch dass es durch diese drei punkte jetzt aufgespannt ist ist diese ebene auch eindeutig das heißt wir kriegen mit diesen daten setzt immer die gleiche ebene schauen wir uns das ein bisschen mathematische an wir haben unsere trainingsdaten da haben wir nix aus dem elemente raum eher hoch de und y unser label 1 oder -1 ist auf der vorderseite der ebene oder auf der rückseite der ebene unsere haifa plain hat als wichtigste komponente einen normalen vector also ein vector der orthogonal auf der ebene steht dazu die punkte und den abstand zu unserem ursprung also hier haben wir den abstand geteilt durch die norm unseres normalen rektors beim training wollen wir den normalen weg tor der hyper plain bestimmen wollen wir den normalen sektor der heime ebene minimieren und dabei für alle trainings sätze die wir haben diese bedingungen erfüllen und zwar das eben das label das wir produzieren mit dem label dass wir von den trainings daten haben übereinstimmt und dadurch dass wir die beim training die norm minimieren maximieren wir den abstand zwischen den klassen bei der klassifikation nutzen wir dann einfach unseren formel für die hyper ebene setzen dort unser neues element ein und prüfen ist der wert positiv oder negativ ist der wert auf der einen seite oder auf der anderen seite der ebene was ihr aus diesen ganzen sachen mitnehmen sollte ist dass wir ganz häufig das scala produkt benötigen wir brauchen es beim training wir brauchen jetzt bei der klassifikation also dass kalla produkt er ist ein ganz wichtiges ist sehr wichtig um dieses support weckte maschinen zu bestimmen wir haben hier dann auch neue methode wenn wir lineare oder bilden ja trennbare daten haben aber sie sich nicht schön linear trennen lassen hier vorne weder die schwarz- und die roten punkte und die support weg der maschine würde so wie sie gerade gesehen haben diese ebene finden die daten trend wir würden aber vielleicht eine ebene die hier vorne liegt besser finden da sie eben den abstand zwischen den klassen maximiert und ja diese eine ausreißer den können wir irgendwie tolerieren das nennt man dann soft margin wenn wir den klassifizierter erlauben kleine fehler zu haben aber dadurch insgesamt den abstand zwischen den klassen deutlich vergrößern kann also ein trade off zwischen den fehlern und der größe des abstand zwischen den klassen ähnlich auch bei daten die wirklich nicht trennbar sind so wie hier unten das ist natürlich nicht linear wir müssten dann wieder eine ebene in etwa hier haben wo wieder ein fehler schon im trainings datensatz vorhanden ist oder wodurch ein element aus dem trainings datensatz falsch klassifiziert wird aber wir insgesamt am ende doch eine bessere klassifikation bekommen also es oftmals bedeutet dass wir kleine fehler tolerieren um eben die distanz zwischen den klassen zu erhöhen und dadurch später eine bessere genauigkeit haben wie sieht es aus wenn wir hier solche daten haben wir können wir hier auch versuch mit soft margin irgendwelche ebenen reinzulegen hier vorne die beiden halt richtig falsch ist ein bisschen zu viel wenn sie auf der anderen seite versuchen es ist hier auch wieder schlecht wir können auch mal versuchen irgendwie horizontal zu gehen aber klappt alles nicht also wir schaffen es einfach nicht selbst wenn wir irgendwelche kleinen fehler zulassen würden hier irgendwie ne gescheite klassifizierung aufzubauen oder eine gescheite grenze zwischen den klassen dass man hier jetzt machen könnte ist eine transformierung des raumes zeichnen wir erstmal die y-achse 1 und wenn wir jetzt alle komponenten unsere elemente quartieren verschieben die sich alle auf die andere seite wir bekommen dann also in etwa den raum hier unten oder die elemente hier unten und da ist es leicht diese lassen sich ganz leicht linear trennen aber wir sind jetzt in einem anderen raum haben andere elemente was wir jetzt wieder machen können ist nachdem wir hier in diese richtung nach unten quadrat haben transformieren wir die ebene einfach invers zurück und dadurch würden wir hier vorne dann ein parabel bekommen die wunderbar unsere daten trend wir können also dadurch dass wir den raum in dem wir arbeiten wechseln teilweise auch nicht lineare probleme mit support vector maschinen lösen das ganze lässt sich nur schwer hier im 2d aufmalen deshalb jemanden video hier haben wir helle punkte die in dem kreis sind von blauen punkten umgeben in der 2d ebene dann machen wir eine transformation ist raus wir gehen also in ein höher dimensionalen raum und sehen dort dass es möglich ist hier durch eine lineare trennung durch eine ebene die klassen ganz klar zu unterscheiden was danach dann auch gemacht werden muss ist die transformation unserer hyper ebene in den ursprungs raum und so kriegen wir hier aus einem linearen klassifizieren eine nicht-lineare klassen grenze das ganze nennt man dann oder das ganze weiß eine raum transformation und das ist erst mal sehr aufwendig wenn wir alle elemente die wir haben erst in einem hochemotionalen raum transformieren müssen der vielleicht nicht einfach nur zwei drei elemente oder zwei drei dimensionen größer ist sondern vielleicht um mehrere 100 fach größer ist sie sehr rechen aufwendig und wir müssen die hyper ebene dann auch wieder zurück transformieren was teilweise überhaupt nicht möglich ist an dieser stelle kommt ins spiel kernels erlauben eine transformation in ein höher dimensional raum um dort das gallo produkt zu bestimmen und gleichzeitig wieder die drück transformation wir können den kölnern methoden als ganzes space transformation weglassen wir können die hyper plain transformation wieder zurück in ursprungs raum weglassen und nur mit kernel funktion arbeiten mit dem beispiel oder hier noch mal es gibt verschiedene können methoden die zum beispiel eine nominelle oder die russian railways falschen die erlauben die elemente oder das kanal produkt in einem höher dimensionalen raum zu bestimmen hier ist ein kleines beispiel wir haben denn er hoch drei in dem wollen wir klassifizieren wir schaffen es aber nicht weil die daten dort eben nicht linear trennbar sind dann machen wir eine transformation in den eher hoch 9 anhand unserer funktion f die kombiniert einfach alle möglichkeiten also 61 x iks weiße ersten tricks einmal ist einzelne erster eintrag x1 mal x2 der zweite eintrag und so weiter bis wären hier beim neuen eintrag sind und wir haben für den politologen raum unsere kernel function die für xy in eher hoch drei sagt dass wir einfach nur dass kalla produkt in er auch drei bestimmen und quadri ihren so wie sieht es aus wenn wir jetzt den ganzen weg über die raum transformation nutzen neben der müssen wir erstmal hier vorne unser x1 23 und unser y in unseren er hoch 9 transformieren also diese funktion an wänden auf xy kommen wir also zwei sektoren in er auch 9 dann müssen wir ihn eher hoch 9 das color produkt bestimmen geht alles noch aber sind halt eine menge zahlen rechnen wir es auch nicht nach und dann kommt 1024 raus ok funktioniert aber schauen wir uns jetzt mal dass mit der kernel funktion an hier bleiben wir in eher hoch drei wir bestimmen hier das kernprodukt quartieren es einfach und kriegen genau den gleichen wert raus wir sind also kein mal im neuen gewesen wir haben kein einziges mal diese transformation in diesem hoch dimensionalen komplexen raum gemacht und wir haben auch nicht die komplexere würde das komplexere berechnen des gallas produkt mit den rektoren aus dem hohen raum gemacht wir sind die ganze zeit im eher hoch drei geblieben in unserem original raum und haben trotzdem das gleiche ergebnis erzielt es war also rechnerisch viel weniger aufwand und einfach eine sehr elegante methode um das scala produkt also das verhältnis zwischen zwei vektoren in einem hoch dimensionalen raum zu bestimmen und das ist der kern trick dass wir diese ganzen scalar produkte die wir brauchen um die sofort weckte maschinen zu bauen und zu nutzen auch sehr elegant in einem hoch dimensionalen raum berechnen können den wir dafür nie betreten müssen und in dem unsere daten linear trennbar sind das ganze könnte dann so aussehen hier haben wir oben zwei beispiele von unterschiedlich parametrisieren linearen support weg der maschinen also wo es keine wo keine können methoden benutzt werden die in einen höher dimensionalen raum transformieren und unten einmal wieder die radios function als könne und einen politologen dritten grades und wir sehen dass die klassengrenzen hier ganz klar nicht mehr linear sind sondern wir hier wunderbar passende klassengrenzen bekommen haben im vergleich hier oben wo wir einfach nur linear i klassen grenze ziehen konnten hier auf dem beispiel seht ihr schon hier gibt es drei klassen vor gab es irgendwie immer nur rot und schwarz man kann support vector maschinen also auch für die multi class klassikers nutzen da es zwei ansätze wir könnten einmal den 1 gegen den rest anschauen also ein klasse betrachten und alle anderen klassen als eine s klasse betrachten oder wir schauen uns explizit eine klasse gegen eine andere klasse an und ignorieren die üblichen wie sieht es hier vorne beim 1 gegen den rest aus erstmal wollen wir schwarz gegen den rest anschauen das heißt der rest wäre die roten und die grünen punkte nehmen wir mal an wir haben es oftmals wir können also kleine fehler erlauben eine trennung wäre zb hier vorne den blauen punkt wollte klassifizieren wir sehen der blaue punkt ist nicht auf der seite der schwarzen punkte hier klassifizieren also – 1 dann schauen wir uns rot gegen den rest an das heißt rot gegen schwarz und grün zusammen auch da ist der punkt nicht auf der seite der roten wir sind also wieder bei -1 unter noch grün gegen schwarz und rot hier sehen wir der punkt ist auf der grünen seite kriegen hier also eine 1 dann schauen wir hier schwarz nicht rot nicht grün 1 also ist unser punkt grün bei dem eins gegen eins konzept schauen wir uns erst mal schwarz gegen roth an wir ignorieren also grün linie die linie da kann man vielleicht ein bisschen besser ziehen so wir sehen der blaue punkt ist auf der seite der schwarzen das heißt bei rot gegen schwarz klasse beziehen wir ihn als schwarz wir können nicht in der matrix auch schwarz gegen schwarzes müssen überhaupt nicht testen rot gegen rot müssen wir auch nicht testen und ob wir schwarz gegenprotesten oder rot gegen schwarz ist auch egal das heißt die müssen wir auch nicht testen machen wir dann weiter mit grün gegen schwarz da landen wir auf der grünen seite grün gegen roth langen wir auch auf der grünen seite das heißt wir haben null oder einmal schwarz wir haben null mal rot zwei mal grün also ist unter punkt wieder grün wenn wir eine klasse gegen alle anderen klassen testen dann müssen wir das quadratisch in der anzahl der klassen machen also wir müssen sehr viele verschiedene möglichen kombinationen ausprobieren wenn wir das nur eine klasse gegen den kombinierten rest machen müssen wir das nur machen so oft wie wir auch klassen haben das heißt hier vorne sind wir von der laufzeit deutlich besser aber von der genauigkeit ist die eins gegen eins methode besser da sie eben feinere abstufung zwischen den klassen ermöglicht zur diskussion das support weg der maschinen die sind sehr gut geeignet und bekommen oder man bekommt ein sehr gute klassifizierung in sehr vielen bereichen damit sie sind relativ schnell und sie sind nicht anfällig gegen ober fitting das modell das man baut ist relativ simpel ist es irgendwie eine ebene im raum also auch nichts hochkomplexes und durch die verschiedenen kölner functions kämen sie auf verschiedene probleme an wänden und unterschiedlich parametrisieren was nicht so gut ist ist das obwohl wir können methoden nutzen das training oft sehr lange dauern kann es ist im vergleich zu der logistischen regression deutlich schwieriger umzusetzen was die implementation angeht und dadurch dass da irgendwas in summe hoch dimensionalen raum geschieht können wir das auch nicht ganz leicht begreifen wenn wir uns einfach mal anschauen wie diese hyper ebenen auswählen das heißt wir bekommen nicht ein leicht verständliches modell daraus dass wir selber auch nutzen können um informationen heraus zu ziehen dann schauen wir uns ein paar anwendungsfälle an also hier sehen wir zum beispiel die klassifikation von handgeschriebenen zahlen so dass wenn man brief verschickt der brief einfach gescannt wird und der computer weiß wo geht er hin und kein mitarbeiter hat auch noch sitzen muss und dann lesen entziffern muss was da steht und irgendwie eingetragen werden muss diese klassifikation von musik durch schüsse oder die klassifikation von stimme von sprache durch siri alexa eco und als beispiel für die automobiltechnik die schon angesprochene perzeption also die wahrnehmung die klassifikation von objekten in der umgebung durch kamera bilder wir werden in der übung nachher ein video anschauen und in dem video dann fahrzeuge erkennen also so wie hier gefahren auf der straße recht ist ein fahrzeug wir wollen diesen bereich des bildes als fahrzeug klassifizieren dafür gehen wir gleich eine pipeline durch die damit losgeht dass wir erstmal trainingsdaten irgendwie sammeln müssen dann müssen wir aus diesen trainingsdaten feature das extrahieren also eigenschaften der bildern damit können wir dann ein modell trainieren und anschließend gehen wir das video frame für frame durch bei jedem frame nehmen wir teil bilder prüfen ob auf diesem teil bild ein fahrzeug zu sehen ist und dann fügen wir all diese klassifizierten teilbilder wieder zusammen und sehen dann die region in denen häufig ein fahrzeug erkannt wurde oder nicht und legen dort dann wieder eine box strom um zu sagen hier vorne befindet sich ein fahrzeug jetzt wird schon ganz auf das wort trainingsdaten benutzt das ist das überhaupt und was brauchen wir für unser beispiel wir wollen wissen ob an ob in einem bild ein fahrzeug ist oder kein fahrzeug ist das sind also unsere beiden labels und dann fahren wir auf der straße film nach vorne wir müssen also bilder haben von anderen fahrzeugen insbesondere von den rückseiten wir von seiten der fahrzeuge und dann teilen wir diese trainingsdaten auf in trainings und testdaten zum beispiel könnte man zehn prozent zum trainieren nutzen und 90 prozent zum trainieren und 10% zum testen dabei wie kriegen wir jetzt diese trainingsdaten wo kommen die her eine methode ist einfach daten selber zu labeln wir selbst uns dahin gucken uns ein bild an sagen dass ein auto das kein auto zweite methode ist wir schicken die ganzen bilder irgendwohin lassen die label zahlen geld google macht so die lassen uns labeln wenn ihr vorheriges capture sieht soll man die 4k ankreuzen in denen straßenschild zu sehen ist da werden einfach irgendwelche rennt und bilder aus von google maps genommen um dann dem also uns gezeigt wir markieren dann diese bilder und google weiß alles klar wenn genug leute die gleichen vier ausgewählt haben dann wird das wohl korrekt gelagertes bild sein und dann gibt es auch open source trainings datensätze wieder das m ist das relativ bekannt dafür ist die bilder für die ziffern erkennung angeschriebene ziffer erkennung zu bieten oder das dti eine große sammlung von bildern von geregelten bildern von fahrzeugen bei der vorbereitung für die vorlesung habe ich jetzt noch dass die tat gefunden da steht es irgendwie komisch dass die folgenden zwei sachen gleichzeitig war sind zum einen fahren computer fahrzeuge herum und gleichzeitig ist der beste text ins gerade gibt um zu gucken dass ich keinen computer bin mir bild zu geben und ich soll sagen ob dann shops stellt ist oder nicht das heißt dass das maschinelle sehen oder dass die erkennung hat noch nicht an dem punkt ist wo man sagt alles klar dass es gelöst wir sind also immer noch da wo wir noch mehr daten brauchen immer mehr geräte trainingsdaten haben wollen um diese klassifizierung noch immer weiter zu verbessern dann wenn wir diese trainingsdaten haben müssen wir da irgendwie eigenschaften rausziehen wir können nicht einfach das bild dann reinschmeißen und sagen macht mal sondern wir müssen noch ein bisschen helfen und sagen hey schau dir mal diese eigenschaften an hier zum beispiel die histogramm soft orienteering oriented radiance die auch in der passion vorlesung schon angesprochen wurde und dann können wir eine python library library wie zum beispiel skype kittler nutzen um diese perfekte maschine zu trainieren dass selbst sind eigentlich nur 14 wir sagen wir wollen alles sofort weg der maschine wir trainieren sie mit unseren featuren und den label wie ermitteln wie gut dieses training geklappt hat anhand unserer testdaten und dann können wir sie ganz normal nutzen also eigentlich sehr simpel bevor wir dahin kommen müssen wir aber noch die ganzen daten aufbereiten wir müssen das video frame oder das video durchgehend frame für frame extrahieren auf jedem frame wieder teil bilder identifizieren und dann diese teilbilder klassifizieren und wenn wir ganz viele dieser frames dem klassifizierter geben kommt er vielleicht mit so einem auto zurück das er sagt hier vorne in diesen bildern habe ich ein fahrzeug erkannt dann können wir die kombinieren zu einer ebene zu einer box und wenn dann alles gut geht haben wir ein video wo wir dann sehen wie die klassifikation funktioniert aber das sehen wir nach der übung jetzt gehts zur zusammenfassung was haben wir gelernt klassifizieren oder beim klassifizieren geht es darum elementen klassen zuzuordnen es ist super weiß learning das heißt wir brauchen viele trainingsdaten dazu dass machine learning heißt dass wir aus diesen trainingsdaten wissen extrahieren können und das modell bauen wenn wir dann oder beim super weiß learning haben wir trainings und testdaten das heißt wir splitten unsere gesammelten daten auf nutzen erst die trainingsdaten für das modell extra hier nutzen dann die testdaten um die qualität zu bestimmen wir haben drei konzepte kennen gelernt die logistische regression niveau sales und support vector maschinen bei der logistischen regression ist es so dass wir da die lineare regression von letzter woche kombiniert mit einer signalfunktion nutzen können zur klassifizierung disney was ist ein instant learning ansatz bei dem wir also keine richtige trainingsphase haben sondern durch diese laser evaluation immer durch unsere ganzen trainingsdaten durchgehen und dann einfach das element auswählen das am dichtesten dran wir haben gelernt dass sofort weg der maschinen eigentlich für lineare probleme gedacht sind aber durch den kölner trick auch nicht lineare probleme damit angegriffen werden können der kernel trick bedeutet eigentlich nur dass wir das verhältnis zwischen zwei vektoren dass kalla produkt in einem hoch dimensionalen raum bestimmen kann ohne wirklich in diesen raum transformieren zu müssen woher man diese ganzen trainingsdaten krieg dessen problem man braucht immer mehr um die modelle immer besser zu machen es gibt aber auch open source daten setzt sie die wir einfach nutzen können um damit herumzuspielen gleichzeitig gibt es auch open source python libraries die wir nutzen und auch gleich eine übung noch mal sehen das training insbesondere mit großen datensätzen kann dann auch entsprechend lange dauern und wenn wir in einem video dinge klassifizieren wollen müssen wir erst mal die video frames aufteilen in kleinere bilder dann auf diesen bildern die klassifikation durchführen und dann dieses ergebnis der klassifikation wieder zusammenzufügen und wir müssen es features extrahieren um dann wirklich die klassifikation durchführen zu können hier sind noch ein paar quellen aus der vorlesung und wenn ihr noch mehr interesse habt könnt ihr euch die vorlesung machine learning von q serie anschauen oder die vorlesung neues discovery in databases das auch alles online wo allein zur klassifikation drei vorlesungen sind und dann machen wir wieder eine kleine pause und machen damit der übung weiter es sei es gibt ja noch fragen alles klar du bist gleich okay machen wir langsam wieder weiter wir sind jetzt in der übung und in der übung wollen wir aus einem video oder in einem videofahrzeug klassifizieren ihr habt eben schon mal kurz das video gesehen bevor wir damit anfangen gehen noch mal ganz kurz paar sachen durch die letzte woche auch schon gesehen habt wir nutzen wieder pfeifen wir nutzen die sky kittler bibliothek die halt genau für unsere maschinen laden den themen gemacht wird und die sehr einfach anwendbar ist das ganze machen wir den jupiter notebook auch die haus oder auch eine aufgabe in der hausaufgabe wird in jupiter notebook sein macht euch also damit bekannt scheint ja alles wunderbar geklappt zu haben letztes mal und ist einfach wirklich sehr nützliches tool wärst du nicht gemacht hatte ich auch noch mal die anleitung wieder wie man das macht über anaconda zum beispiel so läuft es ja auch und das sehr zu empfehlen und dann starten wir auch direkt hier in dem jupiter notebook und zwar wollen wir uns die pipeline für die fahrzeug erkennung in dem video anschauen als ersten schritt müssen wir uns erstmal trainingsdaten besorgen wenn wir nicht trainingsdaten haben müssen wir überlegen welche feature wollen wir aus diesen trainings daten extrahiert dann die support weg der maschine mit diesen gesammelten featuren trainieren und dann haben wir erst mal den leichen partnerschaft weil der schwierige part ist die ganze vorverarbeitung aus diesem video in diese kleinen teil bilder die wir dem klassifizieren zur verfügung stellen wir werden also ein sliding window ansatz nehmen um über die einzelnen frames des videos zu gehen um dort teilbilder herauszuschneiden um diese zu klassifizieren wenn wir das gemacht haben können wir die klassifizierten bilder oder bereiche wieder zusammenfügen und auch dann noch ein bisschen die bilder aus dem schritte voran nur zur verfügung nehmen um ein tracking auch umzusetzen also wenn wir wissen im vorherigen frame waren der stelle ein fahrzeug dann können wir auch annehmen dass ungefähr dort im nächsten bild auch wieder ein fahrzeug ist und dann wollen wir das ganze als video wieder abspeichern also schauen wir uns erst mal an wie unser video aussieht jetzt eben schon gesehen ich es gibt mal irgendwo rein wir sind also auf einer straße der sind fahrzeuge und über uns ist relativ viele himmel also die obere hälfte des bildes ist eigentlich uninteressant für uns das hat johannes auch schon eine passion vorlesung mal gezeigt dass man da schon direkt auswählen kann was sind interessante bereiche für uns was wollen wir klassifizieren wir wollen die klasse die fahrzeuge auf unserer spur klassifizieren was sehen wir von denen wir sehen die seite oder auch das heck die front brauchen wir zum beispiel überhaupt nicht weil durch die mauer sind wir auch abgetrennt von der anderen fahrtrichtung und wollen eh nur die fahrzeuge auf unserer seite erkennen wir brauchen also bilder von fahrzeugen und wir brauchen bilder von irgendwelchen anderen sachen die keine fahrzeuge sind am besten auch irgendwelche bilder aus dem straßenverkehr zum beispiel stückchen von einer leitplanke wo wir das label haben hier ist kein fahrzeug wir müssen erst mal ein paar bibliotheken importieren und dann schauen wir uns die trainingsdaten an das ganze notebook ist auch ihr könnt euch das runterladen die trainingsdaten sind selbst nicht da die müsst ihr euch dann selbst noch runterladen da sind die beiden links da einmal für die trainingsdaten mit fahrzeugen und einmal die trainingsdaten ohne fahrzeuge dann kann man das einlesen der geht es den ordner durch sammelt all die bilder und wenn er das gemacht hat schreibt er hin dass er etwa 8000 bilder mit fahrzeugen und 8000 bilder ohne fahrzeuge hat nach 1700 geländefahrzeug bilder 8900 gelevelt bilder einfach von ausschnitten nehmen kein fahrzeug ist jetzt schauen wir uns erst mal an wie das aussieht hier oben haben wir fünf zufällig ausgewählte bilder mit fahrzeugen hier unten geleitete bilder wo kein fahrzeug drauf ist der nimmt sich immer zehn zufällige das heißt wir können ja mal ein bisschen durchgehen sehen hier sehr dunkle fahrzeuge hier auch links ein fahrzeug bei dem etwas abgeschnitten ist also kein ganzes fahrzeug drauf es hier in der mitte auch und hier unten bilder aus oder von der straße also wir haben eine leitplanke die straßenmarkierung gegen ewiges straßenränder also es passt schon genau in das was wir haben wollen dann müssen wir daraus irgendwelche feature extrahieren und da nehmen wir drei verschiedene der neben einmal das special bin dass kanada ist programm und die histogramm oriented grenze schauen wir uns gleich noch mal genauer an hier ist er erstmal nur die funktions definition also diese drei features definieren wir wir haben hier eine liste an parametern die wir speziell für die verschiedenen features ausgewählt haben und an eine funktion mit der wir alle feature extrahieren und als ein feature vector zurückgeben also das was diese funktion ausgibt ist das was die support vector maschine später als trainingsdaten bekommt zusätzlich mit dem label ist ein fahrzeug oder es kein fahrzeug wie sieht das denn aus hier die funktion zeigt uns einfach mal ein feature vector er hat 5568 einträge und sieht so aus erst mal nicht so spannend und wir können damit nichts anfangen also wir müssen uns die feature irgendwie anders anschauen 5.500 ist eine große zahl das heißt da braucht er auch ein bisschen um das zu berechnen hier vorne jetzt die methode um die support weckte maschine zu trainieren hier vorne fühlen wir sie aus das dauert ist etwa zwei minuten und in der zeit gucken wir mal was diese funktion überhaupt macht also hier ist der funktions aufruf wir geben da unsere unser vector mit dem fahrzeug bildern und den nicht fahrzeug bildern rein wir nehmen eine lineare support wettermaschine und wir müssen auch noch die daten skalieren und wir übergeben auch unsere definierten parameter soll hier oben sieht das dann so aus dass wir die fahrzeuge und nicht fahrzeug als positiv klasse und negativ klasse aufnehmen dann gehen wir diese gesamte liste durch und extrahieren die features für jedes dieser trainings bilder also aus jedem bild machen wir diesen 5568 einträge vector dann müssen wir das noch skalieren damit nicht in einer dimension der abstand deutlich größer ist als in einer anderen dimension die also alles normiert haben dann erstellen wir die label weil momentan waren unsere daten nur dadurch gelabelt das in unterschiedlichen ordnern waren hier stellen wir jetzt einfach die einzelnen für die positiv klasse und die nullen für die negativ klasse verbinden diese beiden sektoren und können dann die trainingsdaten aufteilen und zwar wollen wir 20 prozent unserer geregelten daten für das testen nehmen und den rest also 80 prozent fürs training wir bekommen dann also diese vier pakete die 80 prozent zum trainieren mit den entsprechenden labeln und die 20 prozent zum testen mit dem 20 prozent labeln zum testen und dann kommt eigentlich nur diese einfache diese einfache aufruf wo wir der support weg der maschine sagen hier sind unsere trainingsdaten lernt das und hier wird dann geprüft wie hier nehmen wir dann die trainings start die testdaten und fragen wie genau bist du gerade erst hier mittlerweile durchgegangen das finden also dieser aufruf selbst hat drei sekunden oder vier sekunden gedauert und 99,4 prozent der testdaten wurden richtig klassifiziert ich habe eben gesagt das dauert ungefähr zwei minuten warum steht jetzt nur vier sekunden der großteil der zeit ging dafür drauf die ganzen features aus diesen bildern zu extrahieren jetzt gucken wir uns mal an was diese feature überhaupt bedeuten hier die methode zeigt uns einfach zu verlegen bilder mit den entsprechenden features hier haben wir die hawks die history as of orion tätig radiance einmal für ein fahrzeug und einmal für ein nicht fahrzeug bild und ihr seht die vorne diese straßenmarkierungen die werden hier zum beispiel sehr markant wieder aufgegriffen um ein fahrzeug ist es so dass es irgendwie immer so kannten um das fahrzeug herum gibt wir schauen uns mal zwei andere an hier sind fahrzeug von der seite sieht natürlich ein bisschen anders aus aber wir haben wieder bei der straßenmarkierung sehr gerade linien noch mal was anderes hier wieder die die form um die kante um das fahrzeug wo eben diese sehr markante kannte ist das nächste feature dass wir hatten waren die histogramm dabei werden die verschiedenen farbwerte des rgb bildes genommen und getrocknet oder hier gepostet hier sehen wir also den rotanteil den grünen anteil und den blauanteil über die helligkeit und da können wir auch mal wieder verschiedene bilder anschauen also das wieder auch ein teil unseres 5568 einträge vector das letzte feature war das special binning bei dem das bild eigentlich nur verkleinert wird hier wird es reduziert auf 16 mal 16 pixel das ist auch das was wir später als parameter führte diese feature berechnung nehmen bei dem fahrzeug das ist bei 32 mal 32 noch eigentlich gut erkennbar als fahrzeug bei dem 16 16 wird schon sehr kritisch mal schauen wie es bei einem anderen aussieht da sehen wir dass das bild ohne fahrzeug eher so ein komplettes blanc wird weil die falsche box einst wollte ich nach so hier nochmal eins das also jetzt mal die die features visualisiert so dass wir auch irgendwie verstehen was geben wir jetzt gerade dieser support wettermaschine zum trainieren als nächstes müssen wir aber jetzt haben wir unseren classify eigentlich fertig die support vector wird maschine steht jetzt müssen wir überlegen mit welchen daten füttern wir die wir können nicht einfach das komplette video oder reinschmeißen wir können nicht einfach ein frame von dem video oder reinschmeißen sondern wir müssen vorher diesen frame noch vor verarbeiten hier nehmen wir in sliding window ansatz der das bild durch geht von einer staat bis zu einer position und teilbilder der größe 64 x 64 pixel bestimmt 64 x 64 pixel ist auch die größe unserer trainingsdaten das heißt wir bestimmen oder wir produzieren teilbilder die genau dem entsprechen mit dem wir auch trainiert haben und während dieses leid im winter über das bild geht haben wir den overland hier von 50 prozent können wir später auch noch anders parametrisieren aber das heißt dass sich diese quadrate die wir auf diesem bild suchen oder definieren immer auch teilweise überlappen und all diese vierecke werden dann als eine liste zurückgegeben und können dann von unserem plätze feiern genutzt werden da hier wieder etwas länger dauert lasse ich ja schon mal ausführen und geht es mal durch was hier passiert ich will das noch nicht direkt mit dem video testen deshalb gibt es hier sechs test bilder die ich mir jetzt erstmal aus dem ordner lade also sechs bilder sind in diesem ordner test image ist die ich jetzt lade und jetzt möchte ich innerhalb dieser bilder oder auf diesen bildern möchte ich die fahrzeuge erkennen das heißt ich habe hier meine feind kam methode guckt dann hier vorne alles klar ich habe das bild ich habe den trainierten class i fire die support weg der maschine ich habe den gleichen skull ihrer wie eben um eben diesen feature vector wieder zu normalisieren so dass alle features gleich gewichtet sind die parameter und hier übergebe ich dass ich bei der höhe des bildes er ist bald 360 anfangen der ganze himmel der interessiert mich nicht da werde ich keine fahrzeuge finden das heißt ich fange erst von oben bei 360 pixeln an und höre da mal 700 auf meine kleinen bilder wieder mit 64 mal finden 60 und der overlack den will ich hier auf 85 prozent also dass die fenster sich sehr stark überlappen dann lasse ich dadurch laufen und für jedes bild das sich dann oder für jedes dieser windows die ich über dieses bild produziert habe ich dann den klassiker was glaubst du was hier ist glaubst du jetzt ein fahrzeug oder glaubst du dass kein fahrzeug wenn die support vector maschine sagt hier sind fahrzeug merke ich mir dieses quadrat und stelle das quadrat anschließend auf dem bild da jetzt müsste er dann auch langsam fertig sein ja also training kann lange dauern wenn wir dann die die ganzen bilder die ganzen teilbilder haben die qualis klassifiziert sind sehen wir das ist häufig so gruppen sind wo ganz viele dieser vierecke übereinander sind und wir wollen dass sie es noch zusammenfügen zu einem einzelnen also von all den bildern von all den kleinen vierten die wir aus diesem bild extrahiert haben wurden in den blauen fahrzeug erkannt hier vorne zum beispiel eine fee klassifizierung hier bei diesem bild auch dort wird einfach die fahrbahn als fahrzeug erkannt und hier auch ein teil von diesem schatten der irgendwie als fahrzeug erkannt wir können uns auch mal das sliding window visualisieren das ist unser original bild wenn wir da hat der sliding windows drauf legen sieht es so aus also in diesem ganzen bereich werden diese kleinen teilbilder extrahiert und damit man das besser sieht hier einfach mal 100 zufällig ausgewählte teilbilder also jedes von diesen wird im klassifizierter gegeben und er wird gefragt ist hier vorne gerade ein fahrzeug oder nicht und wie gesagt das sind jetzt nur 100 zufällig ausgewählte eigentlich sieht es so aus also sehr sehr viele quadrate mit einem sehr großen overlack jetzt wieder etwas das bis hin zum ausführen braucht wir haben ja diese ganzen vier erklärt und die wollen wir kombinieren und das machen wir indem wir eine heatmap aufbauen wir ziehen also für jeden pixel in dem bild in wie vielen vier ecken er als fahrzeug klassifiziert wurde dadurch kriegen dann wenn ich diese heatmap und können dann überlegen wie oft wollen wir denn dass ein pixel als fahrzeug klassifiziert wird der mit wir wirklich glauben dass es ein fahrzeug ist ich werde noch mal hoch gehen dann sehen wir hier vorne das ist schwer zu zählen aber das sind mindestens zehn vierecke die hier ein fahrzeug klassifizieren während hier vorne nur ein einziges viereck eine falsche klassifikation macht wenn wir also alle bereiche wo wir nur 123 klassifikation für ein fahrzeug wegschmeißen kommen wir vielleicht schon zu einem deutlich besseren ergebnis wo diese ausreißer dann ausgelöscht sind so also wir sagen bei der heat map es muss ein bestimmter schwellenwert überschritten werden und nur wenn der pixel so und so oft als fahrzeug klassifiziert wird behalten wir das wirklich und dann kann um den bereich der dann immer noch in der heat map ist eine neue box gezogen werden um das fahrzeug da darzustellen ihr habt eben gesehen dass bei den styling windows eigentlich fast alles blau war und das ist ein sehr große nova lab gibt das heißt wenn nicht ein kleines bild daraus extrahiert dann die nächsten schritt machen und die features aus diesem bild extra hier habe ich relativ hohen rechenaufwand wenn ich das für jedes vier einzeln mache dadurch dass es ein overlay gibt es ist besser den weg anders herum zu drehen ich nehme erst das gesamte bild und berechnet dort die histogramm story and grey gardens und wenn ich dann die sliding – darüber ziehen muss ich nicht für die bereiche die in mehreren fenstern sind jedes mal die hawks neu berechnen sondern habe sie einmal für alle berechnet und kann dadurch viel effizienter die features extrahieren hier ist erstmal das was aus der heat map kam oder was durch die hitze habe jetzt erstellt wurde wir sehen dass wir nur noch pro fahrzeug eine box haben hier vorne noch ein kleiner ausreißer das noch eine mini box und das fahrzeug nur an einer kleinen stelle klassifiziert vielleicht wer hierfür niedriger raschen well wert besser gewesen und wir sehen dass die kleine fehler die wir teilweise auf der fahrbahn markiert tag weg hatten aber hier der fehler den wir im schatten haben immer noch da ist nochmal zu den zu der feature berechnung wir können also die performance verbessern wenn wir nicht für diese ganzen bereich die sich überlappen jedes mal neue feature berechnen sondern wenn wir einmal die hawks für das gesamte bild berechnen und dann einfach diese bereiche extrahieren das ganze geht dann deutlich schneller hier die funktions definition dafür es bleibt eigentlich alles gleich nur dass wir das umdrehen und erste feature berechnen und dann ist auf kleine verschiedene bilder also das ist gerade schon einmal durchlaufen wir sehen hier die die bestimmung der der fahrzeuge wieder die ganzen baum in boxes und daraus müssen wir dann noch die heat maps dominieren also aus den vielen boxen wird wieder eine box pro fahrzeug und wenn wir uns erstmal die heat maps anschauen die dabei erstellt werden haben wir hier die heat map ohne hilfe holt das heißt hier ist es so dass alle pixel die einmal als fahrzeug klassifiziert werden heller dargestellt werden und auf der anderen seite haben wir den schwellwert angewandt so dass hier ein pixel der zu- oder ein bereich der nur einmal klassifiziert wird komplett gelöscht wird weil eben angenommen wird dadurch dass es nur so selten klassifiziert wurde es sich um eine fabrikation handelt und genau um diese heat maps werden dann eben diese boxen gelegt und wir bekommen eine relativ klare abschätzung von den fahrzeugen oder klassifikation der fahrzeuge jetzt wollen wir das ganze in dem video anwenden das heißt wir müssen erst mal das video einlesen und dann unsere pipeline durchspielen und zwar müssen wir erst die die boxen die sliding windows auf diesem video frame finden wo der klassifizierung sagt hier befindet sich ein fahrzeug wenn wir die dann haben können wir daraus wieder eine heatmap erstellen und da wir jetzt in einem video sind können wir auch noch die heat maps aus dem vorherigen schritt nutzen auf addieren oder zumindest mit einem gewissen anteil wieder in unsere aktuelle heatmap agieren so dass wir da wo vor ein fahrzeug qualität klassifiziert wurde wieder wissen hier ist wahrscheinlich wieder 1 und so können wir dann wieder die box um die erstellte heatmap legen und das video speichern oder den frame speichern ich dachte jetzt ausführe braucht er relativ lange eine halbe stunde für 50 sekunden und so lange wollen wir jetzt nicht warten deshalb hier jetzt mal das fertige video ist immer das vollbild also wir sehen hier das erste fahrzeug das ankommen werde relativ schön klassifiziert die box verfolgt das fahrzeug da war eine kleine fee klassifikation einem straßenschild langsam fährt das fahrzeug immer weg da war es einmal ganz verschwunden jetzt scheint zu weit weg zu sein dass der kolle klassifizierter ist noch erkennt neues fahrzeug kommt dran wir können jetzt nicht erkennen klopp ist ein großes fahrzeug ist oder zwei jetzt erst wieder wo es wirklich als zwei getrennte fahrzeuge darstellt hier eine kleine fee klassifikation auf der anderen straßenseite das weiße fahrzeug zu weit abgeschnitten als das es erkennt werden kann und dann kommt noch ein neues fahrzeug rein dass auch klassifiziert wird wir haben hier also in relativ wenigen schritten von dem video von dem wir nichts wussten im video bekommen indem uns gezeigt wird hier an dieser stelle ist ein fahrzeug und wenn wir jetzt überlegen wie lief das ab das war relativ langsam also wenn ich 50 sekunden wenn ich 30 minuten braucht für den 50 sekunden video dann lässt sich das niemals irgendwie im fahrzeug anwenden wir hatten eine relativ gute genauigkeit die fahrzeuge wurden die meiste zeit klassifiziert es gab ein paar false positives es gab ein paar falls negativs und vor allem in zwei fahrzeugen die ich zusammen waren konnten wir nicht sagen sind zwei fahrzeuge das ist ein fahrzeug ist ein großes fahrzeug ein fahrzeug das ein anderes verdeckt also durch diese hieß es schwierig verschiedene fahrzeuge noch voneinander zu unterscheiden wir hätten keine klassifikation von fahrzeugen auf der anderen straßenseite weil wir dafür auch einfach nicht trainiert haben und dann können wir es noch fragen wie können wir das verbessern brauchen wir einfach mehr trainingsdaten hilft wahrscheinlich oder brauchen wir noch andere features müssen wir vielleicht die parameter bei den feature nennt features ändern bei der sliding window methode können wir auf jeden fall relativ leicht noch etwas verbessern wenn wir uns die sliding videos anschauen sehen wir dass sie alle alle die gleiche größe haben die fahrzeuge auf dem video haben teilweise aber unterschiedliche größen so hier vorne eins liegen auch hier vorne zeigt nur die fenster von dem fahrzeug was wir aber brauchen wer ein slider das deutlich größer ist und dieses gesamte fahrzeug abdeckt das müssen wir dann natürlich wieder in der größe auf diese 64 x 64 pixel um transformieren aber dadurch dass wir hier immer nur kleine teile von dem großen fahrzeug auf dem bild erkennen können ist die klassifikation schwieriger also beim slider gewinner können wir relativ leichte verbesserungen erzielen indem wir nicht nur 64 x 64 pixel bilder nehmen sondern auch zum beispiel 128 x 128 große fenster die wir dann reduzieren auf die 64 x 64 habt ihr zu der pipeline noch fragen aber wir können auch mal ganz kurz die schritte durchgehen wir brauchen die trainingsdaten extrahieren aus diesen trainingsdaten die features wir nutzen die gelernten features und support weg der maschine zu trainieren erstellen dann teil bilder von dem videostream klassifizieren diese bilder und kombinieren dann die klassifizierten pixel in einer heat map um die hitler legen wir dann wieder eine neue box und diese box zeigen wir dann auf dem video an und so gehen wir frame durch frame durch und nutzen die heat map aus dem vorherigen schritt wieder um in dem aktuellen schritt die wahrscheinlichkeit einer richtigen klassifikation zu erhöhen und damit sind wir dann also wenn da keine frage kommen sind wir am ende von der übung und bevor es ganz zu ende geht wie üblich noch die evaluation ich glaube das prinzip ist klar wir wollen feedback von euch und hier ist der code und dann hoffe ich dass ihr was aus der vorlesungen und übungen mitgenommen hat


Leave a Reply

Your email address will not be published. Required fields are marked *