Dalle reti bayesiane alle reti neurali: come la regressione multivariata può essere trasposta in una rete multi-output


20

Ho a che fare con un modello lineare gerarchico bayesiano , qui la rete lo descrive.

Modello grafico che descrive il problema

Y rappresenta le vendite giornaliere di un prodotto in un supermercato (osservato).

X è una matrice nota di regressori, inclusi prezzi, promozioni, giorno della settimana, tempo, festività.

S è il livello di inventario latente sconosciuto di ciascun prodotto, che causa la maggior parte dei problemi e che considero un vettore di variabili binarie, uno per ogni prodotto con1 indica lo stock e quindi l'indisponibilità del prodotto. Anche se in teoria sconosciuto l'ho stimato tramite un HMM per ogni prodotto, quindi deve essere considerato noto come X.Ho appena deciso di non oscurarlo per un corretto formalismo.

è un parametro di effetto misto per ogni singolo prodotto in cui gli effetti misti considerati sono il prezzo del prodotto, le promozioni e lo stock.η

è il vettore dei coefficienti di regressione fissi, mentre b 1 e b 2 sono i vettori del coefficiente di effetti misti. Un gruppo indica ilmarchioe l'altro indica ilsapore(questo è un esempio, in realtà ho molti gruppi, ma qui ne riporto solo 2 per chiarezza).βb1b2

, Σ b 1 e Σ b 2 sono iperparametri sugli effetti misti.ΣηΣb1Σb2

