Подготовка данных и структура датасета MNIST
Датасет MNIST состоит из 70 000 стандартизированных черно-белых изображений рукописных цифр размером 28 на 28 пикселей. Обучающая выборка содержит 60 000 примеров, контрольная тестовая — 10 000. В первой практической части работы детально опиши структуру этих данных. Изображение представляет собой матрицу яркости, где каждое число лежит в диапазоне от 0 (белый фон) до 255 (черный цвет штриха).
Обязательно объясни математическую суть предварительной обработки данных. Исходные значения пикселей делят на 255.0, переводя их в вещественные числа от 0.0 до 1.0. Нормализация предотвращает чрезмерный рост градиентов и ускоряет обучение сети. Также покажи процедуру прямого преобразования формы матрицы, когда двумерная сетка 28 на 28 пикселей вытягивается в одномерный вектор из 784 чисел для подачи на вход полносвязной сети.
Архитектура нейросети и математика слоев
В реферате для 10-11 класса логично взять двухслойный или трехслойный перцептрон (Dense layers) либо базовую сверточную сеть (CNN). Для полносвязной архитектуры подробно разбери функции каждого элемента. Входной слой принимает вектор признаков длины 784. Скрытые слои содержат от 64 до 128 нейронов и используют функцию активации ReLU, которая обнуляет отрицательные значения и сохраняет положительные, добавляя нелинейность для разделения сложных границ классов.
Выходной слой строго фиксирован и содержит ровно 10 нейронов по числу распознаваемых цифр. Для него используется функция активации Softmax, которая преобразует произвольные вещественные числа на выходе нейронов в вектор вероятностей, сумма элементов которого равна единице. Ученику важно показать формулу Softmax и объяснить, как максимальное значение в векторе определяет итоговый ответ сети.
Процесс обучения и функции оптимизации
Теоретический раздел должен описывать цикл обучения нейросети. Опиши прямой проход (Forward Propagation), вычисление ошибки через функцию потерь Categorical Cross-Entropy и обратное распространение ошибки (Backpropagation) на основе цепного правила взятия производных. Приведи графики изменения ошибки и доли правильных ответов (Accuracy) в зависимости от номера эпохи.
В практической части сопоставь работу различных алгоритмов оптимизации градиентного спуска, таких как базовый SGD и адаптивный метод Adam. Продемонстрируй влияние размера пакета данных (batch size) и скорости обучения (learning rate) на стабильность сходимости. Слишком высокая скорость обучения приводит к расходимости процесса, а слишком низкая требует сотен эпох для достижения приемлемого результата.
Требования преподавателя к проверке работы
Преподаватель информатики оценивает осознанность работы с кодом и терминологией. Недостаточно просто запустить готовый скрипт из репозитория, нужно аргументировать структуру каждого слоя, количество параметров и выбор функций активации. Отдельное внимание обращают на демонстрацию метрик качества на независимой тестовой выборке и расчет матрицы ошибок (Confusion Matrix), которая наглядно показывает, какие именно цифры сеть путает между собой чаще всего, например четверку с девяткой или тройку с восьмеркой.
Где искать материалы и программные инструменты
Базу данных MNIST нет необходимости скачивать отдельными графическими файлами. Она встроена в библиотеки машинного обучения TensorFlow, PyTorch и scikit-learn одной строкой кода. В качестве исторического и теоретического фундамента используй классическую статью Яна Лекуна 1998 года о градиентном распознавании документов. Официальная документация фреймворка Keras содержит подробные интерактивные примеры архитектур с комментариями разработчиков.
Частые вопросы
Обязательно ли писать нейросеть на библиотеке TensorFlow или PyTorch?
Для реферата 10-11 класса использование высокоуровневого API Keras внутри TensorFlow считается стандартом. Если же в качестве практической части реализовать двухслойную сеть исключительно на библиотеке NumPy без применения специализированных нейросетевых фреймворков, практическая ценность работы в глазах преподавателя существенно вырастет.
В чем разница между полносвязной сетью и сверточной для этой задачи?
Полносвязная сеть воспринимает картинку как плоский вектор из 784 чисел и полностью игнорирует взаимное геометрическое расположение соседних пикселей по вертикали. Сверточная сеть обрабатывает изображение двумерными фильтрами, благодаря чему успешно находит линии, петли и углы независимо от их смещения внутри кадра.
Как проверить сеть на собственной написанной цифре?
Нарисуй цифру белой кистью на черном фоне в любом редакторе, сожми картинку до размера 28 на 28 пикселей, преобразуй в массив NumPy, выполни нормализацию делением на 255.0 и передай полученный тензор в метод predict обученной модели.