Programmierer, der in das Feld des maschinellen Lernens einbrechen möchte

19

Ich bin ein Softwareentwickler (meistens .NET und Python, ungefähr 5 Jahre Erfahrung). Was kann ich tun, um einen Job im Bereich des maschinellen Lernens zu finden, oder was kann ich in diesem Bereich anfangen? Ist ein Aufbaustudium eine harte Voraussetzung?

user10459
quelle
2
Diese Frage scheint eine Community-Wiki-Frage zu sein.
Andrew

Antworten:

16

Jedes Mal, wenn ich mit jemandem darüber gesprochen habe, mehr maschinelles Lernen zu lernen, verweisen sie mich auf die Elemente des statistischen Lernens von Hastie und Tibshirani . Dieses Buch hat das Glück, kostenlos online verfügbar zu sein (eine gedruckte Ausgabe hat eine gewisse Anziehungskraft, ist aber nicht erforderlich), und es ist eine wirklich großartige Einführung in das Thema. Ich habe noch nicht alles darin gelesen, aber ich habe viel davon gelesen und es hat mir wirklich geholfen, die Dinge besser zu verstehen.

Eine weitere Ressource, durch die ich mich gearbeitet habe, ist der Stanford Machine Learning- Kurs , der ebenfalls online und kostenlos ist. Andrew Ng leistet großartige Arbeit, um Sie durch die Dinge zu führen. Ich finde es besonders hilfreich, weil mein Hintergrund bei der Implementierung von Algorithmen schwach ist (ich bin ein Autodidakt) und es Ihnen zeigt, wie man Dinge in Octave implementiert (vorausgesetzt, R hat einen Großteil davon bereits in Paketen implementiert). Ich habe diese Notizen vor ein paar Monaten auch in Reddit-Statistiken gefunden. Ich überfliege sie also und schaue mir dann das Video an und reflektiere es mit meinen eigenen Notizen.

Mein Hintergrund liegt in der Statistik und ich habe einige Erfahrungen mit Konzepten des maschinellen Lernens gesammelt (ein guter Freund von mir ist wirklich begeistert), aber ich hatte immer das Gefühl, dass es mir an der Front des maschinellen Lernens mangelt, also habe ich versucht, alles zu lernen ein bisschen mehr alleine. Zum Glück gibt es eine Menge großartiger Ressourcen.

Was die Arbeit in der Industrie oder die Anforderungen an die Graduiertenschule angeht, bin ich nicht in der besten Position zu beraten (es stellte sich heraus, dass ich nie jemanden eingestellt habe), aber ich habe festgestellt, dass die Geschäftswelt Menschen wirklich mag, die Dinge können und können Ich bin ein bisschen weniger besorgt über Zettel, die besagen, dass man etwas tun kann.

Wenn ich Sie wäre, würde ich einen Teil meiner Freizeit damit verbringen, Vertrauen in meine maschinellen Lernkenntnisse zu gewinnen und die Dinge dann umzusetzen, wenn Sie Chancen sehen. Zugegeben, Ihre Position gibt Ihnen möglicherweise nicht die Gelegenheit, aber wenn Sie etwas umsetzen können, das Ihrem Unternehmen einen Mehrwert verleiht (während Sie Ihre anderen Verpflichtungen einhalten), kann ich mir nicht vorstellen, dass sich jemand über Sie aufregt. Das Schöne dabei ist, dass Sie, wenn Sie sich auf der Suche nach einem neuen Job befinden, über Ihre bereits gemachten Erfahrungen sprechen können, wenn Sie sich in diesem Job ein bisschen maschinellem Lernen widmen Grad.

Es gibt viele Ressourcen und es ist unglaublich interessant, ich wünsche Ihnen viel Glück!

Eine andere Idee: Sie könnten einen Blog über Ihren maschinellen Lernprozess starten und möglicherweise einige Projekte dokumentieren, an denen Sie in Ihrer Freizeit arbeiten. Ich habe dies mit einem Programmierprojekt gemacht und es ermöglicht Ihnen, über ein Projekt zu sprechen, an dem Sie in Ihrer Freizeit arbeiten (sieht für den Arbeitgeber gut aus), und Sie können sie auch auf den Blog (natürlich professionell) über Ihre Arbeit verweisen . Bis jetzt habe ich einige Leute zu meinem kleinen dorkigen Programmierblog geschickt (ich war in letzter Zeit ein bisschen faul beim Posten, aber ich habe es auf dem neuesten Stand gehalten, als ich mich für Jobs beworben habe) und alle, mit denen ich gesprochen habe, waren beeindruckt es.

asjohnson
quelle
(+1) toller Rat, vor allem in Bezug auf die ML-Klasse, aktuelle Kenntnisse / Arbeit> Zertifikat und den Blog.
Steffen
Ein professioneller Blog klingt nach einer guten Idee!
Rishi Dua
"Die Geschäftswelt scheint Menschen wirklich zu mögen, die Dinge können" - ja, und das gilt auch für Zettel :) Auf jeden Fall etwas, das man ihnen zeigen kann.
P.Windridge
Elemente des statistischen Lernens sind zwar umfassend, für diejenigen ohne einen Abschluss in Statistik jedoch schwierig. Ich würde stattdessen eine Einführung in das statistische Lernen mit (Applications in R) von denselben Autoren empfehlen. Es ist viel einfacher.
Abhishek Divekar
3

Zusätzlich zu all den anderen tollen Ratschlägen, die ich vorschlage, um sich durch die Teilnahme an Online-Wettbewerben die Hände schmutzig zu machen, finden Sie unter Websites Vorhersagemodellierungswettbewerbe

