Sei sulla pagina 1di 5

CLASSIFICAO DE PADRES UTILIZANDO APRENDIZAGEM DE

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

olho, reconhecimento de escritas cursivas, reconhecimento


de fala, entre outros.
Existem vrios mtodos de reconhecimentos de padres
que so aplicados nestes sistemas. Neste artigo ser aplicado
um mtodo de aprendizagem estocstica conhecida com
Mquina de Boltzmann (BM).
O mtodo aplicado neste trabalho utilizar uma estrutura
como das Redes Neurais Artificiais (RNA) porm com
diferenas nos valores dos neurnios desta rede. As RNAs j
so muito aplicadas em sistemas de reconhecimento de
padres, onde a estrutura desta rede utiliza um mtodo
parecido com o aprendizado de um neurnio biolgico.
Porm, neste artigo o mtodo conhecido com Mquina de
Boltzmann utiliza esta estrutura de RNA com a diferena dos
neurnios terem valores binrios e aleatrios. Estes valores
so modificados e os pesos da rede so ajustados at que se
encontre valores que minimizem a funo de energia da rede.
Ser aplicado algoritmos da Mquina Boltzmann que um
conceito da termodinmica que realiza o abaixamento da
temperatura de um sistema at que ocorra um equilbrio de
energia.
Para se testar a eficincia do algoritmo em realizar o
reconhecimento de padres foi aplicado diferentes algoritmos
que buscam criar uma rede que otimize este processo de
reconhecimento. Estes algoritmos foram testados atravs do
software Matlab treinando uma rede, a diferena entre os
algoritmos forma que os pesos so atualizados. Feito o
treinamento da entrada da rede com sua respectiva sada, o
algoritmo realizar a classificao da sada ideal de acordo
com a entrada. Desta forma, pode-se mensurar a eficincia
do sistema em realizar um reconhecimento de um padro.

Resumo - Este trabalho apresenta um algoritmo que


realiza reconhecimento de padres utilizando um mtodo
aprendizagem estocstica conhecida com Mquina de
Boltzmann. Este algoritmo possui a estrutura parecida
com Redes Neurais Artificiais (RNA) utilizando um
processo de reconhecimento parecido com o aprendizado
de neurnios biolgicos. Alm disso, aplicado um
conceito da termodinmica para se alcanar o equilbrio
de uma rede atravs do abaixamento da temperatura de
forma a minimizar a energia do sistema.
Palavras-Chave Boltzmann, reconhecimento de
padres, recozimento simulado, RNA.

STANDARDS CLASSIFICATION USING


LEARNING BOLTZMANN
Abstract - This paper presents an algorithm that
performs pattern recognition using a stochastic learning
method known as Boltzmann machine. This algorithm
has the similar structure to Artificial Neural Networks
(ANN) using a process of recognition like the learning of
biological neurons. Furthermore, a concept is applied to
achieve the thermodynamic equilibrium of a network by
lowering the temperature in order to minimize the system
power.
1
Keywords - Boltzmann, pattern recognition, simulated
annealing, RNA.
NOMENCLATURA
RNA
BM

II. MQUINA DE BOLTZMANN

Redes Neurais Artificiais.


Boltzmann Machine.

No incio de 1980 Geoffrey Hinton e Terry Sejnowski


desenvolveu o conceito original de uma mquina de
Boltzmann conhecida com BM (Boltzmann Machine). A
mquina de Boltzmann uma mquina de estados, onde h
modificaes ou repeties de certos eventos at que se
chegue a um estado considerado estvel. Quando esta
mquina se estabiliza adotando um critrio de parada, diz-se
que ela aprendeu aquele padro[3][4].
Em 1982, Hopfield props um tipo de Rede Neural
Artificial (RNA) onde se as unidades da rede fossem
simetricamente conectadas wij = wji e se os pesos fossem
atualizados simultaneamente no tempo, seria possvel a
simulao da reduo de energia num sistema fsico,
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].

