Documente Academic
Documente Profesional
Documente Cultură
BOLTZMANN
Gustavo Bruno do Vale, Gilberto Arantes Carrijo
Universidade Federal de Uberlndia. Faculdade de Engenharia Eltrica, Uberlndia-MG
gbvale@reito.ufu.br, gilberto@ufu.br
1
Boltzmann conhecida com BM (Boltzmann Machine). A valores nas unidades, que ser possvel o aprendizado de um
mquina de Boltzmann uma mquina de estados, onde h padro.
modificaes ou repeties de certos eventos at que se A rede ser dita tendo um modelo perfeito do ambiente se
chegue a um estado considerado estvel. Quando esta mquina atingir exatamente a mesma distribuio de probabilidade
se estabiliza adotando um critrio de parada, diz-se que ela sobre esses dois estados quando est funcionando livremente
aprendeu aquele padro[3][4]. em equilbrio trmico com nenhuma entrada do meio ambiente
Em 1982, Hopfield props um tipo de Rede Neural [5]. Embora o sistema nunca possa ser um modelo perfeito,
Artificial (RNA) onde se as unidades da rede fossem regularidades nos dados podem ser capturados para dar uma
simetricamente conectadas wij = wji e se os pesos fossem estimativa perto da probabilidade real.
atualizados simultaneamente no tempo, seria possvel a A arquitetura da mquina de Boltzmann apresentada na
simulao da reduo de energia num sistema fsico, Fig. 2 seguir.
conhecida com entropia, ajustando-o para modelagem de
determinado padro. A Mquina de Boltzmann uma
generalizao da rede de Hopfield com a diferena de seguir
uma regra de deciso probabilstica[5].
Para entender esta rede, primeiramente necessrio
entender o funcionamento de uma Rede Neural Artificial
conhecida como RNA. Uma RNA uma rede que baseia o
aprendizado em neurnios biolgicos. Cada neurnio artificial
recebe sinais de entrada que so multiplicados por pesos, esses
produtos so somados e valor resultante aplicado a uma
funo de ativao que tomar deciso do valor de sada.
Quando vrios neurnios so conectados conforme a figura 1,
forma-se uma RNA com neurnios na camada de entrada,
neurnios ocultos nas camadas intermedirias e neurnios na
camada de sada. Atravs desta rede possvel a aprendizagem
e classificao de padres. Fig. 2. Arquitetura da Mquina de Boltzmann.
2
abaixada gradualmente at se atingir um equilbrio e uma 2) Recozimento simulado determinstico (Algoritmo 2)
baixa energia do sistema. Um outro algoritmo utilizado para realizar o recozimento
O algoritmo da Mquina de Boltzmann, utiliza este mesmo chamado de determinstico porque em princpio possvel
princpio sendo repetido os estados vrias vezes abaixando a deterministicamente resolver as equaes para se encontrar o
temperatura at se alcanar um limiar escolhido. Cada vez que valor de Si quando a temperaturas reduzida.
um estado repetido ocorre a atualizao dos pesos da rede e Neste mtodo de recozimento determinista, seleciona-se
so modificados os valores dos neurnios de forma a otimizar aleatoriamente um n i da rede, depois calcula-se as foras
a rede[1]. exercidas dos ns conectados a este n i e este somatrio
Ser descrito a seguir alguns algoritmos que realizam a chamado li conforme a equao 3 a seguir:
tcnica do Recozimento Simulado, sendo uma tcnica
estocstica e a outra tcnica determinstica. = (3)
Onde:
1) Algoritmo recozimento simulado estocstico - Pesos que conectam os ns i e j.
Um dos algoritmos para realizar o recozimento simulado Si - Valor do n i seleccionado.
conhecido com Recozimento Simulado Estocstico. Neste O valor de Si a ser atualizado depender deste somatrio li
algoritmo inicializa-se com uma temperatura T(1) alta, com e da temperatura em andamento. Sendo aplicada a equao
estados aleatrios Si(1) e com um valor kmax que ser a (4), calculando a tangente hiperblica de li/T.
quantidade de vezes que a temperatura T ser abaixada ou o
algoritmo ser realizado. Seleciona-se aleatoriamente um n i = ( , ) = tanh[ ] (4)
da rede que poder ser atualizado de acordo com a regra
abaixo. Suponha-se que o estado Si = +1, ento calcula-se a Onde:
energia Ea do sistema nesta configurao; depois recalcula-se - Pesos que conectam os ns i e j.
a energia Eb para o novo estado Si = -1. Se este estado
Si - Valor do n i selecionado.
candidato tiver energia menor, aceita-se esta mudana de
li - Somatrio explicado na equao 3.
estado. Caso a energia seja maior, aceita-se a mudana com a
probabilidade igual a:
Os novos valores de Si selecionados sero substituidos na
rede seguindo os valores determinados na equao 4. Estes
(2) passos do algoritmo so descritos na figura 4.
Onde:
ab = Eb - Ea
1 Inicializar T(k), kmax, wij, si(1), i, j = 1, ..., N
T - Temperatura. 2 k0
3 do k k + 1
Este algoritmo realiza a seleo e teste vrias vezes dos ns 4 selecionar n i aleatoriamente; estado si
i da rede sempre abaixando a temperatura. O recozimento 5 =
simulado termina quando a temperatura est muito baixa 6 = ( , ) = tanh[ ]
(definido atravs do valor de k). A figura 3 a seguir descreve 7 until k = kmax ou encontrar critrio de convergncia
os passos do algoritmo explicado. 8 return E, si, i = 1, ..., N
9 end
1 Inicializar T(k), kmax, si(1), wij para i, j = 1, ..., N
Fig. 4. Algoritmo de recozimento simulado determinstico.
2 k0
3 do k k + 1
4 do selecionar n i aleatoriamente; estado si Ao final deste processo, tambm espera-se encontrar
1 valores de Si que reduzam a energia total do sistema.
5 2 ,=1
6 Eb Ea IV. APRENDIZAGEM DE BOLTZMANN
7 if Eb < Ea
8 then si -si No algoritmo de Boltzmann, o recozimento utilizado para
9 else if ( )() > rand (0,1) diminuir a energia do sistema, podendo ser qualquer um dos
10 then si -si
11 until
dois mtodos explicados. Porm para realizar reconhecimento
12 until k = kmax ou encontrar critrio de parada de padres necessrio manter fixo alguns valores dos
13 return E, si, for i=1, , N neurnios Si e realizar o recozimento dos demais, este
14 end algoritmo ser descrito nos prximos itens deste artigo.
3
camada oculta. No final deste passo, necessrio abaixar a
temperatura T e calcular o produto SiSj.
Novamente, define-se de forma aleatria os estados Si.
Inicia-se ento outro processo de recozimento, desta vez
mantendo fixo apenas a camada de entrada da rede e
realizando o recozimento da camada oculta e camada de sada.
Abaixa-se novamente a temperatura T do sistema e calcula-se
o produto SiSj.
Atravs dos produtos SiSj calculados nos dois processos, da
taxa de aprendizagem e da temperatura T, atualiza-se os
pesos da rede seguindo a seguinte equao 5.
= + [ [ ] ] (5)
Onde:
- Pesos que conectam os ns i e j.
Si - Valor do n i selecionado.
- Taxa de aprendizagem.
T - Temperatura.
i - Unidades de entrada da rede. Fig. 6. Rede testada com 7 unidades sendo 2 unidades de entrada, 2
o - Unidades de sada da rede. unidades de sada e 3 unidades ocultas.
Este processo de atualizao ser realizado k vezes, sendo No processo de reconhecimento de padres, espera-se que
k a quantidade de vezes que a temperatura reduzida. A figura com a rede treinada, as sadas S6 e S7 possam ser encontradas
5 descreve este algoritmo explicado. Ao final do processo, a apenas fornecendo os valores S1 e S2 de entrada. Desta forma,
rede ter os pesos wij atualizados e os valores Si dos neurnios a rede ser capaz de reconhecer um padro treinado e
ter valores que tendem abaixar a energia do sistema e manter selecion-lo na sada. Esta capacidade da rede depender do
a rede estvel. ajuste dos pesos que ser realizado atravs dos processos de
aprendizagem e dos algoritmos descritos no item anterior.
1 Inicializar , , T(k), wij, i, j = 1, ... , N O processo utilizado nesta rede pode ser aplicado em
2 do Selecionar aleatoriamente padro de treinamento x processos mais complexos. Por exemplo, pode-se treinar uma
3 Estados aleatrios si rede onde a entrada so dgitos de 0 a 9, e posteriormente esta
4 Recozimento da rede com entradas e sadas fixas rede ser capaz de reconhecer um dgito qualquer e apresent-
5 No final, abaixar T, calcular [ ] lo na camada de sada.
6 Estados aleatrios si
7 Recozimento com entradas fixas e sadas livres VI. RESULTADOS
8 No final, abaixar T, calcular [ ]
9 + [ [ ] ] Conforme mencionado, os algoritmos descritos nos tpicos
10 until k = kmax ou encontrar critrio de convergncia acima, foram simulados atravs do software Matlab.
11 return wij Primeiramente foram testados os algoritmos de recozimento
12 end para abaixar a energia total do sistema. Criou-se uma funo
que gera os valores de Si, sendo que foi gerado todas as
Fig. 5. Algoritmo determinstico de Boltzmann. configuraes possveis de valores -1 e +1 para uma rede de 7
neurnios. Atravs do algoritmo fora bruta que testa a rede
Neste processo, a rede formada ter valores com grande com todas as configuraes possveis, encontrou-se os valores
probabilidade de realizar reconhecimento de padres. Assim, de Si que mantem a rede com a menor energia total. Porm
com os valores de entrada e sada treinados na rede, ser este mtodo foi utilizado apenas para testar o algoritmo de
possvel realizar a classificao de padres de acordo com a recozimento simulado, pois seria invivel em rede com grande
entrada. quantidade de neurnios.
No algoritmo determinstico de recozimento explicado no
V. METODOLOGIA
item III 2, foi criado uma rede de 7 neurnios, foi escolhida
Neste trabalho os algoritmos descritos nos tpicos uma temperatura inicial T(1)=1 e esta temperatura foi
anteriores, foram simulados atravs do software Matlab. Para reduzida k vezes com k = 20 seguindo a seguinte expresso a
se testar a capacidade da rede em reconhecer padres, criou- cada passo: T(k)=T(1)*0,9k . No algoritmo testado encontrou-
se uma rede com 7 neurnios, sendo 2 neurnios na camada se o valor Si dos neurnios que minimizam a energia do
de entrada, 3 neurnios na camada oculta e 2 neurnios na sistema testando o algoritmo fora bruta e o valor Si dos
camada de sada. Para testar o processo de aprendizagem, as neurnios utilizando o algoritmo recozimento simulado.
sadas S6 e S7, foram igualadas s entradas S1 e S2 Observou-se que o algoritmo de recozimento simulado teve
respectivamente, conforme ilustrado na figura 7. um resultado satisfatrio pois teve uma sada parecida com a
do algoritmo de fora bruta.
4
Nota-se que a energia do sistema foi reduzida a cada Neste algoritmo desenvolvido manteve-se inicialmente os
interao que foi reduzida a temperatura do sistema e neurnios de entrada e sada fixos e atravs do algoritmo de
consequentemente atualizado o valor dos neurnios Si. Isto recozimento simulado e calculou-se os novos valores dos
pode ser confirmado atravs do grfico da figura 7 em cada neurnios Si. Em seguida foi calculado o produto Si * Sj
uma das 20 interaes. denominado S1(i,j), sendo i e j todos os 7 neurnios da rede.
Na prxima etapa, manteve-se fixo apenas os valores da
entrada e novamente calculou-se os novos valores dos
neurnios Si. Novamente foi calculado o produto Si * Sj
denominado S2(i,j). Ao final deste processo encontrou-se os
novos valores dos pesos da rede atravs da equao (5) j
apresentada.
Com a rede encontrada com novos valores dos pesos wij e
valores dos neurnios ocultos Si, foi possvel testar a
capacidade da rede em reconhecer um padro de entrada.
Esperava-se que as sadas S6 e S7, fossem respectivamente
iguais s entradas S1 e S2. Com 4 combinaes diferentes de
entradas binrias, a rede conseguiu ter um acerto na camada
de sada variando entre 3 e 4 acertos, ou seja, de 75% a 100%.
VII. CONCLUSES