Redes neurais bayesianas se referem a uma extensão de redes-padrão com posterior inferência de probabilidade com a finalidade de controlar o sobreajuste. Em um sentido mais amplo, a abordagem bayesiana usa metodologia estatística para garantir que tudo, incluindo os parâmetros do modelo (pesos e vieses da rede neural), tenha uma distribuição de probabilidade associada a ela. Em linguagens de programação, uma variável que pode assumir um determinado valor terá o mesmo resultado toda vez que você acessar essa variável específica. Vamos começar analisando um modelo linear simples que prevê a saída por uma soma ponderada de um conjunto de recursos de entrada.
A título de comparação, no mundo bayesiano, você pode ter entidades semelhantes, também conhecidas como variáveis aleatórias, que fornecem valores diferentes a cada acesso. Em termos bayesianos, os dados históricos representam conhecimento prévio sobre o comportamento geral, com cada variável tendo suas próprias propriedades estatísticas que mudam com o tempo. Assumindo que X é uma variável aleatória que representa uma distribuição normal, cada acesso a X retornará um valor de resultado diferente. Esse processo de obtenção de novos valores a partir de variáveis aleatórias é chamado de amostragem. O valor resultante depende da distribuição de probabilidade associada à variável aleatória. Em outras palavras, o espaço de parâmetros nos permite inferir a natureza e a forma dos parâmetros de treinamento da rede neural. Recentemente ,tem havido muita atividade nesta área com o lançamento de várias bibliotecas de programação probabilística, como PyMC3, Edward, Stan etc. Os métodos bayesianos são usados em muitos campos, desde desenvolvimento de jogos até descoberta de medicamentos.
Os métodos bayesianos permitem considerar a distribuição de todas as respostas, em vez de considerar as respostas por pergunta, por isso são adequados para resolver problemas como:
