Redes Neurais Luana Bezerra Batista [email protected] Roteiro Introdução Neurônio Artificial Perceptron Perceptrons de Múltiplas Camadas 1. 2. 3. 4. 5. Algoritmo Backpropagation Mapas Auto-Organizáveis Introdução Redes Neurais são modelos computacionais inspirados no cérebro humano que aprendem através de exemplos Compostas por várias unidades processamento (‘neurônios’) Interligadas por conexões (‘sinapses’) de Cada conexão possui um peso associado (‘peso sináptico’) Introdução Camada intermediária Arquitetura genérica de uma RN Camada de entrada Camada de saída Neurônio Artificial Modelo de McCulloch-Pitts (1943) x1 w1i xj wji xn v( i) = v(i) f(.) o(i) wni w ji xj o(i ) = f (v (i)) f(v(i)) = 1, se v(i)0 f(v(i)) = 0, se v(i)<0 Perceptron Desenvolvido por Rosemblat (1958) Forma mais simples de uma Rede Neural utilizada para classificação de padrões linearmente separáveis Utiliza o modelo McCulloch-Pitts de neurônio de Perceptron Problemas linearmente separáveis Perceptron Algoritmo de Treinamento (Supervisionado) iniciar todas as conexões com wj = 0; repita para cada padrão de treinamento (x, d) faça calcular a saída o se (d o) então ajustar pesos até o erro ser aceitável Perceptron Ajuste dos pesos por correção do erro wji = xj (dj - oj ), se (d o) Onde (dj - oj ), representa o erro e é a taxa de aprendizado wji = 0, se (d = o) Perceptron Algoritmo de Teste Para cada padrão x faça apresentar x a entrada da rede calcular a saída o se (o=1) então x classe 1 senão x classe 2 Perceptron Perceptrons de uma única camada resolvem apenas problemas linearmente separáveis Grande número de aplicações importantes são não-linearmente separáveis Perceptron Exemplo: problema XOR Perceptron Solução: perceptrons de múltiplas camadas Perceptrons de múltiplas camadas Uma rede neural MLP (Multi-Layer Perceptrons) é uma extensão do Perceptron proposto por Rosenblatt, composta de várias camadas de neurônios Arquitetura de rede neural mais utilizada Perceptrons de múltiplas camadas Contém três tipos de camadas: 1. 2. 3. camada de entrada camada(s) intermediárias(s) camada de saída Qualquer neurônio de uma camada pode interligar-se com outro neurônio da camada seguinte Perceptrons de múltiplas camadas Camada intermediária Camada de entrada Camada de saída Perceptrons de múltiplas camadas O treinamento de uma rede neural MLP é realizado de maneira supervisionada com o algoritmo Backpropagation (ou retropropagação do erro) Nesse algoritmo, a determinação do sinal de erro d é um processo recursivo que se inicia nos neurônios da camada de saída e vai até os neurônios da primeira camada intermediária Backpropagation O algoritmo Backpropagation opera em dois passos: 1) Forward um padrão é apresentado à camada de entrada da rede e propagado em direção à camada de saída a saída obtida é comparada com a saída desejada para esse padrão particular. Se esta não estiver correta, o erro é calculado Backpropagation 2) Backward o erro é propagado a partir da camada de saída até a camada de entrada os pesos das conexões dos neurônios das camadas internas vão sendo modificados conforme o erro é retropropagado Backpropagation Para os neurônios das camadas intermediárias, onde não existem saídas desejadas, o sinal do erro d é determinado recursivamente em termos dos sinais dos erros dos j neurônios diretamente conectadas a eles e dos pesos destas conexões Backpropagation Erro dos neurônios na camada de saída Erro dos neurônios intermediárias Ajuste dos pesos nas camadas Backpropagation Backpropagation Vantagens simples de implementar boa capacidade de generalização Desvantagens dificuldade de justificar as respostas custo computacional significativo baixa velocidade de aprendizado Mapas Auto-Organizáveis O mapa auto-organizável (SOM: SelfOrganizing Map) é um tipo especial de rede neural não-supervisionada onde é realizado um processo de aprendizagem competitiva O neurônio mais próximo do padrão de entrada (com a menor distância Euclidiana) é declarado vencedor Mapas Auto-Organizáveis Segundo Haykin (2001), o principal objetivo do SOM é transformar um padrão de entrada, de dimensão arbitrária, em um mapa discreto uni- ou bi-dimensional Mapas Auto-OrganizáveisCamada SOM bidimensional Camada de entrada computacional Mapas Auto-Organizáveis Os mapas auto-organizáveis possuem duas propriedades principais: 1. 2. Quantização vetorial (redução do espaço de entrada) Agrupamento de padrões similares em regiões geograficamente próximas Mapas Auto-Organizáveis Algoritmo 1. Inicialize os vetores de pesos com valores aleatórios wj = [wj1, wj2, …, wjm], j=1,2,…n 2. Para cada padrão de entrada x = [x1, x2, ...xm] 3. Onde m é a dimensão do espaço de entrada e n é o número total de neurônios do mapa Restrição: os vetores de pesos devem ser diferentes encontre o neurônio mais próximo desse padrão (neurônio vencedor i(x)=arg min||x-wj||) atualize os pesos Repita o passo 2 até que não sejam observadas modificações significativas no mapa Mapas Auto-Organizáveis Ajuste dos vetores de pesos wj = h(i(x))(x - wj ) Onde h(i(x)) é a função de vizinhança que mede o grau de participação dos neurônios vizinhos a i(x) no processo de aprendizado Mapas Auto-Organizáveis Experimento: agrupamento categorias Caçadores Pássaros Espécies pacíficas SOM 10x10 de 2000 iterações 16 animais em 3 Atributos Mapa Contextual Caçadores Pássaros Espécies pacíficas Referências Mitchell, T., Machine Learning. McGrawHill, 1997 Haykin, S. Redes Neurais – Princípios e prática. 2. Ed. Porto Alegre, RS: Bookman, 2001