Schlagwort-Archive: Udacity

Der kleine Maschinenlerningenieur

Am 22. Januar habe ich mit dem Abschlussprojekt für meine „Machine Learning Engineer Nanodegree“-Fortbildung bei Udacity begonnen. Am Dienstag habe ich abgegeben, und am Mittwoch hatte ich bereits die Bestätigung: Passt! Viel Rückmeldung gab es diesmal leider nicht. Für mich sah es so aus, als wäre die begutachtende Person nur mal drüber geflogen. Gerade da ich von vorne bis hinten beim Abschlussprojekt alles selbst gemacht habe, hätte ich mich über Verbesserungsvorschläge und Hinweise auf Wissenslücken jenseits meiner eigenen Erkenntnis gefreut. Schade.

Lernkurven aus einem Projekt zum Maschinenlernen

Eine Visualisierung einiger meiner Ergebnisse

Ich habe nun nachträglich noch ein wenig gefeilt und einen Report als Mischung meiner schriftlichen Ausarbeitung und meines Quelltextes erstellt. Letzterer wäre definitiv noch überarbeitungsbedürftig, aber für Udacity scheint es gereicht zu haben. Falls ihr reinschauen wollt, findet ihr den Report zum Herunterladen und alle weiteren Inhalte wie bereits von Anfang an auf github.

Weiter geht’s übrigens direkt mit dem Kurs „Maschinelles Lernen“ vom Hasso-Plattner-Institut. Und nun habe ich auch wieder Zeit für H5P …

Mein Abschlussprojekt zum Maschinenlernen … Los geht’s!

Nachdem ich Ende letzten Jahres zwei Wochen Urlaub dafür genutzt hatte, um Zeit für die „Machine Learning Engineer“-Fortbildung bei Udacity zu investieren, ging es danach deutlich langsamer voran. Es war schwieriger als gedacht, ein Thema für mein Abschlussprojekt zu finden. Ich hatte ja auch hier etwas dazu geschrieben. Datensätze gibt es im Netz genug, aber ich wollte an etwas arbeiten, was auch jemand gebrauchen könnte.

Tatsächlich hätte ich für OpenSNP an einem Modell arbeiten können, um anhand von Genomdaten die Herkunft einer Person zu bestimmen, aber dafür kenne ich mich dann mit Biologie doch zu wenig aus. Danach hatte ich Kontakt zu jemandem, der die Problemlösungskompetenz von Studierenden untersucht und auch zahlreiche Daten dazu gesammelt hatte. Seinen Artikel habe ich dank Sci-Hub … per Zufall gefunden. Die Daten lagen allerdings unter Verschluss. Closed Science. Ich sollte erst einmal meinen Lebenslauf schicken, vermutlich um zu prüfen, ob da ein böser Konkurrenzforscher seine Arbeit „stehlen“ wolle. Habe ich verschickt, aber danach nie wieder etwas gehört und auch nicht nachgebohrt. So ein Umfeld meide ich doch lieber … Was soll’s.

Analysesoftware auf einem Laptop

Da der Gebührenzähler unerbittlich tickt, habe ich mich dazu entschlossen, doch einfach ein Wald-und-Wiesen-Thema zu nehmen. Ich habe ein paar Datensätze zu Videospielen gefunden und werde versuchen, damit etwas auf die Beine zu stellen. Vielleicht ist es möglich, darauf aufbauend ein Model zu erstellen, mit dem man anhand von Kritiker- und Kundenbewertungen und ein paar anderen Daten die Verkaufszahlen vorhersagen kann. Der von mir eingereichte Vorschlag ist jedenfalls gerade angenommen worden, und ich kann nun loslegen.

Als Nebenprodukt ist außerdem noch eine weitere Projektidee für H5P (und darüber hinaus) entstanden, die allerdings den Rahmen eines Abschlussprojektes sprengen würde. Werde ich im Nachgang angehen. Offen. Mehr dazu gibt es in Kürze.

Braucht ihr Unterstützung? Gebt her eure Daten!

Arbeitet ihr mit Daten und braucht kostenlose Arbeitskraft? Dann solltet ihr weiterlesen!

Vor nicht ganz drei Wochen habe ich bei Udacity mit dem Nanodegree-Programm zum „Machine Learning Engineer“ begonnen. Gestern Abend zeigte mir die App dann bereits das Erreichen der 95-Prozent-Marke an. Tatsächlich muss ich nur noch ein Projekt bearbeiten, das ein Thema abschließt. Danach steht schon das finale Projekt an.

