Sie müssen kein maschinelles Lernen lernen

Erfahren Sie, wie Sie Software mithilfe von Modellen für maschinelles Lernen erstellen


Bild

Haftungsausschluss: Dieser Artikel basiert ausschließlich auf meinen Beobachtungen von Entwicklungsteams im Bereich des maschinellen Lernens und ist nicht das Ergebnis einer wissenschaftlichen Überprüfung der Branche. Als Referenz helfe ich bei der Entwicklung von Cortex , einer Open-Source-Plattform für die Einführung von Modellen in der Produktion.

Wenn Sie Entwickler sind, haben Sie zumindest ein vorübergehendes Interesse an maschinellem Lernen. Das Konzept eines Algorithmus, mit dem die Schüler später Vorhersagen treffen können, ist einfach ... cool.

Wenn Sie sich jedoch dazu entschließen, ML nach allen Kanonen zu studieren, ist es wahrscheinlich, dass Sie diese Lektion nach zwei Wochen linearer Algebra und multivariater Analyse beenden.

Der Grund liegt in der Tatsache, dass sich die meisten Einführungsmaterialien zu ML nicht auf Entwickler, sondern auf Forscher konzentrieren - ein Problem für Entwickler, die nur Produkte für maschinelles Lernen erstellen möchten.

Möchten Sie Produkte erstellen oder recherchieren?


Bis Ende der 2000er Jahre war maschinelles Lernen fast ausschließlich ein Forschungsproblem. Es gab einfach nicht viele Unternehmen, die maschinelles Lernen wirklich in der Produktion einsetzen würden.

Daher basieren viele der zum maschinellen Lernen verfügbaren Vertrautheitsmaterialien auf einem Forschungsansatz. Alles beginnt mit einer Erklärung neuronaler Netze aus mathematischer Sicht und der Theorie, die dem maschinellen Lernen zugrunde liegt. Dinge sind gegeben, wie die Rückausbreitungsmethode und gegnerische Netzwerke.

Sogar Materialien, die nicht mit der Universität zu tun haben, folgen in gewissem Maße diesem Muster. Dies stammt beispielsweise direkt aus der TensorFlow-Bibliothek „Schnellstart für Anfänger“:

Bild

Wenn Sie der Meinung sind, dass ich selektiv agiere, empfehle ich , Folgendes zu lesen .

Wenn Sie bereits mit der dem maschinellen Lernen zugrunde liegenden Mathematik vertraut sind oder sie gerne studieren, ist dieser Ansatz für Sie geeignet. Wenn Sie jedoch in erster Linie daran interessiert sind, Dinge mit maschinellem Lernen zu erstellen, ist dies höchstwahrscheinlich nicht ganz das, wonach Sie suchen.

Die Verwendung der Programmierung als Ergänzung zur Mathematik entspricht dem Erlernen des Schreibens von Code, indem zuerst der Assembler erlernt wird. Kein Entwickler wird so lernen.

Hinweis: Wenn Sie irgendwie gelernt haben, wie man in Assemblersprache codiert, gebe ich alle bösen Kommentare zu meiner Seite und bin beeindruckt, dass Sie einen Browser in Ihrer undeutlichen Linux-Distribution gefunden haben.

Als Sie das Codieren gelernt haben, haben Sie es höchstwahrscheinlich getan, indem Sie „Hallo Welt“ in einer Hochsprache geschrieben haben. Dann, als die Projekte komplexer wurden, begannen Sie, Low-Level-Programmierung zu studieren.

Dieses Schulungsmodell ist bei Personen erfolgreich, die Software erstellen, da es bei der Arbeit an einem Projekt eindeutig Prioritäten setzt. Wenn Sie mehr an der Erstellung eines Empfehlungssystems als an der Veröffentlichung eines Artikels interessiert sind, sollten Sie sich auf diese Weise dem Studium des maschinellen Lernens nähern.

Wie man ML durch Erstellen von Software lernt


Wenn Sie der Typ sind, der am besten durch Kurse lernt, ist der Kurs bei fast.ai Practical Deep Learning für Programmierer die beste Ressource, um diesen von oben nach unten gerichteten Lern- und Prozessansatz für die Arbeit mit ML zu fördern .

