Top-down-Lernpfad: Maschinelles Lernen für Softwareentwickler
Inspiriert von der Coding Interview University.
Übersetzungen: Brasilianisches Portugiesisch | 中文版本 | Französisch | 臺灣華語版本
Wie ich (Nam Vu) vorhabe, Ingenieur für maschinelles Lernen zu werden
Was ist das?
Dies ist mein mehrmonatiger Studienplan für den Übergang vom mobilen Entwickler (Autodidakt, kein CS-Abschluss) zum Ingenieur für maschinelles Lernen.
Mein Hauptziel war es, einen Ansatz für das Studium des maschinellen Lernens zu finden, der hauptsächlich praxisorientiert ist und den Großteil der Mathematik für Anfänger abstrahiert. Dieser Ansatz ist unkonventionell, da es sich um einen Top-down- und ergebnisorientierten Ansatz handelt, der für Softwareentwickler entwickelt wurde.
Bitte zögern Sie nicht, Beiträge zu leisten, von denen Sie glauben, dass sie zur Verbesserung beitragen.
Inhaltsverzeichnis
- Was ist das?
- Warum es verwenden?
- Wie man es benutzt
- Folgen Sie mir
- Denken Sie nicht, dass Sie nicht schlau genug sind
- Über Videoressourcen
- Vorausgesetztes Wissen
- Der Tagesplan
- Motivation
- Übersicht über maschinelles Lernen
- Beherrschung des maschinellen Lernens
- Maschinelles Lernen macht Spaß
- Inky Machine Learning
- Maschinelles Lernen: Ein ausführlicher Leitfaden
- Geschichten und Erlebnisse
- Algorithmen für maschinelles Lernen
- Einsteigerbücher
- Praktische Bücher
- Kaggle-Wissenswettbewerbe
- Videoserie
- MOOC
- Ressourcen
- Werden Sie ein Open-Source-Mitwirkender
- Spiele
- Podcasts
- Gemeinschaften
- Konferenzen
- Interviewfragen
- Meine Lieblingsunternehmen
Warum es verwenden?
Ich verfolge diesen Plan, um mich auf meinen zukünftigen Job vorzubereiten: Ingenieur für maschinelles Lernen. Ich entwickle seit 2011 native mobile Anwendungen (Android/iOS/Blackberry). Ich habe einen Abschluss in Software-Ingenieurwesen, keinen Abschluss in Informatik. Ich verfüge über ein paar Grundkenntnisse in den Bereichen Infinitesimalrechnung, lineare Algebra, diskrete Mathematik, Wahrscheinlichkeitstheorie und Statistik von der Universität. Denken Sie an mein Interesse am maschinellen Lernen:
- Kann ich maschinelles Lernen erlernen und einen Job bekommen, ohne CS Master und PhD zu studieren?
- „Das kannst du, aber es ist viel schwieriger als damals, als ich ins Feld kam.“ Drac Smith
- Wie bekomme ich einen Job im Bereich Maschinelles Lernen als Softwareprogrammierer, der sich selbst mit Maschinellem Lernen beschäftigt, aber nie die Chance hat, es bei der Arbeit anzuwenden?
- „Ich stelle für mein Team Experten für maschinelles Lernen ein und Ihr MOOC wird Ihnen den Job nicht verschaffen (weiter unten gibt es bessere Neuigkeiten). Tatsächlich werden viele Leute mit einem Master in maschinellem Lernen den Job nicht bekommen, weil sie (und die meisten, die … Ich habe MOOCs besucht) habe kein tiefes Verständnis, das mir helfen würde, meine Probleme zu lösen. Ross C. Taylor
- Welche Fähigkeiten sind für maschinelle Lernaufgaben erforderlich?
- „Erstens müssen Sie über einen guten CS/Mathe-Hintergrund verfügen. ML ist ein fortgeschrittenes Thema, daher gehen die meisten Lehrbücher davon aus, dass Sie über diesen Hintergrund verfügen. Zweitens ist maschinelles Lernen ein sehr allgemeines Thema mit vielen Unterspezialitäten, die einzigartige Fähigkeiten erfordern. Vielleicht möchten Sie um den Lehrplan eines MS-Programms in maschinellem Lernen zu durchsuchen, um den Kurs, den Lehrplan und das Lehrbuch anzuzeigen. Uri
- „Wahrscheinlichkeit, verteiltes Rechnen und Statistik.“ Hortensie
Ich befinde mich in schwierigen Zeiten.
AFAIK, maschinelles Lernen hat zwei Seiten:
- Praktisches maschinelles Lernen: Hier geht es um das Abfragen von Datenbanken, das Bereinigen von Daten, das Schreiben von Skripten zur Datentransformation und das Zusammenfügen von Algorithmen und Bibliotheken sowie das Schreiben von benutzerdefiniertem Code, um zuverlässige Antworten aus Daten herauszuholen und schwierige und schlecht definierte Fragen zu beantworten. Es ist das Durcheinander der Realität.
- Theoretisches maschinelles Lernen: Hier geht es um Mathematik und Abstraktion sowie idealisierte Szenarien und Grenzen und Schönheit und darum, zu informieren, was möglich ist. Es ist viel ordentlicher und sauberer und vom Chaos der Realität entfernt.
Ich denke, der beste Weg für eine praxisorientierte Methodik ist so etwas wie „Üben – Lernen – Üben“, das heißt, die Studierenden kommen zunächst mit einigen bestehenden Projekten mit Problemen und Lösungen (Praxis), um sich mit traditionellen Methoden in diesem Bereich vertraut zu machen und vielleicht auch mit ihrer Methodik. Nachdem sie mit einigen elementaren Erfahrungen geübt haben, können sie in die Bücher gehen und die zugrunde liegende Theorie studieren, die als Leitfaden für ihre zukünftige fortgeschrittene Praxis dient und ihren Werkzeugkasten zur Lösung praktischer Probleme erweitert. Das Studium der Theorie verbessert auch ihr Verständnis für die elementaren Erfahrungen und hilft ihnen, sich schneller fortgeschrittene Erfahrungen anzueignen.
Es ist ein langer Plan. Es wird Jahre dauern. Wenn Sie bereits mit viel davon vertraut sind, wird es viel weniger Zeit in Anspruch nehmen.
Wie man es benutzt
Alles, was unten steht, ist eine Übersicht, und Sie sollten die Punkte in der Reihenfolge von oben nach unten angehen.
Ich verwende die spezielle Markdown-Variante von Github, einschließlich Aufgabenlisten zur Überprüfung des Fortschritts.
Mehr über Markdown mit Github-Geschmack
Folgen Sie mir
Ich bin ein vietnamesischer Software-Ingenieur, der wirklich leidenschaftlich ist und in den USA arbeiten möchte.
Wie viel habe ich während dieses Plans gearbeitet? Ungefähr 4 Stunden/Nacht nach einem langen, anstrengenden Arbeitstag.
Ich bin auf der Reise.
Denken Sie nicht, dass Sie nicht schlau genug sind
Ich werde von Büchern und Kursen entmutigt, in denen mir gleich beim Aufschlagen gesagt wird, dass multivariate Analysis, Inferenzstatistik und lineare Algebra Voraussetzung sind. Ich weiß immer noch nicht, wie ich anfangen soll ...
- Was ist, wenn ich nicht gut in Mathematik bin?
- 5 Techniken zum Verständnis von Algorithmen für maschinelles Lernen ohne Vorkenntnisse in Mathematik
- Wie lerne ich maschinelles Lernen?
Über Videoressourcen
Einige Videos sind nur verfügbar, wenn Sie sich für einen Coursera- oder EdX-Kurs anmelden. Dies ist kostenlos, aber manchmal finden die Kurse nicht mehr statt, sodass Sie ein paar Monate warten müssen und keinen Zugang haben. Ich werde im Laufe der Zeit weitere Videos aus öffentlichen Quellen hinzufügen und die Online-Kursvideos ersetzen. Ich nutze gerne Universitätsvorlesungen.
Vorausgesetztes Wissen
Dieser kurze Abschnitt besteht aus Voraussetzungen/interessanten Informationen, die ich lernen wollte, bevor ich mit dem Tagesplan beginne.
Der Tagesplan
Um jedes Fach vollständig zu verstehen, braucht man nicht einen ganzen Tag, sondern man kann mehrere davon an einem Tag erledigen.
Jeden Tag nehme ich ein Thema aus der Liste unten, lese es von Anfang bis Ende durch, mache mir Notizen, mache die Übungen und schreibe eine Implementierung in Python oder R.
Motivation
Übersicht über maschinelles Lernen
Beherrschung des maschinellen Lernens
Maschinelles Lernen macht Spaß
Inky Machine Learning
Maschinelles Lernen: Ein ausführlicher Leitfaden
Geschichten und Erlebnisse
Algorithmen für maschinelles Lernen
Einsteigerbücher
Praktische Bücher
Kaggle-Wissenswettbewerbe
Videoserie
MOOC
Ressourcen
Spiele
- Halite: KI-Codierungsspiel
- Vindinium: KI-Programmierherausforderung
- Allgemeiner Videospiel-KI-Wettbewerb
- Angry Birds KI-Wettbewerb
- Die KI-Spiele
- Kampfspiel-KI-Wettbewerb
- CodeCup
- StarCraft-KI-Turnier für Studenten
- AIIDE StarCraft KI-Wettbewerb
- CIG StarCraft KI-Wettbewerb
- CodinGame – KI-Bot-Spiele
Werden Sie ein Open-Source-Mitwirkender
Podcasts
Podcasts für Einsteiger:
- Sprechende Maschinen
- Lineare Exkurse
- Datenskeptiker
- Diese Woche zum Thema Maschinelles Lernen und KI
- Leitfaden zum maschinellen Lernen
Interviews mit ML-Praktikern, Forschern und Kagglern über ihre Reise
- Chai Time Data Science, Audio, Aufsätze
- Maschinelles Lernen für Anfänger – Interviews, Audio
„Mehr“ fortgeschrittene Podcasts
- Teilweise abgeleitet
- O'Reilly Data Show
- Nicht so Standardabweichung
Podcasts zum Querdenken:
Gemeinschaften
Konferenzen
- Neuronale Informationsverarbeitungssysteme (NIPS)
- Internationale Konferenz über lernende Repräsentationen (ICLR)
- Verein zur Förderung der künstlichen Intelligenz (AAAI)
- IEEE-Konferenz zu Computational Intelligence und Games (CIG)
- Internationale IEEE-Konferenz für maschinelles Lernen und Anwendungen (ICMLA)
- Internationale Konferenz zum maschinellen Lernen (ICML)
- Internationale gemeinsame Konferenzen zur künstlichen Intelligenz (IJCAI)
- Verein für Computerlinguistik (ACL)
Interviewfragen
Meine Lieblingsunternehmen