Die Entwicklung eines beliebigen Modells für überwachtes maschinelles Lernen umfasst drei wichtige Schritte:

  • Vorbereitung von Daten für das Training eines Modells
  • Implementierung des Modells
  • Training des Modells

Eckdaten

Anwendungen für maschinelles Lernen folgen einem typischen Entwicklungsmuster mit Datenvorbereitung und Training, das über verschiedene Zielplattformen hinweg konzeptionell unverändert bleibt. Daher sind die Entwickler in der Lage, mit kostengünstigen Entwicklungsboards in kurzer Zeit Erfahrungen mit der Implementierung von Algorithmen für maschinelles Lernen zu sammeln. Da Bibliotheken und Frameworks für maschinelles Lernen zu Verfügung stehen, die für diese Boards optimiert sind, lassen sich auf Boards wie dem Raspberry Pi 3 effektive Inferenz-Engines für maschinelles Lernen implementieren, die ansprechende Ergebnisse für Anwendungen mit bescheidenen Anforderungen liefern können.

Die Vorbereitung der Daten beinhaltet bekannte Datenerfassungsmethoden sowie zusätzliche Schritte zur Markierung spezifischer Dateninstanzen zur Verwendung im Trainingsprozess. Für die letzten beiden Schritte mussten Spezialisten für Modelle des maschinellen Lernens vor Kurzem noch auf mathematische Low-Level-Bibliotheken zurückgreifen, um die in den Modellalgorithmen verwendeten detaillierten Berechnungen zu implementieren. Die Verfügbarkeit von Frameworks für maschinelles Lernen hat die Komplexität der Implementierung und des Trainings von Modellen dramatisch reduziert.

Heute kann jeder Entwickler, der mit Python oder einer anderen unterstützten Programmiersprache vertraut ist, mithilfe dieser Frameworks schnell Modelle für maschinelles Lernen entwickeln, die auf einer Vielzahl von Plattformen lauffähig sind.

Stapel für das maschinelle Lernen

Bild 1: Bei einem typischen Stapel für maschinelles Lernen stellen die Bibliotheken auf hoher Ebene Funktionen zur Implementierung von neuronalen Netzen und anderen Algorithmen für maschinelles Lernen bereit und greifen dabei auf spezialisierte mathematische Bibliotheken zurück, in denen für CPUs und GPUs der zugrunde liegenden Hardwareschicht optimierte Kernfunktionen implementiert sind.

Bild 1: Bei einem typischen Stapel für maschinelles Lernen stellen die Bibliotheken auf hoher Ebene Funktionen zur Implementierung von neuronalen Netzen und anderen Algorithmen für maschinelles Lernen bereit und greifen dabei auf spezialisierte mathematische Bibliotheken zurück, in denen für CPUs und GPUs der zugrunde liegenden Hardwareschicht optimierte Kernfunktionen implementiert sind. Google

Zur Unterstützung der Modellentwicklung stellen die Frameworks für maschinelles Lernen einen vollständigen Ressourcenstapel bereit (Bild 1). An der Spitze eines typischen Stapels stellen Trainings- und Inferenzbibliotheken Dienste zum Definieren, Trainieren und Ausführen von Modellen bereit. Diese Modelle beruhen ihrerseits auf optimierten Implementierungen von Kernfunktionen wie Faltung und Aktivierungsfunktionen wie ReLU sowie Matrixmultiplikation und anderen. Diese optimierten mathematischen Funktionen arbeiten mit Treibern auf niedriger Ebene zusammen, die eine Abstraktionsschicht zum Ansprechen einer gewöhnlichen CPU bereitstellen.

Seitdem Frameworks für maschinelles Lernen wie Tensorflow verfügbar sind, verläuft der Entwicklungsprozess für die Implementierung des maschinellen Lernens unabhängig von der Ziel-Hardware immer gleich. Die Möglichkeit TensorFlow über verschiedene Hardwareplattformen hinweg einzusetzen, erlaubt es den Entwicklern, die Entwicklung von Modellen auf relativ bescheidenen Hardwareplattformen in Angriff zu nehmen. Diese Erfahrungen können sie dann für die Entwicklung von Anwendungen für maschinelles Lernen auf robusterer Hardware übernehmen.

Es wird erwartet, dass spezialisierte Hochleistungschips für Künstliche Intelligenz die Entwickler schließlich in die Lage versetzen, ausgeklügelte Algorithmen für maschinelles Lernen zu implementieren. Bis dahin kann die Entwicklung mit der Erprobung des maschinellen Lernens beginnen und echte Anwendungen für maschinelles Lernen auf Universalplattformen wie dem Raspberry Pi 3 der Raspberry Pi Foundation erstellen.

Bild 2: Kostengünstige Boards wie das Raspberry Pi 3 bieten eine nützliche Plattform für die Entwicklung für maschinelles Lernen, da sie Add-ons wie Kameramodule für die Entwicklung von Bildklassifizierungsanwendungen unterstützen.

Bild 2: Kostengünstige Boards wie das Raspberry Pi 3 bieten eine nützliche Plattform für die Entwicklung für maschinelles Lernen, da sie Add-ons wie Kameramodule für die Entwicklung von Bildklassifizierungsanwendungen unterstützen. Raspberry Pi Foundation

Der Raspberry Pi 3 bietet einige unmittelbare Vorteile als Entwicklungsplattform für Anwendungen maschinellen Lernens. Der Arm-Cortex-A53-Quadcore-Prozessor verfügt über beträchtliche Leistungsreserven und die Neon-SIMD-Erweiterungen (Single Instruction, Multiple Data) des Kerns sind bis zu einem gewissen Grad zur Multimediaverarbeitung und zur Datenverarbeitung für maschinelles Lernen geeignet. Die Entwickler können die Basis-Hardwareplattform des Raspberry Pi 3 auch durch viele verfügbare kompatible Hardware-Add-ons erweitern.

Um ein Bilderkennungssystem für maschinelles Lernen zu erstellen, lässt sich der Raspberry Pi durch eine Kamera wie die 8-Megapixel-Kamera des Raspberry Pi Camera Module v2 oder die Pi-NoIR-Kamera für schlechte Lichtverhältnisse erweitern (Bild 2).

Softwareseitig hat die Raspberry Pi Community ein ebenso reichhaltiges Ökosystem geschaffen, in dem Entwickler ganze Distributionen bereitstellen, darunter vollständige, vorkompilierte binäre Wheel-Dateien zur Installation von Tensorflow auf einem Raspberry Pi.

Seite 1 von 212