Fortschrittsbalken mit 95 %Das tolle an diesem Abschlussprojekt: Ich kann mir Problem und Fragestellung selbst wählen und dann bearbeiten. Das wird das Analysieren passender Daten umfassen, um daraufhin Software zu schreiben, mit deren Hilfe Erkenntnisse gewonnen werden können. Außerdem müssen die Gedankengänge dahinter samt der Ergebnisse in einem Bericht festgehalten werden. Der soll rund 10-15 Seiten umfassen. Ist also im Prinzip so etwas wie eine Seminararbeit an einer Hochschule. Damit man sich vorstellen kann, wie so etwas aussieht, stellt Udacity auch Beispiele bereit.

Ich habe schon ein paar Ideen, was ich machen könnte. Die haben den ein oder anderen Pferdefuß. Manchmal fehlt mir das Wissen zu einem bestimmten Fachgebiet, aus dem die Daten kommen. Manchmal habe ich ethische Bedenken, weil die Datensätze auch in anonymisierter Form mit ein bisschen Aufwand Rückschlüsse auf Einzelpersonen zuließen. Das ist durchaus relevant, weil ich natürlich alles offen erarbeiten und bereitstellen möchte.

Ich hätte da ein Angebot…

Falls ihr mit Daten hantiert und vielleicht gerade nicht die Zeit oder Kenntnisse habt, mit denen weiter zu arbeiten, hätte ich ein Angebot für euch. Ich könnte euch kostenlose Arbeitskraft dafür schenken. Bedingung wäre halt, dass ich neben meinem Bericht und meinem Quelltext auch die Daten offen zur Verfügung stellen dürfte. Das ermöglicht es anderen, meine Ergebnisse bei Bedarf nachzuvollziehen und zu überprüfen. Schließt diverse Dinge vermutlich aus, aber das ist dann halt so.

Falls ihr mehr dazu wissen möchtet oder eine Idee habt, hinterlasst doch einfach einen Kommentar oder meldet euch direkt bei mir. Lasst mich aber nicht zu lange warten. Ich möchte bald loslegen 😀

Halbzeit beim Machine Learning Engineer Nanodegree-Programm

Huzzah, Die Hälfte habe ich hinter mir beim Machine Learning Engineer Nanodegree-Programm von Udacity. Es ist wohl an der Zeit, meine Eindrücke und Erfahrungen mal zu sortieren.

Schon die Hälfte?

Wie ich bereits einmal beschrieben habe, soll das Programm etwa 420 Stunden umfassen. Und wer aufgepasst hat, wird auch mitbekommen haben, dass ich seit Freitag vorvergangener Woche daran sitze. Wofür ist Urlaub sonst da? 😉 Und nun schon Halbzeit? Ja, weil mich das Programm nur nicht ganz 50 Stunden dafür in Beschlag genommen hat. Das einfach auf 100 Stunden hochzurechnen, wage ich zwar noch nicht, aber ich werde wohl locker unter der 420 bleiben. Woran liegt das? An zweierlei Dingen, denke ich.

zu 50 % fertig bei Udacity

Zum einen bringe ich durchaus schon Hintergrundwissen aus der IT-Welt mit. Programmieren kann ich halbwegs anständig, und ein wenig beschäftigt habe ich mich mit dem Thema Maschinenlernen ja ebenfalls schon. Zum anderen bleibt das Nanodegree-Programm oft an der Oberfläche oder setzt nur das voraus, was man in Deutschland in der gymnasialen Oberstufe oder einem frühen Semester eines verwandten Hochschulstudiums mitbekommt: ein bisschen triviale lineare Algebra, ein bisschen Statistik-Grundlagen, und vielleicht schon mal hier oder da ein paar Zeilen Quelltext gebaut.

Wie isses denn so?

Ob man das gut oder schlecht findet, kommt ganz darauf an. Wer die Tiefe eines Hochschulstudiums erwartet, wird vermutlich enttäuscht sein. Wer sich praktisch weiterbilden möchte, ohne ganz auf Theorie zu verzichten, findet das Angebot hingegen vermutlich großartig. Man dürfte nach dem Abschluss kaum ein fertiger „Machine Learning Engineer“ sein, aber zumindest mit eigenen Projekten ein wenig besser starten können.

Was ich auf jeden Fall sehr schätze, sind die Projekte. Jedes Kapitel schließt mit einem solchen ab, in dem Inhalte tatsächlich angewendet werden müssen. Nicht nur muss das Gelernte in Quelltext verwandelt werden — leider meist nur durch das Einfügen einiger weniger Zeilen in ein vorgefertigtes Programm — es gilt auch seine Entscheidungen zu erklären und zu begründen. Ich habe das sehr sorgfältig gemacht und war durchaus einige Stunden damit beschäftigt. Okay, und wie checken die das? Clever!

