INF 77 Intelgênca Artfcal Aula 8 Redes Neuras Edrle Soares de Lma <elma@nf.puc-ro.br>
Formas de Aprendzado Aprendzado Supervsonado Árvores de decsão. K-Nearest Neghbor (KNN). Support Vector Machnes (SVM). Redes Neuras Aprendzado Não Supervsonado Aprendzado Por Reforço
Introdução Redes Neuras podem ser consderadas um paradgma dferente de computação. Insprado na arqutetura paralela do cérebro humano. Elementos de processamento smples. Grande grau de nterconexões. Interação adaptatva entre os elementos.
Introdução No cérebro, o comportamento ntelgente é uma propredade emergente de um grande número de undades smples (ao contráro do que acontece com regras e algortmos smbólcos). Neurônos lgam e deslgam em alguns mlssegundos, enquanto o hardware atual faz o mesmo em nano segundos. Entretanto, o cérebro realza tarefas cogntvas complexas (vsão, reconhecmento de voz) em décmos de segundo. O cérebro deve estar utlzando um paralelsmo massvo.
Introdução O cérebro humano tem sdo extensamente estudado, mas anda não somos capazes de entender completamente o seu funconando. O cérebro é muto complexo, até mesmo o comportamento de um smples neurôno é extremamente complexo.
Neurono Estrutura de um Neurono: Corpo celular Dendrtos Axôno Termnas snáptcos
Funconamento de um Neurôno Através dos dentrtos, o neurôno recebe snas de outros neurônos a ele conectados por meo das snapses. Os snas são acumulados no corpo do neurôno. Quando a soma dos snas passa de um certo lmar (~ 50mV) um snal é propagado no axôno. As snapses tem um peso que pode ser: exctatóro: ncrementam a soma dos snas. nbdor: decrementam.
Introdução Característcas do Cérebro Humano: 0 neurônos. Cada neurôno tem em meda 0 4 conexões. Mlhares de operações por segundo. Neurônos morrem frequentemente e nunca são substtuídos. Reconhecmento de faces em aproxmadamente 0. segundos.
Introdução O cérebro humano é bom em: Reconhecer padrões, Assocação, Tolerar ruídos... O computador é bom em: Cálculos, Precsão, Lógca.
Introdução Formas mas báscas de aprendzado em Redes Neuras: Perceptron: Algortmo para aprendzagem de redes neuras smples (uma camada) desenvolvdo nos anos 50. Backpropagaton: Algortmo mas complexo para aprendzagem de redes neuras de múltplas camadas desenvolvdo nos anos 80.
Aprendzagem de Perceptron Usa-se um conjunto de exemplos de trenamento que dão a saída desejada para uma undade, dado um conjunto de entradas. O objetvo é aprender pesos snáptcos de tal forma que a undade de saída produza a saída correta pra cada exemplo. O algortmo faz atualzações teratvamente até chegar aos pesos corretos.
Perceptron Undade de Threshold Lnear X W X 2... W 2 W n n 0 w x f n 0 w x 0 X n otherwse
Rede de Perceptrons Valores de Saída Camada de Saída Pesos Ajustaves Camada de Entrada Snas de entrada
Aprendzado de Perceptrons Para que um perceptron possa aprender uma função deve-se mudar o valor dos pesos ajustáves por um quantdade proporconal a dferença entre a saída desejada e atual saída do sstema. w w w w ( t o) x Saída desejada: t x x 2... x n o x x 2... x n t t = saída desejada. o = atual saída do perceptron. = Learnng rate.
Aprendzado de Perceptrons Regra de aprendzado: w w w w ( t o) x Se a saída do perceptron não estver correta (t!= o): Os pesos w são alterados de forma que a saída do perceptron para os novos pesos seja próxma de t. O algortmo va convergr para a correta classfcação se: O conjunto de trenamento é lnearmente separável. é sufcentemente pequeno.
Trenando um Neurono Operador And A B Saída 0 0 0 A 0.3 Threshold = 0.2 Learnng Rate = 0. 0 0 T=0.2 0 0 B -0. A B Somatóro Saída Erro 0 0 (0*0.3)+(0*-0.) = 0 0 0 0 (0*0.3)+(*-0.) = -0. 0 0 0 (*0.3)+(0*-0.) = 0.3 - (*0.3)+(*-0.) = 0.2 0
Trenando um Neurono Operador And A B Saída 0 0 0 A 0.2 Threshold = 0.2 Learnng Rate = 0. 0 0 T=0.2 0 0 B 0.0 A B Somatóro Saída Erro 0 0 (0*0.2)+(0*0.0) = 0 0 0 0 (0*0.2)+(*0.0) = 0 0 0 0 (*0.2)+(0*0.0) = 0.2 - (*0.2)+(*0.0) = 0.2 0
Trenando um Neurono Operador And A B Saída 0 0 0 A 0. Threshold = 0.2 Learnng Rate = 0. 0 0 T=0.2 0 0 B 0. A B Somatóro Saída Erro 0 0 (0*0.)+(0*0.) = 0 0 0 0 (0*0.)+(*0.) = 0. 0 0 0 (*0.)+(0*0.) = 0. 0 0 (*0.)+(*0.) = 0.2 0
Lmtações Um únco Perceptron consegue resolver somente funções lnearmente separáves. Em funções não lnearmente separáves o perceptron não consegue gerar um hperplano para separar os dados.
Redes Multcamadas Perceptrons expressam somente superfíces de decsão lnear. Entretanto, é possível combnar város perceptrons lneares para gerar superfíces de decsão mas complexas. Dessa forma podemos, por exemplo, gerar uma superfíces de classfcação para o operador XOR.
Operador XOR Operador XOR A B Saída 0 0 0 0 0 0 X -0.5 h OR - o -0.5 X 2 h 2 AND -.5
Redes Multcamadas Camada de Saída Camadas Ocultas Camada de Entrada
Redes Multcamadas Adconar uma camada oculta a rede permte que a rede possa gerar uma função de convex hull. Duas camadas ocultas permte a rede gerar um função com dferentes convex hulls.
Redes Multcamadas Undades lneares são capazes gerar funções lneares, dessa forma função de uma rede multcamada também será lnear. Entretanto, exstem mutas funções que não podem ser modeladas por funções lneares. Por esse motvo é necessáro utlzar uma outra função de atvação.
Redes Multcamadas Funções de atvação mas comuns: Sgmodal: Radal (Gausana): p h e p x w w h f y n ; 0 2 2 2 0 2 2 ; ) ( h n e w w x h f y
Redes Multcamadas Undade Sgmod X W X 2... W 2 W n n net 0 w x o ( net ) e h p X n
Função Sgmodal f ( net ( t)) ( net ( t) )/ e 0 -
Função Sgmodal f ( net ( t)) ( net ( t) )/ e 0. 0 -
Backpropagaton Aprende os pesos para uma rede multcamadas, dada uma rede com um número fxo de undades e nterconexões. O algortmo backpropagaton emprega a descda do gradente para mnmzar o erro quadrátco entre a saída da rede e os valores alvos para estas saídas.
Descda do Gradente A descda do gradente busca determnar um vetor de pesos que mnmza o erro. Começando com um vetor ncal de pesos arbtráro e modfcando o repetdamente em pequenos passos. A cada passo, o vetor de pesos é alterado na dreção que produz a maor queda ao longo da superfíce de erro.
Backpropagaton Aprende os pesos para uma rede multcamadas, dada uma rede com um número fxo de undades e nterconexões. O algortmo backpropagaton emprega a descda do gradente para mnmzar o erro quadrátco entre a saída da rede e os valores alvos para estas saídas. Valor de sada da rede 0.9 0.059 0.253 0.246 0 0 0 Valor da sada buscada Erro (E) = (Valor da sada buscada) (Valor de sada da rede)
Backpropagaton
Backpropagaton Incalza cada peso w com um pequeno valor randômco. Enquanto condção de parada não for atngda faça { Para cada exemplo de trenamento faça { Entre com os dados do exemplo na rede e calcule a saída da rede (o k ) Para cada undade de saída k faça { k ok ( ok )( tk ok ) } Para cada undade oculta h faça { h oh ( oh ) wh, kk k outputs } Para cada peso w j da rede faça { } } } w, j where w, j w w, j, j x j, j
Backpropagaton O backpropagaton não é um algortmo ótmo e não garante sempre a melhor resposta. O algortmo de descda do gradente pode fcar preso em um erro mínmo local. É possível refazer o trenamento varando os valores ncas dos pesos. Backpropagaton é o algortmo de aprendzagem mas comum, porém exstem mutos outros.