Bộ dữ liệu MNIST
Bộ dữ liệu MNIST (Modified National Institute of Standards and Technology) là một cơ sở dữ liệu lớn gồm các chữ số viết tay, thường được sử dụng để huấn luyện nhiều hệ thống xử lý hình ảnh và các model machine learning khác nhau. Nó được tạo ra bằng cách "trộn lại" các mẫu từ các bộ dữ liệu gốc của NIST và đã trở thành một tiêu chuẩn để đánh giá hiệu suất của các thuật toán phân loại hình ảnh.
Các tính năng chính
- MNIST chứa 60.000 ảnh huấn luyện và 10.000 ảnh kiểm thử các chữ số viết tay.
- Bộ dữ liệu bao gồm các ảnh thang độ xám (grayscale) với kích thước 28×28 pixel.
- Các ảnh được chuẩn hóa để vừa với bounding box kích thước 28×28 pixel và được khử răng cưa (anti-aliased), tạo ra các mức thang độ xám.
- MNIST được sử dụng rộng rãi để huấn luyện và kiểm thử trong lĩnh vực machine learning, đặc biệt là cho các tác vụ phân loại hình ảnh.
Cấu trúc tập dữ liệu
Bộ dữ liệu MNIST được chia thành hai tập con:
- Tập huấn luyện (Training Set): Tập con này chứa 60.000 ảnh chữ số viết tay được sử dụng để huấn luyện các model machine learning.
- Testing Set: Tập con này bao gồm 10.000 hình ảnh được sử dụng để kiểm thử và đánh giá các mô hình đã được huấn luyện.
Truy cập bộ dữ liệu
- Các tệp gốc: Tải xuống các tệp lưu trữ gzip từ kho lưu trữ MNIST gốc nếu bạn muốn kiểm soát trực tiếp quá trình tiền xử lý.
- Bộ tải (loader) của Ultralytics: Sử dụng
data="mnist"(hoặcdata="mnist160"cho tập con bên dưới) trong câu lệnh của bạn, bộ dữ liệu sẽ được tự động tải xuống, chuyển đổi sang PNG và lưu vào bộ nhớ đệm.
Mỗi ảnh trong bộ dữ liệu được gán nhãn với chữ số tương ứng (0-9), khiến nó trở thành một bộ dữ liệu học có giám sát lý tưởng cho các tác vụ phân loại.
Extended MNIST (EMNIST)
Extended MNIST (EMNIST) là một bộ dữ liệu mới hơn do NIST phát triển và phát hành để kế thừa MNIST. Trong khi MNIST chỉ bao gồm hình ảnh các chữ số viết tay, EMNIST bao gồm tất cả các hình ảnh từ NIST Special Database 19, một cơ sở dữ liệu lớn chứa các chữ cái viết tay viết hoa, viết thường và cả các chữ số. Các hình ảnh trong EMNIST được chuyển đổi sang cùng định dạng 28×28 pixel, bằng cùng quy trình với các hình ảnh MNIST. Do đó, các công cụ hoạt động với bộ dữ liệu MNIST nhỏ, cũ hơn có khả năng sẽ hoạt động mà không cần sửa đổi với EMNIST.
Ứng dụng
Bộ dữ liệu MNIST được sử dụng rộng rãi để huấn luyện và đánh giá các model deep learning trong các tác vụ phân loại hình ảnh, chẳng hạn như Convolutional Neural Networks (CNN), Support Vector Machines (SVM) và nhiều thuật toán machine learning khác. Định dạng đơn giản và có cấu trúc tốt của bộ dữ liệu làm cho nó trở thành tài nguyên thiết yếu cho các nhà nghiên cứu và thực hành trong lĩnh vực machine learning và computer vision.
Một số ứng dụng phổ biến bao gồm:
- Đánh giá các thuật toán phân loại mới
- Mục đích giáo dục để giảng dạy các khái niệm về machine learning
- Tạo nguyên mẫu (prototyping) cho các hệ thống nhận dạng hình ảnh
- Kiểm thử các kỹ thuật tối ưu hóa model
Cách sử dụng
Để huấn luyện một model CNN trên bộ dữ liệu MNIST trong 100 epochs với kích thước ảnh 28×28, bạn có thể sử dụng các đoạn code sau. Để có danh sách đầy đủ các đối số khả dụng, hãy tham khảo trang Training của model.
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)Hình ảnh và chú thích mẫu
Bộ dữ liệu MNIST chứa các ảnh thang độ xám của các chữ số viết tay, cung cấp một bộ dữ liệu có cấu trúc tốt cho các tác vụ phân loại hình ảnh. Dưới đây là một số ví dụ về hình ảnh từ bộ dữ liệu này:

