Link to this sectionBộ 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 chứa các chữ số viết tay, thường được sử dụng để huấn luyện nhiều hệ thống xử lý ảnh và các model học máy 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.
Link to this sectionTính năng chính#
- MNIST bao gồm 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 này bao gồm các ảnh thang độ xám (grayscale) với kích thước 28×28 pixel.
- Các hình ảnh được chuẩn hóa để vừa với một bounding box 28×28 pixel và được khử răng cưa, tạo ra các cấp độ thang độ xám.
- MNIST được sử dụng rộng rãi cho việc huấn luyện và kiểm thử trong lĩnh vực học máy, đặc biệt là cho các tác vụ phân loại hình ảnh.
Link to this sectionCấ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 dùng để huấn luyện các model học máy.
- Tập kiểm thử (Testing Set): Tập con này bao gồm 10.000 ảnh được dùng để kiểm thử và đánh giá hiệu năng (benchmark) các model đã được huấn luyện.
Link to this sectionTruy cập bộ dữ liệu#
- Các tệp gốc: Tải xuống các 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 Ultralytics: Sử dụng
data="mnist"(hoặcdata="mnist160"cho tập con bên dưới) trong lệnh của bạn và bộ dữ liệu sẽ được tự động tải xuống, chuyển đổi sang định dạng PNG và lưu vào bộ nhớ đệm.
Mỗi hình ả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.
Link to this sectionExtended MNIST (EMNIST)#
Extended MNIST (EMNIST) là một bộ dữ liệu mới hơn được NIST phát triển và phát hành để kế thừa MNIST. Trong khi MNIST chỉ bao gồm các hình ảnh 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 về chữ cái viết tay (cả in hoa và in thường) cũng như các chữ số. Các hình ảnh trong EMNIST được chuyển đổi sang cùng định dạng 28×28 pixel theo cùng quy trình như hình ảnh MNIST. Do đó, các công cụ hoạt động với bộ dữ liệu MNIST nhỏ hơn, cũ hơn có khả năng sẽ hoạt động với EMNIST mà không cần sửa đổi.
Link to this sectionỨ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 học máy khác. Định dạng đơn giản và có cấu trúc tốt của bộ dữ liệu này làm cho nó trở thành một tài nguyên thiết yếu cho các nhà nghiên cứu và kỹ sư trong lĩnh vực học máy và thị giác máy tính.
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 học máy
- Tạo mẫu (prototyping) các hệ thống nhận diện hình ảnh
- Kiểm thử các kỹ thuật tối ưu hóa model
Link to this sectionCách sử dụng#
Để huấn luyện một model CNN trên bộ dữ liệu MNIST trong 100 epoch với kích thước ảnh 28×28, bạn có thể sử dụng các đoạn mã dưới đây. Để có danh sách đầy đủ các đối số khả dụng, hãy tham khảo trang Huấn luyện 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)Link to this sectionHình ảnh mẫu và chú thích#
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:

Ví dụ này thể hiện 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 phong phú để huấn luyện các model phân loại hình ảnh mạnh mẽ.
Link to this sectionTrích dẫn và Ghi nhận#
Nếu bạn sử dụng bộ dữ liệu MNIST trong nghiên cứu hoặc công việ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 muốn 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 tài nguyên có giá trị cho cộng đồng nghiên cứu học máy và thị giác máy tính. Để 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 bộ dữ liệu MNIST.
Link to this sectionKiểm thử nhanh với MNIST160#
Cần một bài kiểm tra hồi quy cực nhanh? Ultralytics cũng cung cấp data="mnist160", một lát cắt 160 hình ảnh chứa tám hình ảnh đầu tiên của mỗi chữ số (0-9) từ cả tập huấn luyện và tập kiểm thử. Nó phản chiếu 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 pipeline CI hoặc kiểm tra tính hợp lệ (sanity check) trước khi chạy trên toàn bộ bộ dữ liệu 70.000 hình ảnh.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionBộ dữ liệu MNIST là gì và tại sao nó lại quan trọng trong học máy?#
Bộ dữ liệu MNIST, hay còn gọi là 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 hình ảnh huấn luyện và 10.000 hình ảnh kiểm thử, tất cả đều là ảnh thang độ xám với kích thước 28×28 pixel. Tầm quan trọng của bộ dữ liệu nằm ở vai trò 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.
Link to this sectionLàm thế nào để tôi có thể 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 Ultralytics YOLO, bạn có thể làm 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 các đối số huấn luyện khả dụng, hãy tham khảo trang Huấn luyện.
Link to this sectionSự 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ố cũng như 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 ảnh 28×28 pixel, 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 học máy đa dạng hơn.
Link to this sectionTôi có thể sử dụng Ultralytics Platform để 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 Ultralytics Platform để huấn luyện các model trên các bộ dữ liệu tùy chỉnh như MNIST. Ultralytics Platform 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 kiến thức lập trình chuyên sâu. Để biết thêm chi tiết về cách bắt đầu, hãy xem trang Hướng dẫn nhanh về Ultralytics Platform.
Link to this sectionMNIST 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, khiến nó trở nên lý tưởng cho người mới bắt đầu và các thử nghiệm nhanh. Mặc dù các bộ dữ liệu phức tạp hơn mang đến nhiều thách thức hơn với hình ảnh màu và các loại đối tượng đa dạng, MNIST vẫn giữ 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 học máy. Đố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, giữ nguyên cấu trúc cũ nhưng thay đổi bằng các mặt hàng thời trang thay vì chữ số.