Adaline Perceptron: ajuste de pesos não leva em conta distância entre saída e resposta desejada Rede Adaline (ADAptive LINEar) Proposta pôr Widrow e Hoff em 1960 Função de ativação é linear 21/11/11 Mais usada em problemas de regressão Redes Neurais - André Ponce de Leon F. de 61 Adaline Estado de ativação 1 = ativo 0 = inativo (ou -1) Função de ativação linear fa(u) = u = ∑ 21/11/11 i=0:d x iw i Termo θ é considerado também (w0 = θ ) Redes Neurais - André Ponce de Leon F. de 62 Adaline corresponde a um grau de liberdade a mais Deslocamento da função de ativação em relação à origem do sistema de coordenadas Em Perceptron era limiar de ativação do neurônio f(x) = ∑ i=0:n xiwi = w .x Para uma Adaline de d entradas a saída f(x) é: f(x) = w0 + w1x1 + w2x2 + ... + wdxd Adaline Logo, saída corresponde a uma combinação linear das entradas xi Pesos da combinação obtidos por meio de treinamento y = w0 + w1x1 + w2x2 + ... + wdxd x0 = +1 x 1 x2 w0 =θ w1 w2 . . . xd wd y Adaline Treinamento Supervisionado Correção de erro (regra Delta) Δ w = η x (y - y) i i d Δw i ≠y) (yd = y) Reajuste gradual do peso 21/11/11 =0 (yd Leva em conta distância entre saída e resposta desejada Redes Neurais - André Ponce de Leon F. de 65 Aprendizado Seja um par de treinamento (x, yd) Erro quadrático: e2 = (yd – w.x)2 Encontrar o w que leve a menor e2 e2 = (yd)2 –2ydw.x + (w.x)2 Superfície de erro Na realidade deseja-se encontrar o mínimo da superfície correspondente à soma das superfícies de erro de todos os dados de treinamento Aprendizado Para o conjunto de treinamento com n dados Função de erro (custo): J = ½ ∑ i=1:n(ydi – w.xi)2 Algoritmo de treinamento deve atualizar os pesos visando atingir o mínimo de J Aprendizado Dada uma condição inicial w(0), qual a direção do ajuste a ser aplicado para que w se aproxime do mínimo de J? Pelo gradiente da função de custo no ponto Gradiente possui a mesma direção da maior variação de erro ajuste deve ser na direção contrária Δw(t)α-J Aprendizado Gradiente Aprendizado η = taxa de aprendizado Define velocidade com que o vetor de pesos é modificado Equação de ajuste: w(t+1) = w(t) + η e x(t) Algoritmo de treinamento Algoritmo de treinamento de RNA Adaline Entrada: Conjunto de treinamento D = {(xi ,yi), i = 1,...n} Saída: Rede Perceptron com pesos ajustados Iniciar pesos da rede com valores baixos repita para cada xi faça Calcular valor da saída produzida pela rede f(xi) erro e = yi - f(xi) se e > então Ajustar pesos do neurônio w(t+1) = w(t) + ex(t) até que erro < 21/11/11 Redes Neurais - André Ponce de Leon F. de 71 Algoritmo de teste Uso da RNA treinada Algoritmo de teste de RNA Adaline Entrada: Exemplo de teste x e RNA Adaline com pesos ajustados Saída: previsão para x Apresentar x à entrada da RNA Calcular a saída f(x) Retorne f(x) 21/11/11 Redes Neurais - André Ponce de Leon F. de 72 Problemas com redes de uma única camada Redes de uma camada geram apenas fronteiras lineares Grande número de aplicações importantes são não lineares Exemplo: XOR Problemas com Perceptron 0, 0 0, 1 1, 0 1, 1 0 1 1 0 Ex. XOR 1 Problemas com Perceptron Solução: utilizar mais de uma camada Camada 1: uma rede Perceptron para cada grupo de entradas linearmente separáveis Camada 2: uma rede combina as saídas das redes da primeira camada, produzindo a classificação final Como treinar? Problemas com Perceptron 1 3 2 Rede multicamadas Modelo de rede mais popular Resolvem problemas mais complexos do que o Perceptron simples e Adaline Possuem uma ou mais camadas intermediárias Funções de ativação não-lineares em pelo menos uma das camadas intermediárias Sempre vai existir uma rede com uma camada equivalente a uma multicamadas com funções de ativação lineares Transformações não-lineares sucessivas Rede multicamadas Grande Funcionalidade Uma camada intermediária aproxima: Duas camadas intermediárias aproximam: Qualquer função contínua ou Booleana Qualquer função Qualidade da aproximação depende da complexidade da rede Usar muitas camadas e/ou neurônios Risco de overfitting! Perceptron multicamadas MLP – Multilayer Perceptron Uma ou mais camadas intermediárias de neurônios Função de ativação Sigmoide ou Tangente Hiperbólica Arquitetura mais comum: completamente conectada Cada neurônio realiza uma função específica Função implementada é uma combinação das funções realizadas pelos neurônios da camada anterior conectados a ele Termo θ usado para desvio da função em relação à origem Todos neurônios vão ter um w0 = θ (ou - θ ) com entrada fixa -1 (ou +1) Perceptron multicamadas MLPs Função implementada por cada neurônio Formada pela combinação das funções implementadas por neurônios da camada anterior Camada 1: hiperplanos no espaço de entradas Camada 2: regiões convexas Número de lados = número de unidades na camada anterior Camada 3: Combinações de figuras convexas, produzindo formatos abstratos Número de figuras convexas = número de unidades da camada anterior Funções cada vez mais complexas MLPs Combinação das funções desempenha das por cada neurônio define a função associada à RNA MLPs Camada de saída: um neurônio para cada um dos rótulos presentes Classificação: função de ativação Sigmoide ou tangente hiperbólica Regressão: função de ativação linear Saída para um objeto x: y = [y1, y2, ..., yk]t, k = número de rótulos Classificação: vetor y para cada objeto de entrada tem valor 1 na posição associada à classe do objeto e 0 nas demais posições MLPs Treinamento por correção de erros Camada de saída: comparação entre vetor de saída dos neurônios e vetor de valores desejados Classificação: rede classifica objeto corretamente quando a saída mais elevada é a do neurônio correspondente à classe correta do exemplo Se valores são baixos ou mais de um neurônio dá valor de saída alto, a rede não tem condições de prever Camadas intermediárias: Qual a saída desejada de uma camada itermediária? Algoritmo Backpropagation (retropropagação de erros) MLPs Algoritmo Backpropagation Estimar o erro das camadas intermediárias por efeito que elas causam no erro da camada de saída Erro da saída é retroalimentado para as camadas intermediárias Requer funções de ativação contínuas e diferenciáveis Regra Delta generalizada Backpropagation Treinamento: iteração de duas fases Cada fase percorre a rede em dois sentidos Sinal (forward) Erro (backward) Backpropagation Treinamento: iteração de duas fases Fase Forward Fase backward “Para frente” Cada objeto de entrada é apresentado à rede Neurônios são percorridos da primeira camada intermediária até a saída Valores de saída são comparados aos desejados “Para trás” Erro de cada neurônio da camada de saída é usados para ajustar seus pesos de entrada Ajuste prossegue até a primeira camada intermediária Rede MLP camadas intermediárias camada de saída camada de entrada conexões 21/11/11 Sistemas Inteligentes - André Ponce de Leon 88 Back-propagation André Ponce de Leon de Carvalho 100 Back-propagation Treinamento Derivada parcial define ajuste dos pesos: mede contribuição de cada peso no erro da rede Derivada positiva peso está provocando aumento na diferença entre a saída produzida e a desejada Sua magnitude deve ser reduzida para baixar o erro Derivada negativa peso está contribuindo para que saída produzida seja mais próxima da desejada Seu valor deve ser aumentado André Ponce de Leon de Carvalho 101 Treinamento Algoritmo Back-propagation Iniciar todas as conexões com valores aleatórios Repita para cada par de treinamento (x, y) para cada camada i := 1 a N para cada neurônio j := 1 a Mi Calcular a saída f (x) ij erro = y - f (x) ij para cada camada i := N a 1 para cada neurônio j:= 1 a Mi Atualizar pesos até que erro < (ou número máximo de ciclos) André Ponce de Leon de Carvalho 102 Treinamento André Ponce de Leon de Carvalho 103 Treinamento André Ponce de Leon de Carvalho 104 Treinamento André Ponce de Leon de Carvalho 105 Treinamento André Ponce de Leon de Carvalho 106 Treinamento André Ponce de Leon de Carvalho 107 Teste Algoritmo de teste de RNA MLP Apresentar dado x a ser reconhecido para cada camada i := 1 a N para cada neurônio j := 1 a Mi Calcular a saída f (x) ij Se classificação: discretizar a saída (verifica o maior valor produzido; se valores forem baixos ou muito próximos, rejeitar) Termo momentum Para reduzir influência da escolha do valor de η Adiciona uma fração α do valor anterior de atualização dos pesos ao atual Quantifica grau de importância da variação do ciclo anterior Quando o gradiente se mantém apontando na mesma direção, o tamanho dos passos na direção do mínimo crescerá Atenção: se ambos η e α forem muito grandes, há o risco de passar pelo mínimo Termo momentum Caminho seguido utilizando momento Solução original de convergência (lenta) (lenta Variações Versão padrão: ajuste de pesos para cada objeto individualmente Variação batch: pesos são ajustados uma única vez para cada ciclo Variações Mínimos locais: solução estável que não é a melhor solução Incidência pode ser reduzida Empregando taxa de aprendizado decrescente Adicionando nós intermediários Utilizando termo de momentum Backpropagation é muito lento em superfícies complexas Utilizar métodos de segunda ordem Outros algoritmos Ex.: RPROP, Newton, etc. Critérios de parada Diferentes critérios podem ser usados: Número máximo de ciclos Taxa máxima de erro Early stop: estratégia para evitar overfitting Separa parte dos dados de treinamento para validação Dados de validação são apresentados à rede a cada l ciclos Treinamento é finalizado quando erro em validação começa a aumentar Critérios de parada Early stop Convergência do algoritmo Superfície de erro apresenta mínimos locais e global para problemas complexos Objetivo é atingir mínimo global Não há teorema de convergência Rede pode convergir para mínimo local ou demorar muito para encontrar solução adequada Projeto da arquitetura de RNA Escolhas de função de ativação e topologia da rede Número de camadas e neurônios, padrão das conexões Geralmente empíricas (tentativa e erro) Problema de busca Projeto da arquitetura de RNA Abordagens: Empírica Meta-heurística Busca cega, tentativa e erro Diversas arquiteturas são testadas e comparadas Mais utilizada, mas com elevado custo de tempo Gera conjunto de variações de RNAs e combina as que apresentam melhores resultados Geralmente usa Algoritmos Genéticos na busca e variações Grande custo computacional Algumas heurísticas: testar apenas uma camada intermediária, pois já tem bastante poder expressivo Projeto da arquitetura de RNA Abordagens: Poda (pruning) Construtiva Começa com uma RNA com um grande número de neurônios Poda remove conexões ou neurônios redundantes ou irrelevantes Gradualmente insere novos neurônios e conexões a uma RNA inicialmente sem neurônios intermediários Observações Atributos devem ser numéricos Categóricos devem ser pré-processados É necessário normalizar os dados Similar a k-NN Relacionado também a ter crescimento muito grande dos valores de peso Vantagens RNAs Várias soluções de sucesso em problemas práticos (principalmente percepção e controle) Tolerância a falhas e ruídos Desvantagens RNAs Capacidade preditiva ainda está aquém à do cérebro Dificuldade de interpretação do modelo gerado (caixas-pretas) Escolha de melhor conjunto de parâmetros Referências A Slides de: Prof Dr André C. P. L. F. de Carvalho Prof Dr Ricardo Campello Prof Dr Marcilio Carlos Pereira de Souto Livro: A. P. Braga, A. C. P. L. F. Carvalho, T. B. Ludermir, Redes Neurais Artificiais: teoria e aplicações, 2007, Ed LTC