KNN zur Prognose von Messdaten

Sie haben ein bestimmtes Projekt zu bearbeiten und wissen nicht, wie Sie an die Aufgabe heran gehen sollen? Sie sind sich nicht sicher, ob Ihr Netzentwurf zu Ihrem Problem passt oder ob es da Optimierungsmöglichkeiten gibt? Ist es überhaupt sinnvoll an Ihre Daten mit einem NN basierten Ansatz heranzugehen? Ist MemBrain das richtige Werkzeug für Ihr Problem und Ihre Infrastruktur?

Hier ist der richtige Platz für diese Art von Fragen.
Number8
Posts: 5
Joined: Thu 21. Jun 2018, 22:10

KNN zur Prognose von Messdaten

Post by Number8 »

Hallo liebe Forumsgemeinde und hallo Herr Jetter,

mit großem Interesse und natürlich auch mit Freude beschäftige ich mich derzeit mit MemBrain im Zusammenhang einer Projektarbeit für das Studium. Ich habe bereits zahlreiche Threads hier im Forum gelesen und bin von Ihrem enormen Engagement beim Support begeistert, weshalb ich mich nun auch gern an Sie und die Forumsgemeinde wenden möchte.

Hintergrund für meinen Thread ist Folgendes:
Im Bereich Maschinenbau gelten für die Produktion gewisse Toleranzgrenzen, anhand derer man die Qualität der Produkte beurteilt und die Qualität des Prozesses nachvollziehen kann. Das Produkt durchläuft dabei mehrere Stationen, an denen unterschiedliche Fertigungsschritte erfolgen und dabei auch Fertigungsdaten wie z.B. das Drehmoment beim Verschrauben detektiert werden. Am Ende der Fertigungslinie wird jedes Produkt vermessen und diese Daten werden ebenfalls aufgenommen.

Ziel:
Prognose der Messdaten am Ende der Produktion, wodurch frühzeitig Prozessschwankungen, deren Trend sich nach außerhalb der Toleranzgrenzen bewegt, erkannt werden können. (Möglichkeit des Eingriffs in die Produktion, bevor man etwas außerhalb der Toleranzgrenzen produziert hat)

Mir ist natürlich bewusst, dass man keine konkreten Werte mit 100% Treffgenauigkeit vorhersagen kann, aber prinzipiell lassen sich, wie ich auch aus diesem Forum erfahren habe, Prognosen für unterschiedlichste Bereiche relativ gut mit KNN erstellen. Doch leider habe ich im Moment noch etwas Probleme die geeigneten Input- und Output-Variablen zu erkennen. Ich habe bisher mit den Beispielnetzen aus „MackeyGlassTimeVariant“ eine Prognose für eine Zeitreihe erstellt. Dafür habe ich Messdaten ähnlich des Beispiels mit „t+3“ bzw. „t+1“ prognostizieren lassen. Aber in diesem Fall wären ja die vorher gesammelten Fertigungsdaten ungenutzt.

Haben ihr eventuell bereits ähnliche Zielstellungen gesehen und bei deren Umsetzung unterstützt und können mir nun weiterhelfen?

Beste Grüße
Number8
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: KNN zur Prognose von Messdaten

Post by TJetter »

Hallo und Willkommen,

beim Mackey-Glass Beispiel handelt es sich um ein Zeitreihenproblem. Die hier vorliegende Fragestellung benötigt aus meiner Sicht keine Zeitreihenbetrachtung. Vielmehr sollte hier ein zeitunabhängiges Netz vollauf genügen (was die Sache sehr vereinfacht).
Im Prinzip gilt es zunächst nur festzustellen:
1.) Welche Werte soll das Netz vorhersagen? --> Das werden die Outputs
2.) Was sind die Werte, die diese Vorhersagen bestimmen(sollen) --> Das werden die Inputs

Dabei sollte man immer den letztendlichen Anwendungsfall im Auge haben. Also: Wie möchte ich das Netz später verwenden?
Beispiel: Ich gebe dem Netz Drehmomente, Anpresskräfte, Zerspanungsgeschwindigkeiten etc. als Eingänge und versuche daraus die Abmaße (Abweichzungen vom Soll) des fertigen Werkstücks vorherzusagen. Also:
Inputs : Drehmomente, Anpresskräfte, Zerspanungsgeschwindigkeiten
Outputs: Abmaße

