Dataset MNIST

O dataset MNIST (Modified National Institute of Standards and Technology) é uma grande base de dados de dígitos escritos à mão, comumente usada para treinar vários sistemas de processamento de imagem e modelos de machine learning. Ele foi criado ao "remisturar" amostras dos datasets originais do NIST e tornou-se um padrão de referência para avaliar o desempenho de algoritmos de classificação de imagem.

Principais recursos

  • O MNIST contém 60.000 imagens de treino e 10.000 imagens de teste de dígitos escritos à mão.
  • O dataset compreende imagens em tons de cinza com tamanho de 28×28 pixels.
  • As imagens são normalizadas para caber em uma bounding box de 28×28 pixels e suavizadas (anti-aliased), introduzindo níveis de tons de cinza.
  • O MNIST é amplamente utilizado para treino e teste no campo de machine learning, especialmente para tarefas de classificação de imagem.

Estrutura do Dataset

O dataset MNIST é dividido em dois subconjuntos:

  1. Conjunto de Treino: Este subconjunto contém 60.000 imagens de dígitos escritos à mão usadas para treinar modelos de machine learning.
  2. Conjunto de Testes: Este subconjunto consiste em 10.000 imagens usadas para testar e avaliar os modelos treinados.

Acesso ao Dataset

  • Arquivos originais: Baixa os arquivos gzip do arquivo original do MNIST se quiseres controle direto sobre o pré-processamento.
  • Carregador Ultralytics: Usa data="mnist" (ou data="mnist160" para o subconjunto abaixo) no teu comando e o dataset será baixado, convertido para PNG e armazenado em cache automaticamente.

Cada imagem no dataset é rotulada com o dígito correspondente (0-9), tornando-o um dataset de aprendizagem supervisionada ideal para tarefas de classificação.

Extended MNIST (EMNIST)

O Extended MNIST (EMNIST) é um dataset mais recente desenvolvido e lançado pelo NIST para ser o sucessor do MNIST. Enquanto o MNIST incluía imagens apenas de dígitos escritos à mão, o EMNIST inclui todas as imagens da NIST Special Database 19, que é uma grande base de dados de letras maiúsculas e minúsculas escritas à mão, bem como dígitos. As imagens no EMNIST foram convertidas para o mesmo formato de 28×28 pixels, pelo mesmo processo que as imagens do MNIST. Assim, ferramentas que funcionam com o dataset MNIST mais antigo e menor provavelmente funcionarão sem modificações com o EMNIST.

Aplicações

O dataset MNIST é amplamente utilizado para treinar e avaliar modelos de deep learning em tarefas de classificação de imagem, tais como Convolutional Neural Networks (CNNs), Support Vector Machines (SVMs) e vários outros algoritmos de machine learning. O formato simples e bem estruturado do dataset torna-o um recurso essencial para investigadores e profissionais no campo de machine learning e computer vision.

Algumas aplicações comuns incluem:

  • Avaliação comparativa (benchmarking) de novos algoritmos de classificação
  • Propósitos educacionais para ensinar conceitos de machine learning
  • Prototipagem de sistemas de reconhecimento de imagem
  • Testes de técnicas de otimização de modelos

Utilização

Para treinar um modelo CNN no dataset MNIST durante 100 epochs com um tamanho de imagem de 28×28, podes usar os seguintes trechos de código. Para uma lista completa de argumentos disponíveis, consulta a página de Treino do modelo.

Exemplo de Treino
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="mnist", epochs=100, imgsz=28)

Amostra de Imagens e Anotações

O dataset MNIST contém imagens em tons de cinza de dígitos escritos à mão, fornecendo um dataset bem estruturado para tarefas de classificação de imagem. Aqui estão alguns exemplos de imagens do dataset:

Exemplos do dataset de classificação de dígitos escritos à mão MNIST

O exemplo demonstra a variedade e a complexidade dos dígitos escritos à mão no dataset MNIST, destacando a importância de um dataset diversificado para treinar modelos robustos de classificação de imagem.