Dal momento che ho i dati di conteggio diciamo che considero ogni vendita di prodotti come Poisson distribuito in base ai Regressori (anche se per alcuni prodotti vale l'approssimazione lineare e per altri un modello a zero inflazione è migliore). In tal caso avrei per un prodotto ( questo è solo per chi è interessato al modello bayesiano stesso, saltare alla domanda se lo trovi interessante o non banale :) ):Y

ΣηIW(α0,γ0)

Σb1IW(α1,γ1)

, α 0 , γ 0 , α 1 , γ 1 , α 2 , γ 2 noto.Σb2IW(α2,γ2)α0,γ0,α1,γ1,α2,γ2

ηN(0,Ση)

b1N(0,Σb1)

b2N(0,Σb2)

, Σ β noto.βN(0,Σβ)Σβ

,λtijk=βXti+ηiXppsti+b1jZtj+b2kZtk

YtijkPoi(exp(λtijk))

, j 1 , , m 1 , k 1 , , m 2i1,,Nj1,,m1k1,,m2

matrice di effetti misti per i 2 gruppi, X p p s i indicando prezzo, promozione e stockout del prodotto considerato. I W indica distribuzioni inverse di Wishart, generalmente utilizzate per matrici di covarianza di normali priori multivariati. Ma non è importante qui. Un esempio di una possibile Z i potrebbe essere la matrice di tutti i prezzi, o potremmo anche dire Z i = X i . Per quanto riguarda i priori per la matrice varianza-covarianza ad effetti misti, proverei semplicemente a preservare la correlazione tra le voci, in modo che σ i j sia positivo seZiXppsiIWZiZi=Xiσij e j sono prodotti della stessa marca o di uno stesso sapore. ij

L'intuizione alla base di questo modello sarebbe che le vendite di un determinato prodotto dipendono dal suo prezzo, dalla sua disponibilità o meno, ma anche dai prezzi di tutti gli altri prodotti e dalle scorte di tutti gli altri prodotti. Dato che non voglio avere lo stesso modello (leggi: stessa curva di regressione) per tutti i coefficienti, ho introdotto effetti misti che sfruttano alcuni gruppi che ho nei miei dati, attraverso la condivisione dei parametri.

Le mie domande sono:

  1. C'è un modo per trasporre questo modello in un'architettura di rete neurale? So che ci sono molte domande che cercano le relazioni tra la rete bayesiana, i campi markov casuali, i modelli gerarchici bayesiani e le reti neurali, ma non ho trovato nulla che vada dal modello gerarchico bayesiano alle reti neurali. Faccio la domanda sulle reti neurali poiché, avendo un'elevata dimensionalità del mio problema (considera che ho 340 prodotti), la stima dei parametri tramite MCMC richiede settimane (ho provato solo per 20 prodotti che eseguono catene parallele in runJags e ci sono voluti giorni di tempo) . Ma non voglio andare a caso e dare dati a una rete neurale come una scatola nera. Vorrei sfruttare la struttura di dipendenza / indipendenza della mia rete.

Qui ho appena disegnato una rete neurale. Come si vede, regressori ( e s io indico rispettivamente prezzo e stockout del prodotto i ) nella parte superiore sono inputed allo strato nascosto come lo sono quelli prodotti specifici (prezzi Qui ho considerato e rotture di stock). PiSii(I bordi blu e nero non hanno un significato particolare, era solo per rendere la figura più chiara). Inoltre e Y 2 potrebbero essere altamente correlati mentre Y 3Y1Y2Y3potrebbe essere un prodotto totalmente diverso (pensate a 2 succhi d'arancia e vino rosso), ma non utilizzo queste informazioni nelle reti neurali. Mi chiedo se le informazioni di raggruppamento vengano utilizzate solo nell'inizializzazione del peso o se si possa personalizzare la rete in base al problema.

esempio di burattino di una rete neurale

Modifica, la mia idea:

Possibile inizializzazione?

La mia idea sarebbe qualcosa del genere: come prima, e Y 2 sono prodotti correlati, mentre Y 3 è totalmente diverso. Sapendo questo a priori faccio 2 cose:Y1Y2Y3

  1. Preallocato alcuni neuroni nello strato nascosto a qualsiasi gruppo che ho, in questo caso ho 2 gruppi {( ), ( Y 3 )}.Y1,Y2Y3
  2. Inizializzo pesi elevati tra gli input e i nodi allocati (gli spigoli vivi) e ovviamente costruisco altri nodi nascosti per catturare la "casualità" residua nei dati.

Grazie in anticipo per il vostro aiuto


@Tomasso Guerrini qui è possibile la risposta per te: stats.stackexchange.com/questions/4498/…
Anton Danilov

grazie @AntonDanilov, purtroppo la risposta accettata dice 'Mentre le reti neurali sono dotate di "grafici" in genere non codificano le informazioni di dipendenza e i nodi non rappresentano variabili casuali ": /
Tommaso Guerrini,

1
Hai provato Stan , o non è fattibile per il tuo problema? Il Monte Carlo Hamiltoniano può essere ordini di grandezza più veloce del campionamento di Gibbs e scala bene fino a centinaia (o addirittura migliaia) di variabili.
Lacerbi,

1
Hai provato a porre le stesse domande alla mailing list degli utenti Stan ? Di solito sono estremamente utili con gli aspetti tecnici per far funzionare un modello. Ad esempio, è possibile che i problemi nel tuo caso possano essere risolti con una migliore parametrizzazione. (L' Hamiltoniano Monte Carlo dovrebbe mescolarsi molto più velocemente del campionamento di Gibbs.)
Lacerbi,

1
Probabilmente è meglio dire che ho spammato quella mailing list .. Grazie mille Luigi comunque .. Sono in quella situazione in cui non ho più tempo per scavare nei problemi come dovrei, dato che ho una scadenza in arrivo. Sembra che STAN sia un ottimo strumento, ma la curva di apprendimento è un po 'ripida per realizzare davvero le sue incredibili prestazioni (a partire da ora ho realizzato la sua accelerazione rispetto a JAGS)
Tommaso Guerrini,

Risposte:


1

Per la cronaca, non lo vedo come una risposta, ma solo un lungo commento! La PDE (equazione del calore) utilizzata per modellare il flusso di calore attraverso un'asta di metallo può essere utilizzata anche per modellare il prezzo delle opzioni. Nessuno che io conosca ha mai provato a suggerire una connessione tra i prezzi delle opzioni e il flusso di calore in sé. Penso che la citazione dal link di Danilov stia dicendo la stessa cosa. Sia i grafici bayesiani che le reti neurali usano il linguaggio dei grafici per esprimere le relazioni tra i loro diversi pezzi interni. Tuttavia, i grafici bayesiani descrivono la struttura di correlazione delle variabili di input e il grafico di una rete neurale spiega come costruire la funzione di previsione dalle variabili di input. Queste sono cose molto diverse.
Vari metodi usati in DL tentano di "scegliere" le variabili più importanti, ma questo è un problema empirico. Inoltre non parla della struttura di correlazione né dell'intero insieme di variabili né delle restanti variabili. Suggerisce semplicemente che le variabili sopravvissute saranno le migliori per la predicitone. Ad esempio, se si guardano le reti neurali, si passerà al set di dati di credito tedesco, che ha, se ricordo bene, 2000 punti di dati e 5 variabili dipendenti. Attraverso tentativi ed errori penso che scoprirai che una rete con solo 1 strato nascosto e usando solo 2 delle variabili fornisce i migliori risultati per la previsione. Tuttavia, questo può essere scoperto solo costruendo tutti i modelli e testandoli sul set di test indipendente.


Non ho il tuo confronto con l'applicazione dello stesso modello su dati diversi: qui i dati sono gli stessi e il modello è diverso non viceversa. Inoltre, non sto cercando di fare deduzione sulla struttura di correlazione delle mie variabili usando una rete neurale, che è già ben realizzata attraverso l'inferenza dei bayesiani. Il grafico era solo per immaginare cosa succede nel modello gerarchico, quindi non capisco la cosa del "linguaggio dei grafici" (Eppure potrei averti ingannato con il titolo, ma ne avevo bisogno di uno accattivante: D)
Tommaso Guerrini

E forse non capisco la tua domanda. Continuo a pensare che il punto sia che il modo in cui i bordi vengono creati nelle due strutture grafiche non ha nulla a che fare l'uno con l'altro. Si potrebbe semplicemente definire una rete neurale con un determinato insieme di spigoli e pesi, ma non si ha motivo di pensare che tale rete sia accurata o utile. Il cuore della creazione di una rete neurale è usare qualcosa di simile alla retro-propagazione per consentire ai dati di determinare i pesi "corretti".
Meh

"Il grafico era solo per immaginare cosa succede nel modello gerarchico". Concordiamo sul fatto che in un caso definiamo la struttura della covarianza e il modello è molto ben interpretabile a posteriori, mentre nell'altro lasciamo che la discesa gradiente faccia il lavoro e anche se non interpretabile di solito (come nel mio caso) si traduce in buone prestazioni. La mia domanda è: esiste un modo per mantenere l'interpretazione senza perdere la previsione delle prestazioni? Ecco perché l'ho chiesto in pila ed è per questo che propongo quell'idea nella modifica, sto cercando idee. Spero che ora ti sia chiaro.
Tommaso Guerrini,

Non si può dimostrare un aspetto negativo, quindi non posso dire in definitiva che non vi sia alcuna connessione tra i grafici delle reti bayesiane e quelli delle reti neurali. Posso dire che non ho conoscenza di tale connessione e che sono profondamente scettico su qualsiasi connessione. Mentre si può usare la struttura del grafico della rete bayesiana per fornire la struttura del grafico per la rete neurale, dal punto di vista della rete neurale ciò non sembra ragionevole. Al momento non ho il tempo di elaborare i dettagli, ma come esperimento mentale immagino un set di dati in cui le variabili indipendenti erano tutte statisiticamente
meh

y=xi+zizi=A×σ1(xi)σziè circa zero. Eppure dovrebbero far parte di qualsiasi modello valido.
Meh
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.