Von Bayes'schen Netzen zu neuronalen Netzen: Wie multivariate Regression in ein Netzwerk mit mehreren Ausgängen übertragen werden kann


20

Ich habe es mit einem Bayesian Hierarchical Linear Model zu tun , hier das Netzwerk, das es beschreibt.

Grafikmodell, das das Problem beschreibt

Y für den täglichen Verkauf eines Produkts in einem Supermarkt (beobachtet).

X ist eine bekannte Matrix von Regressoren, einschließlich Preisen, Werbeaktionen, Wochentagen, Wetter, Feiertagen.

1S ist der unbekannte latente Lagerbestand jedes Produkts, der die meisten Probleme verursacht, und ich betrachte einen Vektor von binären Variablen, eine für jedes Produkt, wobei Lagerbestand und damit die Nichtverfügbarkeit des Produkts anzeigt. Auch wenn ich es theoretisch nicht kannte, schätzte ich es durch ein HMM für jedes Produkt, so dass es als X bekannt anzusehen ist. Ich habe mich gerade entschlossen, es für einen angemessenen Formalismus zu deaktivieren.1

η ist ein Mischeffektparameter für ein einzelnes Produkt, bei dem als Mischeffekte der Produktpreis, Werbeaktionen und Lagerbestände berücksichtigt werden.

b 1 b 2β ist der Vektor fester Regressionskoeffizienten, während und die Vektoren der Mischwirkungskoeffizienten sind. Eine Gruppe gibt die Marke und die andere den Geschmack an (dies ist ein Beispiel, in Wirklichkeit habe ich viele Gruppen, aber ich berichte hier nur 2 aus Gründen der Klarheit).b1b2

Σ b 1 Σ b 2Ση , und sind Hyperparameter über den gemischten Effekten.Σb1Σb2

