Für Konsumgüterunternehmen ist es wichtig, Stabilitätsprognosemodelle zu entwickeln, um die Haltbarkeit von Produkten oder das Risiko von Langzeitstabilitätsproblemen bereits in der frühen Produktentwicklungsphase vorherzusagen. Die Zeitrafferfotografie (TLP) hat sich als wichtigstes Instrument zur Messung der physikalischen Stabilität flüssiger Konsumgüter etabliert.
Ein KI-/Deep-Learning-Modell wurde bereits mit Python entwickelt, um Stabilitätsfehler anhand von TLP-Bildern vorherzusagen. Dank des neuen Torch Deep Learning Add-Ins für JMP Pro lässt sich nun schnell und ohne Programmierung ein KI-/Deep-Learning-Modell zur Erkennung von Stabilitätsfehlern in Bildern erstellen. In dieser Präsentation zeigen wir die Anwendung des Add-Ins für ein Bildklassifizierungsproblem zur Erkennung von Stabilitätsfehlern in formulierten Konsumgütern.
Mein Name ist Fangyi Luo. Ich bin Statistikerin und Data Scientist bei Procter & Gamble. Heute präsentiere ich gemeinsam mit Russ Wolfinger von JMP ein Poster. Ich bin seit etwa 28 Jahren bei P&G und konzentriere mich derzeit darauf, Produkt- und Verpackungsinnovationen mithilfe von Statistik und Data Science zu beschleunigen. Russ, möchten Sie sich kurz vorstellen?
Ja, vielen Dank, Fangyi. Ich freue mich sehr auf die Zusammenarbeit an diesem Projekt. Wie du weißt, ist maschinelles Lernen im Bereich KI ein brandaktuelles Thema, und wir lieben praktische Anwendungen wie diese, die meiner Meinung nach wirklich etwas bewegen. Besonders die Möglichkeit, das neue Torch-Add-in für die Bildklassifizierung zu nutzen, finde ich sehr leistungsstark und praktisch. Es wird eine tolle Geschichte, die wir heute erzählen können, wie du damit Fortschritte erzielt hast. Ich bin persönlich schon sehr gespannt auf die Entwicklung. Dieses Projekt ist seit mehreren Jahren in der Entwicklung und gewinnt jetzt endlich an Fahrt.
Vielen Dank, Russ. Heute werden wir uns mit dem Problem der Bildklassifizierung mithilfe des neuen JMP Torch Deep Learning Add-ins beschäftigen. Zunächst möchte ich den Hintergrund des Problems erläutern. Bei Procter & Gamble stellen wir zahlreiche Konsumgüter her, darunter auch flüssige Produkte wie Shampoo, Spülung, Flüssigwaschmittel, Handspülmittel usw.
Bevor wir ein Produkt auf den Markt bringen, führen wir umfangreiche Tests am Prototyp durch. Wir nutzen die Zeitraffer-Fotografie, um die Entwicklung des Prototyps bei verschiedenen Temperaturen über einen längeren Zeitraum zu verfolgen. Rechts sehen Sie einige Stabilitätsprobleme flüssiger, formulierter Prototypen, wie Phasentrennung und cremige Konsistenz. An der Oberfläche bildet sich eine dünne Schicht. Dies sind Anzeichen für Fluktuationen, Risse und Kristallisation.
Da wir Tausende von Prototypen getestet haben, nutzen wir diese Digitalkamera, um alle Prototypen im Zeitverlauf zu verfolgen. Wir haben Millionen von Bildern aufgenommen. Eine manuelle Klassifizierung dieser Bilder in verschiedene Fehlermodi war unmöglich. Vor einigen Jahren gründeten wir bei PNG ein Team und entwickelten einen Deep-Learning-Algorithmus, um diese Bilder mithilfe eines in Python entwickelten Deep-Learning-Modells in stabile und verschiedene physikalische Stabilitätsfehlermodi zu klassifizieren.
Mit der neuen Verfügbarkeit von JMP Pro Torch Deep Learning sollten wir versuchen, dies anzuwenden und unser Bildklassifizierungsproblem zu erweitern.
Wir haben die Bildklassifizierung für unser Problem sowohl mit binärer Klassifizierung (stabil/instabil) als auch mit mehrstufiger Klassifizierung (stabil/verschiedene physikalische Stabilitätsversagensarten) getestet. Für beide Klassifizierungsarten verwendeten wir das beste Deep-Learning-Add-in. Der Trainingsdatensatz umfasste ca. 3.500 Bilder, der Testdatensatz über 500. Im Folgenden zeige ich Ihnen einige Ergebnisse.
Als wir das Torch Deep Learning Add-in für die binäre Klassifizierung testeten, verwendete ich zunächst die Standardeinstellungen und wählte das Bildmodell ResNet-34. Ich konnte sehr schnell ein sehr gutes Modell mit einer Validierungsgenauigkeit von 95 % erzielen – und das ganz einfach. In der Mitte sehen Sie ein Beispiel des Trainingsverlaufs. Wir möchten beobachten, wie der Verlust mit zunehmender Anzahl an Epochen, also Trainingsiterationen, abnimmt. Unser Ziel ist es, ein Modell mit einer Validierungsgenauigkeit von 95 % zu entwickeln. Das Ausgangsmodell war bereits sehr gut, aber wir möchten prüfen, ob wir die Validierungsgenauigkeit weiter verbessern können.
Ich habe versucht, einige Hyperparameter manuell zu ändern. Dazu verwendete ich ein komplexeres Bildmodell wie ResNet-50 und reduzierte die Lernrate sowie erhöhte die Anzahl der Epochen. Nach einigen Versuchen gelang es mir, ein binäres Klassifizierungsmodell mit 99 % Validierungsgenauigkeit zu erstellen. Ich war von diesem Ergebnis begeistert. Die Mehrklassenklassifizierung mit dem JMP Torch Deep Learning Add-in dauerte etwas länger, und ich konnte zunächst kein zufriedenstellendes Modell entwickeln.
Peter Hirsch von JMP hat mir mitgeteilt, dass es ein Torch Companion Add-in für das Torch Deep Learning Add-in gibt, mit dem Hyperparameter-Tuning durchgeführt werden kann. Ich habe dieses Add-in ebenfalls heruntergeladen, wie Sie auf marketplace.jmp.com sehen können. Dort können Sie sowohl das Torch Deep Learning Add-in als auch das Torch Companion Add-in herunterladen. Ich habe das Add-in getestet und konnte damit einen Versuchsplan für die Hyperparameter erstellen.
Ich habe 20 Hyperparameter-Kombinationen generiert, darunter verschiedene Epochenanzahlen, Lernraten, Batchgrößen, Anzahl und Größe der Schichten sowie Bildgrößen. Mit dem Torch Companion Add-in erreichte ich für diese Mehrklassenklassifizierung eine Validierungsgenauigkeit von etwa 78 %. Unser Ziel ist jedoch ein Modell mit einer Validierungsgenauigkeit von mindestens 95 %, daher ist dieses Modell nicht ausreichend. Anschließend habe ich das Modell manuell mit verschiedenen Hyperparametern optimiert. Ich habe verschiedene Bildverarbeitungsmodelle ausprobiert, darunter ResNet-50. Außerdem habe ich die Epochenanzahl erhöht, die Lernrate verringert, die Batchgröße angepasst und die Bildgröße verändert.
Die Mehrklassenklassifizierung dauert deutlich länger. Hier ist ein Screenshot des Modells, das nach einem Tag immer noch läuft. Manchmal erhalte ich die Meldung, dass der Speicher meiner NVIDIA-GPU nicht ausreicht. Ich habe aber nicht aufgegeben und nach einigen Versuchen ein sehr gutes Deep-Learning-Modell entwickelt, das die Bilder in verschiedene Klassen einteilt, z. B. in stabile und verschiedene Verblassungsmodi. Die Validierungsgenauigkeit lag bei 95 %. Ich war mit den Ergebnissen sehr zufrieden. Russ schlug außerdem vor, die Batchgröße oder die Anzahl der Epochen zu reduzieren, um den Speicherverbrauch zu senken. Das sind einige unserer Erkenntnisse.
Ich gehe noch einmal darauf zurück. Wie Sie sehen, lässt sich das binäre Klassifizierungsmodell mit dem Torch Deep Learning Add-in sehr einfach und schnell entwickeln. Mit dem Torch Companion Add-in können wir die Hyperparameter optimieren. Auch für Mehrklassen-Klassifizierungsprobleme lässt sich durch manuelle Hyperparameter-Optimierung ein gutes Modell erstellen. Russ, möchten Sie noch etwas hinzufügen?
Ja, das ist eine tolle Entwicklung, Fangyi, und ich weiß, dass einige unserer Kunden diesen Weg ebenfalls beschreiten. Das ist keine typische Schnellanalyse, wie wir sie von JMP kennen, da es sich um sehr große Datenmengen handelt und die Berechnungen extrem aufwendig sind. Es ist großartig, dass Sie Ihre NVIDIA-GPU nutzen können. Wissen Sie zufällig noch, wie viel Speicher die Grafikkarte hatte, Fangyi?
Ich glaube, es sind über 200, 256 Gigabyte.
GPUs haben üblicherweise 12 oder 16 Gigabyte Speicher. Ich meine den Speicher der GPU, nicht der CPU. Wir müssen das noch genauer prüfen, aber ich weiß, dass NVIDIA sehr viele verschiedene Karten anbietet. Es ist schwer, die richtige zu finden. Viele fragen uns heutzutage, welche Karte sie kaufen sollen. Das Gute an NVIDIA ist, dass sie aufgrund ihres Erfolgs immer bessere und günstigere Karten auf den Markt bringen. Ich habe gehört, dass ein neueres Modell in Planung ist. Es wird noch leistungsstärker und günstiger sein, sodass sich die Laufzeiten voraussichtlich verkürzen werden. Das hängt natürlich von verschiedenen Faktoren ab, insbesondere bei der Bearbeitung größerer Bilder.
Ich glaube, du bist letztendlich von 2 auf 4 umgestiegen, was eine Standardgröße ist. Das ist immer noch eine ziemlich gute Größe, und man kann die Karten wirklich ausnutzen, aber dann wird es teuer. Deshalb haben wir sie ja auch. Es ist wirklich toll, dass du diese High-End-Rechenleistung nutzen kannst, und mit etwas Geduld und Feintuning... Vielen Dank an Peter Hirsch und Scott Allen für dieses zusätzliche Add-in, das, wie ich weiß, vielen Leuten bekannt ist. Es ist einfach ein großartiges Add-in für Torch selbst, mit dem man schneller zu besseren Modellen kommt und einiges automatisieren kann.
Das ist der Punkt: Bei diesen langen Laufzeiten lässt man die Bilder manchmal über Nacht laufen und schaut am nächsten Tag nach. Ich denke, Sie haben mit der Automatisierung und den manuellen Anpassungen und dem Ausprobieren verschiedener Einstellungen die richtigen Schritte unternommen. Das ist meiner Meinung nach ratsam. So findet man oft nicht nur das beste Modell, sondern lernt auch mehr über das Problem und erkennt, welche Faktoren die Verbesserungen wirklich bewirken und welche weniger. Oft lässt sich das einfach nicht feststellen. Manchmal scheint ein bestimmtes Bildmodell die Beschaffenheit der Bilder besonders gut zu erfassen und erzielt oft deutlich bessere Ergebnisse als andere.
Manchmal sind sie alle ungefähr gleich, dann hängt es eher von der Bildgröße oder dem Trainingsverfahren ab. Man muss im Grunde ein paar Experimente durchführen, um verschiedene Dinge auszuprobieren, und genau so haben wir es eingerichtet. Es ist wichtig, und ich bin froh, dass Sie die Trainingsverlustkurve gezeigt haben, denn man sollte sie im Auge behalten, um sicherzustellen, dass sie abfällt und sich dann abflacht. Die sieht gut aus. Vorsicht ist jedoch geboten: In zwei Fällen sollte man sie nicht verwenden: wenn sie erst fällt und dann wieder ansteigt, insbesondere bei einer durchgezogenen Kurve.
Das würde auf Überanpassung hindeuten, was gelegentlich vorkommen kann. Ein anderer Fall wäre, wenn die Werte stetig sinken. In diesem Fall sollte man wahrscheinlich weitere Epochen berechnen, bis eine stärkere Konvergenz erreicht ist. Aber das sind alles Kleinigkeiten, kleine Tricks, die man mit der Zeit lernt. Mir macht es wirklich Spaß, weil es eine No-Code-Oberfläche ist. Man kann schnell mit der Modellierung beginnen, ohne sich mit dem Schreiben von Python-Code herumschlagen und diesen jedes Mal ändern zu müssen, wenn man etwas Neues ausprobieren möchte. Fangyi, das ist wirklich eine tolle Anwendung. Herzlichen Glückwunsch! Ich freue mich sehr darüber.
Danke, Russ. Zum Schluss noch einige Referenzen: Hier ein Link zur Dokumentation des JMP Torch Deep Learning Add-ins und ein Link zum Torch Companion Add-in. Ich habe vor einigen Jahren auf der Statistikkonferenz ASA, IMS, Spring Research Conference ein ähnliches Problem vorgestellt, als wir ein Modell mit Python entwickelten.
Ich möchte mich außerdem bei meinem P&G-Team für die bisherige Zusammenarbeit an diesem Problem bedanken. Wie Russ bereits erwähnte, gilt unser Dank auch Peter Hirsch für die Bereitstellung seines Storage Companion Add-ins. Das war's. Bei Fragen wissen Sie nun, an wen Sie sich wenden können: Russ oder mich. Es hat mir sehr viel Spaß gemacht, von Russ das JMP Torch Deep Learning Add-in zu lernen, und ich bin überzeugt, dass wir bei P&G noch viele weitere Anwendungsmöglichkeiten dafür finden werden. Vielen Dank.
Großartige Leistung, Fangyi. Vielen Dank.