|
Prof. Adolfo Bauchspiess
|
|
ENE0154 - Inteligência
Computacional
3o Exercício
- CIFAR10
Aprendizagem Profunda com Saída "Outro"
Objetivo:
Utilizando o banco de imagens CIFAR10, construir uma rede convolucional profunda para reconhecer 10 classes. Saída "outro" imagem não reconhecida.
Introdução:
As redes redes neurais profundas
revolucionaram recentemente (a partir de ~2010!) as aplicações
de inteligência artificial conexionista. O teorema de Cybenko,
1989, prova que redes neurais artificias com apenas uma camada
escondida são aproximadores universais. Porém, várias camadas
convolucionais (CNN) produziram, pela primeira vez na
história das RNAs, resultados práticos e uma miríade de
aplicações comerciais. CNNs são treinadas para produzir mapas de
caracteríscas (features), tornando viável o reconhecimento de
padrões em imagens. MNIST, CIFAR-10, CIFAR-100, ImageNet são
alguns dos bancos de imagens que consagraram diferentes
paradigmas de aprendizagem profunda (AlexNet, ResNet, VGG,
Inception, ViT etc.)
O treinamento depende de uma base de dados
ampla o suficiente para que a rede tenha boa capacidade de
generalização. Neste trabalho será utilizada a base CIFAR-10 (trainset =
torchvision.datasets.CIFAR10()), com 50.000 imagens de
treinamento, 5.000 de teste e 5.000 de validação. As imagens de
32x32 pixeis correspondem a 10 classes. Diferentes categorias,
como "aviões", "passaros", "gatos" e "cachorros" estão
disponíveis. Como referência*, o SotA ("State of the
Art") do CIFAR-10, 2018, apresenta acurácia de 99,0%.
Diferentes topologias de CNN estão
disponiveis na internet. Para uma implementação didática em
TensorFlow, ver, por exemplo: https://github.com/acht7111020/CNN_object_classification/tree/master/train.
**ResNet é uma das topologias mais populares em várias áreas de
aplicação de RNAs.
Procedimento:

+Image: Medium, CIFAR-10 Image classification using
PyTorch
Bom
Aprendizado Profundo !!