Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO TECNOLÓGICO DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO Leandro Antonio Barros dos Santos Ruan Mirandola PROJETO FINAL - SISTEMA DE APOIO À DECISÃO REDE NEURAL CONVOLUCIONAL VITÓRIA-ES 2022 UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO TECNOLÓGICO DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO Leandro Antonio Barros dos Santos Ruan Mirandola Projeto final apresentado ao curso de Graduação em Engenharia de Produção, do Centro Tecnológico da Universidade Federal do Espírito Santo, como requisito de avaliação. VITÓRIA-ES 2022 Introdução Uma Rede Neural Convolucional (ConvNet / Convolutional Neural Network / CNN) é um algoritmo de Aprendizado Profundo que pode captar uma imagem de entrada, atribuir importância (pesos e vieses que podem ser aprendidos) a vários aspectos / objetos da imagem e ser capaz de diferenciar um do outro. O pré-processamento exigido em uma ConvNet é muito menor em comparação com outros algoritmos de classificação. A arquitetura de uma ConvNet é análoga àquela do padrão de conectividade de neurônios no cérebro humano e foi inspirada na organização do Visual Cortex. Os neurônios individuais respondem a estímulos apenas em uma região restrita do campo visual conhecida como Campo Receptivo. Uma coleção desses campos se sobrepõem para cobrir toda a área visual. Base de dados: ● CIFAR10; ● É um dataset que possui algumas classes de imagens. Por exemplo: ○ Aeronaves ○ Carros ○ Pássaros ○ Gatos ○ Veados ○ Cachorros ○ Sapos ○ Cavalos ○ Navios ○ Caminhões Figura 1 - Imagens do dataset de imagenets. Importando os dados: Visualizando as imagens: A princípio é de se estranhar sobre a qualidade das imagens. A questão é que nós humanos pode ser difícil de identificar, porém a rede neural consegue diferenciar e classificar as imagens de acordo com a variação de pixels. Definindo a rede convolucional: ● Para calcular o tamanho espacial da saida podemos usar a fórmula ((N − F + 2P) / S) + 1. Onde: ○ N : Dimensão da imagem de entrada ○ F : Dimensão do Filtro ○ P : O padding ○ S : O stride ● Lembrando que um maxpooling de (kernel_size = 2,stride = 2) diminui pela metade a dimensão da imagem nos eixos x e y. Definindo os critérios e otimizador da rede neural: Treinando nosso modelo: Salvando o modelo: Para utilizarmos os dados novamente salvamos o modelo. Testando o modelo com dados de teste: O modelo nos trouxe as seguintes imagens: gato>navio>navio>aeronave Importando modelo treinado para rodarmos a rede: Previsão dos resultados: Como podemos observar, o modelo não acertou 100% das previsões: gato>navio>carro>navio Porém isso é esperado, pois não é comum que se tenha 100% accuracy, pois pode representar um caso de overfit, ou seja, o modelo se ajusta muito bem a um certo conjunto de dados, mas se mostra ineficaz para prever novos resultados. CONCLUSÃO E DISCUSSÃO FINAL Performance no modelo do dataset completo: Desta forma, verificamos que nosso modelo geral está com a accuracy de 60%, sendo um valor aceitável em termos de teste e aplicações para a disciplina. Performance por classe: Abaixo vemos a accuracy por classe do nosso modelo: Accuracy for class aeronave is: 60.2 % Accuracy for class carro is: 74.7 % Accuracy for class passaro is: 45.1 % Accuracy for class gato is: 36.3 % Accuracy for class veado is: 52.4 % Accuracy for class cachorro is: 53.9 % Accuracy for class sapo is: 73.9 % Accuracy for class cavalo is: 57.8 % Accuracy for class navio is: 79.6 % Accuracy for class caminhao is: 68.0 % A classe com maior accuracy foi a de navio, com 79,6%. Já a classe com menor accuracy foi a de gatos, com 36,3%. Link do arquivo .ipynb para testes com o modelo: https://colab.research.google.com/drive/1qhlqeqo9RCIlCQah1K8sd1h2iKIzNXSw?usp=shari ng Ambiente de desenvolvimento: Google Colab - https://colab.research.google.com/notebooks/intro.ipynb?hl=pt_BR https://colab.research.google.com/drive/1qhlqeqo9RCIlCQah1K8sd1h2iKIzNXSw?usp=sharing https://colab.research.google.com/drive/1qhlqeqo9RCIlCQah1K8sd1h2iKIzNXSw?usp=sharing https://colab.research.google.com/notebooks/intro.ipynb?hl=pt_BR
Compartilhar