Ein Deep-Learning-Algorithmus zur Optimierung des Ergebnisses

10

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?

Frank Malenfant
quelle
Das ist eine wirklich interessante Frage! Willkommen bei AI.
DukeZhou
Ich habe mir erlaubt, die Frage für mehr Klarheit zu bearbeiten. War nicht sicher, was ich damit anfangen sollte: "Wert pro cm², der diesem Block eine optimale Priorität gegenüber anderen gibt" Meinst du damit, einem Block einen optimalen Wert in Bezug auf seine Priorität gegenüber anderen Blöcken zu geben?
DukeZhou
@DukeZhou Der Algorithmus der Maschine multipliziert den Wert, den ich zu optimieren versuche, mit der gesamten 2D-Fläche des Blocks (Breite x Länge), um eine "Punktzahl" zu erstellen und jede Diele zu schneiden, um die maximale Punktzahl zu erhalten. Wenn ich die Fläche des Blocks im Algorithmus zusammenstelle, könnte ich die Punktzahl bestimmen und sie dann durch die Fläche teilen. Alles in allem liegt das Hauptaugenmerk darauf, sicherzustellen, dass die höchste Punktzahl dem höchsten Bedarf entspricht, damit das Ziel der Maschine das gleiche wie das unsere ist.
Frank Malenfant
@DukeZhou Entschuldigung, wenn es nicht so klar ist wie es könnte, ist Englisch meine zweite Sprache.
Frank Malenfant
1
@DukeZhou hier. Ich habe es durch den Begriff Multiplikator ersetzt und einige zusätzliche Informationen über seine Verwendung gegeben.
Frank Malenfant

Antworten:

2

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.

Ginge
quelle