Lesson 6: Neural Networks

2.331 visualizações

Publicada em

Publicada em: Educação, Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.331
No SlideShare
0
A partir de incorporações
0
Número de incorporações
16
Ações
Compartilhamentos
0
Downloads
99
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • .
  • Lesson 6: Neural Networks

    1. 1. Chapter 6<br />Redes Neuronais(Neural Networks)<br />
    2. 2. Aprendizagem Computacional Gladys Castillo, UA<br />Classificadores Lineares<br />Se os exemplos do conjunto de treino são linearmente separáveis podemos aprender uma função discriminante linear e logo usa-la para classificar os futuros exemplos<br />x1, x2 - 2 variáveis preditorasC = {class1, class2} – 2 classesf:x1x2 C<br />Para um novo exemplo x:<br />se g(x) > 0  f(x) = class1se g(x) < 0  f(x) = class2<br />Figura extraídas dos acetatos de Luis Oliveira, Classificadores Lineares<br />
    3. 3. Aprendizagem Computacional Gladys Castillo, UA<br />Separabilidade entre Classes<br />Um conjunto de treino é chamado linearmente separável se existe pelo menos um hiperplano capaz de separar os exemplos de diferentes classes<br />linearmentenão separável<br />linearmenteseparável<br />Figura extraídas dos acetatos de Aluizio F. R. Araújo, Máquinas de Vectores Suporte<br />
    4. 4. IRIS Data (Fisher, 1936)<br />Problema clásico de classificação das flores iris.<br />3 classes<br />setosa<br />versicolor<br />virginica<br />4 atributos<br />comprimento da pétala<br />largura da pétala<br />comprimento da sépala<br />largura da sépala<br />O conjunto de dados contêm 50 exemplos por cada classe<br />On-line no UCI Machine Learning Repository http://www.ics.uci.edu/~mlearn/MLRepository.html<br />Aprendizagem Computacional Gladys Castillo, UA<br />
    5. 5. Aprendizagem Computacional Gladys Castillo, UA<br />Classificadores Lineares e Não LinearesIris Data (Fisher, 1936)<br />Figure from Norbert Jankowski and Krzysztof Grabczewski<br />x setosaO virginica+ versicolor <br />Árvore de Decisão<br />Discriminante Linear<br />setosa<br />Gaussian mixture<br />Kernel method (SVM)<br />
    6. 6. Aprendizagem Computacional Gladys Castillo, UA<br />x3<br />x2<br />x1<br />Fronteira de Decisão Linear<br />A fronteira de decisão linear está definida pelos hiperplanos que separam as classes<br />A fronteira de decisão linear está definida pelos hiperplanos que separam as classes<br />x2<br />x1<br />Figuras extraídas de “Introduction to Machine Learning”, Isabelle Guyon<br />
    7. 7. Aprendizagem Computacional , Gladys Castillo<br />x2<br />x3<br />x2<br />x1<br />x1<br />Fronteiras de Decisão Não Linear<br />Funções não lineares separam as classes<br />Figuras extraídas de “Introduction to Machine Learning”, Isabelle Guyon<br />
    8. 8. Aprendizagem Computacional Gladys Castillo, UA<br />x2<br />x1<br />Fit / Robustness Tradeoff<br />O que será melhor: a fronteira linear ou não linear?<br />x2<br />x1<br />Figuras extraídas de “Introduction to Machine Learning”, Isabelle Guyon<br />15<br />
    9. 9. Aprendizagem Computacional Gladys Castillo, UA<br />Classificadores Lineares<br />fronteira de decisão linear<br />Hiperplano de Classificação: <br />g(x) = w  x + b = 0<br />onde:<br /><ul><li>w - vector de pesos  determina a orientação do hiperplano
    10. 10. b – desvio (bias)</li></ul>Classificador Linear Binário :<br />Tarefa de Aprendizagem (ideia básica)<br />A partir do conjunto de treino com exemplos rotulados estimar os parâmetros w e b por forma a obter a melhor fronteira de decisão segundo um critério que define o que significa “melhor”<br />Figura extraídas dos acetatos de Luis Oliveira, Classificadores Lineares<br />
    11. 11. Aprendizagem Computacional Gladys Castillo, UA<br />Classificadores LinearesSoluções possíveis<br />Podem existir vários hiperplanos separando as classes correctamente, contudo existe pelo menos um melhor que os demais. Qual é o melhor? Cómo definir melhor? O critério para definir o melhor (óptimo) varia segundo o modelo de classificação: Exemplos de classificadores lineares:<br /><ul><li> Discriminante linear (Fisher)
    12. 12. Perceptron (redes neuronais)
    13. 13. Classificador de Margem Maximal (máquinas de suporte vectorial)</li></li></ul><li>Aprendizagem Computacional Gladys Castillo, UA<br />Figuraextraída dos acetatos de Introduction to Data Mining  P. Tan, M.Steinbach, V.Kumar<br />Classificadores Lineares<br />Este exemplo mostra um classificador linear de margem maximal (SVM) “aprendido” deste conjunto de treino usando o método dos multiplicadores de Lagrange. A partir dos dados foram estimados os parâmetros w1, w2 e b do hiperplano<br />
    14. 14. Aprendizagem Computacional Gladys Castillo, UA<br />Redes Neuronais Artificiais (RNAs)<br />Outro nome: modelos conexionistas<br />Modelo distribuído de computação paralelacom alto nível de granularidade<br /><ul><li>As RNAs são inspiradas no funcionamento do cérebro humano
    15. 15. Compostas dum elevado número de neurónios altamente inter-ligados trabalhando em paralelo na resolução de problemas
    16. 16. O conhecimento adquirido através da aprendizagem é armazenado nas ligações.</li></li></ul><li>Aprendizagem Computacional Gladys Castillo, UA<br />nós de entrada<br />nós de saída<br />nós ocultos <br />Redes Neuronais Artificiais (RNAs)<br />As RNAs contêm tem 3 tipos de camadas (layers):<br />input layer: informação que entra no neurónio<br />hidden layer: camadas intermédias, podem ser várias <br />output layer: informação que sai<br />Modelos mais populares:<br />Perceptron: modelo mais simples, não usa hidden layers<br />Multi-layer Feed-Forward: os nós de uma camada estão ligados apenas aos nós da seguinte camada<br />modelo com 3 camadas <br />
    17. 17. Aprendizagem Computacional Gladys Castillo, UA<br />Modelo de um Neurónio Artificial<br /><ul><li>Neurónio = processador de informaçãorecebe e envia impulso a milhares de neurónios
    18. 18. dendritos: canais de entrada
    19. 19. corpo celular: órgão de cômputo (soma ponderada, função não linear)
    20. 20. axónio: canal de saídadistribuição a outros neurónios
    21. 21. Potencial pos-sináptico:h (w, x) = w . x = jwj xj
    22. 22. O factor bias t é usualmente subtraído ao potencial pos-sináptico
    23. 23. função de activação para obter y:y = f (w. x – t)</li></ul>y = f(wx – t) = f(jwjxj – t)<br />
    24. 24. Aprendizagem Computacional Gladys Castillo, UA<br />Perceptron<br />O modelo mais simples das RNAs concebido em 1957 no Cornell Aeronautical Laboratory por Frank Rosenblatt.<br />Um perceptron é um classificador linear binário, ou seja, uma funçãof: X  Y que mapea um vector binário x a um valor binário y<br />Modelo simples de um neurónio artificial<br />Modelo geral com vários outputs onde cada output é modelado com o modelo do neurónio simples)<br />função de activação: a função sinal<br />
    25. 25. Aprendizagem Computacional Gladys Castillo, UA<br />Black box<br />x<br />x<br />x<br />y<br />Input<br />1<br />2<br />3<br />1<br />0<br />0<br />0<br />x<br />1<br />0<br />1<br />1<br />1<br />Output<br />1<br />1<br />0<br />1<br />1<br />1<br />1<br />1<br />x<br />y<br />2<br />0<br />0<br />1<br />0<br />0<br />1<br />0<br />0<br />x<br />0<br />1<br />1<br />1<br />3<br />0<br />0<br />0<br />0<br />RNAs - Modelo Caixa Preta (Black-Box)<br />Conjunto de Treino<br />Aprender um Perceptron dos dados significa aprender os pesos que melhor ajustem o modelo oculto nos dados<br />
    26. 26. Aprendizagem Computacional Gladys Castillo, UA<br />Perceptron Modelação de uma função booleana<br />Modelação com Perceptron<br />Função alvo: (target function)<br />o valor de y é true se pelomenos 2 inputs sãotrue<br />A aprendizagem do perceptron sempre tem sucesso em tempo finito para um conjunto de treino finito e separável de exemplos de treino<br />
    27. 27. Aprendizagem Computacional Gladys Castillo, UA<br />PerceptronFronteira de Decisão Linear<br />O perceptron é usado para conjunto de treinos linearmente separáveis<br />
    28. 28. Aprendizagem Computacional Gladys Castillo, UA<br />Problema de Classificação XOR<br />Não existe uma fronteira linear que possa separar estas duas classes. (como o Perceptron pode construir apenas um hiperplano, não podemos usa-lo para modelar este problema) <br />OU exclusivo<br />XOR(x1, x2) = true se e só se um dos inputs é true(note que true = 1, false = -1)<br />
    29. 29. Aprendizagem Computacional Gladys Castillo, UA<br />RNA de Duas Camadas Problema XOR (ou exclusivo)<br />Os exemplos podem ser classificados usando 2 hiperplanos que dividem o espaço dos atributos (input space) em suas respectivas classes<br />2 nós de entrada, 2 ocultos e um de saída<br />
    30. 30. Aprendizagem Computacional , Gladys Castillo<br />Fronteiras de decisãoPerceptron vs. RNAs com 1 e 2 Camadas Ocultas<br />Figuraextraídade RedesNeuronais, Pedro Larrañaga et al.<br />
    31. 31. Aprendizagem Computacional Gladys Castillo, UA<br />RNAs multi-camadas Feed-Forward<br />Podem existir várias camadas ocultas<br />Feed-forward (directa, não recorrente) refere-se ao facto de que nenhum arco e dirigido a um nó da mesma camada ou de uma camada anterior. <br />
    32. 32. RNAs multi-camadas Feed-Forward<br />Uma RNA pode ser representado como um grafo dirigido onde:<br />A cada nó (neurónio) i é associado uma variável de estado Xi<br />A cada ligação (i, j) entre os nós ie j é associado um peso wij<br />A cada nó i é associado um desvio (viés, bias) i<br />
    33. 33. RNAs multi-camadas Feed-Forward<br />Para cada nó j de uma camada oculta ou de saída é definida uma função de activação<br />onde: <br />wijé o peso associado a ligação que entra no nó j partindo do nó i com estado Ij<br />jé o desvio<br />Ojé o novo estado do nó j.<br />I1<br />sinapsis<br />sinap<br />(pesos)<br />(pesos)<br />w1j<br />I2<br />fun<br />ç<br />ão<br />de <br />fun<br />ç<br />ão<br />de <br />activa<br />ç<br />ão<br />activa<br />ç<br />ão<br />w2j<br />sa<br />í<br />da<br />sa<br />í<br />da<br /><br />S<br />f( )<br />Oj<br />f(<br />)<br />y<br />wnj<br />In<br />j<br />desvio<br />Aprendizagem Computacional Gladys Castillo, UA<br />
    34. 34. Aprendizagem Computacional Gladys Castillo, UA<br />Funções de Activaçãopara RNAs multicamadas<br />A função de activação que é normalmente usada com o algoritmo Backpropagation é a logística (ou sigmoid)<br />
    35. 35. Aprendizagem Computacional Gladys Castillo, UA<br />Algoritmo de Aprendizagem “Backpropagation” <br />Paul Werbos, 1974<br />Aprender uma RNA dos dados significa aprender os pesos das ligações<br />Bacpropagation é um algoritmo iterativo:<br />em cada iteração processa todos os exemplos de treino e compara o valor predito na saída da rede com o valor real (correcto) da classe<br />os pesos das ligações e os desvios são modificados por forma a minimizar o erro quadrático médio entre os valores reais e os valores preditos <br />EQM é o MSE abreviado do termo em inglês (meansquarederror)<br />
    36. 36. BackpropagationParâmetros de Entrada<br />RNA - topologia de uma rede neuronal multi-camada feed-forward<br />A escolha do # camadas ocultas e o # de nós em cada camada é um processo de tentativa-e-erro.<br />D - conjunto de treino com N exemplos etiquetados<br />Os valores dos atributos contínuos devem ser normalizados<br />Os atributos discretos devem ser transformados em atributos binários (um nó de entrada por cada valor)<br />Em problemas com mais de duas classes, deve ser utilizado um nó de saída por cada classe.<br />l - constante (factor de aprendizagem - "learning rate")<br />Aprendizagem Computacional Gladys Castillo, UA<br />
    37. 37. BackpropagationEsquema Geral<br />Input: topologia de uma RNA, conjunto de treino D, learning rate l<br />Output:RNA com pesos das ligações que minimizam o EQM<br />Inicialização: InicializarPesos(RNA) <br />Enquanto critério de paragem não atingido:<br />Para cada exemplo do conjunto de treino D<br /> 1. Propagar Valores de Entrada (caminhando da camada de entrada para a camada de saída)<br /> 2. RetropropagarError (caminhando da camada de saída para a camada de entrada)<br /> 3. Actualizar Pesos (usando a regra de descida do gradiente)<br />
    38. 38. Aprendizagem Computacional Gladys Castillo, UA<br />BackpropagationRegra do Descida do Gradiente<br />Objectivo: atingir o mínimo global da função do EQM caminhando na direcção contraria a do gradiente (sentido de maior decréscimo da função E(w)  E(w, D)  EQM )<br />Exemplo de - E(w) com w = (w1,w2)<br />
    39. 39. Aprendizagem Computacional Gladys Castillo, UA<br />BackpropagationRegra do Descida do Gradiente<br />Para um vector de pesos w=(w1, w2, …, wn), a fórmula de actualização dos pesos da regra da descida do gradiente é dada por<br />onde:<br /><ul><li>l é o factor de aprendizagem - uma constante em ]0; 1] que ajuda a que o algoritmo não pare num mínimo local
    40. 40. E(w) é o gradiente da função do erro E(w) definido por</li></ul>Logo, para aplicar este método precisamos de calcular o gradiente de E(w)(ver derivação no livro ML de Tom Mitchell)<br />
    41. 41. BackpropagationInicialização<br />Os pesos das ligações e o desvio (bias) associado a cada nó devem ser inicializados utilizando números pequenos e aleatórios, normalmente no intervalo [-1; 1]. <br />Aprendizagem Computacional Gladys Castillo, UA<br />
    42. 42. BackpropagationPropagação dos valores de entrada<br />Propagar os valores de entrada para a frente até obter um valor de saída (uma classificação não necessariamente correcta).<br />Para cada nó j da camada de entrada: <br />Para cada nó j de uma camada (oculta ou de saída) e para cada nó i da camada anterior: <br />Aprendizagem Computacional Gladys Castillo, UA<br />
    43. 43. BackpropagationRetropropagação do erro<br />Calculam-se e retropropagam-se os erros cometidos na classificação de cada exemplo de treino, avançando da camada de saída para a camada de entrada.<br />Para cada nó j da camada de saída o erro cometido ao classificar um dado exemplo de treino <x, y> é dado por:<br />Para derivar esta fórmula precisamos de calcular a derivada parcial de E(w)para cada peso. Note que para a função logística:<br />ver toda a derivação no livro ML de Tom Mitchell<br />Aprendizagem Computacional Gladys Castillo, UA<br />
    44. 44. BackpropagationRetropropagação do erro<br />Para cada nó j das camadas ocultas o erro cometido é dado por:<br />onde wjk é o peso associado à ligação que entra no nó kpartindo do nó j e ek é o erro associado a nó k previamente calculado<br />Aprendizagem Computacional Gladys Castillo, UA<br />
    45. 45. BackpropagationActualização dos pesos e desvios<br />Os pesos e desvios devem ser actualizados usando a regra de descida do gradiente por forma a minimizar o EQMPara cada iteração k<br />Cada pesowijé actualizado pela seguinte fórmula: <br />Cada desvio jé actualizado pela seguinte fórmula: <br />Aprendizagem Computacional Gladys Castillo, UA<br />
    46. 46. BackpropagationCritério de Paragens<br />Parar o algoritmo:<br />quando as diferenças entre os pesos forem todas inferiores a um dado limite de tolerância.<br />quando a percentagem de exemplos mal classificados for inferior a um dado valor.<br /> após um determinado numero de iterações.<br />Aprendizagem Computacional Gladys Castillo, UA<br />
    47. 47. BackpropagationCorpo do Algoritmo<br />Enquanto critério de paragem não atingido:<br />Para cada exemplo do conjunto de treino D<br />1. Propagar Valores de Entrada <br /><ul><li>para camada de entrada:
    48. 48. para camadas ocultas e de saída: </li></ul>2. RetropropagarError<br /><ul><li>para camada de saída:
    49. 49. para camadas ocultas :</li></ul>3. Actualizar Pesos e Desvios <br />
    50. 50. Exemplo<br />Aprendizagem Computacional Gladys Castillo, UA<br />Extraído do livro Data Mining - Concepts and Techniques, 2nd edition , J. Han and MichelineKamber<br />Chapter 6.6. Classification by Backpropation<br />Calcule os novos pesos sinápticos usando o algoritmo de backpropagation com a função de activação sigmoide, o factor de aprendizagem l=0.9 e o valor da classe observado y =1. <br />1. Propagação dos valores de entrada<br />o valor predito<br />
    51. 51. Exemplo (continuação)<br />Aprendizagem Computacional Gladys Castillo, UA<br />2. Retropropagação do erro<br />3. Actualizar pesos e desvios<br />
    52. 52. Aprendizagem Computacional , Gladys Castillo<br />References<br />Capítulo 4 - Artificial Neural Networks do livro de Tom Mitchell, Machine Learning , McGrau Hill (1997)<br />Capítulo 6.6 do livro Data Mining - Concepts and Techniques,J. Han.  Morgan Kaufmann (2006)<br />Capítulos 5 do livro Introduction to Data Mining  P. Tan, M.Steinbach, V.Kumar<br />Acetatos “ClassificadoresLineares” de Luis Oliveira<br />On-line: www.ppgia.pucpr.br/~soares/cursos/recpad2/public/classificadoreslineares.pdf<br />

    ×