410 likes | 685 Views
Máquina de Boltzmann. Fundamentos e aplicações. Aprendizado de Máquina Lídia Bononi Paiva Tomaz. Referências. Redes Neurais: Princípios e Práticas Simon Haykin Pattern Classification : Richard O. Duda Petter E. Hart David G. Stork Inteligência Artificial Stuart Russell
E N D
Máquina de Boltzmann Fundamentos e aplicações Aprendizado de Máquina Lídia Bononi Paiva Tomaz
Referências • Redes Neurais: Princípios e Práticas • Simon Haykin • PatternClassification: • Richard O. Duda • Petter E. Hart • David G. Stork • Inteligência Artificial • Stuart Russell • Peter Norvig
Tópicos • Definição • Redes Neurais Recorrentes • Modelo Estocástico de um Neurônio • Características da Máquina de Boltzmann • Neurônios da Máquina de Boltzmann • Recozimento Simulado • Aprendizado de Boltzmann • Aplicações
Definição • A Máquina de Boltzmann é um tipo de redesneuraisrecorrentesestocásticasinventadaspor Geoffrey Hinton e Terry Sejnowski - 1986
Redes Neurais Recorrentes • São redes neurais com um ou mais laços de realimentação.
Modelo Estocástico de um neurônio • Permite-se que um neurônio assuma apenas um de dois estados: • +1 para o estado “ligado” • - 1 para o estado “desligado” • A decisão de mudar o estado do neurônio é probabilística.
Características • Utiliza conexões sinápticas simétricas em seus neurônios: • A conexão sináptica simétrica do neurônio i para o neurônio j é representada por wij, com wij = wji para todo (i,j) • Possui uma função de energia E cujo seu valor é determinado pelos estados particulares ocupados pelos neurônios individuais da máquina.
Função de energia E = função de energia xj = estado do neurônio j; w kj = peso sináptico conectando o neurônio j ao neurônio k; j ≠ k = significa que nenhum dos neurônios da máquina tem auto-realimentação
Neurônios da Máquina de Boltzmann • Se dividem em dois grupos funcionais: • visíveis e ocultos.
Neurônios da Máquina de Boltzmann • Neurônios visíveis: • Fornecem uma interface entre a rede e o ambiente no qual ela opera. • Durante a fase de treinamento da rede (aprendizagem supervisionada), os neurônios visíveis estão todos presos a estados específicos determinados pelo ambiente.
Neurônios da Máquina de Boltzmann • Neurônios ocultos • Sempre operam livremente • São usados para explicar as restrições subjacentes contidas nos vetores de entrada do ambiente.
Mínimo global Se tomarmos uma caixa contendo uma paisagem e uma bola de gude, poderíamos começar agitando o caixa vigorosamente no início e depois, gradualmente, reduzir a quantidade de agitação. A idéia é que em qualquer período, deve haver apenas a energia suficiente na caixa para agitar a bolinha para a cavidade mais profunda.
Recozimento Simulado • Tem por objetivo convergir a função para um mínimo global. • Se diferencia dos algoritmos de otimização por que: • Não fica preso necessariamente em mínimos locais, pois é sempre possível uma transição para fora de um mínimo local quando o sistema opera a uma temperatura diferente de zero. • O recozimento simulado é adaptativo no sentido de que as características grosseiras do estado final do sistema são vistas a altas temperaturas, enquanto que os detalhes finos do estado aparecem em temperaturas muito baixas.
Recozimento simulado • Valor inicial da temperatura T é escolhido suficientemente alto; • T não é uma temperatura física (pseudotemperatura); • Em geral a função de decremento é definida por: • Tk = αTk-1, k = 1, 2, ... • onde α é uma constante menor que, mas próxima, à unidade como 0,8 e 0,99.
Aprendizado de Boltzmann • Tipo de aprendizado: • Não supervisionado • Supervisionado
Aprendizagem de Boltzmann • Consiste em duas fases: • Fase positiva: • Nesta fase a rede opera na sua condição presa, isto é, os neurônios visíveis estão todos presos a estados específicos determinados pelo ambiente. • Fase negativa: • Nesta segunda fase, é permitido que todos os neurônios (visíveis e ocultos) operem livremente.
Aprendizagem de Boltzmann • Operação: • Escolha aleatória de um neurônio (j); • Altera-se o estado do neurônio de sj para –sj em alguma temperatura T, com probabilidade dada por:
Aprendizagem de Boltzmann • ∆E = Variação de energia da máquina resultante da troca realizada pela função de energia: ∆Ej=∑kwjksk • T = temperatura
Exemplo 1 1 -1
Exemplo 1 0,2 0,3 0,3 0,2 1 0,4 -1 0,4
Exemplo w11 w12 w13 w21 w22 w23 w31 w32 w33 1 0,2 0,3 0,3 0,2 1 0,4 -1 0,4
Exemplo w11 w12 w13 w21 w22 w23 w31 w32 w33 0 0,2 0,3 0,2 0 0,4 0,3 0,4 0 1 0,2 0,3 0,3 0,2 1 0,4 -1 0,4
Exemplo w11 w12 w13 w21 w22 w23 w31 w32 w33 0 0,2 0,3 0,2 0 0,4 0,3 0,4 0 1 0,2 0,3 0,3 0,2 1 0,4 -1 0,4 Temperatura: 10 α=0.8 p >= 0.5 = 1; p < 0.5 = -1
Exemplo • Para neurônio 1: • ∆E1 = ((0,2 * 1) + (0, 3 * (-1))) = -0,1 • p1 = (1/(1+exp(-(-0,1)/10) ))= 0,4975 • p1 < 0,5 logo o estado do neurônio 1 é -1.
Exemplo w11 w12 w13 w21 w22 w23 w31 w32 w33 0 0,2 0,3 0,2 0 0,4 0,3 0,4 0 -1 0,2 0,3 0,3 0,2 1 0,4 -1 0,4 Temperatura: 8 p >= 0.5 = 1; p < 0.5 = -1
Exemplo • Para neurônio 2: • ∆E2 = ((0,2 * (-1)) + (0, 3 * (-1))) = -0,6 • p2 = (1/(1+exp(-(-0,6)/8) ))= 0,4812 • p2 < 0,5 logo o estado do neurônio 2 é -1.
Exemplo w11 w12 w13 w21 w22 w23 w31 w32 w33 0 0,2 0,3 0,2 0 0,4 0,3 0,4 0 -1 0,2 0,3 0,3 0,2 -1 0,4 -1 0,4 Temperatura: 6,4 p >= 0.5 = 1; p < 0.5 = -1
Exemplo • Para neurônio 3: • ∆E3 = ((0,2 * (-1)) + (0, 3 * (-1))) = -0,7 • p2 = (1/(1+exp(-(-0,7)/6,4) ))= 0,4726 • p2 < 0,5 logo o estado do neurônio 3 é -1.
Exemplo -1 -1 -1
Aprendizagem de Boltzmann • Se a rede executar por tempo suficiente, alcançara um ponto de baixa energia chamado ponto de equilíbrio térmico. • Pode-se estimar a distribuição de probabilidade sobre as unidades visíveis, na fase em que a rede executa livremente, calculando as atividades médias < S > de todas as unidades visíveis.
Aprendizado de Boltzmann • Distância de Kullback-Leibler: • onde • Pα – distribuição dos neurônios visíveis • Pβ – distribuição dos neurônios ocultos
Aprendizado de Boltzmann • Para aproximar as distribuições de probabilidades Pα e Pβ, basta minimizar a função G: • onde • <sisj>+ (probabilidade dos neurônios i e j estarem ativos) • <sisj>- (probabilidade dos neurônios i e j estarem inativos )
Aprendizagem de Boltzmann • Variação dos pesos: • Suponha que pjk- represente a correlação entre os estados dos neurônios j e k, com a rede na sua condição presa. • Suponha que pjk+ represente a correlação entre os estados dos neurônios j e k, com a rede na sua condição livre.
Aprendizagem de Boltzmann • A variação ∆ωkj aplicada ao peso sináptico ωkjdo neurônio j para o neurônio K é definada por (Hinton e Sejnowski, 1986) ∆ωkj = η(ρkj- - pkj+), j≠k • η = taxa de aprendizagem • ρkj- e pkj+ assumem valores entre -1 e +1.
Algoritmo • Atribuir valores iniciais aos pesos que reflitam o problema; • Atribua valor à constante de redução de temperatura (preferencialmente entre 0.8 e 0.99); • Atribuir valor inicial à temperatura; • Atribuir valores aleatórios aos nós (0,1 ou -1,1); • Aplicar a fase “presa” a partir da fórmula de probabilidade; • Aplicar a fase “livre” a partir da fórmula de probabilidade; • Ajustar os pesos sinápticos; • Ajustar a temperatura; • Repetir os passos 5-8 até a temperatura chegar perto de 0 (zero) • Deixar que o sistema atinja um equilíbrio; • Um mínimo global deve ter sido encontrado.
Desvantagem • Caso a redução da temperatura seja pequena (desejável) a fase de treinamento fica muito lenta.
Aplicações • Reconhecimento de padrões • Problemas de otimização • Exemplos: • http://lotsacode.wordpress.com/2010/09/14/sharprbm-restricted-boltzmann-machines-in-c-net/
Resumo • Rede neural recorrente, onde cada nó é conectado a outro, mas não a si mesmo; • Nós têm saída binária (1 ou-1 / 0 ou 1); • Os pesos são simétricos; • A rede é constituída de nós visíveis e ocultos; • A aprendizagem pode ser supervisionada ou não supervisionada; • A ativação do nó é estocástico.