Für jeden Input und jeden Output sieht man i.d.R. ein eigenes Neuron vor.

Gerne mal hier einen Beipsieldatensatz posten. Wenn vertraulich, dann am besten per E-Mail.

Viele Grüße
Thomas Jetter
Number8
Posts: 5
Joined: Thu 21. Jun 2018, 22:10

Re: KNN zur Prognose von Messdaten

Post by Number8 »

Hallo Herr Jetter,

zunächst einmal vielen Dank für die schnellen Antworten.

Das Prinzip der Inputs und der Outputs habe ich, dank vieler Erklärungen von Ihnen aus anderen Threads, bereits verstanden. Das Problem könnte eventuell in der Anzahl der Inputs und Outputs liegen, weshalb ich mir auch noch keinen perfekten Datensatz zusammengestellt habe (obwohl genügend Daten vorhanden sind).
Problem ist folgendes: Jedes Produkt wird an jeder Station an mehreren Punkten gefügt und für jeden dieser ca. 20-30 Fügepunkte (Anzahl variiert je nach Station und Fügetechnologie) habe ich dann meine eigentlichen Input-Variablen wie z.B. das Drehmoment. Nun erhalte ich aber für 4 oder 5 Stationen und das nochmal für jede Technologie eine extrem große Anzahl an potentiellen Inputs (nur mal ein Beispiel mit Zahlen, die nur zum Abschätzen dienen sollen: 3 Inputvariablen x 30 Fügepunkte x 5 Stationen x 3 Technologien = 1350 potenzielle Inputs).
Ähnlich, wenn auch nicht in diesem Ausmaß, verhält es sich mit den Messdaten am Ende der Fertigungslinie. Dabei werden zwischen 50 und 100 Messpunktdaten mit je 1-3 Variablen erfasst (Abweichungen in X, Y und Z). Um so einen Datensatz zusammenzustellen würde ich sicherlich auch etwas Zeit benötigen, da die bisherigen Datensätze nicht in so einem großen Rahmen existieren.

Sind dies zu viele Input- und Output-Variablen? Mir erscheint, dass dieser Ansatz in einem zu gewaltigen Netz enden würde. Leider werden nur die allgemeinen geometrischen Daten des Produktes erfasst und eine direkte Zuordnung eines Messpunktes zu einem Fügepunkt ist nicht möglich, da kein Fügepunkt an sich vermessen wird. Sehen Sie da eine Möglichkeit dies zu reduzieren oder zumindest für effektive Tests einzuschränken?

Ich hoffe, dass ich das Problem etwas besser verdeutlichen konnte und Sie mir eventuell helfen können. Aber ich befürchte schon, dass es darauf hinausläuft ein Netz mit mehr als 1000 Inputdaten zu erstellen. Doch ein Netz mit zu vielen Output-Variablen, so erschien es mir in den meisten Threads, ist nicht zielführend oder?

Hat MemBrain eigentlich im Hinblick auf die Netzgröße kapazitive Grenzen?

Viele Grüße
Number8
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: KNN zur Prognose von Messdaten

Post by TJetter »

Ja, das sind tatsächlich recht viele Inputs und Outputs. Das größte Problem entsteht dabei in der sehr sehr umfangreichen Datenmenge, die benötigt wird, um den Eingangsraum aussagekräftig während des Trainings abzudecken.
Ich frage mich allerdings viel mehr, wie ein solches NN - mal engenommen man bekommt es gut trainiert und validiert - in der Praxis angewendet würde. Und das ist bestimmt auch der richtige Denk-Ansatz hin zu einem kleineren, beherrschbaren NN:
- Ist das Ziel tatsächlich, an einer Station an einer Fügung in einer Variablen eine Fügeabweichung zu verändern und dann zu sehen, wie sich das an welchen Endprodukt-Punkten in welchen Raumdimensionen wie auswirkt? Das mag natürlich von wissenschaftlichem Interesse sein, keine Frage. Wie würde ein solches Wissen aber sinnvoll genutzt werden, um den gesamten Herstellungsprozess zu verbessern?
- Gibt es denn ein integrales Maß zur Güte/Maßhaltigkeit des Endprodukts? Könnte man das als Ausgangsgröße wählen, so dass die Anzahl der Outputs massiv reduziert werden könnte? Oder gibt es evtl. funktional zusammengehörige Ausgangswerte, die eine zusammengefasste Maßhaltigkeitsaussage nach Funktionsbereichen zulassen würden? Ich weiß nicht, um was für ein Teil es hier geht. Lässt sich das Bauteil auf eine überschaubare Anzahl Schnittstellen reduzieren, für die jeweils eine separate Maßhaltigkeitszahl bestimmbar ist. Ich denke z.B. daran, dass evtl. 10 verschiedene Maße des Endprodukts für eine einzige mechanische Schnittstelle maßgebend sind. Welches der Einzelmaße nun letztendlich wie abweicht, ist evtl. ja gar nicht wichtig, Hauptsache man weiß, ob die Schnittstelle ingesamt noch im Akzeptanzbereich liegt und evtl. wie 'gut'. Macht das Sinn?

