Baixe o app para aproveitar ainda mais
Prévia do material em texto
REDES NEURAIS - UMA FERRAMENTA PARA KDD E DATA MINING Antonio Carlos Gay Thomé Redes Neurais – Uma Ferramenta para KDD e Data Mining SUMÁRIO Introdução ____________________________________________________________________ 4 Data Warehouse _______________________________________________________________ 6 Data Mart __________________________________________________________________ 9 KDD – Knowledge Discovery ____________________________________________________ 11 Data Mining _________________________________________________________________ 13 Principais Objetivos de um Data Mining _______________________________________ 14 Aplicações para Data Mining _________________________________________________ 15 Marketing ________________________________________________________________ 15 Vendas __________________________________________________________________ 16 Finanças _________________________________________________________________ 16 Manufatura _______________________________________________________________ 16 Saúde ___________________________________________________________________ 16 Energia __________________________________________________________________ 17 Redes Neurais ________________________________________________________________ 18 O Paradigma do modelo neural _______________________________________________ 18 Um Breve Histórico _________________________________________________________ 19 Alguns Conceitos Básicos ____________________________________________________ 20 O Neurônio Artificial _______________________________________________________ 21 O Modelo Neural __________________________________________________________ 23 Estrutura de uma Rede Neural ________________________________________________ 23 Projeto de um Sistema Neural ________________________________________________ 25 Treinamento de uma Rede Neural _____________________________________________ 26 Aprendizado ______________________________________________________________ 27 PRW – Uma Ferramenta para Data Mining ________________________________________ 28 Como obter uma cópia_______________________________________________________ 28 Tutorial On-Line ___________________________________________________________ 28 Componentes do PRW_______________________________________________________ 28 Guia para Utilização ________________________________________________________ 29 Como Carregar (importar) a base de dados ______________________________________ 29 Como criar um experimento__________________________________________________ 29 Como selecionar as variáveis de entrada e de saída ________________________________ 29 Como selecionar o conjunto para treinamento e para teste __________________________ 29 Como monitorar os experimentos _____________________________________________ 30 Como configurar um modelo _________________________________________________ 30 Como especificar os parâmetros do algoritmo de treinamento _______________________ 31 Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 3 Como especificar os parâmetros de configuração dos relatórios ______________________ 31 Como executar um experimento (treinamento da rede) _____________________________ 31 Como verificar o desempenho do modelo _______________________________________ 32 Como preparar a rede para operação – configurando uma função_____________________ 32 Como usar a rede sobre novos dados___________________________________________ 32 Como Salvar um Experimento ________________________________________________ 33 Como sair do PRW_________________________________________________________ 33 Estudo de Casos_______________________________________________________________ 34 Caso 1 – Planejamento de Vendas _____________________________________________ 34 Caso 2 – Planejamento de Marketing I _________________________________________ 37 Caso 3 – Planejamento de Marketing II ________________________________________ 41 Caso 4 – Diagnóstico Médico _________________________________________________ 45 Caso 5 – Aplicação Financeira ________________________________________________ 47 Referências Bibliográficas ______________________________________________________ 49 Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 4 Introdução O crescimento explosivo das bases de dados, sejam elas administradas pelo governo, pela sociedade civil ou pelas entidades de pesquisa, vem ultrapassando em muito, a capacidade humana de interpretar e digerir o volume de dados disponível. Esta realidade vem fazendo surgir a demanda por uma nova geração de ferramentas e técnicas, que possibilitem uma análise automática e mais inteligente destas bases de dados. “We’re interested in techniques that automatically find fundamental properties and principles that are original and useful.” Toshinori Munakata[Toshinori99] Nesta última década, graças aos avanços nas técnicas de aquisição e de armazenamento, presenciamos um crescimento explosivo na capacidade das pessoas em gerar e coletar dados. Avanços nas técnicas de aquisição de dados científicos incorporando, por exemplo, sensores remotos e satélites; a introdução do código de barras, que possibilitou a automatização comercial e o surgimento dos pontos de venda e, mais recentemente, as técnicas de gerenciamento eletrônico de documentos, são fontes geradoras de grandes volumes de dados. No lado do armazenamento, os avanços tecnológicos dos computadores, cada vez mais velozes, relativamente mais baratos e com maior capacidade de armazenamento, dotados de sistemas de gerenciamento de banco de dados cada vez melhores e a tecnologia de data warehouse, vêm possibilitando o acúmulo de verdadeiras montanhas de dados corporativos. Hoje já é relativamente comum encontrar-se bases de dados da ordem de trilhões de bytes (terabytes). Na área comercial, um dos maiores bancos de dados do mundo, com mais de 20 milhões de transações por dia, é o administrado pela cadeia Wal-Mart. A Mobil Oil está desenvolvendo um data warehouse com informações relativas a exploração de petróleo, com capacidade de armazenamento acima de 100 terabytes. “As wave after wave of new information technology hits the market and slowly gets assimilated into daily operations, the risks (and rewards) grow higher for those who have placed their bets on the technology roulette wheel.” Joseph P. Bigus [Bigus96] Nestas últimas três décadas o computador evoluiu de uma posição de uso limitado a automação de algumas operações rotineiras, principalmente nas áreas administrativa e financeira, para um uso mais abrangente e profundo, oferecendo soluções e respostas para os mais diferentes níveis do processo empresarial. Não apenas a tecnologia computacional Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 5 mudou, mas também, e principalmente, a forma como ela é vista e usada no mundo dos negócios. Em 1981 tivemos o nascimento do IBM PC que, usando um processador Intel 8088 de 16 bits, uma memória RAM de 64Kbytes e apenas um floppy disk de 5 ½”, foi lançado no mercado pelo singelo valor de US$3000. O primeiro disco rígido a aparecer no mercado foi o Seagate 5.25”, com capacidade de armazenar apenas 5Mbytes de dados. Hoje, passados vinte anos, com os mesmos US$3000, podemos adquirir um computador dual com dois processadores Pentium III de 1GHz, 512Mbytes de RAM, 40Gbytes de armazenamento em disco rígido e mais um número de outros recursos inexistentes na época, como CD-ROM, DVD, Zip Drive, placa de rede, etc. As bases de dados hoje ganharam status e passaram a ser vistas como bem de capital da empresa. Os dados operacionais representam o estado corrente dos negócios e, quando combinados com dados históricos, podem dizeronde estamos, de onde viemos e para onde vamos. Premidos pela necessidade de tomar decisões em tempo cada vez mais curto, os executivos atuais precisam dispor de informações rápidas e precisas que lhes sirvam de suporte. Segundo a revista HSM Management, o planejamento estratégico é a ferramenta mais utilizada pelos executivos nesta última década. Ter informações on line apenas não é mais o suficiente. Há tempos que as tradicionais consultas e relatórios gerenciais perderam a capacidade de proporcionar ao executivo algum diferencial competitivo. Ferramentas avançadas de análise de dados, conhecidas como OLAP (OnLine Analytical Processing), oferecem a possibilidade de uma análise interativa através de diferentes formas de agregação dos dados e apresentação dos resultados na forma de tabelas (2D) ou na forma de gráficos em 3D. Porém, o que observa é que mesmo estas ferramentas já não respondem aos desafios impostos pelo cotidiano da competitividade empresarial. O que o mercado procura hoje são maneiras ou técnicas que permitam tirar maior proveito do investimento feito na coleta e no armazenamento de montanhas de dados sobre o seu negócio. O desafio está em descobrir e extrair conhecimento novo a partir dos dados, que este conhecimento seja útil e que ao ser usado no processo de tomada da decisão, possa representar um diferencial competitivo e um ganho real para a empresa. Nesta área, de forma ainda nebulosa, isto é, sem um consenso, surgem ferramentas, metodologias e mesmo paradigmas, cujas definições muitas vezes se confundem, mas que apontam todas para a multiplicidade de bases de dados e para o caminho do processamento inteligente destas bases. Data Warehouse, KDD – Knowledge Discovery in Databases, Data Mining, Inteligência Computacional e Redes Neurais são alguns dos nomes encontrados neste novo segmento. No texto a seguir fazemos uma breve exposição dos principais conceitos e definições sobre os termos acima citados:Data Warehouse, KDD e Data Mining. Sobre Redes Neurais fazemos uma apresentação um pouco mais detalhada porém sem muita profundidade. A seguir apresentamos a ferramenta PRW – Pattern Recognition Workbench, que será utilizada em apoio ao curso e, finalmente, apresentamos alguns problemas que serão explorados como estudo de casos. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 6 Data Warehouse Nos anos 80 a sociedade presenciou o surgimento e o apogeu dos microcomputadores que não só viraram objeto de consumo mas também revolucionaram a forma de se fazer computação no meio empresarial. Os antigos e paquidérmicos sistemas centralizados deram lugar a sensação de que cada setor ou mesmo funcionário tem agora o poder de resolver seus próprios problemas e necessidades – finalmente alcançada a tão almejada independência da área de TI. O desenvolvimento de diversas ferramentas de software, como planilhas eletrônicas, gerenciadores de pequenos bancos de dados, interfaces gráficas com ícones e menus e sofisticados ambientes de programação, estimulou ao extremo a veneração pelo conceito do “faça você mesmo”. Embora interessantes e estimuladoras da criatividade e da auto-suficiência, a proliferação desta prática gerou uma nova classe de problemas para o mundo dos negócios. É muito comum hoje uma empresa ter um número elevado de pequenas bases de dados espalhadas por diversas áreas ou setores. Bases estas completamente desconectadas uma das outras, possivelmente com redundância de informações e, não raramente, contendo valores inconsistentes. A falta de um procedimento integrado para concepção e administração do dado como patrimônio corporativo da empresa começou a ser questionada no princípio da década de 90, principalmente por aqueles com tendência à nostalgia. Voltar no entanto aos grandes e pesados sistemas centralizados, em plena era da teleinformática, seria um retrocesso grande demais. É neste contexto que surge um novo conceito - o de Data Warehouse (ou Armazém de Dados em português) - cuja proposta maior é estabelecer um telhado virtual sob o qual se integram as diferentes bases de dados da empresa que agora, sob a perspectiva dos usuários, passam a ser vistas como uma grande base corporativa. Um Data Warehouse, como o nome indica, constitui-se de um grande aglomerado de dados provenientes das mais diversas bases de dados existentes e mantidas por uma empresa. A qualidade e a integridade dos dados no Data Warehouse deve ser mantida por uma equipe centralizada de profissionais competentes. Por outro lado, desenvolvedores de aplicações não precisam mais se preocupar com o layout das diferentes bases, nem com possíveis incompatibilidades em termos de formas e meios de armazenamento, redundâncias ou inconsistências. Em outras palavras, eles precisam apenas saber que todo e qualquer dado pode ser facilmente encontrado através dos recursos oferecidos pela interface de gerenciamento do Data Warehouse. Na bibliografia encontramos conceitos e definições as vezes um pouco distintas sobre DW , tais como: Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 7 ¨ Segundo Inmon [INM97a], que é tido como o pai do conceito, Data Warehouse é uma coleção de dados integrados, orientados por assunto, variáveis com o tempo e não voláteis, usados para dar suporte ao processo gerencial de tomada de decisão. ¨ Conforme Harjinder [HAR96], Data Warehouse é um processo que aglutina dados de fontes heterogêneas, incluindo dados históricos e dados externos a empresa, usados para atender à necessidade de consultas estruturadas e ad-hoc, relatórios analíticos e de suporte à decisão. ¨ Para Barquini [BAR96], Data Warehouse é uma coleção de técnicas e tecnologias que juntas disponibilizam um enfoque pragmático e sistemático para tratar com o problema do usuário final que precisa acessar informações que estão distribuídas em vários sistemas da organização. Fazendo uma comparação com o conceito tradicional de banco de dados, este pode ser visto como uma coleção de dados operacionais armazenados e utilizados pelos diferentes sistemas de aplicação de uma determinada empresa [BAT86]. Os dados mantidos nesta forma são chamados de "operacionais" ou "primitivos". No caso do DW, tem-se uma coleção de dados derivados dos dados operacionais que servem a sistemas de suporte à decisão. Estes dados são, muitas vezes, referidos como dados "gerenciais", "informacionais" ou "analíticos" [INM96]. Os bancos de dados operacionais armazenam as informações necessárias para as operações do dia-a-dia da empresa. São utilizados por todos os funcionários para registrar e executar operações pré-definidas e seus dados podem sofrer constantes mudanças conforme as necessidades atuais da empresa. Por não ocorrer redundância num banco de dados e as informações históricas não ficarem armazenadas por muito tempo, este tipo de estrutura não exige grande capacidade de armazenamento. Já um DW armazena dados analíticos, tanto detalhados como resumidos, e destinados às necessidades da gerência no processo de tomada de decisões. Isto pode envolver consultas complexas que necessitam acessar um grande número de registros, por isso é importante a existência de muitos índices criados para acessar as informações da maneira mais rápida possível. Um DW armazena informações históricas de muitos anos e por isso deve ter uma grande capacidade de processamento e de armazenamento. Na Tabela abaixo, estão relacionadas algumas diferenças entre um banco de dados convencional e um DW [INM96] [BAR96] [KIM96] [ONE97]: Características Bancos de dados Operacionais Data Warehouse Objetivo Operações diárias do negócio Analisar o negócio Uso Operacional Informativo Tipo de processamento OLTP OLAP Unidade de trabalho Inclusão, alteração, exclusão Carga e consulta Número de usuários Milhares Centenas Tipo de usuárioOperadores Comunidade gerencial Interação do usuário Somente pré-definida Pré-definida e ad-hoc Condições dos dados Dados operacionais Dados Analíticos Volume Megabytes – gigabytes Gigabytes – terabytes Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 8 Histórico 60 a 90 dias 5 a 10 anos Granularidade Detalhados Detalhados e resumidos Redundância Não ocorre Ocorre Estrutura Estática Variável Manutenção desejada Mínima Constante Acesso a registros Dezenas Milhares Atualização Contínua (tempo real) Periódica (em batch) Integridade Transação A cada atualização Número de índices Poucos/simples Muitos/complexos Intenção dos índices Localizar um registro Aperfeiçoar consultas Tabela 1 – Comparação entre Banco de Dados Operacionais e Data Warehouse. Com base nestes conceitos podemos concluir que o DW não é um fim, mas sim um meio para que as empresas possam dispor e analisar informações históricas com vistas a melhoria dos processos e dos negócios. Um DW é construído com base em resumos retirados de múltiplos sistemas de computação normalmente utilizados há vários anos e que continuam em operação. São construídos para que tais dados possam ser armazenados e acessados de forma que não sejam limitados por tabelas e linhas estritamente relacionais. Os dados de um DW podem ser compostos por um ou mais sistemas distintos e sempre estarão separados de qualquer outro sistema transacional, ou seja, deve existir um local físico onde os dados desse sistema sejam armazenados. A Figura abaixo ilustra o esquema de emprego de um DW, mostrando que entre as fontes de dados e os aplicativos está o DW. Esquema de Emprego de um Data Warehouse A tecnologia de DW mostra-se muito interessante para empresas que possuam grandes volumes de dados gerados e acumulados durante anos, e que necessitem Base de Base de Base de Integrador Extrator Extrator Extrator Data Warehouse Consultas Consultas Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 9 recuperar estes dados de uma forma que eles possam auxiliar os administradores na tomada de decisões estratégicas de maneira rápida, eficiente e segura. Apesar de possuir uma arquitetura relativamente simples, os processos de extração, filtragem, carga e recuperação dos dados são bastante complexos, exigindo que pessoas altamente capacitadas façam parte do projeto para que os objetivos sejam atingidos no menor espaço de tempo possível e sem gastos desnecessários de recursos. Além dos benefícios relativos a qualidade e a segurança dos dados, um DW abre toda uma gama de novas possibilidades em termos de sistemas de informações estratégicas e gerenciais para a tomada da decisão. Um DW mantém a história dos negócios e torna os dados facilmente acessáveis, abrindo assim, caminho para todo um novo paradigma que visa a geração de conhecimento novo e útil para a empresa a partir da busca de padrões e correlações desconhecidas envolvendo partes das bases de dados. Esta nova área é conhecida por KDD – Knowledge Discovery in Databases. Data Mart Trata-se de uma alternativa mais modesta aos data warehouse. Menores e mais baratos, os data marts são menos abrangentes limitando-se, na maioria das vezes, ao contexto de um departamento. Pela complexidade que envolve um DW, sua construção é geralmente lenta e cara. Para equilibrar os custos e oferecer resultados em prazos mais curtos, é possível construir Data Marts, que são pequenos DW departamentais. Entre as principais vantagens da utilização de um Data Mart está a redução do tempo de implementação, em média de 120 dias cada, e o fator preço. Segundo estimativas, enquanto um Data Mart departamental custa de US$ 100 mil a US$ 1 milhão, um DW completo começa na casa dos US$ 2 milhões e leva cerca de um ano para estar consolidado. Conforme [INM97], data marts são subconjuntos de dados da empresa armazenados fisicamente em mais de um local, geralmente divididos por departamento (data marts "departamentais"). Existem diferentes alternativas de se implementar um data mart [ONE97], sendo que a proposta original é a aquela onde os Data Marts são desenvolvidos a partir de um DW central. A abaixo exemplifica esta situação. Data Marts departamentais. Nesta arquitetura, grupos de usuários acessam diretamente os Data Marts de seus respectivos departamentos. Somente aquelas análises que necessitam de uma visão global Data Warehouse Vendas Compras Estoque Data Mart Data Mart Data Mart Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 10 da empresa são realizadas sobre o DW. Os Data Marts se diferenciam do DW pelos seguintes fatores [INM97]: ¨ São personalizados: Atendem às necessidades de um departamento específico ou grupos de usuários; ¨ Menor volume de dados: Por atenderem a um único departamento, armazenam um menor volume de dados; ¨ Histórico limitado: Os Data Marts raramente mantém o mesmo período histórico que um DW, que geralmente mantém um histórico de 5 a 10 anos; ¨ Dados sumarizados: Os Data Marts geralmente não mantém os dados no mesmo nível de granularidade do DW, ou seja, os dados são, quase sempre, sumarizados quando passam do DW para os Data Marts. Um dos problemas dos Data Marts é o grande risco de desvio do modelo original, pois pode acontecer um crescimento desestruturado. Por ser muito utilizado e estar em constante aperfeiçoamento pode ocorrer a replicação das mesmas informações em vários locais o que dificulta uma futura integração de todos os Data Marts em um único DW. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 11 KDD – Knowledge Discovery A literatura até o momento, não apresenta um consenso e o que se verifica é a existência de diversas denominações distintas para caracterizar as atividades de busca por padrões (ou oportunidades de conhecimento) em conjuntos de dados brutos. A confusão é relativamente grande, e sob este guarda-chuvas encontramos nomes tais como: knowledge discovery in database, data mining, knowledge extraction, information discovery, data archaelogy, information harvesting e ainda data pattern processing. O termo KDD – Klnowledge Discovery in Databases (descoberta de conhecimento em bases de dados), foi cunhado em 1989 com o objetivo de representar todo o processo de busca e extração de conhecimento que, em seu nível mais operacional, inclui a aplicação de técnicas e algoritmos de data mining (mineração de dados) para manipular e encontrar indícios de correlação ou de implicação em grandes volumes de dados. Como mencionado, ainda não há um consenso sobre o assunto e o que se observa é a comunidade formada por estatísticos, analistas de dados e desenvolvedores de sistemas de informação gerencial adotar o termo data mining para denominar as mesmas atividades e procedimentos que a comunidade de inteligência artificial descreve como KDD. Nesta apostila preferimos adotar o termo KDD para se referir ao processo completo, que incorpora a preparação e análise prévia dos dados, o uso de conhecimento prévio, a interpretação dos resultados e, também, o data mining, que se refere às técnicas e algoritmos para a extração de padrões das bases de dados. “KDD, portanto, se caracteriza por ser um processo não trivial, que busca gerar conhecimento que seja novo e potencialmente útil para aumentar os ganhos, reduzir os custos ou melhorar o desempenho do negócio, através da procura e da identificação de padrões a partir de dados armazenados em bases muitas vezes dispersas e inexploradas.” KDD segundo este enfoque, envolve a avaliação e interpretação dos resultados visando a tomada de decisões sobre o que constitui conhecimento e o que nãoconstitui conhecimento. Ele também inclui a escolha do esquema de modelagem do problema e de codificação, amostragem, pré-processamento e projeção dos dados. Data mining, por outro lado, será considerada nesta apostila como uma etapa do KDD, consistindo de algoritmos e técnicas específicas que, dentro das limitações e de uma eficiência computacional aceitável, é capaz de produzir como resultado um modelo e a enumeração de padrões que se correlacionem com determinados fatos ou fenômenos. O processo de KDD é interativo e iterativo, envolvendo uma série de etapas onde cada uma pode requerer do usuário capacidade de análise e de tomada de decisão. As principais fases do processo são: Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 12 a) Seleção – é a etapa que consiste na análise dos dados existentes e na seleção daqueles a serem utilizados na busca por padrões e na geração de conhecimento novo. b) Pré-processamento – consiste no tratamento e na preparação dos dados para uso pelos algoritmos. Nesta etapa devemos identificar e retirar valores inválidos, inconsistentes ou redundantes. c) Transformação – consiste em aplicar, quando necessário, alguma transformação linear ou mesmo não linear nos dados, de forma a encontrar aqueles mais relevantes para o problema em estudo. Nesta etapa geralmente são aplicadas técnicas de redução de dimensionalidade e de projeção dos dados. d) Mineração – consiste na busca por padrões através da aplicação de algoritmos e técnicas computacionais específicas. e) Interpretação – consiste na análise dos resultados da mineração e na geração de conhecimento pela interpretação e utilização dos resultados em benefício do negócio. O processo de descoberta de conhecimento (KDD) é interativo e, em geral, envolve diversos laços de repetição dentro de uma mesma etapa e também entre fases, até que um resultado útil seja alcançado. Como induz a figura, KDD envolve a aplicação de diferentes tecnologias que devem ser adequadamente escolhidas dependendo do problema em questão. Data Mining, ou seja, a busca por padrões, como será mostrado a seguir, pode ser implementada por intermédio de diferentes algoritmos e, dependendo do algoritmo adotado, diferentes formas de pré-processamento, transformação e representação dos dados pode ser necessário. Data Warehouse Seleção Pré-processamento Transformação Mineração (Data Mining) Interpretação Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 13 Data Mining Data Mining - DM, ou mineração de dados, é uma das principais etapas de um processo de KDD. Consiste na construção de modelos computacionais para a descoberta automática de novos fatos e relacionamentos entre dados, a partir da aplicação repetida e muitas vezes interativa, de algoritmos de busca. A eficiência de um processo de data mining está no potencial de ganho para a empresa a ser gerado pelas informações extraídas. É importante não confundir data mining com complexas estruturas de consulta a bases de dados, onde o usuário já possua alguma hipótese e deseja apenas extrair material para manualmente verificar e confirmar a validade de sua hipótese. A idéia central em data mining é a de que seus algoritmos atuem eles próprios como mineiros e sejam capazes de automaticamente identificar a existência de padrões e relacionamentos desconhecidos, que ao serem analisados posteriormente, possam suscitar e induzir a geração de hipóteses úteis e relevantes para o usuário. “Data Mining é a concepção de modelos computacionais capazes de identificar e revelar padrões desconhecidos mas existentes entre dados pertencentes a uma ou mais bases de dados distintas – um Data Warehouse”. A distinção entre um modelo e um padrão pode ser explicada como o padrão sendo um caso específico de um modelo, ou o modelo sendo a generalização de um padrão. Exemplo: a equação 953)( 2 -+= xxxf representa uma função de segundo grau determinada e específica; já a equação cbxaxxf ++= 2)( representa a família ou o modelo das funções de segundo grau. O processo de KDD e mais especificamente o de DM representa uma forma de capitalizar o investimento necessário para o armazenamento de grandes volumes de dados, tentando, por exemplo, descobrir padrões de comportamento de clientes para fins de concessão de crédito, ou identificando estilos de ações fraudulentas em administradoras de cartão de créditos. Através da mídia, alguns exemplos clássicos se popularizaram como o da associação de produtos comprados em uma mesma cesta de supermercados (fraldas com cerveja). O grande problema nesta abordagem é que além da possibilidade de garimpar relacionamentos inúteis, o número de correlações possíveis de serem obtidas tende a ser muito grande, o que impede a análise exaustiva de cada uma. A solução é usar algoritmos e técnicas inteligentes que possam identificar e selecionar automaticamente os casos mais relevantes para cada aplicação. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 14 O processo de data mining difere das técnicas de OLAP já bastante difundidas na literatura, enquanto estas oferecem meios para consolidar os dados em vários níveis, trabalhando-os em múltiplas dimensões, a técnica de data mining busca mais do que a interpretação dos dados existentes, visa fundamentalmente inferir e generalizar possíveis fatos e correlações não percebidas nem facilmente deduzidas. Principais Objetivos de um Data Mining O termo “minerar” pressupõe o garimpo por alguma preciosidade, “minerar dados” pressupõe o garimpo entre bases de dados por algo que possa trazer algum valor ou vantagem competitiva para a empresa. Em geral este garimpo tem como objetivo descrever ou prever o comportamento futuro de algum fenômeno. Descrever tem como foco encontrar algo que faça sentido e que consiga explicar os resultados ou valores obtidos em determinados dados ou negócios. Prever, por outro lado, tem como foco antecipar o comportamento ou o valor futuro de algum fenômeno ou variável de interesse, com base no conhecimento de valores do passado. Na busca de tais objetivos diferentes estratégias podem ser utilizadas para garimpar as bases de dados disponíveis na busca por indícios que possam relacionar dados ou fatos. As principais estratégias empregadas nesta tarefa incluem a classificação, a agregação, a associação, a regressão e a predição. Em todas estratégias, o objetivo maior é o de poder generalizar o conhecimento adquirido para novas ocorrências do fenômeno ou para outros contextos ou situações parecidas com a utilizada na construção do modelo computacional. Em cada uma destas estratégias diferentes técnicas e algoritmos podem ser aplicados. Classificação é a estratégia que consiste na busca por uma função que consiga mapear (classificar) uma determinada ocorrência em uma dentre um conjunto finito e pré- definido de classes. A construção do modelo segundo esta estratégia, pressupõe o conhecimento prévio das possíveis classes e a correta classificação dos exemplos usados na modelagem. Várias são as aplicações para este tipo de abordagem, em análise de risco por exemplo, o objetivo pode ser o de classificar um potencial cliente entre as classes de excelente, bom ou mau pagador. Agregação (ou clustering) consiste na busca de similaridades entre os dados tal que permita definir um conjunto finito de classes ou categorias que os contenha e os descreva. A principal diferença entre esta abordagem e classificação é que em agregação não se tem conhecimento prévio sobre o número de classes possíveis nem a possível pertinência dos exemplos usados na modelagem. Descobrir grupos homogêneos de clientes é uma das possíveis aplicações e pode ser usada para ajudar na definição da estratégia de marketinga ser adotada. Associação por outro lado, consiste em identificar fatos que possam ser direta ou indiretamente associados. Esta estratégia é geralmente usada em aplicações onde se busca identificar itens que possam ser colocados juntos em um mesmo pacote de negociação. Por exemplo, a constatação de que vendas de cerveja e de fraldas descartáveis apresentam um comportamento ascendente às sextas-feiras pode levar à construção de uma hipótese que associe ambos os itens a um tipo especial de cliente. Associação também pode ser usada para avaliar a existência de algum tipo de relação temporal entre os itens constantes de uma base de dados. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 15 Regressão consiste na busca por uma função que represente, de forma aproximada, o comportamento apresentado pelo fenômeno em estudo. A forma mais conhecida de regressão é a linear, por exemplo, uma reta que minimiza o erro médio entre todos os valores considerados, mas também pode ser não linear. Predição envolve uma componente temporal, isto é, representa aquela classe de problemas nos quais estamos interessados em prever o comportamento ou valor futuro de uma determinada variável com base em valores anteriores desta mesma variável (mono- variável) ou em valores anteriores da variável de interesse e de outras variáveis (multi- variável). Como mencionado, várias são as técnicas que podem ser utilizadas na implementação destas estratégias, onde as principais são: Estratégia Algoritmos Classificação árvores de decisão e redes neurais Agregação métodos estatísticos e redes neurais Associação métodos estatísticos e teoria de conjuntos Regressão métodos de regressão e redes neurais Predição métodos estatísticos e redes neurais Tabela 2 – Estratégias de Data Mining Dentre as técnicas listadas podemos notar que redes neurais é a que apresenta maior abrangência, podendo ser aplicada em praticamente todas as estratégias. Aplicações para Data Mining Não há na prática limite ou área específica para aplicação dos conceitos até aqui apresentados, tudo depende da capacidade de modelar o problema para a aplicação de uma das estratégias listadas e da criatividade em analisar e utilizar os resultados alcançados. Dentre as que mais têm explorado o uso de data mining encontramos as áreas de marketing, vendas, finanças, manufatura, saúde e energia. Marketing Database marketing é um segmento emergente que vem revolucionando a forma de encarar e fazer a divulgação dos produtos de uma empresa. Quando aliado às técnicas de data mining amplia suas potencialidades abrindo novas e diferentes formas de avaliar e alavancar a relação entre o cliente e o faturamento da empresa. O esforço de marketing geralmente é elevado, nem sempre é efetivo, mas fatalmente influi no preço final de venda. Qualquer tecnologia que seja capaz de tornar mais efetivo o resultado da propaganda ou de reduzir seus custos, tem impacto direto no faturamento e no sucesso do empreendimento. A manutenção de grandes bancos de dados onde são armazenadas as transações de vendas, operações de crédito ao cliente, de compra a prazo e de pagamento, tem feito do Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 16 database marketing uma das áreas mais ricas e promissoras para aplicação dos conceitos de KDD e data mining. As principais aplicações estão na seleção de candidatos para propaganda seletiva ou na seleção de produtos a serem oferecidos num mesmo pacote. Numa campanha de marketing a possibilidade de identificar antecipadamente aqueles clientes que apresentam maiores chances de responder positivamente a abordagem reduz os custos da propaganda, o mesmo ocorre quando a cesta de produtos a ser oferecida é otimizada para cada cliente em potencial. Vendas No setor de vendas a aplicação provavelmente de maior interesse seja a de identificar produtos que possam ser colocados em uma mesma cesta ou pacote. Isto envolve a garimpagem por associação entre produtos, que pode revelar afinidades ou aversões nunca imaginadas e como conseqüência, sugerir estratégias para maximizar o lucro. A descoberta de que dois ou mais produtos têm suas vendas fortemente associadas pode, por exemplo, ser usada no sentido de não colocá-los em promoção ao mesmo tempo, de organizá-los de uma forma que facilite o cliente a encontrá-los ou de organizá- los de maneira que no caminho entre eles o cliente seja exposto a outros produtos cuja venda seja estimulada. Outra aplicação é a busca por associações que envolvam uma componente temporal, isto é, aquela que revela, por exemplo, que a compra de um produto hoje induz, com alta probabilidade, a compra de outro algum tempo depois. Tal descoberta pode sugerir uma estratégia de venda que busque efetivar a venda de ambos logo na primeira oportunidade. Finanças Em finanças as aplicações têm sido várias envolvendo associação, classificação, agregação e também predição. Análise de crédito, potencial transações fraudulentas em cartões de crédito, avaliação de risco, constituição de bolsa de ações (portfólio), previsão de transferência de numerário entre agencias bancárias, previsão de flutuações nos mercados de ações e de commodities e previsão de falências, são algumas das aplicações mais comumente encontradas. Nesta área as transações podem envolver volumes financeiros efetivamente elevados, os riscos e a concorrência também são altos e neste cenário, qualquer oportunidade de ganho é considerada e pode representar, por menor que seja a margem de ganho, um diferencial efetivo. Manufatura A complexidade dos modernos parques de produção e a pressão pela eficiência e pela qualidade tem possibilitado o uso de data mining e de automação em diversas áreas. CAD/CAM e robôs são algumas das aplicações de maior demanda na área. Saúde São basicamente duas frentes distintas de trabalho nesta área: administração e diagnóstico. Na administração os sistemas lidam com os serviços oferecidos aos pacientes, com os seguros, com as ações potencialmente fraudulentas, etc. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 17 Em termos de diagnóstico o emprego de data mining visa o desenvolvimento de sistemas capazes de realizar diagnósticos (classificações) automaticamente, com base em dados obtidos de exames laboratoriais. Sistemas de diagnóstico apresentam a vantagem de atender rapidamente grandes volumes de pacientes, o que facilita a ação pública em epidemias ou campanhas sanitárias. Energia Previsão de consumo e previsão de falhas em sistemas de transmissão ou de distribuição são as duas aplicações mais comuns, embora muitas outras tenham sido pesquisadas e difundidas na literatura. Conforme visto na tabela 2, a tecnologia de maior emprego atualmente em data mining é a de redes neurais, assunto ao qual dedicamos o próximo capítulo. Nele tentaremos proporcionar ao leitor uma visão geral sobre o paradigma das redes neurais e capacitá-lo a utilizá-las na resolução de alguns problemas reais. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 18 Redes Neurais Como mencionado na sessão anterior, redes neurais têm sido cada vez mais intensamente utilizadas em aplicações de data mining. Este fato deve-se não só a possibilidade de aplicação do paradigma em praticamente todas as diferentes estratégias de data mining mas também pela relativa simplicidade de uso das redes neurais quando comparadas às demais tecnologias. Existem várias ferramentas neurais oferecidas comercialmente, que são relativamente fáceis de serem usadas e que permitem o usuário final aplicar redes neurais a diversos problemas reais. O PRW – Pattern Recognition Workbench é uma destas ferramentas, que descrevemos na próximasessão e que será usada como suporte aos exercícios práticos preparados para este curso. O Paradigma do modelo neural Redes Neurais são sistemas computacionais formados pela integração de inúmeros elementos de processamento (EP), funcionalmente muito simples, altamente interconectados e trabalhando maciçamente em paralelo. Originalmente concebidas com base no estudo do cérebro humano, redes neurais são radicalmente diferentes de todos os demais modelos computacionais. O paradigma neural não faz uso dos conceitos que até então caracterizam os demais algoritmos e sistemas computacionais. Uma rede neural pode ser integralmente implementada em Hardware, os chips neurais são objeto de intenso estudo em grandes centros de pesquisa e muito em breve serão realidade em muitas aplicações e produtos comerciais. No Japão é comum encontrar-se hoje eletrodomésticos sendo lançados com recursos de autocontrole, por eles chamados neuro-fuzzy (Sistemas híbridos combinando redes neurais e lógica nebulosa - fuzzy). Numa rede neural não se tem a idéia de programa, onde o programador introduz e codifica a estratégia de solução do problema, também não se tem a idéia de um conhecimento explicitamente armazenado que conduza a busca durante o processo de resolução do problema. A rede neural é dinâmica, não possui memória, “pelo menos no estilo convencional que conhecemos”, não acessa nem possui arquivos de dados e não é programável. Os modelos neurais foram concebidos com base na estrutura do sistema nervoso, mais especificamente na estrutura do cérebro humano e, assim, sua principal característica está na capacidade de aprender com base na exposição a exemplos. A construção de uma rede neural se constitui portanto, na configuração da sua arquitetura interna (uma rede interligada de neurônios) e no treinamento desta rede com base em exemplos, até que ela própria consiga aprender como resolver o problema. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 19 Uma rede neural é portanto, uma abstração computacional que busca emular o funcionamento do sistema nervoso do ser humano. Nosso sistema nervoso é uma rede por onde fluem sinais eletroquímicos e suas principais partes são: o cérebro, a medula espinhal e os nervos. O cérebro e a medula espinhal formam o sistema nervoso central (SNC) — centro de controle e coordenação do corpo. Bilhões de neurônios, a maioria agrupados em nervos, formam o sistema nervoso periférico, transmitindo impulsos nervosos entre o SNC e as demais regiões do corpo. Cada neurônio possui três partes: o corpo celular — composto por um núcleo e um citoplasma, onde os estímulos recebidos são integrados e onde a maioria do metabolismo celular é realizado, o axônio — que é encarregado da transmissão dos impulsos gerados pela célula para outros neurônios e os dendritos — que recebem os impulsos provenientes dos axônios de outros neurônios e os levam ao corpo celular para integração, reiniciando assim, um novo ciclo. Pesquisadores estimam a existência de aproximadamente 100 bilhões de neurônios no córtex cerebral do ser humano. Cada neurônio podendo tratar até 1000 estímulos simultâneos de entrada, o que traduz na capacidade do cérebro processar até 100 trilhões de estímulos simultâneos. Cada neurônio pode disparar até 100 vezes por segundo e, assim, o cérebro humano apresenta uma singela capacidade de processar até 10 000 trilhões de estímulos/seg. Mais veloz que os maiores supercomputadores até hoje construídos pelo homem. Esta imensa capacidade de processamento torna-se ainda mais expressiva ao se constatar que o cérebro não pesa mais que 1.5 Kg e ocupa aproximadamente 300 cm3 (menos de 1/2 litro). Um Breve Histórico As primeiras pesquisas para o desenvolvimento de computadores baseados no comportamento das células nervosas (os neurônios) datam da década de 40 [Minsk88]. Em 1943 Wax Ten McCulloch e Walter Pitts propõem um modelo matemático (artificial) para o neurônio biológico. O campo de atuação estava limitado ao entendimento do funcionamento do cérebro para aplicações em medicina e psicologia [McCulloch43]. Em 1947 publicaram um segundo estudo intitulado “How we know universal”. Dois anos depois, em 1949, Donald Hebb, observando o que ocorria nas sinapses dos neurônios, desenvolveu a “Teoria do Aprendizado Neural” a qual determina que quanto mais correlacionadas estiverem as saídas de dois neurônios em cascata, maior deverá ser o nível ou a intensidade da ligação entre eles (sinapse). No período entre 1951 e 1958, pouco se evoluiu no campo das redes neurais. Porém em 1959, dois grandes trabalhos foram apresentados: Bernard Widrow desenvolveu o elemento linear adaptativo chamado ADALINE (“ADAptative LINear Element”), capaz de auto ajustar-se de forma a minimizar o erro entre a resposta desejada e a resposta gerada pelo sistema. A primeira aplicação prática de um sistema de computação neural foi a utilização do ADALINE para o desenvolvimento de filtros digitais adaptativos com a função de eliminar ecos em linhas telefônicas. Ainda em 1959, paralelamente a Widrow, Franck Rosemblatt concluia o projeto do “Perceptron”, iniciado em 1958, que resultou num livro publicado em 1962. O fato causou excitação no meio científico da época e expectativas muito acima das possibilidades foram espalhadas e divulgadas no seio da sociedade — “O cérebro humano finalmente chegava aos computadores”. O “Perceptron” de Rosemblatt consistia em um sistema de classificação de padrões, utilizando apenas uma camada de neurônios. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 20 A publicação de um livro intitulado “Perceptrons” feita por Marvin Minsk — conhecido e renomado pesquisador da área — e Seymour Papert no ano de 1969, criticando o trabalho de Rosemblat, provocou uma parada e um grande atraso no desenvolvimento das Redes Neurais Artificiais (RNAs). Neste livro os autores provaram que o “Perceptron” apresentava sérias restrições conceituais, sendo capaz apenas de solucionar problemas dentro do universo dos linearmente separáveis. O reaquecimento das pesquisas em redes neurais se deu em 1982 quando John Hopfield [Hopfield82] concebeu um modelo de rede adaptativa para memórias associativas e introduziu o conceito de função de energia às redes, associando a convergência da rede à estabilidade dessa função em seu mínimo global. O fator definitivo de reaquecimento da área foi a publicação feita por James McClelland e David Rumelhart em 1986 [Zurada98] criando as redes MLP – Multi Layer Perceptron e o algoritmo de treinamento conhecido por Backpropagation. As redes neurais hoje existentes ainda sofrem de algumas restrições, principalmente aquelas de cunho tecnológico, uma vez que simuladas em software demandam uma capacidade computacional ainda não disponível nos computadores atuais. Mesmo com estas restrições, a área de redes neurais tem demonstrado sua potencialidade em diversas aplicações, superando expectativas e gerando resultados até então não alcançados com qualquer outra técnica, seja computacional ou convencional. Muito ainda tem que ser feito até que possamos ser capazes de criar o computador com reais condições de simular a estrutura cerebral e o raciocínio do ser humano, uma vez que mesmo animais inferiores como a minhoca e a sanguessuga, são capazes de apresentar reações que o mais rápido dos supercomputadores hoje existente é incapaz de fazer. As redes neurais, apesar das limitações tecnológicas, são vistas hoje como a estratégia computacional com maior possibilidade de abrir novos caminhos e áreas de aplicação para a informática. Alguns Conceitos Básicos As redes neurais foram concebidas de forma a emular em um computador, a estrutura e a funcionalidade do cérebro. Para isto os pesquisadores tiveram que buscar alternativas para modelar o neurônio biológico, tanto nasua estrutura como na sua funcionalidade, na conectividade, na interatividade dos neurônios e, principalmente, na dinâmica operacional do sistema biológico. Este tipo de rede necessita de arquiteturas paralelas, de algoritmos adequados na fase de aprendizado e alta capacidade de processamento. Não necessitam de modelos precisos da realidade física do problema e possuem alta capacidade de adaptação. Suas principais vantagens são: tolerância a falhas; alta capacidade de adaptação; capacidade de resolver problemas práticos sem a necessidade da definição de listas, de regras ou de modelos precisos. Na sua tarefa de emular a estrutura e o funcionamento básico do cérebro, as redes neurais fazem uso de um modelo abstrato (matemático) do neurônio cerebral. No modelo de neurônio artificial, a intensidade das ligações entre neurônios (sinapses) são emuladas através de pesos, que são ajustáveis durante o processo de evolução do treinamento e aprendizado da rede. O corpo celular é emulado pela composição de duas funções, chamadas geralmente na literatura de funções de ativação e de propagação. Estas funções realizam o mapeamento, ou seja a transferência dos sinais de entrada em um único sinal Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 21 de saída. Este sinal de saída é então, propagado para os neurônios seguintes da rede, como no modelo biológico. O Neurônio Artificial O modelo matemático de um neurônio artificial foi primeiramente idealizado pelos pesquisadores W. S. McCulloch e W. H. Pitts [McCulloch43] no ano de 1943. Compõe-se basicamente de conexões emulando os dendritos, pesos emulando as sinapses, uma função de mapeamento emulando o corpo celular, e uma saída emulando o axônio, conforme exemplificado na figura abaixo. Função de Ativação Função de Propagação w1 w2 w3 x1 x2 x3 y ( ) ( )y f X W P A X W= = ·, , A função de transferência geralmente se compõe de duas outras funções, a de ativação e a de propagação. A função de ativação é aplicada sobre os sinais de entrada e gera uma saída intermediária, normalmente chamada de net, que estabelece o estado de ativação do neurônio e sua capacidade de disparar algum sinal de excitação ou de inibição para os neurônios à sua frente. A função de propagação é aplicada sobre o estado de ativação — net — e gera o sinal de saída do neurônio. Os pesos, na maioria das arquiteturas de rede hoje propostas, são ajustáveis e representam a memória e o conhecimento usado na solução do problema. A função de ativação a(.) processa os estímulos ponderados pelos respectivos pesos (sinapses) e mede o estado de ativação para o neurônio. A função de propagação p(.) se encarrega de propagar o estado de ativação como estímulo para outros neurônios. Dentre as funções de ativação mais utilizadas temos: · Linear (utilizada em 99% dos casos) Modelo matemático do neurônio artificial Mapeamento x1 x2 . . xn Saída y Entradas Corpo Celular Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 22 a x w w x w xi T ij j j n ( , )= = = å 1 (1.1) · Esférica a x w x wi j j n ij( , ) ( )= - - = år 2 1 2 (1.2) · Mahalanobis )()(),( 1 i T ii wxwxwxa -W-= - (1.3) W = X X T (1.4) · Polinomial a x w xi j w j n ij( , )= = å 1 (1.5) A função de propagação p(.) também conhecida como limiar lógico — “threshold” — é quem define e envia para fora do neurônio o valor do estímulo a ser passado adiante, para os próximos neurônios da rede. Dentre as funções de propagação as mais encontradas na literatura estão na tabela a seguir. A restrição, no caso das funções não lineares, é que sejam limitadas, monotônicas e continuamente deriváveis em todos os seus pontos. Função Equação com Polarização Sem polarização Com polarização Degrau y x b x b= > - < - ì í î 1 0 , , +1 0 x +1 0 x-b Degrau Simétric o y = > - < - ì í î 1 0 , , x b x b +1 0 x -1 +1 0 x -b -1 Linear y = x + b +1 0 x +1 +b 0 x -b -b Logística Sigmoid al y = + - + 1 1 e n b( ) +1 0 x +1 0 x -b Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 23 Tangente Sigmoid al y = ( ) ( ) ( ) ( )= - + + - + + - + e e e e x b x b x b x b +1 0 x -1 +1 0 x -1 -b · Função degrau — limita a saída do neurônio a apenas dois valores (binário: 0 ou 1, ou bipolar: –1 ou 1). Normalmente é utilizada para criar neurônios que tomem decisões binárias, como nos classificadores. É limitada (“bounded”), porém não é derivável; · Função linear —não é limitada. Neurônios com esta função de propagação podem ser utilizados como aproximadores lineares; · Função sigmoidal (logística) — permite que a entrada assuma qualquer valor no intervalo (- ¥ e + ¥) e os comprime para o intervalo [0, +1]. É a função geralmente adotada em redes neurais em virtude de ser contínua, monotônica, não linear e facilmente diferenciável em qualquer ponto; · Função tangente hiperbólica — mapeia a entrada dos neurônios no intervalo [-1, +1]. Possui as mesmas características e emprego da função logística sigmoidal, possibilitando que as saídas sejam simétricas. O Modelo Neural A concepção básica dos modelos neurais está centrada na figura do neurônio. A potencialidade do modelo para solução de problemas complexos se baseia no paralelismo, na capacidade de processamento advinda da integração, na não linearidade proporcionada pela atividade operacional de cada elemento da rede e pela capacidade da mesma de buscar a solução através de um método próprio de treinamento e auto- aprendizado. Diversos são os modelos de rede propostos na literatura, cada qual advindo de uma linha de pesquisa diferente e visando um melhor desempenho na solução de um tipo específico de problema. Basicamente, os modelos neurais podem ser classificados segundo: a) a estratégia de treinamento: em supervisionados (quando a rede dispõe de um instrutor apontando erros e acertos) ou não-supervisionados (caso contrário). b) a forma de treinamento: em incremental (quando o conhecimento da rede se ajusta após a apresentação de cada padrão de entrada (estímulo)) ou lote (onde o ajuste do conhecimento só é realizado após “visão” de todos os estímulos), e c) a forma de operação: em unidirecional (os sinais internos se propagam apenas na direção entrada/saída - feedforward) e recorrente (quando há realimentação - recurrent). Estrutura de uma Rede Neural Infelizmente não existe qualquer método ou procedimento sistemático e determinado para a configuração e especificação dos parâmetros envolvidos em uma rede neural. O número de parâmetros e detalhes de projeto é grande e o maior ou menor Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 24 sucesso na especificação dos mesmos depende da experiência e do sentimento do projetista. Tudo começa pela escolha adequada da representação dos dados a serem usados na caracterização do problema e no treinamento da rede. A capacidade de resolução do problema, o desempenho do treinamento e a fidelidade dos resultados estão intimamente ligados à qualidade da representação adotada. A rede é organizada geralmente em camadas e o padrão de conexão mais freqüentemente utilizado é o de conexão completa inter-camadas (full connected), apenas na direção entrada-saída (feedforward), e nenhuma conexão intra-camada. Isto é, um neurônio situado em uma determinada camada tem sua saída conectada a todos osneurônios da camada seguinte (a sua direita) e a nenhum outro neurônio de qualquer outra camada, seja ela anterior, posterior ou a sua própria. A figura abaixo exemplifica esta topologia. Estrutura de uma Rede Neural E n t r a d a s S a í d a s Parâmetros de Projeto:Parâmetros de Projeto: • nr. de camadas • nr. de neurônios / camada • topologia das interconexões • função de transferência • representação dos dados • dinâmica de aprendizado Aprendizado Cabe ressaltar que o aumento do número de camadas acarreta o aumento da complexidade e do tempo de processamento da rede. Aumentando o número de neurônios por camada, acarreta o aumento do grau de liberdade da função de transferência, e quanto maior a quantidade de variáveis livres, menor será a capacidade de generalização da rede. Logo, o objetivo de projeto deve ser o de resolver o problema com a menor topologia possível. Dois principais tipos de estrutura compõem o universo de modelos de redes neurais: as do tipo unidirecional (feedforward) e as do tipo recorrente (recurrent). · Unidirecional - nesta topologia todas as conexões entre neurônios diferentes — intercamada — obedecem necessariamente a direção entrada Þ saída, não havendo conexões entre neurônios de uma mesma camada. Esta estrutura é totalmente conectada “fully connected”, uma vez que todas as saídas dos neurônios de uma camada são conectadas com as entradas de todos os neurônios da camada seguinte (imediatamente a direita). A figura abaixo apresenta uma estrutura unidirecional com quatro camadas: uma de entrada, duas escondidas e uma de saída. Cada camada possuindo respectivamente 4, 2, 3 e 1 neurônios. Os neurônios da camada de entrada diferem de todos os demais, operando apenas como curto ou ponto de ligação, uma vez que desempenham a função de conectar o mundo exterior com o mundo interior da rede neural. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 25 w X Y · Recorrente – nesta topologia as redes possuem realimentação, onde um neurônio pode ser direta ou indiretamente retroalimentado pela sua saída. Cada camada pode conter conexões entre os elementos de processamento da mesma camada (estímulos laterais), das camadas anteriores e das camadas posteriores. Na topologia recorrente não existe um sentido único para o fluxo dos sinais entre neurônios ou entre camadas. A figura a seguir apresenta uma estrutura recorrente de 1 camada. Projeto de um Sistema Neural O Projeto de um sistema neural consiste de diversas etapas que devem ser executadas em seqüência, de forma interativa e, não raramente, com diversos ciclos de repetição. A construção do sistema começa pela identificação e coleta dos dados históricos, que serão utilizados para treinar a rede e também para avaliar seu desempenho. O passo seguinte é a preparação e adequação dos dados ao formato requerido pela rede neural. O projetista agora deve escolher o modelo neural a ser adotado e definir a topologia da rede. Depois vem a etapa do treinamento e, finalmente, a da avaliação dos resultados. Coleta dos Dados Preparação e Adequação Escolha do modelo Definição da topologia e Treinamento Avaliação dos Resultados PP rr ee PP oo ss Pré-processamento do dados Pós-processamento do dados Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 26 Treinamento de uma Rede Neural É na fase de treinamento que a rede neural aprende o problema e tenta resolvê-lo auto ajustando seus parâmetros internos. Uma vez que a rede tenha aprendido, isto é, ela tenha chegado a uma condição de erro considerada satisfatória, seus parâmetros são congelados e ela, a partir de então, está pronta para ser usada com dados da situação corrente. Existem várias arquiteturas e várias técnicas de treinamento de rede neural propostas na literatura. Cada uma com características vantajosas e desvantajosas, dependendo do problema e da aplicação específica a que se destinam. Na etapa do treinamento é escolhido o algoritmo de aprendizado juntamente com os parâmetros de aprendizado – taxa de aprendizado (learning rate), momento (momemtum), condição de parada e dinâmica de treinamento. O aprendizado é o processo pelo qual a rede adapta seus parâmetros (em geral os pesos das conexões entre os neurônios) de forma a satisfazer os requisitos de mapeamento estabelecidos. A dinâmica de treinamento representa a freqüência com que estes parâmetros (pesos) são atualizados, ela pode ser: · do tipo Batch - os parâmetros são ajustados somente ao final de cada ciclo “epoch” — processamento de todo o conjunto de observações —, ou seja, os parâmetros da rede são ajustados somente ao final de cada ciclo. Nesta dinâmica, o treinamento é menos influenciado pela ordem de apresentação dos padrões, é menos suscetível à oscilações, porém a velocidade de aprendizado (convergência) geralmente é mais baixa. · Do tipo Incremental - os parâmetros são ajustados ao final do processamento de cada observação (padrão), ou seja os pesos da rede são ajustados ao final do processamento de cada observação. Nesta dinâmica, a ordem da apresentação dos padrões é importante para a velocidade de aprendizado da rede e, em alguns casos, deve- se reorganizar esta ordem, de forma a acelerar o treinamento. A taxa de aprendizado é um valor positivo, geralmente menor do que 1.0, que regula a intensidade com que as atualizações dos parâmetros (pesos) serão efetuadas. Taxas muito baixas, próximas de zero, tendem a fazer com que o aprendizado seja bastante lento, porém taxas muito altas, próximas de 1.0, podem fazer com que a rede oscile, como se estivesse aprendendo e desaprendendo, e as vezes nem consiga chegar a um patamar aceitável de aprendizado. O valor da taxa de aprendizado não precisa permanecer fixo durante todo o treinamento. Em algumas implementações ela pode ser adaptativa e controlada pela própria rede. A taxa de momento é um parâmetro de uso opcional, de valor também positivo e menor do que 1.0, cuja utilização visa imprimir uma dinâmica no treinamento tal que, eventualmente, possibilite o algoritmo livrar-se de mínimos locais durante o processo de busca pelo mínimo global (ponto de menor erro). Fazendo um paralelo com o mundo real, a taxa de momento aplica um fator de inércia no processo de evolução do treinamento, que se mantém acelerando enquanto o permanecer diminuindo e, assim, eventualmente faz com que o processo adquira velocidade suficiente para livrar-se de pequenos buracos (mínimos locais) que possam ser encontrados pelo caminho. A condição de parada é geralmente estipulada com base na ocorrência de dois eventos: erro mínimo e número de ciclos. A parada pelo erro mínimo ocorre se e quando o algoritmo de treinamento levar a rede a convergir para um erro menor que o mínimo estipulado como critério de término. A parada pelo número de ciclos de treinamento encerra o processo independentemente do nível de aprendizado alcançado pela rede. A Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 27 parada por este critério deve sempre ser utilizada em conjunto com qualquer outro, com vistas a evitar processos de treino intermináveis. Aprendizado Redes neurais “aprendem” por experiência, como uma criança que aprende a andar, falar, associar objetos e nomes, através de exemplos ou tentativa e erro. Assim, após a escolha de uma representação para os dados do problema, deve-se montar um conjunto de treinamento. Este conjunto é gerado a partir de dados históricos, ouseja, a partir de experiências e fatos ocorridos no passado. O aprendizado geralmente se constitui no ajuste do conjunto de pesos de modo a que a rede consiga executar uma tarefa específica. O aprendizado pode ser realizado, basicamente, de duas formas distintas: · aprendizado supervisionado - é aquele que utiliza um conjunto de pares (entrada - saída), em que para cada padrão de entrada é especificado um padrão de saída desejado (resposta desejada). O aprendizado ocorre no momento em que a saída gerada pela rede, a partir dos cálculos efetuados com o padrão de entrada e os pesos correntes, for diferente da saída desejada e o algoritmo de treinamento, segundo alguns critérios, ajusta os pesos da rede de forma a reduzir o erro. Essa dinâmica é repetida para todo conjunto de dados (entradas e saídas) inúmeras vezes, até que a taxa atinja uma faixa considerada satisfatória. O processo básico do aprendizado supervisionado pode ser resumido pelos seguintes passos (para um treinamento incremental): Passo 1: Escolha inicial dos pesos, em geral esses valores são pequenos e escolhidos aleatoriamente; Passo 2: Apresentação de uma nova entrada cuja saída correspondente é conhecida; Passo 3: Cálculo da saída gerada pela rede; Passo 4: Cálculo do erro (saída desejada x saída gerada); Passo 5: Verificação do erro e do número de ciclos, se satisfatório encerra o treinamento. Passo 6: Atualização do ponteiro para a próxima observação a ser apresentada a rede, caso seja a última observação do conjunto de treinamento, reinicializa o ponteiro; Passo 7: Ajuste dos pesos; Passo 8: Retorno ao passo 2; · aprendizado não-supervisionado - este tipo de aprendizado também é conhecido como aprendizado auto-supervisionado, e classifica os padrões similares sem utilizar pares (entrada - saída), isto é, no treinamento da rede são usados apenas valores de entrada. A rede trabalha essas entradas e se organiza de modo a classificá-las mediante algum critério de semelhança. Esse tipo de rede utiliza os neurônios como classificadores, e os dados de entrada como elementos de classificação. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 28 PRW – Uma Ferramenta para Data Mining Trata-se de um ambiente para concepção, construção e avaliação de modelos computacionais para data mining. A ferramenta oito diferentes algoritmos do tipo supervisionado e um do tipo não supervisionado. Dentre os algoritmos supervisionados encontram-se dois modelos neurais, um MLP – Multi Layer Perceptron, treinado com o algoritmo conhecido como backpropagation, e outro RBF – Radial Basis Function, que usa gaussianas para fazerem o papel de funções de propagação. Todos os algoritmos podem ser utilizados para realizar tanto classificação como estimação (previsão). Nesta apostila nos restringimos apresentar um tutorial apenas sobre o modelo neural MLP com vista à concepção e uso em aplicações tanto de classificação como de predição. Como obter uma cópia à Página do produto na Internet: http://www.unica-usa.com/prwdemo.htm à Kit de demonstração: na página encontra-se disponível um kit de demonstração para “download” e uma chave para registro com validade para 30 dias à Procedimentos de instalação: o Baixe o executável – prwdem32.exe o A partir do Windows, execute o programa o Forneça a chave de registro encontrada na Página Tutorial On-Line à O PRW possui um tutorial simples mas que fornece ao usuário algumas informações sobre a funcionalidade e conceitos empregados no aplicativo. Para usar o tutorial, o usuário de iniciar o aplicativo e escolher a opção “tutorial” dentre as duas disponíveis. à O tutorial se divide em duas partes: o Part I: A Simple Classification Problem o Part II: PRW Basics Componentes do PRW à Uma planilha de dados (tipo Excel) – para onde devemos importar a matriz de dados a ser utilizada na construção do modelo Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 29 à Um gerenciador de experimentos – onde escolhemos o tipo de aplicação - classificação ou aproximação de função; e o tipo de experimento – treinamento, teste, treinamento e teste ou validação. Guia para Utilização Como Carregar (importar) a base de dados (os procedimentos a seguir consideram que sua base esteja em uma planilha Excel) o Abrir a planilha Excel com os dados do problema; o Na opção “Edit” da barra de ferramentas do PRW, escolha o comando “create DDE links...”; o Na primeira janela (Service) aparecerão algumas opções de origem para os dados, escolha a linha “Excel”; o Neste instante aparecerão na janela do meio (Service Topics), as planilhas existentes no arquivo Excel, escolha aquela que corresponder aos dados desejados; o Na janela da direita (Topic items) deve-se fornecer as linhas e colunas que se deseja importar da planilha Excel. O formato depende da versão do Excel, se inglês deve ser da forma: rxcy:rzcw (from row x column y to row z column w), se em português, da forma: lxcy:lzcw (da linha x coluna y até a linha z coluna w); Como criar um experimento o Use a janela ExpMgr1 – Setup Screen, já aberta no canto direito do vídeo o Escolha e forneça um nome para o experimento o Defina a atividade – se classificação ou estimação de função o Defina a opção de uso – treinamento / teste / treinamento e teste / validação (selecione a opção treinamento e teste). o Siga para a próxima etapa teclando “Next” Como selecionar as variáveis de entrada e de saída o Na coluna central spreadsheet variables aparece uma lista com todas as variáveis (colunas) da planilha de dados. Com o cursor marque as variáveis de entrada e, usando a seta da esquerda, mova-as para a coluna apropriada (esquerda). Faça o mesmo com as variáveis de saída, movendo-as para a coluna da direita. o Em caso de dúvida, recorra ao help. o Siga para o próximo passo do experimento. Como selecionar o conjunto para treinamento e para teste (os conjuntos devem ser disjuntos) o Escolha a quantidade de variáveis para os conjuntos de treinamento (70% é um bom numero) e teste (30%). Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 30 o Escolha o método de seleção – aleatório para o conjunto de treinamento e o restante para teste é uma boa opção. o Se o problema é de classificação, você pode dar uma olhada na distribuição final das classes para ambos os conjuntos – treinamento e teste (show class count) o Em caso de dúvida, recorra ao help. o Siga para o próximo passo do experimento. Como monitorar os experimentos o Você se encontra agora na janela Control Experiments Screen o É a janela onde todos os modelos que você criar e experimentos que realizar estarão presentes e serão executados. Possui quatro regiões distintas – § na região superior esquerda aparece um retângulo com a indicação dos diferentes modelos (protótipos) criados. § na parte superior direita aparecem informações sobre a execução de um experimento qualquer. § na parte inferior esquerda aparece uma barra de comandos com as opções de criar um novo modelo (o primeiro já está automaticamente criado para você), abrir um modelo existente, copiar um modelo existente, eliminar um modelo ou ativar um dos modelos existentes para ser usado no próximo experimento. § na região inferior direita aparece o estado do experimento selecionado (para selecionar um modelo basta clicar sobre a figura do mesmo). Você pode executar, suspender a execução temporariamente, ou parar a execução. Como configurar um modelo o clique duas vezes sobre a figura do modelo desejado na região superior esquerda da janela de monitoramento dos experimentos. Uma outra janela (Experiment # Configuration) vai se abrir — ela vai permitir que você configure seu modelo. o esta janela apresenta três abas: Algorithm,Experiment Parameters e Reporting. o na aba Algorithm você definira o algoritmo a ser implementado. Observe que a direita aparece uma breve explicação sobre cada algoritmo que selecionar. o dentre os algoritmos existentes, aquele de interesse para este curso é o da rede neural do tipo MLP — Multi Layer Perceptron, treinada com o algoritmo backpropagation. o escolha agora a aba Experiment Parameters, observe que duas opções já estão selecionadas por default— normalização das entradas e configuração do algoritmo de treinamento, são as que você deve usar. o para configurar o algoritmo de treinamento, clique duas vezes sobre a opção configure algoritm na janela que está aberta. Na mesma janela, à direita, vai aparecer um conjunto de opções sob o título Back Propagation / MLP Parameters. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 31 Como especificar os parâmetros do algoritmo de treinamento o A meia janela Back Propagation / MLP Parameters é subdividida em quatro quadrantes – no canto superior esquerdo você define o número de camadas internas (hidden layers) que deseja para o seu modelo. o no canto inferior esquerdo você define o número de elementos de processamento (neurônios) que deseja colocar em cada camada escondida escolhida anteriormente, observe que o número de neurônios das camadas de entrada e de saída já se encontra definido. Isto ocorre em função do número de variáveis que você definiu no início do experimento. Você também pode definir se as variáveis de saída devem ou não ser normalizadas. Nos caso de aproximação de funções a saída normalizada é o default. Já nos casos de classificação de padrões, o software automaticamente aloca um número de saídas para a rede igual ao número de variáveis de saída do problema. o no canto superior direito você define a taxa de aprendizado, a taxa de momento e a taxa de ajuste dos pesos. A escolha de uma taxa de aprendizado e de momento pode ser crítica para a capacidade de aprendizado (convergência) da rede. Inicie a primeira com um valor relativamente alto (em torno de 0.5), e a segunda com um valor baixo (em torno de 0.2 ou 0.1). Durante o treinamento você pode parar o algoritmo (pause), alterar estes valores e continuar o treino. A taxa de ajuste dos pesos pode ser a cada padrão (per pattern) ou a cada conjunto completo de padrões (per epoch). O treino per epoch é menos suscetível a oscilações e por isto o mais indicado nos casos dos exercícios usados neste curso. o no canto inferior direito você define as condições de parada do treinamento que podem ser: por tempo; por número de ciclos; por percentual do erro ou pelo valor absoluto do erro médio quadrático – RMS. O mais indicado é usar um critério de parada combinando por exemplo, o número de ciclos e o erro médio quadrático (nos casos de aproximação de funções) ou percentual do erro (nos casos de classificação de padrões). Outra opção oferecida nesta região é o critério da escolha pelo melhor modelo verificado a cada número de ciclos que você determinar (deixe esta opção inicialmente desligada). Como especificar os parâmetros de configuração dos relatórios o você deve ir para a opção Reporting da janela Experiment # Configuration o observe que você pode definir uma variedade de diferentes opções para acompanhamento do treinamento e para verificação dos resultados do teste. o escolha a opção detailed report que ela selecionará automaticamente um conjunto de opções que melhor lhe atenderá em função do tipo de experimento que está realizando (classificação ou estimação). o Clique agora em Apply e a seguir em OK, voltando para a janela de monitoramento do experimento. Como executar um experimento (treinamento da rede) o uma vez que tenha selecionado todos os parâmetros, você está pronto para iniciar o treinamento da rede clicando no botão start. o ao iniciar o treinamento, no quadrante dos modelos, ao lado do modelo que estiver usando (selecionado), aparecerá um retângulo com o formato de um Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 32 relatório. Clique duas vezes nesta figura e uma outra janela, de acompanhamento do treino, se abrirá. o esta janela apresenta uma barra de comandos com as opções: report, T, auto, manual, options e help. § Report – permite você escolher o tipo de relatório que deseja visualizar, dentre os tipos que tiver previamente selecionado para serem gerados. § T – permite você mudar a apresentação da evolução do treinamento do modo numérico para o modo gráfico. § Auto – retorna a apresentação para o modo numérico. § Options – oferece funções para você definir formas de visualizar o display gráfico. o concluído o treinamento você deve verificar os relatórios com o desempenho alcançado. Como verificar o desempenho do modelo o na opção report você pode avaliar o resultado do teste (test summary) através da matriz de confusão (no caso de classificação) ou do padrão das saídas (em qualquer dos casos – classificação ou estimação). o no relatório experiment summary você encontra a opção summary for this report, que lhe permite realizar a análise de sensibilidade sobre as variáveis de entrada. Esta análise possibilita identificar as variáveis mais relevantes para o problema. § uma vez que você opte por realizar a redução de dimensionalidade do problema, será necessário treinar a rede novamente com o novo conjunto de variáveis de entrada e avaliar o desempenho com o modelo original, completo. Como preparar a rede para operação – configurando uma função o a rede, após treinada, deve ser transformada em uma função para que possa ser aplicada a outros dados: § na barra de ferramentas tecle na opção build — uma janela se abrirá com a opção default já estabelecida — build function based on an experiment, tecle ok e siga adiante. § na nova janela que se abre, você precisa apenas definir o nome que deseja dar para identificar a rede (função) que acabou de implementar, por exemplo, “mlp_teste1”. Como usar a rede sobre novos dados o você precisa abrir uma nova planilha de dados e estabeleçer os links com a planilha do Excel que deseja carregar ou importar os dados, caso já estejam no formato do PRW (.dat). o escolha agora uma coluna vazia na nova planilha, clique no cabeçalho da coluna, por exemplo “V33”, no espaço para comandos situado na barra de ferramentas do PRW, aparecerá o rótulo da coluna, no caso v33. Escreva a partir deste rótulo o comando para utilizar a função criada na fase anterior, no caso Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 33 deste exemplo, o comando ficaria: v33=mlp_teste1(v2:v23). Os argumentos dentro dos parênteses representam as colunas onde estão os dados de entrada. o tecle entre e observe que, a partir da coluna especificada – v33, serão acrescentadas as saídas correspondentes para as novas entradas fornecidas. Como Salvar um Experimento o use a opção file da barra de ferramentas e em seguida a opção save ou save as. Como sair do PRW o use a opção file da barra de ferramentas e em seguida a opção exit, salvando ou não o arquivo com os experimentos já realizados. Redes Neurais – Uma Ferramenta para KDD e Data Mining Antonio Carlos Gay Thomé Inteligência Computacional 34 Estudo de Casos Neste capítulo são apresentados alguns casos para estudo e aplicação de redes neurais. Todos os casos são fictícios porém alguns são construídos a partir de dados reais. Caso 1 – Planejamento de Vendas O CASO DA HOLE-IN-ONE Ò (*) Contribuição de Antonio Juarez Alencar Quem está sintonizado com o que anda acontecendo pelo mundo sabe que o processo de globalização por que passa a economia mundial tende a colocar as organizações sob enorme pressão para se tornarem competitivas. O aumento da qualidade
Compartilhar