De las redes bayesianas a las redes neuronales: cómo se puede transponer la regresión multivariada a una red de múltiples salidas

20

Estoy tratando con un modelo lineal jerárquico bayesiano , aquí la red que lo describe.

Modelo gráfico que describe el problema.

Y representa las ventas diarias de un producto en un supermercado (observado).

X es una matriz conocida de regresores, que incluye precios, promociones, día de la semana, clima, días festivos.

S es el nivel de inventario latente desconocido de cada producto, que causa la mayoría de los problemas y que considero un vector de variables binarias, uno para cada producto con1 indica falta de stock y, por lo tanto, la falta de disponibilidad del producto. Incluso si, en teoría, se desconoce, lo estimé a través de un HMM para cada producto, por lo que debe considerarse como conocido como X.Simplemente decidí quitarle el sombreado para obtener el formalismo adecuado.

es un parámetro de efecto mixto para cualquier producto individual donde los efectos mixtos considerados son el precio del producto, las promociones y el desabastecimiento.η

es el vector de los coeficientes de regresión fijos, mientras que b 1 y b 2 son los vectores del coeficiente de efectos mixtos. Un grupo indicamarcay el otro indicasabor(este es un ejemplo, en realidad tengo muchos grupos, pero aquí solo informo 2 para mayor claridad).βb1b2

, Σ b 1 y Σ b 2 son hiperparámetros más de los efectos mixtos.ΣηΣb1Σb2

Como tengo datos de recuento, digamos que trato las ventas de cada producto como Poisson distribuido condicional en los Regresores (incluso si para algunos productos se mantiene la aproximación lineal y para otros un modelo inflado cero es mejor). En tal caso, tendría un producto ( esto es solo para quién está interesado en el modelo bayesiano en sí mismo, salte a la pregunta si lo encuentra poco interesante o no trivial :) ):Y

ΣηIW(α0,γ0)

Σb1IW(α1,γ1)

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

ηN(0,Ση)

b1N(0,Σb1)

b2N(0,Σb2)

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

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

YtijkPoi(exp(λtijk))

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

matriz de efectos mixtos para los 2 grupos, X p p s i indicando precio, promoción y desabastecimiento del producto considerado. I W indica distribuciones inversas de Wishart, generalmente utilizadas para matrices de covarianza de previos multivariados normales. Pero no es importante aquí. Un ejemplo de una posible Z i podría ser la matriz de todos los precios, o incluso podríamos decir Z i = X i . Con respecto a los antecedentes de la matriz de varianza y covarianza de efectos mixtos, solo trataría de preservar la correlación entre las entradas, de modo que σ i j sería positivo siZiXppsiIWZiZi=Xiσij y j son productos de la misma marca o del mismo sabor. ij

La intuición detrás de este modelo sería que las ventas de un producto determinado dependen de su precio, su disponibilidad o no, pero también de los precios de todos los demás productos y del desabastecimiento de todos los demás productos. Como no quiero tener el mismo modelo (léase: la misma curva de regresión) para todos los coeficientes, introduje efectos mixtos que explotan algunos grupos que tengo en mis datos, a través del intercambio de parámetros.

Mis preguntas son:

  1. ¿Hay alguna manera de transponer este modelo a una arquitectura de red neuronal? Sé que hay muchas preguntas que buscan las relaciones entre la red bayesiana, los campos aleatorios de Markov, los modelos jerárquicos bayesianos y las redes neuronales, pero no encontré nada que vaya desde el modelo jerárquico bayesiano a las redes neuronales. Hago la pregunta sobre las redes neuronales ya que, teniendo una gran dimensionalidad de mi problema (considere que tengo 340 productos), la estimación de parámetros a través de MCMC lleva semanas (probé solo 20 productos que ejecutan cadenas paralelas en runJags y me llevó días) . Pero no quiero ir al azar y simplemente dar datos a una red neuronal como una caja negra. Me gustaría explotar la estructura de dependencia / independencia de mi red.

Aquí acabo de dibujar una red neuronal. Como puede ver, los regresores ( y S i indican respectivamente el precio y el desabastecimiento del producto i ) en la parte superior se asignan a la capa oculta, al igual que los productos específicos (aquí consideré los precios y desabastecimientos). PiSii(Los bordes azul y negro no tienen un significado particular, fue solo para aclarar la figura). Además, e Y 2 podrían estar altamente correlacionados mientras que Y 3Y1Y2Y3podría ser un producto totalmente diferente (piense en 2 jugos de naranja y vino tinto), pero no uso esta información en redes neuronales. Me pregunto si la información de agrupación se usa solo en la inicialización de peso o si se puede personalizar la red para el problema.

títere ejemplo de una red neuronal

Editar, mi idea:

Posible inicialización?

Mi idea sería algo como esto: como antes, e Y 2 son productos correlacionados, mientras que Y 3 es totalmente diferente. Sabiendo esto a priori hago 2 cosas:Y1Y2Y3

  1. Preasigno algunas neuronas en la capa oculta a cualquier grupo que tenga, en este caso tengo 2 grupos {( ), ( Y 3 )}.Y1,Y2Y3
  2. Inicializo pesos altos entre las entradas y los nodos asignados (los bordes en negrita) y, por supuesto, construyo otros nodos ocultos para capturar la "aleatoriedad" restante en los datos.

Gracias de antemano por su ayuda