Ví dụ này cho thấy sự đa dạng và phức tạp của các chữ số viết tay trong bộ dữ liệu MNIST, làm nổi bật tầm quan trọng của một bộ dữ liệu đa dạng để huấn luyện các model phân loại hình ảnh mạnh mẽ.
Trích dẫn và Ghi nhận
Nếu bạn sử dụng bộ dữ liệu MNIST trong công việc nghiên cứu hoặc phát triển của mình, vui lòng trích dẫn bài báo sau:
@article{lecun2010mnist,
title={MNIST handwritten digit database},
author={LeCun, Yann and Cortes, Corinna and Burges, CJ},
journal={ATT Labs [Online]},
volume={2},
year={2010}
}Chúng tôi xin ghi nhận Yann LeCun, Corinna Cortes và Christopher J.C. Burges vì đã tạo và duy trì bộ dữ liệu MNIST như một nguồn tài nguyên quý giá cho cộng đồng nghiên cứu machine learning và computer vision. Để biết thêm thông tin về bộ dữ liệu MNIST và những người tạo ra nó, hãy truy cập trang web của bộ dữ liệu MNIST.
Các bài kiểm tra nhanh với MNIST160
Bạn cần một bài kiểm tra hồi quy siêu nhanh? Ultralytics cũng cung cấp data="mnist160", một lát cắt gồm 160 ảnh chứa tám mẫu đầu tiên từ mỗi lớp chữ số. Nó phản ánh cấu trúc thư mục của MNIST, vì vậy bạn có thể hoán đổi các bộ dữ liệu mà không cần thay đổi bất kỳ đối số nào khác:
yolo classify train data=mnist160 model=yolo26n-cls.pt epochs=5 imgsz=28Sử dụng tập con này cho các quy trình CI hoặc kiểm tra tính hợp lệ trước khi thực hiện cam kết với toàn bộ bộ dữ liệu 70.000 ảnh.
Câu hỏi thường gặp (FAQ)
Bộ dữ liệu MNIST là gì và tại sao nó lại quan trọng trong machine learning?
Bộ dữ liệu MNIST, hay bộ dữ liệu Modified National Institute of Standards and Technology, là một tập hợp các chữ số viết tay được sử dụng rộng rãi, được thiết kế để huấn luyện và kiểm thử các hệ thống phân loại hình ảnh. Nó bao gồm 60.000 ảnh huấn luyện và 10.000 ảnh kiểm thử, tất cả đều là ảnh thang độ xám và có kích thước 28×28 pixel. Tầm quan trọng của bộ dữ liệu nằm ở vai trò là tiêu chuẩn để đánh giá các thuật toán phân loại hình ảnh, giúp các nhà nghiên cứu và kỹ sư so sánh các phương pháp và theo dõi tiến độ trong lĩnh vực này.
Làm thế nào để sử dụng Ultralytics YOLO để huấn luyện một model trên bộ dữ liệu MNIST?
Để huấn luyện một model trên bộ dữ liệu MNIST bằng cách sử dụng Ultralytics YOLO, bạn có thể thực hiện theo các bước sau:
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)Để có danh sách chi tiết về các đối số huấn luyện khả dụng, hãy tham khảo trang Training.
Sự khác biệt giữa bộ dữ liệu MNIST và EMNIST là gì?
Bộ dữ liệu MNIST chỉ chứa các chữ số viết tay, trong khi bộ dữ liệu Extended MNIST (EMNIST) bao gồm cả chữ số, chữ cái viết hoa và viết thường. EMNIST được phát triển như một phiên bản kế nhiệm của MNIST và sử dụng cùng định dạng 28×28 pixel cho các hình ảnh, giúp nó tương thích với các công cụ và model được thiết kế cho bộ dữ liệu MNIST gốc. Phạm vi ký tự rộng hơn trong EMNIST làm cho nó hữu ích cho nhiều ứng dụng machine learning đa dạng hơn.
Tôi có thể sử dụng Nền tảng Ultralytics để huấn luyện các model trên các bộ dữ liệu tùy chỉnh như MNIST không?
Có, bạn có thể sử dụng Nền tảng Ultralytics để huấn luyện các model trên các bộ dữ liệu tùy chỉnh như MNIST. Nền tảng Ultralytics cung cấp giao diện thân thiện với người dùng để tải lên bộ dữ liệu, huấn luyện model và quản lý dự án mà không cần nhiều kiến thức lập trình. Để biết thêm chi tiết về cách bắt đầu, hãy xem trang Hướng dẫn nhanh về Nền tảng Ultralytics.
MNIST so với các bộ dữ liệu phân loại hình ảnh khác như thế nào?
MNIST đơn giản hơn nhiều bộ dữ liệu hiện đại như CIFAR-10 hoặc ImageNet, làm cho nó trở nên lý tưởng cho người mới bắt đầu và thử nghiệm nhanh. Mặc dù các bộ dữ liệu phức tạp hơn mang lại nhiều thách thức hơn với hình ảnh màu và các danh mục đối tượng đa dạng, MNIST vẫn có giá trị nhờ sự đơn giản, kích thước tệp nhỏ và ý nghĩa lịch sử trong sự phát triển của các thuật toán machine learning. Đối với các tác vụ phân loại nâng cao hơn, hãy cân nhắc sử dụng Fashion-MNIST, vốn duy trì cùng cấu trúc nhưng thay thế các chữ số bằng các mặt hàng thời trang.