I. INTRODUO
Cada vez mais necessita-se de sistemas que automatizem
o reconhecimento de pessoas, de assinaturas e de outros tipos
de padres facilitando, agilizando e aumentando a segurana
deste tipo de processo. Para atender esta demanda so
utilizadas vrias formas de padres para posteriormente o
sistema
realizar
o
reconhecimento,
tais
como:
reconhecimento de faces, identificao atravs da ris do

Para entender esta rede, primeiramente necessrio


entender o funcionamento de uma Rede Neural Artificial
conhecido 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.

Nesta rede, os valores das unidades ou neurnios binrios


so chamados de Si e os pesos so denominados wij, sendo i e
j os neurnios da rede. Para distinguir as unidades ou
neurnios de entrada e sada da rede, utiliza-se os smbolos i
para unidades de entrada, o para as unidades de sada e
para unidades ocultas [1]. Para se atingir o equilbrio da rede
necessrio realizar a otimizao dos valores de Si e ajustar
os pesos wij, de modo a minimizar funo custo ou energia E
conforme expressa na equao 1 abaixo:
Fig. 1. Rede Neural Artificial.

Na arquitetura da Mquina de Boltzmann, existem


similaridades com a RNA, pois tambm possui unidades
chamadas neurnios, unidades de entrada, unidades ocultas e
unidades de sada.
A mquina de Boltzmann uma rede de unidades binrias
estocsticos simetricamente acoplados[3]. O sistema tem
uma camada de unidades binrias visveis e uma camada de
unidades binrias escondidos. Cada unidade tem uma ligao
bidirecional com outra unidade no sistema. O objetivo deste
equipamento o de ser capaz de estimar as probabilidades
que ambas as unidades ligadas teriam. Isto feito, por
permitir que a mquina resolva a distribuio prxima do
equilbrio. A ideia geral a de ajustar os pesos de modo que
as inicializaes aleatrias resolvam os estados semelhantes
aos que existem no meio ambiente. [2]
Se esta regra aplicada repetidamente visando o ajuste da
rede a algum padro de entrada, ela chegar a um ponto em
que se tornar estvel, ou seja, no haver mais trocas de
valores nas unidades, que ser possvel o aprendizado de um
padro.
A rede ser dita tendo um modelo perfeito do ambiente se
atingir exatamente a mesma distribuio de probabilidade
sobre esses dois estados quando est funcionando livremente
em equilbrio trmico com nenhuma entrada do meio
ambiente [5]. Embora o sistema nunca possa ser um modelo
perfeito, regularidades nos dados podem ser capturados para
dar uma estimativa perto da probabilidade real.
A arquitetura da mquina de Boltzmann apresentada na
Fig. 2 abaixo.

Onde:

Si
E
N

1
2

,=1

(1)

- Pesos que conectam os ns i e j.


- Valor do n i selecionado.
- Energia do sistema ou funo custo.
- Quantidade de neurnios na rede.

O algoritmo Mquina de Boltzmann ser capaz de ajustar


todos os valores dos neurnios binrios em -1 ou +1 de
forma que o valor E da equao 1 seja o menor possvel. Para
realizar esta otimizao utiliza-se o algoritmo descrito no
item III deste artigo.
III. RECOZIMENTO SIMULADO
No aprendizado de Boltzmann, para otimizar ou reduzir a
energia do sistema e fugir de solues com mnimos locais,
utilizado a tcnica ou algoritmo de recozimento simulado.
No campo da termodinmica, o recozimento uma tcnica
em que o sistema inicia com alta temperatura e esta
temperatura abaixada gradualmente at se atingir um
equilbrio e uma baixa energia do sistema.
O algoritmo da Mquina de Boltzmann, utiliza este
mesmo princpio sendo repetido os estados vrias vezes
abaixando a temperatura at se alcanar um limiar escolhido.
Cada vez que um estado repetido ocorre a atualizao dos
pesos da rede e so modificados os valores dos neurnios de
forma a otimizar a rede[1].
Ser descrito abaixo alguns algoritmos que realizam a
tcnica do Recozimento Simulado, sendo uma tcnica
estocstica e a outra tcnica determinstica.