Tommaso Guerrini
fuente
@Tomasso Guerrini aquí es posible la respuesta para usted: stats.stackexchange.com/questions/4498/…
Anton Danilov
gracias @AntonDanilov, desafortunadamente la respuesta aceptada dice 'Si bien las redes neuronales vienen con "gráficos", generalmente no codifican información de dependencia, y los nodos no representan variables aleatorias': /
Tommaso Guerrini
1
¿Has probado Stan o no es posible para tu problema? El Montecarlo hamiltoniano puede ser órdenes de magnitud más rápido que el muestreo de Gibbs, y se escala bien a cientos (o incluso miles) de variables.
lacerbi
1
¿Has intentado plantear las mismas preguntas a la lista de correo de usuarios de Stan ? Por lo general, son extremadamente útiles con aspectos técnicos para hacer que un modelo funcione. Por ejemplo, es posible que los problemas en su caso se puedan resolver con una mejor parametrización. ( Hamiltonian Monte Carlo debería mezclarse mucho más rápido que el muestreo de Gibbs.)
lacerbi
1
Probablemente sea mejor decir que envié spam a esa lista de correo ... Muchas gracias Luigi por cierto ... Estoy en esa situación en la que no tengo más tiempo para investigar los problemas como debería, ya que tengo una fecha límite entrante. Parece que STAN es una gran herramienta, pero la curva de aprendizaje es un poco empinada para darse cuenta realmente de su increíble rendimiento (a partir de ahora me di cuenta de que acelera sus JAGS)
Tommaso Guerrini

Respuestas:

1

Para el registro, no veo esto como una respuesta, ¡sino solo un comentario largo! La PDE (ecuación de calor) que se usa para modelar el flujo de calor a través de una barra de metal también se puede usar para modelar el precio de las opciones. Nadie que conozco ha intentado sugerir una conexión entre el precio de la opción y el flujo de calor per se. Creo que la cita del enlace de Danilov dice lo mismo. Tanto los gráficos bayesianos como las redes neuronales utilizan el lenguaje de los gráficos para expresar las relaciones entre sus diferentes piezas internas. Sin embargo, los gráficos bayesianos le dicen a uno sobre la estructura de correlación de las variables de entrada y el gráfico de una red neuronal le dice a uno cómo construir la función de predicción a partir de las variables de entrada. Estas son cosas muy diferentes.
Varios métodos utilizados en DL intentan 'elegir' las variables más importantes, pero ese es un problema empírico. Tampoco le dice a uno acerca de la estructura de correlación ni del conjunto completo de variables ni de las variables restantes. Simplemente sugiere que las variables sobrevivientes serán mejores para la predicción. Por ejemplo, si se miran las redes neuronales, se lo conducirá al conjunto de datos de crédito alemán, que tiene, si mal no recuerdo, 2000 puntos de datos y 5 variables dependientes. A través de prueba y error, creo que encontrará que una red con solo 1 capa oculta y que usa solo 2 de las variables proporciona los mejores resultados para la predicción. Sin embargo, esto solo se puede descubrir construyendo todos los modelos y probándolos en el conjunto de pruebas independiente.

meh
fuente
No obtengo su comparación con la aplicación del mismo modelo en diferentes datos: aquí los datos son los mismos y el modelo es diferente, no al revés. Además, no estoy tratando de hacer inferencia sobre la estructura de correlación de mis variables usando una red neuronal, que ya se logra bien a través de la inferencia bayesiana posterior. El gráfico era solo para representar lo que sucede en el modelo jerárquico, por lo que no entiendo la cosa del 'lenguaje de los gráficos' (Sin embargo, es posible que te haya confundido con el título, pero necesitaba uno pegadizo: D)
Tommaso Guerrini
Y tal vez no entiendo tu pregunta. Todavía creo que el punto es que la forma en que se crean los bordes en las dos estructuras gráficas no tiene nada que ver entre sí. Uno podría simplemente definir una red neuronal con un conjunto dado de bordes y pesos, pero no tiene ninguna razón para pensar que dicha red sea precisa o útil. El corazón de la creación de una red neuronal es usar algo similar a la propagación inversa para permitir que los datos determinen los pesos "correctos".
meh
"El gráfico era solo para representar lo que sucede en el modelo jerárquico". Estamos de acuerdo en que en un caso definimos la estructura de covarianza y el modelo es muy bien interpretable a posteriori, mientras que en el otro dejamos que el descenso de gradiente haga el trabajo e incluso si no es interpretable, generalmente (como en mi caso) resulta en buenos rendimientos. Mi pregunta es: ¿hay alguna manera de mantener la interpretabilidad sin perder el rendimiento de predicción? Es por eso que pregunté esto en la pila y por eso propongo esa idea en la edición, estoy buscando ideas. Espero que ahora te quede claro.
Tommaso Guerrini
No se puede demostrar que sea negativo, por lo que no puedo decir de manera concluyente que no haya conexión entre los gráficos de las redes bayesianas y los de las redes neuronales. Puedo decir que no tengo conocimiento de tal conexión y que soy profundamente escéptico de cualquier conexión. Si bien se puede usar la estructura gráfica de la red bayesiana para dar la estructura gráfica de la red neuronal, desde el punto de vista de la red neuronal esto no parece razonable. Actualmente no tengo tiempo para resolver los detalles, pero como un experimento mental imagina un conjunto de datos donde las variables independientes eran todas estadísticamente
meh
y=xi+zizi=A×σ1(xi)σzies aproximadamente cero Sin embargo, deberían ser parte de cualquier buen modelo.
meh