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 I. INTRODUO
de aprendizagem estocstica conhecida com Mquina de
Boltzmann. Este algoritmo possui a estrutura parecida Cada vez mais necessita-se de sistemas que automatizem o
com Redes Neurais Artificiais (RNA) utilizando um reconhecimento de pessoas, de assinaturas e de outros tipos de
processo de reconhecimento parecido com o aprendizado padres facilitando, agilizando e aumentando a segurana
de neurnios biolgicos. Alm disso, aplicado um deste tipo de processo. Para atender esta demanda so
conceito da termodinmica para se alcanar o equilbrio utilizadas vrias formas de padres para posteriormente o
de uma rede atravs do abaixamento da temperatura de sistema realizar o reconhecimento, tais como: reconhecimento
forma a minimizar a energia do sistema, conhecido como de faces, identificao atravs da ris do olho, reconhecimento
Recozimento Simulado. Aplicou-se testes com uma rede de de escritas cursivas, reconhecimento de fala, entre outros.
neurnios artificiais e atravs da simulao deste Existem vrios mtodos de reconhecimentos de padres
algoritmo, concluiu-se a eficcia da rede em reconhecer que so aplicados nestes sistemas. Neste artigo ser aplicado
padres. um mtodo de aprendizagem estocstica conhecida com
Mquina de Boltzmann (BM).
Palavras-Chave Boltzmann, reconhecimento de O mtodo aplicado neste trabalho utilizar uma estrutura
padres, recozimento simulado, RNA. 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,
STANDARDS CLASSIFICATION USING
onde a estrutura desta rede utiliza um mtodo parecido com o
LEARNING BOLTZMANN aprendizado de um neurnio biolgico.
Porm, neste artigo o mtodo conhecido com Mquina de
Abstract - This paper presents an algorithm that Boltzmann utiliza esta estrutura de RNA com a diferena dos
performs pattern recognition using a stochastic learning neurnios terem valores binrios e aleatrios. Estes valores
method known as Boltzmann Machine. This algorithm has so modificados e os pesos da rede so ajustados at que se
the similar structure to Artificial Neural Networks (ANN) encontre valores que minimizem a funo de energia da rede.
using a process of recognition like the learning of Ser aplicado algoritmos da Mquina Boltzmann que um
biological neurons. Furthermore, a concept is applied to conceito da termodinmica que realiza o abaixamento da
achieve the thermodynamic equilibrium of a network by temperatura de um sistema at que ocorra um equilbrio de
lowering the temperature in order to minimize the system energia.
power, known as Simulated Annealing. Tests were applied Para se testar a eficincia do algoritmo em realizar o
with a network of artificial neurons and through the reconhecimento de padres foi aplicado diferentes algoritmos
simulation of this algorithm, it was concluded the que buscam criar uma rede que otimize este processo de
effectiveness of the network to recognize patterns. reconhecimento. Estes algoritmos foram testados atravs do
1 software Matlab treinando uma rede, a diferena entre os
Keywords - Boltzmann, pattern recognition, simulated algoritmos a forma como os pesos so atualizados. Feito o
annealing, ANN. treinamento da entrada da rede com sua respectiva sada, o
algoritmo realizar a classificao da sada ideal de acordo
NOMENCLATURA
com a entrada. Desta forma, pode-se mensurar a eficincia do
RNA Redes Neurais Artificiais. sistema em realizar um reconhecimento de um padro.
BM Boltzmann Machine.
II. MQUINA DE BOLTZMANN

No incio de 1980 Geoffrey Hinton e Terry Sejnowski


desenvolveu o conceito original de uma mquina de

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.

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:
1
=
,=1 (1)
2

Fig. 1. Rede Neural Artificial. Onde:


- Pesos que conectam os ns i e j.
Na arquitetura da Mquina de Boltzmann, existem Si - Valor do n i selecionado.
similaridades com a RNA, pois tambm possui unidades E - Energia do sistema ou funo custo.
chamadas neurnios, unidades de entrada, unidades ocultas e N - Quantidade de neurnios na rede.
unidades de sada.
A mquina de Boltzmann uma rede de unidades binrias O algoritmo Mquina de Boltzmann ser capaz de ajustar
estocsticas simetricamente acopladas[3]. O sistema tem uma todos os valores dos neurnios binrios em -1 ou +1 de forma
camada de unidades binrias visveis e uma camada de que o valor E da equao 1 seja o menor possvel. Para realizar
unidades binrias escondidas. Cada unidade tem uma ligao esta otimizao utiliza-se o algoritmo descrito no item III
bidirecional com outra unidade no sistema. O objetivo deste deste artigo.
equipamento o de ser capaz de estimar as probabilidades que
ambas as unidades ligadas teriam. Isto feito, por permitir que III. RECOZIMENTO SIMULADO
a mquina resolva a distribuio prxima do equilbrio. A
ideia geral a de ajustar os pesos de modo que as No aprendizado de Boltzmann, para otimizar ou reduzir a
inicializaes aleatrias resolvam os estados semelhantes aos energia do sistema e fugir de solues com mnimos locais,
que existem no meio ambiente. [2] utilizado a tcnica ou algoritmo de recozimento simulado. No
Se esta regra aplicada repetidamente visando o ajuste da campo da termodinmica, o recozimento uma tcnica em que
rede a algum padro de entrada, ela chegar a um ponto em o sistema inicia com alta temperatura e esta temperatura
que se tornar estvel, ou seja, no haver mais trocas de

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.