Bzgl. der Inputs:
- Sind wirklich alle Technoilogien für alle Fügestellen anwendbar?
- Macht es evtl. Sinn, die Technologie nur global für die ganze Fertigung vorzugeben? Oder evtl. pro Station?
- Könnte man vielleicht ein separates Netz für jede Station aufbauen?
nur mal ein Beispiel mit Zahlen, die nur zum Abschätzen dienen sollen: 3 Inputvariablen x 30 Fügepunkte
Warum 3 Variablen? Sind das Abmaße der Fügestelle in den drei Raumrichtungen? Wenn ja: Werden diese denn für jede Fügestelle erfasst? Und noch wichtiger: Lassen sie sich gezielt beeinflussen, um den Prozess zu verbessern? An welchen Dingen können Sie nachher wirklich 'drehen', um den Prozess zu verbessern? Nur das sollten Ihre Inputs sein. Evtl. sind das ja ganz andere Dinge, z.B. nur die Technologie pro Fügestelle.

Sind natürlich erst mal alles nur Gedanken, ist etwas schwierig, ohne Detailinformationen.
Thomas Jetter
Number8
Posts: 5
Joined: Thu 21. Jun 2018, 22:10

Re: KNN zur Prognose von Messdaten

Post by Number8 »

Hallo Herr Jetter,

erneut vielen Dank für Ihr Bemühen und Ihre konstruktiven Denkansätze. Ich versuche zunächst auf Ihre Fragen einzugehen.
Ist das Ziel tatsächlich, an einer Station an einer Fügung in einer Variablen eine Fügeabweichung zu verändern und dann zu sehen, wie sich das an welchen Endprodukt-Punkten in welchen Raumdimensionen wie auswirkt? Das mag natürlich von wissenschaftlichem Interesse sein, keine Frage. Wie würde ein solches Wissen aber sinnvoll genutzt werden, um den gesamten Herstellungsprozess zu verbessern?
Idealerweise wäre dies tatsächlich das bestmögliche Szenario, da man genauestens sagen könnte, an welchem Endprodukt-Messpunkt man eine Veränderung erwartet und welcher Fügepunkt an welcher Station wahrscheinlich dafür verantwortlich wäre. Somit könnte man sofort an die Anlagen-Station gehen und evtl. eine Stellmaßnahme an den Maschinen bewirken. Damit würde man viel Zeit bei der Analyse dieser Thematiken einsparen.
Gibt es denn ein integrales Maß zur Güte/Maßhaltigkeit des Endprodukts? Könnte man das als Ausgangsgröße wählen, so dass die Anzahl der Outputs massiv reduziert werden könnte?
Leider gibt es dahingehend kein Maß.
Oder gibt es evtl. funktional zusammengehörige Ausgangswerte, die eine zusammengefasste Maßhaltigkeitsaussage nach Funktionsbereichen zulassen würden? Ich weiß nicht, um was für ein Teil es hier geht. Lässt sich das Bauteil auf eine überschaubare Anzahl Schnittstellen reduzieren, für die jeweils eine separate Maßhaltigkeitszahl bestimmbar ist. Ich denke z.B. daran, dass evtl. 10 verschiedene Maße des Endprodukts für eine einzige mechanische Schnittstelle maßgebend sind. Welches der Einzelmaße nun letztendlich wie abweicht, ist evtl. ja gar nicht wichtig, Hauptsache man weiß, ob die Schnittstelle insgesamt noch im Akzeptanzbereich liegt und evtl. wie 'gut'. Macht das Sinn?


