Bücher sind ein guter Ansatz um sich in ein neues Thema einzuarbeiten und erste Schritte darin zu gehen. Aber sie sind auch passiv und fordern keine Ziele ein. Es fällt zu leicht, einfach ein Kapitel auszulassen oder nach der Hälfte zu denken, jetzt weiß ich alles und der Rest vom Buch ist eigentlich schon klar. Außerdem geben sie einem nicht die Möglichkeit, am Ende auch nachzuweisen, dass man sich überhaupt mit dem Thema beschäftigt hat. Deshalb habe ich nach etwas gesucht, was etwas motivierender und aussagekräftiger ist und bin dabei auf Coursera gestoßen.
Über Coursera
Coursera bietet reine Online-Kurse an, die von bekannten, meist amerikanischen Universitätsprofessoren getragen werden. Die Kurse bestehen aus Videos mit kleinen Multiple Choice Fragen, Tests und – je nach Kurs – Programmieraufgaben, die man einreichen muss und die automatisch auf Korrektheit geprüft werden. Die meisten Kurse können kostenlos belegt werden, allerdings erhält man nur gegen Bezahlung Zugang zu den Tests und bekommt am Ende ein Online-Zertifikat ausgestellt, das man z.B. für Bewerbungen nutzen kann. Das Konzept ist wirklich gut und einfach zu handhaben, das größte Problem dabei ist natürlich, dass man sehr leicht schummeln kann, wenn man das den will.
Der Machine Learning Kurs
Das habe ich natürlich nicht gemacht bei meinem ersten Kurs: Machine Learning.
Dieser Kurs wird von Andre Ng angeboten, einem sehr bekannten Namen im Data Science Bereich. Er hat bei Google gearbeitet und ist im Moment wohl bei Baidu und er ist einer der Gründer von Coursera.
Kursaufbau
Will man das Zertifikat für einen Kurs haben, kostet der Kurs 42 Dollar und ist auf 11 Wochen angelegt wobei jede Woche in etwa 4 Semesterwochenstunden an einer deutschen Universität entspricht. Jede Woche beinhaltet etwa 2 Stunden an Videomaterial, ein bis zwei Tests (Quiz) und meistens eine Programmieraufgabe. Die Tests bestehen jeweils aus fünf Fragen, von denen man zum Bestehen 4 richtig beantworten muss. Hat man sich die Video aufmerksam angeschaut, ist das allerdings kein Problem. Man kann die Tests beliebig oft wiederholen, allerdings nur drei mal innerhalb von acht Stunden.
Die Programmieraufgaben sind für das freie Mathematiktool Octave ausgelegt, können aber auch mit Matlab erstellt werden. R wird nicht unterstützt. Jede Aufgabe ist in Blöcke aufgeteilt die maximal 100 Punkte ergeben. Auch hier reichen 80 Prozent zum bestehen. Abgegeben werden diese Aufgabe mithilfe eines Scripts, dass die erstellten Lösungen direkt zu einem Coursera-Server pusht wo sie validiert werden. Das pushen ist beliebig oft möglich und die Ergebnisse werden zeitnah auch auf der Kursseite angezeigt.
Kursmaterial
Die Videos sind qualitativ nicht immer super (z.B. Tonprobleme) aber nie so schlecht, dass es echte Probleme macht. Inhaltlich ist der Kurs auch für Neulinge leicht verständlich, es werden selbst Basisbegriffe wie Matrix und Vektor erklärt. Professor Ng gibt sich sehr viel Mühe, Algorithmen wie Regression, neuronale Netze oder SVMs anschaulich zu erklären und die Mathematik dahinter Stück für Stück aufeinander aufzubauen. Das gelingt ihm auch sehr gut, er verzichtet – zum Glück – auf komplexe Beweise für darunterliegende Annahmen, die mehr in die Gebiete Analysis oder Algebra gehören.
Die Zwischenfragen in den Videos sind teilweise nützlich haben mich aber eher gestört, weil ich die Videos vom Sofa aus geschaut habe und für die Fragen immer extra aufstehen musste. Auf meinem Tablet hatte ich außerdem technische Probleme mit den Zwischenfragen.
In den Foren gibt es einiges an Errata zu den Folien, da sich doch einige Fehler eingeschlichen haben. Ich hatte allerdings nie das Gefühl, das etwas total daneben gewesen wäre.
Ein weiteres Feature bei Videos: mit höherer Geschwindigkeit ablaufen lassen. Ich habe es noch geschafft bei 125 mitzukommen, bei 200 Prozent war es mir dann doch zu schnell.
Die Tests ware meistens einfach zu bestehen, um 100 % zu erreichen musste ich einige mehrfach machen. Aber auch das ist mit Hilfe des Videomaterials leicht zu schaffen.
Die Programmieraufgaben fand ich insgesamt zu einfach. Hier hätte ich mir gewünscht etwas mehr gefordert zu werden. Natürlich habe ich mit meinem Hintergrund als Softwareentwickler hier Vorteile, aber durch einige der Aufgaben konnte man sich doch leicht durchmogeln ohne wirklich verstanden zu haben, was der Algorithmus eigentlich macht. Zu viele Schritte wurden einem dabei abgenommen. Ich gebe allerdings auch zu, die optionalen Aufgaben, die etwas tiefer gehen, nicht gemacht zu haben.
Insgesamt habe ich mir, um 100 % zu erreichen, nur bei einer Aufgabe ein wenig die Zähne ausgebissen (Dimensionsfehler bei Matrizen 🙁 ) und immer deutlich weniger als die angegebenen 3 Stunden benötigt.
Fazit
Zusammengerechnet hat mich der Kurs 3 – 4 Arbeitstage gekostet, in denen ich am Ende alle Aufgaben zu 100 % erledigt hatte. Die 11 Wochen sind also wirklich nicht nötig um ihn abzuschließen, wenn man motiviert ist und Zeit hat. Mir hat es wirklich Spaß gemacht und ich glaube jetzt einen guten Überblick über Algorithmen im Bereich Machine Learning zu haben und die wichtigsten Probleme, auf die man achten muss, zu verstehen. Besonders toll fand ich, dass die Programmieraufgaben reale Probleme lösen (z.B. Texterkennung) und es doch erstaunlich einfach war, wirklich brauchbare Ergebnisse zu erhalten. Eines der größten Probleme, die Erfassung und Aufbereitung von Testdaten, hat der Kurs dabei natürlich ausgeklammert. Dafür gibt es andere Kurse, die sich speziell mit diesem Thema befassen.
Ich kann den Kurs nur jedem empfehlen, der sich für das Thema interessiert. Er ist sein Geld und die nötige Zeit auf jeden Fall Wert und die leichte Einbindung in das eigene LinkedIn Profil ist ein nettes Schmankerl obendrauf. Hier könnt ihr euch mein Zertifikat ansehen:
https://www.coursera.org/account/accomplishments/certificate/D8ZBSYEYDW84
Ich überlege bereits, weitere Kurse zu belegen. Die Preise – auch für die größeren Spezialisierungen – finde ich sehr fair, auch wenn die Zertifikate am Ende keinerlei akademischen Wert aufweisen. Trotzdem denke ich, dass Coursera mir eine einfache Möglichkeit gibt, mein Interesse und mein Können im Data Science Bereich öffentlich zu machen und so auch für potentielle Arbeitgeber interessanter zu werden.