INE 5644 – Mineração de Dados Aula 5 – Classificação (Parte 4) Professor: José Leomar Todesco Abordagem Biológica 2 Raciocínio Artificial 3 Raciocínio Artificial 4 Rede Neural Uma rede neural é um processador distribuído massivamente em paralelo que tem a propensão natural para armazenar conhecimentos experimentais e torná-los disponíveis para uso. Parece-se com a mente em dois aspectos: 1. Conhecimento é adquirido pela rede através do processo de aprendizagem. 2. Os pesos das conexões entre neurônios, conhecido como sinapses, são usados para armazenar o conhecimento. 5 A Cibernética O movimento cibernético começou durante a Segunda Guerra Mundial e compreendia cientistas como: Norbert Wiener, John Von Neumann, Claude Shannon e Warren McCulloch o seu trabalho estava ligado á pesquisa militar que lidava com problemas de Norbert Wierner – (1894 – 1964) Claude Shannon – (1916 –*) rastreamento e de abate de aviões . Os primeiros ciberneticistas impuseramse o desafio de descobrir os mecanismos neurais subjacentes aos fenomenos mentais e expressá-los em linguagem matemática explícita. A intenção era criar uma ciência exata da mente. John Von Neumann– (1903 – 1957) 6 Um Breve Histórico McCulloch e Pitts (1943), Hebb (1949), e Rosemblatt (1958). Estas publicações introduziram o primeiro modelo de redes neurais simulando “máquinas”, o modelo básico de rede de autoorganização, e o modelo Perceptron de aprendizado supervisionado, respectivamente. Nos anos 60 e 70, importantes trabalhos sobre modelos de redes neurais em visão, memória, controle e auto-organização como: Amari, Anderson, Cooper, Cowan, Fukushima, Grossberg, Kohonen, von der Malsburg, Werbos e Widrow. Alguns históricos sobre a área costumam “pular” os anos 60 e 70 e apontar um reínicio da área com a publicação dos trabalhos de Hopfield (1982) relatando a utilização de redes simétricas para otimização. 7 Um Breve Histórico Grossberg apresentou um trabalho inicial em aprendizado competitivo na década, de onde surge as redes neurais conhecida como (ART). Em 1986, Rumelhart, Hinton e Williams introduziram o poderoso método Backpropagation. Rumelhart e McClelland escreveram o livro “Processamento Paralelo Distribuído: Explorações na Microestrutura do Conhecimento”. Posteriormente percebeu-se que a Tese de Werbos em 1974 tratava o assunto do gradiente de modo reverso. 1988, Broomhead e Lowe descreveram um procedimento para o projeto de uma rede neural (feedforward) usando funções de base radial. 8 Redes Neurais Artificiais Redes neurais são uma classe de ferramentas muito poderosas, com propósitos gerais prontamente aplicáveis para: Predição Classificação Agrupamento Previsão (Séries temporais) Exemplos de aplicação: 1. Avaliar valores (predições) financeiros 2. Diagnósticos médicos 3. Identificar grupos de consumidores promissores 4. Identificar fraudes em transações com cartão de crédito 5. Predizer a taxa de falhas em máquinas 6. Vendas (prever valor) futuras 9 O Modelo de Neurônio Artificial sinais são apresentados à entrada; cada sinal é multiplicado por um número, ou peso, que indica a sua influência na saída da unidade; é feita a soma ponderada dos sinais que produz um nível de atividade; se este nível de atividade exceder um certo limite (threshold) a unidade produz uma determinada resposta de saída. Demo Matlab 10 Organização em camadas 11 Processos de Aprendizado A propriedade mais importante das redes neurais é a habilidade de aprender de seu ambiente e com isso melhorar seu desempenho. Isso é feito através de um processo iterativo de ajustes aplicado a seus pesos, o treinamento. O aprendizado ocorre quando a rede neural atinge uma solução generalizada para uma classe de problemas. 12 Algoritmo de Aprendizado algoritmo de aprendizado é um conjunto de regras bem definidas para a solução de um problema de aprendizado. Existem muitos tipos de algoritmos de aprendizado específicos para determinados modelos de redes neurais, estes algoritmos diferem entre si principalmente pelo modo como os pesos são modificados. 13 Aprendizado Supervisionado Quando é utilizado um agente externo que indica à rede a resposta desejada para o padrão de entrada. 14 Aprendizado Não Supervisionado (auto-organização) Quando não existe um agente externo indicando a resposta desejada para os padrões de entrada. 15 O Perceptron Proposto por Rosenblatt (1958) para reconhecimento de letras maiúsculas do alfabeto. É uma rede feedforward consistida de unidades binárias, que aprendem a classificar padrões através de aprendizado supervisionado. Os perceptrons introduzem formalmente uma lei de treinamento. Modelam o neurônio fazendo a soma ponderada de suas entradas e enviando o resultado 1 se a soma for maior do que algum resultado inicial ajustável (caso contrário, ele envia 0). Saída da rede Aprendizagem N yi f wij x j j o wi ( yid yi ) xi 16 O Perceptron Uma entrada especial denominada (“bias” – wo) tem um valor fixo de + 1. O perceptron testa se a soma ponderada dos pesos está acima ou abaixo de um valor de polarização usando a regra: w x > 0 então yj = 1 Se N j o ij j Se w x =< 0 então yj = 0 N j o ij j onde yj é o valor de saída da unidade de processamento j. Demo Matlab Letras 17 18 Esquema de Treinamento 19 Funções de Transferência 20 Potencial de Representação Perceptrons representam uma superficie de um hiperplano no espaço n-dimensional Alguns problemas não podem ser separados por hiperplanos A regra de aprendizado encontra um vetor de pesos se os exemplos são linearmente separáveis A regra converge para a “melhor aproximação” 21 Perceptron Multi-Camadas - MLP 22 Perceptron Multi-Camadas - MLP o desenvolvimento do algoritmo de treinamento backpropagation, por Rumelhart, Hinton e Williams em 1986, precedido por propostas semelhantes ocorridas nos anos 70 e 80, é possível treinar eficientemente redes com camadas intermediárias, resultando no modelo de Perceptron Multi-Camadas. 23 Perceptron Multi-Camadas - MLP Se existirem as conexões certas entre as unidades de entrada e um conjunto suficientemente grande de unidades intermediárias, pode-se sempre encontrar a representação que irá produzir o mapeamento correto da entrada para a saída através das unidades intermediária. Como provou Cybenko, a partir de extensões do Teorema de Kolmogoroff, são necessárias no máximo duas camadas intermediárias, com um número suficiente de unidades por camada, para se produzir quaisquer mapeamentos. Também foi provado que apenas uma camada intermediária é suficiente para aproximar qualquer função contínua. 24 Backpropagation Durante o treinamento com o algoritmo backpropagation, a rede opera em uma sequência de dois passos. Primeiro, um padrão é apresentado à camada de entrada da rede. A atividade resultante flui através da rede, camada por camada, até que a resposta seja produzida pela camada de saída. segundo passo, a saída obtida é comparada à saída desejada para esse padrão particular. Se esta não estiver correta, o erro é calculado. O erro é propagado a partir da camada de saída até a camada de entrada, e os pesos das conexões das unidades das camadas internas vão sendo modificados conforme o erro é retropropagado. 25 Rede Neural RBF A RBF caracteriza-se como uma rede de dois estágios, a 1a camada não supervisionada e a 2a camada supervisionada Dado um vetor de entrada , a saída de um nodo simples será onde, por exemplo, a função pode ser tomada como y f (x c) 1 n x j c j f (x c) exp 2 (2 ) n/ 2 1. 2 ... n j j 1 1 2 Os valores , j=[1,n], são usados da mesma maneira que na distribuição de probabilidade normal para determinar a dispersão escalar em cada direção. Uma outra variação comum nas funções bases é aumentar sua funcionalidade usando a distância de Mahalanobis na função Gaussiana. A equação anterior torna-se: f (x c) 1 T exp 12 x c K 1 x c n/ 2 1/ 2 (2 ) | K | 26 Rede Neural RBF Dados n-vetores (dados de entrada) de p-exemplares, representando p-classes (24 classes dos cromossomos), a rede pode ser iniciada com conhecimento dos centros (localizações dos exemplares). Se representa o j-ésimo vetor exemplar, então pode-se definir a matriz peso C como:Dado um vetor de entrada , T a saída de um nodo simples será C [c1c2 ...c3 ] A camada de saída é uma soma ponderada das saídas da camada escondida. Quando apresentando um vetor de entrada para rede, a rede implementa y W f ( x-c ) 27 Rede Neural RBF 28 Redes neurais para data mining supervisionado Usos mais comuns da rede neural: construir modelos para classificação e predição. Os passos neste processo são: 1. Identificar as variáveis (características) de entrada (inputs) e saídas(outputs). 2. Transformar as variáveis de entrada e saídas de tal forma que a sua amplitude fique na faixa de 0 a 1. 3. Escolher a rede com uma topologia adequada. 4. Treinar a rede com um conjunto representativo de exemplos de treinamento. 5. Validar a rede com um conjunto de validação totalmente independente dos exemplos de treinamento. Se necessário, repita o treinamento, ajustando o conjunto de treinamento, a topologia da rede, e parâmetros. Testar a rede usando um conjunto de teste para ver quão boa é sua performance. 6. Aplicar o modelo gerado pela rede para fazer predições com entradas 29 desconhecidas. A escolha do arquivo de treinamento O arquivo de treinamento consiste de registros cujos valores de predição ou classificação já são conhecidos. A escolha de um bom arquivo de treinamento é crucial. Abrangência dos valores para todas as características A consideração mais importante é que o arquivo de treinamento precisa cobrir a faixa completa dos valores para todas as características que a rede pode encontrar, incluindo a saída. Em geral, é uma boa idéia ter vários exemplos no arquivo de treinamento para cada valor de uma característica categorizada e para uma faixa de valores para características discretas ordenadas e contínuas. As entradas na rede neural devem estar na faixa 0 e 1. Entretanto é recomendável deixar uma folga ao redor desses limites, considerando os valores mínimo e máximo como sendo 0,1 e 0,9. 30 O número de características (variáveis) Quanto maior o número de variáveis de entrada, maior deverá ser a rede neural, aumentando o risco de supertreinamento da rede e necessidade de maior número de registros de treinamento. O tempo necessário para treinar uma rede está diretamente relacionado com o número de variáveis de entrada usadas na mesma; quanto mais características (variáveis) são usadas, maior é o tempo para a rede convergir. Um grande problema é que quanto mais aumenta o número de variáveis de entrada, a chance da rede convergir para uma solução de qualidade inferior aumenta. Descartar características que não tenham poder preditivo ajuda a aumentar o poder preditivo da rede neural. Tente outras variáveis e verifique quais delas melhora a rede. Em muitos casos é necessário calcular novas variáveis que representam aspectos particular do problema. Por exemplo, R$/m2. Pode-se usar outras técnicas para determinar quais características são importantes para o propósito de predição. Pode-se usar, por exemplo: correlações ou árvores de decisão. 31 O número de exemplos de treinamento Geralmente, quanto mais características há na rede neural, mais exemplos de treinamento são necessários para abranger os padrões nos dados. Geralmente um mínimo de poucas centenas de exemplos são necessários para cada característica. Quando o tamanho do arquivo de treinamento não é grande o suficiente, a rede tende a decorar os dados. 32 O número de saídas Por exemplo, se a rede neural vai ser usada para detectar eventos (saídas) raros e caros, tais como: taxa de falhas de motores a diesel, uso fraudulento do cartão de crédito; então você precisa ter certeza que o arquivo de treinamento tem um número suficiente de exemplos desses eventos raros. Uma amostra aleatória dos dados disponíveis não é suficiente, pois os exemplos não raros (comuns) vão “afundar” os exemplos raros. Para contornar este problema, o arquivo de teste precisa ter muitos exemplos raros, portanto deve-se fazer uma amostragem estratificada. Por exemplo, tomar 10.000 “bons” exemplos e 10.000 “maus” exemplos. 33 Preparando os dados Preparar os dados de entrada é freqüentemente a parte mais complicada do uso de uma rede neural. Uma parte do problema é a transformação das variáveis de tal forma que os seus valores fiquem dentro da faixa de 0 a 1. Variáveis contínuas (Intervalares) Exemplos: valores em reais (preços de venda, vendas semanais, rendimentos) médias (volume médio de vendas) taxas medidas físicas (áreas, temperaturas) 34 Divisão do arquivo de dados Arquivo de treinamento Arquivo de validação Arquivo de teste As redes neurais são treinadas usando apenas o arquivo de treinamento. Porém, existe a necessidade de se saber o momento de parar com a fase de treinamento, pois existe o perigo de um supertreinamento da rede e, neste caso, a rede perde o seu poder preditivo. Para contornar o perigo de memorização por parte da rede, confronta-se o modelo gerado com a base de validação. O arquivo de teste é usado para fazer uma verificação independente da performance da rede, isto é, serão usados registros nunca vistos pela rede. A taxa de erro observada no arquivo de treinamento é uma boa estimativa da taxa de erro para registros novos. 35 Bibliografia CARPENTER, G , GROSSBERG, S. Pattern Recognition by Self-organizing Neural Networks. The MIT Press, MA, 1992. CHAKRAVARTHY, S. V. , GHOSH, J. Efficient Training Procedures for Adaptive Kernel Classifiers.In Proceedings of the First IEEE-SP Workshop on Neural Networks for Signal Processing, Princetron, NJ, p. 21-29, 1991. CHEN, S., COWAN, C. F. N. , GRANT, P. M. Orthogonal Least Squares Algorithm for Radial Basis Funtion Networks. IEEE Transactions on Neural Networks, v. 2, No. 2, p. 302-309, March 1991. GROSSBERG, S. Studies of Mind and Brain. Boston, MA: Reidel, 1982. HAYKIN, S. Neural Networks: A Comprehensive Foundation. Macmillan College Publishing Company, New York, 1994 HOPFIELD, J. J. Neural networks and physical systems with emergent collective computational abilities. Proceedings of the National Academy of Sciences of the U.S.A., v. 79, p. 2554-2558, 1982. HUSH, D. R. , HORNE, B. G. Progress in Supervised Neural Networks: What's New Since Lippmann? IEEE Signal Processing Magazine, p. 8-39, January, 1993. LEE, S. , RHEE, M A Gaussian Potential Function Network with Hierarquically Self-Organzing Learning. Pattern Recognition Letters, v. 14, No. 3, p. 221- 227, 1993. LIPPMANN, R. P. An Introduction to Computing with Neural Nets. IEEE ASSP Magazine, April, 1987. MOODY, J. , DARKEN, C. J. Fast Learning in Networks of Locally-Tuned Processing Units. Neural Computation, v. 1, p. 281-294, 1989. PAO, Y. Adaptative pattern recognition and neural networks. Addison-Wesley Publishing Company, Inc, United States, 1989. POGGIO, T. , GIROSI, F. Networks for aproximation and learning. Proceedings of the IEEE, v. 78, p. 1481-1497. RUMELHART, D. E. , ZIPSER, D. Feature Discovery by Competitive Learning. Cognitive Science, v. 9, p. 75-112, 1985. WETTSCHERECK, D. , DIETTERICH, T. Improving the Performance of Radial Basis Function Networks by learning Center locations. Advances in Neural Informations Processing System 4, J. E. Moody, S. J. Hansen and R. L. Lippmann editors, p. 1133-1140, 1992. 36 Ferramenta WEKA e MatLab 37