1) Algoritmo recozimento simulado estocstico


Um dos algoritmos para realizar o recozimento simulado
conhecido com Recozimento Simulado Estocstico. Neste
algoritmo inicializa-se com uma temperatura T(1) alta, com
estados aleatrios Si(1) e com um valor kmax que ser a
quantidade de vezes que a temperatura T ser abaixada ou o
algoritmo ser realizado. Seleciona-se aleatoriamente um n i
da rede que poder ser atualizado de acordo com a regra
abaixo. Suponha-se que o estado Si = +1, ento calcula-se a
energia Ea do sistema nesta configurao; depois recalcula-se
a energia Eb para o novo estado Si = -1. Se este estado
candidato tiver energia menor, aceita-se esta mudana de
estado. Caso a energia seja maior, aceita-se a mudana com a
probabilidade igual a:

O valor de Si a ser atualizado depender deste somatrio li


e da temperatura em andamento. Sendo aplicada a equao
(4), calculando a tangente hiperblica de li/T.
= ( , ) = tanh[ ]
Onde:

Si
li

(2)

1 Inicializar T(k), kmax, wij, si(1), i, j = 1, ..., N


2
k0
3
do k k + 1
4
selecionar n i aleatoriamente; estado si
5
=
6
= ( , ) = tanh[ ]
7
until k = kmax ou encontrar critrio de convergncia
8
return E, si, i = 1, ..., N
9 end

Este algoritmo realiza a seleo e teste vrias vezes dos


ns i da rede sempre abaixando a temperatura. O
recozimento simulado termina quando a temperatura est
muito baixa (definido atravs do valor de k). A figura 3
abaixo descreve os passos do algoritmo explicado.

Fig. 4. Algoritmo de recozimento simulado determinstico.

Ao final deste processo, tambm espera-se encontrar


valores de Si que reduzam a energia total do sistema.

1 Inicializar T(k), kmax, si(1), wij para i, j = 1, ..., N


2
k0
3
do k k + 1
4
do selecionar n i aleatoriamente; estado si
1
5

,=1
2
6
Eb E a
7
if Eb < Ea
8
then si -si
9
else if ( )() > rand (0,1)
10
then si -si
11
until
12
until k = kmax ou encontrar critrio de parada
13
return E, si, for i=1, , N
14
end

IV. APRENDIZAGEM DE BOLTZMANN


No algoritmo de Boltzmann, o recozimento utilizado
para diminuir a energia do sistema, podendo ser qualquer um
dos dois mtodos explicados. Porm para realizar
reconhecimento de padres necessrio manter fixo alguns
valores dos neurnios Si e realizar o recozimento dos demais,
este algoritmo ser descrito nos prximos itens deste artigo.
1) Algoritmo de Aprendizagem de Boltzmann
No algoritmo de aprendizagem de Boltzmann,
necessrio inicializar com os valores de taxa de
aprendizagem , temperatura inicial T(k) e pesos wij.
Inicialmente define-se aletoriamente os estados Si. O
prximo passo ser manter fixo os neurnios de entrada e
sada a serem treinados, e realizar o recozimento dos demais
neurnios que so os neurnios da 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.

Fig. 3. Algoritmo de recozimento simulado estocstico.

Caso o resfriamento seja suficiente, o sistema ter grande


probabilidade de estar em baixo estado de energia, atingindo
o mnimo global de energia.
2) Recozimento simulado determinstico (Algoritmo 2)
Um outro algoritmo utilizado para realizar o recozimento
chamado de determinstico porque em princpio possvel
deterministicamente resolver as equaes para se encontrar o
valor de Si quando a temperaturas reduzida.
Neste mtodo de recozimento determinista, seleciona-se
aleatoriamente um n i da rede, depois calcula-se as foras
exercidas dos ns conectados a este n i e este somatrio
chamado li conforme a equao 3 abaixo:
=

