Классификация рукописных цифр MNIST с использованием TensorFlow и Keras

Данный проект представляет собой реализацию модели нейронной сети для классификации изображений рукописных цифр из набора данных MNIST с использованием библиотек TensorFlow и Keras.

Описание проекта

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

Основные компоненты

1. Загрузка и нормализация данных

  • Загружается набор данных MNIST, который содержит 60,000 изображений для тренировки и 10,000 изображений для тестирования.
  • Все изображения нормализуются: значения пикселей приводятся к диапазону [0, 1] для ускорения обучения модели.

2. Визуализация данных

  • Пример изображения из тренировочного набора визуализируется с помощью библиотеки Matplotlib для демонстрации структуры данных.

3. Построение модели

Модель нейронной сети включает следующие слои:

  • Flatten слой: преобразует изображение из 28x28 в одномерный вектор (784 пикселя).
  • Dense слой с 128 нейронами и функцией активации ReLU: для обучения скрытых представлений.
  • Выходной слой с 10 нейронами (по одному для каждой цифры от 0 до 9), с активацией Softmax: для предсказания вероятностей классов.

4. Компиляция и обучение

  • Модель компилируется с использованием оптимизатора Adam и функции потерь sparse_categorical_crossentropy.
  • Модель обучается на тренировочном наборе данных в течение 5 эпох с выводом точности на каждом шаге.

5. Оценка и предсказание

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

6. Визуализация

  • Тестовое изображение визуализируется вместе с правильной меткой, что позволяет сравнить предсказание модели с реальным значением.

Используемые технологии

  • TensorFlow и Keras для построения и обучения модели нейронной сети.
  • Matplotlib для визуализации изображений.

Заключение

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

Установка и запуск

  1. Установите зависимости:
    pip install tensorflow
    pip install matplotlib
  2. Запустите скрипт:
    python main.py
    

Визуализация

Вы можете наблюдать предсказанное и фактическое значение тестового изображения, а также точность модели после её оценки на тестовом наборе.