Das redes bayesianas às redes neurais: como a regressão multivariada pode ser transposta para uma rede de várias saídas

20

Estou lidando com um modelo linear hierárquico bayesiano , aqui a rede que o descreve.

Modelo gráfico que descreve o problema

Y representa as vendas diárias de um produto em um supermercado (observado).

X é uma matriz conhecida de regressores, incluindo preços, promoções, dia da semana, clima e feriados.

S é o nível de estoque latente desconhecido de cada produto, que causa mais problemas e que considero um vetor de variáveis ​​binárias, um para cada produto com1 indicando falta de estoque e, portanto, a indisponibilidade do produto. Mesmo que em teoria desconhecida eu o estimei através de um HMM para cada produto, ele deve ser considerado conhecido como X.Apenas decidi desmascará-lo para formalismo adequado.

é um parâmetro de efeito misto para qualquer produto único em que os efeitos mistos considerados são o preço do produto, promoções e falta de estoque.η

é o vetor de coeficientes de regressão fixos, enquanto b 1 e b 2 são vetores de coeficiente de efeitos mistos. Um grupo indicamarcae o outro indicasabor(este é um exemplo, na realidade eu tenho muitos grupos, mas aqui relato apenas 2 para maior clareza).βb1b2

, Σ b 1 e Σ b 2 são hiperparâmetros sobre os efeitos mistos.ΣηΣb1Σb2

Como eu tenho dados de contagem, digamos que eu trato as vendas de cada produto como Poisson distribuído condicionalmente nos regressores (mesmo que para alguns produtos a aproximação linear seja válida e para outros um modelo com inflação insuficiente seja melhor). Nesse caso, eu teria para um produto ( este é apenas para quem está interessado no modelo bayesiano em si, pule para a pergunta se você o achar desinteressante ou não trivial :) ):Y

ΣηEuW(α0 0,γ0 0)

Σb1EuW(α1,γ1)

, α 0 , γ 0 ,Σb2EuW(α2,γ2) conhecido.α0 0,γ0 0,α1,γ1,α2,γ2

ηN(0 0,Ση)

b1N(0 0,Σb1)

b2N(0 0,Σb2)

, Σ p conhecido.βN(0 0,Σβ)Σβ

,λtijk=βXtEu+ηEuXppstEu+b1jZtj+b2kZtk

YtEujkPoEu(exp(λtEujk))

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

matriz de efeitos mistos para os 2 grupos, X p p s i indicando preço, e promoção da ruptura de produto considerado. I W indica inversa distribuições de Wishart, geralmente usados para as matrizes de covariância de antecedentes multivariados normais. Mas não é importante aqui. Um exemplo de uma possível Z i poderia ser a matriz de todos os preços, ou poderíamos até dizer Z i = X i . Com relação aos anteriores para a matriz de variância-covariância de efeitos mistos, eu tentaria apenas preservar a correlação entre as entradas, para que σ i j fosse positivo seZEuXppsEuEuWZEuZEu=XEuσEuj e j são produtos da mesma marca ou seja do mesmo sabor. Euj

A intuição por trás desse modelo seria que as vendas de um determinado produto dependem de seu preço, disponibilidade ou não, mas também dos preços de todos os outros produtos e da falta de estoque de todos os outros produtos. Como não quero ter o mesmo modelo (leia-se: mesma curva de regressão) para todos os coeficientes, introduzi efeitos mistos que exploram alguns grupos que tenho nos meus dados, através do compartilhamento de parâmetros.

Minhas perguntas são:

  1. Existe uma maneira de transpor esse modelo para uma arquitetura de rede neural? Eu sei que existem muitas perguntas procurando as relações entre rede bayesiana, campos aleatórios markov, modelos hierárquicos bayesianos e redes neurais, mas não encontrei nada que vá do modelo hierárquico bayesiano às redes neurais. Faço a pergunta sobre redes neurais, pois, tendo uma alta dimensionalidade do meu problema (considere que tenho 340 produtos), a estimativa de parâmetros por meio do MCMC leva semanas (tentei apenas 20 produtos executando cadeias paralelas em runJags e levou dias) . Mas não quero ser aleatório e apenas fornecer dados para uma rede neural como uma caixa preta. Eu gostaria de explorar a estrutura de dependência / independência da minha rede.

Aqui acabei de esboçar uma rede neural. Como você vê, os regressores ( e S i indicam, respectivamente, preço e falta de estoque do produto i ) na parte superior são inseridos na camada oculta, assim como são específicos do produto (aqui eu considerei preços e falta de estoque). PEuSEuEu(As bordas azuis e pretas não têm significado específico, era apenas para tornar a figura mais clara). Além disso Y1 e podem ser altamente correlacionados enquanto Y 3Y2Y3poderia ser um produto totalmente diferente (pense em 2 sucos de laranja e vinho tinto), mas eu não uso essas informações em redes neurais. Gostaria de saber se as informações de agrupamento são usadas apenas na inicialização de peso ou se é possível personalizar a rede para o problema.

exemplo fantoche de uma rede neural

Editar, minha ideia:

Possível inicialização?

Minha ideia seria algo assim: como antes, e Y 2 são produtos correlacionados, enquanto Y 3 é totalmente diferente. Sabendo disso a priori, faço duas coisas:Y1Y2Y3

  1. Eu pré-aloco alguns neurônios na camada oculta para qualquer grupo que possuo, neste caso, tenho 2 grupos {( ), ( Y 3 )}.Y1,Y2Y3
  2. Inicializo pesos altos entre as entradas e os nós alocados (as arestas em negrito) e, é claro, construo outros nós ocultos para capturar a 'aleatoriedade' restante nos dados.