Udacity hat ein Uber-ähnliches System geschaffen. Statt Lehrende zur Durchsicht der eingereichten Projekte fest anzustellen, wird bloß die Infrastruktur bereitgestellt. Es sieht für mich nach einer Plattform aus, auf der die Projekte eingehen und jede/r mit passenden Vorkenntnissen die Begutachtung übernehmen kann. Dafür gibt es auch etwas Geld. Ich tippe zudem, dass auf der Plattform zu jeder Aufgabe innerhalb des Projektes einige Textbausteine und Beispiele bereitstehen, die man ja nach Antwort verwenden kann. Funktioniert bestens. Die Rückmeldungen kommen wirklich schnell. Bisher habe ich noch nicht länger als zwei Stunden gewartet. Die Rückmeldungen finde ich auch wirklich hilfreich. Wären sie das nicht, könnte ich das steuern. Ich darf nämlich auch die Qualität des Feedbacks bewerten. Wenn es doch etwas Vergleichbares an Hochschulen gäbe…

Und sonst?

Gewöhnungsbedürftig finde ich die extrem kurze Laufzeit der Videos. Da reichen sich manchmal zig 30-Sekunden-Videos und trivialste Quizfragen die Klinke in die Hand. Ist das vielleicht eine kulturelle Sache? In den USA wird ja auch das Fernsehprogramm wohl alle Nase lang von kurze Werbeeinblendungen unterbrochen, was jemanden aus Deutschland wohl auch kirre macht. Ein paar andere Dinge würde ich auch anders machen, aber alles in Allem finde ich das dann doch eine runde Sache.

So. Muss weitermachen. Ich freue mich nämlich schon auf das Abschlussprojekt, dessen Thema und Fragestellung ich mir völlig frei aussuchen kann.

„Apparently it started learning at a geometric rate until it became self aware.“

Ich finde, es ist mal wieder an der Zeit, mich auch formal etwas weiterzubilden – und zwar durchweg online. Eigentlich sollte man sich dazu auch mal Dinge suchen, die einem eher nicht liegen. Nach einigem Überlegen habe ich das allerdings hinten angestellt und bin bei etwas gelandet, was mir nicht so ganz fremd ist. Im vergangenen Jahr habe ich den Onlinekurs Machine Learning auf Coursera absolviert und setze nun noch einen oben drauf: Ich belege in Kürze das Nanodegree-Programm Machine Learning Engineer auf Udacity.

Originalfoto (von mir beschnitten): Skynet von Tom Bullock (CC BY 2.0)

Originalfoto (von mir beschnitten): Skynet von Tom Bullock (CC BY 2.0)

Zum einem mag ich das Thema Maschinenlernen, zum anderen ist das gerade gefühlt der heißeste Scheiß in der IT-Welt überhaupt. Damit kann man Skynet bauen! Oder J.A.R.V.I.S.! Aber auch ohne Flachs: Ich glaube, das Feld ist wirklich zukunftsträchtig. Als Deutschem winkt mir zwar keine Neuer-Job-oder-Geld-zurück-Garantie wie Leuten aus den USA, aber das ist gerade auch nicht mein Ziel 😉 Immerhin bekomme ich auch in Good Old Germany die Hälfte der Gebühren von 200 € pro Monat erstattet, sollte ich innerhalb eines Jahres fertig werden.

Angesetzt ist das Programm mit 420 Stunden – oder 14 ECTS, falls jemand mit dem hiesigen Hochschulsystem vergleichen möchte. Wenn ich das innerhalb eines Jahres durchziehen möchte und noch einen Sicherheitspuffer einbaue, sollte ich etwa 10 Stunden pro Woche einplanen. Das ist neben meinem Job durchaus eine kleine Herausforderung, wenn ich weiterhin an H5P schrauben möchte, endlich neue Videos für YouTube produzieren will – und mir vielleicht auch endlich wieder etwas Bewegung gönne

In den nächsten Tagen werde mir daher ein paar Gedanken machen, wie ich mich organisiere. Vermutlich werde ich mir das Curriculum vorknöpfen und in Anlehnung an’s agile Projektmanagement mit 2-Wochen-Sprints arbeiten, ein öffentliches Kanban-Board und öffentliche Burn-Down-Charts pflegen, github mit Quelltext befüllen, usw. Wir werden sehen, was nachher tatsächlich davon passiert 😉 Warum schreibe ich das hier? Weil mir etwas soziale Kontrolle sicher auch gut tut. Wenn ihr also ab und zu nachhaken wollt: gerne!