Un algoritmo di apprendimento profondo per ottimizzare il risultato


10

Sono abbastanza nuovo per l'apprendimento profondo, ma penso di aver trovato la giusta situazione nel mondo reale per iniziare ad usarlo. Il problema è che ho usato tali algoritmi solo per prevedere i risultati. Per il mio nuovo progetto, ho bisogno di informazioni per alimentare una macchina per ottimizzare i risultati. Qualcuno potrebbe spiegare brevemente come dovrei procedere? Sono bloccato.

Ecco la situazione:

Ho una macchina che prende assi di legno con diversi gradi di legno disponibili per tutta la sua lunghezza e deve tagliarlo in blocchi forniti in una lista di taglio. Questa macchina sceglierà sempre il punteggio più alto che può ottenere da una determinata tavola. Il punteggio si ottiene moltiplicando l' area di ciascun blocco per il suo moltiplicatore . L'algoritmo che voglio costruire deve dare a quella macchina un moltiplicatore per ogni blocco elencato in una lista di taglio. Tutta la produzione fisica di questa macchina sarà immagazzinata da un robot sugli scaffali fino a quando non sarà necessaria. La macchina da taglio è autorizzata a declassare parti di una tavola se aiuta a raggiungere un punteggio più alto.

Il valore deve fungere da incentivo per la macchina a darmi il blocco di cui ho bisogno di più senza declassare troppo legno.

OBIETTIVI DI OTTIMIZZAZIONE

  • Assicurati che ogni blocco sia disponibile nel momento in cui è necessario, ma non troppo presto senza motivo
  • Declassare il minor spazio possibile di legno (alcune specie sono molto costose)

NODI DI INGRESSO

  • Quantità di tempo prima che questo blocco sia necessario
  • Grado di legno per questo blocco
  • Quantità di questo blocco necessaria
  • L'area del blocco (forse?)

RISPOSTE FORNITE ALL'ALGORITMO

  • Tempo in anticipo che il blocco era pronto (deve essere il più basso possibile)
  • Area del legno declassata * numero di voti saltati

DATI DI RITORNO PREVISTO

  • Un moltiplicatore che darà a quel blocco un'ottima priorità rispetto agli altri

INFORMAZIONI CHE NON HO MAI POTREBBE RACCOLTO

  • Rapporto medio di ogni grado per ogni specie di legno

Ciò che ho capito finora è che potrei aver bisogno che il mio feedback venga suddiviso in un solo valore per renderlo il nodo di output. Il problema è che non riesco a capire come realizzare questo algoritmo per determinare un moltiplicatore . Sbaglio nel cercare di risolvere questo problema attraverso l'apprendimento profondo?


Questa è una domanda davvero interessante! Benvenuto in AI.
DukeZhou

Mi sono preso la libertà di modificare la domanda per maggiore chiarezza. Non sapevo bene cosa fare: "Valore per cm² che darà a quel blocco una priorità ottimale rispetto ad altri" Intendi dare a un blocco un valore ottimale rispetto alla sua priorità rispetto ad altri blocchi?
DukeZhou

@DukeZhou L'algoritmo della macchina moltiplica il valore che sto cercando di ottimizzare per l'area 2D totale del blocco (larghezza x lunghezza) al fine di creare un "punteggio" e tagliare ogni tavola per ottenere il punteggio massimo. Se analizzo l'area del blocco nell'algoritmo, potrei quindi determinare il punteggio e quindi dividerlo per l'area. Tutto sommato, l'obiettivo principale è assicurarsi che il punteggio più alto corrisponda al bisogno più elevato in modo che l'obiettivo della macchina sia uguale al nostro.
Frank Malenfant,

@DukeZhou Scusate se non è il più chiaro possibile, l'inglese è la mia seconda lingua.
Frank Malenfant,

1
@DukeZhou Qui. L'ho sostituito con il termine moltiplicatore e ho fornito alcune informazioni aggiuntive sul suo utilizzo.
Frank Malenfant,

Risposte:


2

I modelli di deep learning per le attività di regressione sono piuttosto difficili da addestrare, quindi suggerirei di non iniziare con loro. Invece, inizierei con uno degli approcci seguenti e forse proverò ad usare l'apprendimento profondo in seguito.

Un approccio classico al problema potrebbe essere quello di analizzare il tuo software di ottimizzazione e questo probabilmente ti condurrebbe ad un algoritmo deterministico.

Diversi approcci possono essere quelli di trattare il tuo software di ottimizzazione come una scatola nera: forniscigli un'ampia gamma di input, annota le variabili che ti interessano (tempo di esecuzione, risultati di taglio, ecc.) E prova ad adattarti a qualche tipo o regressore su di esso .

Un'opzione è seguire l'idea di Kourosh e formularla come un classico problema di ottimizzazione.

Se preferisci utilizzare strumenti di apprendimento automatico di quanto suggerirei di iniziare con un modello semplice come la regressione lineare solo per verificare che ci sia qualche segnale nei dati che è possibile utilizzare. Successivamente puoi guardare algoritmi più potenti come xgboost, alberi di regressione, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.