Dieser Ansatz scheint mir recht zielführend und daher versuche ich, auch in Rücksprache mit meinem Betreuer, die Outputs so einzuschränken, dass man die Qualität von Bereichen des Endproduktes prognostiziert. Dafür wird wohl noch etwas Arbeit notwendig sein, um geeignete Output-Werte zu generieren.
Hierzu habe ich jedoch noch eine Frage: Sind kleinere bzw. überschaubarere Netze im Hinblick auf die Qualität ihrer Aussagen und Rechenzeit besser als überdimensionale große Netze (vom Aufwand des Aufbaus und der übermäßig umfangreichen Datenmenge, die notwendig wären mal abgesehen)?
Bzgl. der Inputs:
- Sind wirklich alle Technologien für alle Fügestellen anwendbar?
- Macht es evtl. Sinn, die Technologie nur global für die ganze Fertigung vorzugeben? Oder evtl. pro Station?
- Könnte man vielleicht ein separates Netz für jede Station aufbauen?
An sich ist natürlich jeder Fügestelle nur eine Fügetechnologie zugeordnet. Mit meinen vorherigen Ausführungen meinte ich, dass man pro Technologie eine gewisse Anzahl an Fügestellen hat. Sicherlich wäre es auch möglich, dass man die Technologien einzeln betrachtet bzw. für jede Station technologiespezifisch ein eigenes Netz aufbaut, um den Umfang der Inputs übersichtlich für die Anwendung zu gestalten.
Warum 3 Variablen?
Mit 3 Variablen meinte ich in diesem Fall z.B. Drehmoment, Drehzahl, usw. Ich entschuldige mich, dass dies zur Verwirrung geführt hat. Dies sollte lediglich einem Überschlag zum Abschätzen der Inputs dienen, um die Problematik der potenziellen Netzgröße zu verdeutlichen.
An welchen Dingen können Sie nachher wirklich 'drehen', um den Prozess zu verbessern? Nur das sollten Ihre Inputs sein. Evtl. sind das ja ganz andere Dinge, z.B. nur die Technologie pro Fügestelle.
Die Dinge an denen ich nachher wirklich 'drehen' kann wäre schon beispielsweise das Drehmoment oder die Drehzahl. Dennoch werde ich dies mit in die Rücksprache mit meinem Betreuer aufnehmen, da es eventuell geeignetere „Stellmaßnahmen“ gibt, die ich auch als Inputs verwenden könnte und den Umfang der Inputs ebenfalls reduzieren könnten.

Ich hoffe, dass ich Ihre Fragen zufriedenstellend beantworten konnte und werde nun Ihre Gedanken weiter im Dialog mit meinem Betreuer diskutieren und mich dann erneut hier melden.
Können Sie mir bitte dafür noch die Frage aus dem oberen Bereich dieses Posts zur Qualität und der Rechenzeit in Abhängigkeit von der Netzgröße beantworten?

Ich wünsche Ihnen noch einen schönen Tag!

Viele Grüße
Number8
Number8
Posts: 5
Joined: Thu 21. Jun 2018, 22:10

Re: KNN zur Prognose von Messdaten

Post by Number8 »

Hallo Herr Jetter,

mir ist noch eine weitere Frage in den Sinn gekommen: Worin besteht der Unterschied zwischen dem Validieren und dem "Think on Input"? Teste ich nicht eigentlich in beiden Fällen, wie gut ein trainiertes Netz unbekannte Fälle verarbeitet?

Viele Grüße
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: KNN zur Prognose von Messdaten

Post by TJetter »

"Think onInput" ist eine technische Funktion in MemBrain (Button auf dem Lesson Editor): Die momentan im Lesson Editor angezeigten Eingangsdaten (also genau ein Eingangsvektor) werden an das Netz angelegt und das Netz berechnet seine Outputs daraus (1 Berechnungsschritt = 1 'Think Step').
Ob die momentan angezeigten Inputs aus einer Trainings- oder Validierungslesson stammen, oder auch spontan in den Lesson Editor eingetippt wurden, spielt dabei keine Rolle.
Das Validieren eines Netzes bechreibt ein Vorgehen zur Bestimmung der Qualität eines Netzes: Es werden alle Datensätze (also alle Vektoren) eines vorab definierten Validierungsdatensatzes an das Netz angelegt, für alle diese Vektoren wird ein Berechnungsschritt des Netzes durchgeführt. Die Ausgabedaten werden auzgezeichnet. Dann erfolgt eine Berechnung der Abweichung Soll/Ist sowie eine Bewertung: "Ist das Netz gut genug für meine Zwecke oder nicht?"