In Bezug auf Bücher usw. sollten Sie sich Folgendes ansehen:

In Bezug auf die Grade stimme ich @asjohnson zu, dass ein Zertifikat weniger wichtig ist, zumindest kann ich dies für den Bereich bestätigen, in dem ich arbeite (Data Mining / ML im Web). Für "akademischere" Bereiche wie die Bioinformatik könnte dies jedoch anders sein. In der Lage zu sein, zu zeigen, dass man a) enthusiastisch ist und b) tatsächliche Arbeit geleistet hat ("klug und Dinge erledigt"), indem man ein kleines Portfolio vorführt (z. B. Online-Wettbewerbe ...), sollte meiner Meinung nach effektiver sein.

steffen
quelle
(+1) Für Online-Wettbewerbe. Ich denke, wenn Sie etwas von Kaggle oder einem der anderen Wettbewerbe da draußen gemacht haben und Ihren Code und Ihren Prozess (ich denke Blog) an einem Ort verfolgt haben, an dem potenzielle Arbeitgeber es überprüfen könnten. Es würde viel Initiatives zeigen und ist in vielerlei Hinsicht einfacher, als sich eine eigene Frage des Interesses auszudenken. Wählen Sie einfach einen der Wettbewerbe aus, die Sie interessieren, dann haben Sie die Daten genau dort und einen Ort, an dem Sie Antworten einreichen und vergleichen können.
Asjohnson
2

Lesen Sie Tom Mitchells Maschinelles Lernen. Das ist ein gutes Buch, das Ihnen den Einstieg in das maschinelle Lernen erleichtern soll.

Eines ist zu beachten: Bitte beachten Sie, dass derselbe Algorithmus je nach Szenario und angegebenen Parametern und zufälliger Wahrscheinlichkeit manchmal eine bessere oder schlechtere Leistung erzielt. Lassen Sie sich nicht darauf ein , Parameter für Ihre Trainingsdaten zu optimieren - dies ist eine schlechte Anwendung des maschinellen Lernens.

Es gibt viele Techniken, die für bestimmte Anwendungen geeignet sind (aber nicht für alle Anwendungen), und es gibt viele Theorien, die Sie lesen können, um das maschinelle Lernen besser zu verstehen. Um im maschinellen Lernen gut zu sein, müssen Sie wissen, was Sie tun, da Sie sonst nicht sicher sein können, ob Ihre Ergebnisse gut verallgemeinert werden.

Viel Glück.

Andrew
quelle
0

Es gibt eine große Anzahl guter Bücher über maschinelles Lernen, darunter einige in der O'Reilly-Reihe, die Python verwenden. Das Durcharbeiten eines oder mehrerer davon könnte ein guter Ausgangspunkt sein.

Ich würde auch vorschlagen, sich mit Statistik vertraut zu machen - durch ein oder zwei Kurse oder Selbststudium ist das eigentlich egal. Der Grund dafür ist, dass es einige Bücher zum maschinellen Lernen gibt, die sich auf die Algorithmen und die Mechanik konzentrieren, aber die grundlegende Frage ignorieren, wie wahrscheinlich es ist, dass das, was Ihr Algorithmus Ihnen sagt, nur zufällig ist. Und das ist wichtig zu wissen.

Viel Glück und viel Spaß, es ist ein großartiges Feld.

PeterR
quelle
0

Sehr nette Frage. Im Vorfeld sollte klar sein, dass maschinelles Lernen sowohl eine Kunst als auch eine Wissenschaft ist und das akribische Bereinigen, Visualisieren und schließlich Erstellen von Modellen umfasst, die zu dem betreffenden Unternehmen passen, während es gleichzeitig skalierbar und verfolgbar bleibt. Was die Fähigkeiten angeht, ist es wichtiger als alles andere, sich auf die Wahrscheinlichkeit zu konzentrieren und zunächst einfache Methoden anzuwenden, bevor man sich komplexen Methoden zuwendet. Ich bevorzuge die R & Perl-Kombination, da Sie wissen, dass Python gut genug sein sollte. Wenn Sie an einem echten Job arbeiten, müssen Sie ausnahmslos Ihre eigenen Daten abrufen, sodass Kenntnisse in SQL (oder was auch immer von keinem anderen Unternehmen unterstützt wird) ein Muss sind.

Im ML-Bereich gibt es nichts Besseres als Erfahrung. Daher ist kaggle bei Sites wie Stackexchange auch eine großartige Möglichkeit, sich mit diesem Bereich auseinanderzusetzen. Viel Glück.

Brokkoli
quelle
0

Ich weiß, es ist eine alte Frage, aber angesichts der Tatsache, dass ich viele Programmierer gesehen habe, wissen sie immer noch nicht, wie sie anfangen sollen.

Aus diesem Grund habe ich das Repository "Ein kompletter Tagesplan für das Studium zum maschinellen Lerningenieur" erstellt .

Dies ist mein mehrmonatiger Studienplan für den Wechsel vom mobilen Entwickler (Autodidakt, kein CS-Abschluss) zum maschinellen Lerningenieur.

Mein Hauptziel war es, einen Ansatz zum Erlernen des maschinellen Lernens zu finden, der hauptsächlich praktisch ist und den größten Teil der Mathematik für Anfänger abstrahiert. Dieser Ansatz ist unkonventionell, da er für Softwareentwickler von oben nach unten und ergebnisorientiert ist.

Bitte zögern Sie nicht, Beiträge zu leisten, von denen Sie glauben, dass sie besser werden.

Nam Vu
quelle