Passei pelo curso de Redes Neurais de Geoff Hinton no Coursera e também pela introdução de máquinas boltzmann restritas , mas ainda não entendi a intuição por trás dos RBMs.
Por que precisamos calcular energia nesta máquina? E qual é o uso da probabilidade nesta máquina? Eu também vi esse vídeo . No vídeo, ele acabou de escrever as equações de probabilidade e energia antes dos passos da computação e não parecia usá-lo em lugar algum.
Além disso, não tenho certeza para que serve a função de probabilidade?
unsupervised-learning
rbm
Born2Code
fonte
fonte
Respostas:
Os RBMs são um animal interessante. Para responder à sua pergunta e desperdiçar minha memória com elas, derivarei RBMs e falarei sobre a derivação. Você mencionou que está confuso quanto à probabilidade; portanto, minha derivação será da perspectiva de tentar maximizar a probabilidade. Então vamos começar.
Mecanismos de argolas contêm dois diferentes conjuntos de neurônios, visíveis e ocultas, eu vou denotar-los e , respectivamente. Dada uma configuração específica de e , mapeamos o espaço de probabilidade.v h v h
Há mais algumas coisas a definir. A função substituta que usamos para mapear de uma configuração específica para o espaço de probabilidade é chamada de função energética . A constante é um fator de normalização para garantir que realmente mapeamos para o espaço de probabilidade. Agora vamos ao que realmente estamos procurando; a probabilidade de um conjunto de neurônios visíveis, em outras palavras, a probabilidade de nossos dados. Z Z = Σ v ∈ V Σ h ∈ H E - E ( v , h ) P ( v ) = Σ h ∈ H p ( v , h ) = Σ h ∈ H E - E ( v , h )E( v , h ) Z
Embora existam muitos termos nessa equação, simplesmente se resume a escrever as equações de probabilidade corretas. Esperemos que, até agora, isso tem ajudado a perceber por que precisamos função de energia para calcular a probabilidade, ou o que é feito mais geralmente a probabilidade unnormalized . A probabilidade não normalizada é usada porque a função de partição é muito cara de calcular.Zp ( v ) ∗ Z Z
Agora vamos à fase de aprendizado real dos RBMs. Para maximizar a probabilidade, para cada ponto de dados, temos que dar um passo gradiente para fazer . Para obter as expressões de gradiente, são necessárias algumas acrobacias matemáticas. A primeira coisa que fazemos é pegar o log de . A partir de agora, operaremos no espaço de probabilidade do log para viabilizar a matemática.p ( v )p ( v ) = 1 p ( v )
p ( v )
Agora eu fiz isso no papel e escrevi a equação da semifinal para não desperdiçar muito espaço neste site. Eu recomendo que você derivar essas equações você mesmo. Agora vou escrever algumas equações que ajudarão a continuar nossa derivação. Observe que: , e que p ( v ) = ∑ h ∈ H p ( v , h ) p ( h | v ) = p ( v , h )Zp ( v , h ) = e- E( v , h′) p ( v ) = ∑h ∈ Hp ( v , h ) p ( h | v ) = p ( v , h )p ( h )
E lá vamos nós, derivamos a estimativa de probabilidade máxima para RBMs, se você quiser, pode escrever os dois últimos termos por meio da expectativa de seus respectivos termos (probabilidade condicional e conjunta).
Notas sobre a função energética e estocticidade dos neurônios.
Como você pode ver acima em minha derivação, deixei a definição da função de energia bastante vaga. E a razão para fazer isso é que muitas versões diferentes do RBM implementam várias funções de energia. O que Hinton descreve na palestra vinculada acima e mostrada por Laurens-Meeus é:
Pode ser mais fácil argumentar sobre os termos do gradiente acima por meio do formulário de expectativa.
A expectativa do primeiro termo é realmente muito fácil de calcular, e esse foi o gênio por trás dos RBMs. Ao restringir a conexão, a expectativa condicional simplesmente se torna uma propagação direta do RBM com as unidades visíveis presas. Esta é a chamada fase de vigília nas máquinas Boltzmann. Agora, calcular o segundo termo é muito mais difícil e, geralmente, são utilizados métodos de Monte Carlo. Escrevendo o gradiente através da média das corridas de Monte Carlo:
O cálculo do primeiro termo não é difícil, como afirmado acima, portanto, Monte-Carlo é feito no segundo. Os métodos de Monte Carlo usam amostragem aleatória sucessiva da distribuição, para calcular a expectativa (soma ou integral). Agora, essa amostragem aleatória nos RBMs clássicos é definida como definir uma unidade como 0 ou 1 com base em sua probabilidade estocástica, ou seja, obter um número uniforme aleatório, se for menor que a probabilidade dos neurônios configurá-lo para 1, se é maior que defina como 0.
fonte
Além das respostas existentes, eu gostaria de falar sobre essa função energética e a intuição por trás disso um pouco. Desculpe se isso é um pouco longo e físico.
A função energia descreve o chamado modelo de Ising , que é um modelo de ferromagnetismo em termos de mecânica estatística / mecânica quântica. Na mecânica estatística, usamos o chamado operador hamiltoniano para descrever a energia de um sistema mecânico quântico. E um sistema sempre tenta estar no estado com a menor energia.
Agora, o modelo de Ising descreve basicamente a interação entre elétrons com um spin de +1 ou -1, na presença de um campo magnético externo . A interacção entre dois electrões e é descrita por um coeficiente . Essa Hamiltoniana (ou função de energia) é onde indica o hamiltoniano. Um procedimento padrão para passar de uma função de energia para a probabilidade de que um sistema esteja em um determinado estado (por exemplo, aqui: uma configuração de rotações, por exemplo,σk h Eu j Jeu j
Precisamos usar uma quantidade física final: a entropia. Como sabemos pela termodinâmica, um sistema se estabelecerá no estado com a energia mínima, que também corresponde ao estado com a entropia máxima.
Como introduzido por Shanon em 1946, na teoria da informação, a entropia também pode ser vista como uma medida do conteúdo da informação em , dada pela seguinte soma sobre todos os estados possíveis de : Agora, o modo mais eficiente para codificar o conteúdo de informação em , é a utilização de uma maneira que maximiza a entropia .X X H ( X ) = - Σ i P ( x i ) log P ( x i ) X HH X X
Finalmente , é aqui que voltamos aos RBMs: Basicamente, queremos que esse RBM codifique o máximo de informações possível. Portanto, como temos que maximizar a entropia (teórica da informação) em nosso sistema RBM. Conforme proposto por Hopfield em 1982, podemos maximizar a entropia teórica da informação exatamente como a entropia física: modelando o RBM como o modelo de Ising acima e usar os mesmos métodos para minimizar a energia. E é por isso que precisamos dessa função estranha de energia em uma RBM!
A boa derivação matemática na resposta de Armen Aghajanyan mostra tudo o que precisamos fazer, para minimizar a energia, maximizando assim a entropia e armazenando / salvando o máximo de informações possível em nosso RBM.
PS: Por favor, queridos físicos, perdoem quaisquer imprecisões na derivação deste engenheiro. Sinta-se livre para comentar ou corrigir imprecisões (ou mesmo erros).
fonte
A resposta do @Armen me deu muitas idéias. Uma pergunta não foi respondida no entanto.
O objetivo é maximizar a probabilidade (ou probabilidade) do . Isso está correlacionado com a minimização da função energética relacionada a e :v hv v h
Nossos variáveis são , e , que têm que ser treinados. Tenho certeza de que esse treinamento será o objetivo final da RBM.b Wuma b W
fonte
h_bin = (rand() < h_val) ? 1 : 0
h
ouv
- você está amostrando um vetor de valores binários parah
ouv
, a fim de gerar um exemplo que a rede "acredita" existe - ou seja, um exemplo que tem uma alta chance estatística de ser representativo da conjunto de treinamento. Durante o treinamento, você determina o quão bem ele corresponde a um exemplo de treinamento existente e ajusta os pesos de acordo.