- Pesos que conectam os ns i e j.


- Valor do n i selecionado.
- Somatrio explicado na equao 3.

Os novos valores de Si selecionados sero substituidos na


rede seguindo os valores determinados na equao 4. Estes
passos do algoritmo so descritos na figura 4.

Onde:
ab = Eb - Ea
T
- Temperatura.

Onde:

Si

(4)

(3)

- Pesos que conectam os ns i e j.


- Valor do n i seleccionado.

= + [[ ] [ ] ]
Onde:

Si

T
i
o

um resultado satisfatrio pois teve uma sada parecida com a


do algoritmo de fora bruta.
Nota-se que a energia do sistema foi reduzida a cada
interao que foi reduzida a temperatura do sistema e
consequentemente atualizado o valor dos neurnios Si. Isto
pode ser confirmado atravs do grfico da figura 6 em cada
uma das 20 interaes.

(5)

- Pesos que conectam os ns i e j.


- Valor do n i selecionado.
- Taxa de aprendizagem.
- Temperatura.
- Unidades de entrada da rede.
- Unidades de sada da rede.

Este processo de atualizao ser realizado k vezes, sendo


k a quantidade de vezes que a temperatura reduzida. A
figura 5 descreve este algoritmo explicado. Ao final do
processo, a rede ter os pesos wij atualizados e os valores Si
dos neurnios ter valores que tendem abaixar a energia do
sistema e manter a rede estvel.

-0.5

-1

-1.5

1 Inicializar , , T(k), wij, i, j = 1, ... , N


2
do Selecionar aleatoriamente padro de treinamento x
3
Estados aleatrios si
4
Recozimento da rede com entradas e sadas fixas
5
No final, abaixar T, calcular [ ]
6
Estados aleatrios si
7
Recozimento com entradas fixas e sadas livres
8
No final, abaixar T, calcular [ ]
9
+ [[ ]
[ ] ]

-2

-2.5

-3

10

15

20

25

Fig. 6. Grfico da energia do sistema em relao a cada execuo


do algoritmo de recozimento simulado.

10
until k = kmax ou encontrar critrio de convergncia
11 return wij
12 end

No algoritmo determinstico de recozimento simulado a


energia do sistema foi calculada k vezes, totalizando 20
execues. A energia mnima encontrada foi -2,60 e a
configurao de neurnios encontrada foi:

Fig. 5. Algoritmo determinstico de Boltzmann.

Neste processo, a rede formada ter valores com grande


probabilidade de realizar reconhecimento de padres. Assim,
com os valores de entrada e sada treinados na rede, ser
possvel realizar a classificao de padres de acordo com a
entrada.

s = -1 -1 -0.561 -0.989 1 1 -0.999


J no algoritmo fora bruta a energia do sistema foi
calculada 2N vezes, sendo N o nmero de neurnios,
totalizando 256 execues. A energia mnima encontrada foi
-2,64 e a configurao de neurnios encontrada foi:

V. RESULTADOS
Neste trabalho os algoritmos descritos nos tpicos acima,
foram simulados atravs do software Matlab. Primeiramente
foram testados os algoritmos de recozimento para abaixar a
energia total do sistema. Criou-se uma funo que gera os
valores de Si, sendo que foi gerado todas as configuraes
possveis de valores -1 e +1 para uma rede de 7 neurnios.
Atravs do algoritmo fora bruta que testa a rede com todas
as configuraes possveis, encontrou-se os valores de Si que
mantem a rede com a menor energia total. Porm este
mtodo foi utilizado apenas para testar o algoritmo de
recozimento simulado, pois seria invivel em rede com
grande quantidade de neurnios.
No algoritmo determinstico de recozimento explicado no
item III 2, foi criado uma rede de 7 neurnios, foi escolhida
uma temperatura inicial T(1)=1 e esta temperatura foi
reduzida k vezes com k = 20 seguindo a seguinte expresso a
cada passo: T(k)=T(1)*0,9k . No algoritmo testado encontrouse o valor Si dos neurnios que minimizam a energia do
sistema testando o algoritmo fora bruta e o valor Si dos
neurnios utilizando o algoritmo recozimento simulado.
Observou-se que o algoritmo de recozimento simulado teve

