Sunteți pe pagina 1din 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

Resumo - Este trabalho apresenta um algoritmo que


realiza reconhecimento de padres utilizando um mtodo
de 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, conhecido como
Recozimento Simulado. Aplicou-se testes com uma rede de
neurnios artificiais e atravs da simulao deste
algoritmo, concluiu-se a eficcia da rede em reconhecer
padres.

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 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 so
aplicadas em alguns 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 a forma como 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.

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, known as Simulated Annealing. Tests were applied
with a network of artificial neurons and through the
simulation of this algorithm, it was concluded the
effectiveness of the network to recognize patterns.
1
Keywords - Boltzmann, pattern recognition, simulated
annealing, ANN.
NOMENCLATURA
RNA
BM

Redes Neurais Artificiais.


Boltzmann Machine.

II. MQUINA DE BOLTZMANN


No incio dos anos 1980, Geoffrey Hinton e Terry
Sejnowski desenvolveram 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].
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.

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 seguir.

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:

Onde:

Si
E
N

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
estocsticas simetricamente acopladas[3]. O sistema tem uma
camada de unidades binrias visveis e uma camada de
unidades binrias escondidas. 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

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 a seguir alguns algoritmos que realizam a
tcnica do Recozimento Simulado, sendo uma tcnica
estocstica e a outra tcnica determinstica.

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 a seguir:
=
(3)
Onde:
- Pesos que conectam os ns i e j.
Si
- Valor do n i seleccionado.
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.

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:

Onde:
ab = Eb - Ea
T
- Temperatura.

Onde:

Si
li

= ( , ) = tanh[ ]

(4)

- 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.

(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 a seguir descreve
os passos do algoritmo explicado.
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
2
,=1
6
Eb Ea
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

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.
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

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.

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.
= + [ [ ] ]

Onde:

Si

T
i
o

(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.

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


unidades de sada e 3 unidades ocultas.

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.

No processo de reconhecimento de padres, espera-se que


com a rede treinada, as sadas S6 e S7 possam ser encontradas
apenas fornecendo os valores S1 e S2 de entrada. Desta forma,
a rede ser capaz de reconhecer um padro treinado e
selecion-lo na sada. Esta capacidade da rede depender do
ajuste dos pesos que ser realizado atravs dos processos de
aprendizagem e dos algoritmos descritos no item anterior.
O processo utilizado nesta rede pode ser aplicado em
processos mais complexos. Por exemplo, pode-se treinar uma
rede onde a entrada so dgitos de 0 a 9, e posteriormente esta
rede ser capaz de reconhecer um dgito qualquer e apresentlo na camada de sada.

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
+ [ [ ] ]

VI. RESULTADOS
Conforme mencionado, 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
um resultado satisfatrio pois teve uma sada parecida com a
do algoritmo de fora bruta.

10
until k = kmax ou encontrar critrio de convergncia
11 return wij
12 end
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.
V. METODOLOGIA
Neste trabalho os algoritmos descritos nos tpicos
anteriores, foram simulados atravs do software Matlab. Para
se testar a capacidade da rede em reconhecer padres, criouse 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.

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 7 em cada
uma das 20 interaes.

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.
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
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.

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


do algoritmo de recozimento simulado.

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:
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 128 execues. A energia mnima encontrada foi 2,64 e a configurao de neurnios encontrada foi:
s = -1 -1 -1 -1

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.

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 1 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 6.

S-ar putea să vă placă și