Machine Learning

Beim Maschinellen Lernen wird ein Modell für die Lösung einer Aufgabe optimiert. Diesen Prozess bezeichnet man als Training. Mithilfe von trainierten Modellen können komplexe Datenanalysen automatisch durchgeführt werden. Damit lassen sich aufwändige, manuell erstellte Programm-Konstrukte ersetzen. Sowohl das Erstellen, das Training als auch die Ausführung der Machine Learning-Modelle erfolgt in der TwinCAT 3 Echtzeitumgebung, mit Hilfe der bereitgestellten Machine Learning-Funktionen. Die damit lösbaren Aufgaben sind vielfältig und lassen sich grob in fünf Aufgabengebiete (Klassifikation, Anomalie-Erkennung, Regression, Clusteranalyse und Merkmals-Transformation) einteilen. Je nach Aufgabengebiet stehen verschiedene Modelltypen zur Verfügung, die jeweils allgemeine oder aufgabenspezifische Vor- und Nachteile haben.

Beim Maschinellen Lernen unterscheidet man zwischen überwachtem (supervised) und unüberwachtem Lernen (unsupervised). Beim überwachten Lernen benötigt man zusätzliche Informationen wie annotierte (z.B. gelabelte) Datensätze, damit das Modell eine Abbildung in bekannte Kategorien (Klassen) oder auf gewünschte Zielgrößen lernen kann. Danach kann das Modell eine Vorhersage (Prädiktion) der Kategorien bzw. Zielgrößen für die unbekannten Daten treffen. Dem gegenüber erfolgt das unüberwachte Lernen ohne Zusatzinformationen nur auf der Basis der Merkmale selbst.

Alle Modelle der Klassifikation und Regression lassen sich generell dem überwachten Lernen zuordnen. Demgegenüber werden alle Modelle zur Anomalie-Erkennung und Clustering dem unüberwachten Lernen zugeordnet. Bei der Merkmalstransformation gibt es beide Möglichkeiten, so basiert das Verfahren zur Linear Discriminant Analysis auf dem überwachten Lernen und die Principal Component Analysis auf dem unüberwachten Lernen.

Die folgende Zuordnung von Modell-Typen zu Aufgabengebieten hilft bei der Auswahl geeigneter Modelle. Es ist zu beachten, dass hier speziell die Handhabung von maschinellem Lernen in TwinCAT Vision aufgezeigt wird und nicht im Allgemeinen.

Modell-Typen

Klassifikation

Anomalie-Erkennung

Regression

Clustering

Merkmals-Transformation

K-Means++
(KMPP)

 

x

 

x

 

K-Nearest Neighbors
(KNN)

x

x

x

 

 

Linde–Buzo–Gray
(LBG)

 

x

 

x

 

Linear Discriminant Analysis
(LDA)

 

 

 

 

x

Normal Bayes Classifier
(NBC)

x

x

 

 

 

Principal Component Analysis
(PCA)

 

 

 

 

x

Random Forest
(RTrees)

x

 

x

 

 

Simplified TopoART
(STA)

x

x

x

x

 

Support Vector Machine
(SVM)

x

x

x

 

 

Support Vector Machine-
Stochastic Gradient Descent
(SVM-SGD)

x

 

 

 

 

Es können nur Modelle verwendet werden, die über eine der F_VN_Create-Funktionen aus der Machine Learning Gruppe erstellt wurden. Die so erzeugten und im Nachgang trainierten Modelle lassen sich über die FB_VN_WriteMlModel und FB_VN_ReadMlModel Bausteine auf die Festplatte speichern oder laden. Der Import von extern trainierten Modellen, z.B. als ONNX-Dateien, ist nicht vorgesehen.

Grundsätzliches Vorgehen beim maschinellen Lernen:

Die Daten müssen in Form von Samples vorliegen. Ein Sample ist dabei ein Vektor, der aus Merkmalen besteht. Die Merkmale können sowohl greifbare Größen des assoziierten Bildes (z.B. Farbwerte) oder Konturwerte (z.B. in Form des Schwerpunkts) etc. sein, als auch abstrakte Größen (z.B. das Ergebnis einer PCA), die zwar statistisch das Bild sinnvoll beschreiben, die vom Benutzer jedoch nicht direkt gedeutet werden können. Für das Training von überwachten Modellen werden für jedes Sample Zusatzinformationen wie z.B. eine Klassenzuordnung benötigt. Eine Ansammlung von mehreren Samples wird als Batch bezeichnet.

Abhängig vom Modelltyp stehen Funktionen zum Sample- und / oder Batch-Training sowie zur Prädiktion zur Verfügung. Bei einigen Modellen kann ein Nachtraining stattfinden, um das Modell während der Laufzeit weiter zu optimieren oder auf neue Gegebenheiten anzupassen.

Merkmalsextraktion

Die Merkmalsextraktion beinhaltet die Extraktion von numerischen Merkmalen aus Bilddaten und ist ein wesentlicher Bestandteil einer Machine Learning-Lösung. Dabei muss man unterscheiden, ob ein Merkmal direkt von einer Funktion bestimmt werden kann, ob eine Kombination von Funktionen notwendig ist oder ob es logische Merkmale eines Objekts sind, die zur Unterscheidung verwendet werden können, wie z.B. eine Anzahl von Löchern. Im Kapitel Funktionen zur Merkmalsextraktion finden Sie eine beispielhafte Auflistung.

Merkmalsnormalisierung

Die Skalierung von Merkmalen zur Normalisierung wird in erster Linie durchgeführt, um sicherzustellen, dass alle Merkmale gleichermaßen zum Lernprozess des Modells beitragen. Merkmale mit größeren Werten können die Abstandsberechnungen dominieren, wodurch distanzbasierte Modelle empfindlicher auf diese Merkmale reagieren. Um das zu vermeiden und die Anforderungen des Modells zu erfüllen, empfehlen wir generell eine Merkmalsnormalisierung durchzuführen.

Die Funktion F_VN_GetFeatureScales stellt drei Skalierungsmöglichkeiten (ETcVnFeatureScalingType) bereit. Darüber hinaus kann man auch eine eigene Skalierung erstellen und verwenden. Die Anwendung der Skalierung erfolgt mit der Funktion F_VN_FeatureScaling.

Machine Learning 1:

Gleiche Merkmals-Extraktion und -Normalisierung

Es ist zu beachten, dass alle Verarbeitungsschritte sowohl beim Training als auch bei der Anwendung eines Modells durchgeführt werden müssen. Daher müssen die Funktionen an beiden Stellen ausgeführt werden und ggfs. Parameter für die spätere Verwendung gespeichert werden.