
Grundlagen maschinelles Lernen
Im Bereich des maschinellen Lernens und des TinyML ist es von grundlegender Bedeutung, die verschiedenen Arten des maschinellen Lernens und den dazugehörigen Workflow zu verstehen. TinyML bezeichnet die Implementierung von maschinellem Lernen auf ressourcenbeschränkten Geräten, wie Mikrocontrollern und Internet der Dinge (engl. Internet of things, IoT)-Geräten. In diesem Abschnitt wird auf die Grundlagen des maschinellen Lernens und dessen Konzepte, die für die Anwendung von TinyML bedeutend sind, eingegangen.
Arten des maschinellen Lernens
Es gibt verschiedene Formen des maschinellen Lernens, die sich in ihrem Ansatz und ihren Anwendungen unterscheiden. Die Hauptkategorien hierbei sind:
Überwachtes Lernen (engl. Supervised Learning)
Beim überwachten Lernen werden Modelle anhand von Eingabe- und Ausgabedaten trainiert. Ein Label ist eine Ausgabe, die einer bestimmten Eingabe zugeordnet ist und das gewünschte Ergebnis repräsentiert. Das bedeutet, dass das Modell während des Trainings bereits mit den richtigen Antworten, sprich den Labeln, versorgt wird. Diese Art des Lernens eignet sich für Aufgaben wie Regression und Klassifikation. Mehr erfahren: IBM/Was ist überwachtes Lernen?
Unüberwachtes Lernen (engl. Unsupervised Learning)
Im unüberwachten Lernen gibt es keine Ausgabedaten. Im Training lernt das Modell, Muster und Strukturen in den Eingabedaten zu erkennen. Zu den Aufgaben des unüberwachten Lernens gehören Clustering und Dimensionsreduktion. Mehr erfahren: IBM/Was ist nicht überwachtes Lernen?
Halbüberwachtes Lernen (engl. Semi-Supervised Learning)
Beim halbüberwachten Lernen wird das Modell mit einer Kombination aus gelabelten und ungelabelten Daten trainiert. Diese Methode kann besonders nützlich sein, wenn das Labeln von Daten zeitaufwändig oder teuer ist, da sie die Vorteile des überwachten Lernens mit der Effizienz des unüberwachten Lernens kombiniert. Mehr erfahren: IBM/What is semi-supervised learning?
Bestärkendes Lernen (engl. Reinforcement Learning)
Beim bestärkenden Lernen lernt ein Modell durch die Interaktion mit seiner Umgebung. Während der Lernphase des Modells trifft es Entscheidungen und erhält Belohnungen oder Bestrafungen als Rückmeldung. Diese Art des Lernens findet Anwendung in Bereichen wie Robotik und Spielstrategien. Mehr erfahren: datasolution/Reinforcement Learning: Wenn KI auf Belohnungen reagiert
Unterschiede zwischen den Arten des maschinellen Lernens
Die verschiedenen Formen des maschinellen Lernens unterscheiden sich in ihrem Ansatz und den verwendeten Daten. Überwachtes Lernen nutzt Eingabe- und Ausgabedaten, unüberwachtes Lernen erkennt Muster ohne Ausgabedaten. Halbüberwachtes Lernen kombiniert gelabelte und ungelabelte Daten, während bestärkendes Lernen auf Interaktion und Rückmeldungen basiert.
Maschinelles Lernen - Ablauf
Der Workflow des maschinellen Lernens umfasst die folgenden, beispielhaften Schritte:
Open-Source-Datensätze: Verwendung frei verfügbarer Datensätze.
Datenaufnahme: Sammeln und aufbereiten eigener Daten.
Bereinigung: Entfernen von Fehlern, Auffüllen fehlender Werte, Anpassen von Datenformaten.
Aufteilung: Daten in Trainings-, Validierungs- und Testdatensätze aufteilen für das Modelltraining und die Leistungsbeurteilung.
Modellauswahl:
Problemdefinition: Klarstellung des Problems, ob es sich bspw. um überwachtes oder unüberwachtes Lernen handelt.
Algorithmenwahl: Auswahl eines geeigneten Modells basierend auf der Aufgabenstellung, z. B. Klassifikation (Logistische Regression), Clustering (K-Means), usw.
Modelltyp: Wahl zwischen eines selbst erstellten Modells oder Verwendung eines vortrainierten Modells, je nach Datenmenge und spezifischen Anforderungen.
Modelltraining: Das Modell wird mit den Trainingsdaten trainiert und auf dem Validierungsdatensatz validiert, um Muster zu erkennen und Vorhersagen zu treffen.
Modellevaluation: Das Modell wird auf dem Testdatensatz getestet, um seine Leistung zu bewerten.
Monitoring (MLOps): Nach der Bereitstellung des Modells ist es wichtig, das Modell kontinuierlich zu überwachen. Dies beinhaltet die Überwachung seiner Leistung im Einsatz und gegebenenfalls die Aktualisierung des Modells, um sicherzustellen, dass es weiterhin genaue Vorhersagen trifft.
Dies sind grundlegenden Schritte und Konzepte im maschinellen Lernprozess. In den kommenden Kapiteln wird eingehender auf die genannten Schritte und auf verschiedene Algorithmen und Techniken dieser Bereiche eingegangen.
Mehr erfahren: GoogleCloud/ML-Workflow
Frameworks
Frameworks sind essenzielle Werkzeuge im maschinellen Lernen, die Entwicklern die Implementierung von Modellen und Algorithmen erleichtern. Hier sind einige der wichtigsten Frameworks, die in der ML-Community verwendet werden:
TensorFlow
TensorFlow ist ein Open-Source-Framework, das von Google entwickelt wurde. Es ist besonders bekannt für seine Flexibilität und Skalierbarkeit. TensorFlow ermöglicht das Erstellen und Trainieren von neuronalen Netzen, sowie die Implementierung von vortrainierten ML-Modellen. Keras ist ein benutzerfreundliches Deep Learning-Framework, das in TensorFlow integriert ist und die Entwicklung von Modellen erleichtert.
TensorFlow Lite ist eine spezielle Version von TensorFlow, die für die Ausführung von maschinellen Lernmodellen auf eingebetteten Geräten und Mikrocontrollern optimiert ist, wodurch die Implementierung von Modellen auf ressourcenbeschränkten Edge-Geräten ermöglicht wird. Mehr erfahren: TensorFlow/An end-to-end platform for machine learning, Databricks/TensorFlow
PyTorch
PyTorch ist ein weiteres beliebtes Open-Source-Framework, das von Facebook AI entwickelt wurde. Es zeichnet sich durch seine dynamischen Berechnungsgrafen aus, was es ideal für Forschungszwecke macht. PyTorch bietet eine einfache und intuitive Schnittstelle, um neuronale Netze zu entwickeln und zu trainieren. Mehr erfahren: PyTorch/Get started, IBM/Was ist PyTorch?
scikit-learn und XGBoost
scikit-learn ist eine weit verbreitete Bibliothek für maschinelles Lernen in Python. Es bietet eine Vielzahl von Werkzeugen für Datenaufbereitung, Modellauswahl und Modellbewertung. XGBoost, kurz für "Extreme Gradient Boosting", ist eine effiziente Implementierung von Gradient-Boosting-Verfahren. Diese Bibliotheken werden meist für klassische Ansätze von maschinellem Lernen eingesetzt wie beispielsweise Random Forest. Mehr erfahren: Scikit-Learn/Scikit-Learn Machine Learning in Python, XGBoost/XGBoost Documentation, Data Base Camp/Was ist Scikit-Learn?, Data Base Camp/Was ist XGBoost?
Diese Frameworks sind eine ausgezeichnete Grundlage für die Entwicklung von ML-Anwendungen. In den folgenden Kapiteln werden die Frameworks TensorFlow und scikit-learn für Beispiele verwenden.
Last updated