Daraus wird ersichtlich, dass eine Validierung zum Einen einen umfangreicheren Funktionsablauf implementieren muss. Zum Anderen stellt sie aber auch eine anwendungsspezifische Bewertung der Ergebnisse dar. Aus diesem Grund macht man das idealerweise mit einem Skript (wie z.B. hier im Forum im Bereich 'Scripting' verlinkt: viewtopic.php?f=13&t=232.

Viele Grüße
Thomas Jetter
Number8
Posts: 5
Joined: Thu 21. Jun 2018, 22:10

Re: KNN zur Prognose von Messdaten

Post by Number8 »

Vielen Dank für die schnelle Antwort Herr Jetter und vor allem für die ausführlichen Erläuterungen. Die Funktion Skripte zu nutzen ist wirklich extrem hilfreich, weshalb ich mich zukünftig auch noch einmal genauer damit auseinandersetzen werde.

Sind kleinere bzw. überschaubarere Netze im Hinblick auf die Qualität ihrer Aussagen und Rechenzeit besser als überdimensionale große Netze (vom Aufwand des Aufbaus und der übermäßig umfangreichen Datenmenge, die notwendig wären mal abgesehen)? Gibt es da gewisse Richtwerte z.B. max. 50 Inputs und max. 5 Outputs oder kann man das nicht pauschalisieren?

Beste Grüße und schönen Tag (sonnig ist es ja bereits ;) )
Number8
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: KNN zur Prognose von Messdaten

Post by TJetter »

Sind kleinere bzw. überschaubarere Netze im Hinblick auf die Qualität ihrer Aussagen und Rechenzeit besser als überdimensionale große Netze (vom Aufwand des Aufbaus und der übermäßig umfangreichen Datenmenge, die notwendig wären mal abgesehen)? Gibt es da gewisse Richtwerte z.B. max. 50 Inputs und max. 5 Outputs oder kann man das nicht pauschalisieren?
Pauschalieren kann man bestimmt nichts, aber die Rechenzeit für das Training steigt eher exponentiell mit der Netzgröße:
Die Rechenzeit pro Daten-Muster (Vektor) steigt in etwa linear mit der Anzahl zu trainierender Links/Gewichte. Allerdings benötigt man bei steigender Anzahl Links/Gewichte eine exponentiell ansteigende ANzahl Datenmuster, um den Eingangs-Datenraum ausreichend mit Trainingsbeispielen abzudecken. Damit steigt die Dauer eines Trainingsdurchlaufs einer Lesson (= 1 Epoche) natürlich auch exponentiell.
Prinzipiell kann man jedoch nicht sagen, dass die Vorhersagequalität mit der Netzgröße abnimmt. Man muss eben nur entsprechend umfangreicher Trainieren. Das lässt einem natürlich wieder weniger Zeit für weitere Experimente, und damit kann man nicht so umfangreich optimieren.
Thomas Jetter
MartinL
Posts: 5
Joined: Tue 12. Nov 2019, 10:50

Re: KNN zur Prognose von Messdaten

Post by MartinL »

Hier würde ich gern etwas zu nachfragen. Ich lese mich auch gerade in das Thema neuronale Netze ein und habe in der Arbeit von David Kriesel von der Problematik gelesen, dass zu große Netze Gefahr laufen, die Trainingsdaten nur auswendig zu lernen und dadurch die Fähigkeit verlieren würden, zu abstrahieren. Das Netz würde dann zwar einen sehr geringen Fehler bei den Trainingsdaten haben, würde aber schlechte Ergebnisse bei den Validierungsdaten liefern.

Wäre das dann nicht ein Kriterium für die Netzgröße? Also angenommen, man hat genug Rechenzeit und Trainingsdaten, das Netz so groß zu bauen, bis der Fehler bei der Validierung wieder ansteigt?

Oder habe ich das falsch verstanden?

EDIT: "Generalisieren", das war das Wort, was ich eben nicht gefunden habe. Zu große Netze würden schlechter generalisieren, da sie die Trainingsdaten nur auswendig lernen würden. So habe ich das verstanden.

Viele Grüße
Martin
Post Reply