Ottimizzazione di reti neurali con solutori lineari |  di Tim Forster |  Febbraio 2024

 | Intelligenza-Artificiale

Come ottimizzare le reti neurali non lineari in più di una dimensione utilizzando solutori lineari.

fotografato da Sam Moghaddam Khamseh SU Unsplash

Recentemente mi sono imbattuto in un problema che mi richiedeva di creare un modello che accettasse più di una funzionalità di input e prevedesse un output continuo.

Quindi, dovevo ottenere il miglior risultato possibile da quel modello, che nel mio caso era il valore numerico più basso possibile. Quindi, in altre parole, dovevo risolvere un problema di ottimizzazione.

Il problema era (e me ne sono reso conto solo in quella fase) che l’ambiente in cui lavoravo non mi permetteva di usare cose non lineari o strutture sofisticate, quindi niente reti neurali, niente solutori non lineari, niente…

Tuttavia, il modello che ho creato ha funzionato bene (considerando il basso numero di punti dati su cui l’ho addestrato) e non volevo eliminare tutti i miei codici e iniziare da zero con un modello lineare.

Quindi, dopo una tazza di caffè ☕, ho deciso di utilizzare questo modello non lineare che avevo già allenato per generare una serie di piccoli modelli lineari. Quindi potrei usare un risolutore lineare per risolvere il problema di ottimizzazione.

Forse non sembra l’idea migliore o più promettente, ma almeno sembra entusiasmante 😄.

Questo taccuino è un esempio passo passo di come ha funzionato l’intera faccenda. Quindi prendi un caffè ☕, avvia Python 🐍 e seguimi 😄.

Pertanto, i passaggi iniziali che ho menzionato sopra sono visualizzati nella Figura 1.

Abbiamo alcune funzionalità X E e ho potuto osservare alcuni output f(x,y) dal mondo reale. Il set di dati che abbiamo raccolto era relativamente piccolo. Inoltre, abbiamo effettuato questo campionamento in passato e non siamo in grado di raccogliere più campioni. Se vogliamo trovare un ottimo utilizzando direttamente questi punti dati o un’interpolazione lineare tra di essi, potremmo ottenere risultati imprecisi, quindi utilizziamo un altro metodo.

Come accennato, ho utilizzato questo piccolo set di dati per addestrare un modello. Atteniamoci qui a una rete neurale artificiale (ANN) e descriviamo la rete neurale addestrata come F(x,y). Quindi, possiamo utilizzare questo modello e valutarlo tutte le volte che vogliamo.

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *