Universidade de Caxias do Sul
Centro de Ciências Exatas e Tecnologia
Departamento de Informática
Curso de Bacharelado em Ciência da Computação
APLICAÇÃO DE REDES NEURAIS ARTIFICIAIS
À MINERAÇÃO DE DADOS
por
Daniel Luís Notari
Trabalho de Conclusão para a obtenção do
grau de Bacharel em Ciência da Computação.
Orientadora: Sandra Rovena Frigeri
Caxias do Sul, Dezembro 1997.
AGRADECIMENTOS
Um agradecimento muito especial eu faço aos meus pais pela sua dedicação, esforço,
apoio e compreensão expressados ao longo dos anos.
Eu agradeço, a minha namorada Rafaela, pela compreensão e carinho dedicados ao
longo do tempo que estamos namorando.
A minha orientadora, Sandra Rovena Frigeri, eu agradeço de coração todos os
ensinamentos transmitidos, pela paciência e compreensão dedicados a mim.
A Lia Cláudia Matté, eu agradeço as sugestões que foram muito úteis ao
desenvolvimento deste trabalho.
E, agradeço aos professores do Departamento de Informática da Universidade de
Caxias do Sul e funcionários do Laboratório de computação a ajuda, de qualquer forma que
tenha sido, prestada ao longo destes seis anos que eu estou cursando o curso de computação.
SUMÁRIO
LISTA DE FIGURAS......................................................................................................................................6
LISTA DE TABELAS.....................................................................................................................................7
LISTA DE SÍMBOLOS ..................................................................................................................................8
LISTA DE ABREVIATURAS ......................................................................................................................10
RESUMO ......................................................................................................................................................11
ABSTRACT ..................................................................................................................................................12
1. INTRODUÇÃO.........................................................................................................................................13
2. DESCOBERTA DO CONHECIMENTO EM BANCO DE DADOS (DCBD)........................................17
2.1 CONCEITOS RELACIONADOS À DESCOBERTA DO CONHECIMENTO EM BD ...................................................27
2.1.1 Modelos ........................................................................................................................................27
2.1.2 Classes..........................................................................................................................................27
2.2 TIPOS DE DESCOBERTA ..........................................................................................................................28
3. MINERAÇÃO DE DADOS ......................................................................................................................30
3.1 MODELOS DE MINERAÇÃO DE DADOS .....................................................................................................30
3.2 TÉCNICAS DE MINERAÇÃO DE DADOS .....................................................................................................31
3.2.1 Agrupamento................................................................................................................................. 31
3.2.2 Classificação ................................................................................................................................32
3.2.3 Regressão .....................................................................................................................................32
3.2.4 Modelagem de Dependência .........................................................................................................33
3.2.5 Detecção de Desvios .....................................................................................................................33
3.2.6 Sumarização ................................................................................................................................. 33
3.2.7 Associação....................................................................................................................................34
3.2.8 Seqüência......................................................................................................................................34
3.2.9 Agrupamentos por Séries Temporais .............................................................................................35
3.3 MÉTODOS DE MINERAÇÃO DE DADOS .....................................................................................................35
3.3.1 Regressão Não Linear e Métodos de Classificação .......................................................................36
3.3.2 Árvores de Decisão e Regras.........................................................................................................36
3.3.3 Regras de Indução ........................................................................................................................36
3.3.4 Visualização dos Dados ................................................................................................................37
3.3.5 Métodos Baseados em Exemplos ...................................................................................................37
3.3.6 Modelos Probabilísticos de Gráficos de dependência....................................................................37
4
3.3.7 Modelos de Aprendizado Relacional .............................................................................................38
3.4 APLICAÇÕES DE MINERAÇÃO DE DADOS ................................................................................................. 38
3.4.1 Marketing .....................................................................................................................................38
3.4.2 Vendas a Varejo............................................................................................................................38
3.4.3 Finanças .......................................................................................................................................39
3.4.4 Saúde e Medicina..........................................................................................................................39
3.4.5 Ciências........................................................................................................................................39
3.5 DATA WAREHOUSE (ARMAZÉM DE DADOS)...............................................................................................40
4. REDES NEURAIS ARTIFICIAIS ............................................................................................................41
4.1 CARACTERÍSTICAS DO CÉREBRO HUMANO ..............................................................................................41
4.2 COMPUTAÇÃO INTELIGENTE: MANIPULAÇÃO DE SÍMBOLOS OU RECONHECIMENTO DE PADRÕES................43
4.3 CONCEITOS E ELEMENTOS DE REDES NEURAIS ARTIFICIAIS......................................................................44
4.4 PARADIGMAS DE APRENDIZAGEM ...........................................................................................................47
4.4.1 Aprendizado Supervisionado .........................................................................................................47
4.4.2 Aprendizado Não Supervisionado..................................................................................................48
4.4.3 Aprendizado de Reforço ................................................................................................................49
4.5 PROCESSO DE APRENDIZAGEM DE UM ÚNICO NEURÔNIO ..........................................................................50
4.5.1.1 Definição de um neurônio único............................................................................................................. 51
4.5.1.2 Treinar um único neurônio..................................................................................................................... 52
4.6 TOPOLOGIAS DE REDES NEURAIS ARTIFICIAIS .........................................................................................52
4.6.1 Redes Feedforward .......................................................................................................................52
4.6.2 Redes Recorrentes Limitadas ........................................................................................................53
4.6.3 Redes Completamente Recorrentes................................................................................................53
4.7 MODELOS DE REDES NEURAIS ARTIFICIAIS .............................................................................................54
4.7.1 Modelos Adaptativos.....................................................................................................................54
4.7.1.1 Perceptron ............................................................................................................................................. 55
4.7.1.2 Adaline.................................................................................................................................................. 56
4.7.1.3 Madaline ............................................................................................................................................... 57
4.7.1.4 Rede Multinível..................................................................................................................................... 58
4.7.1.5 Função Básica Radial (RBF).................................................................................................................. 59
4.7.1.6 Teoria da Ressonância Adaptativa (ART)............................................................................................... 59
4.7.1.7 Redes Neurais Probabilísticas (RNP) .................................................................................................... 60
4.7.2 Modelos Competitivos...................................................................................................................60
4.7.2.1 Redes Kohonen...................................................................................................................................... 61
5. REDES NEURAIS ARTIFICIAIS E MINERAÇÃO DE DADOS...........................................................63
5.1 FUNÇÕES BÁSICAS DE REDES NEURAIS ARTIFICIAIS .................................................................................65
5.1.1 Classificação ................................................................................................................................65
5.1.2 Agrupamento................................................................................................................................. 66
5
5.1.3 Memória Associativa.....................................................................................................................67
5.1.4 Regressão ou Modelagem..............................................................................................................68
5.1.5 Previsão de Séries Temporais........................................................................................................68
5.2 TREINAMENTO DE UMA REDE NEURAL ARTIFICIAL ..................................................................................68
5.2.1 Monitorar o treinamento de uma RNA...........................................................................................70
5.2.2 Controle do processo de treinamento através de parâmetros de aprendizagem .............................71
5.2.3 Processo iterativo de desenvolvimento ..........................................................................................72
5.2.4 Evitar a Saturação da RNA ...........................................................................................................74
5.2.5 Automação do Processo ................................................................................................................75
5.3 ANÁLISE DO APRENDIZADO DE UMA REDE NEURAL ARTIFICIAL ...............................................................75
5.3.1 Análise Sensitiva...........................................................................................................................76
5.3.2 Geração de Regras para Redes Neurais Artificiais........................................................................76
5.3.3 Visualização..................................................................................................................................77
5.4 EXTRAÇÃO DE REGRAS ..........................................................................................................................77
5.4.1 Métodos de Extração de Regras Baseados em Procura de Regras.................................................78
5.4.2 Um Método de Extração de Regras Baseado no Aprendizado .......................................................81
6. DESCRIÇÃO DO PROTÓTIPO ..............................................................................................................83
6.1 OBJETIVOS DO PROTÓTIPO .....................................................................................................................83
6.2 ETAPAS REALIZADAS DO PROCESSO DE DCBD .........................................................................................83
6.2.1 Compreensão ................................................................................................................................84
6.2.2 Seleção dos Dados ........................................................................................................................84
6.2.3 Pré-Processamento dos Dados ......................................................................................................85
6.2.4 Transformação..............................................................................................................................86
6.2.5 Escolher a Tarefa da Mineração de Dados ...................................................................................86
6.2.6 Escolher o Algoritmo de Mineração de Dados ..............................................................................86
6.3 DESENVOLVIMENTO DO PROTÓTIPO ........................................................................................................87
6.3.1 Menu Principal .............................................................................................................................88
6.4 RESULTADOS .........................................................................................................................................92
7. CONCLUSÃO ...........................................................................................................................................93
8. BIBLIOGRAFIA.......................................................................................................................................95
LISTA DE FIGURAS
Figura 2.1 : Contexto do DCBD [FEL96].......................................................................... 17
Figura 2.2 : Modelo de Sistema de DCBD [FEL96].......................................................... 26
Figura 4.1 : Neurônio Humano.......................................................................................... 43
Figura 4.2 : Topologia Linear [BIG96] ............................................................................. 45
Figura 4.3 : Topologia Retro-Alimentada [BIG96]........................................................... 45
Figura 4.4 : Topologia Totalmente Conectada [BIG96] ................................................... 45
Figura 4.5 : Topologia Multinível [BIG96] ....................................................................... 46
Figura 4.6 : Neurônio Artificial ......................................................................................... 47
Figura 4.7 : Aprendizado Supervisionado [BIG96] .......................................................... 48
Figura 4.8 : Aprendizado Não Supervisionado [BIG96]................................................... 49
Figura 4.9 : Aprendizado de Reforço [BIG96].................................................................. 50
Figura 4.10 : Redes Neurais Feedforward [BIG96] ........................................................... 53
Figura 4.11 : Redes Completamente Recorrentes [BIG96].............................................. 54
Figura 4.12 : Algoritmo de Aprendizado da Regra Delta [OSO91] ................................. 57
Figura 5.1 : Processo Iterativo para Treinamento de RNA [BIG96]................................ 73
Figura 5.2 : Uma regra de Procura [CRA]........................................................................ 79
Figura 6.1 : Menu Principal............................................................................................... 88
Figura 6.2 : Formulário de Treinamento........................................................................... 89
Figura 6.3 : Formulário de Atributos de uma tabela. ....................................................... 90
Figura 6.4 : Formulário contendo o nome das tabelas...................................................... 91
Figura 6.5 : Formulário com os dados da tabela selecionada pelo usuário ...................... 91
LISTA DE TABELAS
Tabela 5.1 : Aplicações Comerciais de RNA [BIG96]....................................................... 64
Tabela 5.2 : Parâmetros de Aprendizado para RNA ([BIG96]) ....................................... 69
LISTA DE SÍMBOLOS
D
Valor do disparo (ativação) de um neurônio de uma RNA.
d
Padrão de Aprendizagem.
E
Vetor de valores de entrada.
Er
Erro estimado.
F
Função de ativação de uma rede neural artificial.
f(a)
Valor da função de ativação para o valor do parâmetro a.
I/i
Número de entradas de uma rede neural artificial.
Io
Saída desejada (mentor input).
k
Número de camadas de uma RNA.
L
Representa um rótulo.
P
Vetor de Pesos.
S
Saída atual da rede neural artificial.
t
Variável que indica tempo.
t+n
Indica uma quantidade de tempo maior que t.
x
Representa um conjunto de valores de entrada para uma RNA.
X
Conjunto de itens.
Xi/xi
Valor de entrada para a RNA. O i representa o índice do vetor ou
xo
Primeiro valor de entrada para a RNA.
Xt
Conjunto de itens de uma transação.
X1
Representa um neurônio.
X2
Representa um neurônio.
X3
Representa um neurônio.
y
Valor de saída de uma RNA.
matriz.
9
Yt+n
Conjunto de itens de uma transação t+n.
w
Representa o valor de uma conexão de peso de um neurônio de uma
Wi/wi
Conjunto de pesos de uma RNA. O i representa o índice do vetor ou
wo
Representa o bias de uma RNA.
β
Fator de ajuste de convergência.
RNA.
matriz.
10
LISTA DE ABREVIATURAS
ADALINE
Adaptive Linear Element
ART
Teoria da Ressonância Adaptativa
BD
Banco de Dados
DCBD
Descoberta de Conhecimento em Banco de Dados
IBM
International Business Machine
KDD
Knowledge Discovery in Databases
LMS
Least Mean Square
MADALINE Multiples Adaptive Linear Element
MLP
Multilayer Perceptron
NPDU
Núcleo de Processamento de Dados da Universidade de Caxias do Sul
RBF
Função Básica Radial
RMS
Root Mean Square
RNA
Redes Neurais Artificiais
RNP
Redes Neurais Probabilísticas
SGBD
Sistema Gerenciador de Banco de Dados
SQL
Structured Query Language
11
RESUMO
O objetivo deste trabalho é estudar a utilização de redes neurais artificiais na etapa de
mineração de dados do processo de descoberta do conhecimento em banco de dados.
O processo de descoberta do conhecimento em banco de dados (DCDB) tem por
objetivo extrair conhecimento útil para uma determinada empresa ou aplicação a partir de
bases de dados transacionais.
A mineração de dados é uma das etapas do processo de DCBD que tem por objetivo
realizar a extração de padrões. Neste sentido, as redes neurais artificiais podem ser usadas para
realizar esta tarefa, já que elas permitem reconhecimento de padrões.
12
ABSTRACT
The goal of this work is to study the artificial neural networks used in the data mining
step in the process of knowledge discovery in database (KDD).
The purpose of the KDD process is the extraction of useful knowledge from
transactional databases of specific business or applications.
The data mining is one step of the KDD process that executes the patterns extraction.
In this sense, the neural networks can be used to accomplish this task, since they allow patterns
recognition.
1. INTRODUÇÃO
Muitas empresas em todo o mundo, não importando o tipo de negócio em que
trabalham, utilizam os serviços de informática. Cada uma destas empresas possui um grande
volume de dados armazenados que são as bases dos seus sistemas administrativos e de
produção. Além disso, essas empresas possuem um grande volume de dados históricos, que já
não são necessários a atividade fim da empresa, mas que devem ser mantidos por razões legais
e fiscais. Toda esta informação armazenada representa um fonte de conhecimento não
explorada, que poderia ser útil tanto para a empresa conhecer melhor a dinâmica do seu
negócio, como para fazer o seu planejamento, ou seja, ter maior conhecimento na hora de
tomar decisões.
Os sistemas gerenciadores de banco de dados (SGBD) fornecem recursos de
recuperação de dados, muito potentes, mas que retornam apenas a informação explicitamente
armazenada, não sendo capazes de deduzir e nem de induzir conhecimento. A recuperação
tradicional de dados em um SGBD fornece ao usuário consultas sobre os dados na forma
como os dados estão gravados, isto é, uma consulta pode listar vários atributos de uma tabela,
gerar um relatório com diversos formatos diferentes ou gerar gráficos sobre a soma total de
vendas de um determinado produto num período. Basicamente, estas consultas acessam o
SGBD de acordo com o que o cliente solicita e fornece uma visualização destes dados de
várias maneiras como gráficos e relatórios.
Esta grande quantidade de dados históricos que pode parecer um desperdício de espaço
e dinheiro, juntamente com o grande volume de dados manipulados diariamente pela empresa
podem se tornar muito mais úteis do que são atualmente. Desde que se possa realizar
cruzamentos entre todas essas informações para procurar padrões ou relações entre as
informações. Entretanto, manipular um grande volume de dados com esse objetivo é uma
tarefa não trivial que tem um alto custo de processamento.
Existem diversas técnicas desenvolvidas para que se possa manipular grandes volumes
de dados, de forma eficiente e, a partir destes, se possa extrair conhecimento ou algum outro
tipo de informação. Neste sentido, o processo de descoberta de conhecimento em base de
dados (DCBD) tem por principal objetivo fazer uma exploração em grandes bases de dados
com o intuito de descobrir padrões que possam ser úteis à empresa, principalmente, para
ampliar o conhecimento da empresa sobre o seu próprio negócio. Uma empresa com maior
14
conhecimento tem melhor capacidade de tomada de decisão e, isso pode ser um diferencial no
mercado mundial que está tão competitivo. As decisões no mundo dos negócios precisam ser
tomadas cada vez mais com agilidade, rapidez e precisão. Por isso, cada vez mais são
necessárias ferramentas que suportem este trabalho e apresentem o conhecimento de forma
compreensível, o que é alvo de estudo da área de DCBD.
O termo descoberta do conhecimento em banco de dados, foi usado pela primeira vez
em 1989 para referenciar o processo para encontrar conhecimento em dados e para enfatizar o
alto nível de aplicação de métodos particulares de mineração de dados [FAY96]. O processo
de descoberta do conhecimento pode ser compreendido como o processo não trivial de
identificação de padrões válidos, potencialmente úteis, recentes e enfim compreensíveis dos
dados [FRA92]. O processo de DCBD se difere de consultas tradicionais realizadas em um
SGBD porque pesquisa por padrões nos dados, isto é, procura informações escondidas em
uma base de dados. Em uma consulta tradicional, se o usuário quer que uma consulta liste o
total de vendas por clientes num mês; o usuário sabe que o sistema gerará o relatório porque
há dados suficientes em sua base de dados para tanto. Mas, se o usuário quiser saber se existe
alguma relação entre os produtos comprados por seus clientes, terá que utilizar o processo de
DCBD ao invés de utilizar as consultas tradicionais.
O processo de DCBD não tem por objetivo a geração de novos dados para satisfazer
alguma necessidade específica de alguma aplicação em particular (como por exemplo, o
controle de acesso por cartão magnético das pessoas que freqüentam um teatro). Na realidade,
o processo de DCBD possibilita que o usuário pesquise por informações úteis em um banco de
dados, as quais não poderiam ser fornecidas por sistemas específicos. O enfoque principal do
processo de DCBD é trabalhar com as base de dados existentes e fornecer informações
desconhecidas a priori pela empresa, informações que se encontram "escondidas" nos dados.
A validade do conhecimento descoberto somente poderá ser avaliada com base nos
objetivos que a empresa tem ao aplicar o processo de DCBD. Portanto uma etapa muito
importante neste processo é a definição dos objetivos, ou seja, que tipo de conhecimento que
se deseja descobrir, onde será aplicado esse conhecimento, etc. Estas informações irão orientar
o processo de descoberta, definindo a forma de extração de conhecimento a ser utilizada na
etapa de mineração de dados.
Uma das etapas do processo de DCBD é a mineração de dados que consiste na
aplicação de algoritmos, baseados em técnicas de extração de padrões dos dados. Esta é uma
15
das etapas mais automatizadas do processo de DCBD, onde os dados que já foram
pré-processados são agora processados por algum algoritmo que irá ou classificar padrões, ou
identificar padrões, ou descobrir relacionamentos, etc, que existem na base de dados. Há
diversos tipos de algoritmos que podem ser utilizadas para realizar esta tarefa, entre eles
encontram-se as redes neurais artificiais.
As redes neurais artificiais são modelos matemáticos que são constituídos de neurônios
(projetados de forma análoga aos neurônios humanos), os quais são unidos através de
conexões de peso. Uma unidade de processamento ou neurônio recebe sinais de pesos de
outros neurônios, combina-os, transforma-os e produz um resultado numérico como saída.
[BIO97]
A principal característica das redes neurais artificiais é a grande capacidade de
classificação. Isto é possível pois uma RNA pode ser treinada para aprender um determinado
padrão através da modificação e correção de seus pesos (estímulos). Além do reconhecimento
de padrões, as RNA são eficientes para a classificação de padrões. Uma característica muito
importante das RNA é a sua capacidade de trabalhar com dados ruidosos (com erros) e,
mesmo assim, conseguem executar a sua tarefa, inclusive sendo capazes de eliminar o ruído
dos dados. [FRE94]
O objetivo do desenvolvimento de aplicações utilizando a tecnologia de redes neurais
artificiais é trabalhar em conjunto com os sistemas de desenvolvimento tradicionais. As redes
neurais artificiais utilizadas na etapa de mineração de dados do processo de DCBD não estão e
nem vão ser usadas para substituir os sistemas tradicionais existentes, neste sentido pode-se
perceber que redes neurais artificiais utilizadas na etapa de mineração de dados do processo de
DCBD podem ser adaptadas facilmente a diversos tipos de aplicações.
Este trabalho tem por objetivo o estudo do processo de descoberta de conhecimento de
banco de dados, mas especificamente estudar a etapa de mineração de dados e compreender a
aplicação da tecnologia de RNA para reconhecimento e classificação de padrões. A seguir
descreve-se a estrutura deste trabalho.
O processo de DCBD é descrito no capítulo 2, onde se apresenta uma breve descrição
das etapas do processo de DCBD; os possíveis problemas encontrados em um banco de dados;
problemas do processo de DCBD; uma arquitetura hipotética do processo de DCBD e
diversos conceitos relacionados ao processo de DCBD.
16
A etapa de mineração de dados que consiste na extração de padrões da base de dados é
apresentada no capítulo 3. Neste capítulo são apresentados os modelos de conhecimento, as
técnicas de mineração, os métodos de mineração e algumas aplicações.
O capítulo 4 apresenta a definição e descrição de RNA. São apresentados diversos
tópicos relacionados com as redes neurais artificiais, tais como, características do cérebro
humano, manipulação de símbolos, reconhecimento de padrões, conceitos, elementos,
paradigmas de aprendizagem, topologia, modelos e processo de aprendizagem de uma RNA.
A aplicação de redes neurais artificiais na etapa de mineração de dados é apresentada
no capítulo 5. Neste sentido, são descritas algumas formas de utilização de redes neurais
artificiais dentro dos objetivos de mineração de dados, funções básicas de redes neurais
artificiais adaptadas a mineração de dados, os tipos de treinamentos de uma RNA adequados
ao processo de mineração, análise do aprendizado de uma RNA e extração de regras.
O capítulo 6 apresenta a descrição de um protótipo de mineração de dados
desenvolvido utilizando uma rede neural feedforward treinada através do algoritmo back
propagation para realizar a classificação de padrões que serão aprendidos através de
aprendizado supervisionado.
No capítulo 7 são apresentadas as conclusões sobre o desenvolvimento deste trabalho.
17
2. DESCOBERTA DO CONHECIMENTO EM BANCO DE DADOS
(DCBD)
O termo "Descoberta do Conhecimento em Banco de Dados" é uma tradução literal do
termo utilizado na língua inglesa "Knowledge Discovery in Databases" (KDD). O processo de
DCBD pode ser definido como uma área emergente da ciência da computação que tem por
objetivo automatizar o processo de extração de conhecimento útil em grande volumes de
dados. Todo o conhecimento a ser extraído encontra-se escondido nos dados. O processo de
DCBD é uma área de interesse para pesquisadores de diversas áreas, entre elas, inteligência
artificial, estatística, banco de dados e aprendizado de máquina. Independente da área de
interesse do pesquisador, o desenvolvimento do processo de DCBD combina técnicas,
algoritmos e definições de todas estas áreas. A figura 2.1 demonstra a relação existente entre
as diversas áreas envolvidas no processo de descoberta do conhecimento.
Inteligência
Artificial
Banco de Dados
Estatística
Processo de Descoberta do
Conhecimento em Base de
Dados
Figura 2.1 : Contexto do DCBD [FEL96]
O processo de DCBD não tem por objetivo a geração de novos dados para satisfazer
alguma necessidade específica de alguma aplicação em particular (como por exemplo, o
controle de acesso por cartão magnético das pessoas que freqüentam um teatro). Na realidade,
o processo de DCBD possibilita que o usuário pesquise por informações úteis em uma base de
dados, as quais não poderiam ser fornecidas por sistemas específicos.
O processo de descoberta de conhecimento em banco de dados possui duas categorias
de objetivos: verificação e descoberta, os quais são descritos a seguir:
18
• Verificação: o objetivo do processo de DCBD é verificar as hipóteses que o usuário
propõe ao processo de DCBD.
• Descoberta: o objetivo do processo de DCBD é descobrir novos padrões nos dados
sem a interferência do usuário. O processo de descoberta pode ser dividido em modelo
preditivo ou modelo descritivo [TER96]:
♦ Descoberta através de Modelos Preditivos: o sistema acha padrões com o
objetivo de predizer o comportamento futuro de algumas entidades. A partir
dos conhecimentos já obtidos sobre os dados, a aplicação de descoberta do
conhecimento tenta modelar o seu comportamento no futuro.
♦ Descoberta através de Modelos Descritivos: o sistema acha padrões com o
objetivo de apresentá-los ao usuário de uma maneira que este tenha a
capacidade de compreendê-los. Além de tentar prever o comportamento
futuro, este modelo tem por objetivo fornecer resultados facilmente
compreensíveis pelo usuário para que este possa, por exemplo, utilizar essas
informações no processo de tomada de decisão.
O processo de DCBD é composto por diversas etapas. Estas etapas envolvem diversas
tomadas de decisões (realizadas pelo usuário) e repetições destas etapas, se necessário. A visão
do processo de DCBD formulada por Brachman [BRA96] e Anand [ANA96] envolve as
seguintes etapas: compreensão, seleção, pré-processamento dos dados, transformação, escolha
da tarefa da mineração de dados, escolha do algoritmo de mineração de dados, mineração de
dados, interpretação dos padrões minerados e verificação, as quais serão descritas a seguir.
1. Compreensão: desenvolver a compreensão do domínio da aplicação e
conhecimento prévio relevante e, identificar os objetivos do processo do ponto de
vista de quem participará do processo de DCBD. É muito importante para o
processo de DCBD o conhecimento do domínio da aplicação para a extração de
informações relevantes. Nesta etapa, deve-se conhecer as metas do usuário e quais
são os objetivos a serem atingidos pelo processo de DCBD. A participação e
conhecimento do usuário no processo de DCBD é de vital importância para o seu
sucesso.
2. Seleção: consiste em criar um conjunto de dados para ser utilizado no processo de
DCBD. Pode-se selecionar ou segmentar um conjunto de dados de acordo com
19
algum critério ou focalizar-se sobre um subconjunto de variáveis ou exemplos de
dados, nos quais a descoberta será executada. Nesta etapa é importante definir quais
os sistemas existentes, ou parte deles, que serão utilizados ao longo deste processo.
O principal objetivo desta etapa deve ser a definição do volume de dados. Isto é
necessário porque grandes volumes de dados requerem grandes recursos
computacionais, além de seu gerenciamento ser difícil.
3. Pré-processamento dos dados: nesta etapa realiza-se uma limpeza no banco de
dados. O principal objetivo desta etapa é fornecer dados com alta qualidade para
serem manipulados nas próximas etapas do processo de descoberta do
conhecimento. Os dados em um banco de dados podem ter diversos problemas
relacionados com a qualidades dos dados, tais como: informações incompletas,
dados esparsos, informações redundantes, ruídos, incertezas e dados dinâmicos
(estes problemas serão apresentados mais adiante neste capítulo). Para se eliminar
estes problemas, pode-se realizar algumas operações básicas, tais como, remoção de
ruído, coleta de informações, definição de estratégias para manipular os atributos,
remoção ou alteração dos dados inconsistentes, retirada de dados desnecessários e
escolha das estratégias para manipular campos de dados perdidos, considerando-se
as informações de seqüência de tempo com as trocas de conhecimento.
4. Transformação: consiste na redução de dados e projeção. Utiliza-se a redução
dimensional ou métodos de transformação para reduzir o número efetivo de
variáveis a serem consideradas ou para encontrar uma representação invariante dos
dados. O enfoque desta etapa é deixar os dados no formato e limitações exigidos
pelos algoritmos de extração de dados. Para atingir este objetivo, a base de dados é
analisada no sentido de se verificar se contém apenas dados úteis, o que evitará a
ocorrência de problemas posteriores quando as consultas forem realizadas.
5. Escolha da tarefa da mineração de dados: o objetivo deste passo é enquadrar os
objetivos do processo de DCBD em um método particular de mineração de dados.
No capítulo 3 serão apresentados técnicas e algoritmos de mineração de dados.
6. Escolha do algoritmo de mineração de dados: nesta etapa escolhe-se um
algoritmo de mineração de dados, ou seja, seleciona(m)-se o(s) método(s) a ser(em)
utilizado(s) para procurar padrões nos dados. Isto inclui decidir quais modelos e
20
parâmetros podem ser apropriados para as etapas de mineração de dados integrantes
do processo de DCBD. O objetivo principal desta etapa é a escolha do algoritmo, o
que determinará como deve ser a entrada dos dados para o algoritmo. Em outras
palavras, aqui será definida a estrutura de dados a ser utilizada na aplicação para o
processo de descoberta do conhecimento.
7. Mineração de dados: o algoritmo escolhido na etapa anterior será utilizado para
descobrir padrões nos dados. Na pesquisa por padrões pode ser utilizada uma forma
particular de representação de dados ou um conjunto de representações como, por
exemplo, árvores de classificação, regressão ou agrupamento. O sucesso do
processo de mineração de dados depende da execução correta dos passos anteriores
e depende significativamente da participação ativa do usuário.
8. Interpretação dos padrões minerados: nesta etapa realiza-se a interpretação dos
padrões extraídos. A avaliação dos padrões encontrados poderá provocar um
retorno a alguma das etapas anteriores para uma nova iteração. Esta etapa pode
envolver também a visualização de dados conforme os modelos extraídos. Os
resultados encontrados estão em alguma representação computacional na forma de
estruturas de dados. Estas estruturas de dados podem dificultar a interpretação do
conhecimento obtido. Para facilitar a interpretação dos resultados pode ser
importante o desenvolvimento de um aplicativo para visualizar os resultados. A
visualização dos dados pode ser feita através de gráficos de exibição dos dados na
tela ou da geração de relatórios impressos.
9. Verificação: o conhecimento obtido no processo de DCBD deve ser incorporado ao
sistema, documentado e repassado às partes interessadas. O objetivo principal desta
etapa é validar os resultados obtidos.
Conforme apresentado em [HER95], muitas das pesquisas em DCBD têm se
concentrado em aplicar métodos de descoberta de conhecimento a dados armazenados em
banco de dados relacionais. Com isso, o usuário tem significativa importância no processo de
DCBD para fornecer uma orientação sobre os dados do banco de dados a serem utilizados, ou
seja, selecionar os dados a serem explorados, identificar linhas e colunas de uma tabela
relevantes à pesquisa e definir objetivos.
21
Os conteúdos dos bancos de dados, geralmente, apresentam dificuldades de utilização
como dados dinâmicos, dados ruidosos, dados incompletos, informações redundantes, bases de
dados muito grandes, base de dados distintas, tipos de dados e incerteza. Estes problemas são
descritos a seguir e devem ser resolvidos para o sucesso do processo de descoberta de
conhecimento.
• Dados dinâmicos são assim chamados por terem seus conteúdos alterados com
muita freqüência. Para o processo de descoberta do conhecimento é necessário criar
uma visão ou replicação dos dados que fazem parte dos sistemas on-line.
• Dados ruidosos causam um grave problema ao processo de descoberta de
conhecimento. Este problema é que pode-se descobrir um padrão na base de dados
correto para os dados atuais, mas que na verdade, está incorreto. Isto acontece pela
presença de dados errados na base de dados. Quando se trabalha com grandes
volumes de dados deve-se procurar minimizar ao máximo a taxa de erros
encontradas em pesquisas em uma base de dados.
• Dados incompletos ou incorretos acontecem pela falta de valores em colunas de
uma tabela de forma individual ou coletiva. Podem acontecer, também, através da
entrada de valores incorretos na qual não houve algum tipo de verificação nos
dados. Outro fator que contribui para o aparecimento de dados incompletos é o uso
de um banco de dados relacional onde não foram utilizadas adequadamente as
técnicas do modelo entidade-relacionamento ou as restrições de integridade não
foram corretamente construídas. Com dados incorretos acontece a mesma situação
descrita para dados ruidosos.
• Informações redundantes podem ocorrer por causa da dependência funcional dos
dados na qual um atributo é definido como uma função de outros atributos.
Trabalhar com este tipo de informação no processo de descoberta do conhecimento
pode gerar uma descoberta enganosa de conhecimento.
• Quando se trabalha no processo de descoberta do conhecimento com bases de
dados muito grandes, torna-se necessário exaustivas análises empíricas sobre os
dados para criar amostras de dados ou criar um armazém de dados (Data
Warehouse). É difícil e tem um custo muito grande gerenciar volumosas bases de
dados.
22
• Quando se trabalha com bases de dados distintas é necessário que os algoritmos
de extração estejam preparados para trabalhar com bancos de dados heterogêneos.
Isto pode aumentar a complexidade e o custo de todo o processo de DCBD.
• Os tipos de dados contidos em uma tabela podem ser bem diferentes e requererem
tratamento diferenciado. Por exemplo, um atributo do tipo imagem e outro do tipo
texto necessitam ser tratados de forma diferente. Com isso, o algoritmo deve estar
preparado ou ser preparado para trabalhar com diferentes estruturas de dados. Este
fator pode aumentar a complexidade e o custo do desenvolvimento do algoritmo a
ser utilizado no processo de DCBD.
• [FEL96] descreve a incerteza como "a necessidade de se lidar no processo de
DCBD com modelos não determinísticos. Para que tais padrões sejam encontrados é
importante que se trabalhe com formalismos de representação de conhecimento
probabilísticos e muitas vezes tirar proveito de técnicas estatísticas para estimar a
cobertura e validade do modelo".
Como qualquer outra tecnologia em ascensão, o processo de descoberta do
conhecimento em banco de dados possui alguns problemas, citados a seguir, que somente com
a maturidade desta tecnologia serão superados:
• Custo, Tempo e Esforço: todo o processo de DCBD pode custar ao redor de
centenas de milhares de reais. Muitas horas para as pessoas trabalharem são
necessárias, envolvendo complexos procedimentos e escolha de produtos. Tem-se a
necessidade de selecionar dados ou limpar programas, e não existe um sistema
poderoso que faça isso. É necessário o envolvimento do usuário final para que este
tenha conhecimento sobre no que o processo de DCBD irá trabalhar. Escrever
consultas SQL pode ser complexo e difícil, mesmo utilizando o um ambiente
gráfico. Treinamento extensivo e prática são ainda necessários para muitos usuários.
• Software para uso final: alguns sistemas para uso final disponíveis como
ferramentas de análise de data warehouse estão disponíveis por alguns milhares de
reais, mas estes são apenas alguns módulos, não uma solução completa que é
necessária para as operações do processo de DCBD e de negócios. Estes sistemas
possuem capacidades de consultas limitadas e não estão habilitados a realizar análise
multidimensional, ou seja, é impossível executar uma tarefa que encontre
23
associações entre os itens de diversas tabelas. Muitos dos sistemas atuais de
processo de DCBD não são verdadeiramente interativos e, a priori, não podem
incorporar conhecimento sobre o problema exceto de uma forma simples.
• Grandes Bancos de Dados: o tamanho dos bancos de dados das empresas é
normalmente muito grande e este fato revela-se como um problema em termos de se
encontrar algoritmos eficientes para gerar regras de associação num espaço tão
grande de pesquisa. Além disso, a quantidade de atributos nas tabelas contribui para
o aumento da complexidade dos algoritmos e dos dados a serem manipulados. Esses
fatores aumentam as chances dos algoritmos de mineração de dados encontrarem
nos padrões inválidos nos dados durante a execução das etapas do processo de
DCBD.
Além dos problemas existentes no processo de DCBD, é importante que alguns tópicos
sejam levados em consideração para o melhor aproveitamento do processo de descoberta de
conhecimento em banco de dados:
• O desenvolvimento de sistemas de computador com alta performance deve integrar
o processo de DCBD. Deve-se dar ênfase ao uso de arquiteturas paralelas e
multiprocessadores para que os algoritmos de mineração de dados possam executar
mais rapidamente a pesquisa em terabytes de dados.
• Treinamento e educação dos usuários deve ser enfatizado, pois os algoritmos de
mineração de dados trabalham com consultas não muito amigáveis. O treinamento
fornecerá ao usuário condições para entender as consultas e conceitos sobre DCBD.
• A eficiência do processo de descoberta do conhecimento em banco de dados
depende muito da tecnologia disponível. Mas, depende muito da interação com o
usuário para seu contínuo desenvolvimento e chegar ao final do processo com
resultados positivos. Para tanto, o processo de DCBD deve ser interativo e
responder rapidamente aos objetivos do usuário. As ferramentas computacionais
utilizadas durante o processo de DCBD devem ser de fácil uso (uma interface
gráfica pode fornecer uma visão dos relacionamentos dos dados, qualidade de
predições e as bases para modelos diretos e intuitivos).
Em [FAY96] pode-se encontrar alguns critérios de seleção para aplicação do processo
de DCBD. O autor divide os critérios em dois grupos:
24
1. Critérios práticos: os critérios práticos dividem-se em impacto potencial na
aplicação, falta de alternativa, suporte organizacional e problemas legais. Os
quais são citados abaixo.
• Impacto Potencial na Aplicação: a maior expectativa na utilização
do processo de DCBD em uma empresa é em torno dos resultados
do processo de descoberta do conhecimento. Os resultados obtidos
podem ter um grande impacto em futuras decisões a serem tomadas
pela empresa. O impacto poderia ser medido por critérios como
maiores vendas, menores custos, maior qualidade ou economia de
tempo [TER96]. A empresa deve maximizar ou otimizar os seus
processos em função dos resultados obtidos pelo processo de
DCBD.
• Falta de Alternativa: supondo que uma empresa não tenha uma
alternativa para resolver um problema e, a única solução encontrada
é o desenvolvimento do processo de DCBD. A expectativa em torno
dos resultados do processo de DCBD é muito grande normalmente.
Neste caso, a expectativa será muito maior. Para que esta expectativa
não se torne uma grande decepção, as etapas do processo de
descoberta do conhecimento devem ser realizadas com muito mais
cuidado e atenção de todos, em especial dos usuários.
• Suporte Organizacional: o processo de DCBD deve ser realizado
pelos profissionais de informática em conjunto com pelo menos um
representante da empresa. Isto se torna necessário porque a empresa
é a maior interessada em obter resultados importantes. O
representante da empresa é necessário nas tomadas de decisões
durante o processo de DCBD para auxiliar na validação dos
resultados ou na decisão de se realizar novas minerações. Como o
processo de DCBD pode custar muito caro para a empresa, é
necessário um acompanhamento de alguém da empresa para verificar
o andamento do processo de DCBD e evitar situações em que
chegue-se à conclusão que foi gasto muito dinheiro sem se obter os
resultados esperados.
25
• Problemas Legais: "bancos de dados que utilizam informações
pessoais devem ser investigados somente com autorização das
pessoas cujas informações particulares estão armazenadas. Isto
porque existe uma questão legal referente à privacidade destas
informações" [TER96].
Esta questão é levada mais a sério nos
Estados Unidos da América e na Europa. Enquanto que esta questão
é pouco comentada e divulgada ainda no Brasil. "Enquanto que a
descoberta de padrões de grupos aparentemente não violarem as
restrições de uso de dados pessoais, podem ser feitas combinações
ingênuas de padrões de grupos de dados, especialmente em pequenos
conjuntos de dados, que podem identificar informações pessoais
específicas. Soluções que permitem descoberta de padrões de grupos
incluem a retirada ou substituição de atributos de identificação, a
realização de pesquisas em subconjuntos aleatórios de dados e a
combinação de indivíduos em grupos e, a partir disso, permitir
somente pesquisas em grupos" [FAY96].
2. Critérios técnicos: Os critérios técnicos, descritos a seguir, dividem-se em
disponibilidade de dados suficientes, atributos relevantes, baixo nível de ruído,
intervalos de confiança e conhecimento prévio.
• Disponibilidade de Dados Suficientes: o processo de descoberta de
conhecimento somente produzirá resultados interessantes se tiver um
conjunto considerável de dados confiáveis a serem pesquisados.
• Atributos Relevantes: os sistemas devem possuir atributos com
significativa importância que demonstrem ao processo de DCBD como
pode-se esperar que seja a saída do conhecimento obtido no processo de
DCBD.
• Baixo Nível de Ruído: bancos de dados com muito ruído podem
prejudicar o processo de DCBD, portanto é importante utilizar técnicas
para eliminá-lo.
• Intervalos de Confiança: os intervalos de confiança podem ser usados
para corrigir desvios existentes nas etapas do processo de DCBD.
26
• Conhecimento Prévio: baseado no conhecimento sobre o sistema atual
e sobre as estruturas de dados utilizadas no banco de dados pode-se
determinar quais os sistemas que serão utilizados no processo de
mineração; quais os atributos que são importantes; determinar
relacionamentos prévios; além de já se possuir padrões conhecidos.
Enfim, tudo isso pode acelerar e auxiliar o processo de DCBD.
Matheus, Chan e Piatetsky-Shapiro em [MAT93] propuseram uma arquitetura
hipotética sobre o funcionamento de um processo genérico de DCBD. A figura 2.2 ilustra esta
arquitetura hipotética.
Entrada do
Usuário
➞
Controlador
➞
SGBD
Conhecimento
do Domínio
Interface
com o
BD
➞ Foco
➞
Extração de
Padrões
➞ Avaliação ➞ Descobertas
➞
Base de Conhecimento
Figura 2.2 : Modelo de Sistema de DCBD [FEL96]
Na figura 2.2, a entrada que o usuário fornece para o controlador são informações para
a configuração do sistema. Nesta arquitetura, o SGBD pode ser o utilizado pela empresa em
seus sistemas tradicionais, ou um SGBD pode ser montado a partir de uma aplicação de Data
Warehouse. Na base de conhecimento podem ser informados padrões ou regras já conhecidos
sobre os dados. Aqui, pode-se identificar seis módulos responsáveis para trabalho e
manipulação das entradas fornecidas: controlador, interface com o BD, base de conhecimento,
foco, extração de padrões e avaliação, os quais são explicados a seguir.
1. Controlador: este módulo comanda todo o processo de manipulação dos dados e é
o responsável por invocar os demais módulos. Os demais módulos podem ser
disparados em seqüência ou a partir de alguma estratégia definida pelo controlador
para otimizar a pesquisa por novas descobertas ao longo de todo o processo.
2. Interface com o BD: realiza a comunicação com o SGBD.
27
3. Base de Conhecimento: local onde está armazenado o conhecimento do domínio.
Este conhecimento será de grande ajuda no processo de descoberta de
conhecimento se contiver regras interessantes sobre a base de dados ou algum
padrão referente ao comportamento dos dados.
4. Foco: define as tabelas do SGBD que devem ser utilizadas no processo de
descoberta de conhecimento. Além das tabelas, define-se os atributos e tuplas que
farão parte do processo. Este modelo é capaz de identificar atributos relevantes ao
processo.
5. Extração de Padrões: este modelo contém os algoritmos, técnicas e estratégias a
serem utilizadas pelo processo de descoberta de conhecimento para extrair os
padrões sobre a base de conhecimento.
6. Avaliação: avalia os resultados do processo de descoberta do conhecimento. A
avaliação pode definir se os resultados foram satisfatórios ou se alguma etapa do
processo deve ser repetida.
2.1 Conceitos relacionados à descoberta do conhecimento em BD
2.1.1 Modelos
"A compreensão que os humanos tem do seu ambiente e a sua forma de raciocinar
sobre o mundo real se dá através de seus órgãos sensoriais" [HOL94]. A construção de
modelos é muito importante para o processo de descoberta de conhecimento. Estes modelos
fornecerão ao processo de DCBD a base de dados a ser pesquisada e os padrões conhecidos
sobre os dados. O modelo pode ser construído de forma indutiva. O conhecimento descoberto
é valido para a base de dados pesquisada e pode não ser válida para outras bases de dados.
2.1.2 Classes
Um estado da base de dados é descrito utilizando-se um conjunto limitado de
propriedades das entidades representadas. Desta maneira, objetos distintos do mundo real
podem ser representados internamente como se fossem o mesmo objeto, ou seja, apresentarem
os mesmos valores para todas as propriedades. Por exemplo, existem pessoas cursando um
28
mesmo curso universitário. De forma semelhante ao exemplo, pode-se relacionar um conjunto
específico de propriedades, capaz de representar uma classe de objetos. Tal conjunto de
propriedades com os valores correspondentes válidos para uma mesma classe de entidades é
chamado descrição de uma classe. Um exemplo seria procurar saber o que têm em comum as
pessoas freqüentadoras de um estádio de futebol no sábado à noite e obter como descrição o
percentual de homens e mulheres. [HOL94b]
Ao longo das etapas do processo de DCBD, diversas descrições de classes são criadas,
geralmente, através de processos indutivos. Estas descrições de classe normalmente
representam um conjunto de valores que especificam elementos de uma mesma classe. Estes
conjuntos de valores fazem parte de um banco de dados, com isso, as descrições de classe são
representadas por conjuntos de pares de valores atributo-valor (<atributo, valor>). Ao longo
do processo de descoberta do conhecimento em base de dados, a construção de classes é uma
tarefa que ocorre com freqüência muito grande.
2.2 Tipos de Descoberta
Os algoritmos de detecção de padrões formam o núcleo de um sistema de descoberta
do conhecimento em base de dados [FEL96]. Os padrões representam os relacionamentos
entre os atributos de valores de uma base de dados. Existem diversas abordagens sendo
utilizadas para detectar padrões em base de dados. Em [FEL96] são citadas quatro categorias,
dependendo da abordagem utilizada. Serão descritas, a seguir, análise de dependências,
identificação de classes, descrição dos conceitos e detecção de desvios.
1. Análise de Dependências: existe uma dependência entre dois atributos quaisquer se
o valor de um atributo pode ser utilizado para estimar o outro atributo e pode ser
representado como A → B. Esta dependência em muitos casos não é exata, mas
probabilística, e representa-se por A → B , onde o w é o peso associado à
W
dependência. O conhecimento descoberto pode ser útil para usuário como também
pode ser útil para disparar novas pesquisas. As dependências encontradas em um
banco de dados podem ser representadas através de um grafo de dependências.
2. Identificação de Classes: gerar conhecimento útil para o usuário final ou para ser
utilizado para outros algoritmos de descoberta. Este é o processo inverso àquele
onde o usuário fornece os atributos e um algoritmo procura identificar os conceitos.
29
O algoritmo é o responsável por gerar o conhecimento. Este processo pode ser
comparado ao aprendizado não supervisionado.
3. Descrição de Conceitos: a função do algoritmo de descrição de conceitos é
procurar as características comuns em um conjunto de classes fornecidas para o
algoritmo. Este tipo de algoritmo proporciona ao usuário as informações sobre toda
uma classe de indivíduos de uma base de dados, enquanto que os sistemas de bancos
de dados possuem apenas o recurso de acessar individualmente os registros e as
informações sobre cada indivíduo. As descrições geradas podem ser de dois tipos:
característica ou discriminativa. A descrição característica apresenta as propriedades
(pares de valores <atributo, valor>) que os membros de uma classe possuem em
comum. A descrição discriminativa mostra as diferenças entre as classes. O
algoritmo, antes de sua execução, necessita saber quais são as classes de valores que
devem ser descritas. O usuário ou algum algoritmo de identificação de classes
fornece os atributos.
4. Detecção de Desvio: os desvios podem ser: instâncias que não se enquadram nas
classes, superposições entre classes, classes que se diferenciam muito de suas classes
pai, mudanças no valor em um período de tempo, discrepâncias entre valores
observados e esperados previstos pelo modelo [MAT93]. Um desvio é sempre um
contraste entre uma observação e algum referencial [FEL96].
Como o objetivo deste trabalho não é fazer uma completa análise do processo de
descoberta do conhecimento em banco de dados, a introdução acima é suficiente, informações
mais detalhadas podem ser encontradas em [TER96], [FEL96] e [HER95]. O próximo capítulo
tem por objetivo descrever as etapas do processo de DCBD referentes a mineração de dados:
técnicas de mineração, algoritmos de mineração e a mineração de dados propriamente dita.
30
3. MINERAÇÃO DE DADOS
A mineração de dados pode ser definida como um conjunto de técnicas utilizadas para
explorar grandes bases de dados na busca de informações e relacionamentos potencialmente
úteis que estão escondidos nestes dados. Basicamente, a mineração de dados é compreendida
como uma forma de análise de dados que utiliza técnicas para encontrar padrões em um
conjunto de dados.
Em [HOL94], define-se mineração de dados como "uma procura por relacionamentos e
padrões globais que existem em grandes bases de dados mas estão ocultos entre esta vasta
quantidade de dados, tais como, um relacionamento entre dados de um paciente e seu
diagnóstico médico. Estes relacionamentos representam valores de conhecimento sobre o
banco de dados. Se o banco de dados é confiável então há um "espelho" do mundo real
registrado no banco de dados".
A mineração de dados utiliza em sua análise para descobrir padrões nos dados diversos
algoritmos isolados ou combinados para procurar relacionamentos entre os dados. Estes
algoritmos podem procurar numerosos relacionamentos multidimensionais concorrentemente,
informando os relacionamentos dominantes e exceções em uma base de dados.
Aplicações de mineração de dados podem ser descritas em termos de uma arquitetura
de aplicação composta por modelos, técnicas e métodos, os quais são apresentados nas
próximas seções.
3.1 Modelos de Mineração de Dados
A IBM identificou dois tipos de modelos de mineração de dados: modelo de
verificação e modelo de descoberta, os quais são descritos a seguir [DIL95]. Percebe-se que,
de forma geral, os sistemas atuais de DCBD possuem uma combinação destes dois modelos,
com uma ênfase maior em um deles.
• Modelo de Verificação: este modelo trabalha com hipóteses formuladas pelos
usuários. Para estas hipóteses são realizados testes de validação contra o banco de
dados. A ênfase deste modelo é que o usuário obtém uma resposta afirmativa ou
negativa às suas hipóteses. O problema apresentado por este modelo é que nenhuma
informação nova é criada ao longo deste processo. Este processo de procura é
31
iterativo, onde a saída gerada é revisada e um novo conjunto de hipóteses é
formulado para refinar a procura e o processo é repetido várias vezes.
• Modelo de Descoberta: este modelo difere do anterior por ter uma ênfase em que o
sistema procura descobrir automaticamente informações importantes ocultas nos
dados. O dado é peneirado na procura de ocorrências freqüentes de determinados
padrões e tendências, e generalizações são feitas sobre os dados sem a intervenção
do usuário.
3.2 Técnicas de Mineração de Dados
Existem diversas técnicas de mineração de dados, as quais podem ser usadas
individualmente ou em conjunto, entre elas pode-se citar: agrupamento, classificação,
regressão, modelagem de dependência, detecção de desvios, sumarização, associação,
seqüência e agrupamento por séries temporais. As técnicas de mineração de dados são
agrupadas em diversas taxonomias diferentes por diversos autores. Aqui não serão mostradas
estas diferenças, para maiores informações sobre as taxonomias consulte [FAY96] e [AGR93].
3.2.1 Agrupamento
Esta técnica refere-se ao agrupamento de elementos através de algum critério que
determina as distâncias entre os elementos e aqueles com distância menor ficam no cluster.
Abordagens de agrupamento direcionam-se a problemas de segmentação. Estas
abordagens consultam os dados de registros com um grande número de atributos num
conjunto relativamente pequeno de grupos ou segmentos. Estes conjuntos de dados podem ser
criados estatisticamente ou através do uso de métodos de RNA ou técnicas de indução. Este
processo de associação é executado automaticamente por algoritmos de agrupamento que
identificam as características distinguíveis de um conjunto de dados e então os particionam
num espaço n-dimensional definido pelos atributos do conjunto de dados, através de limites de
dados encontrados naturalmente. Não existe a necessidade de identificar os grupos ou
atributos que serão utilizados para segmentar o conjunto de dados.
Agrupamento é freqüentemente utilizado como um dos primeiros passos na análise dos
dados feita pela mineração de dados [BIG96]. Identifica grupos de registros relacionados, os
32
quais podem representar classes potenciais, as classes podem ser usados como ponto de
partida para explorar outros relacionamentos.
No uso da técnica de agrupamento, não se possui um conjunto de dados pré-definidos,
isto caracteriza o uso de um método de aprendizado não-supervisionado onde existe maior
autonomia do algoritmo.
3.2.2 Classificação
A técnica de classificação utiliza um conjunto de exemplos pré-classificados para
desenvolver um modelo que pode classificar uma população de registros. Esta aplicação
freqüentemente utiliza árvores de decisão ou algoritmos de classificação baseados em redes
neurais artificiais. O uso de algoritmos de classificação inicia-se com um conjunto de
treinamento de transações, por exemplo, pré-classificadas. O algoritmo de treinamento
classificador utiliza estes exemplos para determinar o conjunto de parâmetros necessários para
a discriminação apropriada. O algoritmo então codifica estes parâmetros num modelo chamado
classificador.
A função da técnica de classificação é examinar o conjunto de registros classificados e
produzir descrições das características dos registros para cada classe. O problema da técnica
de classificação em realizar corretamente esta função é a descoberta de regras que particionem
os dados em todo o processo de mineração de dados [HER95]. Como resultado da técnica de
classificação pode-se determinar regras que classificam um determinado conjunto de dados ou
regras que discriminem os dados.
Na técnica de classificação, possui-se um conjunto de dados pré-determinados para a
classificação, isto caracteriza um método de aprendizado supervisionado, onde o algoritmo é
controlado por parâmetros que não são passados ao sistema.
3.2.3 Regressão
A técnica de regressão é definida como "Métodos matemáticos utilizados para ajustes
de curvas, sendo muito útil para modelos preditivos. Isto porque, dado um conjunto de pontos
estes métodos calculam fórmulas capazes de fornecer pontos intermediários, anteriores ou
33
posteriores. Neste caso podem ser determinadas, por exemplo, similaridades em séries
temporais". [TER96]
O processo de regressão envolve o aprendizado de uma função que associa um item de
dado para um valor real de uma variável de predição. Um exemplo, é predizer a demanda de
consumo para um novo produto como uma função de expediente. [FAY96]
3.2.4 Modelagem de Dependência
A modelagem de dependência consiste em encontrar um modelo que descreva
dependências significativas entre variáveis. Modelos de dependências existem em dois níveis:
nível estrutural e nível quantitativo. O nível estrutural do modelo específica quais variáveis são
localmente dependentes de outras. O nível quantitativo do modelo especifica o grau das
dependências através do uso de alguma escala numérica. Um exemplo desse método são as
correlações para especificar a resistência das dependências. [FAY96]
Normalmente, as dependências são modelos com probabilidades associadas, como
mostram as redes de crenças baseadas no raciocínio probabilístico. A visualização destas redes
também facilita o entendimento das relações entre as dependências (atributos) [TER96].
3.2.5 Detecção de Desvios
A técnica de detecção de desvios tem por objetivo descobrir um conjunto de valores
que não seguem padrões definidos de valores, ou seja, são exceções. É necessário a criação de
padrões de forma antecipada para descobrir este conjunto de valores.
Em [TER96] é citado que esta técnica pode ser mais aplicável para se analisar os
resultados obtidos com a mineração dos dados do que para se obter estes valores aplicando-a
como uma técnica de mineração de dados.
3.2.6 Sumarização
O seu objetivo é criar descrições compactas para um subconjunto de dados. Um
exemplo é citado em [TER96], criação de média e desvio padrão e eliminação de dimensões.
34
3.2.7 Associação
Associação é a formalização de uma regra observada a partir de ocorrências de itens
em conjuntos de transações, a partir disso se chega a um fator de confiança que determina o
percentual de acerto desta regra em novas transações [HER95]. As taxas de confiança
(confidence thresholds) podem ser inicializadas para eliminar as tendências mais comuns. Um
exemplo é apenas manter regras com grau de confiança maior do que 90%.
As regras de associação são regras compostas por causa (antecedente) e efeito
(conseqüente). Em se tratando de bancos de dados relacionais, os componentes são os valores
dos atributos, participantes de uma mesma transação. O formato destas regras é : X ⇒ Y. "O
significado intuitivo deste tipo de regra é que transações de banco de dados que contêm X
tendem a conter Y" [TER96]. Os algoritmos de associação utilizam a forma lógica (valores
contendo verdadeiro ou falso) para manipular os itens, isto é feito para tornar mais fácil o
processo de descoberta. O grande problema da associação é normalizar valores nominais, os
quais são normalmente excluídos do processo de associação.
Diversas aplicações podem ser beneficiadas pela utilização da abordagem de associação
como, por exemplo, supermercados, planejamento de inventários e planejamento de vendas de
produtos, entre outros.
Na análise e planejamento de venda de produtos trabalha-se com um conjunto de itens
dentro de uma simples transação. O objetivo é encontrar um grande número de tendências que
podem ser usadas para compreender e explorar naturalmente padrões de compra.
Existem duas probabilidades associadas às regras de associação: o grau de confiança e
o grau de suporte. O grau de confiança determina a probabilidade de ocorrência do
conseqüente em relação ao antecedente, ou seja, a força que une os itens que formam a regra
[TER96]. O grau de suporte indica a probabilidade da regra ocorrer em relação a toda a base
de dados.
3.2.8 Seqüência
"As regras de seqüência são aquelas onde existe uma associação temporal nos fatos e,
como nas regras de associação, existe um relacionamento de causa e efeito. A diferença é que
nas regras de seqüência os itens que se relacionam estão em transações diferenciadas, ao
35
contrário das regras de associação onde os itens que se relacionam estão dentro da mesma
transação. O formato destas regras é o seguinte: Xt ⇒ Yt+n, onde Xt é um conjunto de itens de
uma transação t, Yt+n é um conjunto de itens de uma transação t+n e os itens são pares
atributo-valor, onde t é uma variável de tempo e, portanto, a transação t+n ocorreu depois da
transação t ". [TER96]
Um exemplo, deste tipo de regra, é a compra do segundo volume de um livro, de forma
que esta compra pode ter sido conseqüência direta da compra do primeiro volume. Isto é, por
alguma razão uma pessoa comprou o primeiro volume de um livro e, esta compra a levou a
comprar o segundo volume.
A seqüência pode também ser entendida pela ordem na qual os atributos estão
colocados em uma tabela. A análise destas tabelas, dependendo da ordem dos atributos,
possibilita resultados finais diferentes durante o processo de mineração de dados [HER95].
3.2.9 Agrupamentos por Séries Temporais
As séries temporais determinam o comportamento de um conjunto de dados durante
um certo período de tempo. Desta maneira, é possível analisar similaridades entre os dados
existentes neste conjunto de dados no mesmo período de tempo.
[TER96] cita como exemplo de séries temporais a análise de comportamento de ações
de determinadas empresas.
3.3 Métodos de Mineração de Dados
Existem diversos métodos que podem ser utilizados para realizar a mineração de dados
e estes métodos podem ser implementados de diversas formas, dependendo das necessidades
de aplicação ou dos objetivos da mineração. Em todos eles é importante que se defina qual
será o formato utilizado para descrever os padrões descobertos, além de se definir critérios que
permitam a avaliação destes padrões. Além disso, é importante determinar quais são os
parâmetros necessários ao método e qual o nível de interatividade com o usuário. Os métodos
de mineração de dados descritos a seguir são os seguintes, regressão não linear e métodos de
classificação; árvores de decisão e regras; regras de indução; visualização dos dados; métodos
36
baseados em exemplos; métodos probabilísticos de gráficos de dependência e métodos de
aprendizado relacional.
3.3.1 Regressão Não Linear e Métodos de Classificação
Estes métodos consistem de uma família de técnicas para predição a qual faz ajuste de
combinações lineares ou não-lineares de funções base (sigmóides, splines e polinomiais) para
combinação das variáveis de entrada. Exemplos incluem redes neurais feedforward, métodos
spline adaptativos, regressão de procura de projeção, etc. [FAY96]
O modelo neural treina a rede sobre um conjunto de dados de exemplos e então usa a
rede treinada para fazer predições. Entretanto, o treinamento de RNA para bases de dados
muito grandes deve ser mais cuidadoso pois o tempo a ser gasto será também muito maior.
3.3.2 Árvores de Decisão e Regras
Este algoritmo utiliza dados baseados em valores de variáveis. Esta metodologia utiliza
uma hierarquia de sentenças "if-then" para classificar os dados. De forma geral, as sentenças
"if-then" podem ser muito complexas se forem muito longas.
Árvores de decisão e regras que usam divisão não variável têm uma forma de
representação simples, fazendo com que a inferência do modelo seja relativamente fácil de ser
compreendida pelo usuário. Entretanto, a restrição a uma representação particular de árvore
ou regra pode restringir significativamente a forma funcional (e logo o poder de aproximação)
do modelo. O aumento do espaço do modelo permite expressões mais gerais (tais como,
hiperplanos multivariáveis com ângulos arbitrários), então o modelo pode ser mais poderoso
para predição mas pode ser muito difícil compreendê-lo. Existe um grande número de
algoritmos de árvores de decisão e regras de indução descritos na literatura sobre estatística
aplicada e aprendizado de máquina [BRE84].
3.3.3 Regras de Indução
As regras de indução são conjuntos de condições sem hierarquia os quais são gerados
com o objetivo de predizer valores para novos itens de dados. As regras usadas para predição
são mais gerais e mais poderosas do que árvores de decisão. Um exemplo deste método é a
37
utilização de lógica fuzzy para modelagem qualitativa [SUG93], onde são usados conjuntos
fuzzy de saída para a partir dos dados de entrada induzir as regras.
3.3.4 Visualização dos Dados
A visualização dos dados pode ser considerada uma técnica (ou conjunto de técnicas)
que permitem uma maior compreensão dos padrões descobertos. Aqui pode-se usar gráficos
para apresentar as regras, curvas de níveis, mapas de volumes, mapas de Kohonen, etc
[FRE94]. Atualmente, muito esforço tem sido gasto para melhorar esta etapa de processo de
DCBD nos sistemas disponíveis.
3.3.5 Métodos Baseados em Exemplos
A representação é simples: utiliza-se exemplos de banco de dados para aproximar um
modelo, isto é, predições sobre novos exemplos são derivadas de propriedades de exemplos
similares no modelo de predição que é conhecido. Exemplos são técnicas que incluem
classificação pelo “vizinho mais próximo” (nearest-neighbour) e algoritmos de regressão e
sistemas de raciocínio baseados em casos. [FAY96]
Uma desvantagem potencial dos métodos baseados em exemplos é que necessita-se de
uma métrica de distância bem definida para se avaliar a distância entre dois pontos de dados.
Quando os dados podem ser medidos por uma mesma unidade, isto não é problema, mas se é
desejável incluir uma variável com unidade distinta, é requerido um esforço maior para definir
uma métrica sensível às variáveis.
3.3.6 Modelos Probabilísticos de Gráficos de dependência
Modelos gráficos especificam as dependências probabilísticas as quais definem um
modelo particular usando uma estrutura gráfica. Na sua forma simples, o modelo especifica
quais variáveis são diretamente dependentes umas das outras. Tipicamente, estes métodos são
usados com variáveis que possuem valores discretos e categorizados, mas às vezes precisa-se
de algumas extensões para casos especiais, como densidade Gaussiana, para trabalhar com
variáveis com valores reais. [FAY96]
38
3.3.7 Modelos de Aprendizado Relacional
Modelos de aprendizado relacional são também conhecidos como programação lógica
indutiva, os quais utilizam a linguagem padrão da lógica de primeira ordem.
A representação do poder extra do modelo relacional vem ao encontro da significativa
demanda computacional em termos de pesquisa. [FAY96]
3.4 Aplicações de Mineração de Dados
Atualmente, cada vez mais áreas podem ser beneficiadas com os resultados que podem
advir do processo de DCBD, a seguir cita-se algumas destas. As aplicações citadas a seguir
são: marketing, vendas a varejo, finanças, saúde e medicina e ciências.
3.4.1 Marketing
Qualquer tipo de negócio necessita vender seus produto ou serviços. As empresas
buscam continuamente por custos de produção menores para obterem um melhor preço de
venda para o consumidor. Portanto, qualquer tecnologia que forneça custos menores para
produção e aumenta a venda dos produtos ou dos serviços é bem vista pelo mundo dos
negócios.
Contas, créditos de clientes e compras, juntas formaram algumas das primeiras
transações a serem informatizados, gerando uma enorme quantidade de dados disponível para
mineração. Estes fatores combinados fazem do marketing uma das aplicações mais "quentes"
para a mineração de dados [HER95].
Database Marketing (uso de técnicas de mineração de dados contra banco de dados
com informações de marketing) podem ser usados em muitos diferentes aspectos de relações
entre clientes e negócios. [BIG96]
3.4.2 Vendas a Varejo
Vendas a varejo envolve minerar as transações de venda para encontrar associações
entre os produtos. Esta informação, então é usada para determinar afinidades de produtos e
sugestão de estratégias de promoções que podem maximizar o lucro, por exemplo. [BIG96]
39
As transações em bancos de dados são mineradas para descobrir associações entre os
produtos nunca suspeitadas, ou seja, descobrir associações de produtos que não são percebidas
no dia-a-dia nas compras realizadas pelos clientes.
3.4.3 Finanças
A mineração de dados é utilizada pelo mercado financeiro para detectar e prevenir
fraudes, ou para traçar um perfil dos clientes. Estas informações são utilizadas para o processo
de tomada de decisão no momento de fornecer produtos bancários aos clientes. [HER95]
As RNA são utilizadas na indústria financeira para detectar padrões de potenciais
transações fraudulentas em cartões de crédito. Também são utilizadas para predizer taxas de
câmbio interessantes em mercados de moedas flutuantes. [BIG96]
Tem-se conhecimento da existência e desenvolvimento de numerosos aplicativos
financeiros utilizando as técnicas de mineração de dados. No entanto, a comunidade financeira
mantém sigilo sobre o assunto. [HER95]
3.4.4 Saúde e Medicina
A mineração de dados é usada para a administração de serviços de pacientes,
diagnósticos e tratamento de doenças. A indústria da saúde utiliza a mineração de dados para
detectar fraudes de pacientes que gozam de boa saúde. Nestes casos são utilizadas técnicas,
tais como, agrupamento e modelagem de funções. [BIG96]
Os sistemas de diagnósticos de vários tipos de câncer e ataques do coração também
utilizam o conhecimento da área de DCBD. Dados de pacientes podem ser coletados sobre
uma grande população e apresentados para uma RNA. Percebe-se que o sistema de mineração
de dados pode avaliar mais pacientes em um dia do que um médico poderia fazer em toda a
sua vida.
3.4.5 Ciências
As técnicas de mineração de dados são utilizadas para ajudar na descoberta científica.
Por exemplo, na mineração de um enorme banco de dados pode-se descobrir padrões em
estruturas moleculares, informações genéticas, mudanças no clima mundial, etc. Além disso,
40
pode-se "ensinar" um determinado conceito de um determinado corpo estelar e utilizar o
computador para avaliar imagens de satélite e descobrir novos corpos estelares. [HER95]
3.5 Data Warehouse (Armazém de Dados)
O Data Warehouse é um armazém de informações integradas, disponíveis para análise
e consultas [HER95]. Data Warehouse é utilizado para o armazenamento de dados para uma
grande quantidade de dados corporativos. A qualidade e a integridade dos dados deve ser
mantida por uma equipe centralizada. Data Warehouse manipula terabytes de informações em
disco. O objetivo do Data Warehouse, não é necessariamente manter os dados em um único
meio de armazenamento, mas que todos os dados são armazenados e consultados através de
uma rede utilizando as técnicas de sistemas distribuídos.
Para formar um armazém de dados, é utilizada toda a base de dados disponível em uma
empresa. São selecionados os dados dessa base que farão parte do armazém, para tanto, as
tabelas e seus atributos são analisados. Após está seleção, é checada a integridade dos dados
existentes. Além disso, deve-se decidir se o armazém de dados será centralizado ou distribuído.
O armazém de dados constitui uma nova base de dados que estará disponível para se
extrair, filtrar, integrar e consultar informações. Os sistemas atuais da empresa não terão
acesso ao armazém de dados. No armazém somente serão feitas inserções de novos dados
após sua inclusão na base de dados original.
Um armazém de dados pode ser utilizado no processo de mineração de dados como a
base de dados a ser analisada. Isto pode acelerar o processo de mineração de dados na sua fase
inicial de seleção e limpeza dos dados.
41
4. REDES NEURAIS ARTIFICIAIS
As redes neurais artificiais são sistemas matemáticos que são constituídos de neurônios
unidos através de conexões de peso. Uma unidade de processamento ou neurônio, que é
essencialmente representado por uma equação, recebe sinais de pesos de outros neurônios,
realiza uma soma ponderada, transforma-os e produz um resultado numérico como saída.
Diversas RNA tem seus neurônios estruturados em camadas que possuem características
semelhantes e executam suas funções em sincronia. [BIO97]
Muitas RNA possuem um algoritmo de treinamento. Este algoritmo de treinamento
pode ser entendido como uma equação matemática ou várias equações combinadas. O objetivo
destas equações é produzir a partir da saída da rede, um valor numérico que servirá para
ajustar o valor das conexões de pesos de cada unidade de processamento. O principal objetivo
de se treinar uma rede é produzir um resultado de saída da rede neural artificial de acordo com
o resultado que é esperado. Um outro objetivo é corrigir um resultado errado através do ajuste
dos pesos. Este processo de ajuste é feito automaticamente pelo algoritmo de treinamento
usado para treinar a rede.
As RNA são especialmente utilizadas para problemas que devem ser tolerantes a
alguma imprecisão e que têm muitos dados disponíveis para treinamento, mas para tanto,
regras complexas e rápidas não podem ser desenvolvidas facilmente. [TRA95b]
As próximas seções deste capítulo abordam diversos tópicos relacionados as redes
neurais artificiais, tais como, características do cérebro humano, manipulação de símbolos,
reconhecimento de padrões, conceitos, elementos, paradigmas de aprendizagem, topologia,
modelos e processo de aprendizagem de uma rede neural artificial.
4.1 Características do Cérebro Humano
O homem está sempre procurando uma maneira de imitar o funcionamento do cérebro
humano através do uso da tecnologia. Existem diversas pesquisas, em andamento, no intuito
de se desenvolver técnicas e ferramentas computacionais para simular o raciocínio humano.
Conforme descrito em [DOR93], o cérebro humano processa e guarda uma infinidade
de informações, sendo que algumas podem ser esquecidas com o passar do tempo, mas muitas
estarão armazenadas durante todo o ciclo de vida do cérebro. Um armazenamento infinito de
42
dados em um espaço físico limitado, como é o nosso cérebro, é possível devido ao paralelismo
massivo que ocorre entre seus neurônios.
A partir do desejo do ser humano de tentar imitar o cérebro humano, surgiram as redes
neurais artificiais como uma tentativa de criar um modelo que simulasse a estrutura e o
funcionamento do cérebro humano. Conforme descrito em [OSO91], as redes neurais artificiais
devem apresentar um comportamento baseado em modelos neurológicos ao invés de modelos
baseados em "circuitos de silício".
O comportamento do neurônio humano pode ser descrito a partir da observação de
sistemas reais, ou seja, a partir de redes neurais de seres humanos. Os sinais de entrada,
recebidos pelo neurônio através de seus dendrites, fazem com que este dependendo do nível de
estimulação passe a gerar ou não um sinal de saída, o qual é enviado através do axônio
(figura 4.1). Cada neurônio é uma unidade independente de processamento de informações que
está conectada a diversos outros neurônios através de seus terminais axiomáticos. Estes
terminais se conectam aos dendrites de outros neurônios, através de uma estrutura biológica
denominada sinapse que possibilita a passagem dos sinais. A sinapse existente entre dois
neurônios irá influenciar sobre a natureza do sinal recebido, em função da atuação de
neurotransmissores, fazendo com que para um dado neurônio um sinal de entrada venha a
funcionar como o sinal excitador e para outro neurônio este mesmo sinal poderá atuar como
inibidor. [OSO91]
O funcionamento do neurônio humano e o interesse dos seres humanos em imitá-lo foi
descrito acima e, o objetivo agora, é apresentar o comportamento do neurônio como fonte
inspiradora na criação de algoritmos e mostrar como se desenvolve aplicativos baseados em
redes neurais. Uma RNA é composta de vários neurônios dispostos linearmente ou em
camadas. Uma RNA possui várias entradas, as quais recebem sinais que são os estímulos de
entradas (uma entrada pode ter estímulo positivo, ou seja, entrada ativa; ou um estímulo
negativo, entrada inibidora). A partir de uma função de ativação, os pesos dos neurônios são
calculados sobre os valores de entrada. Este resultado determinará se o neurônio será ativado
tendo um comportamento excitatório ou se terá um comportamento inibitório permanecendo
inativo. Este sinal de ativação será propagado para os demais neurônios componentes da rede
neural artificial de acordo com a topologia e as interconexões da rede.
Existem, além das diferenças estruturais, diferenças de velocidades entre neurônios
naturais e artificiais. O cérebro humano possui um tempo de resposta da ordem de
43
milissegundos enquanto que no computador, o tempo de resposta é da ordem de
nanosegundos.
Figura 4.1 : Neurônio Humano
4.2 Computação Inteligente: Manipulação de Símbolos ou Reconhecimento de Padrões
O computador digital tem se tornado uma metáfora comum para descobrir como o
cérebro humano funciona. A lógica e processos seqüenciais da computação eletrônica são
usados como o modelo de organização da mente. Os computadores tentam ser modelos exatos
do cérebro biológico. Todas estas afirmações estão diretamente relacionadas com a definição
de inteligência. [BIG96]
Se as pessoas exibem conduta inteligente, pode ser devido ao fato de elas estarem
usando regras formais para manipular símbolos. Esta aceitação de equivalência lógica entre
processamento de símbolos em computadores e o cérebro humano tornou-se a base para
muitos trabalhos na área de inteligência artificial. [BIG96]
Todos os sentidos do ser humano fornecem, em abundância, ao cérebro humano,
informações sobre as reações do ser humano sobre o mundo. Algumas pessoas chamam este
processo sub-simbólico de detecção de características.
44
Detecção de características é o processo de reconhecimento de padrões que ocorre
amplamente no nível do subconsciente do cérebro humano. As pessoas desenvolvem muitos
modelos de contexto sensíveis às expectativas de como elas interagem com o mundo.
O uso de reconhecimento de padrões ou a manipulação de símbolos depende muito do
que se quer fazer, além disso, estes dois tópicos estão relacionados com o conceito de
inteligência. Em [BIG96] são citados dois conceitos de inteligência. No primeiro, inteligência é
puramente a função de alta ordem dos processos derivados de uma maneira top-down. Na
segunda, a inteligência é um fenômeno emergente, originado de um processo de muitas
interações simples da forma bottom-up. A decisão de reconhecer padrões ou a manipular
símbolos, certamente, encontra-se no meio destes dois extremos.
No início dos anos sessenta, a escola de processamento de símbolos reconheceu que
computadores digitais eram melhores para a manipulação de números, mas que números
poderiam ser usados para representar símbolos. Os pesquisadores de processamento de
símbolos obtiveram alguns sucessos, tais como, programas de computadores que poderiam
fazer cálculos e fornecer teoremas matemáticos.
4.3 Conceitos e Elementos de Redes Neurais Artificiais
Um modelo de RNA é composto pela topologia de rede, pela definição formal do
neurônio e pelas regras de aprendizado, os quais são explicados abaixo [OSO91] :
1. Topologia de Rede: é a definição de uma forma de interconexão entre os
neurônios, destacando-se as organizações de um nível linear (figura 4.2),
retro-alimentada (figura 4.3), totalmente conectada (figura 4.4), multinível
(figura 4.5) ou livre (grafo). As topologias serão descritas como maior
ênfase no decorrer deste capítulo.
2. Definição Formal do Neurônio: é a especificação comportamental de um
neurônio isolado. O que diferencia basicamente os neurônios é a denominada
função de transferência ou função de ativação. Esta função de ativação pode
ser linear ou não, e determina o disparo (ativação da saída), ou não, de um
neurônio.
3. Regras de Aprendizado: é a determinação das formas pelas quais os pesos
de atuação da rede serão modificados. Alterar os pesos das entradas dos
45
neurônios implica alterar seu comportamento diante de um conjunto
específico de estímulos de entrada. Esta alteração de um comportamento
diante de uma situação específica consiste em um aprendizado. Os tipos de
aprendizado serão comentados no decorrer deste capítulo.
Figura 4.2 : Topologia Linear [BIG96]
Figura 4.3 : Topologia Retro-Alimentada [BIG96]
Figura 4.4 : Topologia Totalmente Conectada [BIG96]
46
Figura 4.5 : Topologia Multinível [BIG96]
As regras de aprendizado estão divididas em dois tipos: as redes com regras de
aprendizado competitivas e as redes baseadas na correção de erros. Os tipos de redes que
trabalham com o primeiro caso são as redes de Hopfield e Kohonen. As redes de Kohonen
serão apresentadas ainda neste capítulo e maiores informações sobre as redes de Hopfield
podem ser encontradas em [OSO91] e [MAC97]. As redes do segundo tipo são baseadas nos
princípios de adaptação e correção dos pesos que ativam cada neurônio, até o momento em
que a rede neural artificial atenda ao objetivo proposto para o seu desenvolvimento.
Cada neurônio de uma RNA é composto pelos seguintes elementos: um conjunto de
valores de entrada, um conjunto de pesos, funções de ativação e uma saída, os quais serão
descritos a seguir (figura 4.6):
• Valores de Entrada Xi: as funções de ativação fornecem valores de entrada
ou estes valores são passados de um neurônio para outro durante o
treinamento de uma RNA, ou ainda, estes valores são fornecidos de alguma
outra fonte de dados para a RNA. O conjunto de valores passados por um
neurônio pode ser de diversos tipos diferentes, contudo, normalmente são
utilizados os valores discretos do conjunto [0,1], [-1,1] ou números em
ponto flutuante.
• Conjunto de Pesos Wi: cada entrada de um neurônio terá uma influência
relativa sobre a função de ativação deste neurônio. Essa influência é
determinada pelo peso wi desta entrada. Os pesos de cada entrada são os
elementos que possuem o conhecimento da rede, pois são eles que são
adaptados durante o processo de treinamento.
• Função de Ativação F: a função de ativação é utilizada para calcular o
valor de ativação de cada neurônio em função dos seus pesos e dados de
entrada. O neurônio calcula o valor de ativação em função da média
ponderada aplicada sobre os valores das entradas. O resultado deste cálculo
pode ser a entrada para outros neurônios ou o resultado final da RNA.
• Saída y: é o resultado fornecido pela RNA como resposta aos cálculos
realizados entre os valores de entrada, pesos e função de ativação.
47
Existem dois tipos de capacidade de classificação que podem ser utilizados com uma
rede neural artificial. O primeiro é um classificador linear onde existe basicamente um tipo de
padrão associado a cada classe e ocorre uma associação linear de padrões. O segundo é um
classificador não linear que permite tipos diferentes associados a uma mesma classe.
Figura 4.6 : Neurônio Artificial
O exemplo mais antigo de computação neural é o neurônio criado por McCulloch-Pits
[LUG93]. A entrada para um neurônio McCulloch-Pits é inibidora (0) ou excitada (+1). A
função de ativação
multiplica cada entrada pelo seu peso correspondente e soma os
resultados; se a soma é maior ou igual a zero, o neurônio artificial retorna 1; caso contrário
retorna zero. McCulloch e Pits mostraram como estes neurônios podem ser construídos para
computar algumas funções lógicas, demonstrando que sistemas baseados nestes neurônios
fornecem um modelo computacional completo. [RAM96]
4.4 Paradigmas de Aprendizagem
Existem diversos paradigmas de aprendizagem que caracterizam os diferentes modelos
de redes neurais artificiais. A seguir serão apresentados os tipos de aprendizado
supervisionado, não supervisionado e de reforço.
4.4.1 Aprendizado Supervisionado
O aprendizado supervisionado (figura 4.7) é o paradigma de treinamento mais utilizado
para desenvolver aplicações de RNA para classificação e predição. [BIG96]
48
O aprendizado supervisionado é equivalente a aprender a programar por exemplos,
neste sentido, são fornecidos para uma RNA dados que representam casos de um problema, e
a rede neural artificial faz uma predição ou classificação.
O aprendizado supervisionado é como tentar aprender uma nova tarefa solicitada por
sua mãe. Depois de todas tentativas que você fez para resolver o problema, você tem uma
professora muito atenciosa que lhe fornece a sua especificação e uma resposta imediata para o
que você fez. [BIG96]
Ajuste dos Pesos
usando os erros
Entradas
Saída
Atual
Saída
Desejada
Figura 4.7 : Aprendizado Supervisionado [BIG96]
O algoritmo de aprendizagem verifica a predição atual como a diferença entre a saída
fornecida pela RNA e a saída desejada. O algoritmo usa esta informação para ajustar seus
pesos para o próximo passo, onde de forma geral, se terá uma predição mais próxima da
resposta correta.
O aprendizado supervisionado é usado quando se tem um banco de dados de exemplos
que contém descrições de problemas e suas respostas. Com base nestas informações, a rede
neural artificial pode aprender as relações que existem entre as entradas e a saída.
O aprendizado supervisionado é útil quando se deseja treinar uma RNA para executar
classificações, funções de aproximação e previsão de séries temporais. A RNA é treinada para
predizer saídas em algum ponto no futuro.
4.4.2 Aprendizado Não Supervisionado
O aprendizado não supervisionado (figura 4.8) é normalmente usado para trabalhar
com grandes quantidades de dados, onde se conhece os dados de entrada mas não se tem as
49
respostas para as saídas correspondentes. Não se conhece a resposta, mas se sabe as questões
que se quer resolver. A rede, a partir dos padrões de entrada, procura agrupar os padrões que
possuem características similares.
Ajuste dos Pesos do vencedor
em direção à entrada padrão
Entradas
Saída completa para
ser o vencedor
Figura 4.8 : Aprendizado Não Supervisionado [BIG96]
Conforme citado em [BIG96], a questão é, "Como os dados estão relacionados. E,
quais itens são similares ou diferentes e de qual forma." O que se deseja é que a rede neural
artificial procure por padrões nos dados e agrupe-os.
Este tipo de aprendizado também é conhecido como auto-organização ou
auto-aprendizado porque possui uma grande precisão e a rede não recebe a direção correta
sobre como deve ser a saída desejada. O problema associado a esta abordagem é que o número
de padrões descoberto pode ser muito grande dificultando a sua análise.
O aprendizado não supervisionado é freqüentemente utilizado para aplicações de redes
neurais artificiais de agrupamento e segmentação para utilização na mineração de dados como
forma de auxílio ao suporte de tomada de decisão. [BIG96]
4.4.3 Aprendizado de Reforço
O aprendizado de reforço (figura 4.9) é menos utilizado que os tipos de aprendizado
apresentados acima. É utilizado em aplicações de otimizações de tempo e controles
adaptativos. No aprendizado de reforço, têm-se exemplos dos problemas, mas não se sabe qual
é a resposta exata ou pelo menos imediata.
50
Ajuste dos Pesos
usando reforço
Entrada
s
Saída
Atual
Sinal de
Reforço
Não
Especificad
o
Figura 4.9 : Aprendizado de Reforço [BIG96]
O aprendizado de reforço pode ser comparado à vida real ou a ter-se um trabalho.
Alguém está determinando uma tarefa a ser realizada. Esta tarefa contêm diversas etapas a
serem seguidas que requerem a tomada de decisões. Em resposta a esta determinação, alguém
está fornecendo uma avaliação da performance do trabalho que está sendo realizado. Outras
pessoas avaliam se o trabalho está sendo realizado de maneira correta ou errada, mas isto
acontece até o momento em que é compreendido quais as decisões foram corretas e quais
foram erradas. [BIG96]
Uma rede neural artificial que utiliza o método de aprendizado de reforço permite que
muitas das dificuldades que existem em problemas de dependência de tempo possam ser
resolvidas.
O paradigma de aprendizado de reforço normalmente é utilizado quando o problema
envolve o tempo de seqüência de processos ou quando a resposta exata não está disponível e
somente sinais secundários são visíveis.
4.5 Processo de Aprendizagem de um Único Neurônio
Uma rede neural artificial que possui apenas um neurônio é um interessante objeto de
estudo por dois motivos. O primeiro motivo é que uma grande quantidade de RNA utiliza
apenas um neurônio e cada neurônio em uma rede com múltiplos neurônios têm seu
funcionamento similar ao de um único neurônio. O segundo motivo é que um único neurônio
possui uma característica importante: o auto-aprendizado.
51
A seguir apresenta-se algumas características que ilustram o funcionamento de uma
rede neural artificial com um único neurônio. Maiores informações podem ser encontradas em
[MAC97].
4.5.1.1 Definição de um neurônio único
A definição de um único neurônio é dividida em arquitetura e regra de ativação.
A arquitetura de um único neurônio possui um número I de entradas e uma saída
denominada de y. A cada entrada é associado um peso wi (i = 1...I). Pode existir um parâmetro
adicional w0 chamado bias o qual pode ser visto como sendo o peso associado com a entrada
xo e o seu valor será permanentemente 1. Este neurônio utiliza a topologia de uma rede
feedforward (as conexões são direcionadas das entradas para o neurônio de saída).
As regras de ativação estão divididas em duas etapas. A primeira, para se responder a
uma entrada x, é o cálculo da ativação do neurônio pela fórmula 4.1 :
a= ∑ I wi * xi ,
(4.1)
onde o somatório varia de i = 0...I se existe o bias e, em caso contrário, varia de i = 1...I. A
segunda, a saída y é calculada como uma função f(a) de ativação. Existem muitas funções de
ativação, tais como :
1. Funções determinísticas de ativação:
• Linear
y(a) = a (4.2)
1
(y ε (0,1)) (4.3)
1 + e −a
• Sigmoide (função logística)
y(a) =
• Sigmoide (tanh)
y(a) = tanh(a) (y ε (-1,1)) (4.4)
• Função Limite
 1 a>0
y(a) = 
 − 1 a <= 0
2. Funções estatística de ativação :
1

 1 com probabilidade
• Heat bath 
1 + e −a
− 1 caso contrario
(4.6)
(4.5)
52
4.5.1.2 Treinar um único neurônio
A partir de um conjunto de dados de entrada, submete-se este conjunto de dados a uma
das funções citadas acima. Com isso, pode-se treinar a RNA e verificar o resultado obtido.
Além de treinar a rede, pode-se utilizar uma função para calcular o erro gerado pelo neurônio
calculado em cima do resultado de saída e o resultado esperado.
4.6 Topologias de Redes Neurais Artificiais
Em geral, uma RNA possui um conjunto de neurônios que recebem valores de entrada
do mundo exterior, chamadas de unidades de entrada. Muitas redes neurais artificiais possuem
uma ou mais camadas de neurônios escondidas que recebem entradas somente de neurônios.
Uma camada de neurônios recebe um vetor de dados ou a saída de uma camada anterior e
processa-os em paralelo. O conjunto de unidades que representam o resultado final é chamada
de unidade de saída.
A ordem de conexão dos neurônios em uma rede neural artificial tem significativa
importância no seu funcionamento. Existem diversas topologias de RNA que definem o fluxo
de dados entre as unidades - entrada, escondida e saída - participantes de uma rede neural
artificial. A seguir, serão apresentadas algumas topologias de RNA: feedforward, recorrentes
limitadas e completamente recorrentes.
4.6.1 Redes Feedforward
As redes feedforward (figura 4.10) são usadas naquelas situações em que se pode
manipular todas as informações relacionadas com o problema de um única vez e, então
fornecê-los para a rede neural artificiais.
Em [BIG96], a topologia feedforward é descrita como: "Os dados entram na rede
neural artificial através da unidade de entrada à esquerda. Os valores de entrada são
assinalados para a unidade de entrada como os valores da unidade de ativação. Os valores de
saída das unidades são modulados pelas conexões de pesos, cada uma é aumentada se o valor
da conexão de peso é maior ou igual a 1, ou diminuída, se o valor da conexão de peso está
entre 0 e 1. Se o valor da conexão de peso é negativo, o sinal é aumentado ou diminuído em
direção contrária".
53
O tipo de função de ativação mais utilizado em uma RNA é a função sigmoide. Este
tipo de função converte um valor de entrada em um valor de saída entre 0 e 1. O efeito deste
limite dos pesos é o deslocamento da curva em um gráfico cartesiano para esquerda ou para a
direita, tornando o valor de saída maior ou menor dependendo do sinal do valor do peso. É
importante salientar que quanto menos pesos tem uma RNA, mais rápido a RNA será capaz de
processar dados.
E
N
T
R
A
D
A
E
S
C
O
N
D
I
D
A
S
A
Í
D
A
Figura 4.10 : Redes Neurais Feedforward [BIG96]
4.6.2 Redes Recorrentes Limitadas
Segundo [BIG96], as redes recorrentes limitadas são usadas em situações nas quais se
têm informações atuais para fornecer à RNA e sabe-se que a seqüência de entradas é
importante. Além disso, precisa-se que a RNA, de algum modo, armazene um registro das
entradas anteriores e os fatore em dados atuais para produzir uma resposta. As informações
sobre entradas passadas são uma resposta e são misturadas com as entradas atuais pelas
conexões escondidas ou unidades de saída. Desta forma, a RNA contém uma memória das
entradas passadas pelas funções de ativação.
4.6.3 Redes Completamente Recorrentes
Nas redes completamente recorrentes (figura 4.11), um subconjunto de unidades é
designado como processadores de entrada, e são assinalados para especificar os valores de
entrada. Os dados fluem para todas as unidades adjacentes conectadas e circulam de volta e
adiante até a ativação das unidades estabilizar. A ativação das unidades escondidas e de saída
são recalculadas até a RNA estabilizar.
54
E
N
T
R
A
D
A
ESCONDIDA
SAÍDA
Figura 4.11 : Redes Completamente Recorrentes [BIG96]
As redes completamente recorrentes são complexas, constituem um sistema dinâmico,
e exibem todo o poder e instabilidade associado como o limite de ciclos e a conduta caótica de
cada sistema. Estas redes podem possuir um tempo de treinamento muito elevado.
Estabelecendo-se algumas restrições nas conexões de peso, pode-se fazer com que a rede
neural artificial entre em um estado estabilizado. As conexões entre as unidades devem ser
simétricas. Esta rede é utilizada para problemas de otimização e com memórias associativas.
4.7 Modelos de Redes Neurais Artificiais
A combinação de topologias, paradigmas de aprendizagem e algoritmos de treinamento
definem um modelo de RNA. Para a mineração de dados, a rede back propagation e
mapeamento de características de Kohonen são as mais utilizadas [GIB96]. Porém, o melhor
modelo para uma aplicação ou função de mineração de dados depende dos dados e da função
que se quer trabalhar.
Os modelos de RNA dividem-se em modelos adaptativos e modelos competitivos.
Alguns dos modelos de cada categoria são descritos abaixo. Serão apresentadas as
características principais e relevantes a este estudo sobre os modelos de RNA, para maiores
informações consulte [OSO91] e [BIG96].
4.7.1 Modelos Adaptativos
Os modelos de RNA adaptativos são os modelos baseados no Perceptron. De maneira
geral, estes modelos possuem um aprendizado do tipo supervisionado com a aplicação de um
55
algoritmo de correção de erros. Os modelos apresentados a seguir são: Perceptron, Adaline,
Madaline, Redes multinível, Função básica radial, Teoria da ressonância adaptativa e Redes
neurais probabilísticas.
4.7.1.1 Perceptron
Frank Rosenblatt [LUG93] desenvolveu um algoritmo de treinamento para uma rede
neural artificial de uma camada no final da década de 1950, nomeando-o de Perceptron. O
Perceptron foi idealizado para ser um modelo da mente [BIG96]. Em uma rede de uma
camada, existe um conjunto de ligações com pesos entre as unidades de entrada e saída.
Este algoritmo implementa uma função linear simples de disparo utilizando a forma de
aprendizado supervisionado. A partir dos dados fornecidos: conjunto de entradas Xi, os pesos
Wi, e um valor de disparo (valor de ativação do neurônio) D, o algoritmo calcula a função de
ativação e retorna o valor 1 se o somatório dos valores de entrada Xi vezes o conjunto de
pesos Wi for maior que zero; senão o algoritmo retornará -1. Seja d a constante cujo tamanho
é determinado pelo padrão de aprendizagem, com isso, o Perceptron altera os seus pesos de
acordo com as seguintes regras [RAM96 ] :
• Se a ativação da unidade está correta, não faz nada.
• Se a ativação é -1 e deveria ser 1, incrementa os pesos sobre as linhas ativas
(linhas cujas entradas são 1) por d.
• Se a ativação é 1 e deveria ser -1, decrementa dos pesos das linhas ativas por
d.
Este procedimento tem por efeito corrigir os pesos juntos para obter a saída desejada
[RAM96].
A aprendizagem deste algoritmo ocorre através da convergência sobre um conjunto
correto de pesos para classes linearmente separáveis, não levando em conta a parcela de erro
na rede.
Este modelo consiste de uma rede linear de neurônios, onde os valores de entrada
alimentam simultaneamente todos os neurônios. O neurônio que, após a sua ativação, possuir o
maior valor de saída ou atingir o valor limite para a ativação indicará a resposta correta. Neste
modelo cada neurônio é treinado para identificar um padrão específico [OSO91].
56
4.7.1.2 Adaline
Este modelo é uma alteração do Perceptron. Utiliza a regra delta de aprendizado.
Também é conhecido como algoritmo de aprendizado LMS (Least Mean Square). O Adaline
foi desenvolvido por Widrow e Hoff [WID62]. A palavra Adaline é uma abreviação de
ADAptive LINear Element (Elemento linear adaptativo).
A arquitetura do Adaline é composta por uma rede de uma única camada de forma
linear com cada neurônio possuindo uma retro-alimentação de sua própria saída. O Adaline
utiliza uma regra de aprendizado que permite adaptações. O Adaline utiliza o aprendizado
supervisionado por correção de erro. Este tipo de rede realiza uma classificação linear dos
padrões.
O Adaline é um neurônio que utiliza uma regra de aprendizado que permite uma
adaptação, fazendo com que este se ajuste a novos padrões. O Adaline possui uma entrada
denominada mentor input, a qual possui uma ponderação sempre igual a 1. Esta entrada
apresenta a verdadeira resposta que deveria ser dada por um determinado neurônio diante de
um determinado conjunto de estímulos. [FRE94]
A regra delta é uma generalização do algoritmo de aprendizagem do Perceptron
utilizada em diversas RNA desenvolvidas. A regra delta tem por objetivo medir mais
precisamente a parcela de erro ocorrida em cada unidade da RNA. Para isso, os neurônios
utilizam uma função de ativação com valores em ponto flutuante. Uma função simples de
ativação pode ser calculada subtraindo o disparo positivo da soma ponderada das entradas e
retornando o resultado obtido. A saída de uma unidade é computada pelo somatório dos
valores de entrada vezes o valor do peso menos o valor do disparo. A regra delta é muito
eficiente em minimizar o erro total do neurônio. A regra delta altera o vetor de pesos de
atuação de forma que, para um conjunto de valores de entrada, a saída se aproxime da resposta
desejada, indicada através da entrada mentor input. Isto é obtido através da minimização do
erro médio quadrático (erro LMS) [OSO91]. A figura 4.12 descreve em detalhes o
funcionamento da regra delta de aprendizado que é utilizada pelo Adaline.
57
ER = IO -
S
Saída Atual da Rede
Saída Desejada (Mentor Input)
Erro Estimado
PNOVO = PANTIGO +
Regra Delta:
Onde :
β * ER * E
E
β = Fator de Ajuste de Convergência (0 à 1)
ER = Erro Estimado
E
P
= Vetor de Valores de Entrada
= Vetor de Pesos
Figura 4.12 : Algoritmo de Aprendizado da Regra Delta [OSO91]
4.7.1.3 Madaline
Este modelo foi proposto por Widrow [WID62] como uma extensão do modelo
Adaline. A palavra Madaline significa múltiplos adalines, isto é, criar um modelo composto
por vários adalines conectados entre si. O Madaline agrupa a resposta de dois ou mais
Adalines, realizando um "E" ou "OU" lógico ou pela obtenção de maioria dos valores obtidos
nas saídas dos diversos adalines que fazem parte do madaline. Isto permite, que uma saída de
rede ative mais de um tipo de padrão de entrada. Desta forma, uma rede Madaline pode ser
treinada para reconhecer diversos padrões.
O Madaline é uma rede composta por dois níveis, mas quem faz a junção dos
resultados de cada nível é o usuário. Com isso, o Madaline pode aprender padrões como os
da função XOR.
58
4.7.1.4 Rede Multinível
As redes multiníveis, também conhecidas como Multilayer
Perceptron (MLP)
permitem o aprendizado das RNA baseadas no modelo do Perceptron com qualquer número
de níveis. O primeiro algoritmo deste categoria é o algoritmo back propagation.
Uma rede neural artificial MLP usando uma topologia feedforward, pode ser treinada
pelo algoritmo back propagation, onde o aprendizado é supervisionado. O Back Propagation
é um algoritmo de propósito geral. Este algoritmo é muito poderoso mas é caro em termos de
requisitos computacionais para treinamento.
Uma rede back propagation utiliza uma única camada escondida de elementos de
processamento que pode modelar qualquer função contínua sem qualquer grau de precisão.
Existem diversas variações deste algoritmo. O back propagation é baseado em uma forma
relativamente simples de otimização conhecida por gradiente descendente.
As RNA back propagation podem ser usadas para classificação, modelagem e previsão
de séries temporais. Para problemas de classificação, os atributos de entrada são mapeados
para as categorias de classificação desejadas. Para construir modelos ou funções de
aproximação, os atributos de entrada são mapeados para a função de saída.
Alguns parâmetros são utilizados para controlar o processo de treinamento de uma
rede back propagation, dentre os parâmetros existentes, cita-se: taxa de aprendizado e
quantidade de movimento. A taxa de aprendizado é usada para especificar se a RNA fará
ajustes após cada tentativa de aprendizado. A quantidade de movimento é utilizado para
controlar possíveis oscilações nos pesos, as quais poderiam ser causadas por assinalamentos
alternados de erros de sinais.
O Back propagation distribui a responsabilidade do erro através de uma rede multicamada. Os neurônios são conectados em camadas, com unidades da camada k passando suas
ativações somente para neurônios na camada k+1. Na solução de um problema, a ativação
passa das unidades de entrada através de uma ou mais camadas internas de neurônios,
chamadas unidades escondidas, e finalmente passam para a camada de saída do ambiente.
[RAM96]
O algoritmo back propagation recebe como parâmetros de entrada para a realização do
treinamento da RNA um conjunto de valores de entrada e um conjunto de valores
59
representando a(s) saída(s) desejada(s) por utilizar o tipo supervisionado de aprendizado. O
funcionamento básico do algoritmo do back propagation consiste em propagar o conjunto de
valores de entrada através da rede até que alcance a unidade de saída. As saídas calculadas pela
RNA são subtraídas da(s) saída(s) desejada(s) e um sinal de erro é propagado. Este sinal de
erro é a base do algoritmo back propagation porque os erros são propagados através da RNA.
Com a propagação dos erros, é calculado a contribuição de cada unidade de processamento
escondida no erro e são ajustados os valores para produzir a saída correta. As conexões de
peso são ajustadas e a RNA obteve apenas um "aprendizado" como experiência. O erro, para
as unidades de saída, é calculado como a diferença entre a saída correta e a atual. Este
processo de cálculo dos erros e ajustes das conexões de peso é realizado até que a RNA
consiga calcular o valor de saída próximo ao valor da saída desejada.
4.7.1.5 Função Básica Radial (RBF)
As redes de função básica radial são redes feedforward de treinamento usando um
algoritmo de treinamento supervisionado. Eles são tipicamente configurados com uma camada
escondida cuja a função de ativação é selecionada a partir de uma classe de funções chamadas
de funções básicas.
A unidade escondida de uma rede RBF utiliza uma função básica Gaussiana. Cada
unidade escondida age como um processador local que calcula um placar entre o vetor de
entrada e seus pesos de conexão. As unidades básicas são altamente especializadas em detectar
padrões. Os pesos conectados das unidades básicas para as saídas são usados para ter uma
combinação linear das unidades escondidas para produzir a classificação final ou a saída.
De uma maneira simples, todas as unidades escondidas de uma rede RBF tem o mesmo
tamanho ou grau de sensibilidade para entradas.
4.7.1.6 Teoria da Ressonância Adaptativa (ART)
As redes de teoria de ressonância adaptativa são uma família de redes recorrentes que
podem ser usadas para agrupamento. Uma rede ART é projetada para ser biologicamente
plausível [BIG96]. Este modelo de RNA é treinada sem supervisão, formando clusters
(agrupamentos) e pode ser completamente descrita utilizando equações diferenciais não
lineares.
60
O modelo ART permite que a rede aumente à medida que novos padrões são
aprendidos. O funcionamento de uma rede ART ocorre da seguinte forma: "O algoritmo
principal seleciona a primeira entrada como um exemplar para o primeiro cluster. A próxima
entrada é comparada com este primeiro cluster onde, caso a distância do novo exemplar seja
menor que um certo limite, faz-se apenas uma adaptação de forma que o cluster represente
ambos os padrões. Caso a distância entre o novo exemplar e o exemplar já armazenado seja
superior ao limite estabelecido, é criado um novo cluster que servirá para representar este
novo exemplar. Este processo é repetido para todas as entradas seguintes. O número de
clusters crescerá com o tempo e dependerá tanto do limite como da métrica utilizada no
cálculo da distância na comparação das entradas com os exemplos armazenados na rede".
[OSO91]
4.7.1.7 Redes Neurais Probabilísticas (RNP)
As redes neurais probabilísticas caracterizam-se por usar uma arquitetura feedforward e
o algoritmo de treinamento supervisionado similar ao back propagation. [BIG96]
Ao invés de ajustar os pesos das camadas de entrada usando a generalização da regra
delta, cada entrada padrão de treinamento é usada como uma conexão de peso para uma nova
camada escondida. Cada entrada padrão é incorporada à arquitetura RNP. Esta técnica é
extremamente rápida, já que somente uma passagem através da rede é necessária para o
conjunto de entradas de conexões de peso.
4.7.2 Modelos Competitivos
Os modelos de RNA competitivos baseiam-se na competição entre os neurônios. Os
modelos competitivos possuem algumas características citadas a seguir: conexões laterais entre
os vizinhos, auto-organização e formação de agrupamentos. O modelo de Kohonen será
comentado a seguir. Outros modelos competitivos de RNA podem ser encontrados em
[OSO91] e [MAC97].
61
4.7.2.1 Redes Kohonen
Uma rede Kohonen é uma rede feedforward que usa um algoritmo de treinamento não
supervisionado e faz isso através de um processo chamado auto-aprendizado, isto é, a RNA do
modelo Kohonen possui a capacidade de auto-organização. Este modelo de RNA também é
conhecido pela criação de mapas de atributos auto-organizáveis (Self-Organization Feature
Maps).
A RNA utilizada no modelo básico de Kohonen é uma rede de um único nível, onde os
neurônios possuem conexões com entradas e conexões laterais com outros neurônios, até um
certo grau de vizinhança pré-estabelecido. As entradas externas estão conectadas em paralelo a
todos os neurônios simultaneamente. [OSO91]
A rede neural Kohonen consiste de duas camadas de unidade de processamento, uma
camada de entrada completamente conectada a uma camada de saída competitiva, não
existindo unidades escondidas. Quando uma entrada padrão é apresentada ao mapa de
características, cada unidade na camada de saída compete com cada uma das outras pelo
direito de ser declarada vencedora. A unidade de saída vencedora é tipicamente a unidade a
qual o conexão de peso está mais próxima da entrada padrão (em termos de distância
euclidiana). A saída que está mais próxima da entrada padrão é declarada vencedora e então
ganha o direito de ter sua conexão de peso ajustada. As conexões de peso são movidas em
direção à entrada padrão pelo fator determinado como parâmetro para a taxa de aprendizado.
Este modelo, cria uma topologia mapeada pelo ajuste não somente dos pesos dos
vencedores, mas também ajusta os pesos das unidades de saída adjacentes próximas ou na
vizinhança do vencedor. Através desse processo, a cada escolha de um novo vencedor, a
quantidade de unidades de saída que tem seu peso alterado vai diminuindo progressivamente
até encontrar o vencedor final.
Encarando este modelo pela perspectiva das conexões de peso, o mapeamento de
Kohonen executou um processo chamado de quantization vector. As conexões de peso
representam um protótipo de entrada padrão para um subconjunto de entradas que são
agrupadas. O processo de trabalhar com um conjunto de numerosas dimensões e reduzir a um
conjunto de agrupamentos é chamado segmentação.
62
O modelo de rede neural de Kohonen possui uma característica muito interessante que
é a formação de regiões da rede que tem seus neurônios ativados quando determinado padrão
é apresentado. Cada padrão provocará a ativação de uma região determinada da rede onde a
identificação de um dado padrão dar-se-á através da determinação de qual área de rede foi
ativada. [OSO91]
63
5. REDES NEURAIS ARTIFICIAIS E MINERAÇÃO DE DADOS
A idéia de usar a mineração de dados para extrair informações valiosas dos dados não é
nova. Em todo o mundo, hoje, novo é o aumento das transações de negócio utilizando o
computador. Também surge como tecnologia emergente o processamento distribuído na área
de informática e novas formas de armazenamento de dados, na qual, terabytes de dados são
manipulados de forma on-line. Estes dados estão disponíveis para processamento em
aplicações desenvolvidas para arquiteturas cliente/servidor. O uso de redes neurais artificiais e
o desenvolvimento de algoritmos para descoberta do conhecimento, também, são novos.
Quando se utiliza redes neurais artificiais para procurar padrões nos dados na etapa de
mineração de dados do processo de DCBD, estas novas tecnologias oferecem promissoras
oportunidades para as empresas procurarem informações úteis em seus próprios dados.
[BIG96]
A principal característica das RNA é a grande capacidade de reconhecer padrões. Isto é
possível pois uma rede neural artificial pode ser treinada para aprender um determinado padrão
através da modificação e correção de seus pesos (estímulos). Além do reconhecimento de
padrões, as RNA são eficientes para a classificação de padrões.
O objetivo do desenvolvimento de aplicações utilizando a tecnologia de RNA é
trabalhar em conjunto com os sistemas tradicionais de desenvolvimento existentes, como
cadastros de qualquer natureza. As RNA sendo utilizadas na etapa de mineração de dados não
estão e nem vão ser usadas para substituir os sistemas tradicionais existentes. A vantagem
disso é a fácil adaptação a diversos tipos de aplicações. A seguir, serão citadas algumas
aplicações conforme pode ser visto em [OSO91]:
• Reconhecimento e síntese contínua da fala.
• Reconhecimento visual de padrões e padrões em geral (mineração de
padrões).
• Reconhecimento e classificações de imagens, como por exemplo, textos,
assinaturas, etc.
• Processamento adaptativo de sinais e eliminação de ruídos.
64
• Aplicações que trabalham com dados incompletos e os resultados
produzidos são aproximados (fuzzy).
As RNA são utilizadas para trabalhar com dados aproximados, tanto para a entrada
como para a saída. Isto acontece porque o maior volume de dados utilizados é o de número
reais e funções de ativação que geram um resultado também no formato de números reais.
A tabela 5.1 cita mais algumas aplicações de RNA para áreas específicas da indústria
e as funções que são utilizadas. [BIG96]
Aplicação
Marketing de Banco de Dados
Indústria
Todas
Função
Agrupamento,
Classificação
Modelagem
Agrupamento,
Classificação
Modelagem
e Classificação e Modelagem
Gerenciamento de Relações de Todas
Clientes
Detecção de Fraudes
Financeira
Saúde
Reconhecimento de Caracteres Financeira
e
Ópticos
Varejo
Reconhecimento de Caracteres de Informática e
Caligrafia
Financeira
Previsão de Vendas e Controle de Manufatureira,
Inventários
Vendas
e
Distribuição
Gerenciamento de pastas de Financeira
suprimentos
Controle de Processos
Manufatureira
e Processos
Taxa de Obrigação
Financeira
Exploração de Minérios
Energia
Diagnóstico Médico
Saúde
Predição de Demanda de Energia Manufatureira
Elétrica
Detecção de Vírus de Computador Informática
Reconhecimento de Fala
Informática
Estimação de Preços de Mercado
Financeira
e
e
Classificação
Agrupamento e Classificação
Agrupamento e Previsão de Séries
Temporais
Classificação e Previsão de Séries
Temporais
Modelagem
Classificação
Agrupamento e Classificação
Classificação e Modelagem
Previsão de Séries Temporais
Classificação
Agrupamento e Classificação
Modelagem
Tabela 5.1 : Aplicações Comerciais de RNA [BIG96]
Uma outra característica importante das RNA é que as mesmas são capazes de guardar
informações, isto é, uma RNA pode armazenar padrões. Este armazenamento de padrões é
obtido através do comportamento dos pesos de cada neurônio a partir de cada entrada
recebida. Os pesos das conexões são os responsáveis pelo aprendizado de um determinado
65
padrão para uma determinada entrada de cada neurônio componente de uma RNA. Um único
neurônio ou vários neurônios podem ser treinados para aprender um determinado padrão,
ocorrendo assim a criação de uma memória localizada.
5.1 Funções Básicas de Redes Neurais Artificiais
As RNA realizam muitas tarefas que o cérebro humano tem a capacidade de realizar.
Algumas destas tarefas são trabalhar com uma grande quantidade de dados, reconhecimento
preciso de padrões e responder a questões propostas pelos seres humanos. A
seguir,
serão
apresentadas algumas das funções básicas nas quais algoritmos baseados em RNA podem ser
utilizados para ajudar a atingir os objetivos de descoberta de padrões do usuário. As funções
básicas a serem descritas são : classificação, agrupamento, memória associativa, regressão,
previsão de séries temporais e predição. (As quais estão melhor descritas no contexto de
DCBD no capítulo 3)
5.1.1 Classificação
A função básica mais executada pelo cérebro humano é a classificação entre duas
coisas. O ser humano é capaz de analisar objetos usando características para perceber as
diferenças e similaridades. Pode-se classificar animais como amistosos ou perigosos, plantas
saudáveis para serem comidas ou não, etc. Em todos os momentos da nossa vida, o ser
humano estabelece classificações entre duas ou mais coisas.
Uma RNA pode ser treinada para, a partir de um conjunto de exemplos positivos de
uma mesma classe (ou conjunto de classes), os quais possuem um conjunto de características
em comum, separar os elementos (valores) que determinam se algum registro de dados
pertence a uma classe ou não.
As RNA estão sendo utilizadas em aplicações comerciais para classificar clientes,
detecção de fraude, reconhecimento de caligrafia de pessoas, exploração de minérios,
diagnósticos médicos, detecção de vírus de computador e reconhecimento de fala, entre
outros. [BIG96]
Uma RNA tem algo em comum com compras feitas pelas pessoas. As RNA podem
classificar os itens comprados pelas pessoas. Esta classificação pode ser utilizada para verificar
66
a relação entre itens de compra ou para fornecer para uma empresa o perfil dos seus clientes.
E, muitas outras informações podem ser fornecidas pela RNA ao analisar o banco de dados de
uma empresa. Estas informações podem ser extremamente úteis para definir novas estratégias
de negócios de uma empresa. Uma empresa que possui, por exemplo, um perfil aproximado
dos seus clientes, pode realizar promoções baseadas nestas informações, determinar a compra
de novos produtos para vender ou até trocar de atividade comercial. Enfim, a utilização de
RNA para fazer classificações pode ser uma ferramenta muito útil para uma empresa gerenciar
o seu relacionamento com os seus clientes.
A apresentação de exemplos para uma RNA classificar pode apresentar dados
percentuais muito importantes sobre o negócio de uma empresa. Suponha que uma empresa
queira detectar possíveis fraudes que esteja sofrendo. A classificação realizada por uma RNA
pode apresentar exceções encontradas nos dados. Estas exceções podem ser indícios de algum
tipo de fraude.
Uma RNA pode ser treinada para reconhecer a caligrafia de uma pessoa e a voz
humana. A partir de um conjunto de exemplos de texto e voz, uma RNA pode ser treinada.
Como resultado deste treinamento, pode-se utilizar a RNA para confrontar um texto ou uma
fala contra o que a RNA aprendeu. O objetivo disto é detectar, por exemplo, se dois textos são
de uma mesma pessoa ou se duas assinaturas são da mesma pessoa. A partir disto, pode-se
utilizar esta RNA para a verificação de senhas digitais ou reconhecimento de voz para permitir
o acesso de pessoas a algum lugar específico. [BIG96]
Uma RNA pode ser treinada com um conjunto de dados que descrevem o
comportamento do corpo humano e possíveis doenças que o ser humano pode sofrer. Isto
pode ser utilizado para que a RNA forneça um diagnóstico médico de uma pessoa através da
apresentação dos sintomas de doença de uma pessoa para a RNA.
5.1.2 Agrupamento
Fazer uma boa distinção entre coisas pode ser um problema tão sério como não ser
capaz de decidir alguma coisa. Pelo fato do ser humano ter uma capacidade limitada de
armazenamento no cérebro, é importante a capacidade de agrupar itens similares.
As aplicações de negócios de agrupamento são principalmente utilizadas na área de
marketing. Uma RNA pode ser treinada para agrupar informações sobre clientes. Este
67
agrupamento pode ser feito levando-se em consideração atributos similares, tais como,
produtos comprados, e estas informações podem ser usadas para classificar grupos de clientes
que compram produtos similares. Com base nestas informações, uma empresa pode tomar
diversas decisões, desde a elaboração de promoções, compra de novos produtos, etc.
Uma RNA pode ser treinada para agrupar diversas coisas, como por exemplo, itens de
compras de clientes, categorias de clientes, faixa etária de clientes, entre outros. Uma
informação muito útil para uma empresa pode ser obter informações sobre a categoria de
clientes que ela possui. Uma categoria pode ser entendida como classes sociais, faixas etárias e
períodos de compra dos clientes. Uma empresa pode obter informações como, por exemplo,
que noventa por cento dos seus clientes fazem parte da classe média; ou que setenta e cinco
por cento dos seus clientes são mulheres com idade entre vinte e cinco e trinta e oito anos; ou
que oitenta por cento das venda feitas pela empresa ocorre entre o dia cinco e o dia quinze de
cada mês e aos sábados à tarde. Todos estes exemplos de informações podem determinar
novas estratégias de vendas de uma empresa e aumentar consideravelmente as suas vendas.
Como ocorre com a classificação, uma RNA também pode utilizar a técnica de
agrupamento para o reconhecimento da fala. Uma RNA pode ser treinada para agrupar
diferentes conjuntos de dados de fala e criar categorias de fala. Categorias de fala podem ser
pessoas roucas, gripadas, voz fina, entre outros.
5.1.3 Memória Associativa
O cérebro humano é um dispositivo de armazenamento, ao longo de toda sua
existência, a memória humana armazena informações com um sistema de índice que mais
parece um banco de dados. Pessoas armazenam informações associando coisas ou idéias com
outras memórias relacionadas. Uma teoria fundamental do cérebro humano, diz que quando
dois neurônios estão ativos no cérebro ao mesmo tempo, então a conexão entre eles cresce
fortemente.
A memória associativa requer um mapeamento de dois itens quaisquer. Modelos de
RNA, tais como, memórias adaptativas binárias e redes de Hopfield utilizam memórias
associativas.
68
Uma RNA pode ser treinada para reconhecer associações entre quaisquer coisas. Por
exemplo, uma RNA pode descobrir associações entre itens de compras feitas pelos
consumidores de um supermercado.
5.1.4 Regressão ou Modelagem
As pessoas criam modelos durante todo o tempo. Muitas pessoas constróem modelos
relacionados com entradas e saídas baseadas em exemplos que são vistos todos os dias. Estes
modelos podem ser bastante triviais, tais como, saber que quando há nuvens escuras no céu e o
vento inicia, uma tempestade está provavelmente se formando.
A habilidade de fazer predições a partir de exemplos complexos que envolvem muitas
variáveis é uma grande qualidade. A partir de pequenos exemplos, as pessoas podem aprender
a modelar relacionamentos. As pessoas usam essa habilidade para fazer interpolações entre
exemplos exatos e a partir disto fazer generalizações de casos de novelas ou problemas que
nunca tinham visto antes. Esta habilidade de fazer generalizações é a força da tecnologia de
RNA.
5.1.5 Previsão de Séries Temporais
Previsões de séries temporais envolvem olhar a informação corrente e predizer o que
vai acontecer. Tipicamente, é visto o que tem acontecido por algum período de volta através
do tempo e predizer por algum ponto no futuro. O elemento de tempo faz previsões de séries
temporais mais difíceis e mais recompensáveis.
5.2 Treinamento de uma Rede Neural Artificial
O treinamento de uma rede neural artificial ocorre após a preparação dos dados e da
escolha do modelo e arquitetura de rede neural artificial a serem utilizadas para mineração dos
dados. O treinamento de uma RNA não possui tempo determinado de execução. Algumas
RNA requerem apenas uma passagem através dos dados, enquanto que outras podem requerer
centenas ou milhares de execuções sobre a mesma base de dados. O treinamento de uma rede
neural artificial pode ser controlado por um conjunto de parâmetros. Ou, estes mesmos
parâmetros podem servir para o ajuste dos pesos da RNA.
69
O treinamento de uma RNA, na maioria dos casos, acontece com um subconjunto de
exemplos e o teste de performance da RNA é realizado com um outro subconjunto de dados
menor do que o utilizado para o treinamento. O treinamento e teste são utilizados para medir o
que a RNA aprendeu e verificar se este aprendizado contêm informações importantes para o
trabalho que está sendo desenvolvido.
A tabela 5.2 apresenta alguns parâmetros utilizados no treinamento de uma RNA.
Parâmetro
Modelos
Função
Taxa de Aprendizado
Todos
Momentum
Back Propagation Monitorar uma possível ocorrência de
com MLP
Controla o ajuste de pesos.
oscilações grandes nos valores nas conexões
de peso.
Tolerância de Erro
Back Propagation Especifica quão próximo o valor de saída
com MLP
deve estar do valor desejado antes do erro
ser considerado como zero.
Função de Ativação
Todos
Seleciona a função de ativação, a qual é
utilizada pela unidade de processamento da
rede neural artificial. Podem ser utilizadas as
funções sigmoide, tangente hiperbólica,
função gaussiana, etc.
Vigilância
ART
Controla
quão
perspicaz
vai
ser
o
agrupamento dos dados.
Vizinhança
Kohonen
Define o tamanho ou área de unidades
circundantes ao vencedor a qual tem seus
pesos alterados.
Número de Épocas
Kohonen
MLP
com O número de épocas determina o número de
passos fixos para o treinamento da rede
através dos treinamento dos dados.
Tabela 5.2 : Parâmetros de Aprendizado para RNA ([BIG96])
70
As RNA podem ser treinadas utilizando-se valores aleatórios para os valores das
conexão de pesos. Os parâmetros de controle de treinamento (tabela 5.2) são inicializados e os
padrões de treinamento dos dados são apresentados para a RNA, um de cada vez. Ao longo do
progresso do treinamento, as conexões de pesos são ajustadas e é possível monitorar a
performance da RNA.
É importante compreender que pode tornar-se claro que uma RNA não pode ser capaz
de aprender uma função à qual está tentando-se ensiná-la. Tentar e errar pode ser natural, mas
pode consumir uma grande quantidade de tempo e dinheiro [BIG96].
Em [BIG96] são comentados itens importantes para o sucesso do treinamento de uma
RNA. Este itens serão comentados a seguir e dividem-se em:
• Monitorar o treinamento de uma RNA.
• Controle do processo de treinamento através de parâmetros de aprendizagem.
• Processo iterativo de desenvolvimento.
• Evitar saturação da RNA.
• Automação do Processo.
5.2.1 Monitorar o treinamento de uma RNA
Quando se utiliza algoritmos de classificação, o estado atual do treinamento de uma
RNA pode ser obtido através da monitoração do número correto e incorreto de classificações
que a rede fez quando estava sendo testada. O sucesso do treinamento de um problema de
classificação é a exatidão da classificação, definida sobre o percentual de classificações
corretas.
Com algoritmos de agrupamento, o processo de treinamento é usualmente determinado
por um número de passos ou épocas que os dados são apresentados para a rede neural artificial
e pelo tempo que a taxa de aprendizado e a vizinhança levam para decrescer.
Em algoritmos de regressão, a etapa de treinamento é determinada pelo cálculo do erro
medido pela raiz quadrada do erro (RMS - Root Mean Square). Se o erro da predição não cai
ou oscila para cima e para baixo, existe uma chance de que a rede não está conseguindo
71
convergir para um valor de saída. Isto requer uma mudança nos valores de entrada ou troca
do algoritmo de treinamento ou alteração dos parâmetros de treinamento.
Para algoritmos de séries temporais, o treinamento deve ser executado até o passo de
minimizar o erro da predição conforme descrito para algoritmos de séries temporais.
5.2.2 Controle do processo de treinamento através de parâmetros de aprendizagem
Após a determinação da performance de execução requerida para a aplicação
envolvendo RNA, o processo de treinamento pode ser iniciado. Dependendo do tipo de
algoritmo de aprendizado e RNA que estão sendo utilizadas, existem alguns parâmetros (tabela
5.2) que devem ser inicializados para controlar o processo de treinamento. Para o tipo de
aprendizado supervisionado existem os parâmetros taxa de aprendizado, momentum e
tolerância de erro. Para o tipo de aprendizado não supervisionado existem os parâmetros
vizinhança e vigilância.
O parâmetro taxa de aprendizado controla a magnitude das mudanças feitas nas
conexões de peso para movê-los na direção do valor correto para o padrão corrente de
treinamento e a saída desejada. Com uma taxa de aprendizado grande, é possível ocorrer
grandes mudanças nos pesos após cada padrão ser apresentado para a RNA, o que pode causar
grandes oscilações em seus valores. Com uma taxa de aprendizado relativamente pequena,
consegue-se sucesso no treinamento de uma RNA através do ajuste dos pesos feitos após a
execução rápida de pequenos passos.
O parâmetro momentum acompanha passo a passo o parâmetro taxa de aprendizado.
Sua função é monitorar a possível ocorrência de oscilações grandes nos valores nas conexões
de peso. Este parâmetro faz com que o erro de um padrão de treinamento anterior possa ser
medido e adicionado ao erro atual. Através da medição do erro do padrão anterior é possível
verificar se a conexão de peso mudou a direção da RNA em larga escala.
O parâmetro tolerância de erro é utilizado para calcular a diferença entre a saída
desejada e saída gerada pela RNA. Este parâmetro especifica quão próxima a saída da RNA
deve estar da saída desejada.
O parâmetro vizinhança em um algoritmo de Kohonen define a área ao redor da
unidade vencedora, onde as unidades não vencedoras têm seus pesos alterados.
72
O parâmetro vigilância é utilizado em redes ART para controlar quão perspicaz vai ser
o agrupamento dos dados. Se o valor do parâmetro vigilância for baixo e dois padrões são
similares, ambos os padrões serão agrupados juntos. Entretanto, se o parâmetro vigilância for
aumentado, a perspicácia da RNA será maior na avaliação da diferença entre dois padrões.
Maiores informações sobre estes e outros parâmetros podem ser encontradas em
[BIG96].
5.2.3 Processo iterativo de desenvolvimento
É muito provável que nas primeiras vezes que ao treinar uma rede neural artificial, esta
não seja capaz de encontrar o padrão que está sendo procurado. Neste caso, algum problema
pode estar acontecendo com o treinamento da RNA. A figura 5.1, mostra o processo iterativo
para treinamento de uma RNA. Em alguma das etapas do processo de treinamento pode estar
a causa para o treinamento da RNA não estar ocorrendo de maneira satisfatória. A seguir,
serão comentados alguns dos problemas que podem ocorrer durante o processo de treinamento
da RNA.
O primeiro problema é quando o treinamento de uma RNA não converge para um
valor. Após monitorar o treinamento da rede, é percebido que os valores dos ajustes das
conexões de peso oscilam para cima e para baixo. Há duas maneiras para resolver este
problema [BIG96]. A primeira maneira é adicionar valores aleatórios para as conexões de peso
da RNA para tentar fazer com que a RNA convirja para um valor qualquer. A segunda opção é
reinicializar as conexões de peso da rede para novos valores aleatórios e reiniciar o processo
de treinamento. Estas duas sugestões podem não ser suficientes para resolver o problema.
O segundo problema que pode ocorrer é com a seleção do modelo escolhido para a
RNA. Um modelo pode ter sido escolhido inadequadamente para treinar uma RNA. Se for
detectado que este é o problema, então a solução é trocar o modelo de RNA e reiniciar o
processo de treinamento. Se a conclusão for que o modelo escolhido é o correto, então uma
solução simples é adicionar mais unidades escondidas ou uma outra camada de unidades
escondidas. Duas camadas são necessárias somente se for adicionado um grande número de
unidades escondidas e a rede continuar a não convergir. A RNA necessita de um número
suficiente de unidades escondidas para utilizar todo o poder computacional para o
aprendizado.
73
Seleção dos
Dados
Representação
dos Dados
Seleção
do Modelo
de Rede
Neural
Especificação
da Arquitetura
da
Rede Neural
Setar os
Parâmetros
para
Treinamento
Aceitar ou
Recusar os
Critérios
Escolhidos
Recusado
Aceito
Figura 5.1 : Processo Iterativo para Treinamento de RNA [BIG96]
Se o modelo está correto e a RNA não converge para a resposta correta,
provavelmente o problema possa estar na representação dos dados, na distância entre eles. Os
parâmetros de entrada para a RNA podem não estar sendo escalados ou codificado de maneira
74
que a RNA possa aprender sobre estes dados. O problema mais sério que pode acontecer e
mais difícil de ser detectado, é se um parâmetro está sendo perdido durante o treinamento da
RNA. A solução para este problema é revisar a representação dos dados e treinar novamente a
RNA para ver o que irá acontecer.
Se a RNA continuar a não convergir para a resposta correta e os problemas
relacionados até este momento não existem, o problema pode estar no modelo de arquitetura
especificado para a RNA. Se forem adicionadas novas unidades escondidas ou camadas
escondidas, as conexões de peso entre todas as camadas da arquitetura da RNA devem ser
revisadas e a RNA deve ser treinada novamente. E, pode-se chegar a conclusão que o
treinamento da rede não convirja por causa do excesso de camadas escondidas. Neste caso,
deve-se remover algumas unidades escondidas, ajustar as conexões de peso e treinar
novamente a RNA.
Se o treinamento da RNA continuar a não convergir, todo o processo de treinamento
da RNA(figura 5.1) deve ser revisto com mais calma para procurar o problema.
5.2.4 Evitar a Saturação da RNA
É muito importante saber quando um treinamento de uma RNA deve ser finalizado. A
saturação de treinamento de uma RNA pode ser comparada ao aprendizado por parte de uma
criança dos tipos de carros que existem. Para a criança é ensinada que os tipos de carros que
existem são, por exemplo, parati, gol, omega, uno, etc. A criança, a partir deste momento
consegue reconhecer estes tipos de carros. Contudo, quando uma criança vê um carro do tipo
"fuca", a criança diz que "fuca" não é carro. Neste exemplo, foi ensinado com insistência para
a criança alguns tipos de carros, mas no momento que a criança encontrou outros tipos de
carros, ela não foi capaz de identificar este carro como um tipo de carro.
É importante salientar que o treinamento de uma RNA é realizado para conseguir as
melhores predições no processo de treinamento dos dados. O treinamento é feito para otimizar
a performance da RNA no teste e validação dos dados.
75
5.2.5 Automação do Processo
A primeira tentativa para automatizar o processo de treinamento da RNA é a seleção
do número apropriado de camadas escondidas e unidades escondidas da RNA. Isto pode ser
feito de várias maneiras. A primeira maneira é tentar computar a arquitetura necessária
verificando os dados. A segunda maneira é construir uma rede arbitrária grande e então cortar
os neurônios e conexões até chegar em um número pequeno de neurônios com os quais a RNA
possa realizar seu trabalho e produzir um resultado. A terceira maneira é começar com uma
rede pequena e aumentar os neurônios até que a RNA esteja executando a sua tarefa de
maneira satisfatória.
5.3 Análise do Aprendizado de uma Rede Neural Artificial
As etapas de criação, treinamento e teste de um modelo de RNA (figura 5.1) fazem
parte de algumas das etapas do processo de mineração dos dados. A próxima etapa é a mais
importante em todo este processo: analisar o que a RNA aprendeu. Quando se usa RNA como
modelos para processos de transação, o tópico mais importante é se os pesos das conexões da
RNA capturaram com precisão a classificação, agrupamento, regressão, entre outros,
necessários para a aplicação. Nas aplicações de suporte à decisão é importante não o que a
RNA foi capaz de aprender para discriminar entre boas e más classificações, mas o que a RNA
é capaz de identificar de fatores chaves em fazer esta determinação. Em resumo, o importante
é saber o que a RNA aprendeu.
Existem diversas abordagens para verificar o que a RNA aprendeu. Uma das
abordagens é tratar a RNA como uma "caixa preta". Neste caso, diversas entradas são
apresentadas para a RNA, e as saídas são gravadas. Esta abordagem é chamada de análise
sensitiva. Uma outra abordagem é apresentar um conjunto de dados de entrada para a RNA e
gerar um conjunto de regras para descrever as funções lógicas executadas pela RNA baseados
nas constatações do estado interno e conexões de peso da RNA. Uma terceira abordagem é
representar de maneira visual a RNA, utilizando representações gráficas para mostrar os
padrões de dados reconhecidos pela RNA. Estas abordagens serão comentadas com maior
profundidade a seguir.
76
5.3.1 Análise Sensitiva
Enquanto que existem muitos diferentes tipos de informações que podem ser unidas
utilizando as RNA para minerar dados, talvez o ponto crucial para aprender é saber quais
parâmetros são mais importantes para uma função específica. Determinar o impacto ou efeito
de uma variável de entrada sobre a saída de um modelo é chamada de análise sensitiva.
[BIG96]
Uma RNA pode ser usada para fazer análise sensitiva de diversas maneiras. Uma
abordagem é tratar a RNA como uma "caixa preta". Para determinar o impacto que uma
particular variável de entrada tem sobre a saída, é preciso manter as outras entradas em algum
valor fixo, tais como, seus significados ou valor médio e variar somente a entrada enquanto
está sendo monitorada a mudança na saída. Se a variação da entrada for para o seu valor
mínimo ou máximo e nada acontecer para a saída, então a variável de entrada não é muito
importante para o funcionamento do modelo. Contudo, se a saída mudar consideravelmente,
então a entrada é muito importante porque afeta a saída.
A melhor forma de executar análise sensitiva da maneira apresentada no parágrafo
anterior e repetir este processo para cada variável em um gerenciamento controlado pode ser
chamado de importância relativa de cada parâmetro. Desta forma, tem-se uma posição
(ranking) dos parâmetros de acordo com o seu impacto sobre o valor de saída.
Uma abordagem mais automatizada para executar análise sensitiva com RNA back
propagation é manter uma trilha de termos de erros computados durante a etapa do algoritmo
back propagation. Computando todos os erros no caminho de volta à camada de entrada, terse-á uma mensuração do grau para com que cada entrada contribui para o erro da camada de
saída. Verificando por um outro ponto de vista, a entrada com o maior erro tem maior impacto
sobre a saída. Acumulando estes erros e normalizando-os, pode-se computar a contribuição de
cada entrada para os erros da saída. Assim pode ser descoberta a sensibilidade da função que
está sendo modelada para mudar em cada entrada.
5.3.2 Geração de Regras para Redes Neurais Artificiais
Uma saída comum para a mineração de dados ou algoritmos de descoberta do
conhecimento é a transformação da linha de dados em regras do tipo "if-then-else". Técnicas
77
do modelo de aprendizado indutivo, tais como, árvores de decisão podem facilmente ser
usadas para gerar tais regras.
Uma representação eficiente para o conhecimento, especialmente em problemas de
classificação, é derivar um conjunto de regras de um linha de dados. Então, pode-se
inspecionar este conjunto de regras e tentar determinar quais entradas são importantes. Neste
caso, o objetivo do processo de mineração de dados com RNA é transformar um conjunto de
exemplos de dados em um conjunto de regras que tenta explicar como as entradas causam o
particionamento dos dados em diferentes classes.
5.3.3 Visualização
Enquanto que as RNA são poderosas para o reconhecimento de padrões, não existe
ainda nada mais poderoso que a habilidade humana de ver e reconhecer padrões em dados em
duas ou três dimensões. A técnica de visualização é muito importante na análise da saída do
processo de mineração de dados.
As técnicas de visualização padrão trabalham com gráficos. Os gráficos incluem
histogramas, gráficos com vistas bidimensionais dos dados ou tridimensionais dos dados,
desenho de retas para verificar o comportamento de uma simples variável e gráficos que
mostram o comportamento de variáveis discretas, entre outras técnicas.
Durante a última década, um conjunto de gráficos específicos para RNA têm sido
desenvolvido. Estes gráficos fornecem informações sobre a arquitetura da RNA, estado atual
dos neurônios e valores das conexões de peso.
Uma representação muito utilizada para visualizar o processo de RNA é através do
Diagrama de Hinton [BIG96]. Um diagrama de Hinton é uma coleção de caixas (representadas
na forma de quadrados ou retângulos) na qual o tamanho da caixa representa a magnitude
relativa da conexão de peso e, a cor representa o seu sinal (positivo ou negativo). Estes
diagramas são uma excelente forma para visualizar os pesos em uma RNA.
5.4 Extração de Regras
A extração de regras é utilizada para compreender o que uma RNA aprendeu após
finalizada a etapa de treinamento. Uma abordagem para compreender uma hipótese
78
representada pelo treinamento de uma RNA é traduzir esta hipótese para uma linguagem mais
compreensível. Alguns conceitos são importantes de serem apresentados antes de explorar a
extração de regras. A seguir são apresentados os conceitos de representação da linguagem,
estratégia de extração e requisições de rede.
• Representação da Linguagem: a linguagem é utilizada pelo método de
extração para descrever o modelo aprendido por uma RNA. As linguagens
que têm sido utilizadas por vários métodos incluem regras de inferência
(if..then..else), regras "m-de-n", regras fuzzy e árvores de decisão.
• Estratégia de Extração: a estratégia que é utilizada pelo método de
extração para mapear o modelo de representação de uma RNA treinada para
um modelo em uma nova linguagem de representação. As regras extraídas
pelo método descrevem a conduta da rede como um todo, a conduta de
unidade individual de processamento na rede, ou algo perto destes dois
casos. O primeiro caso é chamado de método global e, o segundo caso, de
método local.
• Requisições da rede: os requisitos arquitetura e treinamento que o método
de extração impõe para a RNA. Em outras palavras, o limite da rede para o
qual o método é aplicável.
A seguir, são apresentados dois métodos de extração de regras, o primeiro método é
"Métodos de extração de regras baseados em procura de regras" e, o segundo, é "um método
de extração de regras baseado no aprendizado".
5.4.1 Métodos de Extração de Regras Baseados em Procura de Regras
Muitos algoritmos de extração de regras fazem parte de um conjunto de tarefas como
um problema de procura que envolve explorar um espaço de regras candidatas e testar cada
regra candidata individualmente contra a RNA para ver se são regras válidas.
Vários destes algoritmos conduzem a procura através de regras "if..then..else". A
figura 5.2 mostra uma regra de procura para um problema com três neurônios representando
valores lógicos (verdadeiro e falso). Cada neurônio se relaciona com o antecedente através de
uma possível regra, e os arcos indicam relacionamentos especializados entre os neurônios. O
79
neurônio localizado no topo do grafo representa a regra mais geral e o neurônio mais abaixo
representa a regra mais específica. Ao contrário de que muitos processos de procura os quais
continuam a execução até que o primeiro neurônio desejado é encontrado, a extração de regras
baseada na procura continua até que todas de um máximo de regras sejam encontradas.
Note que regras com mais de um literal em seu antecedente tem múltiplos ancestrais no
grafo (figura 5.2). Obviamente, quando uma regra é explorada, é insuficiente para o
procedimento de procura visitar um neurônio múltiplas vezes. Para evitar esta ineficiência,
pode-se impor uma ordem nos literais transformando o gráfico de procura em uma árvore.
O aumento do espaço para procurar a regra pode ser muito grande. Isto é um problema
para o processo de procura de regras. Para um problema com n neurônios binários, existem 3n
regras possíveis do tipo "if...then...else". Para evitar ou resolver este problema é necessário
limitar o número de combinações possíveis no processo de extração de regras. Muitos
algoritmos de extração de regras gerenciam as combinações limite do número de literais que
podem estar em antecedentes de regras extraídas [SAI88] [GAL93].
¬X1
X1
X1X2X3
X2
¬X2
X3
X1X2¬X3
¬X3
¬X1¬X2¬X3
Figura 5.2 : Uma regra de Procura [CRA]
Cada neurônio da figura 5.2 representa uma possível regra antecedente. Os arcos entre
os neurônios indicam regras especializadas (na direção de cima para baixo). As linhas em
negrito descrevem uma árvore de procura.
Explorar um espaço de regras candidatas é somente uma parte da tarefa para o método
extração de regras baseada na procura. A outra parte da tarefa é testar as regras candidatas
contra a RNA. O método desenvolvido por Gallant [GAL93] opera por propagação de
80
intervalos de ativação através da rede. O primeiro passo para testar a regra usando este
método é inicializar as ativações das unidades de entrada que correspondem aos literais em
cada regra candidata. O próximo passo é propagar as ativações através da rede. A idéia deste
segundo passo, contudo, é a aceitação de que as unidades de entrada as quais as ativações não
são especificadas pela regra poderiam possivelmente levar em qualquer valor permitido, e
então os intervalos de ativações são propagados para as unidades da próxima camada.
Efetivamente, a rede calcula, para os exemplos incluídos na regra, os limites de possíveis
ativações na próxima camada. Intervalos de ativação são então rapidamente propagados de
uma unidade escondida para as unidades de saída. Neste momento, o limite de possíveis
ativações para as unidades de saída pode ser determinado e o procedimento pode decidir se
aceita a regra ou não. Embora este algoritmo garanta a aceitação somente de regras válidas,
ele pode falhar para aceitar um máximo de regras gerais, e ao invés disso pode retornar regras
específicas. A razão para esta deficiência é que na propagação dos intervalos de ativação das
unidades escondidas avançadas, o procedimento assume que a ativação das unidades
escondidas são independentes umas das outras. Em muitas RNA esta aceitação é difícil de ser
manipulada.
O método de extração de regras descreve a conduta das unidades de saída em termos
das unidades de entrada. Uma outra abordagem para o problema da extração de regras é
decompor a rede em uma coleção de redes, e então extrair um conjunto de regras descrevendo
cada componente da rede.
Existe uma variedade de métodos de extração de regras locais para redes que usam
funções de ativação sigmoidal das unidades escondidas para as unidades de saída. Nestes
métodos, a aceitação é feita de maneira que as unidades escondidas e de saída podem ser
aproximadas através de funções limite, e então cada unidade pode ser descrita por uma
variável binária indicando se está ativa (ativação igual a 1) ou se não está ativa (ativação igual
a 0 ou -1). Fornecida esta aceitação, pode-se extrair um conjunto de regras para descrever
cada unidade escondida e de saída individual em termos das unidades que tem conexões de
peso para isso. As regras para cada unidade podem ser combinadas em um conjunto de regras
simples que descrevem a rede como um todo.
Se as ativações das unidades de entrada e escondida em uma rede são limitadas no
intervalo [-1,1], então a abordagem local pode significar simplesmente a procura da regra no
espaço. O ponto central que simplifica a procura de combinações neste caso é que os
81
relacionamentos entre quaisquer entradas para uma unidade e sua saída é 1. Isto é, pode-se
olhar o sinal da conexão de peso da entrada para a unidade de interesse para determinar o
quanto esta variável influência na ativação da unidade. Se o sinal é positivo, a unidade pode
levar a ativação para 1, senão pode levar a ativação para -1. Então, se são extraídas regras para
explicar quando a unidade tem uma ativação de 1, necessita-se considerar -xi literais somente
para estas entradas xi que tem pesos negativos, e se precisa considerar xi não negativos literais
somente para entradas que tem pesos positivos. Quando o espaço de procura é limitado para
incluir xi ou -xi, mas não ambos, o número de regras no espaço é 2n para uma tarefa com n
neurônios binários. Contudo, quando esta condição não é considerada, o tamanho do espaço
da regra é 3n.
5.4.2 Um Método de Extração de Regras Baseado no Aprendizado
Um outro algoritmo para extração de regras é o TREPAN [CRA93] [CRA96] [CRA].
No TREPAN, o problema da extrair uma hipótese compreensível de uma rede treinada é visto
como uma tarefa de aprendizado indutivo. Nesta tarefa de aprendizado, a concepção destino é
a função representada pela rede, e as hipóteses produzidas pelo algoritmo de treinamento são
uma árvore de decisão que aproxima a rede.
O processo de extrair regras no TREPAN envolve progressivamente refinar um modelo
completo da rede. O modelo, neste caso, é uma árvore de decisão a qual é aumentada
conforme a necessidade de gerenciamento.
O TREPAN aprende diretamente de um conjunto de treinamento. Estes algoritmos
constróem árvores de decisão recursivamente particionando o espaço de entrada. Cada
neurônio interno na árvore representa um critério de divisão que particiona alguma parte do
espaço de entrada, e cada folha representa uma classe preditiva.
Como o TREPAN aumenta a árvore, ele mantém uma fila de níveis as quais são
expandidas em subárvores quando são removidas da fila. Com cada neurônio na fila, o
TREPAN armazena um subconjunto de exemplos de treinamento, um outro conjunto de
instâncias às quais se refere como instâncias de consulta, e um conjunto de restrições. O
subconjunto de exemplos de treinamento armazenados consiste simplesmente destes exemplos
que alcançam o neurônio. As instâncias de consultas são usadas, assim como os exemplos de
treinamento, para selecionar a divisão do teste se o neurônio é um neurônio interno, ou para
82
determinar a classe se o neurônio é uma folha. O conjunto de restrições descreve as condições
que as instâncias devem satisfazer para alcançar o neurônio, esta informação é usada quando é
desenhado um conjunto de instâncias de consultas para um neurônio recentemente criado. Uma
descrição mais aprofundada do algoritmo pode ser encontrada em [CRA].
83
6. DESCRIÇÃO DO PROTÓTIPO
Com o intuito de testar alguns dos conhecimentos estudados até aqui, foi desenvolvido
um protótipo de mineração de dados utilizando RNA. Neste, capítulo será descrita as etapas
percorridas, algumas telas do programa serão apresentados, bem como uma conclusão sobre
os resultados obtidos sobre o desenvolvimento deste protótipo.
6.1 Objetivos do Protótipo
Este protótipo tem por objetivo verificar se o algoritmo back propagation das RNA
pode ser utilizado na etapa de mineração de dados do processo de descoberta do
conhecimento em base de dados para procurar padrões nos dados.
Este protótipo não tem por objetivo apresentar resultados práticos. Isto é importante
ser salientado, pois, após alguns testes, pode-se chegar a conclusão que o algoritmo back
propagation não pode ser utilizado para procurar padrões na etapa da mineração de dados do
processo de DCBD. Este algoritmo pode precisar ser utilizado em conjunto com algum outro
algoritmo para atender as necessidades do usuário na etapa de mineração dos dados.
Seria muito importante obter resultados práticos e, apresentá-los na forma de tabelas
ou gráficos. Com os resultados obtidos, poderia se compará-los e verificar o que a RNA
aprendeu e, realizar novos testes. Mas, de imediato, isto fica como sugestão para trabalhos
futuros, caso se consiga bons resultados com este protótipo utilizando o algoritmo back
propagation para procurar padrões nos dados na etapa de mineração dos dados.
6.2 Etapas realizadas do processo de DCBD
Algumas das etapas do processo de DCBD (apresentadas no capítulo 2) foram
realizadas antes do início do desenvolvimento do protótipo. As etapas de compreensão,
seleção dos dados, pré-processamento dos dados, transformação, escolher o método de
mineração de dados e escolher o algoritmo de mineração de dados são descritas abaixo.
84
6.2.1 Compreensão
O objetivo desta aplicação é verificar se o algoritmo back propagation pode ser
utilizado para procurar padrões nos dados na etapa de mineração de dados do processo de
DCBD. Tem-se plena consciência que este protótipo pode, ao final, não fornecer resultados
práticos.
6.2.2 Seleção dos Dados
O sistema de matrículas da Universidade de Caxias do Sul é composto por uma grande
quantidade de programas escritos em linguagem Cobol e, estes dados estão armazenados em
um computador do tipo mainframe. O sistema de matriculas é composto por diversos arquivos
de dados. Foram selecionados os arquivos de histórico dos alunos, disciplinas e cadastro de
alunos. Estes arquivos são arquivos muito grandes e contêm informações de quase duas
décadas. Por isso, selecionamos os dados dos alunos do curso de computação para serem
utilizados neste protótipo.
Os arquivos foram fornecidos pelo NPDU (Núcleo de Processamento de Dados da
Universidade de Caxias do Sul). A estrutura de dados dos arquivos é a seguinte:
1. Arquivo Disciplinas:
• Código da disciplina, tipo caracter de tamanho 6.
• Descrição da disciplina, tipo caracter de tamanho 35.
2. Arquivo de Histórico de Alunos:
• Cadastro, tipo numérico de tamanho 8.
• Ano/período, tipo numérico de tamanho 3.
• Código da disciplina, tipo caracter de tamanho 6.
• Turma, tipo caracter de tamanho 1.
• Nota, tipo caracter de tamanho 2.
• Situação, tipo caracter de tamanho 1.
• Créditos, tipo numérico de tamanho 4.
85
• Horas/aula, tipo numérico de tamanho 3.
• Curso, tipo numérico de tamanho 3.
• Freqüência, tipo numérico de tamanho 2.
3. Arquivo de Cadastro de Alunos:
• cadastro, tipo numérico de tamanho 8.
• nome, tipo caracter de tamanho 35.
• curso, tipo caracter de tamanho 4.
• média, tipo numérico de tamanho 9.
• ano ingresso, tipo numérico de tamanho 2.
Para utilização deste protótipo foi criada uma nova tabela no banco de dados. Para isto,
foram avaliados os currículos do curso de Bacharelado em Ciência da Computação da
Universidade de Caxias do Sul. Os currículos analisados foram o “B”, ”C”, ”E” e ”F”. Destes
currículos foram selecionadas trinta e três matérias comuns a todos os currículos. A nova
tabela contêm trinta e três atributos com o nome destas matérias contendo valor 3 se o aluno
cursou a matéria e, -3 se o aluno não cursou está matéria. A tabela contém mais trinta e três
atributos com os respectivos conceitos de cada matéria. Além destes atributos, esta tabela
contém a média do aluno, cadastro do aluno, tempo que o aluno está cursando o curso de
computação e nome do aluno.
6.2.3 Pré-Processamento dos Dados
Nesta etapa foi feita a inserção dos dados fornecidos pelo NPDU no formato de
arquivos texto para o SGBD Oracle. Após, foi gerada a tabela para a mineração de dados.
Para a geração desta tabela, foram tomadas algumas decisões:
• O atributo freqüência da tabela de histórico foi desprezado porque continha
informações inconsistentes.
• O atributo nota do arquivo histórico possuía 54 registros com nota igual a 5.
Estes registros foram desprezados.
86
Para a inserção dos dados foram lidos todos os registros comuns de um mesmo
cadastro dos arquivos de cadastro de alunos e histórico de alunos para gerar um novo registro
nesta nova tabela.
6.2.4 Transformação
Após a geração da tabela para a mineração de dados, o conteúdo do atributo nota foi
dividido por dez, pois o arquivo texto enviado pelo NPDU continha o campo nota como tipo
caracter de duas posições. No momento da conversão, os dados foram importados para o
banco de dados como um inteiro de duas posições. Por isso, foi necessário dividir a nota por
dez com o objetivo de ter-se o conceito usado na universidade.
Quando os dados foram lidos do banco de dados para serem colocados para a estrutura
de dados criada para a mineração de dados, o conceito das disciplinas foi mapeado para
valores no intervalo [-3,3], onde -3 representa o conceito zero e 3 o conceito 4. O atributo
média foi separado em duas entradas, isto é, a média contém em sua parte inteira o número de
créditos cursados pelos alunos e, em sua parte fracionária, contém a média dos conceitos das
disciplinas cursadas pelos alunos.
6.2.5 Escolher a Tarefa da Mineração de Dados
Para este protótipo foi escolhido o método de classificação para minerar os dados. Para
classificar os dados, o protótipo solicita que o usuário, através de um formulário, informe
exemplos positivos e negativos para a RNA. Os exemplos positivos associam a saída desejada
o valor 3 e, os exemplos negativos, associam a saída desejada o valor -3. Os exemplos
positivos e negativos podem ser compreendidos como as informações contidas em qualquer
tupla da tabela gerada para este protótipo.
6.2.6 Escolher o Algoritmo de Mineração de Dados
O algoritmo escolhido foi o algoritmo back propagation das redes neurais artificiais. O
algoritmo back propagation utiliza a topologia feedforward e aprendizado supervisionado.
Este algoritmo foi escolhido por ser o algoritmo mais utilizado no processo de mineração de
dados, por ser o algoritmo mais referenciados pelos autores da área de mineração de dados e
87
por ser o algoritmo de redes neurais artificiais mais fácil de ser implementado [BIG96]
[FAY96].
As informações fornecidas como entrada para a RNA são escolhidas pelo usuário
através de um formulário. Estas informações são convertidas para o intervalo [-3,3] e, após,
enviadas para a RNA.
O algoritmo back propagation possui apenas uma camada escondida. O número de
neurônios da camada escondida não será fixo. A RNA será testada com diversos números de
neurônios na camada escondida. Estes testes serão feitos para verificar o comportamento da
RNA e, ajustes no número de neurônios serão necessários para verificar se a RNA foi capaz de
aprender algum padrão ou atingir um valor desejado de erro.
A saída desejada conterá um valor igual a -3, se a entrada da RNA for um exemplo
negativo. E, a saída desejada receberá um valor 3, se a entrada for um exemplo positivo. É
necessário informar o valor da saída desejada, pois este algoritmo utiliza o tipo de aprendizado
supervisionado.
Após o treinamento, a RNA receberá uma tupla para teste que não foi selecionada
como exemplo negativo e positivo e fornecerá um valor de saída. Se o resultado fornecido
como saída for positivo, significa que a tupla fornecida para teste foi classificada como um
exemplo positivo, senão foi classificada como um exemplo negativo.
Para controle de aprendizado deste algoritmo serão utilizados a taxa de erro e número
de iterações. Ambos podem ser utilizados juntos ou isoladamente, dependendo dos testes a
serem realizados.
6.3 Desenvolvimento do Protótipo
Para o desenvolvimento do protótipo foi utilizado o ambiente de programação
DELPHI 2.0 da Borland e como SGBD foi utilizado o SGBD ORACLE 7.3.
Este programa fornece para o usuário uma interface para que o usuário possa escolher
a tabela, atributos desta tabela e dados desta tabela a serem utilizados para a mineração de
dados. Após esta etapa inicial de escolha dos dados, o usuário pode treinar e testar a RNA
para ver os resultados produzidos pelo algoritmo back propagation. E, se o usuário não quiser
treinar a RNA toda vez que ele quiser usar este protótipo, o usuário possui as opções de salvar
88
e recuperar os pesos da conexões entre os neurônios das camadas de saída e escondida da
RNA.
A seguir, serão apresentadas algumas das telas deste protótipo e uma breve descrição
das funções do protótipo.
6.3.1 Menu Principal
A figura 6.1 apresenta o menu principal do protótipo. Este menu possui três níveis
superiores: Arquivo, Rede Neural e Selecionar; os quais são descritos a seguir.
Figura 6.1 : Menu Principal
O item de menu Arquivo contém as seguintes opções :
• Gravar Pesos: nesta opção o usuário pode gravar os pesos gerados pelo
treinamento da RNA da camada de saída e da camada escondida. O objetivo
de salvar os pesos é que o usuário possa recuperá-los, carregá-los para a
RNA e fazer novos testes sem ter que treinar a RNA, uma vez que o
treinamento da RNA pode necessitar de muitas horas para ser concluído.
• Carregar Pesos: carrega os pesos dos arquivos para as camadas de saída e
escondida da RNA.
• Sair: finaliza o programa.
89
O item de menu Rede Neural contém as seguintes opções :
• Inicializar: nesta opção, os dados selecionados pelo usuário são carregados
para a estrutura de dados utilizada pela rede neural, as matrizes de pesos são
inicializadas com valores aleatórios (somente é realizado se não forem
recuperados os pesos a partir de arquivos) e, outros dados necessários para
o treinamento são inicializados.
Figura 6.2 : Formulário de Treinamento
• Treinar: o usuário é solicitado a informar três parâmetros (figura 6.2) :
número de iterações, taxa de aprendizagem e taxa de erro. Todos estes
valores são utilizados no treinamento da RNA. Após o usuário pressionar o
botão OK, inicia-se o treinamento da RNA. Quando o treinamento da RNA
estiver concluído é mostrado para o usuário o número de iterações realizadas
e a taxa de erro obtida.
• Testar: após o treinamento da RNA, o usuário pode testar o que a RNA
aprendeu. É mostrado para o usuário um formulário (figura 6.5) contendo
todos os dados da tabela selecionada. O usuário deve dar dois cliques em
cima do registro selecionado e o programa fornecerá a resposta.
90
Figura 6.3 : Formulário de Atributos de uma tabela.
O item de menu Selecionar contêm as seguintes opções :
• Atributos: é mostrado um formulário (figura 6.3) com todos os atributos da
tabela selecionada pelo usuário. O programa inclui automaticamente o
atributo “MD_BOM”. Nesta opção, o usuário seleciona os atributos que ele
quer que sejam utilizados no processo de mineração de dados. O atributo
“MD_BOM” será utilizado no item de menu "Dados" do menu "Selecionar".
• Tabela: é mostrado um formulário (figura 6.4) para o usuário com todas as
tabelas disponíveis no banco de dados. O usuário deve selecionar a tabela
que ele quer utilizar para a mineração de dados.
• Dados: nesta opção, é mostrado um formulário (figura 6.5) com todos os
dados da tabela seleciona pelo usuário. O usuário deve alterar o atributo
“MD_BOM”. Este atributo deve conter “S” se a tupla for um exemplo
positivo, “N” se a tupla for um exemplo negativo ou “ “ se a tupla for
utilizado para treinamento.
91
Figura 6.4 : Formulário contendo o nome das tabelas.
Figura 6.5 : Formulário com os dados da tabela selecionada pelo usuário
92
6.4 Resultados
Não foi possível obter resultados práticos com o treinamento da RNA utilizando o
algoritmo back propagation para procurar padrões nos dados na etapa de mineração de dados
do processo de DCBD. Diversos problemas encontrados são apresentados a seguir:
• A falta de experiência na utilização de RNA e, em especial, do algoritmo
back propagation. E, falta de experiência também em trabalhar com este
algoritmo para minerar os dados.
• A grande quantidade de tempo necessária para o treinamento da RNA foi
outro problema. Cada treinamento requereu mais de seis horas e, muitas
vezes, foi interrompido bruscamente por falta de energia elétrica ou por
causa de problemas com o servidor da rede da Universidade de Caxias do
Sul, onde estavam sendo realizados os testes com este protótipo.
• A falta de conhecimento em adequar os dados disponíveis para a entrada do
algoritmo back propagation. Este problema pode ser a causa para que o
motivo de não se ter conseguido treinar a RNA e atingir um valor de erro
desejado.
• Outro motivo considerável foi não se ter conseguido definir um número
adequado de neurônios a serem utilizados na camada escondida para realizar
o treinamento da RNA.
Durante os testes do protótipo, foram feitas alterações no número de neurônios na
camada escondida. Os dados de entrada foram mapeados para o intervalos [0,1], [-1,1] e
[-3,3]. O número de padrões de entrada foi mudado. A RNA foi testada inicialmente com um
número fixo de iterações e, após, a RNA foi treinada para atingir um erro desejado. Enfim,
diversas combinações e alterações foram feitas no intuito de tentar fazer com que a RNA
conseguisse realizar o treinamento com esta base de dados.
Mesmo não se obtendo resultados práticos, estes resultados servem como base para
novos testes e trabalhos futuros. O desenvolvimento deste protótipo proporcionou a aquisição
de novos conhecimentos. Por isso, o desenvolvimento deste protótipo foi considerado válido e
servirá de base para novos protótipos utilizando RNA para procurar padrões na etapa de
mineração de dados do processo de DCBD.
93
7. CONCLUSÃO
Neste trabalho foram apresentados diversos conceitos sobre a utilização RNA na etapa
de mineração de dados do processo de DCBD. A mineração de dados é uma área emergente
da ciência da computação que crescerá muito nos próximos anos. Este crescimento já está
acontecendo, pois, a competição entre as empresas aumenta cada vez mais e, tem-se a
necessidade de obter informações diferenciadas de maneira on-line como suporte para a
tomada de decisão das empresas.
As técnicas de mineração de dados podem ser utilizadas para o desenvolvimento de
diversos tipos de aplicações (no capítulo 3 foram citadas algumas). Mas, como o mercado de
mineração de dados tende a crescer muito, diversas outras aplicações surgirão com o passar
dos anos e muitas deles exigirão o desenvolvimento de novos algoritmos para atender a suas
necessidades específicas de descoberta de conhecimento.
O processo de DCBD e a mineração de dados são tecnologias recentes, por isso, não
são tecnologias consolidadas, percebe-se que atualmente estão sendo realizadas muitas
pesquisadas nesta área. O desenvolvimento de aplicações ajudará estas tecnologias a se
desenvolverem e crescerem cada vez mais. Com o passar dos anos, o processo de DCBD e a
mineração de dados poderão ser consideradas tecnologias consolidadas.
As redes neurais artificiais são muito utilizadas na área de inteligência artificial
[FRE94]. A utilização de RNA para a utilização na mineração de dados é nova. Por isso, será
necessário algum tempo para consolidar o seu uso. De qualquer maneira, as RNA podem ser
utilizadas de diferentes formas para minerar dados. As RNA podem ser utilizadas para realizar
classificações, agrupamentos, modelagem, entre outros.
Durante o desenvolvimento do protótipo de mineração de dados utilizando o algoritmo
back propagation das RNA para procurar padrões nos dados, alguns problemas foram
detectados. A grande maioria destes problemas foi gerado pela falta de experiência em
trabalhar com as RNA. Os problemas foram por causa do grande tempo de treinamento
necessário e o desconhecimento em saber o número de neurônios que precisam ser utilizados
na camada escondida. Mesmo com estes problemas, ou melhor, dificuldades de um
aprendizado, o desenvolvimento deste protótipo foi muito útil para verificar na prática o
94
funcionamento do algoritmo back propagation e ter uma noção de como funcionam algumas
etapas do processo de DCBD.
Alguns trabalhos futuros podem ser sugeridos. Uma sugestão é pesquisar sobre como
mostrar os resultados obtidos sobre o que uma RNA aprendeu. A visualização dos resultados é
um aspecto muito importante e facilita o entendimento do usuário. Além disso é importante
estudar-se outras formas de treinamento de RNA, para facilitar a etapa de treinamento da
RNA.
95
8. BIBLIOGRAFIA
[ANA 96] ANAND, S.; BELL, D.; HUGHES, J. EDM : a general framework for data
mining based on evidence theory. Data & Knowledge Engineering, 18 : 189-223. 1996.
[ARA96] ARUNASALAM, M. Data Mining. Lally School of Management & Technology,
Rensselaer
Polytechnic
Institute.
Disponível
via
protocolo
http
no
endereço
http://www.rpi.edu/~arunmk/dm1.html.
[BIG96] BIGUS, J. Data Mining with neural networks: solving business problem - from
application to decision support. McGraw-Hill, USA, 1996.
[BIO97] BIOCOMP SYSTEMS, INC. What are neural networks? Redmond, USA, June,
1997.
Disponível
via
protocolo
http
no
endereço
:
http://www.biocompsystems.com/pages/NNDefine.htm
[BRA96] BRACHMAN, R. KLOESGEN, W. PIATETSKY-SHAPIRO, G. SIMOUDIS, E.
Industrial Applications of Data Mining and Knowledge Discovery. Communications of
ACM, Nov, 1996.
[BRE84] BREIMAN, L. FRIEDMAN, J. OLSHEN, R. & STONE, C. Classification and
Regression Trees. Wadsworth and Brooks, Monterey, CA, 1984.
[CRA] CRAVEN, M. SHAVLIK Using Neural Networks for Data Mining. School of
Computer Science Carnegie Mellon University, Pittsburgh, PA.
[CRA93] CRAVEN, M. Extraction Comprehensible Models from Trained Neural
Networks. In Proceedings of the Tenth International Conference on Machine Learning,
Amherst, MA, 1993.
[CRA96] CRAVEN, M. SHAVLIK Extracting tree-structured representations of trained
networks. In Touretzky, D., Mozer, M. & Hasselmo, M., editors, Advances in Neural
Information Processing Systems. MITPress, Cambridge, MA, 1996.
[DIL95] Dilly R. Data Mining. Parallel Computer Centre, Queens University Belfast,
December, 1995. Disponível via protocolo http no endereço :
http://www-pcc.qub.ac.uk/tec/courses/datamining/stu_notes/dm_book_2.html
96
[DOR93] DORNELES, R. V. Um Estudo sobre o Processamento Adaptativo de Sinais
utilizando Redes Neurais. CPGCC/UFRGS, Porto Alegre, 1993. (Dissertação de Mestrado)
[FAY96] FAYYAD, U. M. PIATETSKY-SHAPIRO, G. SMYTH, P. From Data Mining to
Knowledge Discovery: An Overview, Advances in Knowledge Discovery and Data Mining,
Fayyad, U. M. Piatetsky-Shapiro, G. Smyth, P. editors, American Association for Artificial
Intelligence AAAI Press, California, USA, 1996.
[FAY97] FAYYAD, U. MANNILA, H. PIATETSKY-SHAPIRO, G. Data Mining and
Knowledge Discovery, An International Journal. April, 1997. Disponível via protocolo http
no endereço http://www.research.microsoft.com/research/datamine/
[FEL96] FELDENS, M. Descoberta do Conhecimento Aplicada à Detecção de Anomalias
em Bases de Dados. Trabalho Individual I do Curso de Pós-Graduação em Ciências da
Computação na UFRGS, Porto Alegre, Dezembro, 1996.
[FRA92] FRAWLEY, W. J., PIATESTSKY-SHAPIRO, G. MATHEUS, C. J. Knowledge
discovery in databases: an overview. AI Magazine, Fall.
[FRE94] Freeman, J. Simulating Neural Networks with Mathematical, Addison-Wesley, 1994.
[GAL93] GALLANT, S. Neural Network Learning and Expert Systems. MIT Press,
Cambridge, MA.
[HER95] HERMANN, S. L. Estudo sobre Mineração de Banco de Dados. Trabalho de
Pós-Graduação em Ciência da Computação na UFRGS, Porto Alegre, 1995.
[HOL 94] HOLSHEIMER, M. & SIEBES, A. Data Mining : the search for knowledge in
databases. Internal Report CS-R9406. University of Amsterdam, 1994. 78 p.
[HOL94b] HOLSHEIMER, M. & KERSTEN, M. Architectural support for data mining.
Amsterdan, Netherlands.
[MAC97] MACKAY, D. J. C. Information Theory, Pattern Recognition and Neural
Networks.
March,
1997,
chapters
12-16.
(internet
address:
ftp://wol.ra.phy.com.ac.uk/pub/mackay/itprnn/ls.ps.gz)
[MAT93] MATHEUS, C. CHAN, P. PIATETSKY-SHAPIRO, G. Systems for Knowledge
discovery in databases. IEEE Transactions on Knowledge and Data Engineering. December,
1993.
97
[MOX96] MOXOM, B. Defining Data Mining DBMS-On-Line, DBMS Data Warehouse
Supplement, august 1996.
[OSO91] OSORIO, F. Um estudo sobre o reconhecimento visual de caracteres através de
redes neurais. Dissertação de Mestrado, CPGCC-UFRGS, Porto Alegre, RS, 1991.
[RAM96] RAMPON, M. Mapeamento Fonético para Língua Portuguesa utilizando
Redes Neurais Artificiais. Trabalho de Conclusão do Curso de Bacharelado em Ciências da
Computação na UCS, Caxias do Sul, Dezembro, 1996.
[SAI88] SAITO, K. NAKANO, R. Medical diagnostic expert system based on PDP model.
In Proceedings of IEEE International Conference on Neural Network, San Diego, CA. IEEE
Press, 1988.
[SUG93] SUGENO, M. YASUKAWA, T. A Fuzzy-Logic-Bases approach to qualitative
modelling. IEEE Transactions on Fuzzy Systems, Volume 1, Number 1, February, 1993.
[TER96] TERRA, E. Aplicação de Sistemas de Descoberta do Conhecimento em Banco
de Dados. Trabalho Individual II do Curso de Mestrado em Informática da PUC-RS. Porto
Alegre, Dezembro, 1996.
[TRA95a] TRAJECTA, INC. Predictive Modeling with Neural Networks. Texas, USA,
December,
1995.
Disponível
via
protocolo
http
no
endereço
:
http://www.trajecta.com/neural/white.htm
[TRA95b] TRAJECTA, INC. Frequently Asked Questions about Neural Networks. Texas,
USA, December, 1995. Disponível via protocolo http no endereço :
http://www.trajecta.com/neural/edufaq.htm
Download

Daniel Luis Notari. Aplicação de Redes Neurais Artificais à