Citações e Agradecimentos

Se usares o dataset MNIST na tua pesquisa ou trabalho de desenvolvimento, por favor cita o seguinte artigo:

Citação
@article{lecun2010mnist,
         title={MNIST handwritten digit database},
         author={LeCun, Yann and Cortes, Corinna and Burges, CJ},
         journal={ATT Labs [Online]},
         volume={2},
         year={2010}
}

Gostaríamos de agradecer a Yann LeCun, Corinna Cortes e Christopher J.C. Burges por criarem e manterem o dataset MNIST como um recurso valioso para a comunidade de pesquisa de machine learning e computer vision. Para mais informações sobre o dataset MNIST e os seus criadores, visita o site do dataset MNIST.

Testes Rápidos MNIST160

Precisas de um teste de regressão extremamente rápido? A Ultralytics também disponibiliza data="mnist160", uma fatia de 160 imagens contendo as oito primeiras amostras de cada classe de dígitos. Ele espelha a estrutura de diretórios do MNIST, por isso podes trocar datasets sem alterar outros argumentos:

Exemplo de Treino com MNIST160
yolo classify train data=mnist160 model=yolo26n-cls.pt epochs=5 imgsz=28

Usa este subconjunto para pipelines de CI ou verificações de integridade antes de te comprometeres com o dataset completo de 70.000 imagens.

FAQ

O que é o dataset MNIST e por que é importante em machine learning?

O dataset MNIST, ou Modified National Institute of Standards and Technology, é uma coleção amplamente utilizada de dígitos escritos à mão concebida para treinar e testar sistemas de classificação de imagem. Inclui 60.000 imagens de treino e 10.000 imagens de teste, todas em tons de cinza e com 28×28 pixels de tamanho. A importância do dataset reside no seu papel como padrão de referência para avaliar algoritmos de classificação de imagem, ajudando investigadores e engenheiros a comparar métodos e acompanhar o progresso no campo.

Como posso usar o Ultralytics YOLO para treinar um modelo no dataset MNIST?

Para treinar um modelo no dataset MNIST usando o Ultralytics YOLO, podes seguir estes passos:

Exemplo de Treino
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="mnist", epochs=100, imgsz=28)

Para uma lista detalhada de argumentos de treino disponíveis, consulta a página de Treino.

Qual é a diferença entre os datasets MNIST e EMNIST?

O dataset MNIST contém apenas dígitos escritos à mão, enquanto o dataset Extended MNIST (EMNIST) inclui tanto dígitos quanto letras maiúsculas e minúsculas. O EMNIST foi desenvolvido como sucessor do MNIST e utiliza o mesmo formato de 28×28 pixels para as imagens, tornando-o compatível com ferramentas e modelos concebidos para o dataset MNIST original. Esta gama mais ampla de caracteres no EMNIST torna-o útil para uma maior variedade de aplicações de machine learning.

Posso usar a Ultralytics Platform para treinar modelos em datasets personalizados como o MNIST?

Sim, podes usar a Ultralytics Platform para treinar modelos em datasets personalizados como o MNIST. A Ultralytics Platform oferece uma interface intuitiva para enviar datasets, treinar modelos e gerir projetos sem a necessidade de conhecimentos extensivos de programação. Para mais detalhes sobre como começar, consulta a página de Início Rápido da Ultralytics Platform.

Como é que o MNIST se compara a outros datasets de classificação de imagem?

O MNIST é mais simples do que muitos datasets modernos como o CIFAR-10 ou o ImageNet, tornando-o ideal para iniciantes e experimentação rápida. Embora datasets mais complexos ofereçam maiores desafios com imagens coloridas e categorias de objetos diversas, o MNIST permanece valioso pela sua simplicidade, tamanho de arquivo reduzido e importância histórica no desenvolvimento de algoritmos de machine learning. Para tarefas de classificação mais avançadas, considera usar o Fashion-MNIST, que mantém a mesma estrutura, mas apresenta itens de vestuário em vez de dígitos.

Comentários