Redes Neurais - Primeiros modelos – Perceptron e Adaline
2.67k views3862 WordsCopy TextShare
UNIVESP
"Nesta videoaula, o professor irá introduzir os primeiros modelos de redes neurais,
suas aplicações...
Video Transcript:
[Música] Olá bem-vindos à sexta vídeo aula do curso de redes neurais Eu sou professor Marcos killes e na aula de hoje Nós aprendemos sobre os primeiros modelos de redes neurais para solução de problemas lineares o modelo percentum nós começaremos revisitando o neurônio ICP que nós vimos nas aulas anteriores e como configurar esse neurônio para resolver problemas simples como portas lógicas do tipo Wendy e do tipo na sequência nós introduziremos o percentual e a sua forma de treinamento e depois o adaline e também seu algoritmo de Treinamento bom o neurônio BCP ele representa uma abstração do neurônio biológico conhecido até então basicamente nós temos um conjunto de entradas ponderadas por peso sinápticos aqui nós temos o soma que representam abstração do corpo celular e esse soma basicamente faz o ponto do dos das entradas ponderadas pelos respectivos pesos formando o que a gente chama de Campo local induzido quando esse campo local induzido que a saída do SOMA ultrapassa um dado Limiar representado por teta nós temos que ser neurônio dispara Ou seja a saída dele é um se esse campo local induzido for menor ou igual a zero a saída do neurônio é zero indicando que esse neurônio matemático ele está distraindo um neurônio biológico na sua fase de repouso então o que que esse neurônio representa basicamente uma abstração do neurônio biológico como nós já comentamos ele pode ser utilizado ele pode ser configurado para representar diversas portas lógicas com uma porta and porta-or porta-norte e também a combinação de outras portas mais mais elaboradas a questão é como configurar esse neurônio como que nós podemos transformar essa versão abstrata dele em uma versão capaz de resolver um problema lógico Então vamos começar pelo problema and onde nós temos quatro sinais possíveis representados aqui por X1 e X2 onde nós podemos ter as duas entradas desligadas 00 e a saída desejada para esse caso é zero quando nós temos a entrada X10 e X2 1 ou X1 e X2 zero Nós também temos a saída desejada zero esse neurônio vai emitir como saída 1 Apenas quando as duas entradas X1 e X2 estiverem ativas isso aqui essa daqui então a abstração da rede ou do neurônio que nós podemos utilizar para resolver esse problema onde nós temos as duas entradas X1 e X2 e a saída do neurônio representado aqui por y a questão Como configurar então esses parâmetros O w1w2 que são os pesos Associados as entradas e o parâmetro B que é o parâmetro associado ao baias Então como a gente pode ajustar esse neurônio vamos começar pelo primeiro caso que é o seguinte representa essas três primeiras linhas do nosso conjunto de dados onde nós temos a resposta desejada zero esse caso ele é obtido quando nós temos as duas entradas iguais a zero ou Uma das entradas igual a zero então o que que a gente sabe para calcular o campo local induzido nós temos somatório dubaias vezes entrada x0 que é uma entrada sempre positiva sempre um mas o peso W1 vezes a entrada X1 mas o peso do W2 vezes a entrada X2 E nós queremos que a resposta seja igual a zero ou seja esse somatório essa soma tem que possuir o valor igual ou menor que zero no primeiro caso quando nós temos X1 e X2 = 0 nós temos que esse termo lado e esse termo é no lado então nós temos que B tem que ser menor igual a zero então aqui a gente já consegue encontrar um primeiro valor para o primeiro parâmetro do neurônio que é o b então a gente poderia assumir por exemplo um b igual a menos 0. 5 é por outro lado quando nós temos uma das duas entradas ligadas ou X1 ou X2 nós vamos ter a presença de um desses termos logo o somatório vai ser o termo de baias mais o W1 ou W2 Lembrando que os dois não podem ter relativos ao mesmo tempo então essa soma de baias mais W1 ou W2 tem que ser menor igual a zero então nós poderemos configurar por exemplo o wmw2 = 0,3 então a gente sabe que 0,3 - 0,5 vai ser menos 0,2 logo um valor menor que zero e nós temos para os três primeiros casos a porta configurada para o segundo caso que é o último caso nós temos que as duas entradas são iguais a 1 nesse caso nós queremos que o neurônio responda de forma ativa ou emita sairão então somatório do baias mais as entradas ponderadas pelos pesos tem que ser maior do que zero então nós temos que B + W1 + W2 tem que ser maior que zero se a gente utilizar os mesmos valores que estava no slides anterior que é o baias -05 o W1 e o w2=0. 3 nós vamos ter uma soma totalizando 0.
1 que é maior que zero ou seja com esses três parâmetros a gente consegue resolver uma porta end então pode ser utilizado para abstrair uma porta lógica do tipo web como que a gente pode interpretar esse neurônio que que ele representa para a gente se a gente pensar nos valores que nós temos configurados para os parâmetros o baias o primeiro peso e o segundo peso e a gente igualar esses essas soma igual a zero e nós colocarmos o X2 como a variável dependente de X1 ou seja pegar essas dois termos e passar para o lado de cada do sinal de igual nós chegamos nessa equação isso aqui representa pra gente equação de uma reta onde nós temos nesse caso o coeficiente angular dessa reta multiplicado por X1 e esse segundo termo que é o termo de baias indicando o deslocamento da reta em relação a origem resolvendo essas contas nós temos que X2 = - x 1 + 1,67 Então essa equação da reta a gente poderia botar ela como sendo uma reta no nosso passo bidimensional então o neurônio está representando essa reta aqui em azul onde nós temos aqui o deslocamento em relação a origem que é um ponto 67 e o deslocamento de -1 que representa pra gente um ângulo de 135 graus então o que que essa reta está separando se eu tiver exatamente sobre a reta ou abaixo da reta nós temos a classe zero se eu tiver acima da reta eu tenho a classe 1 que é exatamente a solução do problema end que a gente está resolvendo nesse momento o que que o boys representa como eu já falei né basicamente o deslocamento da reta em relação à origem do sistema Qual que é o problema dessa abordagem que nós vimos até então primeiro eu precisei configurar manualmente cada um dos parâmetros da rede então se eu tinha uma rede com muitos parâmetros sem 200 parâmetros essa configuração manual não se torna factível então a gente precisa de alguma forma social uma um método automático para treinar esses neurônios visando a configuração automática desses parâmetros então percebe que ele surge nesse sentido ele foi proposto pela Rosen Blah lá em 1958 e ele é basicamente uma generalização do neurônio MCP no qual nós associamos agora um algoritmo de aprendizagem ou seja um algoritmo capaz de treinar a de forma automática esses parâmetros da rede a partir da interação com os dados essa rede ela possui apenas uma camada de neurônios ajustáveis ou seja apenas uma camada de neurônios embora se nós analisarmos o artigo original proposto pelo rosemblar existem mais camadas associadas essa mesma rede porém são camadas com neurônios não ajustáveis são camadas de retina que apenas recebem o sinal então de fato configurável nós temos apenas uma camada de neurônio e ela é bastante utilizada para a classificação de padrões especificamente padrões lineamente separados como a gente vai ver e nós sabemos também foi mostrado pelo rosenblá em 1962 que essa rede ela sempre converge com erros zero quando nós temos um problema linearmente separado em avaliação Então os neurônios Primeiro eles assumem saídas binárias o próprio induzido calculado e se esse campo local é zero e a gente utiliza o algoritmo a técnica de correção de erro que nós também já vimos nas aulas anteriores para fazer a correção dos pesos para fazer o treinamento desse modelo então a gente sabe que um neurônio com uma rede com único neurônio vai conseguir resolver um problema de classificação binária e quando nós temos um problema multiclasses nós precisamos de vários neurônios onde cada neurônio Vai representar a sua classe então só tem três classe por exemplo eu vou ter três neurônios na camada computável a camada de computação que vai definir para mim se eu pertenço ou não a classe 11 o segundo neurônio se pertence a nova Classe 2 e assim por diante Então como funciona atualização utilizando o método de correção de erro do percentual primeiro se o padrão apresentado para rede ele emite a rede emite como saída a resposta desejada ou seja erro zero a gente não precisa atualizar os pesos desse neurônios parâmetro que ele já está resolvendo problema por outro lado se o padrão for erroneamente classificado ou seja se eu pegar uma linha do data 7 e a resposta desejada foi diferente da obtida a gente tem um erro e a gente vai utilizar esse erro representado aqui por desejado menos obtido para atualizar os pesos do nosso neurônio Então como que a atualização dos pesos a gente tem um novo peso vai ser o peso anterior mais a variação do peso que está representado aqui embaixo por Delta W No qual é tá representa a taxa de aprendizagem ou seja qual vai ser o tamanho desse espaço de atualização o e representa o erro o desejado menos obtido tá aqui em cima e o x representa a entrada apresentada naquela sinapse que a gente tá corrigindo o peso nesse instante Então como que a gente aplica esse algoritmo de treinamento para resolver um problema qualquer primeiro a gente inicia os pesos os parâmetros da rede os pesos e o baias né com valores aleatórios pequenos ou mesmo iguais a 0 a gente seleciona uma linha aleatoriamente do nosso conjunto de Treinamento apresenta esse padrão para rede E observa a saída dessa rede nós comparamos a saída obtida fornecida pela rede com a saída desejada e calculamos o erro representado aqui por e se esse erro for igual a zero ou seja não existe erro Nós voltamos ao passo 2 selecionamos um segundo exemplo e continuamos o processo de Treinamento se o erro é diferente de zero a gente aplica a forma de atualização Ou seja a gente calcula o delta w sendo Eta vezes o erro vezes o x que alimenta aquela sinapse na sequência Voltamos ao passo 2 esse processo interativo ele é repetido até nos atingirmos um erro aceitável ou quando o problema linearmente separável até convergir por um erro zero aqui um exemplo então da mesma porta Andy só que agora utilizando em vez de configurar manualmente os parâmetros nós vamos configurar é utilizando o algoritramento Ou seja a rede vai configurar esse parâmetro automática então Aqui nós temos o mesmo problema apresentado lá atrás X1 X2 e as saídas desejadas e Aqui nós temos o x0 representando a entrada associada ao baias ou seja aquela entrada que ela é sempre igual Então nós vamos começar com todos os pesos iguais a zero no qual w0 representam baias W1 peso associado a neurônio a entrada 1 x 1 e W2 o peso associado à entrada X2 e a taxa de aprendizagem o Eta nossa vai ser de 0. 5 Vamos considerar o primeiro interação a primeira época eu não sei se eu defini com vocês mas uma época ela representa a apresentação de todo o conjunto de treinamento para rede então se eu falo que eu concluir uma época de Treinamento significa eu apresentei para o modelo no processo de Treinamento todos os exemplos que eu tenho contidos no meu conjunto de Treinamento nos casos não temos quatro exemplos então No primeiro caso nós temos o X1 = 0 e o X2 = 0 que é a primeira linha a saída do modelo vai ser zero e as saídas desejada também é zero logo não tem erro a gente não precisa fazer nenhum tipo de correção o mesmo vai acontecer quando a gente tem o padrão 2 que é o padrão 01 e o padrão 3 que é o padrão um zero Porém quando nós apresentamos o padrão X1 = 1 e X2 = 1 a saída do neurônio também é zero e aqui nós esperávamos uma saída um logo existe um erro desejado é diferente obtido Então a gente vai aplicar aquela forma de atualização para definirmos atrás e corrigir todos os pesos desse neurônio Então a gente vai chegar sai de um conjunto de peso que era zero zero zero zero mais peso e chegaram um peso 0. 5 0.
5 e 0. 5 como a gente fez uma atualização nessa primeira época de Treinamento Pode ser que essa atualização tenha acarretado em algum problema dos outros exemplos então a gente precisa repetir uma segunda época para verificar o que que aconteceu hora que a gente começa então a segunda época a gente tem que entrada um de novo que é o padrão 00 agora para essa entrada a rede fornece a saída 1 e o desejado Era Zero logo existe um erro a gente precisa novamente corrigir os pesos então corrigir os pesos a gente vai chegar no segundo conjunto zero para o baias 05 peso 1 e 05 para o peso 2 apresentamos o segundo padrão segundo exemplo que é o padrão 0 padrão de novo a rede fornece como saída obtida o padrão a classe 1 e a classe desejada zero nós temos um erro precisamos corrigir de novo os pesos e a gente vai fazendo esse processo de maneira interativa até o momento que a gente vai chegar num cenário após algumas épocas no qual eu vou apresentar o padrão 00 e a rede vai convergir vai apresentar para mim sair da Zero erro zero vou apresentar o padrão zero um padrão um zero a rede também vai fornecer zero que é o valor desejado e para o padrão um e um a gente tem a saída 1 que é o valor desejado Ou seja a rede com essa configuração de parâmetros aqui baias menos um resumo = 1 e peso 2 = 0.