Gestern war ich auf dem PyData Meetup in Hamburg bei Grunar + Jahr am Baumwall.
Ich werde her keine vollumfängliche Beschreibung, sondern nur jeweils das berichten, was ich am spannensten fand.
Es gab drei Vorträge:
1. Irina Vidal Migallón: Poking holes in your deep learning vision model.
Irina stellte Herausforderunge bei der Entwicklung von Bilderkennungsverfahren vor. Es ging dabei um Robustheit, die sie durch die vier Begriffe Evaluaton, Debugging, Interpretability und Adversarial* umriss. Irina arbeitete bereits im Bereich Medizin und Mobilität und wendete dort Bilderkennung an. In der Pause unterhielten wir uns u.a. über Ansätze “unbekannte” in Klassifikationen zu erkennen. Sie schlug Siemese Networks vor, die ich auch schon einmal ins Auge gefasst hatte – es ist aber immer gut das noch einmal von jemanden bestätigt zu bekommen 🙂
2. Matti Lyra: Research into production: automating travel bookings using current NLP research.
Matti erzählte über NLP zur Detektierung von Hotelbuchungen aus E-Mails. Ich fand den Vortrag technisch sehr spannend! Es ging darum aus E-Mails anfragen für Hotels zu extrahieren. Für mich nicht so relevant – da ich lieber ein Formular verwende, dass für mich gleichzeitig wie eine Checkliste fungiert und für mich so sicher stellt, dass ich nichts wichtiges vergessen habe. Für einen vielreisenden Businessman aber vielleicht genau das richtige!
Christopher Werner: Prediction of Status Changes in Software Tests.
Auch ein spannender Vortrag. Technisch betrachtet. Es ging darum zu erkennen, ob be einen Commit der Status eines Tests sich ändert. Hier war allerdings der Use Case für mich nicht wirklich nachvollziehbar. Problem des Kunden war: die Tests brauchen 1,5 Tage bis sie durchlaufen. Fair enough. Aber warum dann nicht die Anwendung in Services mit jeweils kleineren Testsuits unterteilen? Und wenn das keine Option ist: warum nicht an Teilen des Codes entwicklen und nur die dafür relevanten Suites ausführen? Immer noch sicherer als die Endgenauigkeit von circa 80% des vorgestellten Modells: denn ein mit 20%iger Wahrscheinlichkeit fehlerhaftes Update würde ich nicht deployen wollen…
Key Takeaways waren für mich:
- automatisiere deine Workflow so gut wie möglich
- Evaluiere und visualisiere dein Training (z.B. mit Tensorboard) und die Modellperformance
- verwende für die Modell-Validierung das Gerät, die Umgebung und Kennzahlen (z.B. precision oder recall), die später beim Deployment verwendet werden und für den Anwendungsfall am relevantesten sind.
- schauen worauf dein Modell schaut: Stichwort “Deconvolution” – erkennt das Modell wirklich das, was wir wollen und vor allem aus erwarteten Gründen? Wird der Wolf im Bild erkannt oder nur der Schnee im Hintergrund? Ein Tool dafür ist Lime. Dazu gibt es dort ein cooles Video. Ein gutes Paper dazu ist: Why should I trust you?
- reichere deinen Datensatz neben augmentierung durch adverserial samples an (siehe Explaining and Harnessing Adversarial Examples von Goodfellow 2014). Es werden “zufällige Muster” deinen Trainingsbildern hinzugefügt, die für die Erkennung anderer Bildklassen optimiert sind. Dein Modell muss daher dann lernen, warauf es in den Trainingsbildern “wirklich ankommt”. Dafür hilft das Tool cleverhans.
- Ein für das Trainieren von Modellen für autonomes Fahren oft verwendeter Datensatz ist der City Scape Dataset.
- Ein spannedes System zum Ausprobieren der richtigen Hyperparameter ist hyperband. Hier arbeitet im Hintergrund ein Multi-armed bandit, um nach und nach für definierte Rampen von Hyperparametern die optimale Kombination zu finden.
Selbst sprechen:
Auch interessant fand ich:
- Wer will kann sich dort jederzeit mit einem Vortragsthema melden und bei einer neuen Veranstaltung sprechen.
- Auch kürzere Talks (bis 5min) sind am Ende in der Section “Lightning Talks” immer möglich.