Implementação do modelo de Redes Neurais Convolucionais (Convolutional Neural Networks - CNN) e do modelo Multilayer Perceptron (MLP) para efeitos comparativos usando o dataset fashion mnist.
As CNN são um tipo de modelo de ML comum em tarefas de reconhecimento de padrões e imagens. Elas aplicam diferentes transformações e filtros nas imagens de entrada que tornam sua 'compreensão' dos elementos mais complexa, auxiliando no reconhecimento de padrões.
Já MLP é um modelo mais simples em comparação, que conta com várias camadas de perceptrons que transformam também os dados, aplicam uma função de ativação para garantir não linearidade e produzem o resultado na camada final;
Para a comparação entre os dois modelos, fiz algumas alterações no dataset fashion_mnist, gerando 3 datasets diferentes e rodei os modelos com diferentes arquoiteturas para avalir a acurácia obtida. O objetivo era comprovar a capacidade superior da CNN em classificar melhor as imagens. Para informações mais detalhadas, consulte esta apresentação;
Este repositório conta com:
1_Teoria_CNN.ipynb- Um JN com a historicidade das CNNs;2_Teoria_CNN.ipynb- Um JN com explicações teóricas sobre as operações da CNN;CNN.ipynb- Implementação de diferentes arquiteturas de CNN para o dataset fashion mnist;MLP.ipynb- Implementação de diferentes arquiteturas de MLP para o dataset fashion mnist;Comparacao_MLP_CNN.pdf- Apresentação em PDF de mais detalhes das arquiteturas testadas;
Para clonar este repositório localmente, siga os passos abaixo:
-
Abra o terminal na pasta em que deseja guardar esse projeto.
-
Utilize o comando abaixo para clonar o repositório:
git clone https://github.com/Od4ir/ML-Convolutional_Neural_Network.git- Após a clonagem, para rodar os JN e os arquivos em Python, é necessário a instalação da Miniconda - Download e instalação. Após instalar a Miniconda rode:
~/miniconda3/bin/conda init- E crie um ambiente virtual chamado d2l para rodar os programas e instalar as bibliotecas sem afetar seu ambiente global:
conda create --name d2l python=3.9 -y # *Lembre-se de alterar a versão do Python- Ativando e desativando o ambiente virtual:
conda activate d2l # Ativa o ambiente
conda deactivate # Desativa o ambienteApós isso, é necessário instalar as bibliotecas do Python: d2l, pytorch, torchvision e matplotlib:
conda activate d2l
# Instalar a biblioteca d2l
pip install d2l
# Instalar o PyTorch e torchvision
pip install torch torchvision
# Instalar matplotlib
pip install matplotlibCaso falte alguma durante as execuções, basta instalar com o:
pip install <nome_da_biblioteca>Para rodar os JN basta escolher o ambiente d2l criado e rodar normalmente.
Verifique a seguir as bibliotecas e outras dependências utilizadas nesse projeto. Certifique-se de ter as essas dependências instaladas no seu ambiente:
- Python 3.12.2 - Linguagem de programação utilizada;
- Pytorch 2.4.0+cu121 - Biblioteca do Python criada para facilitar o trabalho com Machine Learning;
- Jupyter Notebook - Aplicação web que permite escrever documentos com texto e código;
- Matplotlib - Biblioteca do Python com funções para visualização de dados;
- NumPy - Biblioteca do Python com funções para realizar várias funções numéricas;
- d2l - Biblioteca para acompanhar o livro Dive into Deep Learning;
- torchvision - Biblioteca para visões computacionais em PyTorch.
- Dive Into Deep Learning - Livro;
- Convolutional Neural Networks: A Brief History of their Evolution - Artigo - Medium;
- Inception Module Definition - Artigo - DeepAi;
- ResNet Architeture Explaned - Artigo - Medium;
- What are Convolucional Neural Networks (CNNs)? - Vídeo - IBM Technology;
- Convolutional Neural Networkds (CNNs) explained - Vídeo - deeplizard;