MNIST dataset

MNIST dataset — это база данных, в которой хранятся образцы написания рукописных цифр. Она состоит из 70 тысяч картинок одинакового размера, где изображены написанные от руки цифры. Набор данных, или датасет, используют для машинного обучения — на нем программы учат распознавать числа.

Название расшифровывается как Modified National Institute of Standards and Technology — «Модифицированная [база данных] Национального института стандартов и технологий США». Институт занимается стандартизацией: он собрал большой набор образцов почерка, привел все изображения с цифрами к единообразному виду и отрегулировал их.

Образцы написания цифр взяты из результатов переписи населения. Позже к ним добавлялись другие варианты, например взятые из тестирований студентов.

Существуют другие вариации набора, усложненные или нужные для иных задач. Например, датасет Fashion-MNIST — это подборка изображений с разными предметами одежды.

Для чего нужна база MNIST

Набор данных MNIST активно применяют в машинном обучении, в частности в создании и обучении нейронных сетей. Это такие цифровые модели, которые по структуре повторяют соединения нейронов в человеческом мозгу. Их можно обучать, но для этого нужны большие массивы данных — так программа «запомнит», как выглядит то, с чем она имеет дело.

Базу MNIST используют, когда обучают программу распознавать рукописные числа и цифры. Это важно в практических целях — сейчас есть много сервисов, которые работают с распознаванием картинок. Но кроме того, датасет используют в научных целях — например, когда сравнивают эффективность разных алгоритмов распознавания.

Сейчас с MNIST работают в том числе новички. Некоторые разработчики считают, что для решения серьезных задач набор исчерпал себя, но с ними согласны не все.

Как выглядят данные в базе MNIST

В датасете 70 тысяч картинок с цифрами от 0 до 9, приведенных к одинаковому виду. Все они переведены в формат CSV и имеют размер 28×28 пикселей. У них черный фон, на котором изображена белая цифра. Цифра помещена в середине, так, чтобы ее центр масс совпадал с центром изображения. Сама она чуть меньше целой картинки — ее размер составляет 20×20 пикселей.

Изначальные данные, конечно, выглядели иначе. Плюс MNIST в том, что картинки уже обработаны так, чтобы программе было легче их воспринять. Поэтому фон сделан черным, а сами цифры — белые и центрированные.

Обучающая и тестовая выборки

70 тысяч картинок разделены на две части: train и test.

Train это 60 тысяч изображений, которые должны использоваться для обучения. Программе показывают эти картинки, чтобы она «поняла», как выглядят те или иные цифры. В обучающем наборе уже есть правильные результаты, то есть программа сразу получает ответ, что именно ей показывают.

Test это 10 тысяч изображений тестовой выборки. Их не используют для обучения, а показывают нейросети позже, чтобы проверить, насколько правильно она научилась распознавать числа.

Современные нейронные сети дают точность до 99,6% при распознавании цифр из MNIST. Это много: получается, что качественные программы практически всегда правильно распознают цифры.

Как пользоваться базой данных MNIST

Поддержка датасета MNIST есть во многих крупных фреймворках для работы с нейронными сетями. Чаще всего специалисты по машинному обучению пишут на языке программирования Python, поэтому большинство соответствующих фреймворков — для него.

Например, MNIST есть среди данных библиотеки Keras. Чтобы добавить датасет к программе, нужно просто указать в начале кода строчку:

from keras.datasets import mnist

Библиотека Keras работает на основе фреймворка для машинного обучения Tensor Flow — тот тоже поддерживает MNIST. А изобразить результаты в графическом виде можно с помощью библиотеки Matplotlib, которая может построить график или диаграмму.

Что нужно учесть

Обучить нейронную сеть на датасете MNIST не так сложно, если вы умеете пользоваться соответствующими фреймворками и библиотеками. Сложнее сделать так, чтобы полученная программа умела распознавать произвольные цифры. Ведь если показать ей какие-то непохожие на исходный набор данных картинки, она не сможет сопоставить их с черно-белыми квадратиками набора MNIST.

Поэтому, если вы хотите, чтобы нейросеть умела распознавать любые цифры, в программу понадобится добавить обработку предварительных данных. Это значит, что входящие картинки нужно будет обрезать до цифр, переводить в черно-белые оттенки, центрировать и следить, чтобы цифры не деформировались при изменении размера.

Это предварительная обработка картинок — она нужна во многих задачах, связанных с распознаванием. Она поможет программе лучше понимать, что изображено на картинке.

Как начать работу с MNIST

Вам понадобится какой-либо из фреймворков для машинного обучения: создавать модель с нуля сложно, долго и неудобно. Можно воспользоваться Keras или другим популярным решением. Так писать код будет проще: для сложных вещей уже есть команды, поэтому их можно реализовать в одну строчку.

После этого достаточно импортировать MNIST, построить и обучить модель. Для всего этого в библиотеках и фреймворках есть свои команды.

Но чтобы разобраться в происходящем было легче, понадобится знать Python и приблизительно понимать, как работают нейросети. Поэтому, если вы новичок, мы советуем вам начать с изучения теории. Когда вы разберетесь, перейти к практике будет легче.

(рейтинг: 5, голосов: 1)
Добавить комментарий