Ich bin ziemlich neu im Deep Learning, aber ich denke, ich habe genau die richtige reale Situation gefunden, um damit zu beginnen. Das Problem ist, dass ich solche Algorithmen nur verwendet habe, um Ergebnisse vorherzusagen. Für mein neues Projekt benötige ich Informationen, mit denen eine Maschine gespeist werden kann , um die Ergebnisse zu optimieren . Könnte jemand kurz erklären, wie ich vorgehen soll? Ich stecke fest.
Hier ist die Situation:
Ich habe eine Maschine, die Holzbretter mit verschiedenen Holzqualitäten über ihre gesamte Länge nimmt und sie in Blöcke schneiden muss, die in einer Schnittliste angegeben sind. Diese Maschine wählt immer die höchste Punktzahl, die sie von einer bestimmten Planke erhalten kann. Die Punktzahl wird erhalten, indem die Fläche jedes Blocks mit seinem Multiplikator multipliziert wird . Der Algorithmus, den ich erstellen möchte, muss dieser Maschine einen Multiplikator für jeden Block geben, der in einer Schnittliste aufgeführt ist. Die gesamte physische Leistung dieser Maschine wird von einem Roboter bis zur Verwendung in den Regalen gelagert. Die Schneidemaschine darf Teile einer Diele herabstufen, wenn dies dazu beiträgt, eine höhere Punktzahl zu erreichen.
Der Wert muss als Anreiz für die Maschine dienen, mir den Block zu geben, den ich am meisten brauche, ohne zu viel Holz herabzustufen.
OPTIMIERUNGSZIELE
- Stellen Sie sicher, dass jeder Block zum gewünschten Zeitpunkt auf Lager ist, jedoch nicht ohne Grund zu früh
- Herabstufung so wenig Holzfläche wie möglich (einige Arten sind sehr teuer)
EINGABEKNOTEN
- Zeitspanne, bevor dieser Block benötigt wird
- Holzsorte für diesen Block
- Menge dieses Blocks benötigt
- Blockbereich (Vielleicht?)
FEEDBACK FÜR DEN ALGORITHMUS
- Zeit im Voraus, bis der Block fertig war (muss so niedrig wie möglich sein)
- Holzfläche herabgestuft * Anzahl der übersprungenen Sorten
ERWARTETE RÜCKGABEDATEN
- Ein Multiplikator , der diesem Block eine optimale Priorität gegenüber anderen gibt
INFORMATIONEN HABE ICH NICHT ABER KÖNNTE
- Mittleres Verhältnis jeder Sorte für jede Holzart
Was ich bisher herausgefunden habe, ist, dass ich möglicherweise mein Feedback in nur einem Wert zerschlagen muss, um es zum Ausgabeknoten zu machen. Das Problem ist, dass ich nicht verstehen kann, wie dieser Algorithmus zur Bestimmung eines Multiplikators verwendet wird . Bin ich falsch darin, dies durch tiefes Lernen zu lösen?
quelle
Antworten:
Deep-Learning-Modelle für Regressionsaufgaben sind ziemlich schwierig zu trainieren, daher würde ich vorschlagen, nicht mit ihnen zu beginnen. Stattdessen würde ich mit einem der folgenden Ansätze beginnen und vielleicht versuchen, danach Deep Learning anzuwenden.
Ein klassischer Ansatz für das Problem könnte darin bestehen, Ihre Optimierungssoftware zu analysieren, und dies würde Sie wahrscheinlich zu einem deterministischen Algorithmus führen.
Es gibt verschiedene Möglichkeiten, Ihre Optimierungssoftware als Black Box zu behandeln - geben Sie ihr eine Vielzahl von Eingaben, notieren Sie sich die Variablen, an denen Sie interessiert sind (Ausführungszeit, Schnittergebnisse usw.), und versuchen Sie, eine Art oder einen Regressor darauf zu setzen .
Eine Möglichkeit besteht darin, Kouroshs Idee zu folgen und sie als klassisches Optimierungsproblem zu formulieren.
Wenn Sie maschinelle Lernwerkzeuge bevorzugen, würde ich vorschlagen, dass Sie mit einem einfachen Modell wie der linearen Regression beginnen, um zu überprüfen, ob die Daten ein Signal enthalten, das Sie verwenden können. Anschließend können Sie leistungsfähigere Algorithmen wie xgboost, Regressionsbäume usw. betrachten.
quelle