Baixe o app para aproveitar ainda mais
Prévia do material em texto
Atividade Prática Inteligência Artificial Aplicada Cezar Augusto Roggia Centro Universitário UNINTER Rod. Armando Calil Bulos, 6201 - sala 103 – Ingleses – Florianópolis cezarfw@gmail.com Resumo: Treinar o neurônio de Rosenblatt para que identifique o meu registro da Uninter. Como fazer: Utilizar uma planilha eletrônica (Excel) criando 8 células de entrada (correspondente a cada dígito do RU) e uma célula de saída que terá valor 1 se o registro for o seu e valor -1 se não for. O processamento entre as células de entrada e a saída deverá seguir o modelo de Rosenblatt. 1. Objetivo Essa atividade tem como intuito aprofundar o conhecimento acerca dos procedimentos para o desenvolvimento e treinamento de uma rede Neural Artificial. 2. Introdução Rede Neural Artificial (RNA) pode ser definida como uma estrutura complexa interligada por elementos de processamento simples (neurônios), que possuem a capacidade de realizar operações como cálculos em paralelo, para processamento de dados e representação de conhecimento. Um neurônio de uma rede neural é um componente que calcula a soma ponderada de vários inputs, aplica uma função e passa o resultado adiante. Rede neural artificial é uma abstração da rede neural biológica. Seu objetivo não é replicar, mas sim servir de modelo para o aprendizado e resoluções de problemas complexos. mailto:cezarfw@gmail.com 3. Procedimentos de desenvolvimento do Neurônio de Rosenblatt 3.1. Dados: Pelo Google sheets foi criado uma planilha eletrônica (Planilha) para o projeto e nela inserido 197 amostras que iniciam na linha 41 e vão até a linha 237. - Coluna 1: Referência da amostra - Coluna 2: Primeiro dígito do RU - Coluna 3: Segundo dígito do RU - Coluna 4: Terceiro dígito do RU - Coluna 5: Quarto dígito do RU - Coluna 6: Quinto dígito do RU - Coluna 7: Sexto dígito do RU - Coluna 8: Sétimo dígito do RU - Coluna 9: Valor desejado - Coluna 10: RU OBS: Os números contidos na linha 41 são respectivos ao meu RU. Esses dados serão utilizados no treinamento do neurônio. https://docs.google.com/spreadsheets/d/1bcha82qkwmshDty2GMsPHNVELDT47PiJgRSskX1XogU/edit?usp=sharing 3.2. Macro: A planilha contém automação para realizar o treinamento via macro, o código segue abaixo 4. Entendendo a estrutura da planilha para treinamento do Neurônio 4.1. Na linha 4 realizo a inserção/substituição dos dados com base nas 197 amostras, uma por vez. 4.2. Na mesma linha mas na penúltima coluna que é mostrado no print abaixo temos o valor que desejamos e na última coluna realizamos os cálculos que é apresentado abaixo. 4.3. Na linha 7 temos o bias e a taxa de aprendizagem. 4.4. Na linha 5 e última coluna temos a soma das entradas que utiliza a formula: =(B4*A14)+(C4*B14)+(D4*C14)+(E4*D14)+(F4*E14)+(G4*F14)+(H4*G14)+(B7) 4.5. Na linha 4 e coluna L do print acima temos a função de ativação, que nesse caso se dá pela condicional “se”, como pode ser observado na fórmula abaixo: =IF(J4>0;1;-1) 4.6. Na mesma linha 4 mas agora na coluna M temos o cálculo de erro que se dá pela subtração do valor esperado/desejado pela saída, segue fórmula abaixo: =I4-L4 4.7. Na linha 14 ficam armazenados os pesos das entradas. 4.8. Na linha 23 e 26 temos o valor da variação dos pesos das entradas e do bias respectivamente, que são calculados por: erro x taxa de aprendizado x o peso atual a) Variação dos pesos das entradas (delta das entradas): =$M$4*$E$7*B4 b) Variação do peso do bias (delta do bias): =M4*E7*B7 4.9. Após calcularmos os deltas, que são as variações baseadas nos pesos, erros e taxa de aprendizagem, teremos novos valores de pesos, tanto para as entradas quanto para o bias, conforme poderá observar no print abaixo. Os pesos iniciados serão atualizados com os valores dos novos pesos e será assim até o final do treinamento. 4.10. A planilha também conta com um campo para configurar a quantidade de épocas desejadas para o treinamento e mais dois campos com informações de execução do treinamento, apresentando qual a amostra que está sendo utilizada e a época respectiva. O botão treinar é responsável pela execução do treinamento propriamente dito. 5. Treinamento do Neurônio de Rosenblatt Os valores de inicialização são: - Pesos das entradas: -0,5 - Bias: 0,5 Quantidade de épocas: 8 Valor da saída com base no meu RU não está de acordo com o esperado, retornando erro conforme print abaixo: Clicando no botão “Treinar” iniciamos o treinamento e chegamos ao resultado esperado depois de 8 épocas, conforme pode ser visualizado: Alerta: Como o Google sheets tem limitação para execução de scripts (macros), foi preciso dividir o treinamento em dois com 4 épocas cada, totalizando 8 épocas. Essa limitação faz parte do serviço do Google sheets. Visualização da planilha com os dados de início do treinamento a) Primeiro treinamento: Utilizadas 4 épocas com 197 amostras, totalizando 788 amostras. Observe que ainda estamos com erro utilizando o número do meu RU nas entradas mas os pesos estão alterados e o cálculo das entradas apresenta valor diferente de quando iniciamos o treinamento. b) Segundo treinamento: Utilizadas 4 épocas com 197 amostras, totalizando 788 amostras. Com 8 épocas e um total de 1576 amostras utilizadas chegamos ao resultado esperado e consequente reconhecimento do RU (1955538), conforme pode ser observado no print abaixo: 6. Conclusão O treinamento realizado para identificar o RU é dito como treinamento supervisionado do modelo de rede Perceptron, que consiste em ajustar os pesos e os thresholds de suas unidades para que a classificação desejada seja obtida. Para a adaptação do threshold juntamente com os pesos consideramos o peso associado a uma conexão, cuja entrada são sempre “1” ou “-1” e adaptar o peso relativo a essa entrada. Quando um padrão é inicialmente apresentado à rede, ela produz uma saída. Após medir a distância entre a resposta atual e a desejada, são realizados os ajustes apropriados nos pesos das conexões de modo a reduzir esta distância. Este procedimento é conhecido como Regra Delta. Os pesos serão atualizados constantemente até o fim do treinamento, que em nosso caso, com 8 épocas conseguimos alcançar o objetivo, que é identificar o valor do meu RU. 7. Referências. 1. “Neural Networks - A Comprehensive Foundation,” - Simon S. Haykin 2. “Fundamental of Neural Networks - Architectures, Algorithms and Applications,” - Laurene V. Fausett 3. Redes Neurais Artificiais, Perceptron Simples - Serafim Nascimento 4. Construa um neurônio artificial do zero - Prof Francisco Calaça
Compartilhar