Da ich Zählungsdaten habe, nehmen wir an, dass ich jeden Produktverkauf als Poisson behandelt habe, der unter der Bedingung der Regressoren verteilt wird (auch wenn für einige Produkte die lineare Approximation gilt und für andere ein Modell mit null Inflation besser ist). In einem solchen Fall hätte ich für ein Produkt ( dies ist nur für diejenigen, die sich für das Bayes'sche Modell selbst interessieren, fahren Sie mit der Frage fort, ob Sie es für uninteressant oder nicht trivial halten :) ):Y

ΣηIW(α0,γ0)

Σb1IW(α1,γ1)

α 0 , γ 0 , α 1 , & ggr; 1 , α 2 , γ 2Σb2IW(α2,γ2) , bekannt.α0,γ0,α1,γ1,α2,γ2

ηN(0,Ση)

b1N(0,Σb1)

b2N(0,Σb2)

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

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

YtijkPoi(exp(λtijk))

j 1 , , m 1 k 1 , , m 2i1,,N , ,j1,,m1k1,,m2

X p p s i I W Z i Z i = X i σ i j i jZi Matrix mit gemischten Effekten für die Gruppen, wobei Preis, die Verkaufsförderung und den Lagerbestand des betreffenden Produkts angibt. gibt inverse Wishart-Verteilungen an, die normalerweise für Kovarianzmatrizen von normalen multivariaten Priors verwendet werden. Aber hier ist es nicht wichtig. Ein Beispiel für ein mögliches könnte die Matrix aller Preise sein, oder wir könnten sogar sagen, . In Bezug auf die Prioritäten für die Varianz-Kovarianz-Matrix mit gemischten Effekten würde ich nur versuchen, die Korrelation zwischen den Einträgen beizubehalten, sodass positiv wäre, wenn und Produkte derselben Marke oder eines der beiden sind gleicher Geschmack. XppsiIWZiZi=Xiσijij

Die Intuition hinter diesem Modell wäre, dass der Verkauf eines bestimmten Produkts von seinem Preis, seiner Verfügbarkeit oder nicht, aber auch von den Preisen aller anderen Produkte und den Lagerbeständen aller anderen Produkte abhängt. Da ich nicht für alle Koeffizienten das gleiche Modell (dh die gleiche Regressionskurve) haben möchte, habe ich gemischte Effekte eingeführt, die einige meiner Datengruppen durch gemeinsame Nutzung von Parametern ausnutzen.

Meine Fragen sind:

  1. Gibt es eine Möglichkeit, dieses Modell auf eine neuronale Netzwerkarchitektur zu übertragen? Ich weiß, dass es viele Fragen gibt, die nach den Beziehungen zwischen Bayes'schen Netzwerken, Markov-Zufallsfeldern, Bayes'schen Hierarchiemodellen und neuronalen Netzwerken suchen, aber ich habe nichts gefunden, was vom Bayes'schen Hierarchiemodell zu neuronalen Netzen führen könnte. Ich stelle die Frage zu neuronalen Netzen, da die Parameterschätzung durch MCMC aufgrund der hohen Dimensionalität meines Problems (ich habe 340 Produkte in Betracht gezogen) Wochen in Anspruch nimmt (ich habe nur 20 Produkte mit parallelen Ketten in runJags ausprobiert und es hat Tage gedauert). . Aber ich möchte nicht willkürlich vorgehen und Daten einfach als Black Box an ein neuronales Netzwerk senden. Ich möchte die Abhängigkeits- / Unabhängigkeitsstruktur meines Netzwerks ausnutzen.

Hier habe ich gerade ein neuronales Netzwerk skizziert. Wie Sie sehen, werden Regressoren ( und geben jeweils Preis und Lagerbestand von Produkt ) in die verborgene Ebene eingegeben, ebenso wie die produktspezifischen (hier habe ich Preise und Lagerbestände berücksichtigt). S i i PiSii(Blaue und schwarze Ränder haben keine besondere Bedeutung, nur um die Figur deutlicher zu machen). Weiterhin können und stark korreliert sein, währendY 1 Y 2 Y 3Y1Y2Y3könnte ein völlig anderes Produkt sein (denken Sie an 2 Orangensäfte und Rotwein), aber ich verwende diese Informationen nicht in neuronalen Netzen. Ich frage mich, ob die Gruppierungsinformationen nur zur Gewichtsinizialisierung verwendet werden oder ob man das Netzwerk an das Problem anpassen kann.

Marionettenbeispiel eines neuronalen Netzes

Edit, meine Idee:

Mögliche Initialisierung?

Meine Idee wäre so: Wie zuvor sind und korrelierte Produkte, während ein völlig anderes ist. Da ich das a priori weiß, mache ich zwei Dinge:Y 2 Y 3Y1Y2Y3

  1. Ich ordne einige Neuronen in der verborgenen Ebene einer beliebigen Gruppe zu, in diesem Fall habe ich 2 Gruppen {( ), ( )}.Y 3Y1,Y2Y3
  2. Ich initialisiere hohe Wichtungen zwischen den Eingaben und den zugewiesenen Knoten (die fetten Kanten) und baue natürlich andere versteckte Knoten, um die verbleibende 'Zufälligkeit' in den Daten zu erfassen.

Vielen Dank im Voraus für deine Hilfe


@Tomasso Guerrini hier ist die Antwort für Sie möglich: stats.stackexchange.com/questions/4498/…
Anton Danilov

danke @AntonDanilov, leider lautet die akzeptierte Antwort: "Neuronale Netze sind zwar mit" Graphen "versehen, codieren aber im Allgemeinen keine Abhängigkeitsinformationen und die Knoten stellen keine Zufallsvariablen dar." /
Tommaso Guerrini,

1
Hast du Stan ausprobiert , oder ist es für dein Problem nicht machbar? Das Hamilton-Monte-Carlo kann um Größenordnungen schneller sein als die Gibbs-Abtastung und lässt sich gut auf Hunderte (oder sogar Tausende) von Variablen skalieren.
Lacerbi

1
Haben Sie versucht, die gleichen Fragen an die Mailingliste der Stan-Benutzer zu richten ? Sie sind in der Regel in technischer Hinsicht äußerst hilfreich, um ein Modell zum Laufen zu bringen. Beispielsweise ist es möglich, dass Probleme in Ihrem Fall durch eine bessere Parametrisierung gelöst werden können. ( Hamiltonian Monte Carlo sollte viel schneller mischen als Gibbs Sampling.)
Lacerbi

1
Wahrscheinlich ist es besser zu sagen, dass ich diese Mailingliste als Spam versandt habe. Vielen Dank übrigens, Luigi. Ich bin in einer Situation, in der ich keine Zeit mehr habe, mich mit den Problemen zu befassen, wie ich sollte, da ich eine eingehende Frist habe. Es sieht so aus, als wäre STAN ein großartiges Werkzeug, aber die Lernkurve ist ein wenig steil, um die unglaubliche Leistung zu realisieren (ab sofort habe ich die Geschwindigkeit von JAGS erkannt)
Tommaso Guerrini

Antworten:


1

Ich sehe das nicht als Antwort, sondern nur als langen Kommentar! Die PDE (Wärmegleichung), die zum Modellieren des Wärmeflusses durch einen Metallstab verwendet wird, kann auch zum Modellieren des Optionspreises verwendet werden. Niemand, den ich kenne, hat jemals versucht, einen Zusammenhang zwischen Optionspreisgestaltung und Wärmestrom per se vorzuschlagen. Ich denke, dass das Zitat aus Danilovs Link dasselbe sagt. Sowohl Bayesianische Graphen als auch Neuronale Netze verwenden die Sprache von Graphen, um die Beziehungen zwischen ihren verschiedenen inneren Stücken auszudrücken. Bayes'sche Graphen geben jedoch Auskunft über die Korrelationsstruktur der Eingabevariablen, und der Graph eines neuronalen Netzes gibt Auskunft darüber, wie die Vorhersagefunktion aus den Eingabevariablen aufgebaut werden kann. Das sind sehr unterschiedliche Dinge.
Verschiedene in DL verwendete Methoden versuchen, die wichtigsten Variablen auszuwählen, aber das ist ein empirisches Problem. Es sagt auch nichts über die Korrelationsstruktur der gesamten Menge von Variablen oder der verbleibenden Variablen aus. Dies legt lediglich nahe, dass die überlebenden Variablen am besten für die Vorhersage geeignet sind. Wenn man sich beispielsweise neuronale Netze ansieht, wird man zum deutschen Kreditdatensatz geführt, der, wenn ich mich richtig erinnere, 2000 Datenpunkte und 5 abhängige Variablen enthält. Ich denke, durch Ausprobieren werden Sie feststellen, dass ein Netz mit nur einer verborgenen Schicht und der Verwendung von nur zwei Variablen die besten Ergebnisse für die Vorhersage liefert. Dies kann jedoch nur festgestellt werden, wenn alle Modelle erstellt und auf dem unabhängigen Testset getestet werden.


Ich verstehe Ihren Vergleich mit der Anwendung des gleichen Modells auf verschiedene Daten nicht: Hier sind die Daten gleich und das Modell ist anders und nicht umgekehrt. Außerdem versuche ich nicht, mithilfe eines neuronalen Netzes Rückschlüsse auf die Korrelationsstruktur meiner Variablen zu ziehen, was durch die bayesianische Nachfolgerinferenz bereits gut erreicht wird. Die Grafik sollte nur zeigen, was im hierarchischen Modell passiert, daher verstehe ich die Sache mit der 'Sprache der Grafiken' nicht (Ich habe Sie vielleicht mit dem Titel getäuscht, aber ich brauchte einen eingängigen: D)
Tommaso Guerrini

Und vielleicht verstehe ich deine Frage nicht. Ich denke immer noch, der Punkt ist, dass die Art und Weise, wie die Kanten in den beiden Diagrammstrukturen erstellt werden, nichts miteinander zu tun hat. Man könnte einfach ein neuronales Netz mit einer gegebenen Menge von Kanten und Gewichten definieren, aber man hat keinen Grund zu der Annahme, dass ein solches Netz entweder genau oder nützlich ist. Das Herzstück der Erstellung eines neuronalen Netzes besteht darin, eine Art Rückübertragung zu verwenden, damit die Daten die "richtigen" Gewichte bestimmen können.
meh

Msgstr "Die Grafik sollte nur zeigen, was im hierarchischen Modell passiert." Wir sind uns einig, dass wir in einem Fall die Kovarianzstruktur definieren und das Modell a posteriori sehr gut interpretierbar ist, während wir in dem anderen Fall den Gradientenabstieg die Arbeit erledigen lassen und auch wenn er nicht interpretierbar ist, normalerweise (wie in meinem Fall) gute Leistungen erbringen. Meine Frage ist: Gibt es eine Möglichkeit, die Interpretierbarkeit beizubehalten, ohne die Prognoseleistung zu verlieren? Deshalb habe ich dies auf Stapel gestellt und deshalb schlage ich diese Idee in der Bearbeitung vor, ich suche nach Ideen. Ich hoffe jetzt ist es dir klar.
Tommaso Guerrini

Man kann kein Negativ beweisen, daher kann ich nicht schlüssig sagen, dass es keinen Zusammenhang zwischen den Graphen von Bayesian Networks und denen von neuronalen Netzen gibt. Ich kann sagen, dass ich keine Kenntnis von einer solchen Verbindung habe und einer Verbindung zutiefst skeptisch gegenüberstehe. Während man die Graphenstruktur des Bayes'schen Netzwerks verwenden kann, um die Graphenstruktur für das neuronale Netzwerk anzugeben, scheint dies aus Sicht des neuronalen Netzwerks nicht sinnvoll zu sein. Ich habe momentan nicht die Zeit, die Details zu erarbeiten, aber als Gedankenexperiment stelle ich mir einen Datensatz vor, in dem die unabhängigen Variablen alle statistisch waren
meh

Ich habe derzeit keine Zeit, die Details zu erarbeiten, stelle mir aber als Gedankenexperiment einen Datensatz vor, in dem die unabhängigen Variablen alle statistisch signifikant, aber nicht alle korreliert waren. Zum Beispiel ist wobei mit einem sehr großen Absolutwert und der (nichtlinearen) Aktivierungsfunktion des Netzwerks. Aufgrund der nichtlinearen Beziehung von y und z könnte man dass die Korrelation zwischen y und ungefähr Null ist. Dennoch sollten sie Teil jedes guten Modells sein. z i = A × σ - 1 ( x i ) σ z iy=xi+zizi=A×σ1(xi)σzi
meh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.