s=

-1

-1

-1

-1

-1

Nota-se nestes dois casos, que a energia mnima


encontrada no sistema foi muito prxima, porm com o
algoritmo de recozimento simulado, a soluo de otimizao
encontrada em apenas 20 execues enquanto que de outro
modo testando todas as opes da rede deveramos executar
256 vezes, para encontrar a rede que otimizaria a energia.
Alm disso, tambm foi testado o algoritmo estocstico de
recozimento simulado explicado no item III 1 que teve uma
sada parecida com algoritmo determinstico.
Por fim, foi criado um algoritmo que implementa o
mtodo de aprendizagem de Boltzmann conforme o item IV
deste artigo. Para isto, criou-se uma rede com 7 neurnios,
sendo 2 neurnios na camada de entrada, 3 neurnios na
camada oculta e 2 neurnios na camada de sada. Para testar
o processo de aprendizagem, as sadas S6 e S7, foram
igualadas s entradas S1 e S2 respectivamente, conforme
ilustrado na figura 7.

VI. CONCLUSES
Este trabalho desenvolvido mostra a importncia desta
tcnica de Boltzmann, pois se mostrou eficiente em
reconhecer padres. O trabalho apresentou teste com poucas
variveis, porm pode ser aplicado em problemas bem mais
complexos.
Alm disso, a tcnica utilizada de recozimento simulado
auxilia na diminuio da carga computacional para situaes
que exigem muitas variveis de entrada para o
reconhecimento. Problemas tais como: reconhecimento de
faces,
preenchimento
de
padres
defeituosos,
reconhecimento de ris, identificao de escrita e demais
padres. Estas situaes problemas podem ser aplicadas em
trabalho futuros.
REFERNCIAS
[1] R.O. Duda, P.E. Hart, and D.G. Stork, Pattern
Classification, John Wiley & Sons Inc., 2 Edio, Nova
York, 2001.
[2] S. N. Sivanandam, S. Sumathi, Introduction to Neural
Networks using Matlab 6.0, Tata McGraw-Hill
Education, New Delhi, 2006.
[3] R. Salakhutdinov, G.E. Hinton, Deep boltzmann
machines, in Proceedings of the international
conference on artificial intelligence and statistics, vol. 5,
no. 2, pp. 448-455, Cambridge, MA: MIT Press.
[4] S.E. Fahlman, G.E. Hinton, Connectionist Architectures
for Artificial Intelligence. Computers for Artificial
Intelligence
Processing.
WHA,
B.
W.
&
RAMAMOORTHY, C. V. John Wiley & Sons Inc.,
Nova York, 1990.
[5] G.E. Hilton, T.J. Sejnowski, Learning and Relearning
in Boltzmann Machines, MIT Press, Cambridge, Mass.,
1, 282317, 1985.

Fig. 7. Rede testada com 7 unidades sendo 2 unidades de entrada, 2


unidades de sada e 3 unidades ocultas.

Neste algoritmo desenvolvido manteve-se inicialmente os


neurnios de entrada e sada fixos e atravs do algoritmo de
recozimento simulado e calculou-se os novos valores dos
neurnios Si. Em seguida foi calculado o produto Si * Sj
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.
Com 4 combinaes diferentes de entradas binrias, a rede
conseguiu ter um acerto variando entre 3 e 4 acertos, ou seja,
de 75% a 100%.

Potrebbero piacerti anche