Agradeço antecipadamente por sua ajuda

Tommaso Guerrini
fonte
@Tomasso Guerrini aqui é possível a resposta para você: stats.stackexchange.com/questions/4498/…
Anton Danilov
obrigado @AntonDanilov, infelizmente a resposta aceita diz 'Embora as redes neurais venham com "gráficos", elas geralmente não codificam informações de dependência e os nós não representam variáveis ​​aleatórias': /
Tommaso Guerrini
1
Você já tentou o Stan ou não é viável para o seu problema? O Monte Carlo Hamiltoniano pode ter ordens de magnitude mais rápidas do que a amostragem de Gibbs e pode ser bem escalado para centenas (ou até milhares) de variáveis.
lacerbi
1
Você já tentou colocar as mesmas perguntas na lista de usuários de Stan ? Eles geralmente são extremamente úteis com aspectos técnicos para fazer um modelo funcionar. Por exemplo, é possível que os problemas do seu caso possam ser resolvidos com uma melhor parametrização. ( Hamiltonian Monte Carlo deve misturar muito mais rápido do que Gibbs amostragem.)
lacerbi
1
Provavelmente, é melhor dizer que enviei spam para essa lista de emails. Agradeço muito ao Luigi. Estou nessa situação em que não tenho mais tempo para investigar os problemas como deveria, já que tenho um prazo final. Parece que o STAN é uma ótima ferramenta, mas a curva de aprendizado é um pouco íngreme para realmente se dar conta de seu desempenho incrível (a partir de agora eu percebi que seu JAGS era mais rápido)
Tommaso Guerrini

Respostas:

1

Para o registro, eu não vejo isso como uma resposta, mas apenas um longo comentário! A PDE (equação de calor) usada para modelar o fluxo de calor através de uma barra de metal também pode ser usada para modelar o preço das opções. Ninguém que eu conheço tentou sugerir uma conexão entre o preço das opções e o fluxo de calor em si. Eu acho que a citação do link de Danilov está dizendo a mesma coisa. Os gráficos bayesianos e as redes neurais usam a linguagem dos gráficos para expressar as relações entre suas diferentes peças internas. No entanto, os gráficos bayesianos informam sobre a estrutura de correlação das variáveis ​​de entrada e o gráfico de uma rede neural mostra como construir a função de previsão a partir das variáveis ​​de entrada. Essas são coisas muito diferentes.
Vários métodos usados ​​no DL tentam 'escolher' as variáveis ​​mais importantes, mas essa é uma questão empírica. Também não informa sobre a estrutura de correlação do conjunto inteiro de variáveis ​​ou das variáveis ​​restantes. Apenas sugere que as variáveis ​​sobreviventes serão melhores para previsão. Por exemplo, se olharmos para as redes neurais, seremos levados ao conjunto de dados de crédito alemão, que possui, se bem me lembro, 2000 pontos de dados e 5 variáveis ​​dependentes. Por tentativa e erro, acho que você descobrirá que uma rede com apenas 1 camada oculta e usando apenas 2 das variáveis ​​fornece os melhores resultados para previsão. No entanto, isso só pode ser descoberto construindo todos os modelos e testando-os no conjunto de testes independente.

meh
fonte
Não obtenho sua comparação com a aplicação do mesmo modelo em dados diferentes: aqui os dados são os mesmos e o modelo é diferente, e não o contrário. Além disso, não estou tentando inferir a estrutura de correlação de minhas variáveis ​​usando uma rede neural, que já é bem alcançada através da inferência bayesiana posterior. O gráfico era apenas para imaginar o que acontece no modelo hierárquico, por isso não entendo a coisa da 'linguagem dos gráficos' (ainda posso ter enganado você com o título, mas eu precisava de uma cativante: D)
Tommaso Guerrini
E talvez eu não entenda sua pergunta. Ainda acho que o ponto é que a maneira como as arestas são criadas nas duas estruturas gráficas não tem nada a ver uma com a outra. Alguém poderia simplesmente definir uma rede neural com um determinado conjunto de arestas e pesos, mas não há motivos para pensar que essa rede será precisa ou útil. O coração da criação de uma rede neural é usar algo semelhante à propagação traseira para permitir que os dados determinem os pesos 'corretos'.
meh
"O gráfico era apenas para imaginar o que acontece no modelo hierárquico". Concordamos que em um caso definimos a estrutura de covariância e o modelo é muito bem interpretável a posteriori, enquanto no outro deixamos a descida gradiente fazer o trabalho e, mesmo que não seja interpretável, geralmente (como no meu caso) resulta em boas performances. Minha pergunta é: existe uma maneira de manter a interpretabilidade sem perder a previsão de desempenho? Foi por isso que perguntei isso na pilha e por isso proponho essa ideia na edição. Estou procurando por idéias. Espero que agora esteja claro para você.
Tommaso Guerrini
Não se pode provar um negativo, por isso não posso dizer conclusivamente que não haja conexão entre os gráficos das redes bayesianas e os das redes neurais. Posso dizer que não tenho conhecimento dessa conexão e que sou profundamente cético em relação a qualquer conexão. Embora se possa usar a estrutura gráfica da rede bayesiana para fornecer a estrutura gráfica da rede neural, do ponto de vista da rede neural isso não parece razoável. Eu atualmente não tem tempo para trabalhar os detalhes, mas como um experimento de pensamento imaginar um conjunto de dados, onde as variáveis independentes foram todos statisitically
meh
y=xEu+zEuzEu=UMA×σ-1(xEu)σzEué aproximadamente zero. No entanto, eles devem fazer parte de qualquer bom modelo.
meh