Stefan gewinnt Code Competition von ZF!

Herzlichen Glückwunsch zu 500€ Förderung!

Stefan hat mit seiner Lösung unser Partnerunternehmen ZF Friedrichshafen AG überzeugt und schnappt sich den ersten Platz bei der Code Competition “Machine Learning”. Herzlichen Glückwunsch!
Im Interview erzählt er mehr über sich und seine Lösung.

IT-Talents: Hallo Stefan, herzlichen Glückwunsch zu Deinem ersten Platz bei der Code Competition „Machine Learning“! Erzähl den anderen IT-Talenten doch kurz etwas über Dich.

Stefan: Hallo! Mein Name ist Stefan, ich bin 26 Jahre alt und studiere gerade im Master Elektro- und Informationstechnik an der TU Darmstadt. Vor gut zwei Jahren bin ich zum ersten Mal in Kontakt mit Machine Learning gekommen und bin seitdem sehr fasziniert davon und arbeite daher gerne an verschiedenen Projekten in dem Bereich.

IT-Talents: Was hat Dich motiviert, an der Competition teilzunehmen und wie bist Du auf den Wettbewerb aufmerksam geworden?

Stefan: Ich hatte mich über ZF als potentiellen zukünftigen Arbeitgeber informiert und bin dann auf der Internetseite über die Code Competition gestolpert. Das Thema hat mich natürlich gleich sehr angesprochen und da ich gerne an solchen Wettbewerben wie auch Hackathons teilnehme, habe ich mich gleich ins Coden gestürzt.

IT-Talents: Wie bist Du an die Lösung der Aufgabenstellung herangegangen?

Stefan: Ich denke einer der wichtigsten Aspekte im Bereich Machine Learning ist die vorhergehende ausgiebige Datenanalyse und -vorverarbeitung. Daher habe ich mir zunächst die einzelnen Features und deren Werte genau angeschaut (das geht sehr komfortabel mit der „pandas“ Library). Dabei ist dann aufgefallen, dass einige Features erst zu sinnvollen numerischen Werten vorverarbeitet werden müssen um in ein Machine Learning Model geladen werden zu können. Dabei ist dann auch aufgefallen, dass die Klassen sehr schlecht balanciert waren (viel mehr leichte als schwere Unfälle). Dies konnte dann beim Training des neuronalen Netzes gleich mit einer Gewichtung mitberücksichtigt werden. Die Wahl des neuronalen Netzes war dann eigentlich nur noch ein kleiner Teil der Arbeit. Ein relativ kleines „Standard“ Netz hat seinen Zweck gut erfüllt für die Aufgabe. Anschließend ist es aber auch noch wichtig die erzielten Ergebnisse ausgiebig zu evaluieren und die Schwachstellen des Algorithmus zu kennen.

IT-Talents: Du hast Dich für eine Lösung der Aufgabenstellung mittels Python und IPython Notebook entschieden. Wieso hast Du Dich für diesen Technologie-Stack entschieden?

Stefan: Python ist eine sehr umgängliche Sprache und gut geeignet um schnell etwas zu entwickeln. Außerdem ist es auch die Sprache der Wahl für fast alle populären Deep Learning Frameworks (z.B. Pytorch, Tensorflow etc.). IPython Notebooks sind super um seinen Code zu dokumentieren und visualisieren. Das ist besonders nützlich, wenn man seine Ergebnisse mit anderen teilen möchte oder zusammen an etwas arbeitet. Ein weiterer Vorteil ist, dass sich IPython Notebooks auch gut eignen um Code auf einem Cloud Rechner (z.B. AWS) zu entwickeln, was oft im Deep Learning Bereich aufgrund der hohen Rechenleistungsanforderungen gemacht wird.

IT-Talents: Welche Probleme sind bei der Entwicklung der Software aufgekommen? Wie lange hat die Entwicklung gedauert?

Stefan: Die meiste Zeit habe ich bestimmt dafür gebraucht um die Daten so vorzuverarbeiten, dass sie als numerische „numpy“ Arrays vorliegen um dann vom neuronalen Netz genutzt werden zu können. Die größte Herausforderung war sicherlich, dass die verschiedenen Unfallschwere-Klassen so unterschiedlich oft vorkommen (Class Imbalance). Insgesamt habe ich ca. einen Tag an der Entwicklung gesessen. Ich muss aber dazu sagen, dass ich auch schon relativ viel Erfahrung in dem Bereich mitgebracht und bereits an ähnlichen Probleme gearbeitet habe. Sonst hätte es sicherlich etwas länger gedauert 🙂

IT-Talents: Und was hast Du durch die Entwicklung gelernt?

Stefan: Ich habe vor allem gelernt, dass es immer eine gute Idee ist, verschiedene Evaluierungsmethoden zu verwenden (Precision, Recall, RoC Curves, Confusion Matrix etc.), da durch eine einzelne Metrik meistens nicht das ganze Problem abgebildet werden kann. So fällt z.B. die oben genannte Klassen Imbalance gar nicht auf, wenn man nur die gemittelte Genauigkeit über alle Testpunkte berechnet. Außerdem fand ich es interessant, dass die Hinzunahme von Klassengewichten sehr einfach in Keras (und bestimmt auch anderen DL Frameworks) implementiert werden kann um so dieses Problem zu beheben. Das heißt, dass während des Trainings die Datenpunkte, die zur unterrepräsentierten Klasse gehören, stärker gewichtet werden.

IT-Talents: Was würdest Du Dir thematisch gerne einmal als Code Competition wünschen?

Stefan: Vielleicht mal etwas aus dem Bereich Cyber Security oder Datenschutz. Davon habe ich zwar selbst nicht viel Ahnung, aber ich finde die Themen sehr interessant und vor allem auch echt wichtig in der heutigen Zeit.

IT-Talents: Zu guter Letzt: Wie findest Du die IT-Talents.de Plattform, welche Verbesserungsmöglichkeiten siehst Du?

Stefan: Ich finde es toll, dass sich unterschiedliche Unternehmen zusammen tun um gemeinsam IT-Fachkräfte zu fördern. Ich denke es gibt noch viel zu tun für die Zukunft und finde es schön, wenn Unternehmen auch mal miteinander arbeiten anstatt zu konkurrieren! Verbessern könnte man meiner Meinung nach noch die Sichtbarkeit der Plattform (z.B. im Social Media Bereich oder an Hochschulen) da ich sie auch nur zufällig entdeckt habe.

IT-Talents: Vielen Dank für Deine Teilnahme, das Interview und viel Spaß mit Deinem Gewinn 😉

Rückmeldungen