Fig. 3. Algoritmo de recozimento simulado estocstico. 1) Algoritmo de Aprendizagem de Boltzmann


No algoritmo de aprendizagem de Boltzmann, necessrio
Caso o resfriamento seja suficiente, o sistema ter grande inicializar com os valores de taxa de aprendizagem ,
probabilidade de estar em baixo estado de energia, atingindo temperatura inicial T(k) e pesos wij. Inicialmente define-se
o mnimo global de energia. 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

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

Este trabalho desenvolvido mostra a importncia desta


Fig. 7. Grfico da energia do sistema em relao a cada execuo tcnica de Boltzmann, pois se mostrou eficiente em
do algoritmo de recozimento simulado. reconhecer padres. O trabalho apresentou teste com poucas
variveis, porm pode ser aplicado em problemas bem mais
No algoritmo determinstico de recozimento simulado a complexos.
energia do sistema foi calculada k vezes, totalizando 20 Alm disso, a tcnica utilizada de recozimento simulado
execues. A energia mnima encontrada foi -2,60 e a auxilia na diminuio da carga computacional para situaes
configurao de neurnios encontrada foi: que exigem muitas variveis de entrada para o
reconhecimento. Problemas tais como: reconhecimento de
s = -1 -1 -0.561 -0.989 1 1 -0.999 faces, preenchimento de padres defeituosos, reconhecimento
de ris, identificao de escrita e demais padres. Estas
J no algoritmo fora bruta a energia do sistema foi situaes problemas podem ser aplicadas em trabalho futuros.
calculada 2N vezes, sendo N o nmero de neurnios,
totalizando 128 execues. A energia mnima encontrada foi - REFERNCIAS
2,64 e a configurao de neurnios encontrada foi:
[1] R.O. Duda, P.E. Hart, and D.G. Stork, Pattern
s = -1 -1 -1 -1 1 1 -1 Classification, John Wiley & Sons Inc., 2 Edio, Nova
York, 2001.
Nota-se nestes dois casos, que a energia mnima encontrada [2] S. N. Sivanandam, S. Sumathi, Introduction to Neural
no sistema foi muito prxima, porm com o algoritmo de Networks using Matlab 6.0, Tata McGraw-Hill
recozimento simulado, a soluo de otimizao encontrada Education, New Delhi, 2006.
em apenas 20 execues enquanto que de outro modo testando [3] R. Salakhutdinov, G.E. Hinton, Deep boltzmann
todas as opes da rede deveramos executar 1 vezes, para machines, in Proceedings of the international
encontrar a rede que otimizaria a energia. conference on artificial intelligence and statistics, vol. 5,
Alm disso, tambm foi testado o algoritmo estocstico de no. 2, pp. 448-455, Cambridge, MA: MIT Press.
recozimento simulado explicado no item III 1 que teve uma [4] S.E. Fahlman, G.E. Hinton, Connectionist Architectures
sada parecida com algoritmo determinstico. for Artificial Intelligence. Computers for Artificial
Por fim, foi criado um algoritmo que implementa o mtodo Intelligence Processing. WHA, B. W. &
de aprendizagem de Boltzmann conforme o item IV deste RAMAMOORTHY, C. V. John Wiley & Sons Inc., Nova
artigo. Para isto, criou-se uma rede com 7 neurnios, sendo 2 York, 1990.
neurnios na camada de entrada, 3 neurnios na camada oculta [5] G.E. Hilton, T.J. Sejnowski, Learning and Relearning in
e 2 neurnios na camada de sada. Para testar o processo de Boltzmann Machines, MIT Press, Cambridge, Mass., 1,
aprendizagem, as sadas S6 e S7, foram igualadas s entradas 282317, 1985.
S1 e S2 respectivamente, conforme ilustrado na figura 6.

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