Der Zweck des Artikels ist nicht, fast.ai überhaupt zu bewerben, aber es ist erwähnenswert, dass die Gründer der Plattform (Jeremy Howard und Rachel Thomas) mehrere Kurse für Entwickler mit tiefem Training zusammengestellt haben, die buchstäblich dazu zwingen, Dinge zu erstellen und sich direkt mit der Haupttheorie zu befassen mit dem Projekt verbunden. Sehen Sie sich ein Video von Rachel Thomas an, um ihren Lernstil besser zu verstehen.



Auf der anderen Seite können Sie, wenn Sie zu den Leuten gehören, die am besten lernen, indem Sie sich vertiefen und Dinge selbst erstellen, wie in jedem anderen Bereich der Programmierung maschinelles Lernen beherrschen. Wählen Sie einfach ein Projekt, das Sie interessiert - ich habe eine riesige Liste von Projekten zur Verarbeitung natürlicher Sprache für Anfänger zusammengestellt - wählen Sie.

Um besser zu verstehen, was das Erstellen von Software mit ML bedeutet (wenn Sie diesen Weg gehen):

  1. Definieren Sie ein Ziel, erstellen Sie beispielsweise eine automatische Vervollständigung für ein Textfeld oder eine Kennzeichen-ID.
  2. Finden Sie ein vorbereitetes Modell, das für Ihr Projekt geeignet ist - GPT-2- oder YOLOv3-Modelle funktionieren auch mit den zuvor genannten Projekten.
  3. Wenn Sie möchten, können Sie die Bibliothek sogar als gpt-2-simple verwenden, um Ihr Modell zu optimieren (an Ihre eigenen Daten anzupassen).
  4. Stellen Sie das Modell schließlich als Microservice bereit.


Sobald das Modell als API bereitgestellt wurde, können Sie es wie jeden anderen Webdienst anfordern und Ihre Anwendung darauf aufbauen.

Sie können die tatsächliche Anwendung dieses Prozesses in einem Projekt sehen, das von einem Solo-Ingenieur für maschinelles Lernen erstellt wurde.



Dank dieser Lernmethode können Sie verschiedene gängige Modellarchitekturen kennenlernen, andere Ansätze des maschinellen Lernens kennenlernen und wissen, für welche Anwendungen sie bestimmt sind. Ebenso wichtig ist die Tatsache, dass Sie mehr über die Infrastruktur für maschinelles Lernen erfahren, die zum Erstellen realer Produkte auf der Basis von Modellen erforderlich ist.

Sobald Sie ML-basierte Produkte erstellen können, beginnen Sie mit dem Erlernen der Theorie


Als Ingenieur haben Sie wahrscheinlich bereits früher eine Form der Authentifizierung implementiert, was bedeutet, dass Sie (ich hoffe) Passwörter gehasht haben.

Haben Sie beim Einrichten des Passwort-Hashing einen benutzerdefinierten Hashing-Algorithmus geschrieben? Haben Sie mehrere Wochen Kryptographie studiert? Oder hast du es einfach benutzt bcrypt?

Haben Sie bei der Erstellung Ihrer ersten Webanwendung die Datenbank mehrere Wochen lang studiert? Hast du von Grund auf neu geschrieben? Oder haben Sie das zufällige ORM Ihres Lieblingsframeworks verwendet?
Die gleiche Logik gilt für maschinelles Lernen. Wenn Sie eine Person sind, die gerne Software erstellt, erstellen Sie zunächst Software für maschinelles Lernen und lassen Sie sich mithilfe von Tools, vorbereiteten Modellen und Frameworks für maschinelles Lernen von der zugrunde liegenden ML-Theorie lösen. Wenn Sie interessiert sind oder wenn Ihr Projekt mehr Komplexität erfordert, gehen Sie tiefer, um zu sehen, wie alles funktioniert.



Bild
Erfahren Sie in SkillFactory-Onlinekursen, wie Sie einen begehrten Beruf von Grund auf neu erlernen oder Ihre Fähigkeiten und Ihr Gehalt verbessern können:



Weiterlesen



All Articles